@igo2/core 1.13.2 → 1.13.3

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.
@@ -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/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/message/shared/message.enum.ts","../../../packages/core/src/lib/language/shared/language.service.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/storage/storage.interface.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/public_api.ts","../../../packages/core/src/igo2-core.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { uuid } from '@igo2/utils';\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 { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\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","export interface Version {\r\n lib: string;\r\n releaseDate: number;\r\n}\r\n\r\nexport const version: Version = {\r\n lib: '1.13.2',\r\n releaseDate: 1668455692587\r\n};\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { ConfigOptions } from './config.interface';\r\nimport { version } from './version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService {\r\n private config: object = {};\r\n\r\n constructor(private injector: Injector) {}\r\n\r\n /**\r\n * Use to get the data found in config file\r\n */\r\n public getConfig(key: string): any {\r\n return ObjectUtils.resolve(this.config, key);\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) {\r\n const baseConfig = options.default || {};\r\n if (!options.path) {\r\n this.config = baseConfig;\r\n return true;\r\n }\r\n\r\n const http = this.injector.get(HttpClient);\r\n\r\n return new Promise((resolve, _reject) => {\r\n http\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 resolve(true);\r\n });\r\n });\r\n }\r\n}\r\n","import { APP_INITIALIZER, InjectionToken } from '@angular/core';\r\n\r\nimport { ConfigService } from './config.service';\r\nimport { ConfigOptions } from './config.interface';\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { provideConfigOptions, provideConfigLoader } 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 { HttpClient } from '@angular/common/http';\r\n\r\nimport { combineLatest } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { TranslateLoader } from '@ngx-translate/core';\r\n\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\n\r\ndeclare function require(arg: string): any;\r\n\r\nexport class LanguageLoader implements TranslateLoader {\r\n constructor(\r\n private http: HttpClient,\r\n private prefix?: string | string[],\r\n private suffix: string = '.json',\r\n private config?: ConfigService\r\n ) {}\r\n\r\n public getTranslation(lang: string): any {\r\n const igoLocale$ = this.http.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.http.get(`${prefix}${lang}${this.suffix}`)\r\n );\r\n\r\n const locale$ = combineLatest([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 { HttpClient } from '@angular/common/http';\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: HttpClient,\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: [HttpClient]\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: [HttpClient, ConfigService]\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport {\r\n TranslateModule,\r\n MissingTranslationHandler\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { GlobalConfig, ToastrModule } from 'ngx-toastr';\r\n\r\n@NgModule({\r\n imports: [CommonModule,\r\n ToastrModule.forRoot({\r\n positionClass: 'toast-bottom-right',\r\n timeOut: 10000,\r\n extendedTimeOut: 10000,\r\n messageClass: 'toast-message mat-typography',\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 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 { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageService {\r\n private language: string = this.translate.getBrowserLang();\r\n readonly language$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n constructor(public translate: TranslateService) {\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 this.language$.next(this.language);\r\n this.translate.use(this.language);\r\n this.translate.reloadLang(this.language);\r\n }\r\n}\r\n","import { Injectable, Inject, Injector } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { BehaviorSubject, forkJoin } from 'rxjs';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\n\r\nimport { Message, MessageOptions } from './message.interface';\r\nimport { ActiveToast, IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { MessageType } from './message.enum';\r\nimport { LanguageService } from '../../language/shared/language.service';\r\nimport { debounceTime, first } from 'rxjs/operators';\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(amt => amt.id === toast.toastId);\r\n if (activeMessageTranslation) {\r\n const translatedTextInterpolateParams = {...activeMessageTranslation.textInterpolateParams};\r\n const translatedTitleInterpolateParams = {...activeMessageTranslation.titleInterpolateParams};\r\n\r\n if (activeMessageTranslation.textInterpolateParams) {\r\n Object.keys(activeMessageTranslation.textInterpolateParams).map(k => {\r\n translatedTextInterpolateParams[k] =\r\n this.languageService.translate.instant(activeMessageTranslation.textInterpolateParams[k]);\r\n });\r\n }\r\n if (activeMessageTranslation.titleInterpolateParams) {\r\n Object.keys(activeMessageTranslation.titleInterpolateParams).map(k => {\r\n translatedTitleInterpolateParams[k] =\r\n this.languageService.translate.instant(activeMessageTranslation.titleInterpolateParams[k]);\r\n });\r\n }\r\n\r\n\r\n forkJoin([\r\n this.languageService.translate.get(activeMessageTranslation.textKey, translatedTextInterpolateParams),\r\n this.languageService.translate.get(activeMessageTranslation.titleKey, translatedTitleInterpolateParams)\r\n ]).pipe(first()).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 ? message.options.from : new Date('1 jan 1900');\r\n message.options.to = message.options.to ? message.options.to : new Date('1 jan 3000');\r\n if (typeof message.options.from === 'string') {\r\n message.options.from = new Date(Date.parse(message.options.from.replace(/-/g, ' ')));\r\n }\r\n if (typeof message.options.to === 'string') {\r\n message.options.to = new Date(Date.parse(message.options.to.replace(/-/g, ' ')));\r\n }\r\n if (currentDate > message.options.from && currentDate < message.options.to) {\r\n if (message.showIcon === false) {\r\n this.toastr.toastrConfig.iconClasses[messageType] = `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 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 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 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 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 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 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): ActiveToast<any> {\r\n return this.handleNgxToastr('success', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n return this.handleNgxToastr('error', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n return this.handleNgxToastr('info', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n return this.handleNgxToastr('alert', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n return this.handleNgxToastr('show', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n\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 translatedTextInterpolateParams[k] =\r\n this.languageService.translate.instant(textInterpolateParams[k]);\r\n });\r\n }\r\n if (titleInterpolateParams) {\r\n Object.keys(titleInterpolateParams).map(k => {\r\n translatedTitlenterpolateParams[k] =\r\n this.languageService.translate.instant(titleInterpolateParams[k]);\r\n });\r\n }\r\n\r\n\r\n const message = this.languageService.translate.instant(text, translatedTextInterpolateParams);\r\n const translatedTitle = this.languageService.translate.instant(title, translatedTitlenterpolateParams);\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 return activeToast;\r\n\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 { Injectable, Injector } from '@angular/core';\r\nimport {\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpRequest,\r\n HttpEvent,\r\n HttpErrorResponse\r\n} from '@angular/common/http';\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(\r\n private injector: Injector\r\n ) {}\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 this.handleCaughtError(errorContainer);\r\n this.handleUncaughtError(errorContainer);\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(errorContainer: { httpError: HttpErrorResponse }) {\r\n const httpError = errorContainer.httpError;\r\n if (httpError && httpError.error.toDisplay) {\r\n httpError.error.caught = true;\r\n const messageService = this.injector.get(MessageService);\r\n messageService.error(httpError.error.message, httpError.error.title);\r\n }\r\n }\r\n\r\n private handleUncaughtError(errorContainer: {\r\n httpError: HttpErrorResponse;\r\n }) {\r\n const httpError = errorContainer.httpError;\r\n if (httpError && !httpError.error.caught) {\r\n const messageService = this.injector.get(MessageService);\r\n httpError.error.caught = true;\r\n messageService.error('igo.core.errors.uncaught.message', 'igo.core.errors.uncaught.title');\r\n }\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n Optional,\r\n SkipSelf\r\n} from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\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\nimport { DBConfig, NgxIndexedDBModule } from 'ngx-indexed-db';\r\n\r\nconst dbConfig: DBConfig = {\r\n name: 'igo2DB',\r\n version: 1,\r\n objectStoresMeta: [{\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@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\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { HammerModule, HAMMER_GESTURE_CONFIG } 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 { Injectable } from '@angular/core';\r\nimport {\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpRequest,\r\n HttpResponse\r\n} from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { tap, finalize } 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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\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 { Injectable, Inject, InjectionToken, Optional } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\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\n\r\nimport { 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 public setUser(\r\n user?: {\r\n id: number;\r\n sourceId?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n },\r\n profils?: string[]\r\n ) {\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","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 { Injectable } from '@angular/core';\r\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\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.observe([Breakpoints.HandsetPortrait]).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.observe([Breakpoints.TabletLandscape]).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.observe([Breakpoints.TabletPortrait]).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","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 { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { StorageScope, StorageOptions, StorageServiceEvent, StorageServiceEventEnum } from './storage.interface';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n protected options: StorageOptions;\r\n\r\n public storageChange$: BehaviorSubject<StorageServiceEvent> = new BehaviorSubject(undefined);\r\n\r\n constructor(private config: ConfigService) {\r\n this.options = this.config.getConfig('storage') || { key: 'igo' };\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, scope,\r\n event: previousValue !== undefined ? StorageServiceEventEnum.MODIFIED : 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({key, scope, event: StorageServiceEventEnum.REMOVED, previousValue });\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\nimport { Observable, Observer } from 'rxjs';\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 = { length: text64.length,\r\n type: blob.type,\r\n object: compressed };\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 { Injectable, EventEmitter, OnDestroy, Injector } from '@angular/core';\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 { LanguageService } from '../language/shared/language.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 translate = this.injector.get(LanguageService).translate;\r\n const message = translate.instant('igo.core.network.online.message');\r\n const title = translate.instant('igo.core.network.online.title');\r\n const messageObj = this.messageService.info(message, title);\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 translate = this.injector.get(LanguageService).translate;\r\n const message = translate.instant('igo.core.network.offline.message');\r\n const title = translate.instant('igo.core.network.offline.title');\r\n const messageObj = this.messageService.info(message, title);\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","/*\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/language';\r\nexport * from './lib/media';\r\nexport * from './lib/message';\r\nexport * from './lib/request';\r\nexport * from './lib/storage';\r\nexport * from './lib/compression';\r\nexport * from './lib/network';\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/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/message/shared/message.enum.ts","../../../packages/core/src/lib/language/shared/language.service.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/storage/storage.interface.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/public_api.ts","../../../packages/core/src/igo2-core.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { uuid } from '@igo2/utils';\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 { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\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","export interface Version {\r\n lib: string;\r\n releaseDate: number;\r\n}\r\n\r\nexport const version: Version = {\r\n lib: '1.13.3',\r\n releaseDate: 1668635669237\r\n};\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { ConfigOptions } from './config.interface';\r\nimport { version } from './version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService {\r\n private config: object = {};\r\n\r\n constructor(private injector: Injector) {}\r\n\r\n /**\r\n * Use to get the data found in config file\r\n */\r\n public getConfig(key: string): any {\r\n return ObjectUtils.resolve(this.config, key);\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) {\r\n const baseConfig = options.default || {};\r\n if (!options.path) {\r\n this.config = baseConfig;\r\n return true;\r\n }\r\n\r\n const http = this.injector.get(HttpClient);\r\n\r\n return new Promise((resolve, _reject) => {\r\n http\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 resolve(true);\r\n });\r\n });\r\n }\r\n}\r\n","import { APP_INITIALIZER, InjectionToken } from '@angular/core';\r\n\r\nimport { ConfigService } from './config.service';\r\nimport { ConfigOptions } from './config.interface';\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { provideConfigOptions, provideConfigLoader } 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 { HttpClient } from '@angular/common/http';\r\n\r\nimport { combineLatest } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { TranslateLoader } from '@ngx-translate/core';\r\n\r\nimport { ObjectUtils } from '@igo2/utils';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\n\r\ndeclare function require(arg: string): any;\r\n\r\nexport class LanguageLoader implements TranslateLoader {\r\n constructor(\r\n private http: HttpClient,\r\n private prefix?: string | string[],\r\n private suffix: string = '.json',\r\n private config?: ConfigService\r\n ) {}\r\n\r\n public getTranslation(lang: string): any {\r\n const igoLocale$ = this.http.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.http.get(`${prefix}${lang}${this.suffix}`)\r\n );\r\n\r\n const locale$ = combineLatest([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 { HttpClient } from '@angular/common/http';\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: HttpClient,\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: [HttpClient]\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: [HttpClient, ConfigService]\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport {\r\n TranslateModule,\r\n MissingTranslationHandler\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { GlobalConfig, ToastrModule } from 'ngx-toastr';\r\n\r\n@NgModule({\r\n imports: [CommonModule,\r\n ToastrModule.forRoot({\r\n positionClass: 'toast-bottom-right',\r\n timeOut: 10000,\r\n extendedTimeOut: 10000,\r\n messageClass: 'toast-message mat-typography',\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 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 { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageService {\r\n private language: string = this.translate.getBrowserLang();\r\n readonly language$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n constructor(public translate: TranslateService) {\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 this.language$.next(this.language);\r\n this.translate.use(this.language);\r\n this.translate.reloadLang(this.language);\r\n }\r\n}\r\n","import { Injectable, Inject, Injector } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { BehaviorSubject, forkJoin } from 'rxjs';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\n\r\nimport { Message, MessageOptions } from './message.interface';\r\nimport { ActiveToast, IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { MessageType } from './message.enum';\r\nimport { LanguageService } from '../../language/shared/language.service';\r\nimport { debounceTime, first } from 'rxjs/operators';\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(amt => amt.id === toast.toastId);\r\n if (activeMessageTranslation) {\r\n const translatedTextInterpolateParams = {...activeMessageTranslation.textInterpolateParams};\r\n const translatedTitleInterpolateParams = {...activeMessageTranslation.titleInterpolateParams};\r\n\r\n if (activeMessageTranslation.textInterpolateParams) {\r\n Object.keys(activeMessageTranslation.textInterpolateParams).map(k => {\r\n translatedTextInterpolateParams[k] =\r\n this.languageService.translate.instant(activeMessageTranslation.textInterpolateParams[k]);\r\n });\r\n }\r\n if (activeMessageTranslation.titleInterpolateParams) {\r\n Object.keys(activeMessageTranslation.titleInterpolateParams).map(k => {\r\n translatedTitleInterpolateParams[k] =\r\n this.languageService.translate.instant(activeMessageTranslation.titleInterpolateParams[k]);\r\n });\r\n }\r\n\r\n\r\n forkJoin([\r\n this.languageService.translate.get(activeMessageTranslation.textKey, translatedTextInterpolateParams),\r\n this.languageService.translate.get(activeMessageTranslation.titleKey, translatedTitleInterpolateParams)\r\n ]).pipe(first()).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 ? message.options.from : new Date('1 jan 1900');\r\n message.options.to = message.options.to ? message.options.to : new Date('1 jan 3000');\r\n if (typeof message.options.from === 'string') {\r\n message.options.from = new Date(Date.parse(message.options.from.replace(/-/g, ' ')));\r\n }\r\n if (typeof message.options.to === 'string') {\r\n message.options.to = new Date(Date.parse(message.options.to.replace(/-/g, ' ')));\r\n }\r\n if (currentDate > message.options.from && currentDate < message.options.to) {\r\n if (message.showIcon === false) {\r\n this.toastr.toastrConfig.iconClasses[messageType] = `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 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 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 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 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 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 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): ActiveToast<any> {\r\n return this.handleNgxToastr('success', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n return this.handleNgxToastr('error', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n return this.handleNgxToastr('info', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n return this.handleNgxToastr('alert', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n return this.handleNgxToastr('show', text, title, options, textInterpolateParams, titleInterpolateParams);\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): ActiveToast<any> {\r\n\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 translatedTextInterpolateParams[k] =\r\n this.languageService.translate.instant(textInterpolateParams[k]);\r\n });\r\n }\r\n if (titleInterpolateParams) {\r\n Object.keys(titleInterpolateParams).map(k => {\r\n translatedTitlenterpolateParams[k] =\r\n this.languageService.translate.instant(titleInterpolateParams[k]);\r\n });\r\n }\r\n\r\n\r\n const message = this.languageService.translate.instant(text, translatedTextInterpolateParams);\r\n const translatedTitle = this.languageService.translate.instant(title, translatedTitlenterpolateParams);\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 return activeToast;\r\n\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 { Injectable, Injector } from '@angular/core';\r\nimport {\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpRequest,\r\n HttpEvent,\r\n HttpErrorResponse\r\n} from '@angular/common/http';\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(\r\n private injector: Injector\r\n ) {}\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 this.handleCaughtError(errorContainer);\r\n this.handleUncaughtError(errorContainer);\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(errorContainer: { httpError: HttpErrorResponse }) {\r\n const httpError = errorContainer.httpError;\r\n if (httpError && httpError.error.toDisplay) {\r\n httpError.error.caught = true;\r\n const messageService = this.injector.get(MessageService);\r\n messageService.error(httpError.error.message, httpError.error.title);\r\n }\r\n }\r\n\r\n private handleUncaughtError(errorContainer: {\r\n httpError: HttpErrorResponse;\r\n }) {\r\n const httpError = errorContainer.httpError;\r\n if (httpError && !httpError.error.caught) {\r\n const messageService = this.injector.get(MessageService);\r\n httpError.error.caught = true;\r\n messageService.error('igo.core.errors.uncaught.message', 'igo.core.errors.uncaught.title');\r\n }\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n Optional,\r\n SkipSelf\r\n} from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\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\nimport { DBConfig, NgxIndexedDBModule } from 'ngx-indexed-db';\r\n\r\nconst dbConfig: DBConfig = {\r\n name: 'igo2DB',\r\n version: 1,\r\n objectStoresMeta: [{\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@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\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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { HammerModule, HAMMER_GESTURE_CONFIG } 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 { Injectable } from '@angular/core';\r\nimport {\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpRequest,\r\n HttpResponse\r\n} from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { tap, finalize } 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 { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\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 { Injectable, Inject, InjectionToken, Optional } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\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\n\r\nimport { 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 public setUser(\r\n user?: {\r\n id: number;\r\n sourceId?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n },\r\n profils?: string[]\r\n ) {\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","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 { Injectable } from '@angular/core';\r\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\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.observe([Breakpoints.HandsetPortrait]).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.observe([Breakpoints.TabletLandscape]).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.observe([Breakpoints.TabletPortrait]).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","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 { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '../config/config.service';\r\nimport { StorageScope, StorageOptions, StorageServiceEvent, StorageServiceEventEnum } from './storage.interface';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n protected options: StorageOptions;\r\n\r\n public storageChange$: BehaviorSubject<StorageServiceEvent> = new BehaviorSubject(undefined);\r\n\r\n constructor(private config: ConfigService) {\r\n this.options = this.config.getConfig('storage') || { key: 'igo' };\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, scope,\r\n event: previousValue !== undefined ? StorageServiceEventEnum.MODIFIED : 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({key, scope, event: StorageServiceEventEnum.REMOVED, previousValue });\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\nimport { Observable, Observer } from 'rxjs';\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 = { length: text64.length,\r\n type: blob.type,\r\n object: compressed };\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 { Injectable, EventEmitter, OnDestroy, Injector } from '@angular/core';\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 { LanguageService } from '../language/shared/language.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 translate = this.injector.get(LanguageService).translate;\r\n const message = translate.instant('igo.core.network.online.message');\r\n const title = translate.instant('igo.core.network.online.title');\r\n const messageObj = this.messageService.info(message, title);\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 translate = this.injector.get(LanguageService).translate;\r\n const message = translate.instant('igo.core.network.offline.message');\r\n const title = translate.instant('igo.core.network.offline.title');\r\n const messageObj = this.messageService.info(message, title);\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","/*\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/language';\r\nexport * from './lib/media';\r\nexport * from './lib/message';\r\nexport * from './lib/request';\r\nexport * from './lib/storage';\r\nexport * from './lib/compression';\r\nexport * from './lib/network';\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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"}
@@ -708,7 +708,12 @@
708
708
  "fontStyle": "Font style",
709
709
  "offsetX": "Horizontal offset",
710
710
  "offsetY": "Vertical offset",
711
- "changeLabel": "Double click on label to change it"
711
+ "changeLabel": "Double click on label to change it",
712
+ "layer": {
713
+ "title": "Layer",
714
+ "createNewLayer": "Create new drawing layer",
715
+ "layerDialogInstruction": "Enter your drawing layer's title"
716
+ }
712
717
  },
713
718
  "network": {
714
719
  "online": {
package/locale/en.json CHANGED
@@ -988,7 +988,12 @@
988
988
  "fontStyle": "Font style",
989
989
  "offsetX": "Horizontal offset",
990
990
  "offsetY": "Vertical offset",
991
- "changeLabel": "Double click on label to change it"
991
+ "changeLabel": "Double click on label to change it",
992
+ "layer": {
993
+ "title": "Layer",
994
+ "createNewLayer": "Create new drawing layer",
995
+ "layerDialogInstruction": "Enter your drawing layer's title"
996
+ }
992
997
  },
993
998
  "network": {
994
999
  "online": {
@@ -708,7 +708,12 @@
708
708
  "fontStyle": "Style de police",
709
709
  "offsetX": "Décalage horizontal",
710
710
  "offsetY": "Décalage vertical",
711
- "changeLabel": "Double-cliquer sur l'étiquette pour la modifier"
711
+ "changeLabel": "Double-cliquer sur l'étiquette pour la modifier",
712
+ "layer": {
713
+ "title": "Couche",
714
+ "createNewLayer": "Créer une nouvelle couche de dessin",
715
+ "layerDialogInstruction": "Veuillez entrer le titre de votre couche de dessin"
716
+ }
712
717
  },
713
718
  "network": {
714
719
  "online": {
package/locale/fr.json CHANGED
@@ -993,7 +993,12 @@
993
993
  "fontStyle": "Style de police",
994
994
  "offsetX": "Décalage horizontal",
995
995
  "offsetY": "Décalage vertical",
996
- "changeLabel": "Double-cliquer sur l'étiquette pour la modifier"
996
+ "changeLabel": "Double-cliquer sur l'étiquette pour la modifier",
997
+ "layer": {
998
+ "title": "Couche",
999
+ "createNewLayer": "Créer une nouvelle couche de dessin",
1000
+ "layerDialogInstruction": "Veuillez entrer le titre de votre couche de dessin"
1001
+ }
997
1002
  },
998
1003
  "network": {
999
1004
  "online": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igo2/core",
3
- "version": "1.13.2",
3
+ "version": "1.13.3",
4
4
  "description": "IGO Library",
5
5
  "author": "IGO Community",
6
6
  "keywords": [
@@ -23,7 +23,7 @@
23
23
  "@angular/cdk": "^14.1.2",
24
24
  "@angular/common": "^14.1.2",
25
25
  "@angular/core": "^14.1.2",
26
- "@igo2/utils": "^1.13.2",
26
+ "@igo2/utils": "^1.13.3",
27
27
  "rxjs": "^7.5.6",
28
28
  "ngx-indexed-db": "^11.0.2",
29
29
  "ngx-toastr": "^15.0.0"