{"version":3,"file":"main.js","mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA","sources":["./src/app/account-repository.service.ts","./src/app/answers-repository.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/connection/connection.component.ts","./src/app/expressyon.service.ts","./src/app/header/header.component.ts","./src/app/history-navigation-repository.service.ts","./src/app/password-protected/password-protected.component.ts","./src/app/shared.module.ts","./src/app/survey-repository.service.ts","./src/environments/environment.ts","./src/globals.ts","./src/main.ts","./node_modules/@ionic/core/dist/esm/ lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as configuration from '../globals';\n\n \n @Injectable({\n providedIn: 'root'\n })\n export class AccountRepositoryService {\n \n constructor() { }\n \n getAccountObject() {\n var accountString = localStorage.getItem('account');\n if(accountString)\n {\n return JSON.parse(accountString);\n }\n return {\n clientKey : '',\n accountName : '',\n tabletName : '',\n apiKey : '',\n timestamp: 0,\n password : '',\n isInAdminMode : false,\n surveysInfos:[]\n };\n }\n \n getDeviceInfos() {\n var infoString = localStorage.getItem('infos');\n if (infoString)\n {\n return JSON.parse(infoString);\n }\n return {\n deviceName : '',\n phone : '',\n address : '',\n comments : ''\n };\n }\n \n getDeviceParameters() {\n var parametersString = localStorage.getItem('parameters');\n if (parametersString)\n {\n return JSON.parse(parametersString);\n }\n return {\n restartFormTimer: 30,\n startFormTimer: 8,\n accessibilityMode: false\n };\n }\n \n account = this.getAccountObject();\n appVersion = configuration.APP_VERSION;\n infos = this.getDeviceInfos();\n parameters = this.getDeviceParameters();\n isActivated = true;\n \n \n saveAccountObject() {\n if (this.account) {\n localStorage.setItem('account', JSON.stringify(this.account));\n }\n };\n \n \n saveName(value)\n {\n if (value == undefined) {\n value = \"\";\n }\n this.infos.deviceName = value;\n localStorage.setItem('infos', JSON.stringify(this.infos));\n }\n \n savePhone(value)\n {\n if (value == undefined) {\n value = \"\";\n }\n this.infos.phone = value;\n localStorage.setItem('infos', JSON.stringify(this.infos));\n }\n \n saveAddress(value)\n {\n if (value == undefined) {\n value = \"\";\n }\n this.infos.address = value;\n localStorage.setItem('infos', JSON.stringify(this.infos));\n }\n \n saveComments(value)\n {\n if (value == undefined) {\n value = \"\";\n }\n this.infos.comments = value;\n localStorage.setItem('infos', JSON.stringify(this.infos));\n }\n \n saveStartFormTimer(value)\n {\n if (value == undefined) {\n value = \"\";\n }\n this.parameters.startFormTimer = value;\n localStorage.setItem('parameters', JSON.stringify(this.parameters));\n }\n \n saveRestartFormTimer(value)\n {\n if (value == undefined) {\n value = \"\";\n }\n this.parameters.restartFormTimer = value;\n localStorage.setItem('parameters', JSON.stringify(this.parameters));\n }\n \n \n saveAccessibilityMode(value) {\n this.parameters.accessibilityMode = value;\n localStorage.setItem('parameters', JSON.stringify(this.parameters));\n }\n \n saveTabletInfos(name, phone, address, comments) {\n if (name == undefined) {\n name = \"\";\n }\n if (phone == undefined) {\n phone = \"\";\n }\n if (address == undefined) {\n address = \"\";\n }\n if (comments == undefined) {\n comments = \"\";\n }\n this.infos.deviceName = name;\n this.infos.phone = phone;\n this.infos.address = address;\n this.infos.comments = comments;\n localStorage.setItem('infos', JSON.stringify(this.infos));\n };\n \n resetParameters() {\n this.saveParameters(undefined, undefined,false);\n }\n \n saveParameters = function (restartFormTimer, startFormTimer, accessibilityMode) {\n if (restartFormTimer == undefined) {\n restartFormTimer = 30;\n }\n if (startFormTimer == undefined) {\n startFormTimer = 8;\n }\n this.parameters.restartFormTimer = restartFormTimer;\n this.parameters.startFormTimer = startFormTimer;\n this.parameters.accessibilityMode = accessibilityMode;\n localStorage.setItem('parameters', JSON.stringify(this.parameters));\n };\n \n getIsActivated() {\n return this.isActivated;\n }\n \n \n setIsActivated = function(activated) {\n this.isActivated = activated;\n }\n \n getAppVersion = function() {\n return this.appVersion;\n }\n \n getClientKey = function() {\n return this.getAccountObject().clientKey;\n };\n setClientKey = function(key) {\n this.account.clientKey = key;\n this.saveAccountObject();\n };\n getAccountName = function() {\n return this.getAccountObject().accountName;\n };\n setAccountName = function(name) {\n this.account.accountName = name;\n this.saveAccountObject();\n };\n isLogged() {\n return (this.getAccountObject().apiKey && this.getAccountObject().apiKey.length !== 0) ? true : false;\n };\n getApiKey = function() {\n return this.getAccountObject().apiKey;\n };\n setApiKey = function(key) {\n this.account.apiKey = key;\n this.saveAccountObject();\n };\n getTimeStamp = function() {\n return this.getAccountObject().timestamp;\n };\n setTimeStamp = function(time) {\n this.account.timestamp = time;\n this.saveAccountObject();\n };\n setPassword = function(password) {\n this.account.password = password;\n this.saveAccountObject();\n };\n setSuperPassword = function (superPassword) {\n this.account.superPassword = superPassword;\n this.saveAccountObject();\n };\n getPassword = function(){\n return this.getAccountObject().password;\n };\n getSuperPassword = function () {\n return this.getAccountObject().superPassword;\n };\n setIsInAdminMode = function(value){\n this.account.isInAdminMode = value;\n this.saveAccountObject();\n };\n getIsInAdminMode = function(){\n return this.getAccountObject().isInAdminMode;\n };\n setSurveyInfos = function(surveys) {\n this.account.surveysInfos = surveys;\n this.saveAccountObject();\n };\n \n getSurveyInfos = function() {\n return this.getAccountObject().surveysInfos;\n };\n \n setTabletName = function(name){\n this.account.tabletName = name;\n this.saveAccountObject();\n };\n getTabletName = function() {\n return this.getAccountObject().tabletName;\n };\n \n deleteAccount = function () {\n this.account = {\n clientKey: '',\n accountName: '',\n tabletName: '',\n apiKey: '',\n timestamp: 0,\n password: '',\n isInAdminMode: false,\n surveysInfos: []\n };\n this.saveAccountObject();\n };\n }\n ","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport _ from 'lodash';\nimport { SurveyRepositoryService } from './survey-repository.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnswersRepositoryService {\n \n answers = this.getAnswersObject();\n sentAnswers = this.getSentAnswers();\n currentUser;\n latitude = \"\";\n longitude = \"\";\n\n answersCount: number;\n answersCountChange: Subject = new Subject;\n\n constructor(\n private surveyRepository: SurveyRepositoryService\n ) {\n\n this.answersCountChange.subscribe((value) => {\n this.answersCount = value\n });\n \n this.updateAnswerCount();\n }\n\n getAnwserCount(): number {\n return this.answersCount;\n }\n\n setAnswerCount(value: number) {\n this.answersCountChange.next(value);\n }\n\n updateAnswerCount() {\n let count = 0;\n this.getForms().forEach(function(form){\n count += form.users.length;\n });\n this.setAnswerCount(count);\n }\n \n getSentAnswers() {\n var sent = localStorage.getItem('sent');\n \n if (sent) {\n return JSON.parse(sent);\n }\n return { forms :[]};\n };\n\n saveSentAnswers() {\n if (this.sentAnswers) {\n localStorage.setItem('sent', JSON.stringify(this.sentAnswers));\n this.updateAnswerCount();\n }\n };\n \n getAnswersObject() {\n var answersString = localStorage.getItem('answers');\n \n if (answersString) {\n return JSON.parse(answersString);\n }\n return{\n forms: []\n };\n }\n \n saveAnswersObject() {\n if (this.answers) {\n localStorage.setItem('answers', JSON.stringify(this.answers));\n this.updateAnswerCount();\n }\n }\n \n clearSentAnswers = function(){\n this.sentAnswers.forms = [];\n this.saveSentAnswers();\n }\n \n getLatitude = function(){\n return this.latitude;\n };\n \n getLongitude = function(){\n return this.longitude;\n };\n \n setLatitude = function (value) {\n this.latitude = value;\n };\n \n setLongitude = function(value){\n this.longitude = value;\n };\n \n getAnswers = function(){\n return this.answers;\n };\n\n resultSent = function(){\n this.getForms().forEach(function(form){\n var sentForm = this.getSentForm(form.id);\n if( sentForm == null) {\n sentForm = {\n id: form.id,\n title: form.title,\n sent:0,\n sentAt:0\n }\n this.getSentForms().push(sentForm);\n }\n sentForm.sent += _.size(form.users);\n sentForm.sentAt = _.now();\n },this);\n this.setForms([]);\n this.saveSentAnswers();\n };\n \n //suuprime une question de la liste des questions du sondé actuel\n deleteAnswer = function(questionId) {\n var question = this.findQuestion(questionId);\n if (question != null) {\n this.currentUser.answers.splice(this.currentUser.answers.indexOf(question), 1);\n }\n };\n \n /**\n Retourne la réponse à la question identifiée par 'questionId' null si la question n'a pas encore été renseignée.\n */\n findQuestion = function(questionId) {\n return this.currentUser.answers.find(function(answer) {\n return answer.questionId == questionId;\n });\n };\n \n getForms = function() {\n return this.answers.forms;\n };\n getSentForms = function(){\n return this.sentAnswers.forms;\n }\n \n setForms = function(forms) {\n this.answers.forms = forms;\n this.saveAnswersObject();\n };\n \n getCurrentUser = function () {\n return this.currentUser;\n };\n \n setCurrentUser = function (value) {\n this.currentUser = value;\n \n };\n \n addUserAnswers = function (idForm, user) {\n // Lors d'un sondage mono page l'objet Answers est déjà rempli lors de l'appel de cette fonction dans la page end-survey \n // => donc il ne faut pas l'ecraser\n if(this.getAnswersObject().forms.length != 0 && this.surveyRepository.isDisplayMonoPage()){\n return;\n }\n //récupérer le formulaire\n var currentForm = this.getForm(idForm);\n\n if (currentForm == null) {\n currentForm = { 'id': idForm };\n this.getForms().push(currentForm);\n }\n if (currentForm.users == null) {\n var users = [];\n users.push(user);\n currentForm['users'] = users;\n } else {\n currentForm.users.push(user);\n }\n this.saveAnswersObject();\n };\n \n /**\n Enregistre la réponse de la question actuelle à la liste des réponses du sondés en cours.\n @param questionId identifiant de la question en cours\n @param currentAnswer réponse du sondé\n */\n saveAnswer = function (questionId, currentAnswer) {\n var answer = [];\n answer.push({ 'value': currentAnswer });\n var answersList = {\n 'questionId': questionId,\n 'answer': answer\n };\n var foundQuestion = this.findQuestion(questionId);\n if (foundQuestion != null){\n foundQuestion.answer = answer;\n }\n else {\n this.getCurrentUser().answers.push(answersList);\n }\n };\n \n /**\n Obtient le formulaire identifié par 'id'\n Retourne undefined si aucun formulaire n'est identifié.\n */\n getForm = function(id) {\n return this.answers.forms.find(function (form) {\n return form.id == id;\n });\n };\n getSentForm = function(id) {\n return this.sentAnswers.forms.find(function (form) {\n return form.id == id;\n });\n };\n \n /**\n Réinitialisation à chaque nouvel utlisateur\n */\n resetUser = function () {\n this.currentUser = [];\n };\n}\n","import { NgModule } from '@angular/core';\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router'\n\nconst routes: Routes = [\n {\n path: '',\n loadChildren: () => import('./login/login.module').then( m => m.LoginPageModule)\n },\n {\n path: 'update',\n loadChildren: () => import('./home/home.module').then( m => m.HomePageModule)\n },\n {\n path: 'logout',\n loadChildren: () => import('./logout/logout.module').then( m => m.LogoutPageModule)\n },\n {\n path: 'about',\n loadChildren: () => import('./about/about.module').then( m => m.AboutPageModule)\n },\n {\n path: 'device',\n loadChildren: () => import('./device/device.module').then( m => m.DevicePageModule)\n },\n {\n path: 'startSurvey',\n loadChildren: () => import('./start-survey/start-survey.module').then( m => m.StartSurveyPageModule)\n },\n {\n path: 'surveyContent',\n loadChildren: () => import('./survey-content/survey-content.module').then( m => m.SurveyContentPageModule)\n }, \n {\n path: 'selectSurvey',\n loadChildren: () => import('./select-survey/select-survey.module').then( m => m.SelectSurveyPageModule)\n },\n {\n path: 'alertUnsubscribed',\n loadChildren: () => import('./alert-unsubscribed/alert-unsubscribed.module').then( m => m.AlertUnsubscribedPageModule)\n },\n {\n path: 'quit-app',\n loadChildren: () => import('./quit-app/quit-app.module').then( m => m.QuitAppPageModule)\n },\n {\n path: 'send-answers',\n loadChildren: () => import('./send-answers/send-answers.module').then( m => m.SendAnswersPageModule)\n },\n {\n path: 'update-app',\n loadChildren: () => import('./update-app/update-app.module').then( m => m.UpdateAppPageModule)\n },\n {\n path: 'privacy-policies',\n loadChildren: () => import('./privacy-policies/privacy-policies.module').then( m => m.PrivacyPoliciesPageModule)\n },\n {\n path: 'web',\n loadChildren: () => import('./web/web.module').then( m => m.WebPageModule)\n },\n {\n path: 'survey-content-monopage',\n loadChildren: () => import('./survey-content-monopage/survey-content-monopage.module').then( m => m.SurveyContentMonopagePageModule)\n }\n];\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","import { Component } from '@angular/core';\nimport { Network } from '@capacitor/network';\nimport {TranslateService} from \"@ngx-translate/core\";\nimport { ExpressyonService } from 'app/expressyon.service';\nimport { SurveyRepositoryService } from 'app/survey-repository.service';\nimport { Platform } from '@ionic/angular';\nimport { StatusBar } from '@capacitor/status-bar';\nimport { NavigationBar } from '@hugotomazi/capacitor-navigation-bar';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss'],\n})\nexport class AppComponent{\n\n isWeb:Boolean = false;\n\n constructor(\n private translate: TranslateService,\n private expressyonService: ExpressyonService,\n private surveyRepository: SurveyRepositoryService,\n public platform: Platform\n ) {\n this.translate.setDefaultLang('fr-FR');\n this.translate.use('fr-FR');\n \n if(!this.platform.is('capacitor')){//Web platform\n this.expressyonService.setIsWeb(true);\n this.isWeb = true;\n }else{//Android platform\n this.expressyonService.setDevice(); \n StatusBar.hide();\n NavigationBar.hide();\n } \n\n Network.getStatus().then(status => {\n this.expressyonService.setNetworkStatus(status.connected);\n })\n\n Network.addListener('networkStatusChange', status => {\n this.expressyonService.setNetworkStatus(status.connected);\n });\n }\n}","import { NgModule } from '@angular/core';\nimport { RouteReuseStrategy } from '@angular/router';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { FormsModule } from '@angular/forms';\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { SharedModule } from './shared.module';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\n\nimport { AnswersRepositoryService } from 'app/answers-repository.service';\nimport { HistoryNavigationRepositoryService } from 'app/history-navigation-repository.service';\nimport { AccountRepositoryService } from 'app/account-repository.service';\nimport { ExpressyonService } from 'app/expressyon.service';\nimport { SurveyRepositoryService } from 'app/survey-repository.service';\n\n@NgModule({\n declarations: [AppComponent],\n imports: [\n BrowserModule,\n IonicModule.forRoot({animated: false}),\n AppRoutingModule,\n HttpClientModule,\n SharedModule,\n FormsModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: (createTranslateLoader),\n deps: [HttpClient]\n }\n })\n ],\n providers: [AccountRepositoryService, ExpressyonService,SurveyRepositoryService,AnswersRepositoryService,HistoryNavigationRepositoryService,{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n\nexport function createTranslateLoader(http: HttpClient) {\n return new TranslateHttpLoader(http, './translations/', '.json');\n}\n","import { ChangeDetectorRef, Component} from '@angular/core';\nimport { ExpressyonService } from 'app/expressyon.service';\nimport { Network } from '@capacitor/network';\n\n@Component({\n selector: 'app-connection',\n templateUrl: './connection.component.html',\n styleUrls: ['../app.component.scss'],\n})\n\nexport class ConnectionComponent {\n\n limitedNetwork: boolean;\n online: boolean;\n isWeb: boolean;\n \n constructor(private expressyonService: ExpressyonService, private changeDetector : ChangeDetectorRef) {\n this.limitedNetwork = !this.expressyonService.getConnected();\n this.online = this.expressyonService.getNetworkStatus();\n this.isWeb = this.expressyonService.getIsWeb();\n\n this.expressyonService.networkStatusChange.subscribe(value => {\n this.online = value;\n this.changeDetector.detectChanges();\n });\n\n this.expressyonService.isConnectedChange.subscribe(value => {\n this.limitedNetwork = !value;\n this.changeDetector.detectChanges();\n });\n }\n\n ngAfterViewInit() {\n // Checking if services are availables\n Network.getStatus().then(status => {\n if(!this.expressyonService.setNetworkStatus(status.connected)) {\n this.expressyonService.sendInfos();\n }\n })\n }\n \n}","import { Injectable } from '@angular/core';\nimport { AccountRepositoryService } from './account-repository.service';\nimport { SurveyRepositoryService } from './survey-repository.service';\nimport { Router } from '@angular/router';\nimport axios from 'axios';\nimport { Filesystem, Directory } from '@capacitor/filesystem';\nimport _ from 'lodash';\nimport { AnswersRepositoryService } from './answers-repository.service';\nimport { Network } from '@capacitor/network';\nimport * as configuration from '../globals';\nimport { Device } from '@capacitor/device';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class ExpressyonService {\n \n isConnected: boolean = true;\n isConnectedChange: Subject = new Subject;\n\n networkStatus: boolean = false;\n networkStatusChange: Subject = new Subject;\n\n\n checkUpdateSurveyTimer;\n //Obtient ou d�finit un bool�en indiquant que la version de l'application install�e n'est pas \n isUpdateAppAvailable = false;\n isPreview: boolean = false; \n\n constructor(private accountRepository: AccountRepositoryService, \n private surveyRepository: SurveyRepositoryService, \n private router: Router, \n private answersRepository: AnswersRepositoryService) {\n \n this.isConnectedChange.subscribe((value) => {\n this.isConnected = value\n });\n\n this.networkStatusChange.subscribe((value) => {\n this.networkStatus = value\n });\n \n }\n\n \n device = {}\n setDevice = async () => {\n const deviceInfos = await Device.getInfo(); \n const deviceId = await Device.getId(); \n this.device = {\n \"cordova\": \"Capacitor : 3.5.1\", //Changement de plugin à partir de la 3.0.0 -> capacitor\n \"model\": deviceInfos.model,\n \"platform\": deviceInfos.platform,\n \"uuid\": deviceId.uuid,\n \"version\": deviceInfos.osVersion\n }\n };\n\n getNetworkStatus(){\n return this.networkStatus;\n }\n \n setNetworkStatus(value) {\n if (this.getNetworkStatus() == value)\n return false;\n if(value) this.sendInfos();\n\n this.networkStatusChange.next(value);\n return true;\n }\n\n setConnected(value) {\n if (this.getConnected() == value)\n return;\n this.isConnectedChange.next(value);\n if(value) this.setNetworkStatus(true);\n };\n\n getConnected = function () {\n return this.isConnected;\n };\n\n setPreview(value) {\n this.isPreview = value;\n };\n\n getPreview() {\n return this.isPreview;\n };\n \n hasSurvey() {\n if (!(this.surveyRepository.getSurvey())) {\n return false;\n }\n return (this.surveyRepository.getSurvey().id) ? true : false;\n }\n \n isWeb = false;\n setIsWeb(value) {\n this.isWeb = value;\n }\n getIsWeb() {\n return this.isWeb;\n }\n\n getIsUpdateAppAvailable() {\n return this.isUpdateAppAvailable;\n }\n\n //D�finit un bool�en indiquant que l'application est � jour\n setUpdateAppAvailable(serverAppVersion) {\n var splittedServerAppVersion = serverAppVersion.replace('.','');\n var splittedAppVersion = this.accountRepository.getAppVersion().replace('.','');\n if (parseInt(splittedServerAppVersion) > parseInt(splittedAppVersion)) {\n return true;\n }\n return false;\n }\n \n //Retourne le timer responsable du systeme de pull des mises � jour du formulaire\n getCheckUpdateSurveyTimer = function () {\n return this.checkUpdateSurveyTimer;\n }\n\n hasDefaultPassword = function () {\n return this.accountRepository.getPassword().toUpperCase() == \"1111\";\n }\n\n validatePassword = function (password) {\n return this.accountRepository.getPassword().toUpperCase() == password.toString().toUpperCase() || this.accountRepository.getSuperPassword().toUpperCase() == password.toString().toUpperCase();\n };\n\n async login(key, name) {\n const status = await this.getNetworkStatus();\n const self = this;\n if (!status) {\n throw 'ERROR.NO_CONNECTION';\n }\n if (!this.accountRepository.isLogged()) {\n let config = {\n 'clientKey': key,\n 'appVersion': configuration.APP_VERSION,\n 'mobile' : _.defaults(this.device, {\n \"cordova\": \"6.3.1\", //Changement de plugin à partir de la 3.0.0 -> capacitor\n \"model\": \"Nexus One\",\n \"platform\": \"Android\",\n \"uuid\": \"0\",\n \"version\": self.accountRepository.getAppVersion()\n }),\n }\n var data = await axios.post(`${configuration.API_HOST}/api/accounts`, config)\n .then(function(res) {\n const data = res.data;\n self.accountRepository.setApiKey(data.apiToken);\n self.accountRepository.setClientKey(key);\n self.accountRepository.setAccountName(name);\n self.accountRepository.setTimeStamp(data.timestamp);\n self.accountRepository.setPassword(data.password);\n self.accountRepository.setSuperPassword(data.superPassword);\n self.accountRepository.setIsInAdminMode(data.isInAdminMode);\n self.accountRepository.setSurveyInfos(data.surveysInfos);\n self.accountRepository.setTabletName(data.tabletName);\n self.accountRepository.saveTabletInfos(name, undefined, undefined, undefined);\n self.sendDatas();\n }).catch(function (error) {\n switch (error.response.status) {\n case 401:\n throw 'ERROR.ACCOUNT_BLOCKED';\n break;\n case 402:\n throw 'ERROR.TABLET_UNKNOW';\n break;\n case 403:\n throw 'ERROR.ACCOUNT_MAX_CLIENT_REACHED';\n break;\n case 404:\n throw 'ERROR.ACCOUNT_NOT_FOUND';\n break;\n case 500:\n throw 'ERROR.SERVER_ERROR';\n break;\n default:\n self.setConnected(false);\n throw 'ERROR.ACCOUNT_UNKNOWN';\n break;\n }\n });\n }\n return 1;\n }\n \n async weblogin(key, survey_id) {\n const self = this;\n let config = {\n licenceKey: key,\n survey_id: survey_id,\n appVersion: configuration.APP_VERSION\n }\n\n var data = await axios.post(`${configuration.API_HOST}/api/webaccounts?timestamp=0`, config)\n .then(function(res) {\n const data = res.data;\n var apiToken = data.apiToken;\n if (apiToken && data) {\n self.accountRepository.setApiKey(apiToken);\n self.accountRepository.setClientKey(key);\n self.accountRepository.setAccountName(data.accountName);\n self.accountRepository.setTimeStamp(data.timestamp);\n self.accountRepository.setPassword(data.password);\n self.accountRepository.setSuperPassword(data.superPassword);\n self.accountRepository.setIsInAdminMode(data.isInAdminMode);\n self.accountRepository.setSurveyInfos(data.surveysInfos);\n self.accountRepository.setTabletName(data.tabletName);\n }else{\n throw 'ERROR.ACCOUNT_UNKNOWN'; \n }\n }).catch(function (error) {\n switch (error.response.status) {\n case 401:\n throw 'ERROR.ACCOUNT_BLOCKED';\n break;\n case 402:\n throw 'ERROR.TABLET_UNKNOW';\n break;\n case 403:\n throw 'ERROR.ACCOUNT_MAX_CLIENT_REACHED';\n break;\n case 404:\n throw 'ERROR.ACCOUNT_NOT_FOUND';\n break;\n case 500:\n throw 'ERROR.SERVER_ERROR';\n break;\n default:\n self.setConnected(false);\n throw 'ERROR.ACCOUNT_UNKNOWN';\n break;\n }\n });\n return 1;\n };\n\n\n async updateAccount() {\n let config = {\n headers: {\n 'Api-Token': this.accountRepository.getApiKey(),\n }\n };\n var data = await axios.get(`${configuration.API_HOST}/api/accounts?timestamp=${this.accountRepository.getTimeStamp()}`, config)\n .then(async (response) => {\n //Synchronisation si des datas sont reçus\n let data = response.data;\n if (data.timestamp) {\n this.accountRepository.setAccountName(data.accountName);\n this.accountRepository.setTabletName(data.tabletName);\n this.accountRepository.setTimeStamp(data.timestamp);\n this.accountRepository.setPassword(data.password);\n this.accountRepository.setSuperPassword(data.superPassword);\n this.accountRepository.setIsInAdminMode(data.isInAdminMode);\n this.accountRepository.setSurveyInfos(data.surveysInfos);\n }\n if (this.accountRepository.getIsInAdminMode()) {\n if (this.hasSurvey()) {\n var currentSurvey = _.find(this.accountRepository.getSurveyInfos(), (survey) => {\n return survey.surveyId == this.surveyRepository.getCurrentSurveyId();\n });\n if (currentSurvey) {\n await this.updateSurvey(this.surveyRepository.getCurrentSurveyId()).then(() => {\n this.setConnected(true);\n }).catch(() => {\n this.setConnected(false);\n });\n }else {\n // the current survey is invalid we need to delete it\n if (this.surveyRepository.getSurvey()) {\n if (this.deleteSurvey(currentSurvey)) {\n this.setConnected(true);\n }\n }\n }\n }else {\n this.setConnected(true);\n }\n } else {\n await this.updateSurvey().then(() => {\n this.setConnected(true);\n })\n .catch(() => {\n this.setConnected(false);\n });\n }\n return response.data; \n return response.data; \n return response.data; \n })\n .catch((error) => {\n console.log(\"ERROR UPDATE ACCOUNT %o\",error);\n });\n return data;\n }\n \n hasValidSurvey() {\n var survey = this.surveyRepository.getSurvey();\n if (survey == null) {\n return false;\n }\n if (!survey) return false;\n if (!survey.id) return false;\n if (survey.expirationDate) {\n return Math.floor(Date.now() / 1000) < survey.expirationDate;\n } else return true;\n };\n \n async sendDatas() {\n await this.sendResult().catch((error) => {\n throw TypeError(error);\n });\n\n await this.sendInfos().catch((error) => {\n throw TypeError(error);\n });\n }\n \n async sendInfos() {\n let config = {\n 'headers': {\n 'Api-Token': this.accountRepository.getApiKey(),\n 'App-Version' : this.accountRepository.getAppVersion()\n }\n };\n let infos = { 'infos': {} };\n infos.infos = this.accountRepository.getDeviceInfos();\n axios.post(`${configuration.API_HOST}/api/infos`, infos, config)\n .then((res) => {\n this.setConnected(true);\n\n Network.getStatus().then(status => {\n this.setNetworkStatus(status.connected);\n })\n\n return res.data;\n }).catch((error) => {\n console.log(error);\n \n if(error.message === 'Network Error'){\n this.setConnected(false);\n\n Network.getStatus().then(status => {\n this.setNetworkStatus(status.connected);\n })\n }\n\n this.accountRepository.setIsActivated(true);\n if (error.response != null && error.response.status == 401) {\n this.accountRepository.setIsActivated(false);\n } else if (error.response != null && (error.response.status == 410 || error.response.status == 405)) {//la tablette a �t� supprim�e du compte DEPUIS L'ADMINISTRATION\n this.disconnect().then(() => {\n if (error.response.status == 410){\n this.router.navigate(['/alertUnsubscribed'], { replaceUrl: true ,queryParamsHandling:'merge' }); \n }\n });\n }\n });\n }\n \n async updateSurvey(surveyId = null) {\n surveyId = (surveyId === null) ? 0 : surveyId;\n var currentSurvey = this.surveyRepository.getSurvey();\n \n const status = await this.getNetworkStatus();\n if (!this.isConnected || !status) {\n throw 'ERROR.NO_CONNECTION';\n } else if (!this.accountRepository.isLogged()) {\n throw 'ERROR.NOT_LOGGED';\n }\n\n var handleError = async (value) => {\n //today we have no survey so we need to delete if one exist\n if (value.response.status == 404) {\n if (this.hasSurvey()) {\n this.deleteSurvey(currentSurvey)\n return 1;\n } else {\n return 1;\n }\n } else if (value.response.status == 405) {//la tablette a �t� supprim�e du compte DEPUIS L'ADMINISTRATION\n if (this.hasNotSentResults()) {\n await this.sendResult();\n };//on envoie les donn�es\n this.clearAccount();\n this.router.navigate(['/alertUnsubscribed'], { replaceUrl: true ,queryParamsHandling:'merge' });\n }\n throw \"Error Update survey\";\n //TODO handle api error....\n }\n \n var handleSuccess = async (res) => {\n let data = res.data;\n let id = data.id;\n \n this.surveyRepository.hasUpdateSurvey = false;\n \n //we have an update first let's check image we already have survey and add the image path on the new survey\n if (this.hasSurvey()) {\n var currentImages = this.getSurveyImageIds(currentSurvey);\n var toDelete = this.copyOldImagesToSurvey(data, currentImages);\n //Download new image and delete old.\n await this.downloadNewImages(data).then((surveyWhitImg) => {\n if (this.deleteImages(toDelete)) {\n this.surveyRepository.setSurvey(surveyWhitImg);\n this.setConnected(true);\n }\n });\n } else {\n await this.downloadNewImages(data).then((surveyWhitImg) => {\n this.surveyRepository.setSurvey(surveyWhitImg);\n });\n }\n return 1;\n }\n \n let config = {\n headers: {\n 'Api-Token' : this.accountRepository.getApiKey(),\n 'App-Version' : this.accountRepository.getAppVersion()\n }\n }\n if (surveyId == 0){\n var data = await axios.get(`${configuration.API_HOST}/api/survey?timestamp=0`, config)\n .then(res => handleSuccess(res))\n .catch(error => handleError(error));\n }else {\n var data = await axios.get(`${configuration.API_HOST}/api/surveys/${surveyId}?timestamp=0`, config)\n .then(res => handleSuccess(res))\n .catch(error => handleError(error));\n }\n return data;\n }\n \n getSurveyImageIds(survey) {\n var image = [];\n //collect image from survey\n if (survey && survey.imageId) {\n image.push({ id: survey.imageId, path: survey.imagePath });\n }\n //collect images from answers\n if (survey && survey.questions !== undefined && survey.questions == Array) {\n survey.questions.forEach(function (question) {\n if (question.type === \"QCM\" && question.typeInformation !== undefined && question.typeInformation.answers !== undefined && question.typeInformation.answers == Array) {\n question.typeInformation.answers.foreach(function (answer) {\n if (answer.imageId !== undefined) {\n image.push({ id: answer.imageId, path: answer.imagePath });\n }\n });\n }\n });\n }\n return image.filter((el, i, a) => i === a.indexOf(el));\n };\n \n \n copyOldImagesToSurvey(newSurvey, images) {\n var copiedImages = [];\n if (newSurvey && newSurvey.imageId) {\n var surveyLogo = images.find(image => {\n return image.id == newSurvey.imageId;\n });\n if (surveyLogo) {\n newSurvey.imagePath = surveyLogo.path;\n copiedImages.push(surveyLogo);\n }\n }\n if (newSurvey && newSurvey.questions !== undefined && newSurvey.questions == Array) {\n newSurvey.questions.foreach(function (question) {\n if (question.type === \"QCM\" && question.typeInformation !== undefined && question.typeInformation.answers !== undefined && question.typeInformation.answers == Array) {\n question.typeInformation.answers.foreach(function (answer) {\n var img = images.find(image => {\n return image == answer.imageId\n })\n if (img) {\n answer.imagePath = img.path;\n copiedImages.push(img);\n }\n });\n }\n });\n }\n return images.filter(image => {\n return !copiedImages.find(copiedImage => {\n copiedImage.id == image.id\n })\n });\n };\n \n deleteImages(images) {\n //FONCTION A REVOIR\n if (!images || images == null || !images.length) {\n return 1;\n }\n return 1;\n };\n \n async downloadNewImages(newSurvey) {\n var imageDownloaded = [];\n if (newSurvey && newSurvey.imageId && !imageDownloaded.includes(newSurvey.imageId)) {\n imageDownloaded.push(newSurvey.imageId);\n let image = await this.getImage(newSurvey.imageId);\n let data = await this.saveImage(image);\n newSurvey = this.setImagesPath(newSurvey, data.imageId, data.imagePath, data.imageUrl, data.imageWebUrl);\n newSurvey.cultures.forEach(async (culture) => {\n let imageFlag = await this.getImage(culture.imageFlagId);\n let data = await this.saveImage(imageFlag);\n culture.imageFlagPath = `data:image/jpeg;base64,${imageFlag.image_content}`;\n culture.imageFlagUrl = data.imageUrl;\n culture.imageFlagWebUrl = data.imageWebUrl;\n });\n }\n if (newSurvey && newSurvey.questions) {\n for (const question of newSurvey.questions) {\n if (question.type === \"QCM\" && question.typeInformation && question.typeInformation.answers && question.typeInformation.answers.length) {\n for (const answer of question.typeInformation.answers) {\n if (answer.imageId && !imageDownloaded.includes(answer.imageId)) {\n let imageAnswer = await this.getImage(answer.imageId);\n let imageInfo = await this.saveImage(imageAnswer);\n newSurvey = this.setImagesPath(newSurvey, answer.imageId, imageInfo.imagePath, imageInfo.imageUrl, imageInfo.imageWebUrl);\n imageDownloaded.push(answer.imageId);\n }\n }\n }\n }\n }\n return newSurvey;\n }\n \n getImage(imageId) {\n let config = {\n headers: {\n 'Api-Token': this.accountRepository.getApiKey(),\n }\n }\n \n let image = axios.get(`${configuration.API_HOST}/api/images/` + imageId, config).then(function(res) {\n return res.data.image;\n }).catch((error) => {\n console.log(\"Erreur get image %o\",error);\n });\n return image;\n };\n \n setImagesPath(survey, imageId, imagePath, imageUrl, imageWebUrl) {\n if (survey && survey.imageId && imageId == survey.imageId) {\n \n survey.imagePath = imagePath;\n survey.imageUrl = imageUrl;\n survey.imageWebUrl = imageWebUrl;\n }\n if (survey && survey.questions) {\n survey.questions.forEach(function (question) {\n if (question.type === \"QCM\" && question.typeInformation && question.typeInformation.answers) {\n question.typeInformation.answers.forEach(function (answer) {\n if (answer.imageId && answer.imageId == imageId) { \n answer.imagePath = imagePath;\n answer.imageUrl = imageUrl;\n answer.imageWebUrl = imageWebUrl; \n }\n });\n }\n });\n }\n return survey;\n };\n\n async saveImage(image) {\n\n var fileDest = image.id + '.' + image.file_name.split('.').pop();\n\n const savedImage = await Filesystem.writeFile({\n path: fileDest,\n data: image.image_content,\n directory: Directory.Data,\n });\n return {\n imageUrl: savedImage.uri,\n imageId: image.id,\n imagePath: fileDest,\n imageWebUrl: image.url\n }\n };\n deleteSurvey(survey) {\n var tmp = this.deleteImages(this.getSurveyImageIds(survey));\n this.surveyRepository.deleteSurvey();\n return tmp;\n };\n \n \n async getSurveysList() {\n let self = this;\n let surveysList = _.map(await self.accountRepository.getSurveyInfos(), function (survey) {\n if (survey.surveyId == self.surveyRepository.getCurrentSurveyId()) {\n return _.extend(survey, { 'isSelected': true });\n } else return _.extend(survey, { 'isSelected': false });\n })\n return _.uniqBy(surveysList, \"surveyId\");\n };\n\n /**\n V�rifie que des mises � jour sont disponibles\n */\n async checkSurvey() {\n const self = this;\n const currentSurvey = this.surveyRepository.getSurvey();\n let config = {\n headers: {\n 'Api-Token': this.accountRepository.getApiKey(),\n }\n };\n const currentSurveyId = currentSurvey.id;\n const timestamp = currentSurvey.timestamp;\n if (!_.isEmpty(currentSurvey) && currentSurvey.timestamp !== undefined) {\n var data = await axios.get(`${configuration.API_HOST}/api/checksurveys/${currentSurveyId}?timestamp=${timestamp}`, config)\n .then(function (response) {\n self.setUpdateAppAvailable(response.data.androidAppVersion);\n self.surveyRepository.setHasUpdateSurvey(response.data.hasUpdates);\n self.setConnected(true);\n })\n .catch((error) => {\n if (error.response != null && error.response.status == 401) {// le compte a �t� d�sactiv� \n this.accountRepository.setIsActivated(false);\n }\n else if (error.data != null && error.data.status == 410) {//la tablette a �t� supprim�e du compte DEPUIS L'ADMINISTRATION\n if (this.hasNotSentResults()) {\n this.sendResult();\n };//on envoie les donn�es\n }\n this.setConnected(false);\n });\n }\n return data;\n }\n\n \n async sendResult() { \n var self = this;\n var currentTimestamp = _.now();\n var form = this.answersRepository.getAnswersObject();\n var key = this.accountRepository.getClientKey();\n var surveyId = this.surveyRepository.getCurrentSurveyId();\n var tabletName = this.accountRepository.getTabletName();\n let IsActivated = self.accountRepository.getIsActivated();\n let content = {\n forms: form.forms,\n };\n let config = {\n headers: {\n 'Api-Token': this.accountRepository.getApiKey(),\n }\n };\n let infos = `?licenceKey=${key}&surveyId=${surveyId}&tabletName=${tabletName}×tamp=${currentTimestamp}`\n\n\n return axios.post(`${configuration.API_HOST}/api/answers${infos}`, content, config)\n .then(function(res) {\n self.answersRepository.resultSent();\n if(self.getIsWeb()){\n self.rememberAnonymous();\n }\n return 1;\n }).catch((error) => {\n if (IsActivated && error.response.status == 410) {//la tablette a �t� supprim�e du compte DEPUIS L'ADMINISTRATION\n self.answersRepository.resultSent();\n self.clearAccount();\n self.router.navigate(['/alertUnsubscribed'], { replaceUrl: true ,queryParamsHandling:'merge' });\n }\n return Promise.reject(error);\n });\n }\n\n clearAccount() {\n clearTimeout(this.surveyRepository.getUnusedSurveyTimer());\n clearTimeout(this.surveyRepository.getStartSurveyTimer());\n clearTimeout(this.getCheckUpdateSurveyTimer());\n var currentSurvey = this.surveyRepository.getSurvey();\n this.answersRepository.clearSentAnswers();\n this.deleteSurvey(currentSurvey);\n this.accountRepository.deleteAccount();\n this.accountRepository.resetParameters();\n }\n\n /**\n * Disconnect the current tablet from the account\n */\n async disconnect() {\n let config = {\n headers: {\n 'Api-Token': this.accountRepository.getApiKey(),\n }\n };\n var self = this;\n var data = await axios.delete(configuration.API_HOST + '/api/accounts', config)\n .then(async function (response) {\n if (self.hasSurvey()) {\n var currentSurvey = self.surveyRepository.getSurvey();\n if (self.hasNotSentResults()) {\n self.deleteSurvey(currentSurvey);\n await self.sendResult().then(function () {\n self.accountRepository.deleteAccount();\n self.accountRepository.resetParameters();\n self.answersRepository.clearSentAnswers(); \n });\n } else {\n self.deleteSurvey(currentSurvey);\n self.accountRepository.deleteAccount();\n self.accountRepository.resetParameters();\n self.answersRepository.clearSentAnswers(); \n }\n } else {\n if (self.hasNotSentResults()) {\n await self.sendResult().then(function () {\n self.accountRepository.deleteAccount();\n self.accountRepository.resetParameters();\n self.answersRepository.clearSentAnswers();\n });\n } else {\n self.accountRepository.deleteAccount();\n self.accountRepository.resetParameters();\n }\n };\n })\n .catch(function (error) {\n if (error.response.status == 401 || error.response.status == 400 || error.response.status == 200 || error.response.status == 405 || error.response.status == 410) {\n self.accountRepository.deleteAccount();\n }\n });\n clearTimeout(this.surveyRepository.getUnusedSurveyTimer());\n clearTimeout(this.surveyRepository.getStartSurveyTimer());\n clearTimeout(this.getCheckUpdateSurveyTimer());\n try {\n let files = await Filesystem.readdir({\n directory: Directory.Data,\n path: ``,\n });\n files.files.forEach(file => {\n Filesystem.deleteFile({\n directory: Directory.Data,\n path: file.name\n });\n }); \n }catch{\n console.log(\"Erreur image(s) non supprimée(s)\");\n }\n return data;\n };\n\n /**\n /* return if we still hold answers not sent to the server\n /* @returns {boolean}\n /*/\n hasNotSentResults() {\n return this.answersRepository.getForms().length != 0;\n }\n\n /**\n * Return list of answers stats for each form\n * @returns {*} [{\n sent: 44,\n sentAt: 1406887192630,\n id: 4,\n notSent: 12,\n title: \"Titre\"\n * },...]\n */\n getAnswersStats() {\n const self = this;\n return _(self.answersRepository.getForms()).union(self.answersRepository.getSentForms()).map(function (form) {\n return _(form)\n .extend({ \"notSent\": _.size(form.users) })\n .defaults(_.find(self.answersRepository.getSentForms(), { id: form.id }))\n .defaults({ \"sent\": 0, \"sentAt\": 0 })\n .omit('users')\n .value();\n })\n .uniq(function (form) {\n return form.id;\n }).value();\n };\n /**\n * return the last result sent timestamp\n * @returns {number} 0 never sent\n */\n getLastSentDate(){\n const self = this;\n return _.some(self.answersRepository.getSentForms(), 'sentAt') ? _.max(self.answersRepository.getSentForms(), 'sentAt').sentAt : undefined;\n };\n\n /**\n * clear the sent answer array, if it start to be too big the user can clean it.\n */\n clearSentAnswers() {\n this.answersRepository.clearSentAnswers();\n };\n\n //Récupére l'image stocké et la return en base 64\n async getImageBase64(imgPath){\n let img64 = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n let imageFlag = await Filesystem.readFile({\n directory: Directory.Data,\n path: imgPath,\n }).then((result) => {\n img64 = `data:image/jpeg;base64,${result.data}`;\n }).catch((error) =>{\n console.log(\"Error : \",imgPath);\n });\n return img64;\n }\n\n rememberAnonymous() {\n if (!this.anonymousHasAlreadyAnswered()) {\n var responses = this.getWebResponseCookie();\n var survey = this.surveyRepository.getSurvey();\n if (survey != undefined) {\n responses.push(survey.id.toString());\n var expiresDate = new Date();\n expiresDate.setTime(expiresDate.getTime() + (30 * 24 * 60 * 60 * 1000));\n document.cookie =\n \"ExpressyonWebResponse=\" + responses.join(',')\n + \"; expires=\" + expiresDate.toUTCString()\n + \"; path=/\";\n }\n }\n }\n\n anonymousHasAlreadyAnswered() {\n if (this.surveyRepository.getSurvey() == null) {\n return false;\n }\n var responses = this.getWebResponseCookie();\n for (var i = 0; i < responses.length; i++) {\n if (responses[i] == (this.surveyRepository.getSurvey().id).toString()) {\n return true;\n }\n }\n return false;\n }\n\n getWebResponseCookie() {\n var nameEQ = \"ExpressyonWebResponse=\";\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) == 0) {\n var responses = c.substring(nameEQ.length, c.length);\n return responses.split(',');\n }\n }\n return [];\n }\n\n}\n ","import { ChangeDetectorRef, Component, OnInit,HostListener } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AccountRepositoryService } from 'app/account-repository.service';\nimport { ExpressyonService } from 'app/expressyon.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AnswersRepositoryService } from '../answers-repository.service';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['../app.component.scss'],\n})\nexport class HeaderComponent implements OnInit {\n\n isWeb: boolean = false;\n isConnected: boolean;\n answersCount: number;\n isInAdminMode: Boolean = false;\n showReturn: Boolean = false;\n showMenu: Boolean = true;\n dropdownDisplay:boolean = false;\n IsUpdateAvailable:boolean;\n\n constructor(\n private accountRepository: AccountRepositoryService, \n private router: Router, \n private expressyonService: ExpressyonService,\n private answersRepository: AnswersRepositoryService, \n private changeDetector : ChangeDetectorRef)\n {\n this.isConnected = this.expressyonService.getNetworkStatus();\n\n this.answersRepository.answersCountChange.subscribe(value => {\n this.answersCount = value;\n this.changeDetector.detectChanges();\n });\n\n this.expressyonService.networkStatusChange.subscribe(value => {\n this.isConnected = value;\n this.changeDetector.detectChanges();\n });\n }\n \n\n ngOnInit(): void {\n this.answersCount = this.answersRepository.getAnwserCount();\n this.isInAdminMode = this.accountRepository.getIsInAdminMode();\n this.showReturn = this.accountRepository.isLogged() && this.expressyonService.hasValidSurvey() && this.router.url !== '/startSurvey';\n this.showMenu = this.router.url != '/';\n this.IsUpdateAvailable = this.expressyonService.getIsUpdateAppAvailable();\n this.isWeb = this.expressyonService.getIsWeb();\n }\n\n logout() {\n this.dropdownDisplay = false;\n this.router.navigate(['logout'], { replaceUrl: true ,queryParamsHandling:'merge' });\n }\n\n update() {\n if (!this.isConnected) {\n // Show an error to the client please\n return \n }\n this.dropdownDisplay = false;\n this.router.navigate(['update'], { replaceUrl: true ,queryParamsHandling:'merge' });\n }\n\n openAbout() {\n this.dropdownDisplay = false;\n this.router.navigate(['about'], { replaceUrl: true ,queryParamsHandling:'merge' });\n }\n\n openDevice() {\n this.dropdownDisplay = false;\n this.router.navigate(['device'], { replaceUrl: true ,queryParamsHandling:'merge' });\n }\n\n selectSurvey() {\n this.dropdownDisplay = false;\n this.router.navigate(['selectSurvey'], { replaceUrl: true ,queryParamsHandling:'merge' });\n }\n\n redirect() {\n this.dropdownDisplay = false;\n this.router.navigate(['startSurvey'], { replaceUrl: true ,queryParamsHandling:'merge' })\n }\n\n quitApp(){\n this.dropdownDisplay = false;\n this.router.navigate(['quit-app'], { replaceUrl: true ,queryParamsHandling:'merge' })\n }\n sendAnswers(){\n this.dropdownDisplay = false;\n this.router.navigate(['send-answers'], { replaceUrl: true ,queryParamsHandling:'merge' })\n }\n\n updateApp = function () {\n this.dropdownDisplay = false;\n this.router.navigate(['/update-app'], { replaceUrl: true ,queryParamsHandling:'merge' })\n };\n\n\n //Désactiver le menu si click à l'extérieur de celui ci\n wasInside\n @HostListener('click')\n clickInside() {\n this.wasInside = true;\n }\n\n @HostListener('document:click')\n clickout() {\n if (!this.wasInside) {\n this.dropdownDisplay = false;\n this.changeDetector.detectChanges();\n }\n this.wasInside = false;\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HistoryNavigationRepositoryService {\n \n constructor() { }\n \n history = [];\n \n getHistory = function() {\n return history;\n }\n ///Retourne l'id de la branche actuelle\n getCurrentBranch = function () {\n return this.history[this.history.length - 1].branchId;\n }\n \n ///Retourne l'id de la dernière question\n getLastQuestionId = function () {\n return this.history[this.history.length - 1].questionId;\n }\n \n ///Ajoute un élement dans l'historique de navigation (branche actuelle + id question actuelle)\n pushHistory = function (branchFromId, questionToId) {\n var currentHistory = {\n branchId: branchFromId,\n questionId: questionToId\n };\n this.history.push(currentHistory);\n };\n \n ///Supprime un élément de l'historique\n popHistory = function () {\n return this.history.pop();\n };\n \n resetHistory = function () {\n this.history = [];\n }\n \n isFirstQuestion = function() {\n return this.history.length == 1;\n }\n \n ///Retourne la taille du tableau de l'historique de navigation\n getHistorySize = function () {\n return this.history.length;\n }\n}\n\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\nimport { AccountRepositoryService } from 'app/account-repository.service';\nimport { ExpressyonService } from 'app/expressyon.service';\n@Component({\n selector: 'app-password-protected',\n templateUrl: './password-protected.component.html',\n styleUrls: ['./password-protected.component.scss'],\n})\n\nexport class PasswordProtectedComponent implements OnInit {\n\n isProtected: boolean = true;\n password;\n error: Boolean = false;\n customPlaceHolder;\n constructor(\n private accountRepository: AccountRepositoryService,\n private expressyonService: ExpressyonService,\n ) { }\n\n ngOnInit() {\n if (!this.expressyonService.hasDefaultPassword()) {\n this.customPlaceHolder =\" \";\n } else {\n this.customPlaceHolder = \"Defaut: 1111\";\n }\n }\n\n @Output() protectionChange = new EventEmitter();\n\n unlock(password) {\n if (!this.expressyonService.validatePassword(password)) {\n this.error = true;\n this.password = \"\";\n return\n }\n this.isProtected = false;\n this.protectionChange.emit(false);\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HeaderComponent } from './header/header.component';\nimport { PasswordProtectedComponent } from './password-protected/password-protected.component';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { FormsModule } from '@angular/forms';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport {HttpClient} from '@angular/common/http';\nimport {ConnectionComponent} from './connection/connection.component';\n\n@NgModule({\n declarations: [HeaderComponent, PasswordProtectedComponent,ConnectionComponent],\n imports: [\n CommonModule,\n NgbModule,\n FormsModule\n ],\n exports: [\n HeaderComponent,\n PasswordProtectedComponent,\n TranslateModule,\n CommonModule,\n ConnectionComponent,\n ]\n})\nexport class SharedModule { }\n","import { Injectable } from '@angular/core';\nimport { HistoryNavigationRepositoryService } from './history-navigation-repository.service';\nimport {TranslateService} from '@ngx-translate/core';\n\nexport class Question {\n id: number;\n title: [JSON];\n order;\n subtype;\n isOptionnal: Boolean;\n type: String;\n typeInformation: {\n answers: [JSON]\n }\n branch = Array();\n}\n\n\nexport class Culture {\n culture: string;\n title: string;\n subtitle: string;\n endText: string;\n startLabel: string;\n imageFlagPath: string;\n} \n\nexport class Survey {\n id: number;\n timestamp: number;\n expirationDate: number;\n imageId: number;\n imageUrl: string;\n imagePath: string;\n imageWebUrl: string;\n firstQuestion: number;\n defaultCulture: string;\n uniqueResponse: Boolean;\n cultures: [Culture];\n questions: [Question];\n displayMono: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SurveyRepositoryService {\n hasUpdateSurvey: Boolean = false;\n survey: Survey = this.getSurveyObject();\n currentQuestionId;\n selectedCulture;\n unusedSurveyTimer;\n startSurveyTimer;\n\n constructor(private translate: TranslateService,private historyNavigationRepository: HistoryNavigationRepositoryService) { }\n \n \n getHasUpdateSurvey = function () {\n return this.hasUpdateSurvey;\n }\n\n setHasUpdateSurvey = function (value) {\n this.hasUpdateSurvey = value;\n }\n \n getSurvey() {\n return this.survey;\n };\n \n setSurvey(survey) {\n this.survey = survey;\n this.saveSurveyObject(survey);\n };\n \n getImagePath() {\n return this.survey.imagePath;\n }\n \n getUnusedSurveyTimer = function () {\n return this.unusedSurveyTimer;\n };\n\n setUnusedSurveyTimer = function (value) {\n this.unusedSurveyTimer = value;\n };\n \n getStartSurveyTimer = function () {\n return this.startSurveyTimer;\n };\n\n setStartSurveyTimer = function (value) {\n this.startSurveyTimer = value;\n };\n\n getLocalizedText = function (titles, culture) {\n var text = titles.find(function (title) {\n return title[culture] != null;\n });\n if (text != undefined) {\n return text[culture];\n } else {\n return \"\";\n }\n};\n\nsetFieldEmpty = function (value) {\n this.answerField = value;\n //broadcastEmptyField(value); // observe \"value\" et regarde si elle change\n};\n\n deleteSurvey() {\n localStorage.removeItem('survey');\n this.survey = undefined;\n };\n \n getCurrentSurveyId() {\n if (this.survey && this.survey != null && this.survey.id) {\n return this.survey.id;\n } else {\n return 0;\n }\n };\n\n getSurveyObject() {\n var surveyString = localStorage.getItem('survey');\n return (surveyString) ? JSON.parse(surveyString) : {};\n }\n\n saveSurveyObject = function (currentSurvey) {\n var cache = [];\n localStorage.setItem('survey', JSON.stringify(currentSurvey, function (key, value) {\n if (typeof value === 'object' && value !== null) {\n if (cache.indexOf(value) !== -1) {\n // Circular reference found, discard key\n return;\n }\n // Store value in our collection\n cache.push(value);\n }\n return value;\n }));\n cache = null;\n };\n\n getCurrentQuestion(questionId) {\n return this.getSurvey().questions.find(function (obj) { return obj.id === questionId; });\n }\n \n getFirstQuestion() {\n return this.survey.firstQuestion;\n }\n \n getCurrentQuestionId() {\n return this.currentQuestionId;\n }\n \n setCurrentQuestionId(value) {\n this.currentQuestionId = value;\n };\n \n resetSurvey = function () {\n this.currentQuestionId = this.getFirstQuestion();\n this.selectedCulture = null;\n };\n \n getSelectedCulture() {\n if (this.selectedCulture == null) {\n return this.survey.defaultCulture;\n }\n return this.selectedCulture;\n };\n \n setSelectedCulture(value) {\n this.translate.use(value);\n this.survey.defaultCulture = value;\n };\n\n getCurrentTitle = function () {\n return this.survey.title;\n };\n\n getNextQuestion(answers, currentAnswerId, currentBranch) {\n var result;\n var currentAnswer = answers.find(el => el.id == currentAnswerId);\n\n if (!currentAnswer)\n return null;\n\n var next = currentAnswer.questionsNext;\n\n if (!next)\n return null;\n return next.find(el => el.branchFrom == currentBranch);\n }\n\n manageNavigationNextQuestion = function (answers, currentAnswerId, currentBranch) {\n var nextQuestion = this.getNextQuestion(answers, currentAnswerId, currentBranch);\n if (!nextQuestion)\n return;\n this.historyNavigationRepository.pushHistory(nextQuestion.branchTo, nextQuestion.questionTo);\n this.setCurrentQuestionId(nextQuestion.questionTo);\n }\n\n manageNavigationPreviousQuestion = function () {\n this.historyNavigationRepository.popHistory();\n var previousQuestion = this.historyNavigationRepository.getLastQuestionId();\n this.setCurrentQuestionId(previousQuestion);\n }\n\n isDisplayMonoPage() {\n return this.survey.displayMono;\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","//\r\n// ===== File globals.ts \r\n//\r\n'use strict';\r\n\r\nexport const API_HOST = \"https://www.expressyon.com\";\r\n// export const API_HOST = \"https://127.0.0.1:8000\";\r\nexport const APP_VERSION: string = \"3.0.5\";","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n","var map = {\n\t\"./ion-accordion_2.entry.js\": [\n\t\t70079,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-accordion_2_entry_js\"\n\t],\n\t\"./ion-action-sheet.entry.js\": [\n\t\t25593,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js\"\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t13225,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-alert_entry_js\"\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t4812,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-app_8_entry_js\"\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t86655,\n\t\t\"node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js\"\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t44856,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-back-button_entry_js\"\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t13059,\n\t\t\"node_modules_ionic_core_dist_esm_ion-backdrop_entry_js\"\n\t],\n\t\"./ion-breadcrumb_2.entry.js\": [\n\t\t58648,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-breadcrumb_2_entry_js\"\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t98308,\n\t\t\"node_modules_ionic_core_dist_esm_ion-button_2_entry_js\"\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t44690,\n\t\t\"node_modules_ionic_core_dist_esm_ion-card_5_entry_js\"\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t64090,\n\t\t\"node_modules_ionic_core_dist_esm_ion-checkbox_entry_js\"\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t36214,\n\t\t\"node_modules_ionic_core_dist_esm_ion-chip_entry_js\"\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t69447,\n\t\t\"node_modules_ionic_core_dist_esm_ion-col_3_entry_js\"\n\t],\n\t\"./ion-datetime-button.entry.js\": [\n\t\t17950,\n\t\t\"default-node_modules_ionic_core_dist_esm_parse-250f021a_js-node_modules_ionic_core_dist_esm_t-7df007\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime-button_entry_js\"\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t79689,\n\t\t\"default-node_modules_ionic_core_dist_esm_parse-250f021a_js-node_modules_ionic_core_dist_esm_t-7df007\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js\"\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t18840,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-fab_3_entry_js\"\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t40749,\n\t\t\"node_modules_ionic_core_dist_esm_ion-img_entry_js\"\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t69667,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js\"\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t83288,\n\t\t\"node_modules_ionic_core_dist_esm_ion-input_entry_js\"\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t35473,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js\"\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t53634,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item_8_entry_js\"\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t22855,\n\t\t\"node_modules_ionic_core_dist_esm_ion-loading_entry_js\"\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t495,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-menu_3_entry_js\"\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t58737,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-modal_entry_js\"\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t99632,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-nav_2_entry_js\"\n\t],\n\t\"./ion-picker-column-internal.entry.js\": [\n\t\t54446,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-column-internal_entry_js\"\n\t],\n\t\"./ion-picker-internal.entry.js\": [\n\t\t32275,\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-internal_entry_js\"\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t48050,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-popover_entry_js\"\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t18994,\n\t\t\"node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js\"\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t23592,\n\t\t\"node_modules_ionic_core_dist_esm_ion-radio_2_entry_js\"\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t35454,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-range_entry_js\"\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t290,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js\"\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t92666,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js\"\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t64816,\n\t\t\"node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js\"\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t45534,\n\t\t\"node_modules_ionic_core_dist_esm_ion-route_4_entry_js\"\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t94902,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-searchbar_entry_js\"\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t91938,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-segment_2_entry_js\"\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t14832,\n\t\t\"node_modules_ionic_core_dist_esm_ion-select_3_entry_js\"\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t90668,\n\t\t\"node_modules_ionic_core_dist_esm_ion-slide_2_entry_js\"\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t61624,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-spinner_entry_js\"\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t19989,\n\t\t\"node_modules_ionic_core_dist_esm_ion-split-pane_entry_js\"\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t28902,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js\"\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t70199,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab_2_entry_js\"\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t48395,\n\t\t\"node_modules_ionic_core_dist_esm_ion-text_entry_js\"\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t96357,\n\t\t\"node_modules_ionic_core_dist_esm_ion-textarea_entry_js\"\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t38268,\n\t\t\"node_modules_ionic_core_dist_esm_ion-toast_entry_js\"\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t15269,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-toggle_entry_js\"\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t32875,\n\t\t\"node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 50863;\nmodule.exports = webpackAsyncContext;"],"names":["Injectable","AccountRepositoryService","SurveyRepositoryService","Router","axios","Filesystem","Directory","_","AnswersRepositoryService","Network","configuration","Device","Subject","ExpressyonService","constructor","accountRepository","surveyRepository","router","answersRepository","deviceInfos","getInfo","deviceId","getId","device","model","platform","uuid","osVersion","isConnected","checkUpdateSurveyTimer","getPassword","toUpperCase","password","toString","getSuperPassword","isConnectedChange","subscribe","value","networkStatusChange","networkStatus","getNetworkStatus","setNetworkStatus","sendInfos","next","setConnected","getConnected","setPreview","isPreview","getPreview","hasSurvey","getSurvey","id","setIsWeb","isWeb","getIsWeb","getIsUpdateAppAvailable","isUpdateAppAvailable","setUpdateAppAvailable","serverAppVersion","splittedServerAppVersion","replace","splittedAppVersion","getAppVersion","parseInt","login","key","name","status","self","isLogged","config","APP_VERSION","defaults","data","post","API_HOST","then","res","setApiKey","apiToken","setClientKey","setAccountName","setTimeStamp","timestamp","setPassword","setSuperPassword","superPassword","setIsInAdminMode","isInAdminMode","setSurveyInfos","surveysInfos","setTabletName","tabletName","saveTabletInfos","undefined","sendDatas","catch","error","response","weblogin","survey_id","licenceKey","appVersion","accountName","updateAccount","headers","getApiKey","get","getTimeStamp","getIsInAdminMode","currentSurvey","find","getSurveyInfos","survey","surveyId","getCurrentSurveyId","updateSurvey","deleteSurvey","console","log","hasValidSurvey","expirationDate","Math","floor","Date","now","sendResult","TypeError","infos","getDeviceInfos","getStatus","connected","message","setIsActivated","disconnect","navigate","replaceUrl","queryParamsHandling","handleError","hasNotSentResults","clearAccount","handleSuccess","hasUpdateSurvey","currentImages","getSurveyImageIds","toDelete","copyOldImagesToSurvey","downloadNewImages","surveyWhitImg","deleteImages","setSurvey","image","imageId","push","path","imagePath","questions","Array","forEach","question","type","typeInformation","answers","foreach","answer","filter","el","i","a","indexOf","newSurvey","images","copiedImages","surveyLogo","img","copiedImage","length","imageDownloaded","includes","getImage","saveImage","setImagesPath","imageUrl","imageWebUrl","cultures","culture","imageFlag","imageFlagId","imageFlagPath","image_content","imageFlagUrl","imageFlagWebUrl","imageAnswer","imageInfo","fileDest","file_name","split","pop","savedImage","writeFile","directory","Data","uri","url","tmp","getSurveysList","surveysList","map","extend","uniqBy","checkSurvey","currentSurveyId","isEmpty","androidAppVersion","setHasUpdateSurvey","hasUpdates","currentTimestamp","form","getAnswersObject","getClientKey","getTabletName","IsActivated","getIsActivated","content","forms","resultSent","rememberAnonymous","Promise","reject","clearTimeout","getUnusedSurveyTimer","getStartSurveyTimer","getCheckUpdateSurveyTimer","clearSentAnswers","deleteAccount","resetParameters","delete","files","readdir","file","deleteFile","getForms","getAnswersStats","union","getSentForms","size","users","omit","uniq","getLastSentDate","some","max","sentAt","getImageBase64","imgPath","img64","readFile","result","anonymousHasAlreadyAnswered","responses","getWebResponseCookie","expiresDate","setTime","getTime","document","cookie","join","toUTCString","nameEQ","ca","c","charAt","substring","providedIn"],"sourceRoot":"webpack:///","x_google_ignoreList":[15]}