{"version":3,"sources":["./src/app/_providers/window.provider.ts","./src/app/_services/console-logger.service.ts","./src/app/_services/reCaptchaConfig.service.ts","./src/environments/environment.ts","./src/app/_services/service-base.ts","./src/app/_services/voc.service.ts","./src/app/missing-translation-handler.ts","./src/app/_services/custom-validation.service.ts","./src/interceptors/referer.interceptor.ts","./src/app/_resolvers/brandingInfo.resolver.ts","./src/app/recaptcha/recaptcha.component.ts","./src/app/recaptcha/recaptcha.component.html","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/loading-spinner/loading-spinner.component.ts","./src/app/loading-spinner/loading-spinner.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/_models/survey-answer.ts","./src/app/app.module.ts","./src/app/routes.ts","./src/app/_models/reCaptchaOption.ts","./src/$_lazy_route_resource lazy namespace object","./src/app/_resolvers/survey.resolver.ts","./src/app/_models/theme.ts","./src/app/_models/config.model.ts","./src/app/_services/config.service.ts","./src/app/_services/shared.service.ts","./src/app/_services/language.service.ts","./src/app/_models/branch.ts","./src/app/environments/environment.ts","./src/app/_services/survey.service.ts","./src/main.ts","./src/app/survey/survey.component.ts","./src/app/survey/survey.component.html"],"names":[],"mappings":"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AAuB;QACrC,+CAA+C;QAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,oCAAO,GAAd;QACE,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SAC3B;aAAM;YACL,kDAAkD;YAClD,qEAAqE;YACrE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC7B;IACH,CAAC;wFA3CU,kBAAkB;sGAAlB,kBAAkB;;;;;;YCV/B,sEACE;YAAA,4HAAoJ;YACtJ,4DAAM;;YADgF,0DAAiB;YAAjB,+EAAiB;;6BDDvG;CAsDC;AA5C8B;6FAAlB,kBAAkB;cAL9B,uDAAS;eAAC;gBACT,QAAQ,EAAE,eAAe;gBACzB,WAAW,EAAE,4BAA4B;gBACzC,SAAS,EAAE,CAAC,2BAA2B,CAAC;aACzC;uHAE0B,UAAU;kBAAlC,uDAAS;mBAAC,YAAY;;;;;;;;;;;;;AEXzB;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;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2B;;;;;;;;;;;;ACvSA;AAAA;AAAA;AAAsG;;AAEtG;IAaE;QACE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAC3C,CAAC;IAED,6CAAW,GAAX,UAAY,OAAsB;QAChC,4DAA4D;QAE5D,IAAG,OAAO,CAAC,gBAAgB,EAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC;SAC1D;IACH,CAAC;kGAjBU,uBAAuB;2GAAvB,uBAAuB;YCRpC,sEACI;YAAA,yEACI;YAAA,qEAAI;YAAA,uDAAiB;YAAA,4DAAK;YAC9B,4DAAM;YACN,yEACI;YAAA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","file":"main.26dd888594e34a0715c7.js","sourcesContent":["import { InjectionToken, FactoryProvider } from '@angular/core';\n\nexport const WINDOW = new InjectionToken<Window>('window');\n\nconst windowProvider: FactoryProvider = {\n  provide: WINDOW,\n  useFactory: () => window\n};\n\nexport const WINDOW_PROVIDERS = [windowProvider];\n","import { Injectable } from '@angular/core';\nimport { ConfigService } from './config.service';\nimport { LogLevel } from '../_models/config.model';\n\nexport enum LogType {\n  Info = 0,\n  Warning,\n  Error,\n  Success\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ConsoleLoggerService {\n  private infoColor = '#1f69e0';\n  private errorColor = '#d32f19';\n  private warningColor = '#ffcc00';\n  private successColor = '#91c40f';\n\n  constructor(private configService: ConfigService) {}\n\n  public info(msg: string, from?: string, obj?: any) {\n    this.log(msg, from, obj, LogType.Info);\n  }\n\n  public success(msg: string, from?: string, obj?: any) {\n    this.log(msg, from, obj, LogType.Success);\n  }\n\n  public warning(msg: string, from?: string, obj?: any) {\n    this.log(msg, from, obj, LogType.Warning);\n  }\n\n  public error(obj: any, from?: string, msg?: string): void {\n    this.log(msg, from, obj, LogType.Error);\n  }\n\n  public log(msg: string, from: string, obj: any, type: LogType) {\n    if (this.configService.config.logging.level === LogLevel.none) {\n      return;\n    }\n\n    const infoStyle = `color: ${this.infoColor}`;\n    const infoLabelStyle = `color: white; background-color: ${this.infoColor}`;\n\n    const errorLabel = `color: ${this.errorColor}`;\n    const errorLabelStyle = `color: white; background-color: ${this.errorColor}`;\n\n    const successLabel = `color: ${this.successColor}`;\n    const successLabelStyle = `color: white; background-color: ${this.successColor}`;\n\n    const warningLabel = `color: ${this.warningColor}`;\n    const warningLabelStyle = `color: white; background-color: ${this.warningColor}`;\n\n    if (obj === undefined) {\n      obj = '';\n    }\n\n    if (from === undefined) {\n      from = 'GENERAL';\n    }\n\n    if (msg === undefined) {\n      msg = '';\n    }\n\n    switch (type) {\n      case LogType.Info:\n        if (this.configService.config.logging.level < LogLevel.verbose) {\n          return;\n        }\n\n        console.log(`%c INFO ` + `%c FROM: ${from} ` + `%c ${msg}`, infoLabelStyle, infoLabelStyle, infoStyle, obj);\n        break;\n\n      case LogType.Error:\n        console.log(`%c ERROR ` + `%c FROM: ${from} ` + `%c ${msg}`, errorLabelStyle, errorLabelStyle, errorLabel, obj);\n        break;\n\n      case LogType.Success:\n        console.log(`%c SUCCESS ` + `%c FROM: ${from} ` + `%c ${msg}`, successLabelStyle, successLabelStyle, successLabel, obj);\n        break;\n\n      case LogType.Warning:\n        if (this.configService.config.logging.level < LogLevel.warning) {\n          return;\n        }\n\n        console.log(`%c WARNING ` + `%c FROM: ${from} ` + `%c ${msg}`, warningLabelStyle, warningLabelStyle, warningLabel, obj);\n        break;\n\n      default:\n        console.log(msg, obj);\n        break;\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { SurveyService } from './survey.service';\nimport { ReCaptchaOption } from '../_models/reCaptchaOption';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ReCaptchaConfigService {\n  private recaptchaOption: ReCaptchaOption;\n\n  constructor(private surveyService: SurveyService) {\n  }\n\n  public get config(): ReCaptchaOption {\n    return this.recaptchaOption;\n  }\n\n  public async init(): Promise<ReCaptchaOption> {\n    try {\n      const result = await this.surveyService.getReCaptcha();\n      this.recaptchaOption = result;\n    } catch {\n      // No need to cause any error if this isn't loaded.\n      this.recaptchaOption = {\n        isEnabled: false,\n        siteKey: null,\n        projectId: null\n      };\n    }\n    return this.recaptchaOption;\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","import { environment } from '../environments/environment';\nimport { ConfigService } from './config.service';\n\nexport class ServiceBase {\n  private baseUrl: string;\n\n  constructor(protected configService: ConfigService, private modulePath: string) {\n    this.baseUrl = `${this.configService.config.api.baseUrl}/api${modulePath}`;\n  }\n\n  protected getUrl(...endpoints: string[]): string {\n    const list: string[] = [];\n    endpoints.forEach(el => {\n      if (el) {\n        list.push(el.replace('/', ''));\n      }\n\n      if (!el || !list[list.length - 1]) {\n        throw new Error('Endpoint cannot be null or empty');\n      }\n    });\n\n    return `${this.baseUrl}/${list.join('/')}`;\n  }\n}\n","import { environment } from '../environments/environment';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ServiceBase } from './service-base';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class VocService {\n  private environment = environment;\n\n  constructor(private http: HttpClient, configService: ConfigService) {\n  }\n\n  public getAssemblyVersion() {\n    const url = `/api/core${environment.assemblyVersionEndPoint}`;\n\n    return this.http.get(url, { responseType: 'text' });\n  } \n}\n","import { MissingTranslationHandler, MissingTranslationHandlerParams } from '@ngx-translate/core';\n\nexport class CustomMissingTranslationHelper implements MissingTranslationHandler {\n  handle(params: MissingTranslationHandlerParams) {\n    if (params.interpolateParams) {\n      // tslint:disable-next-line: no-string-literal\n      return params.interpolateParams['Default'] || params.key;\n    }\n    return params.key;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ServiceBase } from './service-base';\nimport { ConfigService } from './config.service';\nimport { environment } from '../environments/environment';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CustomValidationService {\n  private environment = environment;\n\n  constructor(private http: HttpClient) { }\n\n  public validate(url: string, code?: string): Promise<any> {\n    let slash = '/';\n\n    if (url.substr(url.length - 1) === '/') {\n      slash = '';\n    }\n\n    if (code) {\n      return this.http.get<any>(`${url}${slash}${code}`).toPromise();\n    }\n\n    return this.http.get<any>(`${url}`).toPromise();\n  }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';\nimport { WINDOW } from 'src/app/_providers/window.provider';\n\n@Injectable()\nexport class RefererInterceptor implements HttpInterceptor {\n    constructor(@Inject(WINDOW) private window: Window) { }\n\n    intercept(req: HttpRequest<any>, next: HttpHandler) {\n        const location = this.window.location;\n        const referer = `${location.protocol}//${location.host}${location.pathname}`;\n\n        const authReq = req.clone({\n            setHeaders: {\n                'x-hexa-referer': referer\n            }\n        });\n        return next.handle(authReq);\n    }\n}\n","import { Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\nimport { Injectable, Inject } from '@angular/core';\nimport { SurveyService } from '../_services/survey.service';\nimport { ConsoleLoggerService } from '../_services/console-logger.service';\nimport { BrandingInfo } from '../_models/brandingInfo';\nimport { LanguageService } from '../_services/language.service';\nimport { SessionStorageService } from 'angular-web-storage';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class BrandingInfoResolver implements Resolve<BrandingInfo> {\n  private languageKey = 'languageKey';\n\n  constructor(private surveyService: SurveyService, private languageService: LanguageService, private session: SessionStorageService, private logger: ConsoleLoggerService) {}\n\n  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {\n    // THE CODE WAS REMOVED TO HAVE THE MULTI LANGUAGE WORKING\n    return null;\n  }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { RecaptchaComponent as NgRecaptchaComponent, RecaptchaSettings } from 'ng-recaptcha';\nimport { Observable, Subject } from 'rxjs';\nimport { ReCaptchaOption } from '../_models/reCaptchaOption';\n\n@Component({\n  selector: 'app-recaptcha',\n  templateUrl: './recaptcha.component.html',\n  styleUrls: ['./recaptcha.component.css'],\n})\nexport class RecaptchaComponent implements OnInit {\n  @ViewChild('captchaRef') captchaRef: NgRecaptchaComponent;\n  private tokenBehavior = new Subject<string>();\n  public isEnabled: boolean;\n  public model: RecaptchaSettings;\n\n  /**\n   * Subscribe to the Observable to receive the recaptcha token after the challenge is issued.\n   * After subscribing, call execute() to start the challenge.\n   * Check against null but empty string represent a disabled recaptcha.\n   */\n  public token: Observable<string> = this.tokenBehavior.asObservable();\n\n  constructor(recaptchaOption: ReCaptchaOption) {\n    this.isEnabled = recaptchaOption.isEnabled;\n\n    this.model = {\n      size: 'invisible',\n      siteKey: recaptchaOption.siteKey,\n    };\n  }\n\n  ngOnInit() {}\n\n  /**\n   * Automatically called by recaptcha once the challenge have passed.\n   */\n  public resolved(captchaResponse: string) {\n    // Automatically called once recaptcha resolved\n    this.tokenBehavior.next(captchaResponse);\n  }\n\n  /**\n   * Subscribe to the token observable before calling execute()\n   */\n  public execute(): void {\n    if (this.isEnabled) {\n      this.captchaRef.execute();\n    } else {\n      // If it's disabled, recaptcha will never resolve.\n      // Set token to empty string to communicate that it's been processed.\n      this.tokenBehavior.next('');\n    }\n  }\n}\n","<div>\n  <re-captcha class=\"reCaptcha\" #captchaRef=\"reCaptcha\" (resolved)=\"resolved($event)\" *ngIf=\"isEnabled\" [siteKey]=\"model.siteKey\" [size]=\"model.size\"></re-captcha>\n</div>","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-ps\": \"TJgH\",\n\t\"./ar-ps.js\": \"TJgH\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku-kmr\": \"dVgr\",\n\t\"./ku-kmr.js\": \"dVgr\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","import { Component, OnInit, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'app-loading-spinner',\n  templateUrl: './loading-spinner.component.html',\n  styleUrls: ['./loading-spinner.component.scss'],\n  encapsulation: ViewEncapsulation.Emulated\n})\nexport class LoadingSpinnerComponent implements OnChanges {\n  // tslint:disable-next-line: no-input-rename\n  @Input('show-spinner') showSpinnerInput: boolean;\n  @Input('loading-text') loadingText: string;\n\n  public showSpinner: boolean;\n\n  constructor() {\n    this.showSpinner = this.showSpinnerInput;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    // this.logger.info('Changes', 'SpinnerComponent', changes);\n\n    if(changes.showSpinnerInput){\n      this.showSpinner = changes.showSpinnerInput.currentValue;\n    }\n  }\n}\n","<div>\n    <div class=\"loading-text\">\n        <h1>{{ loadingText }}</h1>\n    </div>\n    <div class=\"loading-img\">\n        <img src=\"../../assets/spinner.svg\">\n    </div>\n</div>","import { Component, OnInit, ChangeDetectorRef, AfterViewInit } from '@angular/core';\nimport { SharedService } from './_services/shared.service';\nimport { ConsoleLoggerService } from './_services/console-logger.service';\nimport { VocService } from './_services/voc.service';\nimport { Meta } from '@angular/platform-browser';\n\n@Component({\n  selector: 'app-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements AfterViewInit {\n  title = 'voc-client';\n  public showLoaderOverlay: boolean;\n  public overlayHeight: string;\n\n  constructor(\n    private sharedService: SharedService,\n    private logger: ConsoleLoggerService,\n    private changeDetector: ChangeDetectorRef,\n    private vocService: VocService,\n    private meta: Meta\n  ) {}\n\n  ngAfterViewInit(): void {\n    this.sharedService.showLoader.subscribe((show) => {\n      this.showLoaderOverlay = show;\n      this.changeDetector.detectChanges();\n    });\n\n    this.sharedService.pageHeight.subscribe((height) => {\n      this.overlayHeight = `${height}px`;\n      this.changeDetector.detectChanges();\n    });\n\n    this.vocService.getAssemblyVersion().subscribe((data) => {\n      this.meta.addTag({ name: 'version', content: data });\n    });\n  }\n}\n","<div class=\"loading-overlay\" *ngIf=\"showLoaderOverlay\" style=\"height:{{ overlayHeight }}\"></div>\n<router-outlet></router-outlet>\n","import { FormAnswer } from './form-answer';\nexport interface SurveyAnswer {\n  id: string;\n  surveyId: string;\n  state: SurveyState;\n  answersJson: FormAnswer[] | any;\n  timezoneOffset: number;\n  answerLanguage: string;\n  pageDisplayed: boolean;\n}\n\nexport enum SurveyState {\n  InProgress = 0,\n  Completed = 1\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\n\nimport { AppComponent } from './app.component';\nimport { HttpClientModule, HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { RouterModule } from '@angular/router';\nimport { appRoutes } from './routes';\nimport { SurveyResolver } from './_resolvers/survey.resolver';\nimport { SurveyComponent } from './survey/survey.component';\nimport { WINDOW_PROVIDERS } from './_providers/window.provider';\nimport { ConfigService } from './_services/config.service';\nimport { AngularWebStorageModule } from 'angular-web-storage';\nimport { TranslateModule, TranslateLoader, MissingTranslationHandler } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { CustomMissingTranslationHelper } from './missing-translation-handler';\nimport { LoadingSpinnerComponent } from './loading-spinner/loading-spinner.component';\nimport { RecaptchaModule, RecaptchaFormsModule } from 'ng-recaptcha';\nimport { ReCaptchaConfigService } from './_services/reCaptchaConfig.service';\nimport { SurveyService } from './_services/survey.service';\nimport { RecaptchaComponent } from './recaptcha/recaptcha.component';\nimport { ReCaptchaOption } from './_models/reCaptchaOption';\nimport { RefererInterceptor } from 'src/interceptors/referer.interceptor';\n\nlet recaptchaConfig: ReCaptchaConfigService;\n\nexport function initialize(config: ConfigService, httpClient: HttpClient): () => Promise<boolean> {\n  return (): Promise<boolean> => {\n    return new Promise<boolean>((resolve: (a: boolean) => void): void => {\n      config.init.then(() => {\n        const surveyService = new SurveyService(httpClient, config);\n        recaptchaConfig = new ReCaptchaConfigService(surveyService);\n\n        recaptchaConfig.init().then(() => {\n          resolve(true);\n        });\n      });\n    });\n  };\n}\n\nexport function getRecaptchaOption(): ReCaptchaOption {\n  const option = recaptchaConfig.config;\n  return option;\n}\n\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(http: HttpClient) {\n  return new TranslateHttpLoader(http, './assets/i18n/', '.json');\n}\n\n@NgModule({\n  declarations: [AppComponent, SurveyComponent, LoadingSpinnerComponent, RecaptchaComponent],\n  imports: [\n    BrowserModule,\n    HttpClientModule,\n    RouterModule.forRoot(appRoutes, {\n      scrollPositionRestoration: 'enabled',\n    }),\n    AngularWebStorageModule,\n    RecaptchaModule,\n    RecaptchaFormsModule,\n    TranslateModule.forRoot({\n      missingTranslationHandler: { provide: MissingTranslationHandler, useClass: CustomMissingTranslationHelper },\n      loader: {\n        provide: TranslateLoader,\n        useFactory: HttpLoaderFactory,\n        deps: [HttpClient]\n      }\n    })\n  ],\n  providers: [\n    {\n      provide: APP_INITIALIZER,\n      useFactory: initialize,\n      multi: true,\n      deps: [ConfigService, HttpClient]\n    },\n    {\n      provide: HTTP_INTERCEPTORS,\n      useClass: RefererInterceptor,\n      multi: true\n    },\n    {\n      provide: ReCaptchaOption,\n      useFactory: getRecaptchaOption,\n      deps: [ConfigService, HttpClient]\n    },\n    SurveyResolver,\n    WINDOW_PROVIDERS\n  ],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Routes, Resolve } from '@angular/router';\nimport { SurveyResolver } from './_resolvers/survey.resolver';\nimport { AppComponent } from './app.component';\nimport { SurveyComponent } from './survey/survey.component';\nimport { BrandingInfoResolver } from './_resolvers/brandingInfo.resolver';\n\nexport const appRoutes: Routes = [\n  { path: ':path', component: SurveyComponent, runGuardsAndResolvers: 'always', resolve: { survey: SurveyResolver, branding: BrandingInfoResolver } },\n  { path: '', component: SurveyComponent, runGuardsAndResolvers: 'always', resolve: { survey: SurveyResolver, branding: BrandingInfoResolver } },\n  { path: '**', component: SurveyComponent, runGuardsAndResolvers: 'always', resolve: { survey: SurveyResolver, branding: BrandingInfoResolver } }\n];\n","export class ReCaptchaOption {\n    projectId: string;\n    isEnabled: boolean;\n    siteKey: string;\n}","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"crnd\";","import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\nimport { Injectable, Inject } from '@angular/core';\nimport { SurveyService } from '../_services/survey.service';\nimport { Survey } from '../_models/survey';\nimport { ConsoleLoggerService } from '../_services/console-logger.service';\nimport { Observable, of } from 'rxjs';\nimport { map, catchError } from 'rxjs/operators';\n\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SurveyResolver implements Resolve<Survey> {\n  constructor(private surveyService: SurveyService, private logger: ConsoleLoggerService) { }\n\n  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {\n    if (route.queryParams.code) {\n      return this.surveyService.getSurvey(route.queryParams.code).pipe(\n        map((res: Survey) => res),\n        catchError((httpError, obj) => {\n          if (httpError.status === 412 || httpError.status === 409) {\n            return of({ errorResult: httpError });\n          }\n          if (httpError.status === 301) {\n            window.location.replace(httpError.error);\n            return of({ errorResult: httpError });\n          }\n        })\n      );\n    } else {\n      return this.surveyService.getSurvey().pipe(\n        map((res: Survey) => res),\n        catchError((httpError, obj) => {\n          if (httpError.status === 412 || httpError.status === 409) {\n            return of({ errorResult: httpError });\n          }\n          if (httpError.status === 301) {\n            window.location.replace(httpError.error);\n            return of({ errorResult: httpError });\n          }\n        })\n      );\n    }\n  }\n}\n","export interface Theme {\n    type: ThemeType\n}\n\nexport enum ThemeType {\n    default = \"0\",\n    bootstrap_material_design = \"1\"\n}","export enum LogLevel {\n  none = 0,\n  info = 1,\n  warning = 2,\n  verbose = 3\n}\n\nexport interface Config {\n  readonly logging: LoggingConfig;\n\n  readonly api: ApiConfig;\n}\n\nexport interface LoggingConfig {\n  readonly level: LogLevel;\n}\n\nexport interface ApiConfig {\n  readonly baseUrl: string;\n  readonly modules: ModulesConfig;\n}\n\nexport interface ModulesConfig {\n  readonly voc: VocModuleConfig;\n}\n\nexport interface ModuleConfigBase {\n  readonly path: string;\n}\n\nexport interface VocModuleConfig extends ModuleConfigBase {}\n","import { Injectable } from '@angular/core';\nimport { Config } from '../_models/config.model';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ConfigService {\n  private innerConfig: Config;\n  private initPromise: Promise<Config>;\n\n  constructor(private http: HttpClient) {\n  }\n\n  public get config(): Config {\n    return this.innerConfig;\n  }\n\n  public get init(): Promise<Config> {\n    if (this.initPromise === undefined) {\n      this.initPromise = this.http\n        .get<Config>('../config.json')\n        .toPromise()\n        .then(config => (this.innerConfig = config));\n    }\n\n    return this.initPromise;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ConsoleLoggerService } from './console-logger.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SharedService {\n  private showLoaderBahavior: BehaviorSubject<boolean> = new BehaviorSubject(false);\n  private pageHeightBahavior: BehaviorSubject<number> = new BehaviorSubject(0);\n  public showLoader: Observable<boolean> = this.showLoaderBahavior.asObservable();\n  public pageHeight: Observable<number> = this.pageHeightBahavior.asObservable();\n\n  constructor(private logger: ConsoleLoggerService) {}\n\n  public setShowLoader(show: boolean): void {\n    this.showLoaderBahavior.next(show);\n  }\n\n  public setPageHeight(height: number): void {\n    this.pageHeightBahavior.next(height);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { SurveyService } from './survey.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LanguageService {\n  private languageRegex = /((\\w+)-?\\w*)/;\n  private supportedLanguages: string[]; // = ['en', 'fr', 'en-CA', 'EN', 'FR'];\n\n  /**\n   *\n   */\n  constructor(private surveyService: SurveyService) {}\n\n  public loadSupportedLanguages(supportedLanguages: string): void {\n    this.supportedLanguages = supportedLanguages.split(',');\n  }\n\n  public getLanguage(languages: readonly string[]): string {\n    return this.getSpecificLanguage(languages);\n  }\n\n  private getSpecificLanguage(languages: readonly string[]): string {\n    var generalLanguages = this.getGeneralLanguages(languages);\n    var specificLanguage = undefined;\n\n    // try {\n    //   var BreakException = {};\n\n    //   this.supportedLanguages.forEach(lang => {\n    //     var languageToLookUp = this.languageRegex.exec(lang).groups.specific;\n\n    //     generalLanguages.forEach(gLang => {\n    //       var specificLanguage = this.languageRegex.exec(gLang).groups.specific;\n    //       if (specificLanguage === languageToLookUp) {\n    //         specificLanguage = this.languageRegex.exec(gLang).groups.specific;\n    //         throw BreakException;\n    //       }\n    //     });\n    //   });\n    // } catch (BreakException) {}\n\n    this.supportedLanguages.some((lang) => {\n      var languageToLookUp = this.languageRegex.exec(lang)[1];\n\n      return generalLanguages.some((gLang) => {\n        var specificLanguage = this.languageRegex.exec(gLang)[1];\n        if (specificLanguage === languageToLookUp) {\n          specificLanguage = this.languageRegex.exec(gLang)[1];\n          return true;\n        }\n\n        return false;\n      });\n    });\n\n    if (specificLanguage === undefined) {\n      specificLanguage = generalLanguages[0];\n\n      generalLanguages.forEach((gLang) => {\n        var languageToLookUp = this.languageRegex.exec(gLang);\n        if (languageToLookUp[2] === languageToLookUp[1]) {\n          specificLanguage = gLang;\n        }\n      });\n    }\n\n    return specificLanguage.toLowerCase();\n  }\n\n  private getGeneralLanguages(languages: readonly string[]): string[] {\n    var generalLanguages = [];\n\n    if (languages) {\n      for (var i = 0; i < languages.length; i++) {\n        var generalLanguageToLookUp = this.languageRegex.exec(languages[i])[2];\n\n        this.supportedLanguages.forEach((sLang) => {\n          var groups = this.languageRegex.exec(sLang);\n          if (groups[2] === generalLanguageToLookUp) {\n            generalLanguages.push(sLang.toLowerCase());\n          }\n        });\n\n        if (generalLanguages.length > 0) {\n          break;\n        }\n      }\n    }\n    return generalLanguages;\n  }\n}\n","export class BranchSocialMedia {\n  id?: string;\n  url: string;\n  type: SocialMedia;\n  branchId: string;\n}\n\nexport enum SocialMedia {\n  None = 0,\n  GoogleReviews = 1,\n  Facebook = 2,\n  TripAdvisor = 3,\n  BingReviews = 4,\n  FourSquare = 5,\n  Yelp = 6,\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  clientEndPoint: '/client',\n  pageEndPoint: '/pages',\n  formEndPoint: '/forms',\n  validateReceiptEndPoint: '/validateReceipt',\n  receiptEndPoint: '/receipt',\n  mappingsEndPoint: '/mappings',\n  surveyAnswerEndPoint: '/surveyAnswer',\n  surveyEndPoint: '/surveys',\n  latestVersionEndPoint: '/latest-version',\n  branchesEndPoint: '/branches',\n  partialAnswerKey: 'LanlaPortal:PartialAnswer:Id',\n  validationEndPoint: '/validation',\n  brandingEndPoint: '/branding',\n  unsubscribeEndPoint: '/unsubscribe',\n  templatesEndPoint: '/templates',\n  reCaptchaEndPoint: '/recaptcha',\n  pageDisplayedEndPoint: '/pageDisplayed',\n  socialMediaEndPoint: '/socialmedia',\n  assemblyVersionEndPoint: \"/assemblyVersion\"\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","import { environment } from '../environments/environment';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { ServiceBase } from './service-base';\nimport { Page } from '../_models/page';\nimport { FormVersion } from '../_models/form-version';\nimport { SurveyAnswer } from '../_models/survey-answer';\nimport { Survey } from '../_models/survey';\nimport { ConfigService } from './config.service';\nimport { CustomImportMappingItem } from '../_models/custom-import-mapping-item.model';\nimport { BrandingInfo } from '../_models/brandingInfo';\nimport { Template } from '../_models/template';\nimport { ReCaptchaOption } from '../_models/reCaptchaOption';\nimport { BranchSocialMedia, SocialMedia } from '../_models/branch';\nimport { FormAnswer } from '../_models/form-answer';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class SurveyService extends ServiceBase {\n  private environment = environment;\n\n  constructor(private http: HttpClient, configService: ConfigService) {\n    super(configService, configService.config.api.modules.voc.path);\n  }\n\n  public getSurvey(code?: string): Observable<Survey> {\n    if (code) {\n      const params: any = { code };\n      return this.http.get<Survey>(this.getUrl(this.environment.clientEndPoint), { params });\n    } else {\n      return this.http.get<Survey>(this.getUrl(this.environment.clientEndPoint));\n    }\n  }\n\n  public getBranchSocialMedia(answer: FormAnswer[]): Observable<BranchSocialMedia[]> {\n    return this.http.post<BranchSocialMedia[]>(this.getUrl(this.environment.clientEndPoint, this.environment.branchesEndPoint, this.environment.socialMediaEndPoint), answer);\n  }\n  \n  public getCorporateBrandInfoByBranch(branchId?: string, lang?: string): Observable<BrandingInfo> {\n    const params: any = {};\n    \n    if (lang) {\n      params.lang = lang;\n    }\n\n    return this.http.get<BrandingInfo>(this.getUrl(this.environment.clientEndPoint, this.environment.branchesEndPoint, branchId, this.environment.brandingEndPoint), { params });\n  }\n\n  public getCorporateBrandInfo(code?: string, lang?: string): Observable<BrandingInfo> {\n    const params: any = {};\n\n    if (code) {\n      params.code = code;\n    }\n\n    if (lang) {\n      params.lang = lang;\n    }\n\n    return this.http.get<BrandingInfo>(this.getUrl(this.environment.clientEndPoint, this.environment.surveyEndPoint, this.environment.brandingEndPoint), { params });\n  }\n\n  public getCustomImportMappings(customImportProjectConfigurationId: string): Promise<CustomImportMappingItem[]> {\n    return this.http\n      .get<CustomImportMappingItem[]>(this.getUrl(this.environment.clientEndPoint, `/survey${this.environment.mappingsEndPoint}/${customImportProjectConfigurationId}`))\n      .toPromise();\n  }\n\n  public getReCaptcha(): Promise<ReCaptchaOption> {\n    return this.http.get<ReCaptchaOption>(this.getUrl(this.environment.clientEndPoint, this.environment.reCaptchaEndPoint)).toPromise();\n  }\n\n  public getPage(surveyId: string, templateId: string, language: string): Promise<Page> {\n    return this.http\n      .get<Page>(this.getUrl(this.environment.clientEndPoint, this.environment.surveyEndPoint, surveyId, this.environment.pageEndPoint, templateId, language))\n      .toPromise();\n  }\n\n  public getForm(formId: string): Promise<FormVersion> {\n    return this.http.get<FormVersion>(this.getUrl(this.environment.clientEndPoint, this.environment.formEndPoint, formId, this.environment.latestVersionEndPoint)).toPromise();\n  }\n\n  public validateReceipt(surveyAnswer: SurveyAnswer): Promise<any> {\n    return this.http.post<string>(this.getUrl(this.environment.clientEndPoint, this.environment.validateReceiptEndPoint), surveyAnswer).toPromise();\n  }\n\n  public getMappedReceiptCode(code: string, culture: string): Promise<any> {\n    return this.http\n      .get<string>(this.getUrl(this.environment.clientEndPoint, this.environment.receiptEndPoint, this.environment.mappingsEndPoint.concat('?receipt=', code, '&lang=', culture)))\n      .toPromise();\n  }\n\n  public insertSurveyAnswer(surveyAnswer: SurveyAnswer): Promise<any> {\n    return this.http.post<string>(this.getUrl(this.environment.clientEndPoint), surveyAnswer).toPromise();\n  }\n\n  public saveSurveyAnswer(surveyAnswer: SurveyAnswer, recaptchaToken: string, customImportEntryId?: string): Observable<any> {\n    const httpHeaders: HttpHeaders = new HttpHeaders({\n      'x-recaptcha-token': recaptchaToken,\n    });\n\n    if (customImportEntryId) {\n      return this.http.patch<string>(this.getUrl(this.environment.clientEndPoint), surveyAnswer, { params: { code: customImportEntryId }, headers: httpHeaders });\n    }\n\n    return this.http.patch<string>(this.getUrl(this.environment.clientEndPoint), surveyAnswer, { headers: httpHeaders });\n  }\n\n  public saveSurveyAnswerPageDisplayed(surveyAnswerId: string, pageDisplayed: boolean): Observable<any> {\n    return this.http.patch<boolean>(\n      this.getUrl(this.environment.clientEndPoint, this.environment.surveyAnswerEndPoint, surveyAnswerId, this.environment.pageDisplayedEndPoint),\n      pageDisplayed\n    );\n  }\n\n  public getSurveyAnswer(surveyAnswerId: string): Observable<SurveyAnswer> {\n    return this.http.get<SurveyAnswer>(this.getUrl(this.environment.clientEndPoint, this.environment.surveyAnswerEndPoint, surveyAnswerId));\n  }\n\n  public addUnsubscribeRequest(code: string): Promise<any> {\n    console.log(this.environment.clientEndPoint);\n    console.log(this.environment.unsubscribeEndPoint);\n    console.log(code);\n    return this.http.post<any>(this.getUrl(this.environment.clientEndPoint, this.environment.unsubscribeEndPoint, '/' + code), null).toPromise();\n  }\n\n  public getTemplate(templateId: string): Promise<Template> {\n    return this.http.get<Template>(this.getUrl(this.environment.templatesEndPoint, templateId)).toPromise();\n  }\n}\n","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.error(err));\n","import { Component, OnInit, ElementRef, AfterViewInit, NgZone, OnDestroy, ChangeDetectorRef, KeyValueDiffers, ViewChild, ViewContainerRef } from '@angular/core';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { SurveyService } from '../_services/survey.service';\nimport { Location } from '@angular/common';\nimport { Survey } from '../_models/survey';\nimport { Page } from '../_models/page';\nimport * as SurveyAngular from 'survey-angular';\nimport * as SurveyKo from 'survey-knockout';\nimport * as widgets from 'surveyjs-widgets';\nimport { FlowContent } from '../_models/flow-content';\nimport { ConsoleLoggerService } from '../_services/console-logger.service';\nimport { SurveyAnswer, SurveyState } from '../_models/survey-answer';\nimport { FormAnswer } from '../_models/form-answer';\nimport { LanguageService } from '../_services/language.service';\nimport { SessionStorageService } from 'angular-web-storage';\nimport * as showdown from 'showdown';\nimport { Title } from '@angular/platform-browser';\nimport { environment } from '../environments/environment';\nimport { FormVersion } from '../_models/form-version';\nimport { Subject, Subscription, Observable, of } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SharedService } from '../_services/shared.service';\nimport { CustomValidationService } from '../_services/custom-validation.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CrossForm } from '../_models/cross-form';\nimport { CustomImportMappingItem } from '../_models/custom-import-mapping-item.model';\nimport { BrandingInfo } from '../_models/brandingInfo';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { isNullOrUndefined } from 'util';\nimport { RecaptchaComponent } from '../recaptcha/recaptcha.component';\nimport { SocialMedia } from '../_models/branch';\nimport { Meta } from '@angular/platform-browser';\nimport anime from 'node_modules/animejs/lib/anime.es.js';\nimport { Theme, ThemeType } from '../_models/theme';\nimport * as moment from 'moment';\n\ndeclare var $: any;\ndeclare var surveyjsslidersix: any;\n\nwidgets.jqueryuidatepicker(SurveyAngular);\nwidgets.select2(SurveyAngular);\nwidgets.inputmask(SurveyAngular);\nwidgets.jquerybarrating(SurveyAngular);\nwidgets.emotionsratings(SurveyAngular);\nwidgets.nouislider(SurveyAngular);\nwidgets.sortablejs(SurveyAngular);\nwidgets.prettycheckbox(SurveyAngular);\nsurveyjsslidersix(SurveyAngular);\n\n@Component({\n  selector: 'app-survey',\n  templateUrl: './survey.component.html',\n  styleUrls: ['./survey.component.scss'],\n})\nexport class SurveyComponent implements OnInit, AfterViewInit, OnDestroy {\n  @ViewChild('surveyContainer') surveyContainer: ElementRef;\n  @ViewChild(RecaptchaComponent) recaptchaComponent: RecaptchaComponent;\n\n  private readonly loggerFrom: string = 'SurveyComponent';\n\n  private savingCancellationToken = new Subject();\n  private cancellationToken = new Subject();\n  private validationCancellationToken = new Subject();\n  private recaptchaSub: Subscription = Subscription.EMPTY;\n  private loading: Subscription;\n  private preventClick: boolean;\n\n  private currentStep: any = 0;\n  private loadingStep: any = -1;\n  private formLoadedIndex: number;\n  private survey: Survey;\n  private brandingInfo: BrandingInfo;\n  private formIds: string[];\n  private firstLoadFormIds: string[];\n\n  private validMarvelTags = [\n    'image',\n    'text',\n    'form',\n    'body',\n    'html',\n    'imageSrc',\n    'alert',\n    'subscription',\n    'organization',\n    'branch',\n    'import',\n    'queryString',\n    'query-string',\n    'query-string-restriction',\n    'branch-social-media',\n    'voc',\n    'cookie',\n  ];\n  private regex = new RegExp('<!--\\\\s?marvel(.((' + this.validMarvelTags.join('|') + ')))?::((\\\\w+(-\\\\w+)*?\\\\.?)+)(\\\\(.*?\\\\))?\\\\s?-->');\n  private globalRegex = new RegExp(this.regex, 'g');\n  private attrRegex = /(?:(\\w+)=\\\"((?:\\w+(?:[-\\s:|.\\/\\\\]\\w+)?)+)\\\")+[,\\s?]?/gm;\n  private attrRegexUrl = /([\\w-]+)=(\"(?:\\\\\"|[^\"])*\")/gm;\n\n  private language: string;\n  private languageKey = 'languageKey';\n  private languageQuestion = 'q_culturecode';\n  private activatedStyle = 'bootstrap';\n  private data: FormAnswer[] = [];\n  private flowContent: FlowContent;\n  private surveyAnswerState: { page: number; answerId: string };\n  private xForms: CrossForm[] = [];\n  public loadingText: string;\n  public isLoading: boolean;\n  private paramMap: ParamMap;\n  private recaptchaToken: string;\n  private paramBranchId: string;\n\n  private setUnsubscribeEvent: boolean;\n  private customImportMappings: CustomImportMappingItem[] = [];\n  private receiptMappings: any[];\n\n  private socialMediaPageDisplayed = false;\n  private surveyCode = null;\n  private usingFuzzyLanguage = false;\n\n  private cookiePopupText = '';\n  private cookiePopupAcceptButton = '';\n  private cookiePopupRefuserButton = '';\n  private cookiePolicyText = '';\n\n  constructor(\n    private http: HttpClient,\n    private router: Router,\n    private route: ActivatedRoute,\n    private self: ElementRef,\n    private surveyService: SurveyService,\n    private location: Location,\n    private logger: ConsoleLoggerService,\n    private languageService: LanguageService,\n    private session: SessionStorageService,\n    private titleService: Title,\n    private zone: NgZone,\n    private sharedService: SharedService,\n    private customValidationService: CustomValidationService,\n    private translateService: TranslateService,\n    private meta: Meta\n  ) {\n    this.preventClick = true;\n    this.self = self;\n    this.formIds = [];\n    this.firstLoadFormIds = [];\n    this.surveyAnswerState = {\n      page: 0,\n      answerId: '00000000-0000-0000-0000-000000000000',\n    };\n  }\n\n  ngOnInit() {\n    SurveyAngular.ChoicesRestfull.onBeforeSendRequest = function (sender, options) {\n      const location = window.location;\n      const referer = `${location.protocol}//${location.host}${location.pathname}`;\n\n      options.request.setRequestHeader('x-hexa-referer', referer);\n    };\n\n    SurveyKo.ChoicesRestfull.onBeforeSendRequest = function (sender, options) {\n      const location = window.location;\n      const referer = `${location.protocol}//${location.host}${location.pathname}`;\n\n      options.request.setRequestHeader('x-hexa-referer', referer);\n    };\n\n    this.addCustomValidators();\n\n    this.route.queryParamMap.subscribe((paramMap) => {\n      this.paramMap = paramMap;\n    });\n\n    this.route.data.subscribe((observer) => {\n      this.formLoadedIndex = 0;\n      const resolverReturn: any = observer;\n\n      this.logger.info('Resolver result', this.loggerFrom, resolverReturn);\n\n      if (resolverReturn.survey.errorResult) {\n        const errorObj = resolverReturn.survey.errorResult;\n\n        this.survey = resolverReturn.survey.errorResult.error;\n        this.flowContent = JSON.parse(this.survey.flow.flowJson);\n        this.loadTheme(this.survey.isSaas, this.survey.themeJson);\n\n        this.handleError(errorObj);\n      } else {\n        this.survey = resolverReturn.survey;\n        this.loadTheme(this.survey.isSaas, this.survey.themeJson);\n\n        this.languageService.loadSupportedLanguages(this.survey.supportedLanguages);\n\n        this.route.queryParams.subscribe((param) => {\n          if (param.branchId) {\n            this.paramBranchId = param.branchId;\n          }\n\n          if (param.lang) {\n            this.language = this.languageService.getLanguage([param.lang]);\n          } else {\n            this.usingFuzzyLanguage = true;\n            const languageSession = this.session.get(this.languageKey);\n            if (languageSession) {\n              this.language = languageSession;\n            } else {\n              this.language = this.languageService.getLanguage(window.navigator.languages);\n            }\n          }\n\n          this.changeLanguage(this.language);\n\n          if (param.code) {\n            this.surveyCode = param.code;\n          }\n        });\n\n        this.logger.info('Survey Loaded: ', this.loggerFrom, this.survey);\n\n        if (this.survey.customImportEntryId) {\n          this.surveyService.getCustomImportMappings(this.survey.customImportconfigurationId).then((mappings) => {\n            this.logger.info('CustomImport Mappings', this.loggerFrom, mappings);\n\n            this.customImportMappings = mappings;\n          });\n        }\n\n        this.flowContent = JSON.parse(this.survey.flow.flowJson);\n        if (this.usingFuzzyLanguage || !this.survey.supportedLanguages.includes(this.language)) {\n          this.language = this.languageService.getLanguage([this.survey.defaultLanguage]);\n          this.changeLanguage(this.language);\n          this.usingFuzzyLanguage = false;\n        }\n\n        this.session.set(this.languageKey, this.language);\n        // The first page loaded should be as auto navigation, and not save, only after a change\n        this.navigate(true);\n      }\n    });\n\n    this.translateService.get('cookie_popup').subscribe((translation) => {\n      this.cookiePopupText = translation;\n    });\n    this.translateService.get('cookie_policy_popup').subscribe((translation) => {\n      this.cookiePolicyText = translation;\n    });\n    this.translateService.get('cookie_popup_accept').subscribe((translation) => {\n      this.cookiePopupAcceptButton = translation;\n    });\n    this.translateService.get('cookie_popup_refuse').subscribe((translation) => {\n      this.cookiePopupRefuserButton = translation;\n    });\n  }\n\n  ngAfterViewInit(): void {\n    this.setEventHandler();\n  }\n\n  ngOnDestroy() {\n    this.cancellationToken.next();\n    this.cancellationToken.complete();\n    this.savingCancellationToken.next();\n    this.savingCancellationToken.complete();\n    this.validationCancellationToken.next();\n    this.validationCancellationToken.complete();\n  }\n\n  private changeLanguage(lang: string) {\n    if ($ && $.datepicker) {\n      $.datepicker.setDefaults({\n        dateFormat: 'yy-mm-dd',\n      });\n      $.datepicker.setDefaults($.datepicker.regional[lang]);\n    }\n\n    // Setting the current language to be user\n    this.translateService.use(lang);\n    this.translateService.get('loading').subscribe((text) => {\n      this.loadingText = text;\n    });\n  }\n\n  private loadTheme(isSaas: boolean, themeJson: string): void {\n    let theme: Theme;\n\n    if (themeJson) {\n      theme = JSON.parse(themeJson);\n    }\n\n    if (isSaas) {\n      this.activatedStyle = 'bootstrapmaterial';\n      document.getElementById('surveyjs-theme').setAttribute('href', '/css/bootstrap-material-design.min.css');\n    } else {\n      switch (theme?.type) {\n        case ThemeType.bootstrap_material_design:\n          this.activatedStyle = 'bootstrapmaterial';\n          document.getElementById('surveyjs-theme').setAttribute('href', '/css/bootstrap-material-design.min.css');\n          break;\n        case ThemeType.default:\n        default:\n          this.activatedStyle = 'bootstrap';\n          document.getElementById('surveyjs-theme').setAttribute('href', '/css/bootstrap.min.css');\n          break;\n      }\n    }\n  }\n\n  private addCustomValidators() {\n    var surveyComponent = this;\n\n    SurveyAngular.FunctionFactory.Instance.register('padLeft', function (params) {\n      if (params && params.length) {\n        const pad = (n, width, z) => {\n          z = z || '0';\n          n = n + '';\n          return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n        };\n\n        return pad(params[0], params.length > 1 ? params[1] : null, params.length > 2 ? params[2] : null);\n      }\n\n      return '';\n    });\n\n    SurveyAngular.FunctionFactory.Instance.register(\n      'serverSide',\n      function (params) {\n        const self: any = this;\n\n        if (params.length == 2 && params[1]) {\n          const url = params[0];\n          const value = params[1];\n\n          surveyComponent.validationCancellationToken.next();\n          surveyComponent.validationCancellationToken.complete();\n          surveyComponent.validationCancellationToken = new Subject();\n\n          surveyComponent.http\n            .get(url.concat(`?value=${encodeURIComponent(value)}&lang=${surveyComponent.language}`))\n            .pipe(takeUntil(surveyComponent.validationCancellationToken))\n            .subscribe((result) => {\n              self.returnResult(result);\n            });\n        } else {\n          const url = params[0].toString();\n          let queryParams = `?lang=${surveyComponent.language}`;\n\n          params.slice(1).forEach((p) => {\n            queryParams = queryParams.concat(`&${p.split('=')[0]}=${encodeURIComponent(p.split('=')[1])}`);\n          });\n\n          surveyComponent.validationCancellationToken.next();\n          surveyComponent.validationCancellationToken.complete();\n          surveyComponent.validationCancellationToken = new Subject();\n\n          surveyComponent.http\n            .get(url.concat(queryParams))\n            .pipe(takeUntil(surveyComponent.validationCancellationToken))\n            .subscribe((result: any) => {\n              self.returnResult(result.result);\n            });\n        }\n      },\n      true\n    );\n  }\n\n  private setEventHandler() {\n    $(document).ready(() => {\n      const location = window.location;\n\n      $('a[data-hexa-lang]').each(function () {\n        // Construct link to navigate to different language.\n        // The link will preserve query params.\n        const lang = $(this).data('hexa-lang');\n\n        const searchParams = new URLSearchParams(location.search);\n        searchParams.set('lang', lang);\n        const url = `${location.protocol}//${location.host}${location.pathname}?${searchParams.toString()}`;\n\n        $(this).attr('href', `${url}`);\n      });\n\n      $('#landing-btn').click(() => {\n        this.navigate();\n      });\n\n      if (this.setUnsubscribeEvent) {\n        this.logger.info('Change unsubscribe button', this.loggerFrom, $('#btn-unsubscribe'));\n\n        $('#btn-unsubscribe').click(() => {\n          const queryParam: any = this.route.snapshot.queryParamMap;\n\n          this.logger.info('Unsubscribe request', this.loggerFrom, queryParam.params.code);\n\n          this.surveyService.addUnsubscribeRequest(queryParam.params.code).then((r) => {\n            this.logger.info('Unsubscribed', this.loggerFrom, r);\n            $('.unsubscibe-to-hide').addClass('hidden');\n            $('.unsubscibe-to-show').removeClass('hidden');\n          });\n        });\n      }\n\n      $('select.form-control').change(() => {\n        $('select.form-control').blur();\n      });\n    });\n  }\n\n  private navigate(autoNavigation: boolean = false): Promise<void> {\n    this.isLoading = true;\n    let path = this.survey.location;\n    const skipFirstSegment = this.survey.location !== '';\n    const segmentIndex = skipFirstSegment ? 1 : 0;\n    let queryParams;\n\n    if (this.route.snapshot.url[segmentIndex] && this.route.snapshot.url[segmentIndex].path !== this.survey.location) {\n      path = this.route.snapshot.url[segmentIndex].path;\n      queryParams = this.route.snapshot.queryParamMap;\n    }\n\n    // If it's auto save, should not save the step\n    return this.getPage(path, queryParams, !autoNavigation)\n      .then((page) => {\n        this.formIds = [];\n        return this.showPage(page).then(() => {\n          this.setEventHandler();\n          this.preventClick = false;\n          return Promise.resolve();\n        });\n      })\n      .catch((err) => { });\n  }\n\n  private getPage(path: string, queryParams: any, shouldSave: boolean = true): Promise<Page> {\n    let templateValue;\n    let templateStep: number;\n    const standalone = this.flowContent.standAlone.find((s) => s === path);\n\n    if (standalone) {\n      if (standalone === 'unsubscribe' && queryParams.params.code) {\n        this.setUnsubscribeEvent = true;\n      }\n\n      const standAloneKey = this.getTemplateKey(standalone);\n      this.setTitle(standAloneKey);\n\n      let queryParamsString = new HttpParams({ fromObject: queryParams.params }).toString();\n\n      if (this.survey.location === '') {\n        this.location.go(standalone.replace(' ', '-'), queryParamsString);\n      } else {\n        this.location.go(`${this.survey.location}/${standalone.replace(' ', '-')}`, queryParamsString);\n      }\n\n      return this.surveyService.getPage(this.survey.id, standAloneKey, this.language).catch((error) => this.handleError(error));\n    }\n\n    const pathIsStep = this.flowContent.steps.find((step) => step.value === path);\n\n    if (pathIsStep || path === this.survey.location) {\n      this.flowContent.steps.forEach((keyValue) => {\n        if (keyValue.key === this.currentStep) {\n          templateStep = keyValue.key;\n          templateValue = keyValue.value;\n        }\n      });\n    }\n\n    if (!templateValue) {\n      return this.showError('404');\n    }\n\n    const templateKey = this.getTemplateKey(templateValue);\n    this.setTitle(templateKey);\n\n    if (this.currentStep !== this.loadingStep) {\n      this.loadingStep = this.currentStep;\n      let insertAnswer = Promise.resolve();\n\n      if (shouldSave && this.currentStep === this.flowContent.steps.length - 1) {\n        this.deleteAnswerState(this.survey.id);\n\n        const surveyAnswer: SurveyAnswer = {\n          id: this.surveyAnswerState.answerId,\n          surveyId: this.survey.id,\n          state: SurveyState.Completed,\n          answersJson: JSON.stringify(this.data),\n          timezoneOffset: new Date().getTimezoneOffset(),\n          answerLanguage: this.language,\n          pageDisplayed: this.socialMediaPageDisplayed,\n        };\n\n        this.renewSavingCancellationToken();\n        insertAnswer = insertAnswer.then(() => {\n          return new Promise((y, n) => {\n            this.surveyService.saveSurveyAnswer(surveyAnswer, this.recaptchaToken, this.survey.customImportEntryId).subscribe(\n              (obs) => {\n                y();\n              },\n              (err) => n()\n            );\n          });\n        });\n      }\n\n      return insertAnswer.then(() =>\n        this.surveyService\n          .getPage(this.survey.id, templateKey, this.language)\n          .then((page) => {\n            this.currentStep += 1;\n            this.isLoading = false;\n            return Promise.resolve(page);\n          })\n          .catch((error) => this.handleError(error))\n      );\n    }\n\n    return Promise.reject();\n  }\n\n  private showPage(page: Page): Promise<void | void[]> {\n    this.showOverlay();\n    return this.display(page).then((html) => {\n      const loadForms: Promise<void>[] = [];\n      this.surveyContainer.nativeElement.innerHTML = html;\n\n      this.formIds.forEach((id) => {\n        loadForms.push(this.loadForm(id, this.formLoadedIndex++));\n      });\n\n      return Promise.all(loadForms).then(() => this.hideOverlay());\n    });\n  }\n\n  private display(page: Page): Promise<string> {\n    if (page.layoutData) {\n      return this.replaceTags(page.layoutData, JSON.parse(page.layoutValues)).then((convertedHtmlString) => {\n        const body = { body: page.templateData };\n        convertedHtmlString = convertedHtmlString.replace('<!---', '<!--');\n        return this.replaceTags(convertedHtmlString, body).then((secondConversion) => {\n          return this.replaceTags(secondConversion, JSON.parse(page.templateValues));\n        });\n      });\n    } else {\n      return this.replaceTags(page.templateData, JSON.parse(page.templateValues));\n    }\n  }\n\n  private replaceTags(convertedHtmlString: string, values: any): Promise<string> {\n    const buildReplacedString = (text, matchCount?): Promise<string> => {\n      return new Promise((yes, no) => {\n        const matches = text.match(this.globalRegex);\n        let resultText = text;\n\n        let buildChain = Promise.resolve(resultText);\n        if (matches) {\n          matches.forEach((match) => {\n            buildChain = buildChain\n              .then(() => this.convertTagToHtml(match, values))\n              .then((replacement) => {\n                resultText = resultText.replace(match, replacement);\n                return Promise.resolve(resultText);\n              });\n          });\n        }\n\n        buildChain.then((t) => {\n          yes(t);\n        });\n      });\n    };\n\n    return buildReplacedString(convertedHtmlString, 0);\n  }\n\n  private getBrandingInfo(): Observable<BrandingInfo> {\n    let branchId = null;\n\n    for (const i of this.data) {\n      if (i.answersJson.branchId) {\n        branchId = i.answersJson.branchId;\n        break;\n      }\n    }\n\n    return new Observable<BrandingInfo>((observer) => {\n      if (!this.brandingInfo || (!this.brandingInfo.branch && branchId)) {\n        if (branchId) {\n          this.surveyService.getCorporateBrandInfoByBranch(branchId, this.language).subscribe((branding) => {\n            this.brandingInfo = branding;\n            observer.next(branding);\n          });\n        } else {\n          this.surveyService.getCorporateBrandInfo(this.surveyCode, this.language).subscribe((branding) => {\n            this.brandingInfo = branding;\n            observer.next(branding);\n          });\n        }\n      } else {\n        observer.next(this.brandingInfo);\n      }\n    });\n  }\n\n  private convertTagToHtml(tag, values): Promise<string> {\n    return new Promise((yes, no) => {\n      const groups = this.regex.exec(tag);\n      const hexaTag = groups[2];\n      const propertyKey = groups[4];\n\n      // Check for tags that doesn't use 'value' such as import, organization, branch, and subscription.\n\n      switch (hexaTag) {\n        case 'subscription':\n          this.getBrandingInfo().subscribe(\n            (info) => {\n              if (propertyKey === 'name') {\n                yes(info.subscription.name);\n              } else if (propertyKey === 'logo') {\n                yes(`<img src=\"${info.subscription.logo}\" alt=\"${info.subscription.name}\" ${this.getMarvelTagAttributes(tag, true)}>`);\n              }\n            },\n            (err) => no()\n          );\n          return; // Function must end here to wait for call to finish.\n        case 'organization':\n          this.getBrandingInfo().subscribe(\n            (info) => {\n              if (propertyKey === 'name') {\n                yes(info.organization.name);\n              } else if (propertyKey === 'logo') {\n                yes(`<img src=\"${info.organization.logo}\" alt=\"${info.organization.name}\" ${this.getMarvelTagAttributes(tag, true)}>`);\n              }\n            },\n            (err) => no()\n          );\n          return; // Function must end here to wait for call to finish.\n        case 'branch':\n          this.getBrandingInfo().subscribe(\n            (info) => {\n              if (info.branch) {\n                if (propertyKey === 'name') {\n                  yes(info.branch.name);\n                } else if (propertyKey === 'logo') {\n                  yes(`<img src=\"${info.branch.logo}\" alt=\"${info.branch.name}\" ${this.getMarvelTagAttributes(tag, true)}>`);\n                }\n              } else {\n                yes('');\n              }\n            },\n            (err) => no()\n          );\n          return; // Function must end here to wait for call to finish.\n        case 'branch-social-media':\n          this.surveyService.getBranchSocialMedia(this.data).subscribe(\n            (accounts) => {\n              const attributes = this.getMarvelTagAttributes(tag);\n              const value = values[propertyKey];\n              const altValue = attributes.alternateText ? values[attributes.alternateText] : '';\n              let list = '';\n\n              if (accounts) {\n                for (let i = 0; i < accounts.length; i++) {\n                  let account = accounts[i];\n\n                  if (!account.url.startsWith('http://') && !account.url.startsWith('https://')) {\n                    account.url = `https://${account.url}`;\n                  }\n\n                  account.url = account.url.replace('{0}', this.surveyAnswerState.answerId);\n\n                  let imgSource = 'assets/socialmedia/';\n                  switch (account.type) {\n                    case SocialMedia.GoogleReviews:\n                      imgSource = `${imgSource}google.svg`;\n                      break;\n                    case SocialMedia.TripAdvisor:\n                      imgSource = `${imgSource}tripadvisor.svg`;\n                      break;\n                    case SocialMedia.Yelp:\n                      imgSource = `${imgSource}yelp.svg`;\n                      break;\n                    case SocialMedia.FourSquare:\n                      imgSource = `${imgSource}foursquare.svg`;\n                      break;\n                    case SocialMedia.Facebook:\n                      imgSource = `${imgSource}facebook.svg`;\n                      break;\n                    case SocialMedia.BingReviews:\n                      imgSource = `${imgSource}bing.svg`;\n                      break;\n                  }\n\n                  list += `<a target=\"blank\" href=\"${account.url}\"><img src=\"${imgSource}\" /></a>`;\n                }\n\n                this.socialMediaPageDisplayed = true;\n                this.surveyService.saveSurveyAnswerPageDisplayed(this.surveyAnswerState.answerId, this.socialMediaPageDisplayed).subscribe((r) => r);\n              }\n\n              yes(`<div ${this.getMarvelTagAttributes(tag, true)}>${accounts && accounts.length && value ? value : altValue}<div>${list}</div></div>`);\n            },\n            (err) => no()\n          );\n          return; // Function must end here to wait for call to finish.\n        case 'import':\n          if (propertyKey === groups[4] && propertyKey === 'code') {\n            this.logger.warning('Voc template is using an import property code but this is not supported for the VoC', this.loggerFrom);\n            yes('');\n          } else {\n            const jsonPropertyKey = groups[4];\n            const customImportProperty = this.getCustomImportField(jsonPropertyKey);\n\n            if (customImportProperty) {\n              yes(customImportProperty);\n            } else {\n              this.logger.warning(\n                'Voc template is using an import property from a custom import but json property was not found in the custom import',\n                this.loggerFrom,\n                jsonPropertyKey\n              );\n            }\n          }\n\n          break;\n        case 'query-string':\n        case 'queryString':\n          this.route.queryParams.subscribe(\n            (observer) => {\n              if (observer[propertyKey] !== undefined && observer[propertyKey] !== null) {\n                yes(observer[propertyKey]);\n              } else {\n                yes('');\n              }\n            },\n            (err) => no()\n          );\n          return; // Function must end here to wait for call to finish.\n        case 'query-string-restriction':\n          this.route.queryParams.subscribe(\n            (observer) => {\n              var attributes = this.getMarvelTagAttributes(tag);\n              if (attributes) {\n                if (attributes.type === 'currentDate') {\n                  const now = Date.now();\n                  const date = attributes.dateFormat ? moment(observer[propertyKey], attributes.dateFormat).toDate().valueOf() : Date.parse(observer[propertyKey]);\n\n                  const limit = parseInt(attributes.days) * 24 * 60 * 60 * 1000;\n\n                  if (!Number.isNaN(limit)) {\n                    if (attributes.operator === 'lessThan') {\n                      var diff = now - date;\n                      if (diff > limit) {\n                        this.showError(attributes.errorCode);\n                      }\n                    }\n                  }\n                }\n              }\n\n              yes('');\n            },\n            (err) => no()\n          );\n          return; // Function must end here to wait for call to finish.\n        case 'voc':\n          if (propertyKey === groups[4] && propertyKey === 'primary-url') {\n            yes(`${this.survey.primaryUrl}`);\n          }\n          break;\n        case 'cookie':\n          if (propertyKey === 'popup' && localStorage.getItem('acceptedCookies:' + location.host) === null) {\n            let attributes = this.getMarvelTagAttributesCookiesUrl(tag, false);\n            let cookiePolicyUrl = attributes.url;\n\n            if (attributes[`url-${this.language}`]) {\n              cookiePolicyUrl = attributes[`url-${this.language}`];\n            } else if (attributes[`url`]) {\n              cookiePolicyUrl = attributes[`url`];\n            } else {\n              this.cookiePolicyText = '';\n            }\n\n            yes(`<div id=\"cookie-popup\" style=\"\n                  position: fixed;\n                  z-index: 2000;\n                  bottom: 8px;\n                  left: 8px;\n                  width: 300px;\n                  min-height: 400px;\n                  background-color:white;\n                  border-radius: 5px;\n                  border: 1px solid #aaa;\n                  box-shadow: -2px 2px 8px rgba(0, 0, 0, 0.40);\n                  padding: 16px\">\n                    <h2>Cookies</h2>\n                    <p>${this.cookiePopupText}</p>\n                    <div style=\"margin-bottom: 15px;\"><a href=${cookiePolicyUrl} target=\"_blank\" style=\"text-decoration: none;\">${this.cookiePolicyText}</a></div>\n                    <div>\n                      <input type=\"button\" value=\"${this.cookiePopupAcceptButton}\" style=\"background-color: black; border: none; color: white; padding: 4px 8px;\" onclick=\"javascript:acceptCookies('${location.host}');\" />\n                      <input type=\"button\" value=\"${this.cookiePopupRefuserButton}\" style=\"background-color: white; border: 1px solid black; color: black; padding: 3px 7px;\"  onclick=\"javascript:declineCookies('${location.host}');\" />\n                    </div>\n                  </div>`);\n          }\n          break;\n      }\n\n      // Check if we have any tags with data\n      for (const key in values) {\n        if (key === propertyKey) {\n          const value = values[key];\n          switch (hexaTag) {\n            case 'image':\n              yes(`<img src=\"${value[0].content}\" alt=\"${value[0].name}\" ${this.getMarvelTagAttributes(tag, true)}>`);\n              break;\n            case 'imageSrc':\n              yes(value[0].content);\n              break;\n            case 'text':\n              let convertedHtml = value.replace('\"', '&quot;');\n              convertedHtml = convertedHtml.replace('&', '&amp;');\n              convertedHtml = convertedHtml.replace('<', '&lt;');\n              convertedHtml = convertedHtml.replace('>', '&gt;');\n              yes(convertedHtml);\n              break;\n            case 'html':\n              yes(value);\n              break;\n            case 'form':\n              this.formIds.push(value);\n              yes(`<div id='${value}'></div>`);\n              break;\n            case 'alert':\n              var message = `<div id=\"alert-${key}\">${value}</div>`;\n              $('body').append(message);\n              $(`#alert-${key}`).dialog({\n                modal: true,\n                buttons: {\n                  Ok: function () {\n                    $(this).dialog('close');\n                  },\n                },\n              });\n              yes('');\n              break;\n            case 'body':\n              yes(value);\n              break;\n            default:\n              yes(value);\n              break;\n          }\n\n          return;\n        }\n      }\n\n      if (groups[2] === 'body') {\n        tag = tag.replace('<!--', '<!---');\n      }\n\n      yes(tag);\n    });\n  }\n\n  private getErrorPage(errorCode: string): Promise<Page> {\n    this.logger.warning('Handling error', this.loggerFrom, errorCode);\n    let templateValue = this.flowContent.errors.find((error) => error === `${errorCode}`);\n    if (!templateValue) {\n      templateValue = this.flowContent.errors.find((error) => error === 'default');\n    }\n\n    if (!templateValue) {\n      return Promise.reject('Template cannot be found!');\n    }\n\n    const templateKey = this.getTemplateKey(templateValue);\n    this.setTitle(templateKey);\n    return this.surveyService.getPage(this.survey.id, templateKey, this.language);\n  }\n\n  private handleError(reason: any): Promise<Page> {\n    return this.showError(reason.status);\n  }\n\n  private showError(errorCode: string): Promise<Page> {\n    return this.getErrorPage(errorCode)\n      .then((page) => {\n        return this.showPage(page).then(() => page);\n      })\n      .catch((error) => {\n        this.logger.error(error, 'handleError()');\n        return null;\n      });\n  }\n\n  private getTemplateKey(templateValue: string): string {\n    const templateKeyValue = this.flowContent.templates.find((keyValue) => keyValue.value === templateValue);\n    return templateKeyValue ? templateKeyValue.key : '';\n  }\n\n  private formCompletionEvents(surveyJsModel: SurveyAngular.Model, targetPage: any, formVersion: FormVersion) {\n    let duplicatedReceiptCodeError: SurveyAngular.SurveyError;\n    // When the form is completed\n    surveyJsModel.onComplete.add((sender, options) => {\n      surveyJsModel.clear(false, false);\n\n      if (!this.preventClick) {\n        var savePromise = Promise.resolve();\n        savePromise = savePromise.then(() => this.showOverlay());\n\n        var receiptCodeElement = targetPage.elements.filter((element) => element.codeMapping === true);\n        if (receiptCodeElement && receiptCodeElement.length !== 0) {\n          var receiptcode = sender.getValue(receiptCodeElement[0].name);\n          //var receiptcode = this.workAroundSurveyJSSpaceValueChangeIssue(sender, receiptCodeElement);\n\n          if (receiptcode != undefined) {\n            this.surveyService.getMappedReceiptCode(receiptcode, this.language).then((x) => {\n              if (!x.hasError) {\n                this.receiptMappings = x.codeMappings;\n                this.setReceiptMappedFields(sender);\n                savePromise = savePromise.then(() => this.changePageOnAnswerPartialState(surveyJsModel, targetPage, formVersion, sender, options));\n              } else {\n                // Manually display error message\n                var receiptCodeElement = targetPage.elements.filter((element) => element.codeMapping === true);\n                var receiptQuestion = surveyJsModel.getQuestionByName(receiptCodeElement[0].name);\n\n                this.translateService.get('houston_code_not_valid').subscribe((translation) => {\n                  if (!duplicatedReceiptCodeError) {\n                    duplicatedReceiptCodeError = new SurveyAngular.SurveyError(translation);\n                  } else {\n                    receiptQuestion.removeError(duplicatedReceiptCodeError);\n                  }\n\n                  receiptQuestion.addError(duplicatedReceiptCodeError);\n                  this.hideOverlay();\n                });\n\n                this.logger.warning('Something went wrong with the receipt code...', this.loggerFrom);\n              }\n            });\n          } else {\n            savePromise = savePromise.then(() => this.changePageOnAnswerPartialState(surveyJsModel, targetPage, formVersion, sender, options));\n          }\n        } else {\n          savePromise = savePromise.then(() => this.changePageOnAnswerPartialState(surveyJsModel, targetPage, formVersion, sender, options));\n        }\n\n        // Removing this makes the overlay\n        // savePromise.then(() => this.hideOverlay());\n      } else {\n        this.logger.warning('Double click prevented', this.loggerFrom);\n      }\n    });\n\n    surveyJsModel.onCompleting.add((survey) => {\n      this.showOverlay();\n    });\n  }\n\n  // MJG 2022-05-25: DO NOT USE! Messes with data collection as it unallocates all values related that rely on the receipt code!\n  // private workAroundSurveyJSSpaceValueChangeIssue(sender: SurveyAngular.SurveyModel, receiptCodeElement: any) {\n  //   //Survey js does not detect changes to spaces at the beginning or end of a value as a value change.\n  //   var receiptcode = sender.getValue(receiptCodeElement[0].name).trim();\n  //   sender.setValue(receiptCodeElement[0].name, '');\n  //   sender.setValue(receiptCodeElement[0].name, receiptcode);\n  //   return receiptcode;\n  // }\n\n  private changePageOnAnswerPartialState(\n    surveyJsModel: SurveyAngular.Model,\n    targetPage: any,\n    formVersion: FormVersion,\n    sender: SurveyAngular.SurveyModel,\n    options: any\n  ): Promise<void> {\n    this.surveyAnswerState.page += 1;\n    this.saveAnswerState(this.survey.id);\n\n    const xFormElements = targetPage.elements.filter((element) => element.crossForm === true);\n    if (xFormElements) {\n      xFormElements.forEach((element) => {\n        this.xForms.push({\n          name: 'xForm_'.concat(element.name),\n          value: sender.getValue(element.name),\n        });\n      });\n    }\n\n    surveyJsModel.clear(false, false);\n    return this.saveAnswer(formVersion.id, sender.data).catch(() => options.showDataSavingError('error'));\n  }\n\n  private formRenderEvents(surveyJsModel: SurveyAngular.Model, targetPage: any, formVersion: FormVersion) {\n    surveyJsModel.onAfterRenderSurvey.add((survey) => {\n      if (!this.firstLoadFormIds.some((id) => id === formVersion.id)) {\n        this.firstLoadFormIds.push(formVersion.id);\n        this.hideOverlay();\n      }\n    });\n\n    var isSurveyCompleted = false;\n\n    surveyJsModel.onCompleting.add((survey, options) => {\n      isSurveyCompleted = true;\n    });\n\n    // Testing\n    var divId = !formVersion ? null : formVersion.formId;\n    var targetElements = '.sv_row, .sv-row';\n    var duration = 300;\n    var distance = 250;\n    var isPrevPage = false;\n\n    const sendOut = () => {\n      const translateX = isPrevPage ? [0, distance] : [0, distance * -1];\n      let targets = document.getElementById(divId);\n      targets = $(targets).find(targetElements).get();\n\n      anime({\n        targets: targets,\n        translateX,\n        opacity: 0,\n        easing: 'easeOutExpo',\n        duration,\n      });\n    };\n\n    const bringIn = () => {\n      const translateX = isPrevPage ? [distance * -1, 0] : [distance, 0];\n      var targets = document.getElementById(divId);\n      targets = $(targets).find(targetElements).css('opacity', '0').get();\n      anime({\n        targets: targets,\n        translateX,\n        opacity: 1,\n        easing: 'easeInExpo',\n        duration: duration,\n      });\n    };\n\n    let startAnimation = true;\n    surveyJsModel.onCurrentPageChanging.add((sender, options) => {\n      if (!startAnimation) {\n        return;\n      }\n\n      // This might screw up on non-SaaS voc.\n      distance = ($('body').width() - $('.card-body > [id^=\"sp_\"]').width()) / 2.0;\n\n      options.allowChanging = false;\n\n      this.zone.runOutsideAngular(() => {\n        setTimeout(function () {\n          startAnimation = false;\n          sender.currentPage = options.newCurrentPage;\n          startAnimation = true;\n        }, duration);\n\n        isPrevPage = options.isPrevPage;\n        sendOut();\n      });\n    });\n\n    surveyJsModel.onAfterRenderQuestionInput.add((sender, options) => {\n      var el = options.htmlElement;\n      var question = options.question;\n      if (question.getType() == 'text' && question.titleLocation === 'hidden' && this.activatedStyle == 'bootstrapmaterial') {\n        $(`<label class=\"bmd-label-floating\">${question.locTitle.textOrHtml}</label>`).insertBefore(el);\n        $(el).parent().bootstrapMaterialDesign();\n      }\n    });\n\n    surveyJsModel.onCurrentPageChanged.add(function (sender) {\n      bringIn();\n    });\n\n    // END testing\n\n    surveyJsModel.onAfterRenderQuestion.add((question, options) => {\n      const element = targetPage.elements.find((x) => x.name === options.question.name);\n\n      if (!element) {\n        return;\n      }\n\n      if (element.queryStringParameter) {\n        if (!isSurveyCompleted) {\n          this.checkIfPropertyFilledByQueryString(surveyJsModel, element);\n        }\n      }\n\n      if (element.renderAs) {\n        var renderType = element.renderAs;\n        if (renderType === 'prettycheckbox') {\n          //RR TODO: Implement prettycheckbox\n        }\n      }\n\n      if (element.moreInfoUrl) {\n        const link = document.createElement('a');\n        link.href = element.moreInfoUrl;\n        link.target = '_blank';\n        //link.className = 'btn btn-info btn-xs';\n        link.innerHTML = '?';\n        const question = options.question;\n        const header = options.htmlElement.querySelector('h5');\n        header.className = 'more-info-prior';\n        const span = document.createElement('span');\n        span.innerHTML = '  ';\n        header.appendChild(span);\n        header.parentNode.insertBefore(link, header.nextSibling);\n      }\n    });\n  }\n\n  private formValidationEvents(surveyJsModel: SurveyAngular.Model, targetPage: any, formVersion: FormVersion) {\n    let duplicatedReceiptCodeError: SurveyAngular.SurveyError;\n\n    surveyJsModel.onServerValidateQuestions.add((survey, options) => {\n      let validationChain = Promise.resolve();\n      validationChain.then(() => this.showOverlay());\n\n      var answers = Object.keys(options.data);\n\n      answers.forEach((answer) => {\n        validationChain = validationChain.then(\n          () =>\n            new Promise((yes, no) => {\n              if (!this.fieldNeedValidation(targetPage.elements, answer)) {\n                yes();\n                return;\n              }\n\n              const serviceUrl = targetPage.elements.find((i: any) => i.name === `${answer}_url`);\n\n              if (!serviceUrl) {\n                yes();\n                return;\n              }\n\n              let code = options.data[answer];\n              let url = serviceUrl.defaultValue;\n\n              if (url.indexOf(`{`) >= 0) {\n                code = null;\n\n                var regex = /(\\{.*?\\})/g;\n                var matches = url.match(regex);\n\n                for (var key in matches) {\n                  var questionName = matches[key].replace('{', '').replace('}', '');\n                  url = url.replace(matches[key], options.data[questionName]);\n                }\n              }\n\n              this.customValidationService.validate(url, code).then((validationResult) => {\n                this.logger.info('Validation Result: ', this.loggerFrom, validationResult);\n\n                if (validationResult.result) {\n                  for (const key in validationResult.message) {\n                    if (key !== '$type' && validationResult.message.hasOwnProperty(key)) {\n                      const qValue = validationResult.message[key];\n                      surveyJsModel.setValue(key, qValue);\n\n                      this.logger.info(`${key} Value: `, this.loggerFrom, qValue);\n                    }\n                  }\n\n                  yes();\n                } else {\n                  this.translateService.get(validationResult.message.error).subscribe((translation) => {\n                    options.errors[answer] = translation;\n                    yes();\n                  });\n                }\n              });\n            })\n        );\n      });\n\n      validationChain = validationChain.then(\n        () =>\n          new Promise((yes, no) => {\n            let surveyAnswer: SurveyAnswer;\n\n            // Prepare the answer\n            surveyAnswer = {\n              id: this.surveyAnswerState.answerId,\n              surveyId: this.survey.id,\n              state: SurveyState.InProgress,\n              answersJson: this.combinePartialAnswers(formVersion.id, survey.data),\n              timezoneOffset: new Date().getTimezoneOffset(),\n              answerLanguage: this.language,\n              pageDisplayed: this.socialMediaPageDisplayed,\n            };\n\n            // Call to server\n            this.surveyService.validateReceipt(surveyAnswer).then(\n              (val) => {\n                if (val.result) {\n                  yes();\n                } else {\n                  const receiptUsed = document.getElementsByClassName('receiptused');\n                  if (receiptUsed && receiptUsed.length) {\n                    for (let i = 0; i < receiptUsed.length; i++) {\n                      if (receiptUsed[i].hasAttribute('hidden')) {\n                        receiptUsed[i].removeAttribute('hidden');\n                        receiptUsed[i].scrollIntoView();\n                      }\n                    }\n                  }\n\n                  this.translateService.get(val.message.error).subscribe((translation) => {\n                    const receiptCodeElements = targetPage.elements.filter((element) => element.codeMapping === true);\n                    const element = receiptCodeElements[0];\n                    let customValidationTranslation = null;\n\n                    if (element.validators && element.validators.length) {\n                      const validator = element.validators.find((v) => v.expression === `!!'${val.message.error}'`);\n                      if (validator) {\n                        customValidationTranslation = validator.text[this.language] || validator.text.default;\n                      }\n                    }\n\n                    options.errors[element.name] = customValidationTranslation || translation;\n                    no();\n                  });\n                }\n              },\n              (reject) => {\n                no();\n              }\n            );\n          })\n      );\n\n      // Only validate recaptcha on the submission to the backend which happen on the very last step.\n      // The library have an issue when calling execute multiple times and beside the backend will only\n      // validate the token when the survey is fully Completed.\n      if (this.currentStep === this.flowContent.steps.length - 1) {\n        validationChain = validationChain.then(() => {\n          return new Promise<void>((yes, no) => {\n            // The recaptcha challenge doesn't scroll the page so it's rendering outside the view of the user.\n            // This code will scroll to it.\n            this.logger.info('Attempting to scroll to recaptcha challenge');\n            this.zone.runOutsideAngular(() => {\n              var timesRun = 0;\n\n              var interval = setInterval(() => {\n                timesRun += 1;\n\n                if (timesRun === 5) {\n                  clearInterval(interval);\n                }\n\n                var challengeParent = $('iframe[title=\"recaptcha challenge\"]').parent()[0];\n\n                if (challengeParent) {\n                  $([document.documentElement, document.body]).animate(\n                    {\n                      scrollTop: $(challengeParent).position().top + $(challengeParent).height(),\n                    },\n                    500\n                  );\n                } else {\n                  clearInterval(interval);\n                }\n              }, 100);\n            });\n\n            if (this.recaptchaSub !== Subscription.EMPTY) {\n              this.recaptchaSub.unsubscribe();\n            }\n\n            this.recaptchaSub = this.recaptchaComponent.token.subscribe((token: string) => {\n              if (token != null) {\n                this.recaptchaToken = token;\n                yes();\n              } else {\n                // If the user abandon the recaptcha test\n                no();\n              }\n            });\n            // Make sure to subscribe to the token before calling execute.\n            this.recaptchaComponent.execute();\n          });\n        });\n      }\n\n      validationChain.finally(() => {\n        this.hideOverlay();\n        options.complete();\n      });\n    });\n  }\n\n  private getMarvelTagAttributes(tag: string, returnHtmlAttributes: boolean = false): any | string {\n    if (!tag) return '';\n\n    let regex = new RegExp(this.attrRegex);\n    let match = regex.exec(tag);\n    if (!match) return '';\n\n    let attributes = {};\n\n    while (match != null) {\n      attributes[match[1]] = match[2];\n      match = regex.exec(tag);\n    }\n\n    if (returnHtmlAttributes) {\n      const keys = Object.keys(attributes);\n      return keys.map((k) => `${k}=\"${attributes[k]}\"`).join(' ');\n    }\n\n    return attributes;\n  }\n\n  private getMarvelTagAttributesCookiesUrl(tag: string, returnHtmlAttributes: boolean = false): any | string {\n    if (!tag) return '';\n    let regex = new RegExp(this.attrRegexUrl);\n\n    let match = regex.exec(tag);\n    if (!match) return '';\n\n    let attributes = {};\n\n    while (match != null) {\n      attributes[match[1]] = match[2];\n      match = regex.exec(tag);\n    }\n\n    if (returnHtmlAttributes) {\n      const keys = Object.keys(attributes);\n      return keys.map((k) => `${k}=\"${attributes[k]}\"`).join(' ');\n    }\n\n    return attributes;\n  }\n\n  private formValueChangeEvents(surveyJsModel: SurveyAngular.Model, formVersion: FormVersion) {\n    // Saving form changes\n    surveyJsModel.onValueChanged.add((survey, options) => {\n      let surveyAnswer: SurveyAnswer;\n\n      // Prepare the answer\n      surveyAnswer = {\n        id: this.surveyAnswerState.answerId,\n        surveyId: this.survey.id,\n        state: SurveyState.InProgress,\n        answersJson: this.combinePartialAnswers(formVersion.id, survey.data),\n        timezoneOffset: new Date().getTimezoneOffset(),\n        answerLanguage: this.language,\n        pageDisplayed: this.socialMediaPageDisplayed,\n      };\n\n      if (this.loading) {\n        this.loading.unsubscribe();\n      }\n\n      var keys = Object.keys(survey.data);\n      // Only start tracking once the client has offered a non-default answer.\n      if (keys.some((k) => k !== this.languageQuestion)) {\n        this.renewSavingCancellationToken();\n\n        this.loading = this.surveyService\n          .saveSurveyAnswer(surveyAnswer, '')\n          .pipe(takeUntil(this.savingCancellationToken))\n          .pipe(takeUntil(this.cancellationToken))\n          .subscribe((actionResult) => {\n            this.surveyAnswerState.answerId = actionResult.id;\n            if (actionResult.globalScore || actionResult.globalScore === 0) {\n              survey.setValue('globalScore', actionResult.globalScore);\n            }\n\n            this.saveAnswerState(this.survey.id);\n          });\n      }\n    });\n\n    surveyJsModel.onVisibleChanged.add((survey, options) => {\n      if (!options.visible) {\n        survey.clearValue(options.name);\n      }\n    });\n  }\n\n  private formVariousEvents(surveyJsModel: SurveyAngular.Model) {\n    const converter = new showdown.Converter();\n    surveyJsModel.onTextMarkdown.add((survey, options) => {\n      let str = converter.makeHtml(options.text);\n      str = str.substring(3);\n      str = str.substring(0, str.length - 4);\n      options.html = str;\n    });\n  }\n\n  private formLoadFromServerEvents(surveyJsModel: SurveyAngular.Model, targetPage: any) {\n    surveyJsModel.onLoadChoicesFromServer.add((survey, options) => {\n      const valueByUrlElements = targetPage.elements.filter((element) => element.valueByUrl === true);\n      const selectAllFromWebElements = targetPage.elements.filter((element) => element.selectAllChoicesFromWeb === true);\n\n      if (valueByUrlElements) {\n        valueByUrlElements.forEach((valueByUrl) => {\n          if (valueByUrl.name === options.question.name) {\n            if (options.serverResult && options.serverResult[0]) {\n              survey.setValue(valueByUrl.name, options.serverResult[0].value);\n            }\n          }\n        });\n      }\n\n      if (selectAllFromWebElements) {\n        selectAllFromWebElements.forEach((element) => {\n          if (element.name === options.question.name) {\n            // Automatically select all choices after loading them.\n            const itemValues = options.choices.map((element) => element.itemValue);\n            options.question.defaultValue = itemValues;\n          }\n        });\n      }\n    });\n  }\n\n  private loadForm(formId: string, currentFormIndex: number): Promise<void> {\n    showdown.setOption('underline', true);\n\n    return this.surveyService.getForm(formId).then((formVersion) => {\n      SurveyAngular.StylesManager.applyTheme(this.activatedStyle);\n      this.meta.addTag({ name: 'form-version', content: formVersion.majorVersion + '.' + formVersion.minorVersion });\n\n      const formObj = JSON.parse(formVersion.formJson);\n      const surveyJsModel = new SurveyAngular.Model(formObj);\n      const currentPageObj = formObj.pages.find((p: any) => p.name === surveyJsModel.currentPage.name);\n\n      this.logger.info('Page Form: ', this.loggerFrom, currentPageObj);\n\n      surveyJsModel.clearInvisibleValues = false;\n      surveyJsModel.clearValueOnDisableItems = true;\n\n      this.formRenderEvents(surveyJsModel, currentPageObj, formVersion);\n      this.formValueChangeEvents(surveyJsModel, formVersion);\n\n      this.formValidationEvents(surveyJsModel, currentPageObj, formVersion);\n      this.formLoadFromServerEvents(surveyJsModel, currentPageObj);\n\n      this.formCompletionEvents(surveyJsModel, currentPageObj, formVersion);\n      this.formVariousEvents(surveyJsModel);\n\n      // Setting language for the form\n      surveyJsModel.locale = this.language;\n\n      let ready = Promise.resolve();\n      const answerState = this.getAnswerState(this.survey.id);\n\n      // Wait to load branches before pre-fill form fields\n      if (answerState) {\n        ready = ready.then(() => this.loadPartialAnswer(surveyJsModel, formVersion, currentFormIndex));\n\n        const branchIdExists = formObj.pages.some((page) => page.elements.some((element) => element.name === 'branchId' && element.visible !== false));\n        if (branchIdExists) {\n          ready.then(\n            () =>\n              new Promise<void>((y, n) => {\n                // Waiting to the branches to be loaded before load the form\n                surveyJsModel.onLoadChoicesFromServer.add((survey, options) => {\n                  this.logger.success('Branches loaded Answer', this.loggerFrom, options);\n\n                  // Loading a partial answer to the survey\n                  if (options.question.name === 'branchId') {\n                    y();\n                  }\n                });\n              })\n          );\n        }\n      }\n\n      ready.then(() => {\n        this.addXFormValue(surveyJsModel);\n        surveyJsModel.setValue(this.languageQuestion, this.language);\n\n        this.setReceiptMappedFields(surveyJsModel);\n        this.setCustomImportMappedFields(surveyJsModel);\n        if (this.paramBranchId && surveyJsModel.currentPage.elements.find((f) => f.name === 'branchId')) {\n          surveyJsModel.setValue('branchId', this.paramBranchId);\n        }\n        currentPageObj.elements.forEach((q) => {\n          if (q.queryStringParameter) {\n            this.checkIfPropertyFilledByQueryString(surveyJsModel, q);\n          }\n        });\n\n        this.zone.runOutsideAngular(() => {\n          // Rendering the Survey form outside angular\n          SurveyAngular.SurveyNG.render(formId, {\n            model: surveyJsModel,\n            css: {\n              footer: 'panel-footer',\n              navigationButton: 'btn btn-lg btn-primary ml-3',\n            },\n          });\n\n          setInterval(() => {\n            if ($('.ui-datepicker').length) {\n              $('.ui-datepicker').addClass('notranslate');\n            }\n          }, 1000);\n        });\n      });\n\n      return Promise.resolve();\n    });\n  }\n\n  private getCustomImportField(jsonProperty: string): string {\n    if (this.survey.customImportEntryContent) {\n      return JSON.parse(this.survey.customImportEntryContent)[jsonProperty];\n    }\n\n    return null;\n  }\n\n  private setCustomImportMappedFields(surveyJsModel: SurveyAngular.Model): void {\n    for (const key in this.customImportMappings) {\n      if (this.customImportMappings.hasOwnProperty(key)) {\n        const mapping = this.customImportMappings[key];\n\n        const value = JSON.parse(this.survey.customImportEntryContent)[mapping.jsonProperty];\n\n        if (typeof value === 'boolean') {\n          // If it's a boolean and it's true, just set to 1,\n          // else need to get the actual value and set it\n          if (value) {\n            surveyJsModel.setValue(mapping.questionName, '1');\n          } else {\n            const falseValue = surveyJsModel.getQuestionByName(mapping.questionName).choices.find((c) => c.value !== '1').value;\n            surveyJsModel.setValue(mapping.questionName, falseValue);\n          }\n        } else {\n          surveyJsModel.setValue(mapping.questionName, value);\n        }\n\n        this.logger.success('Setting imported field', this.loggerFrom, surveyJsModel.getValue(mapping.questionName));\n      }\n    }\n  }\n\n  private setReceiptMappedFields(surveyJsModel: SurveyAngular.SurveyModel): void {\n    for (const key in this.receiptMappings) {\n      if (this.receiptMappings.hasOwnProperty(key)) {\n        const mapping = this.receiptMappings[key];\n\n        if (mapping.questionName) {\n          surveyJsModel.setValue(mapping.questionName, mapping.jsonProperty);\n          this.logger.success('Setting receipt mapped field', this.loggerFrom, surveyJsModel.getValue(mapping.questionName));\n        }\n      }\n    }\n  }\n\n  checkIfPropertyFilledByQueryString(survey: SurveyAngular.Survey, element: any) {\n    if (element.queryStringParameter) {\n      const parameterToRead = element.queryStringParameter;\n      const queryStringValue = this.paramMap.get(parameterToRead);\n\n      if (queryStringValue) {\n        switch (element.type) {\n          case 'text':\n            survey.setValue(element.name, queryStringValue);\n            break;\n          case 'radiogroup':\n            survey.setValue(element.name, queryStringValue);\n            break;\n        }\n      }\n    }\n  }\n\n  private addXFormValue(survey: SurveyAngular.SurveyModel) {\n    this.xForms.forEach((element) => {\n      survey.setValue(element.name, element.value);\n    });\n  }\n\n  private clearXFormValue(survey: SurveyAngular.SurveyModel) {\n    this.xForms.forEach((element) => {\n      survey.clearValue(element.name);\n    });\n  }\n\n  private fieldNeedValidation(currentPageElements: any[], fieldName: string): boolean {\n    if (currentPageElements.find((f) => f.name === fieldName && f.fieldToValidate)) {\n      return true;\n    }\n\n    return false;\n  }\n\n  private loadPartialAnswer(surveyJsModel: SurveyAngular.Survey, formVersion: FormVersion, currentFormIndex: number): Promise<void> {\n    const answerState = this.getAnswerState(this.survey.id);\n    if (answerState) {\n      return new Promise((y, n) => {\n        this.surveyService.getSurveyAnswer(answerState.answerId).subscribe(\n          (partialAnswer) => {\n            // MJG - We no longer autonavigate.\n            // MJG - The order is significant!\n            if (partialAnswer) {\n              this.surveyAnswerState.answerId = partialAnswer.id;\n              this.data = JSON.parse(partialAnswer.answersJson);\n\n              if (this.data.length > currentFormIndex) {\n                const formState: FormAnswer = this.data[currentFormIndex];\n                if (formState.id === formVersion.id) {\n                  // Getting the form answers based on the form version id\n                  surveyJsModel.data = formState.answersJson;\n\n                  this.logger.success('Partial Answer', this.loggerFrom, surveyJsModel.data);\n                } else {\n                  this.data.splice(currentFormIndex);\n                }\n              }\n            }\n            y();\n          },\n          (err) => n()\n        );\n      });\n    } else {\n      return Promise.resolve();\n    }\n  }\n\n  private saveAnswerState(surveyId: string): void {\n    localStorage.setItem(`${environment.partialAnswerKey}:${surveyId}`, JSON.stringify(this.surveyAnswerState));\n  }\n\n  private deleteAnswerState(surveyId: string): void {\n    localStorage.removeItem(`${environment.partialAnswerKey}:${surveyId}`);\n  }\n\n  private getAnswerState(surveyId: string): { page: number; answerId: string } {\n    const answerState = localStorage.getItem(`${environment.partialAnswerKey}:${surveyId}`);\n\n    if (!answerState) {\n      return null;\n    }\n\n    return JSON.parse(answerState);\n  }\n\n  private combinePartialAnswers(formVersionId: string, partialData: any, jsonObj: boolean = false): any {\n    // If it's not empty need to combine both answers\n    const partialAnswers: FormAnswer[] = this.data;\n\n    // There is answers for this form\n    const answersIndex = partialAnswers.findIndex((a) => a.id === formVersionId);\n\n    if (answersIndex > -1) {\n      // Replace the existent item\n      partialAnswers[answersIndex] = {\n        id: formVersionId,\n        answersJson: partialData,\n      };\n    } else {\n      // There is no answer for current form yet, should be added\n      partialAnswers.push({ id: formVersionId, answersJson: partialData });\n    }\n\n    if (jsonObj) {\n      return partialAnswers;\n    }\n\n    return JSON.stringify(partialAnswers);\n  }\n\n  private saveAnswer(id: string, answers: object): Promise<void> {\n    this.logger.success('Survey Data', this.loggerFrom, this.data);\n    this.preventClick = true;\n\n    if (this.data.length === 0) {\n      this.data = [{ id, answersJson: answers }];\n    } else {\n      this.data = this.combinePartialAnswers(id, answers, true);\n    }\n\n    return this.navigate();\n  }\n\n  private extend(obj, src) {\n    Object.keys(src).forEach((key) => {\n      obj[key] = src[key];\n    });\n    return obj;\n  }\n\n  private setTitle(templateId: string) {\n    this.surveyService.getTemplate(templateId).then((template) => {\n      template.templateLanguages.forEach((templateLanguage) => {\n        if (templateLanguage.templateId === template.id && templateLanguage.name === this.language) {\n          templateLanguage.templateLanguageValues.forEach((value) => {\n            if (value.templateLanguageId === templateLanguage.id) {\n              if (isNullOrUndefined(value.headTitle) || value.headTitle.length === 0) {\n                switch (this.language) {\n                  case 'en':\n                    this.titleService.setTitle('Survey');\n                    break;\n                  case 'fr':\n                    this.titleService.setTitle('Questionnaire');\n                    break;\n                  default:\n                    this.titleService.setTitle('Survey');\n                }\n              } else {\n                this.titleService.setTitle(value.headTitle);\n              }\n            }\n          });\n        }\n      });\n    });\n  }\n\n  private renewSavingCancellationToken() {\n    this.savingCancellationToken.next();\n    this.savingCancellationToken.complete();\n    this.savingCancellationToken = new Subject();\n  }\n\n  private showOverlay() {\n    this.sharedService.setPageHeight(document.documentElement.scrollHeight);\n    this.sharedService.setShowLoader(true);\n  }\n\n  private hideOverlay() {\n    this.sharedService.setShowLoader(false);\n  }\n}\n","<div #surveyContainer class=\"survey-content\">\n    <app-loading-spinner [show-spinner]=\"isLoading\" [loading-text]=\"loadingText\"></app-loading-spinner>\n</div>\n<app-recaptcha></app-recaptcha>"],"sourceRoot":"webpack:///"}