@igo2/core 16.3.0 → 17.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/esm2022/lib/activity/activity.interceptor.mjs +5 -5
  2. package/esm2022/lib/activity/activity.module.mjs +5 -5
  3. package/esm2022/lib/activity/activity.service.mjs +5 -5
  4. package/esm2022/lib/activity/index.mjs +1 -1
  5. package/esm2022/lib/analytics/index.mjs +1 -1
  6. package/esm2022/lib/analytics/shared/analytics.service.mjs +5 -5
  7. package/esm2022/lib/analytics/shared/index.mjs +1 -1
  8. package/esm2022/lib/compression/compression.service.mjs +5 -5
  9. package/esm2022/lib/compression/index.mjs +1 -1
  10. package/esm2022/lib/config/config.module.mjs +5 -5
  11. package/esm2022/lib/config/config.service.mjs +5 -5
  12. package/esm2022/lib/config/index.mjs +1 -1
  13. package/esm2022/lib/config/version.mjs +3 -3
  14. package/esm2022/lib/core.module.mjs +12 -14
  15. package/esm2022/lib/gesture/gesture.module.mjs +5 -5
  16. package/esm2022/lib/gesture/gesture.provider.mjs +4 -4
  17. package/esm2022/lib/language/index.mjs +1 -1
  18. package/esm2022/lib/language/language.module.mjs +6 -29
  19. package/esm2022/lib/language/shared/index.mjs +3 -1
  20. package/esm2022/lib/language/shared/language-mock.provider.mjs +5 -0
  21. package/esm2022/lib/language/shared/language.interface.mjs +3 -2
  22. package/esm2022/lib/language/shared/language.loader.mjs +23 -16
  23. package/esm2022/lib/language/shared/language.provider.mjs +37 -18
  24. package/esm2022/lib/language/shared/language.service.mjs +5 -5
  25. package/esm2022/lib/language/shared/missing-translation.guard.mjs +2 -2
  26. package/esm2022/lib/media/index.mjs +1 -1
  27. package/esm2022/lib/media/media.enum.mjs +1 -1
  28. package/esm2022/lib/media/media.service.mjs +5 -5
  29. package/esm2022/lib/message/index.mjs +1 -1
  30. package/esm2022/lib/message/message.module.mjs +5 -5
  31. package/esm2022/lib/message/shared/message.enum.mjs +1 -1
  32. package/esm2022/lib/message/shared/message.service.mjs +8 -7
  33. package/esm2022/lib/monitoring/monitoring.provider.mjs +1 -1
  34. package/esm2022/lib/monitoring/sentry/sentry.interface.mjs +1 -1
  35. package/esm2022/lib/monitoring/sentry/sentry.mjs +1 -1
  36. package/esm2022/lib/monitoring/sentry/sentry.provider.mjs +1 -1
  37. package/esm2022/lib/monitoring/sentry/sentry.utils.mjs +4 -2
  38. package/esm2022/lib/monitoring/shared/any-monitoring.interface.mjs +1 -1
  39. package/esm2022/lib/network/index.mjs +1 -1
  40. package/esm2022/lib/network/network.service.mjs +5 -5
  41. package/esm2022/lib/regex/index.mjs +1 -1
  42. package/esm2022/lib/regex/regex.service.mjs +5 -5
  43. package/esm2022/lib/request/error.interceptor.mjs +5 -5
  44. package/esm2022/lib/request/error.module.mjs +7 -7
  45. package/esm2022/lib/request/index.mjs +1 -1
  46. package/esm2022/lib/request/logging.interceptor.mjs +4 -4
  47. package/esm2022/lib/request/logging.module.mjs +5 -5
  48. package/esm2022/lib/route/route.interface.mjs +1 -1
  49. package/esm2022/lib/route/route.service.mjs +6 -6
  50. package/esm2022/lib/storage/storage.interface.mjs +1 -1
  51. package/esm2022/lib/storage/storage.mjs +1 -1
  52. package/esm2022/lib/storage/storage.service.mjs +5 -5
  53. package/esm2022/public_api.mjs +1 -2
  54. package/fesm2022/igo2-core.mjs +203 -192
  55. package/fesm2022/igo2-core.mjs.map +1 -1
  56. package/lib/core.module.d.ts +4 -4
  57. package/lib/language/language.module.d.ts +1 -3
  58. package/lib/language/shared/index.d.ts +2 -0
  59. package/lib/language/shared/language-mock.provider.d.ts +2 -0
  60. package/lib/language/shared/language.interface.d.ts +6 -0
  61. package/lib/language/shared/language.loader.d.ts +6 -4
  62. package/lib/language/shared/language.provider.d.ts +8 -15
  63. package/lib/message/shared/message.enum.d.ts +1 -1
  64. package/lib/monitoring/sentry/sentry.utils.d.ts +1 -1
  65. package/lib/monitoring/shared/any-monitoring.interface.d.ts +1 -1
  66. package/locale/en.json +1 -1
  67. package/locale/fr.json +1 -1
  68. package/package.json +9 -9
  69. package/public_api.d.ts +0 -1
  70. package/src/packages.import.scss +1 -0
  71. package/src/style/partial/media.scss +80 -80
  72. package/src/theming/all-theme.scss +1 -0
  73. package/theming/prebuilt-themes/blue-theme.css +823 -963
  74. package/theming/prebuilt-themes/bluedark-theme.css +823 -963
  75. package/theming/prebuilt-themes/bluedq-theme.css +823 -963
  76. package/theming/prebuilt-themes/bluegrey-theme.css +823 -963
  77. package/theming/prebuilt-themes/dark-theme.css +823 -970
  78. package/theming/prebuilt-themes/deeppurple-theme.css +823 -963
  79. package/theming/prebuilt-themes/indigo-theme.css +823 -963
  80. package/theming/prebuilt-themes/orange-theme.css +823 -963
  81. package/theming/prebuilt-themes/teal-theme.css +823 -963
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-core.mjs","sources":["../../../packages/core/src/lib/activity/activity.service.ts","../../../packages/core/src/lib/activity/activity.interceptor.ts","../../../packages/core/src/lib/activity/activity.module.ts","../../../packages/core/src/lib/config/config-deprecated.ts","../../../packages/core/src/lib/config/version.ts","../../../packages/core/src/lib/config/config.service.ts","../../../packages/core/src/lib/config/config.provider.ts","../../../packages/core/src/lib/config/config.module.ts","../../../packages/core/src/lib/language/shared/language.loader.ts","../../../packages/core/src/lib/language/shared/language.provider.ts","../../../packages/core/src/lib/language/shared/missing-translation.guard.ts","../../../packages/core/src/lib/language/language.module.ts","../../../packages/core/src/lib/message/message.module.ts","../../../packages/core/src/lib/language/shared/language.service.ts","../../../packages/core/src/lib/message/shared/message.enum.ts","../../../packages/core/src/lib/message/shared/message.service.ts","../../../packages/core/src/lib/request/error.interceptor.ts","../../../packages/core/src/lib/request/error.module.ts","../../../packages/core/src/lib/core.module.ts","../../../packages/core/src/lib/gesture/gesture.provider.ts","../../../packages/core/src/lib/gesture/gesture.module.ts","../../../packages/core/src/lib/request/logging.interceptor.ts","../../../packages/core/src/lib/request/logging.module.ts","../../../packages/core/src/lib/route/route.service.ts","../../../packages/core/src/lib/analytics/shared/analytics.service.ts","../../../packages/core/src/lib/media/media.enum.ts","../../../packages/core/src/lib/media/media.service.ts","../../../packages/core/src/lib/monitoring/sentry/sentry.utils.ts","../../../packages/core/src/lib/monitoring/sentry/sentry.ts","../../../packages/core/src/lib/monitoring/sentry/sentry.provider.ts","../../../packages/core/src/lib/monitoring/monitoring.provider.ts","../../../packages/core/src/lib/storage/storage.interface.ts","../../../packages/core/src/lib/storage/storage.ts","../../../packages/core/src/lib/storage/storage.service.ts","../../../packages/core/src/lib/compression/compression.service.ts","../../../packages/core/src/lib/network/network.service.ts","../../../packages/core/src/lib/regex/regex.service.ts","../../../packages/core/src/public_api.ts","../../../packages/core/src/igo2-core.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nimport { uuid } from '@igo2/utils';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ActivityService {\r\n public counter$ = new BehaviorSubject<number>(0);\r\n\r\n private ids: string[] = [];\r\n\r\n constructor() {}\r\n\r\n register(): string {\r\n const id = uuid();\r\n this.ids.push(id);\r\n this.counter$.next(this.ids.length);\r\n\r\n return id;\r\n }\r\n\r\n unregister(id: string) {\r\n const index = this.ids.indexOf(id);\r\n if (index === -1) {\r\n return;\r\n }\r\n this.ids.splice(index, 1);\r\n\r\n this.counter$.next(this.ids.length);\r\n }\r\n}\r\n","import {\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\nimport { ActivityService } from './activity.service';\r\n\r\n@Injectable()\r\nexport class ActivityInterceptor implements HttpInterceptor {\r\n constructor(private activityService: ActivityService) {}\r\n\r\n intercept(\r\n req: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const activity = req.headers.get('activityInterceptor');\r\n if (activity) {\r\n const actReq = req.clone({\r\n headers: req.headers.delete('activityInterceptor')\r\n });\r\n if (activity === 'false') {\r\n return next.handle(actReq);\r\n }\r\n }\r\n\r\n const id = this.activityService.register();\r\n\r\n return next.handle(req).pipe(\r\n finalize(() => {\r\n this.activityService.unregister(id);\r\n })\r\n );\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { ActivityInterceptor } from './activity.interceptor';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoActivityModule {\r\n static forRoot(): ModuleWithProviders<IgoActivityModule> {\r\n return {\r\n ngModule: IgoActivityModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ActivityInterceptor,\r\n multi: true\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { AlternateConfigOptions, DeprecatedOptions } from './config.interface';\r\n\r\nexport const CONFIG_DEPRECATED: { [key: string]: DeprecatedOptions } = {\r\n showMenuButton: {\r\n alternativeKey: 'menu.button.visible',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n },\r\n menuButtonReverseColor: {\r\n alternativeKey: 'menu.button.useThemeColor',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n },\r\n importWithStyle: {\r\n alternativeKey: 'importExport.importWithStyle',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n },\r\n hasGeolocateButton: {\r\n alternativeKey: 'geolocate.button.visible',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n }\r\n};\r\n\r\nexport const ALTERNATE_CONFIG_FROM_DEPRECATION = new Map<\r\n string,\r\n AlternateConfigOptions\r\n>(\r\n Object.entries(CONFIG_DEPRECATED)\r\n .filter(([_, options]) => options.alternativeKey)\r\n .map(([key, options]) => [\r\n options.alternativeKey,\r\n {\r\n deprecatedKey: key\r\n } satisfies AlternateConfigOptions\r\n ])\r\n);\r\n","export interface Version {\r\n app?: string;\r\n lib?: string;\r\n releaseDateApp?: number;\r\n releaseDate?: number;\r\n}\r\n\r\nexport const version: Version = {\r\n lib: '16.3.0',\r\n releaseDate: 1706198187286\r\n};\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { BehaviorSubject, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport {\r\n ALTERNATE_CONFIG_FROM_DEPRECATION,\r\n CONFIG_DEPRECATED\r\n} from './config-deprecated';\r\nimport { BaseConfigOptions, ConfigOptions } from './config.interface';\r\nimport { version } from './version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService<T = { [key: string]: any }> {\r\n private config: BaseConfigOptions<T> | null;\r\n private httpClient: HttpClient;\r\n private configDeprecated = new Map(Object.entries(CONFIG_DEPRECATED));\r\n\r\n private _isLoaded$ = new BehaviorSubject<boolean>(null);\r\n isLoaded$ = this._isLoaded$.asObservable();\r\n\r\n constructor(handler: HttpBackend) {\r\n this.httpClient = new HttpClient(handler);\r\n }\r\n\r\n /**\r\n * Use to get the all config file (merge from environnement.ts and config.json)\r\n */\r\n public getConfigs(): any {\r\n Array.from(this.configDeprecated.keys()).map((deprecatedKey) => {\r\n const deprecatedValue = ObjectUtils.resolve(this.config, deprecatedKey);\r\n if (deprecatedValue !== undefined) {\r\n this.handleDeprecatedConfig(deprecatedKey);\r\n }\r\n });\r\n return this.config;\r\n }\r\n\r\n /**\r\n * Use to get the data found in config file\r\n */\r\n public getConfig<T = any>(key: string, defaultValue?: unknown): T {\r\n let value = ObjectUtils.resolve(this.config, key);\r\n\r\n const isDeprecated = this.configDeprecated.get(key);\r\n if (isDeprecated && value !== undefined) {\r\n this.handleDeprecatedConfig(key);\r\n } else if (value === undefined) {\r\n value = this.handleDeprecationPossibility(key);\r\n }\r\n\r\n return value ?? defaultValue;\r\n }\r\n\r\n private handleDeprecatedConfig(key: string): void {\r\n const options = this.configDeprecated.get(key);\r\n\r\n let message = `This config (${key}) is deprecated and will be removed shortly`;\r\n if (options.alternativeKey) {\r\n message += ` You should use this key (${options.alternativeKey}) as an alternate solution`;\r\n }\r\n\r\n const currentDate = new Date();\r\n currentDate >= options.mayBeRemoveIn\r\n ? console.error(message)\r\n : console.warn(message);\r\n }\r\n\r\n private handleDeprecationPossibility(key: string): any {\r\n const options = ALTERNATE_CONFIG_FROM_DEPRECATION.get(key);\r\n if (!options) {\r\n return;\r\n }\r\n\r\n return this.getConfig(options.deprecatedKey);\r\n }\r\n\r\n /**\r\n * This method loads \"[path]\" to get all config's variables\r\n */\r\n public load(options: ConfigOptions<T>) {\r\n const baseConfig = options.default;\r\n if (!options.path) {\r\n this.config = baseConfig;\r\n this._isLoaded$.next(true);\r\n return true;\r\n }\r\n\r\n return new Promise((resolve, _reject) => {\r\n this.httpClient\r\n .get(options.path)\r\n .pipe(\r\n catchError((error: any): any => {\r\n console.log(`Configuration file ${options.path} could not be read`);\r\n resolve(true);\r\n return throwError(error.error || 'Server error');\r\n })\r\n )\r\n .subscribe((configResponse: object) => {\r\n this.config = ObjectUtils.mergeDeep(\r\n ObjectUtils.mergeDeep({ version }, baseConfig),\r\n configResponse\r\n );\r\n this._isLoaded$.next(true);\r\n resolve(true);\r\n });\r\n });\r\n }\r\n}\r\n","import { APP_INITIALIZER, InjectionToken } from '@angular/core';\r\n\r\nimport { ConfigOptions } from './config.interface';\r\nimport { ConfigService } from './config.service';\r\n\r\nexport let CONFIG_OPTIONS = new InjectionToken<ConfigOptions>('configOptions');\r\n\r\nexport function provideConfigOptions(options: ConfigOptions) {\r\n return {\r\n provide: CONFIG_OPTIONS,\r\n useValue: options\r\n };\r\n}\r\n\r\nexport function configFactory(\r\n configService: ConfigService,\r\n options: ConfigOptions\r\n) {\r\n return () => configService.load(options);\r\n}\r\n\r\nexport function provideConfigLoader() {\r\n return {\r\n provide: APP_INITIALIZER,\r\n useFactory: configFactory,\r\n multi: true,\r\n deps: [ConfigService, CONFIG_OPTIONS]\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { provideConfigLoader, provideConfigOptions } from './config.provider';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoConfigModule {\r\n static forRoot(): ModuleWithProviders<IgoConfigModule> {\r\n return {\r\n ngModule: IgoConfigModule,\r\n providers: [provideConfigOptions({}), provideConfigLoader()]\r\n };\r\n }\r\n}\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\n\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { TranslateLoader } from '@ngx-translate/core';\r\nimport { forkJoin, map } from 'rxjs';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\n\r\nexport class LanguageLoader implements TranslateLoader {\r\n private httpClient: HttpClient;\r\n\r\n constructor(\r\n handler: HttpBackend,\r\n private prefix?: string | string[],\r\n private suffix: string = '.json',\r\n private config?: ConfigService\r\n ) {\r\n this.httpClient = new HttpClient(handler);\r\n }\r\n\r\n public getTranslation(lang: string): any {\r\n const igoLocale$ = this.httpClient.get(`locale/libs_locale/${lang}.json`);\r\n\r\n if (this.config && !this.prefix) {\r\n const prefix = this.config.getConfig('language.prefix');\r\n this.prefix = !prefix || Array.isArray(prefix) ? prefix : [prefix];\r\n }\r\n\r\n if (!this.prefix || this.prefix.length === 0) {\r\n return igoLocale$;\r\n }\r\n\r\n const appLocale$ = (this.prefix as string[]).map((prefix) =>\r\n this.httpClient.get(`${prefix}${lang}${this.suffix}`)\r\n );\r\n\r\n const locale$ = forkJoin([igoLocale$, ...appLocale$]);\r\n\r\n return locale$.pipe(\r\n map((translations) => {\r\n return translations.reduce(\r\n (acc, current) => ObjectUtils.mergeDeep(acc, current),\r\n {}\r\n );\r\n })\r\n );\r\n }\r\n}\r\n","import { HttpBackend } from '@angular/common/http';\r\n\r\nimport { TranslateLoader } from '@ngx-translate/core';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\nimport { LanguageLoader } from './language.loader';\r\n\r\nexport function defaultLanguageLoader(\r\n http: HttpBackend,\r\n config?: ConfigService\r\n) {\r\n return new LanguageLoader(http, undefined, undefined, config);\r\n}\r\n\r\nexport function provideLanguageLoader(loader?) {\r\n return {\r\n provide: TranslateLoader,\r\n useFactory: loader || defaultLanguageLoader,\r\n deps: [HttpBackend]\r\n };\r\n}\r\n\r\nexport function provideDefaultLanguageLoader(loader?) {\r\n return {\r\n provide: TranslateLoader,\r\n useFactory: loader || defaultLanguageLoader,\r\n deps: [HttpBackend, ConfigService]\r\n };\r\n}\r\n","import {\n MissingTranslationHandler,\n MissingTranslationHandlerParams\n} from '@ngx-translate/core';\n\nexport class IgoMissingTranslationHandler implements MissingTranslationHandler {\n handle(params: MissingTranslationHandlerParams) {\n if (!params.translateService.langs.length) {\n const error =\n 'Translations are not yet loaded. \\\n Check that the LanguageService is injected.';\n throw new Error(error);\n }\n\n if (params.key.substr(0, 4) === 'igo.') {\n throw new Error(`The Key \"${params.key}\" is missing in locale file.`);\n } else {\n return params.key;\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport {\r\n MissingTranslationHandler,\r\n TranslateModule\r\n} from '@ngx-translate/core';\r\n\r\nimport { provideDefaultLanguageLoader } from './shared/language.provider';\r\nimport { IgoMissingTranslationHandler } from './shared/missing-translation.guard';\r\n\r\n@NgModule({\r\n imports: [\r\n TranslateModule.forRoot({\r\n missingTranslationHandler: {\r\n provide: MissingTranslationHandler,\r\n useClass: IgoMissingTranslationHandler\r\n }\r\n })\r\n ],\r\n declarations: [],\r\n exports: [TranslateModule]\r\n})\r\nexport class IgoLanguageModule {\r\n static forRoot(): ModuleWithProviders<IgoLanguageModule> {\r\n return {\r\n ngModule: IgoLanguageModule,\r\n providers: [provideDefaultLanguageLoader()]\r\n };\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { GlobalConfig, ToastrModule } from 'ngx-toastr';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ToastrModule.forRoot({\r\n positionClass: 'toast-bottom-right',\r\n timeOut: 10000,\r\n extendedTimeOut: 10000,\r\n titleClass: 'mat-subtitle-2',\r\n messageClass: 'toast-message',\r\n closeButton: true,\r\n progressBar: true,\r\n enableHtml: true,\r\n tapToDismiss: true,\r\n maxOpened: 4,\r\n preventDuplicates: true,\r\n resetTimeoutOnDuplicate: true,\r\n countDuplicates: false,\r\n includeTitleDuplicates: true\r\n } as GlobalConfig)\r\n ],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoMessageModule {\r\n static forRoot(): ModuleWithProviders<IgoMessageModule> {\r\n return {\r\n ngModule: IgoMessageModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, combineLatest } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageService {\r\n private language: string;\r\n readonly language$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n constructor(public translate: TranslateService) {\r\n this.language = this.translate.getBrowserLang();\r\n const lang = this.getLanguage();\r\n this.translate.setDefaultLang(lang);\r\n this.language$.next(lang);\r\n }\r\n\r\n public getLanguage(): string {\r\n return this.language.match(/en|fr/) ? this.language : 'en';\r\n }\r\n\r\n public setLanguage(language: string) {\r\n this.language = language.match(/en|fr/) ? language : 'en';\r\n combineLatest([\r\n this.translate.use(this.language),\r\n this.translate.reloadLang(this.language)\r\n ]).subscribe(() => {\r\n this.language$.next(this.language);\r\n });\r\n }\r\n}\r\n","export enum MessageType {\n ERROR = 'error',\n ALERT = 'warning', // todo delete (transition to ngx-toastr)\n WARNING = 'warning',\n INFO = 'info',\n SUCCESS = 'success',\n SHOW = 'show'\n}\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Injector } from '@angular/core';\r\n\r\nimport { ActiveToast, IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { BehaviorSubject, forkJoin } from 'rxjs';\r\nimport { debounceTime, first } from 'rxjs/operators';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\nimport { LanguageService } from '../../language/shared/language.service';\r\nimport { MessageType } from './message.enum';\r\nimport { Message, MessageOptions } from './message.interface';\r\n\r\ninterface ActiveMessageTranslation {\r\n id: number;\r\n titleKey: string;\r\n textKey: string;\r\n textInterpolateParams?: Object;\r\n titleInterpolateParams?: Object;\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MessageService {\r\n public messages$ = new BehaviorSubject<Message[]>([]);\r\n private options?: MessageOptions;\r\n private activeMessageTranslations: ActiveMessageTranslation[] = [];\r\n\r\n constructor(\r\n @Inject(Injector) private injector: Injector,\r\n private configService: ConfigService,\r\n private languageService: LanguageService\r\n ) {\r\n this.options = this.configService.getConfig('message');\r\n this.languageService.language$.pipe(debounceTime(500)).subscribe((r) => {\r\n if (this.toastr.toasts.length === 0) {\r\n this.activeMessageTranslations = [];\r\n }\r\n this.toastr.toasts.map((toast) => {\r\n const activeMessageTranslation = this.activeMessageTranslations.find(\r\n (amt) => amt.id === toast.toastId\r\n );\r\n if (activeMessageTranslation) {\r\n const translatedTextInterpolateParams = {\r\n ...activeMessageTranslation.textInterpolateParams\r\n };\r\n const translatedTitleInterpolateParams = {\r\n ...activeMessageTranslation.titleInterpolateParams\r\n };\r\n\r\n if (activeMessageTranslation.textInterpolateParams) {\r\n Object.keys(activeMessageTranslation.textInterpolateParams).map(\r\n (k) => {\r\n if (k) {\r\n translatedTextInterpolateParams[k] =\r\n this.languageService.translate.instant(\r\n activeMessageTranslation.textInterpolateParams[k]\r\n );\r\n }\r\n }\r\n );\r\n }\r\n if (activeMessageTranslation.titleInterpolateParams) {\r\n Object.keys(activeMessageTranslation.titleInterpolateParams).map(\r\n (k) => {\r\n if (k) {\r\n translatedTitleInterpolateParams[k] =\r\n this.languageService.translate.instant(\r\n activeMessageTranslation.titleInterpolateParams[k]\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n forkJoin([\r\n this.languageService.translate.get(\r\n activeMessageTranslation.textKey,\r\n translatedTextInterpolateParams\r\n ),\r\n this.languageService.translate.get(\r\n activeMessageTranslation.titleKey,\r\n translatedTitleInterpolateParams\r\n )\r\n ])\r\n .pipe(first())\r\n .subscribe((res: [string, string]) => {\r\n toast.toastRef.componentInstance.message = res[0];\r\n toast.toastRef.componentInstance.title = res[1];\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n private get toastr(): ToastrService {\r\n return this.injector.get(ToastrService);\r\n }\r\n\r\n showError(httpError: HttpErrorResponse) {\r\n httpError.error.caught = true;\r\n return this.error(httpError.error.message, httpError.error.title);\r\n }\r\n\r\n message(message: Message) {\r\n const messageType = message.type;\r\n this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType}`;\r\n\r\n this.messages$.next(this.messages$.value.concat([message]));\r\n\r\n message.options = message.options || ({} as MessageOptions);\r\n const currentDate = new Date();\r\n\r\n message.options.from = message.options.from\r\n ? message.options.from\r\n : new Date('1 jan 1900');\r\n message.options.to = message.options.to\r\n ? message.options.to\r\n : new Date('1 jan 3000');\r\n if (typeof message.options.from === 'string') {\r\n message.options.from = new Date(\r\n Date.parse(message.options.from.replace(/-/g, ' '))\r\n );\r\n }\r\n if (typeof message.options.to === 'string') {\r\n message.options.to = new Date(\r\n Date.parse(message.options.to.replace(/-/g, ' '))\r\n );\r\n }\r\n if (\r\n currentDate > message.options.from &&\r\n currentDate < message.options.to\r\n ) {\r\n if (message.showIcon === false) {\r\n this.toastr.toastrConfig.iconClasses[\r\n messageType\r\n ] = `toast-${messageType} toast-no-icon`;\r\n }\r\n message = this.handleTemplate(message);\r\n\r\n if (message.text) {\r\n let messageShown: ActiveToast<any>;\r\n switch (message.type) {\r\n case MessageType.SUCCESS:\r\n messageShown = this.success(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n case MessageType.ERROR:\r\n messageShown = this.error(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n case MessageType.INFO:\r\n messageShown = this.info(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n case MessageType.SHOW:\r\n messageShown = this.show(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n case MessageType.ALERT:\r\n case MessageType.WARNING:\r\n messageShown = this.alert(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n default:\r\n messageShown = this.info(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n }\r\n message.options.id = messageShown.toastId;\r\n }\r\n }\r\n }\r\n\r\n success(\r\n text: string,\r\n title: string = 'igo.core.message.success',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'success',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n error(\r\n text: string,\r\n title: string = 'igo.core.message.error',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'error',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n info(\r\n text: string,\r\n title: string = 'igo.core.message.info',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'info',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n alert(\r\n text: string,\r\n title: string = 'igo.core.message.alert',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'alert',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n show(\r\n text: string,\r\n title: string = 'igo.core.message.info',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'show',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n private handleNgxToastr(\r\n type: 'alert' | 'info' | 'error' | 'success' | 'show',\r\n text: string,\r\n title: string,\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n const translatedTextInterpolateParams = { ...textInterpolateParams };\r\n const translatedTitlenterpolateParams = { ...titleInterpolateParams };\r\n\r\n if (textInterpolateParams) {\r\n Object.keys(textInterpolateParams).map((k) => {\r\n const value = textInterpolateParams[k];\r\n if (value) {\r\n translatedTextInterpolateParams[k] =\r\n typeof value === 'string'\r\n ? this.languageService.translate.instant(value)\r\n : value;\r\n }\r\n });\r\n }\r\n if (titleInterpolateParams) {\r\n Object.keys(titleInterpolateParams).map((k) => {\r\n if (k) {\r\n const value = titleInterpolateParams[k];\r\n translatedTitlenterpolateParams[k] =\r\n typeof value === 'string'\r\n ? this.languageService.translate.instant(value)\r\n : value;\r\n }\r\n });\r\n }\r\n\r\n const message = this.languageService.translate.instant(\r\n text,\r\n translatedTextInterpolateParams\r\n );\r\n const translatedTitle = this.languageService.translate.instant(\r\n title,\r\n translatedTitlenterpolateParams\r\n );\r\n\r\n let activeToast;\r\n switch (type) {\r\n case 'success':\r\n activeToast = this.toastr.success(message, translatedTitle, options);\r\n break;\r\n case 'error':\r\n activeToast = this.toastr.error(message, translatedTitle, options);\r\n break;\r\n case 'show':\r\n case 'info':\r\n activeToast = this.toastr.info(message, translatedTitle, options);\r\n break;\r\n case 'alert':\r\n activeToast = this.toastr.warning(message, translatedTitle, options);\r\n break;\r\n }\r\n this.activeMessageTranslations.push({\r\n id: activeToast.toastId,\r\n titleKey: title,\r\n textKey: text,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n });\r\n return activeToast;\r\n }\r\n\r\n remove(id?: number) {\r\n this.toastr.remove(id);\r\n }\r\n\r\n removeAllAreNotError() {\r\n for (const mess of this.messages$.value) {\r\n if (mess.type !== MessageType.ERROR) {\r\n this.remove(mess.options.id);\r\n }\r\n }\r\n }\r\n\r\n private handleTemplate(message: Message): Message {\r\n if (!this.options?.template || message.html) {\r\n return message;\r\n }\r\n\r\n let html = this.options?.template;\r\n html = html.replace('${text}', message.text);\r\n html = html.replace('${title}', message.title);\r\n\r\n message.html = undefined;\r\n message.text = html;\r\n message.title = undefined;\r\n return message;\r\n }\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\n\r\nimport { MessageService } from '../message/shared/message.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(private messageService: MessageService) {}\r\n\r\n intercept(\r\n originalReq: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const interceptError = originalReq.headers.get('interceptError');\r\n const req = originalReq.clone({\r\n headers: originalReq.headers.delete('interceptError')\r\n });\r\n if (interceptError === 'false') {\r\n return next.handle(req);\r\n }\r\n const errorContainer = { httpError: undefined };\r\n return next.handle(req).pipe(\r\n catchError((error) => this.handleError(error, errorContainer)),\r\n finalize(() => {\r\n const httpError = errorContainer.httpError;\r\n if (!httpError) {\r\n return;\r\n }\r\n\r\n if (httpError.error.toDisplay) {\r\n this.handleCaughtError(httpError);\r\n } else if (!httpError.error.caught) {\r\n this.handleUncaughtError(httpError);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private handleError(\r\n httpError: HttpErrorResponse,\r\n errorContainer: { httpError: HttpErrorResponse }\r\n ) {\r\n if (httpError instanceof HttpErrorResponse) {\r\n const errorObj = httpError.error === 'object' ? httpError.error : {};\r\n errorObj.message = httpError.error?.message || httpError.statusText;\r\n errorObj.caught = false;\r\n\r\n httpError = new HttpErrorResponse({\r\n error: errorObj,\r\n headers: httpError.headers,\r\n status: httpError.status,\r\n statusText: httpError.statusText,\r\n url: httpError.url\r\n });\r\n }\r\n\r\n errorContainer.httpError = httpError;\r\n return throwError(httpError);\r\n }\r\n\r\n private handleCaughtError(httpError: HttpErrorResponse) {\r\n httpError.error.caught = true;\r\n this.messageService.error(httpError.error.message, httpError.error.title, {\r\n progressBar: false\r\n });\r\n }\r\n\r\n private handleUncaughtError(httpError: HttpErrorResponse) {\r\n httpError.error.caught = true;\r\n this.messageService.error(\r\n 'igo.core.errors.uncaught.message',\r\n 'igo.core.errors.uncaught.title',\r\n {\r\n progressBar: false\r\n }\r\n );\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport {\r\n ModuleWithProviders,\r\n NgModule,\r\n Optional,\r\n SkipSelf\r\n} from '@angular/core';\r\n\r\nimport { ErrorInterceptor } from './error.interceptor';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoErrorModule {\r\n static forRoot(): ModuleWithProviders<IgoErrorModule> {\r\n return {\r\n ngModule: IgoErrorModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ErrorInterceptor,\r\n multi: true\r\n }\r\n ]\r\n };\r\n }\r\n\r\n constructor(@Optional() @SkipSelf() parentModule: IgoErrorModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'IgoErrorModule is already loaded. Import it in the AppModule only'\r\n );\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { DBConfig, NgxIndexedDBModule } from 'ngx-indexed-db';\r\n\r\nimport { IgoActivityModule } from './activity/activity.module';\r\nimport { IgoConfigModule } from './config/config.module';\r\nimport { IgoLanguageModule } from './language/language.module';\r\nimport { IgoMessageModule } from './message/message.module';\r\nimport { IgoErrorModule } from './request/error.module';\r\n\r\nconst dbConfig: DBConfig = {\r\n name: 'igo2DB',\r\n version: 2,\r\n objectStoresMeta: [\r\n {\r\n store: 'geoData',\r\n storeConfig: { keyPath: 'url', autoIncrement: false },\r\n storeSchema: [\r\n { name: 'regionID', keypath: 'regionID', options: { unique: false } }\r\n ]\r\n },\r\n {\r\n store: 'layerData',\r\n storeConfig: { keyPath: 'layerId', autoIncrement: false },\r\n storeSchema: [\r\n {\r\n name: 'layerOptions',\r\n keypath: 'layerOptions',\r\n options: { unique: false }\r\n },\r\n {\r\n name: 'sourceOptions',\r\n keypath: 'sourceOptions',\r\n options: { unique: false }\r\n }\r\n ]\r\n }\r\n ]\r\n};\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n IgoActivityModule.forRoot(),\r\n IgoConfigModule.forRoot(),\r\n IgoErrorModule.forRoot(),\r\n IgoLanguageModule.forRoot(),\r\n IgoMessageModule.forRoot(),\r\n NgxIndexedDBModule.forRoot(dbConfig)\r\n ],\r\n declarations: [],\r\n exports: [\r\n IgoActivityModule,\r\n IgoConfigModule,\r\n IgoErrorModule,\r\n IgoLanguageModule,\r\n IgoMessageModule\r\n ]\r\n})\r\nexport class IgoCoreModule {\r\n static forRoot(): ModuleWithProviders<IgoCoreModule> {\r\n return {\r\n ngModule: IgoCoreModule,\r\n providers: []\r\n };\r\n }\r\n\r\n constructor(matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer) {\r\n matIconRegistry.addSvgIconSet(\r\n domSanitizer.bypassSecurityTrustResourceUrl(\r\n './assets/igo2/core/icons/mdi.svg'\r\n )\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HammerGestureConfig } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\nexport class IgoGestureConfig extends HammerGestureConfig {\r\n buildHammer(element: HTMLElement) {\r\n const mc = super.buildHammer(element) as any;\r\n mc.set({ touchAction: 'pan-y' });\r\n return mc;\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { HAMMER_GESTURE_CONFIG, HammerModule } from '@angular/platform-browser';\r\n\r\nimport { IgoGestureConfig } from './gesture.provider';\r\n\r\n@NgModule({\r\n imports: [HammerModule],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoGestureModule {\r\n static forRoot(): ModuleWithProviders<IgoGestureModule> {\r\n return {\r\n ngModule: IgoGestureModule,\r\n providers: [\r\n {\r\n provide: HAMMER_GESTURE_CONFIG,\r\n useClass: IgoGestureConfig\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import {\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpResponse\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { finalize, tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LoggingInterceptor implements HttpInterceptor {\r\n intercept(\r\n req: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const started = Date.now();\r\n let ok: string;\r\n\r\n // extend server response observable with logging\r\n return next.handle(req).pipe(\r\n tap(\r\n // Succeeds when there is a response; ignore other events\r\n (event) => (ok = event instanceof HttpResponse ? 'succeeded' : ''),\r\n // Operation failed; error is an HttpErrorResponse\r\n (error) => (ok = 'failed')\r\n ),\r\n // Log when response observable either completes or errors\r\n finalize(() => {\r\n const elapsed = Date.now() - started;\r\n const msg = `${req.method} \"${req.urlWithParams}\"\r\n ${ok} in ${elapsed} ms.`;\r\n\r\n console.log(msg);\r\n })\r\n );\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { LoggingInterceptor } from './logging.interceptor';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoLoggingModule {\r\n static forRoot(): ModuleWithProviders<IgoLoggingModule> {\r\n return {\r\n ngModule: IgoLoggingModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: LoggingInterceptor,\r\n multi: true\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { RouteServiceOptions } from './route.interface';\r\n\r\nexport let ROUTE_SERVICE_OPTIONS = new InjectionToken<RouteServiceOptions>(\r\n 'routeServiceOptions'\r\n);\r\n\r\nexport function provideRouteServiceOptions(options: RouteServiceOptions) {\r\n return {\r\n provide: ROUTE_SERVICE_OPTIONS,\r\n useValue: options\r\n };\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RouteService {\r\n public options: RouteServiceOptions;\r\n\r\n constructor(\r\n private router: Router,\r\n public route: ActivatedRoute,\r\n @Inject(ROUTE_SERVICE_OPTIONS)\r\n @Optional()\r\n options: RouteServiceOptions\r\n ) {\r\n const defaultOptions = {\r\n centerKey: 'center',\r\n zoomKey: 'zoom',\r\n projectionKey: 'projection',\r\n contextKey: 'context',\r\n searchKey: 'search',\r\n visibleOnLayersKey: 'visiblelayers',\r\n visibleOffLayersKey: 'invisiblelayers',\r\n directionsCoordKey: 'routing',\r\n directionsOptionsKey: 'routingOptions',\r\n toolKey: 'tool',\r\n wmsUrlKey: 'wmsUrl',\r\n wmsLayersKey: 'wmsLayers',\r\n wmtsUrlKey: 'wmtsUrl',\r\n wmtsLayersKey: 'wmtsLayers',\r\n arcgisUrlKey: 'arcgisUrl',\r\n arcgisLayersKey: 'arcgisLayers',\r\n iarcgisUrlKey: 'iarcgisUrl',\r\n iarcgisLayersKey: 'iarcgisLayers',\r\n tarcgisUrlKey: 'tarcgisUrl',\r\n tarcgisLayersKey: 'tarcgisLayers',\r\n vectorKey: 'vector'\r\n };\r\n this.options = Object.assign({}, defaultOptions, options);\r\n }\r\n\r\n get queryParams(): Observable<Params> {\r\n let url = decodeURIComponent(location.search);\r\n if (url.includes('¢er=')) {\r\n url = url.replace('¢er', '&center');\r\n const queryParams: any = url\r\n .slice(1)\r\n .split('&')\r\n .map((p) => p.split('='))\r\n .reduce((obj, pair) => {\r\n const [key, value] = pair.map(decodeURIComponent);\r\n obj[key] = value;\r\n return obj;\r\n }, {});\r\n this.router.navigate([], { queryParams });\r\n }\r\n return this.route.queryParams;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\nimport { AnalyticsBaseUser, AnalyticsOptions } from './analytics.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalyticsService {\r\n private options: AnalyticsOptions;\r\n\r\n get paq() {\r\n return ((window as any)._paq = (window as any)._paq || []);\r\n }\r\n\r\n constructor(private config: ConfigService) {\r\n this.options = this.config.getConfig('analytics') || {};\r\n\r\n if (this.options.provider === 'matomo') {\r\n this.initMatomo();\r\n }\r\n }\r\n\r\n private initMatomo() {\r\n if (!this.options.url || !this.options.id) {\r\n return;\r\n }\r\n const url =\r\n this.options.url.substr(-1) === '/'\r\n ? this.options.url + 'matomo'\r\n : this.options.url;\r\n\r\n // this.paq.push(['trackPageView']);\r\n // this.paq.push(['enableLinkTracking']);\r\n (() => {\r\n this.paq.push(['setTrackerUrl', url + '.php']);\r\n this.paq.push(['setSiteId', this.options.id]);\r\n const g = document.createElement('script');\r\n const s = document.getElementsByTagName('script')[0];\r\n g.type = 'text/javascript';\r\n g.async = true;\r\n g.defer = true;\r\n g.src = url + '.js';\r\n s.parentNode.insertBefore(g, s);\r\n })();\r\n }\r\n\r\n /**\r\n * Pass `null` to unset the user.\r\n */\r\n public setUser(user: AnalyticsBaseUser | null, profils?: string[]) {\r\n if (this.options.provider === 'matomo') {\r\n if (!user) {\r\n this.paq.push(['resetUserId']);\r\n this.paq.push(['deleteCustomVariable', 1, 'user']);\r\n this.paq.push(['deleteCustomVariable', 2, 'name']);\r\n this.paq.push(['deleteCustomVariable', 3, 'profils']);\r\n } else {\r\n this.paq.push(['setUserId', user.id]);\r\n\r\n const name = `${user.firstName} ${user.lastName}`;\r\n this.paq.push(['setCustomVariable', 1, 'user', user.sourceId, 'visit']);\r\n this.paq.push(['setCustomVariable', 2, 'name', name, 'visit']);\r\n this.paq.push(['setCustomVariable', 3, 'profils', profils, 'visit']);\r\n }\r\n\r\n this.paq.push(['trackPageView']);\r\n this.paq.push(['enableLinkTracking']);\r\n }\r\n }\r\n\r\n public trackSearch(term: string, nbResults: number) {\r\n if (this.options.provider === 'matomo') {\r\n this.paq.push(['trackSiteSearch', term, false, nbResults]);\r\n }\r\n }\r\n\r\n public trackEvent(category: string, action: string, name: string) {\r\n if (this.options.provider === 'matomo') {\r\n this.paq.push(['trackEvent', category, action, name]);\r\n }\r\n }\r\n\r\n /**\r\n * Function that tracks layers added to the map\r\n */\r\n public trackLayer(category: string, action: string, parameters: any) {\r\n if (this.options.provider === 'matomo')\r\n this.paq.push(['trackEvent', category, action, parameters]);\r\n }\r\n}\r\n","export enum Media {\n Mobile = 'mobile',\n Tablet = 'tablet',\n Desktop = 'desktop'\n}\n\nexport enum MediaOrientation {\n Portrait = 'portrait',\n Landscape = 'landscape'\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { Media, MediaOrientation } from './media.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MediaService {\r\n public media$ = new BehaviorSubject<Media>(undefined);\r\n public orientation$ = new BehaviorSubject<MediaOrientation>(undefined);\r\n\r\n constructor(breakpointObserver: BreakpointObserver) {\r\n breakpointObserver\r\n .observe([Breakpoints.HandsetLandscape])\r\n .subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Mobile);\r\n this.orientation$.next(MediaOrientation.Landscape);\r\n }\r\n });\r\n\r\n breakpointObserver\r\n .observe([Breakpoints.HandsetPortrait])\r\n .subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Mobile);\r\n this.orientation$.next(MediaOrientation.Portrait);\r\n }\r\n });\r\n\r\n breakpointObserver\r\n .observe([Breakpoints.TabletLandscape])\r\n .subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Tablet);\r\n this.orientation$.next(MediaOrientation.Landscape);\r\n }\r\n });\r\n\r\n breakpointObserver\r\n .observe([Breakpoints.TabletPortrait])\r\n .subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Tablet);\r\n this.orientation$.next(MediaOrientation.Portrait);\r\n }\r\n });\r\n\r\n breakpointObserver.observe([Breakpoints.WebLandscape]).subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Desktop);\r\n this.orientation$.next(MediaOrientation.Landscape);\r\n }\r\n });\r\n\r\n breakpointObserver.observe([Breakpoints.WebPortrait]).subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Desktop);\r\n this.orientation$.next(MediaOrientation.Portrait);\r\n }\r\n });\r\n }\r\n\r\n getMedia(): Media {\r\n return this.media$.value;\r\n }\r\n\r\n getOrientation(): MediaOrientation {\r\n return this.orientation$.value;\r\n }\r\n\r\n isTouchScreen(): boolean {\r\n return 'ontouchstart' in document.documentElement ? true : false;\r\n }\r\n\r\n isMobile(): boolean {\r\n const media = this.getMedia();\r\n return media === 'mobile';\r\n }\r\n\r\n isDesktop(): boolean {\r\n const media = this.getMedia();\r\n return media === 'desktop';\r\n }\r\n}\r\n","import { setUser } from '@sentry/angular-ivy';\r\nimport { SentryMonitoringOptions } from './sentry.interface';\r\nimport { BaseUser } from '../../user';\r\n\r\nexport const isTracingEnabled = (options: SentryMonitoringOptions): boolean =>\r\n options.enableTracing || !!options.tracesSampleRate || !!options.tracesSampler;\r\n\r\nexport const identifySentryUser = (user: BaseUser | null): void => {\r\n setUser(\r\n user\r\n ? {\r\n id: user.id,\r\n username: `${user.firstName} ${user.lastName}`,\r\n email: user.email\r\n }\r\n : null\r\n );\r\n};\r\n","import {\r\n BrowserOptions,\r\n BrowserTracing,\r\n Replay,\r\n SentryErrorHandler,\r\n createErrorHandler,\r\n getCurrentHub,\r\n init,\r\n instrumentAngularRouting\r\n} from '@sentry/angular-ivy';\r\n\r\nimport { SentryMonitoringOptions } from './sentry.interface';\r\nimport { isTracingEnabled } from './sentry.utils';\r\n\r\nexport const createSentryErrorHandler = (\r\n options: SentryMonitoringOptions\r\n): SentryErrorHandler => {\r\n return createErrorHandler({\r\n logErrors: options.logErrors,\r\n ...(options.errorHandlerOptions ?? {})\r\n });\r\n};\r\n\r\nexport const initSentry = (options: SentryMonitoringOptions): void => {\r\n const client = getCurrentHub().getClient();\r\n if (client) {\r\n return;\r\n }\r\n\r\n const tracingEnabled = isTracingEnabled(options);\r\n const baseConfig: BrowserOptions = {\r\n dsn: options.dsn,\r\n environment: options.environment,\r\n release: options.release,\r\n integrations: [\r\n tracingEnabled &&\r\n new BrowserTracing({\r\n routingInstrumentation: instrumentAngularRouting\r\n }),\r\n options.enableReplay && new Replay()\r\n ].filter(Boolean)\r\n };\r\n\r\n init(baseConfig);\r\n};\r\n","import {\r\n APP_INITIALIZER,\r\n ConstructorProvider,\r\n ErrorHandler,\r\n FactoryProvider\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { TraceService } from '@sentry/angular-ivy';\r\n\r\nimport { createSentryErrorHandler, initSentry } from './sentry';\r\nimport { SentryMonitoringOptions } from './sentry.interface';\r\nimport { isTracingEnabled } from './sentry.utils';\r\n\r\nexport const provideSentryMonitoring = (\r\n options: SentryMonitoringOptions\r\n): (FactoryProvider | ConstructorProvider)[] => {\r\n const isEnabled = options.enabled !== undefined ? options.enabled : true;\r\n if (!isEnabled) {\r\n return [];\r\n }\r\n\r\n initSentry(options);\r\n\r\n const tracingEnabled = isTracingEnabled(options);\r\n\r\n return [\r\n {\r\n provide: ErrorHandler,\r\n useFactory: () => createSentryErrorHandler(options)\r\n },\r\n tracingEnabled && {\r\n provide: TraceService,\r\n deps: [Router]\r\n },\r\n // Force instantiate TraceService to avoid require it in any constructor.\r\n tracingEnabled && {\r\n provide: APP_INITIALIZER,\r\n useFactory: () => () => {},\r\n deps: [TraceService],\r\n multi: true\r\n }\r\n ].filter(Boolean);\r\n};\r\n","import { InjectionToken, Provider } from '@angular/core';\r\n\r\nimport { provideSentryMonitoring } from './sentry/sentry.provider';\r\nimport { AnyMonitoringOptions, MonitoringOptions } from './shared';\r\n\r\nexport const MONITORING_OPTIONS = new InjectionToken<MonitoringOptions | null>(\r\n 'monitoring.options'\r\n);\r\n\r\nexport function provideMonitoring(\r\n options: AnyMonitoringOptions | null\r\n): Provider[] {\r\n if (!options) {\r\n return [];\r\n }\r\n\r\n const providers: Provider[] = [\r\n { provide: MONITORING_OPTIONS, useValue: options }\r\n ];\r\n\r\n switch (options.provider) {\r\n case 'sentry':\r\n providers.push(...provideSentryMonitoring(options));\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return providers;\r\n}\r\n","export enum StorageScope {\n SESSION = 'Session',\n LOCAL = 'Local'\n}\n\nexport interface StorageOptions {\n key: string;\n}\n\nexport interface StorageServiceEvent {\n key?: string;\n scope: StorageScope;\n event: StorageServiceEventEnum;\n previousValue?: any;\n currentValue?: any;\n}\n\nexport enum StorageServiceEventEnum {\n ADDED = 'Added',\n MODIFIED = 'Modified',\n REMOVED = 'Removed',\n CLEARED = 'Cleared'\n}\n","import { BehaviorSubject } from 'rxjs';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport {\r\n StorageOptions,\r\n StorageScope,\r\n StorageServiceEvent,\r\n StorageServiceEventEnum\r\n} from './storage.interface';\r\n\r\nexport abstract class BaseStorage<T extends StorageOptions = StorageOptions> {\r\n protected options?: T;\r\n\r\n public storageChange$: BehaviorSubject<StorageServiceEvent> =\r\n new BehaviorSubject(undefined);\r\n\r\n constructor(config: ConfigService) {\r\n this.options = config.getConfig<T>('storage') || ({ key: 'igo' } as T);\r\n }\r\n\r\n /**\r\n * Use to get the data found in storage file\r\n */\r\n get(key: string, scope?: StorageScope): string | object | boolean | number {\r\n let value: any;\r\n\r\n if (!scope || scope === StorageScope.SESSION) {\r\n value = sessionStorage.getItem(`${this.options.key}.${key}`);\r\n }\r\n\r\n if (scope === StorageScope.LOCAL || (!value && !scope)) {\r\n value = localStorage.getItem(`${this.options.key}.${key}`);\r\n }\r\n\r\n if (value) {\r\n try {\r\n value = JSON.parse(value);\r\n } catch {\r\n value = value;\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n set(\r\n key: string,\r\n value: string | object | boolean | number,\r\n scope: StorageScope = StorageScope.LOCAL\r\n ) {\r\n const previousValue = this.get(key, scope);\r\n if (scope === StorageScope.SESSION) {\r\n sessionStorage.setItem(\r\n `${this.options.key}.${key}`,\r\n JSON.stringify(value)\r\n );\r\n } else {\r\n localStorage.setItem(`${this.options.key}.${key}`, JSON.stringify(value));\r\n }\r\n const currentValue = this.get(key, scope);\r\n\r\n if (currentValue !== previousValue) {\r\n this.storageChange$.next({\r\n key,\r\n scope,\r\n event:\r\n previousValue !== undefined\r\n ? StorageServiceEventEnum.MODIFIED\r\n : StorageServiceEventEnum.ADDED,\r\n previousValue,\r\n currentValue\r\n });\r\n }\r\n }\r\n\r\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\r\n const previousValue = this.get(key, scope);\r\n if (scope === StorageScope.SESSION) {\r\n sessionStorage.removeItem(`${this.options.key}.${key}`);\r\n } else {\r\n localStorage.removeItem(`${this.options.key}.${key}`);\r\n }\r\n this.storageChange$.next({\r\n key,\r\n scope,\r\n event: StorageServiceEventEnum.REMOVED,\r\n previousValue\r\n });\r\n }\r\n\r\n clear(scope: StorageScope = StorageScope.LOCAL) {\r\n if (scope === StorageScope.SESSION) {\r\n sessionStorage.clear();\r\n } else {\r\n localStorage.clear();\r\n }\r\n this.storageChange$.next({ scope, event: StorageServiceEventEnum.CLEARED });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { BaseStorage } from './storage';\r\nimport { StorageOptions } from './storage.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService extends BaseStorage<StorageOptions> {\r\n constructor(private config: ConfigService) {\r\n super(config);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\nimport { CompressedData } from './compressedData.interface';\r\n\r\nfunction getNumber(v: number, endposition: number, length: number) {\r\n /* tslint:disable:no-bitwise*/\r\n const mask = (1 << length) - 1;\r\n return (v >> endposition) & mask;\r\n /* tslint:enable:no-bitwise*/\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompressionService {\r\n private base64Index = new Map<string, number>();\r\n private indexBase64 = new Map<number, string>();\r\n\r\n constructor() {\r\n this.generateBase64Index();\r\n }\r\n\r\n private generateBase64Index() {\r\n // https://fr.wikipedia.org/wiki/Base64\r\n // A-Z => [0, 25]\r\n for (let i = 0; i < 26; i++) {\r\n this.base64Index.set(String.fromCharCode('A'.charCodeAt(0) + i), i);\r\n this.indexBase64.set(i, String.fromCharCode('A'.charCodeAt(0) + i));\r\n }\r\n // a-z => [26, 51]\r\n for (let i = 0; i < 26; i++) {\r\n this.base64Index.set(String.fromCharCode('a'.charCodeAt(0) + i), i + 26);\r\n this.indexBase64.set(i + 26, String.fromCharCode('a'.charCodeAt(0) + i));\r\n }\r\n // 0-9 => [52, 61]\r\n for (let i = 0; i < 10; i++) {\r\n this.base64Index.set(String.fromCharCode('0'.charCodeAt(0) + i), i + 52);\r\n this.indexBase64.set(i + 52, String.fromCharCode('0'.charCodeAt(0) + i));\r\n }\r\n // + / => [62, 63]\r\n this.base64Index.set('+', 62);\r\n this.base64Index.set('/', 63);\r\n this.indexBase64.set(62, '+');\r\n this.indexBase64.set(63, '/');\r\n }\r\n\r\n compressBlob(blob: Blob): Observable<CompressedData> {\r\n if (!blob) {\r\n return;\r\n }\r\n\r\n const observable = new Observable((observer: Observer<CompressedData>) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = () => {\r\n const base64 = reader.result.valueOf() as string;\r\n const text64 = base64.substr(base64.indexOf(',') + 1);\r\n const compressed = this.compressStringBase64(text64);\r\n const compressedData: CompressedData = {\r\n length: text64.length,\r\n type: blob.type,\r\n object: compressed\r\n };\r\n observer.next(compressedData);\r\n };\r\n });\r\n return observable;\r\n }\r\n\r\n decompressBlob(compressedData: CompressedData): Blob {\r\n /* tslint:disable:no-bitwise*/\r\n const object = compressedData.object;\r\n const length = compressedData.length;\r\n const decompressed: string = this.decompressStringBase64(object, length);\r\n const byteCharacters = atob(decompressed);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], { type: compressedData.type });\r\n /* tslint:enable:no-bitwise*/\r\n return blob;\r\n }\r\n\r\n private compressStringBase64(s: string): string {\r\n /* tslint:disable:no-bitwise*/\r\n let out = '';\r\n let bits = 16;\r\n let chr = 0;\r\n let rem = 0;\r\n for (const c of s) {\r\n const value = this.base64Index.get(c);\r\n if (bits > 6) {\r\n bits -= 6;\r\n chr += value << bits;\r\n } else {\r\n rem = 6 - bits;\r\n chr += value >> rem;\r\n out += String.fromCharCode(chr);\r\n chr = value << (16 - rem);\r\n bits = 16 - rem;\r\n }\r\n }\r\n if (s.length % 8 !== 0) {\r\n out += String.fromCharCode(chr);\r\n }\r\n /* tslint:enable:no-bitwise*/\r\n return String.fromCharCode(9731) + out;\r\n }\r\n\r\n private decompressStringBase64(c: string, length: number): string {\r\n /* tslint:disable:no-bitwise*/\r\n if (!c) {\r\n return;\r\n }\r\n\r\n if (c.charCodeAt(0) !== 9731) {\r\n return c;\r\n }\r\n\r\n let chr = 0;\r\n let rem = 0;\r\n let bits = 16;\r\n let out = '';\r\n let j = 1;\r\n let value = c.charCodeAt(j);\r\n for (let i = 0; i < length; i++) {\r\n if (bits > 6) {\r\n bits -= 6;\r\n chr = getNumber(value, bits, 6);\r\n out += this.indexBase64.get(chr);\r\n } else {\r\n rem = 6 - bits;\r\n chr = getNumber(value, 0, bits) << rem;\r\n value = c.charCodeAt(++j);\r\n chr += getNumber(value, 16 - rem, rem);\r\n out += this.indexBase64.get(chr);\r\n bits = 16 - rem;\r\n }\r\n }\r\n return out;\r\n /* tslint:enable:no-bitwise*/\r\n }\r\n}\r\n","import { EventEmitter, Injectable, Injector, OnDestroy } from '@angular/core';\r\n\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\nimport { debounceTime, startWith } from 'rxjs/operators';\r\n\r\nimport { MessageService } from '../message/shared/message.service';\r\nimport { ConnectionState } from './network.interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NetworkService implements OnDestroy {\r\n private stateChangeEventEmitter = new EventEmitter<ConnectionState>();\r\n private onlineSubscription: Subscription;\r\n private offlineSubscription: Subscription;\r\n private previousMessageId;\r\n\r\n private state: ConnectionState = {\r\n connection: window.navigator.onLine\r\n };\r\n\r\n constructor(\r\n private messageService: MessageService,\r\n private injector: Injector\r\n ) {\r\n this.checkNetworkState();\r\n }\r\n\r\n private checkNetworkState() {\r\n this.onlineSubscription = fromEvent(window, 'online').subscribe(() => {\r\n if (this.previousMessageId) {\r\n this.messageService.remove(this.previousMessageId);\r\n }\r\n const messageObj = this.messageService.info(\r\n 'igo.core.network.online.message',\r\n 'igo.core.network.online.title'\r\n );\r\n this.previousMessageId = messageObj.toastId;\r\n this.state.connection = true;\r\n this.emitEvent();\r\n });\r\n\r\n this.offlineSubscription = fromEvent(window, 'offline').subscribe(() => {\r\n if (this.previousMessageId) {\r\n this.messageService.remove(this.previousMessageId);\r\n }\r\n const messageObj = this.messageService.info(\r\n 'igo.core.network.offline.message',\r\n 'igo.core.network.offline.title'\r\n );\r\n this.previousMessageId = messageObj.toastId;\r\n this.state.connection = false;\r\n this.emitEvent();\r\n });\r\n }\r\n\r\n private emitEvent() {\r\n this.stateChangeEventEmitter.emit(this.state);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n try {\r\n this.offlineSubscription.unsubscribe();\r\n this.onlineSubscription.unsubscribe();\r\n } catch (e) {}\r\n }\r\n\r\n currentState(reportState = true): Observable<ConnectionState> {\r\n return reportState\r\n ? this.stateChangeEventEmitter.pipe(\r\n debounceTime(300),\r\n startWith(this.state)\r\n )\r\n : this.stateChangeEventEmitter.pipe(debounceTime(300));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { RegexOptions } from './regex.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RegexService {\r\n protected options: RegexOptions;\r\n\r\n constructor(private config: ConfigService) {\r\n this.options = this.config.getConfig('regex');\r\n }\r\n\r\n getAll() {\r\n return this.options;\r\n }\r\n\r\n get(key) {\r\n if (this.options) {\r\n return this.options[key];\r\n }\r\n return;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of core\r\n */\r\n\r\nexport * from './lib/core.module';\r\nexport * from './lib/activity/activity.module';\r\nexport * from './lib/config/config.module';\r\nexport * from './lib/gesture/gesture.module';\r\nexport * from './lib/language/language.module';\r\nexport * from './lib/message/message.module';\r\nexport * from './lib/request/error.module';\r\nexport * from './lib/request/logging.module';\r\n\r\nexport * from './lib/config/config.provider';\r\nexport * from './lib/gesture/gesture.provider';\r\nexport * from './lib/language/shared/language.provider';\r\nexport * from './lib/route/route.service';\r\nexport * from './lib/route/route.interface';\r\n\r\nexport * from './lib/activity';\r\nexport * from './lib/analytics';\r\nexport * from './lib/config';\r\nexport * from './lib/environment';\r\nexport * from './lib/language';\r\nexport * from './lib/media';\r\nexport * from './lib/message';\r\nexport * from './lib/monitoring';\r\nexport * from './lib/request';\r\nexport * from './lib/storage';\r\nexport * from './lib/compression';\r\nexport * from './lib/network';\r\nexport * from './lib/regex';\r\nexport * from './lib/user';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ActivityService","i1","i1.ConfigService","i2.LanguageService","i1.MessageService"],"mappings":"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"}
1
+ {"version":3,"file":"igo2-core.mjs","sources":["../../../packages/core/src/lib/activity/activity.service.ts","../../../packages/core/src/lib/activity/activity.interceptor.ts","../../../packages/core/src/lib/activity/activity.module.ts","../../../packages/core/src/lib/config/config-deprecated.ts","../../../packages/core/src/lib/config/version.ts","../../../packages/core/src/lib/config/config.service.ts","../../../packages/core/src/lib/config/config.provider.ts","../../../packages/core/src/lib/config/config.module.ts","../../../packages/core/src/lib/language/shared/language.interface.ts","../../../packages/core/src/lib/language/shared/language.loader.ts","../../../packages/core/src/lib/language/shared/language.service.ts","../../../packages/core/src/lib/language/shared/missing-translation.guard.ts","../../../packages/core/src/lib/language/shared/language.provider.ts","../../../packages/core/src/lib/language/shared/language-mock.provider.ts","../../../packages/core/src/lib/language/language.module.ts","../../../packages/core/src/lib/message/message.module.ts","../../../packages/core/src/lib/message/shared/message.enum.ts","../../../packages/core/src/lib/message/shared/message.service.ts","../../../packages/core/src/lib/request/error.interceptor.ts","../../../packages/core/src/lib/request/error.module.ts","../../../packages/core/src/lib/core.module.ts","../../../packages/core/src/lib/gesture/gesture.provider.ts","../../../packages/core/src/lib/gesture/gesture.module.ts","../../../packages/core/src/lib/request/logging.interceptor.ts","../../../packages/core/src/lib/request/logging.module.ts","../../../packages/core/src/lib/route/route.service.ts","../../../packages/core/src/lib/analytics/shared/analytics.service.ts","../../../packages/core/src/lib/media/media.enum.ts","../../../packages/core/src/lib/media/media.service.ts","../../../packages/core/src/lib/monitoring/sentry/sentry.utils.ts","../../../packages/core/src/lib/monitoring/sentry/sentry.ts","../../../packages/core/src/lib/monitoring/sentry/sentry.provider.ts","../../../packages/core/src/lib/monitoring/monitoring.provider.ts","../../../packages/core/src/lib/storage/storage.interface.ts","../../../packages/core/src/lib/storage/storage.ts","../../../packages/core/src/lib/storage/storage.service.ts","../../../packages/core/src/lib/compression/compression.service.ts","../../../packages/core/src/lib/network/network.service.ts","../../../packages/core/src/lib/regex/regex.service.ts","../../../packages/core/src/public_api.ts","../../../packages/core/src/igo2-core.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nimport { uuid } from '@igo2/utils';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ActivityService {\r\n public counter$ = new BehaviorSubject<number>(0);\r\n\r\n private ids: string[] = [];\r\n\r\n constructor() {}\r\n\r\n register(): string {\r\n const id = uuid();\r\n this.ids.push(id);\r\n this.counter$.next(this.ids.length);\r\n\r\n return id;\r\n }\r\n\r\n unregister(id: string) {\r\n const index = this.ids.indexOf(id);\r\n if (index === -1) {\r\n return;\r\n }\r\n this.ids.splice(index, 1);\r\n\r\n this.counter$.next(this.ids.length);\r\n }\r\n}\r\n","import {\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\nimport { ActivityService } from './activity.service';\r\n\r\n@Injectable()\r\nexport class ActivityInterceptor implements HttpInterceptor {\r\n constructor(private activityService: ActivityService) {}\r\n\r\n intercept(\r\n req: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const activity = req.headers.get('activityInterceptor');\r\n if (activity) {\r\n const actReq = req.clone({\r\n headers: req.headers.delete('activityInterceptor')\r\n });\r\n if (activity === 'false') {\r\n return next.handle(actReq);\r\n }\r\n }\r\n\r\n const id = this.activityService.register();\r\n\r\n return next.handle(req).pipe(\r\n finalize(() => {\r\n this.activityService.unregister(id);\r\n })\r\n );\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { ActivityInterceptor } from './activity.interceptor';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoActivityModule {\r\n static forRoot(): ModuleWithProviders<IgoActivityModule> {\r\n return {\r\n ngModule: IgoActivityModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ActivityInterceptor,\r\n multi: true\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { AlternateConfigOptions, DeprecatedOptions } from './config.interface';\r\n\r\nexport const CONFIG_DEPRECATED: { [key: string]: DeprecatedOptions } = {\r\n showMenuButton: {\r\n alternativeKey: 'menu.button.visible',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n },\r\n menuButtonReverseColor: {\r\n alternativeKey: 'menu.button.useThemeColor',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n },\r\n importWithStyle: {\r\n alternativeKey: 'importExport.importWithStyle',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n },\r\n hasGeolocateButton: {\r\n alternativeKey: 'geolocate.button.visible',\r\n mayBeRemoveIn: new Date('2024-06-06')\r\n }\r\n};\r\n\r\nexport const ALTERNATE_CONFIG_FROM_DEPRECATION = new Map<\r\n string,\r\n AlternateConfigOptions\r\n>(\r\n Object.entries(CONFIG_DEPRECATED)\r\n .filter(([_, options]) => options.alternativeKey)\r\n .map(([key, options]) => [\r\n options.alternativeKey,\r\n {\r\n deprecatedKey: key\r\n } satisfies AlternateConfigOptions\r\n ])\r\n);\r\n","export interface Version {\r\n app?: string;\r\n lib?: string;\r\n releaseDateApp?: number;\r\n releaseDate?: number;\r\n}\r\n\r\nexport const version: Version = {\r\n lib: '17.0.0-next.0',\r\n releaseDate: 1708377796344\r\n};\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { BehaviorSubject, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport {\r\n ALTERNATE_CONFIG_FROM_DEPRECATION,\r\n CONFIG_DEPRECATED\r\n} from './config-deprecated';\r\nimport { BaseConfigOptions, ConfigOptions } from './config.interface';\r\nimport { version } from './version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService<T = { [key: string]: any }> {\r\n private config: BaseConfigOptions<T> | null;\r\n private httpClient: HttpClient;\r\n private configDeprecated = new Map(Object.entries(CONFIG_DEPRECATED));\r\n\r\n private _isLoaded$ = new BehaviorSubject<boolean>(null);\r\n isLoaded$ = this._isLoaded$.asObservable();\r\n\r\n constructor(handler: HttpBackend) {\r\n this.httpClient = new HttpClient(handler);\r\n }\r\n\r\n /**\r\n * Use to get the all config file (merge from environnement.ts and config.json)\r\n */\r\n public getConfigs(): any {\r\n Array.from(this.configDeprecated.keys()).map((deprecatedKey) => {\r\n const deprecatedValue = ObjectUtils.resolve(this.config, deprecatedKey);\r\n if (deprecatedValue !== undefined) {\r\n this.handleDeprecatedConfig(deprecatedKey);\r\n }\r\n });\r\n return this.config;\r\n }\r\n\r\n /**\r\n * Use to get the data found in config file\r\n */\r\n public getConfig<T = any>(key: string, defaultValue?: unknown): T {\r\n let value = ObjectUtils.resolve(this.config, key);\r\n\r\n const isDeprecated = this.configDeprecated.get(key);\r\n if (isDeprecated && value !== undefined) {\r\n this.handleDeprecatedConfig(key);\r\n } else if (value === undefined) {\r\n value = this.handleDeprecationPossibility(key);\r\n }\r\n\r\n return value ?? defaultValue;\r\n }\r\n\r\n private handleDeprecatedConfig(key: string): void {\r\n const options = this.configDeprecated.get(key);\r\n\r\n let message = `This config (${key}) is deprecated and will be removed shortly`;\r\n if (options.alternativeKey) {\r\n message += ` You should use this key (${options.alternativeKey}) as an alternate solution`;\r\n }\r\n\r\n const currentDate = new Date();\r\n currentDate >= options.mayBeRemoveIn\r\n ? console.error(message)\r\n : console.warn(message);\r\n }\r\n\r\n private handleDeprecationPossibility(key: string): any {\r\n const options = ALTERNATE_CONFIG_FROM_DEPRECATION.get(key);\r\n if (!options) {\r\n return;\r\n }\r\n\r\n return this.getConfig(options.deprecatedKey);\r\n }\r\n\r\n /**\r\n * This method loads \"[path]\" to get all config's variables\r\n */\r\n public load(options: ConfigOptions<T>) {\r\n const baseConfig = options.default;\r\n if (!options.path) {\r\n this.config = baseConfig;\r\n this._isLoaded$.next(true);\r\n return true;\r\n }\r\n\r\n return new Promise((resolve, _reject) => {\r\n this.httpClient\r\n .get(options.path)\r\n .pipe(\r\n catchError((error: any): any => {\r\n console.log(`Configuration file ${options.path} could not be read`);\r\n resolve(true);\r\n return throwError(error.error || 'Server error');\r\n })\r\n )\r\n .subscribe((configResponse: object) => {\r\n this.config = ObjectUtils.mergeDeep(\r\n ObjectUtils.mergeDeep({ version }, baseConfig),\r\n configResponse\r\n );\r\n this._isLoaded$.next(true);\r\n resolve(true);\r\n });\r\n });\r\n }\r\n}\r\n","import { APP_INITIALIZER, InjectionToken } from '@angular/core';\r\n\r\nimport { ConfigOptions } from './config.interface';\r\nimport { ConfigService } from './config.service';\r\n\r\nexport let CONFIG_OPTIONS = new InjectionToken<ConfigOptions>('configOptions');\r\n\r\nexport function provideConfigOptions(options: ConfigOptions) {\r\n return {\r\n provide: CONFIG_OPTIONS,\r\n useValue: options\r\n };\r\n}\r\n\r\nexport function configFactory(\r\n configService: ConfigService,\r\n options: ConfigOptions\r\n) {\r\n return () => configService.load(options);\r\n}\r\n\r\nexport function provideConfigLoader() {\r\n return {\r\n provide: APP_INITIALIZER,\r\n useFactory: configFactory,\r\n multi: true,\r\n deps: [ConfigService, CONFIG_OPTIONS]\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { provideConfigLoader, provideConfigOptions } from './config.provider';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoConfigModule {\r\n static forRoot(): ModuleWithProviders<IgoConfigModule> {\r\n return {\r\n ngModule: IgoConfigModule,\r\n providers: [provideConfigOptions({}), provideConfigLoader()]\r\n };\r\n }\r\n}\r\n","import { TranslateLoader } from '@ngx-translate/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface LanguageOptions {\r\n prefix?: string | string[];\r\n}\r\n\r\nexport abstract class LanguageLoaderBase implements TranslateLoader {\r\n abstract isLoaded$: Observable<boolean>;\r\n abstract getTranslation(lang: string): Observable<any>;\r\n}\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\n\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { BehaviorSubject, first, forkJoin, map, switchMap, tap } from 'rxjs';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\nimport { LanguageLoaderBase } from './language.interface';\r\n\r\nexport class LanguageLoader implements LanguageLoaderBase {\r\n private httpClient: HttpClient;\r\n\r\n private _isLoaded$ = new BehaviorSubject<boolean>(null);\r\n isLoaded$ = this._isLoaded$.asObservable();\r\n\r\n constructor(\r\n handler: HttpBackend,\r\n private configService: ConfigService,\r\n private prefix?: string | string[],\r\n private suffix: string = '.json'\r\n ) {\r\n this.httpClient = new HttpClient(handler);\r\n }\r\n\r\n public getTranslation(lang: string): any {\r\n const igoLocale$ = this.httpClient.get(`locale/libs_locale/${lang}.json`);\r\n return this.configService.isLoaded$.pipe(\r\n first((isLoaded) => isLoaded),\r\n switchMap(() => {\r\n if (this.configService && !this.prefix) {\r\n const prefix = this.configService.getConfig('language.prefix');\r\n this.prefix = !prefix || Array.isArray(prefix) ? prefix : [prefix];\r\n }\r\n\r\n if (!this.prefix || this.prefix.length === 0) {\r\n this._isLoaded$.next(true);\r\n return igoLocale$;\r\n }\r\n\r\n const appLocale$ = (this.prefix as string[]).map((prefix) =>\r\n this.httpClient.get(`${prefix}${lang}${this.suffix}`)\r\n );\r\n\r\n const locale$ = forkJoin([igoLocale$, ...appLocale$]);\r\n\r\n return locale$.pipe(\r\n map((translations) => {\r\n return translations.reduce(\r\n (acc, current) => ObjectUtils.mergeDeep(acc, current),\r\n {}\r\n );\r\n }),\r\n tap(() => {\r\n this._isLoaded$.next(true);\r\n })\r\n );\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, combineLatest } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageService {\r\n private language: string;\r\n readonly language$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n constructor(public translate: TranslateService) {\r\n this.language = this.translate.getBrowserLang();\r\n const lang = this.getLanguage();\r\n this.translate.setDefaultLang(lang);\r\n this.language$.next(lang);\r\n }\r\n\r\n public getLanguage(): string {\r\n return this.language.match(/en|fr/) ? this.language : 'en';\r\n }\r\n\r\n public setLanguage(language: string) {\r\n this.language = language.match(/en|fr/) ? language : 'en';\r\n combineLatest([\r\n this.translate.use(this.language),\r\n this.translate.reloadLang(this.language)\r\n ]).subscribe(() => {\r\n this.language$.next(this.language);\r\n });\r\n }\r\n}\r\n","import {\r\n MissingTranslationHandler,\r\n MissingTranslationHandlerParams\r\n} from '@ngx-translate/core';\r\n\r\nexport class IgoMissingTranslationHandler implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams) {\r\n if (!params.translateService.langs.length) {\r\n const error =\r\n 'Translations are not yet loaded. \\\r\n Check that the LanguageService is injected.';\r\n throw new Error(error);\r\n }\r\n\r\n if (params.key.substr(0, 4) === 'igo.') {\r\n throw new Error(`The Key \"${params.key}\" is missing in locale file.`);\r\n } else {\r\n return params.key;\r\n }\r\n }\r\n}\r\n","import { HttpBackend } from '@angular/common/http';\r\nimport {\r\n APP_INITIALIZER,\r\n EnvironmentProviders,\r\n Provider,\r\n importProvidersFrom,\r\n makeEnvironmentProviders\r\n} from '@angular/core';\r\n\r\nimport {\r\n MissingTranslationHandler,\r\n TranslateLoader,\r\n TranslateModule,\r\n TranslateModuleConfig\r\n} from '@ngx-translate/core';\r\nimport { first } from 'rxjs';\r\n\r\nimport { ConfigService } from '../../config';\r\nimport { LanguageLoaderBase } from './language.interface';\r\nimport { LanguageLoader } from './language.loader';\r\nimport { LanguageService } from './language.service';\r\nimport { IgoMissingTranslationHandler } from './missing-translation.guard';\r\n\r\n/**\r\n * Make sure you only call this method in the root module of your application, most of the time called AppModule.\r\n */\r\nexport function provideRootTranslation(\r\n loader?: Provider\r\n): EnvironmentProviders {\r\n return makeEnvironmentProviders([\r\n importProvidersFrom(TranslateModule.forRoot(setTranslationConfig(loader))),\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: (languageService: LanguageService) => () => {\r\n return (\r\n languageService.translate.currentLoader as LanguageLoaderBase\r\n ).isLoaded$?.pipe(first((isLoaded) => isLoaded === true));\r\n },\r\n deps: [LanguageService],\r\n multi: true\r\n }\r\n ]);\r\n}\r\n\r\nexport const setTranslationConfig = (\r\n loader?: Provider\r\n): TranslateModuleConfig => ({\r\n defaultLanguage: 'fr',\r\n loader: loader ?? DEFAULT_LANGUAGE_LOADER,\r\n missingTranslationHandler: {\r\n provide: MissingTranslationHandler,\r\n useClass: IgoMissingTranslationHandler\r\n }\r\n});\r\n\r\nexport const DEFAULT_LANGUAGE_LOADER: Provider = {\r\n provide: TranslateLoader,\r\n useFactory: defaultLanguageLoader,\r\n deps: [HttpBackend, ConfigService]\r\n};\r\n\r\nfunction defaultLanguageLoader(http: HttpBackend, config?: ConfigService) {\r\n return new LanguageLoader(http, config, undefined, undefined);\r\n}\r\n","import { ImportProvidersSource, Provider } from '@angular/core';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nexport function provideMockRootTranslation(\r\n loader?: Provider\r\n): ImportProvidersSource {\r\n return TranslateModule.forRoot();\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@NgModule({\r\n exports: [TranslateModule]\r\n})\r\nexport class IgoLanguageModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { GlobalConfig, ToastrModule } from 'ngx-toastr';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ToastrModule.forRoot({\r\n positionClass: 'toast-bottom-right',\r\n timeOut: 10000,\r\n extendedTimeOut: 10000,\r\n titleClass: 'mat-subtitle-2',\r\n messageClass: 'toast-message',\r\n closeButton: true,\r\n progressBar: true,\r\n enableHtml: true,\r\n tapToDismiss: true,\r\n maxOpened: 4,\r\n preventDuplicates: true,\r\n resetTimeoutOnDuplicate: true,\r\n countDuplicates: false,\r\n includeTitleDuplicates: true\r\n } as GlobalConfig)\r\n ],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoMessageModule {\r\n static forRoot(): ModuleWithProviders<IgoMessageModule> {\r\n return {\r\n ngModule: IgoMessageModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","export enum MessageType {\r\n ERROR = 'error',\r\n ALERT = 'warning', // todo delete (transition to ngx-toastr)\r\n WARNING = 'warning',\r\n INFO = 'info',\r\n SUCCESS = 'success',\r\n SHOW = 'show'\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Injector } from '@angular/core';\r\n\r\nimport { ActiveToast, IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { BehaviorSubject, forkJoin } from 'rxjs';\r\nimport { debounceTime, first } from 'rxjs/operators';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\nimport { LanguageService } from '../../language/shared/language.service';\r\nimport { MessageType } from './message.enum';\r\nimport { Message, MessageOptions } from './message.interface';\r\n\r\ninterface ActiveMessageTranslation {\r\n id: number;\r\n titleKey: string;\r\n textKey: string;\r\n textInterpolateParams?: Object;\r\n titleInterpolateParams?: Object;\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MessageService {\r\n public messages$ = new BehaviorSubject<Message[]>([]);\r\n private options?: MessageOptions;\r\n private activeMessageTranslations: ActiveMessageTranslation[] = [];\r\n\r\n constructor(\r\n @Inject(Injector) private injector: Injector,\r\n private configService: ConfigService,\r\n private languageService: LanguageService\r\n ) {\r\n this.options = this.configService.getConfig('message');\r\n this.languageService.language$.pipe(debounceTime(500)).subscribe((r) => {\r\n if (this.toastr.toasts.length === 0) {\r\n this.activeMessageTranslations = [];\r\n }\r\n this.toastr.toasts.map((toast) => {\r\n const activeMessageTranslation = this.activeMessageTranslations.find(\r\n (amt) => amt.id === toast.toastId\r\n );\r\n if (activeMessageTranslation) {\r\n const translatedTextInterpolateParams = {\r\n ...activeMessageTranslation.textInterpolateParams\r\n };\r\n const translatedTitleInterpolateParams = {\r\n ...activeMessageTranslation.titleInterpolateParams\r\n };\r\n\r\n if (activeMessageTranslation.textInterpolateParams) {\r\n Object.keys(activeMessageTranslation.textInterpolateParams).map(\r\n (k) => {\r\n if (k) {\r\n translatedTextInterpolateParams[k] =\r\n this.languageService.translate.instant(\r\n activeMessageTranslation.textInterpolateParams[k]\r\n );\r\n }\r\n }\r\n );\r\n }\r\n if (activeMessageTranslation.titleInterpolateParams) {\r\n Object.keys(activeMessageTranslation.titleInterpolateParams).map(\r\n (k) => {\r\n if (k) {\r\n translatedTitleInterpolateParams[k] =\r\n this.languageService.translate.instant(\r\n activeMessageTranslation.titleInterpolateParams[k]\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n forkJoin([\r\n this.languageService.translate.get(\r\n activeMessageTranslation.textKey,\r\n translatedTextInterpolateParams\r\n ),\r\n this.languageService.translate.get(\r\n activeMessageTranslation.titleKey,\r\n translatedTitleInterpolateParams\r\n )\r\n ])\r\n .pipe(first())\r\n .subscribe((res: [string, string]) => {\r\n toast.toastRef.componentInstance.message = res[0];\r\n toast.toastRef.componentInstance.title = res[1];\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n private get toastr(): ToastrService {\r\n return this.injector.get(ToastrService);\r\n }\r\n\r\n showError(httpError: HttpErrorResponse) {\r\n httpError.error.caught = true;\r\n return this.error(httpError.error.message, httpError.error.title);\r\n }\r\n\r\n message(message: Message) {\r\n const messageType = message.type;\r\n this.toastr.toastrConfig.iconClasses[messageType] = `toast-${messageType}`;\r\n\r\n this.messages$.next(this.messages$.value.concat([message]));\r\n\r\n message.options = message.options || ({} as MessageOptions);\r\n const currentDate = new Date();\r\n\r\n message.options.from = message.options.from\r\n ? message.options.from\r\n : new Date('1 jan 1900');\r\n message.options.to = message.options.to\r\n ? message.options.to\r\n : new Date('1 jan 3000');\r\n if (typeof message.options.from === 'string') {\r\n message.options.from = new Date(\r\n Date.parse(message.options.from.replace(/-/g, ' '))\r\n );\r\n }\r\n if (typeof message.options.to === 'string') {\r\n message.options.to = new Date(\r\n Date.parse(message.options.to.replace(/-/g, ' '))\r\n );\r\n }\r\n if (\r\n currentDate > message.options.from &&\r\n currentDate < message.options.to\r\n ) {\r\n if (message.showIcon === false) {\r\n this.toastr.toastrConfig.iconClasses[messageType] =\r\n `toast-${messageType} toast-no-icon`;\r\n }\r\n message = this.handleTemplate(message);\r\n\r\n if (message.text) {\r\n let messageShown: ActiveToast<any>;\r\n switch (message.type) {\r\n case MessageType.SUCCESS:\r\n messageShown = this.success(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n case MessageType.ERROR:\r\n messageShown = this.error(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n case MessageType.INFO:\r\n messageShown = this.info(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n case MessageType.SHOW:\r\n messageShown = this.show(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n case MessageType.ALERT:\r\n case MessageType.WARNING:\r\n messageShown = this.alert(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n default:\r\n messageShown = this.info(\r\n message.text,\r\n message.title,\r\n message.options,\r\n message.textInterpolateParams,\r\n message.titleInterpolateParams\r\n );\r\n break;\r\n }\r\n message.options.id = messageShown.toastId;\r\n }\r\n }\r\n }\r\n\r\n success(\r\n text: string,\r\n title: string = 'igo.core.message.success',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'success',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n error(\r\n text: string,\r\n title: string = 'igo.core.message.error',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'error',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n info(\r\n text: string,\r\n title: string = 'igo.core.message.info',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'info',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n alert(\r\n text: string,\r\n title: string = 'igo.core.message.alert',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'alert',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n show(\r\n text: string,\r\n title: string = 'igo.core.message.info',\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n return this.handleNgxToastr(\r\n 'show',\r\n text,\r\n title,\r\n options,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n );\r\n }\r\n\r\n private handleNgxToastr(\r\n type: 'alert' | 'info' | 'error' | 'success' | 'show',\r\n text: string,\r\n title: string,\r\n options: Partial<IndividualConfig> = {},\r\n textInterpolateParams?: Object,\r\n titleInterpolateParams?: Object\r\n ): ActiveToast<any> {\r\n const translatedTextInterpolateParams = { ...textInterpolateParams };\r\n const translatedTitlenterpolateParams = { ...titleInterpolateParams };\r\n\r\n if (textInterpolateParams) {\r\n Object.keys(textInterpolateParams).map((k) => {\r\n const value = textInterpolateParams[k];\r\n if (value) {\r\n translatedTextInterpolateParams[k] =\r\n typeof value === 'string'\r\n ? this.languageService.translate.instant(value)\r\n : value;\r\n }\r\n });\r\n }\r\n if (titleInterpolateParams) {\r\n Object.keys(titleInterpolateParams).map((k) => {\r\n if (k) {\r\n const value = titleInterpolateParams[k];\r\n translatedTitlenterpolateParams[k] =\r\n typeof value === 'string'\r\n ? this.languageService.translate.instant(value)\r\n : value;\r\n }\r\n });\r\n }\r\n\r\n const message = this.languageService.translate.instant(\r\n text,\r\n translatedTextInterpolateParams\r\n );\r\n const translatedTitle = this.languageService.translate.instant(\r\n title,\r\n translatedTitlenterpolateParams\r\n );\r\n\r\n let activeToast;\r\n switch (type) {\r\n case 'success':\r\n activeToast = this.toastr.success(message, translatedTitle, options);\r\n break;\r\n case 'error':\r\n activeToast = this.toastr.error(message, translatedTitle, options);\r\n break;\r\n case 'show':\r\n case 'info':\r\n activeToast = this.toastr.info(message, translatedTitle, options);\r\n break;\r\n case 'alert':\r\n activeToast = this.toastr.warning(message, translatedTitle, options);\r\n break;\r\n }\r\n this.activeMessageTranslations.push({\r\n id: activeToast.toastId,\r\n titleKey: title,\r\n textKey: text,\r\n textInterpolateParams,\r\n titleInterpolateParams\r\n });\r\n return activeToast;\r\n }\r\n\r\n remove(id?: number) {\r\n this.toastr.remove(id);\r\n }\r\n\r\n removeAllAreNotError() {\r\n for (const mess of this.messages$.value) {\r\n if (mess.type !== MessageType.ERROR) {\r\n this.remove(mess.options.id);\r\n }\r\n }\r\n }\r\n\r\n private handleTemplate(message: Message): Message {\r\n if (!this.options?.template || message.html) {\r\n return message;\r\n }\r\n\r\n let html = this.options?.template;\r\n html = html.replace('${text}', message.text);\r\n html = html.replace('${title}', message.title);\r\n\r\n message.html = undefined;\r\n message.text = html;\r\n message.title = undefined;\r\n return message;\r\n }\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\n\r\nimport { MessageService } from '../message/shared/message.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(private messageService: MessageService) {}\r\n\r\n intercept(\r\n originalReq: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const interceptError = originalReq.headers.get('interceptError');\r\n const req = originalReq.clone({\r\n headers: originalReq.headers.delete('interceptError')\r\n });\r\n if (interceptError === 'false') {\r\n return next.handle(req);\r\n }\r\n const errorContainer = { httpError: undefined };\r\n return next.handle(req).pipe(\r\n catchError((error) => this.handleError(error, errorContainer)),\r\n finalize(() => {\r\n const httpError = errorContainer.httpError;\r\n if (!httpError) {\r\n return;\r\n }\r\n\r\n if (httpError.error.toDisplay) {\r\n this.handleCaughtError(httpError);\r\n } else if (!httpError.error.caught) {\r\n this.handleUncaughtError(httpError);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private handleError(\r\n httpError: HttpErrorResponse,\r\n errorContainer: { httpError: HttpErrorResponse }\r\n ) {\r\n if (httpError instanceof HttpErrorResponse) {\r\n const errorObj = httpError.error === 'object' ? httpError.error : {};\r\n errorObj.message = httpError.error?.message || httpError.statusText;\r\n errorObj.caught = false;\r\n\r\n httpError = new HttpErrorResponse({\r\n error: errorObj,\r\n headers: httpError.headers,\r\n status: httpError.status,\r\n statusText: httpError.statusText,\r\n url: httpError.url\r\n });\r\n }\r\n\r\n errorContainer.httpError = httpError;\r\n return throwError(httpError);\r\n }\r\n\r\n private handleCaughtError(httpError: HttpErrorResponse) {\r\n httpError.error.caught = true;\r\n this.messageService.error(httpError.error.message, httpError.error.title, {\r\n progressBar: false\r\n });\r\n }\r\n\r\n private handleUncaughtError(httpError: HttpErrorResponse) {\r\n httpError.error.caught = true;\r\n this.messageService.error(\r\n 'igo.core.errors.uncaught.message',\r\n 'igo.core.errors.uncaught.title',\r\n {\r\n progressBar: false\r\n }\r\n );\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport {\r\n ModuleWithProviders,\r\n NgModule,\r\n Optional,\r\n SkipSelf\r\n} from '@angular/core';\r\n\r\nimport { ErrorInterceptor } from './error.interceptor';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoErrorModule {\r\n static forRoot(): ModuleWithProviders<IgoErrorModule> {\r\n return {\r\n ngModule: IgoErrorModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ErrorInterceptor,\r\n multi: true\r\n }\r\n ]\r\n };\r\n }\r\n\r\n constructor(@Optional() @SkipSelf() parentModule: IgoErrorModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'IgoErrorModule is already loaded. Import it in the AppModule only'\r\n );\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { DBConfig, NgxIndexedDBModule } from 'ngx-indexed-db';\r\n\r\nimport { IgoActivityModule } from './activity/activity.module';\r\nimport { IgoConfigModule } from './config/config.module';\r\nimport { provideRootTranslation } from './language';\r\nimport { IgoLanguageModule } from './language/language.module';\r\nimport { IgoMessageModule } from './message/message.module';\r\nimport { IgoErrorModule } from './request/error.module';\r\n\r\nconst dbConfig: DBConfig = {\r\n name: 'igo2DB',\r\n version: 2,\r\n objectStoresMeta: [\r\n {\r\n store: 'geoData',\r\n storeConfig: { keyPath: 'url', autoIncrement: false },\r\n storeSchema: [\r\n { name: 'regionID', keypath: 'regionID', options: { unique: false } }\r\n ]\r\n },\r\n {\r\n store: 'layerData',\r\n storeConfig: { keyPath: 'layerId', autoIncrement: false },\r\n storeSchema: [\r\n {\r\n name: 'layerOptions',\r\n keypath: 'layerOptions',\r\n options: { unique: false }\r\n },\r\n {\r\n name: 'sourceOptions',\r\n keypath: 'sourceOptions',\r\n options: { unique: false }\r\n }\r\n ]\r\n }\r\n ]\r\n};\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n IgoActivityModule.forRoot(),\r\n IgoConfigModule.forRoot(),\r\n IgoErrorModule.forRoot(),\r\n IgoMessageModule,\r\n NgxIndexedDBModule.forRoot(dbConfig)\r\n ],\r\n providers: [provideRootTranslation()],\r\n declarations: [],\r\n exports: [\r\n IgoActivityModule,\r\n IgoConfigModule,\r\n IgoErrorModule,\r\n IgoLanguageModule,\r\n IgoMessageModule\r\n ]\r\n})\r\nexport class IgoCoreModule {\r\n static forRoot(): ModuleWithProviders<IgoCoreModule> {\r\n return {\r\n ngModule: IgoCoreModule,\r\n providers: []\r\n };\r\n }\r\n\r\n constructor(matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer) {\r\n matIconRegistry.addSvgIconSet(\r\n domSanitizer.bypassSecurityTrustResourceUrl(\r\n './assets/igo2/core/icons/mdi.svg'\r\n )\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HammerGestureConfig } from '@angular/platform-browser';\r\n\r\n@Injectable()\r\nexport class IgoGestureConfig extends HammerGestureConfig {\r\n buildHammer(element: HTMLElement) {\r\n const mc = super.buildHammer(element) as any;\r\n mc.set({ touchAction: 'pan-y' });\r\n return mc;\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { HAMMER_GESTURE_CONFIG, HammerModule } from '@angular/platform-browser';\r\n\r\nimport { IgoGestureConfig } from './gesture.provider';\r\n\r\n@NgModule({\r\n imports: [HammerModule],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoGestureModule {\r\n static forRoot(): ModuleWithProviders<IgoGestureModule> {\r\n return {\r\n ngModule: IgoGestureModule,\r\n providers: [\r\n {\r\n provide: HAMMER_GESTURE_CONFIG,\r\n useClass: IgoGestureConfig\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import {\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpResponse\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { finalize, tap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LoggingInterceptor implements HttpInterceptor {\r\n intercept(\r\n req: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const started = Date.now();\r\n let ok: string;\r\n\r\n // extend server response observable with logging\r\n return next.handle(req).pipe(\r\n tap(\r\n // Succeeds when there is a response; ignore other events\r\n (event) => (ok = event instanceof HttpResponse ? 'succeeded' : ''),\r\n // Operation failed; error is an HttpErrorResponse\r\n (error) => (ok = 'failed')\r\n ),\r\n // Log when response observable either completes or errors\r\n finalize(() => {\r\n const elapsed = Date.now() - started;\r\n const msg = `${req.method} \"${req.urlWithParams}\"\r\n ${ok} in ${elapsed} ms.`;\r\n\r\n console.log(msg);\r\n })\r\n );\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { LoggingInterceptor } from './logging.interceptor';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoLoggingModule {\r\n static forRoot(): ModuleWithProviders<IgoLoggingModule> {\r\n return {\r\n ngModule: IgoLoggingModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: LoggingInterceptor,\r\n multi: true\r\n }\r\n ]\r\n };\r\n }\r\n}\r\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { RouteServiceOptions } from './route.interface';\r\n\r\nexport let ROUTE_SERVICE_OPTIONS = new InjectionToken<RouteServiceOptions>(\r\n 'routeServiceOptions'\r\n);\r\n\r\nexport function provideRouteServiceOptions(options: RouteServiceOptions) {\r\n return {\r\n provide: ROUTE_SERVICE_OPTIONS,\r\n useValue: options\r\n };\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RouteService {\r\n public options: RouteServiceOptions;\r\n\r\n constructor(\r\n private router: Router,\r\n public route: ActivatedRoute,\r\n @Inject(ROUTE_SERVICE_OPTIONS)\r\n @Optional()\r\n options: RouteServiceOptions\r\n ) {\r\n const defaultOptions = {\r\n centerKey: 'center',\r\n zoomKey: 'zoom',\r\n projectionKey: 'projection',\r\n contextKey: 'context',\r\n searchKey: 'search',\r\n visibleOnLayersKey: 'visiblelayers',\r\n visibleOffLayersKey: 'invisiblelayers',\r\n directionsCoordKey: 'routing',\r\n directionsOptionsKey: 'routingOptions',\r\n toolKey: 'tool',\r\n wmsUrlKey: 'wmsUrl',\r\n wmsLayersKey: 'wmsLayers',\r\n wmtsUrlKey: 'wmtsUrl',\r\n wmtsLayersKey: 'wmtsLayers',\r\n arcgisUrlKey: 'arcgisUrl',\r\n arcgisLayersKey: 'arcgisLayers',\r\n iarcgisUrlKey: 'iarcgisUrl',\r\n iarcgisLayersKey: 'iarcgisLayers',\r\n tarcgisUrlKey: 'tarcgisUrl',\r\n tarcgisLayersKey: 'tarcgisLayers',\r\n vectorKey: 'vector'\r\n };\r\n this.options = Object.assign({}, defaultOptions, options);\r\n }\r\n\r\n get queryParams(): Observable<Params> {\r\n let url = decodeURIComponent(location.search);\r\n if (url.includes('¢er=')) {\r\n url = url.replace('¢er', '&center');\r\n const queryParams: any = url\r\n .slice(1)\r\n .split('&')\r\n .map((p) => p.split('='))\r\n .reduce((obj, pair) => {\r\n const [key, value] = pair.map(decodeURIComponent);\r\n obj[key] = value;\r\n return obj;\r\n }, {});\r\n this.router.navigate([], { queryParams });\r\n }\r\n return this.route.queryParams;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\nimport { AnalyticsBaseUser, AnalyticsOptions } from './analytics.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalyticsService {\r\n private options: AnalyticsOptions;\r\n\r\n get paq() {\r\n return ((window as any)._paq = (window as any)._paq || []);\r\n }\r\n\r\n constructor(private config: ConfigService) {\r\n this.options = this.config.getConfig('analytics') || {};\r\n\r\n if (this.options.provider === 'matomo') {\r\n this.initMatomo();\r\n }\r\n }\r\n\r\n private initMatomo() {\r\n if (!this.options.url || !this.options.id) {\r\n return;\r\n }\r\n const url =\r\n this.options.url.substr(-1) === '/'\r\n ? this.options.url + 'matomo'\r\n : this.options.url;\r\n\r\n // this.paq.push(['trackPageView']);\r\n // this.paq.push(['enableLinkTracking']);\r\n (() => {\r\n this.paq.push(['setTrackerUrl', url + '.php']);\r\n this.paq.push(['setSiteId', this.options.id]);\r\n const g = document.createElement('script');\r\n const s = document.getElementsByTagName('script')[0];\r\n g.type = 'text/javascript';\r\n g.async = true;\r\n g.defer = true;\r\n g.src = url + '.js';\r\n s.parentNode.insertBefore(g, s);\r\n })();\r\n }\r\n\r\n /**\r\n * Pass `null` to unset the user.\r\n */\r\n public setUser(user: AnalyticsBaseUser | null, profils?: string[]) {\r\n if (this.options.provider === 'matomo') {\r\n if (!user) {\r\n this.paq.push(['resetUserId']);\r\n this.paq.push(['deleteCustomVariable', 1, 'user']);\r\n this.paq.push(['deleteCustomVariable', 2, 'name']);\r\n this.paq.push(['deleteCustomVariable', 3, 'profils']);\r\n } else {\r\n this.paq.push(['setUserId', user.id]);\r\n\r\n const name = `${user.firstName} ${user.lastName}`;\r\n this.paq.push(['setCustomVariable', 1, 'user', user.sourceId, 'visit']);\r\n this.paq.push(['setCustomVariable', 2, 'name', name, 'visit']);\r\n this.paq.push(['setCustomVariable', 3, 'profils', profils, 'visit']);\r\n }\r\n\r\n this.paq.push(['trackPageView']);\r\n this.paq.push(['enableLinkTracking']);\r\n }\r\n }\r\n\r\n public trackSearch(term: string, nbResults: number) {\r\n if (this.options.provider === 'matomo') {\r\n this.paq.push(['trackSiteSearch', term, false, nbResults]);\r\n }\r\n }\r\n\r\n public trackEvent(category: string, action: string, name: string) {\r\n if (this.options.provider === 'matomo') {\r\n this.paq.push(['trackEvent', category, action, name]);\r\n }\r\n }\r\n\r\n /**\r\n * Function that tracks layers added to the map\r\n */\r\n public trackLayer(category: string, action: string, parameters: any) {\r\n if (this.options.provider === 'matomo')\r\n this.paq.push(['trackEvent', category, action, parameters]);\r\n }\r\n}\r\n","export enum Media {\r\n Mobile = 'mobile',\r\n Tablet = 'tablet',\r\n Desktop = 'desktop'\r\n}\r\n\r\nexport enum MediaOrientation {\r\n Portrait = 'portrait',\r\n Landscape = 'landscape'\r\n}\r\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { Media, MediaOrientation } from './media.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MediaService {\r\n public media$ = new BehaviorSubject<Media>(undefined);\r\n public orientation$ = new BehaviorSubject<MediaOrientation>(undefined);\r\n\r\n constructor(breakpointObserver: BreakpointObserver) {\r\n breakpointObserver\r\n .observe([Breakpoints.HandsetLandscape])\r\n .subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Mobile);\r\n this.orientation$.next(MediaOrientation.Landscape);\r\n }\r\n });\r\n\r\n breakpointObserver\r\n .observe([Breakpoints.HandsetPortrait])\r\n .subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Mobile);\r\n this.orientation$.next(MediaOrientation.Portrait);\r\n }\r\n });\r\n\r\n breakpointObserver\r\n .observe([Breakpoints.TabletLandscape])\r\n .subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Tablet);\r\n this.orientation$.next(MediaOrientation.Landscape);\r\n }\r\n });\r\n\r\n breakpointObserver\r\n .observe([Breakpoints.TabletPortrait])\r\n .subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Tablet);\r\n this.orientation$.next(MediaOrientation.Portrait);\r\n }\r\n });\r\n\r\n breakpointObserver.observe([Breakpoints.WebLandscape]).subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Desktop);\r\n this.orientation$.next(MediaOrientation.Landscape);\r\n }\r\n });\r\n\r\n breakpointObserver.observe([Breakpoints.WebPortrait]).subscribe((res) => {\r\n if (res.matches) {\r\n this.media$.next(Media.Desktop);\r\n this.orientation$.next(MediaOrientation.Portrait);\r\n }\r\n });\r\n }\r\n\r\n getMedia(): Media {\r\n return this.media$.value;\r\n }\r\n\r\n getOrientation(): MediaOrientation {\r\n return this.orientation$.value;\r\n }\r\n\r\n isTouchScreen(): boolean {\r\n return 'ontouchstart' in document.documentElement ? true : false;\r\n }\r\n\r\n isMobile(): boolean {\r\n const media = this.getMedia();\r\n return media === 'mobile';\r\n }\r\n\r\n isDesktop(): boolean {\r\n const media = this.getMedia();\r\n return media === 'desktop';\r\n }\r\n}\r\n","import { setUser } from '@sentry/angular-ivy';\r\n\r\nimport { BaseUser } from '../../user';\r\nimport { SentryMonitoringOptions } from './sentry.interface';\r\n\r\nexport const isTracingEnabled = (options: SentryMonitoringOptions): boolean =>\r\n options.enableTracing ||\r\n !!options.tracesSampleRate ||\r\n !!options.tracesSampler;\r\n\r\nexport const identifySentryUser = (user: BaseUser | null): void => {\r\n setUser(\r\n user\r\n ? {\r\n id: user.id,\r\n username: `${user.firstName} ${user.lastName}`,\r\n email: user.email\r\n }\r\n : null\r\n );\r\n};\r\n","import {\r\n BrowserOptions,\r\n BrowserTracing,\r\n Replay,\r\n SentryErrorHandler,\r\n createErrorHandler,\r\n getCurrentHub,\r\n init,\r\n instrumentAngularRouting\r\n} from '@sentry/angular-ivy';\r\n\r\nimport { SentryMonitoringOptions } from './sentry.interface';\r\nimport { isTracingEnabled } from './sentry.utils';\r\n\r\nexport const createSentryErrorHandler = (\r\n options: SentryMonitoringOptions\r\n): SentryErrorHandler => {\r\n return createErrorHandler({\r\n logErrors: options.logErrors,\r\n ...(options.errorHandlerOptions ?? {})\r\n });\r\n};\r\n\r\nexport const initSentry = (options: SentryMonitoringOptions): void => {\r\n const client = getCurrentHub().getClient();\r\n if (client) {\r\n return;\r\n }\r\n\r\n const tracingEnabled = isTracingEnabled(options);\r\n const baseConfig: BrowserOptions = {\r\n dsn: options.dsn,\r\n environment: options.environment,\r\n release: options.release,\r\n integrations: [\r\n tracingEnabled &&\r\n new BrowserTracing({\r\n routingInstrumentation: instrumentAngularRouting\r\n }),\r\n options.enableReplay && new Replay()\r\n ].filter(Boolean)\r\n };\r\n\r\n init(baseConfig);\r\n};\r\n","import {\r\n APP_INITIALIZER,\r\n ConstructorProvider,\r\n ErrorHandler,\r\n FactoryProvider\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { TraceService } from '@sentry/angular-ivy';\r\n\r\nimport { createSentryErrorHandler, initSentry } from './sentry';\r\nimport { SentryMonitoringOptions } from './sentry.interface';\r\nimport { isTracingEnabled } from './sentry.utils';\r\n\r\nexport const provideSentryMonitoring = (\r\n options: SentryMonitoringOptions\r\n): (FactoryProvider | ConstructorProvider)[] => {\r\n const isEnabled = options.enabled !== undefined ? options.enabled : true;\r\n if (!isEnabled) {\r\n return [];\r\n }\r\n\r\n initSentry(options);\r\n\r\n const tracingEnabled = isTracingEnabled(options);\r\n\r\n return [\r\n {\r\n provide: ErrorHandler,\r\n useFactory: () => createSentryErrorHandler(options)\r\n },\r\n tracingEnabled && {\r\n provide: TraceService,\r\n deps: [Router]\r\n },\r\n // Force instantiate TraceService to avoid require it in any constructor.\r\n tracingEnabled && {\r\n provide: APP_INITIALIZER,\r\n useFactory: () => () => {},\r\n deps: [TraceService],\r\n multi: true\r\n }\r\n ].filter(Boolean);\r\n};\r\n","import { InjectionToken, Provider } from '@angular/core';\r\n\r\nimport { provideSentryMonitoring } from './sentry/sentry.provider';\r\nimport { AnyMonitoringOptions, MonitoringOptions } from './shared';\r\n\r\nexport const MONITORING_OPTIONS = new InjectionToken<MonitoringOptions | null>(\r\n 'monitoring.options'\r\n);\r\n\r\nexport function provideMonitoring(\r\n options: AnyMonitoringOptions | null\r\n): Provider[] {\r\n if (!options) {\r\n return [];\r\n }\r\n\r\n const providers: Provider[] = [\r\n { provide: MONITORING_OPTIONS, useValue: options }\r\n ];\r\n\r\n switch (options.provider) {\r\n case 'sentry':\r\n providers.push(...provideSentryMonitoring(options));\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return providers;\r\n}\r\n","export enum StorageScope {\r\n SESSION = 'Session',\r\n LOCAL = 'Local'\r\n}\r\n\r\nexport interface StorageOptions {\r\n key: string;\r\n}\r\n\r\nexport interface StorageServiceEvent {\r\n key?: string;\r\n scope: StorageScope;\r\n event: StorageServiceEventEnum;\r\n previousValue?: any;\r\n currentValue?: any;\r\n}\r\n\r\nexport enum StorageServiceEventEnum {\r\n ADDED = 'Added',\r\n MODIFIED = 'Modified',\r\n REMOVED = 'Removed',\r\n CLEARED = 'Cleared'\r\n}\r\n","import { BehaviorSubject } from 'rxjs';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport {\r\n StorageOptions,\r\n StorageScope,\r\n StorageServiceEvent,\r\n StorageServiceEventEnum\r\n} from './storage.interface';\r\n\r\nexport abstract class BaseStorage<T extends StorageOptions = StorageOptions> {\r\n protected options?: T;\r\n\r\n public storageChange$: BehaviorSubject<StorageServiceEvent> =\r\n new BehaviorSubject(undefined);\r\n\r\n constructor(config: ConfigService) {\r\n this.options = config.getConfig<T>('storage') || ({ key: 'igo' } as T);\r\n }\r\n\r\n /**\r\n * Use to get the data found in storage file\r\n */\r\n get(key: string, scope?: StorageScope): string | object | boolean | number {\r\n let value: any;\r\n\r\n if (!scope || scope === StorageScope.SESSION) {\r\n value = sessionStorage.getItem(`${this.options.key}.${key}`);\r\n }\r\n\r\n if (scope === StorageScope.LOCAL || (!value && !scope)) {\r\n value = localStorage.getItem(`${this.options.key}.${key}`);\r\n }\r\n\r\n if (value) {\r\n try {\r\n value = JSON.parse(value);\r\n } catch {\r\n value = value;\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n set(\r\n key: string,\r\n value: string | object | boolean | number,\r\n scope: StorageScope = StorageScope.LOCAL\r\n ) {\r\n const previousValue = this.get(key, scope);\r\n if (scope === StorageScope.SESSION) {\r\n sessionStorage.setItem(\r\n `${this.options.key}.${key}`,\r\n JSON.stringify(value)\r\n );\r\n } else {\r\n localStorage.setItem(`${this.options.key}.${key}`, JSON.stringify(value));\r\n }\r\n const currentValue = this.get(key, scope);\r\n\r\n if (currentValue !== previousValue) {\r\n this.storageChange$.next({\r\n key,\r\n scope,\r\n event:\r\n previousValue !== undefined\r\n ? StorageServiceEventEnum.MODIFIED\r\n : StorageServiceEventEnum.ADDED,\r\n previousValue,\r\n currentValue\r\n });\r\n }\r\n }\r\n\r\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\r\n const previousValue = this.get(key, scope);\r\n if (scope === StorageScope.SESSION) {\r\n sessionStorage.removeItem(`${this.options.key}.${key}`);\r\n } else {\r\n localStorage.removeItem(`${this.options.key}.${key}`);\r\n }\r\n this.storageChange$.next({\r\n key,\r\n scope,\r\n event: StorageServiceEventEnum.REMOVED,\r\n previousValue\r\n });\r\n }\r\n\r\n clear(scope: StorageScope = StorageScope.LOCAL) {\r\n if (scope === StorageScope.SESSION) {\r\n sessionStorage.clear();\r\n } else {\r\n localStorage.clear();\r\n }\r\n this.storageChange$.next({ scope, event: StorageServiceEventEnum.CLEARED });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { BaseStorage } from './storage';\r\nimport { StorageOptions } from './storage.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService extends BaseStorage<StorageOptions> {\r\n constructor(private config: ConfigService) {\r\n super(config);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Observable, Observer } from 'rxjs';\r\n\r\nimport { CompressedData } from './compressedData.interface';\r\n\r\nfunction getNumber(v: number, endposition: number, length: number) {\r\n /* tslint:disable:no-bitwise*/\r\n const mask = (1 << length) - 1;\r\n return (v >> endposition) & mask;\r\n /* tslint:enable:no-bitwise*/\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompressionService {\r\n private base64Index = new Map<string, number>();\r\n private indexBase64 = new Map<number, string>();\r\n\r\n constructor() {\r\n this.generateBase64Index();\r\n }\r\n\r\n private generateBase64Index() {\r\n // https://fr.wikipedia.org/wiki/Base64\r\n // A-Z => [0, 25]\r\n for (let i = 0; i < 26; i++) {\r\n this.base64Index.set(String.fromCharCode('A'.charCodeAt(0) + i), i);\r\n this.indexBase64.set(i, String.fromCharCode('A'.charCodeAt(0) + i));\r\n }\r\n // a-z => [26, 51]\r\n for (let i = 0; i < 26; i++) {\r\n this.base64Index.set(String.fromCharCode('a'.charCodeAt(0) + i), i + 26);\r\n this.indexBase64.set(i + 26, String.fromCharCode('a'.charCodeAt(0) + i));\r\n }\r\n // 0-9 => [52, 61]\r\n for (let i = 0; i < 10; i++) {\r\n this.base64Index.set(String.fromCharCode('0'.charCodeAt(0) + i), i + 52);\r\n this.indexBase64.set(i + 52, String.fromCharCode('0'.charCodeAt(0) + i));\r\n }\r\n // + / => [62, 63]\r\n this.base64Index.set('+', 62);\r\n this.base64Index.set('/', 63);\r\n this.indexBase64.set(62, '+');\r\n this.indexBase64.set(63, '/');\r\n }\r\n\r\n compressBlob(blob: Blob): Observable<CompressedData> {\r\n if (!blob) {\r\n return;\r\n }\r\n\r\n const observable = new Observable((observer: Observer<CompressedData>) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = () => {\r\n const base64 = reader.result.valueOf() as string;\r\n const text64 = base64.substr(base64.indexOf(',') + 1);\r\n const compressed = this.compressStringBase64(text64);\r\n const compressedData: CompressedData = {\r\n length: text64.length,\r\n type: blob.type,\r\n object: compressed\r\n };\r\n observer.next(compressedData);\r\n };\r\n });\r\n return observable;\r\n }\r\n\r\n decompressBlob(compressedData: CompressedData): Blob {\r\n /* tslint:disable:no-bitwise*/\r\n const object = compressedData.object;\r\n const length = compressedData.length;\r\n const decompressed: string = this.decompressStringBase64(object, length);\r\n const byteCharacters = atob(decompressed);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], { type: compressedData.type });\r\n /* tslint:enable:no-bitwise*/\r\n return blob;\r\n }\r\n\r\n private compressStringBase64(s: string): string {\r\n /* tslint:disable:no-bitwise*/\r\n let out = '';\r\n let bits = 16;\r\n let chr = 0;\r\n let rem = 0;\r\n for (const c of s) {\r\n const value = this.base64Index.get(c);\r\n if (bits > 6) {\r\n bits -= 6;\r\n chr += value << bits;\r\n } else {\r\n rem = 6 - bits;\r\n chr += value >> rem;\r\n out += String.fromCharCode(chr);\r\n chr = value << (16 - rem);\r\n bits = 16 - rem;\r\n }\r\n }\r\n if (s.length % 8 !== 0) {\r\n out += String.fromCharCode(chr);\r\n }\r\n /* tslint:enable:no-bitwise*/\r\n return String.fromCharCode(9731) + out;\r\n }\r\n\r\n private decompressStringBase64(c: string, length: number): string {\r\n /* tslint:disable:no-bitwise*/\r\n if (!c) {\r\n return;\r\n }\r\n\r\n if (c.charCodeAt(0) !== 9731) {\r\n return c;\r\n }\r\n\r\n let chr = 0;\r\n let rem = 0;\r\n let bits = 16;\r\n let out = '';\r\n let j = 1;\r\n let value = c.charCodeAt(j);\r\n for (let i = 0; i < length; i++) {\r\n if (bits > 6) {\r\n bits -= 6;\r\n chr = getNumber(value, bits, 6);\r\n out += this.indexBase64.get(chr);\r\n } else {\r\n rem = 6 - bits;\r\n chr = getNumber(value, 0, bits) << rem;\r\n value = c.charCodeAt(++j);\r\n chr += getNumber(value, 16 - rem, rem);\r\n out += this.indexBase64.get(chr);\r\n bits = 16 - rem;\r\n }\r\n }\r\n return out;\r\n /* tslint:enable:no-bitwise*/\r\n }\r\n}\r\n","import { EventEmitter, Injectable, Injector, OnDestroy } from '@angular/core';\r\n\r\nimport { Observable, Subscription, fromEvent } from 'rxjs';\r\nimport { debounceTime, startWith } from 'rxjs/operators';\r\n\r\nimport { MessageService } from '../message/shared/message.service';\r\nimport { ConnectionState } from './network.interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NetworkService implements OnDestroy {\r\n private stateChangeEventEmitter = new EventEmitter<ConnectionState>();\r\n private onlineSubscription: Subscription;\r\n private offlineSubscription: Subscription;\r\n private previousMessageId;\r\n\r\n private state: ConnectionState = {\r\n connection: window.navigator.onLine\r\n };\r\n\r\n constructor(\r\n private messageService: MessageService,\r\n private injector: Injector\r\n ) {\r\n this.checkNetworkState();\r\n }\r\n\r\n private checkNetworkState() {\r\n this.onlineSubscription = fromEvent(window, 'online').subscribe(() => {\r\n if (this.previousMessageId) {\r\n this.messageService.remove(this.previousMessageId);\r\n }\r\n const messageObj = this.messageService.info(\r\n 'igo.core.network.online.message',\r\n 'igo.core.network.online.title'\r\n );\r\n this.previousMessageId = messageObj.toastId;\r\n this.state.connection = true;\r\n this.emitEvent();\r\n });\r\n\r\n this.offlineSubscription = fromEvent(window, 'offline').subscribe(() => {\r\n if (this.previousMessageId) {\r\n this.messageService.remove(this.previousMessageId);\r\n }\r\n const messageObj = this.messageService.info(\r\n 'igo.core.network.offline.message',\r\n 'igo.core.network.offline.title'\r\n );\r\n this.previousMessageId = messageObj.toastId;\r\n this.state.connection = false;\r\n this.emitEvent();\r\n });\r\n }\r\n\r\n private emitEvent() {\r\n this.stateChangeEventEmitter.emit(this.state);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n try {\r\n this.offlineSubscription.unsubscribe();\r\n this.onlineSubscription.unsubscribe();\r\n } catch (e) {}\r\n }\r\n\r\n currentState(reportState = true): Observable<ConnectionState> {\r\n return reportState\r\n ? this.stateChangeEventEmitter.pipe(\r\n debounceTime(300),\r\n startWith(this.state)\r\n )\r\n : this.stateChangeEventEmitter.pipe(debounceTime(300));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { RegexOptions } from './regex.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RegexService {\r\n protected options: RegexOptions;\r\n\r\n constructor(private config: ConfigService) {\r\n this.options = this.config.getConfig('regex');\r\n }\r\n\r\n getAll() {\r\n return this.options;\r\n }\r\n\r\n get(key) {\r\n if (this.options) {\r\n return this.options[key];\r\n }\r\n return;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of core\r\n */\r\n\r\nexport * from './lib/core.module';\r\nexport * from './lib/activity/activity.module';\r\nexport * from './lib/config/config.module';\r\nexport * from './lib/gesture/gesture.module';\r\nexport * from './lib/language/language.module';\r\nexport * from './lib/message/message.module';\r\nexport * from './lib/request/error.module';\r\nexport * from './lib/request/logging.module';\r\n\r\nexport * from './lib/config/config.provider';\r\nexport * from './lib/gesture/gesture.provider';\r\nexport * from './lib/route/route.service';\r\nexport * from './lib/route/route.interface';\r\n\r\nexport * from './lib/activity';\r\nexport * from './lib/analytics';\r\nexport * from './lib/config';\r\nexport * from './lib/environment';\r\nexport * from './lib/language';\r\nexport * from './lib/media';\r\nexport * from './lib/message';\r\nexport * from './lib/monitoring';\r\nexport * from './lib/request';\r\nexport * from './lib/storage';\r\nexport * from './lib/compression';\r\nexport * from './lib/network';\r\nexport * from './lib/regex';\r\nexport * from './lib/user';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ActivityService","i1","first","i1.ConfigService","i2.LanguageService","i1.MessageService","i3.IgoActivityModule","i4.IgoConfigModule","i5.IgoErrorModule","tap"],"mappings":"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"}