@igo2/core 1.9.3 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__ivy_ngcc__/locale/en.core.json +6 -0
- package/__ivy_ngcc__/locale/en.geo.json +31 -9
- package/__ivy_ngcc__/locale/en.integration.json +6 -4
- package/__ivy_ngcc__/locale/en.json +41 -11
- package/__ivy_ngcc__/locale/fr.core.json +6 -0
- package/__ivy_ngcc__/locale/fr.geo.json +29 -7
- package/__ivy_ngcc__/locale/fr.integration.json +5 -3
- package/__ivy_ngcc__/locale/fr.json +38 -8
- package/bundles/igo2-core.umd.js +138 -141
- package/bundles/igo2-core.umd.js.map +1 -1
- package/esm2015/lib/config/version.js +3 -3
- package/esm2015/lib/message/index.js +1 -2
- package/esm2015/lib/message/message.module.js +38 -9
- package/esm2015/lib/message/shared/index.js +1 -1
- package/esm2015/lib/message/shared/message.enum.js +3 -2
- package/esm2015/lib/message/shared/message.interface.js +1 -1
- package/esm2015/lib/message/shared/message.service.js +55 -72
- package/esm2015/lib/network/network.service.js +11 -3
- package/esm2015/lib/route/route.service.js +19 -4
- package/fesm2015/igo2-core.js +125 -129
- package/fesm2015/igo2-core.js.map +1 -1
- package/lib/message/index.d.ts +0 -1
- package/lib/message/message.module.d.ts +3 -4
- package/lib/message/shared/index.d.ts +1 -1
- package/lib/message/shared/message.enum.d.ts +2 -1
- package/lib/message/shared/message.interface.d.ts +4 -4
- package/lib/message/shared/message.service.d.ts +14 -11
- package/lib/network/network.service.d.ts +1 -0
- package/lib/route/route.service.d.ts +4 -3
- package/locale/en.core.json +6 -0
- package/locale/en.geo.json +31 -9
- package/locale/en.integration.json +6 -4
- package/locale/en.json +41 -11
- package/locale/fr.core.json +6 -0
- package/locale/fr.geo.json +29 -7
- package/locale/fr.integration.json +5 -3
- package/locale/fr.json +38 -8
- package/package.json +4 -4
- package/style/core.theming.scss +3 -1
- package/style/index.theming.scss +228 -36
- package/esm2015/lib/message/message-center/index.js +0 -2
- package/esm2015/lib/message/message-center/message-center.component.js +0 -43
- package/lib/message/message-center/index.d.ts +0 -1
- package/lib/message/message-center/message-center.component.d.ts +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-core.js","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-center/message-center.component.ts","../../../packages/core/src/lib/message/message-center/message-center.component.html","../../../packages/core/src/lib/message/message.module.ts","../../../packages/core/src/lib/language/shared/language.service.ts","../../../packages/core/src/lib/message/shared/message.enum.ts","../../../packages/core/src/lib/message/shared/message.service.ts","../../../packages/core/src/lib/request/error.interceptor.ts","../../../packages/core/src/lib/request/error.module.ts","../../../packages/core/src/lib/core.module.ts","../../../packages/core/src/lib/gesture/gesture.provider.ts","../../../packages/core/src/lib/gesture/gesture.module.ts","../../../packages/core/src/lib/request/logging.interceptor.ts","../../../packages/core/src/lib/request/logging.module.ts","../../../packages/core/src/lib/route/route.service.ts","../../../packages/core/src/lib/analytics/shared/analytics.service.ts","../../../packages/core/src/lib/media/media.enum.ts","../../../packages/core/src/lib/media/media.service.ts","../../../packages/core/src/lib/storage/storage.interface.ts","../../../packages/core/src/lib/storage/storage.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.9.3',\r\n releaseDate: 1634566158790\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 { of, 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 translation = require(`../locale/${lang}.json`);\r\n const igoLocale$ = of(translation);\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 { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'igo-message-center',\r\n templateUrl: './message-center.component.html',\r\n styleUrls: ['./message-center.component.scss']\r\n})\r\nexport class MessageCenterComponent {\r\n static defaultOptions = {\r\n timeOut: 5000,\r\n hasCloseIcon: false,\r\n showProgressBar: true,\r\n pauseOnHover: true,\r\n clickToClose: true,\r\n maxLength: 100,\r\n maxStack: 3,\r\n preventDuplicates: true\r\n };\r\n\r\n @Input()\r\n get options(): any {\r\n return Object.assign(\r\n {},\r\n MessageCenterComponent.defaultOptions,\r\n this._options\r\n );\r\n }\r\n set options(value: any) {\r\n this._options = value;\r\n }\r\n private _options: any = {};\r\n\r\n constructor() {}\r\n}\r\n","<simple-notifications\r\n class=\"mat-typography\"\r\n [ngClass]=\"{closeIcon: options.hasCloseIcon}\"\r\n [options]=\"options\">\r\n</simple-notifications>\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SimpleNotificationsModule } from '@igo2/angular2-notifications';\r\n\r\nimport { MessageCenterComponent } from './message-center/message-center.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, SimpleNotificationsModule.forRoot()],\r\n declarations: [MessageCenterComponent],\r\n exports: [MessageCenterComponent]\r\n})\r\nexport class IgoMessageModule {\r\n static forRoot(): ModuleWithProviders<IgoMessageModule> {\r\n return {\r\n ngModule: IgoMessageModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\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\r\n constructor(public translate: TranslateService) {\r\n const lang = this.getLanguage();\r\n this.translate.setDefaultLang(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.translate.use(this.language);\r\n this.translate.reloadLang(this.language);\r\n }\r\n}\r\n","export enum MessageType {\r\n ERROR = 'error',\r\n ALERT = 'alert',\r\n INFO = 'info',\r\n SUCCESS = 'success'\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {\r\n Notification,\r\n NotificationsService,\r\n NotificationType\r\n} from '@igo2/angular2-notifications';\r\n\r\nimport { ConfigService } from '../../config/config.service';\r\n\r\nimport { Message, MessageOptions } from './message.interface';\r\nimport { MessageType } from './message.enum';\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\r\n constructor(\r\n private notificationService: NotificationsService,\r\n private configService: ConfigService\r\n ) {\r\n this.options = this.configService.getConfig('message') || {};\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 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 (\r\n currentDate > message.options.from && currentDate < message.options.to) {\r\n\r\n message = this.handleTemplate(message);\r\n\r\n let notification: Notification;\r\n if (message.text) {\r\n notification = this.notificationService.create(\r\n message.title,\r\n message.text,\r\n (message.type as any) as NotificationType,\r\n message.options\r\n );\r\n } else if (message.html) {\r\n if (!message.icon) {\r\n message.options.theClass = message.options.theClass\r\n ? message.options.theClass + ' noIcon'\r\n : 'noIcon';\r\n }\r\n\r\n notification = this.notificationService.html(\r\n message.html,\r\n (message.type as any) as NotificationType,\r\n message.options\r\n );\r\n } else {\r\n return;\r\n }\r\n\r\n if (message.icon !== undefined) {\r\n this.addIcon(notification, message.icon);\r\n }\r\n message.options.id = notification.id;\r\n return notification;\r\n }\r\n return;\r\n }\r\n\r\n success(text: string, title?: string, options: any = {}) {\r\n return this.message({\r\n text,\r\n title,\r\n icon: options.icon || 'check',\r\n options,\r\n type: MessageType.SUCCESS\r\n });\r\n }\r\n\r\n error(text: string, title?: string, options: any = {}) {\r\n return this.message({\r\n text,\r\n title,\r\n icon: options.icon || 'error_outline',\r\n options,\r\n type: MessageType.ERROR\r\n });\r\n }\r\n\r\n info(text: string, title?: string, options: any = {}) {\r\n return this.message({\r\n text,\r\n title,\r\n icon: options.icon || 'info_outline',\r\n options,\r\n type: MessageType.INFO\r\n });\r\n }\r\n\r\n alert(text: string, title?: string, options: any = {}) {\r\n return this.message({\r\n text,\r\n title,\r\n icon: options.icon || 'access_alarm',\r\n options,\r\n type: MessageType.ALERT\r\n });\r\n }\r\n\r\n remove(id?: string) {\r\n this.notificationService.remove(id);\r\n }\r\n\r\n removeAllAreNotError() {\r\n for (const mess of this.messages$.value) {\r\n if (mess.type !== 'error') {\r\n this.remove(mess.options.id);\r\n }\r\n }\r\n }\r\n\r\n private addIcon(notification: Notification, icon: string) {\r\n // There is no way to add an icon to a notification when reating\r\n // it so we simply set it on the notification directly.\r\n // See https://github.com/flauc/angular2-notifications/issues/165\r\n notification.icon = `\r\n <mat-icon class=\"material-icons mat-icon mat-list-avatar\" svgIcon=\"${icon}\">\r\n </mat-icon>`;\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 html = html.replace('${icon}', message.icon);\r\n\r\n message.html = html;\r\n message.text = undefined;\r\n message.title = undefined;\r\n message.icon = 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\nimport { LanguageService } from '../language/shared/language.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private messageService: MessageService,\r\n private injector: Injector\r\n ) {}\r\n\r\n intercept(\r\n req: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\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 this.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 translate = this.injector.get(LanguageService).translate;\r\n const message = translate.instant('igo.core.errors.uncaught.message');\r\n const title = translate.instant('igo.core.errors.uncaught.title');\r\n httpError.error.caught = true;\r\n this.messageService.error(message, 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\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 ],\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 } 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 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 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, 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\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 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 this.messageService.info(message, title);\r\n this.state.connection = true;\r\n this.emitEvent();\r\n });\r\n\r\n this.offlineSubscription = fromEvent(window, 'offline').subscribe(() => {\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 this.messageService.info(message, title);\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/network';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igo2-core.js","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/language/shared/language.service.ts","../../../packages/core/src/lib/message/shared/message.enum.ts","../../../packages/core/src/lib/message/shared/message.service.ts","../../../packages/core/src/lib/request/error.interceptor.ts","../../../packages/core/src/lib/request/error.module.ts","../../../packages/core/src/lib/core.module.ts","../../../packages/core/src/lib/gesture/gesture.provider.ts","../../../packages/core/src/lib/gesture/gesture.module.ts","../../../packages/core/src/lib/request/logging.interceptor.ts","../../../packages/core/src/lib/request/logging.module.ts","../../../packages/core/src/lib/route/route.service.ts","../../../packages/core/src/lib/analytics/shared/analytics.service.ts","../../../packages/core/src/lib/media/media.enum.ts","../../../packages/core/src/lib/media/media.service.ts","../../../packages/core/src/lib/storage/storage.interface.ts","../../../packages/core/src/lib/storage/storage.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.11.0',\r\n releaseDate: 1648648424505\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 { of, 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 translation = require(`../locale/${lang}.json`);\r\n const igoLocale$ = of(translation);\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","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\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\r\n constructor(public translate: TranslateService) {\r\n const lang = this.getLanguage();\r\n this.translate.setDefaultLang(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.translate.use(this.language);\r\n this.translate.reloadLang(this.language);\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}\r\n","import { Injectable, Inject, Injector } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { BehaviorSubject } 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\n\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\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 }\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 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 (\r\n currentDate > message.options.from && currentDate < message.options.to) {\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(message.text, message.title, message.options);\r\n break;\r\n case MessageType.ERROR:\r\n messageShown = this.error(message.text, message.title, message.options);\r\n break;\r\n case MessageType.INFO:\r\n messageShown = this.info(message.text, message.title, message.options);\r\n break;\r\n case MessageType.ALERT:\r\n case MessageType.WARNING:\r\n messageShown = this.alert(message.text, message.title, message.options);\r\n break;\r\n default:\r\n messageShown = this.info(message.text, message.title, message.options);\r\n break;\r\n }\r\n message.options.id = messageShown.toastId;\r\n }\r\n }\r\n }\r\n\r\n success(text: string, title: string = 'igo.core.message.success', options: Partial<IndividualConfig> = {}): ActiveToast<any> {\r\n const message = this.languageService.translate.instant(text);\r\n const translatedTitle = this.languageService.translate.instant(title);\r\n return this.toastr.success(message, translatedTitle, options);\r\n }\r\n\r\n error(text: string, title: string = 'igo.core.message.error', options: Partial<IndividualConfig> = {}): ActiveToast<any> {\r\n const message = this.languageService.translate.instant(text);\r\n const translatedTitle = this.languageService.translate.instant(title);\r\n return this.toastr.error(message, translatedTitle, options);\r\n }\r\n\r\n info(text: string, title: string = 'igo.core.message.info', options: Partial<IndividualConfig> = {}): ActiveToast<any> {\r\n const message = this.languageService.translate.instant(text);\r\n const translatedTitle = this.languageService.translate.instant(title);\r\n return this.toastr.info(message, translatedTitle, options);\r\n }\r\n\r\n alert(text: string, title: string = 'igo.core.message.alert', options: Partial<IndividualConfig> = {}): ActiveToast<any> {\r\n const message = this.languageService.translate.instant(text);\r\n const translatedTitle = this.languageService.translate.instant(title);\r\n return this.toastr.warning(message, translatedTitle, options);\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\nimport { LanguageService } from '../language/shared/language.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private messageService: MessageService,\r\n private injector: Injector\r\n ) {}\r\n\r\n intercept(\r\n req: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\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 this.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 translate = this.injector.get(LanguageService).translate;\r\n const message = translate.instant('igo.core.errors.uncaught.message');\r\n const title = translate.instant('igo.core.errors.uncaught.title');\r\n httpError.error.caught = true;\r\n this.messageService.error(message, 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\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 ],\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', '¢er');\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, 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/network';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/lib/message/index.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "
|
|
4
|
-
import * as i2 from "
|
|
5
|
-
import * as i3 from "@igo2/angular2-notifications";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "ngx-toastr";
|
|
6
5
|
export declare class IgoMessageModule {
|
|
7
6
|
static forRoot(): ModuleWithProviders<IgoMessageModule>;
|
|
8
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<IgoMessageModule, never>;
|
|
9
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<IgoMessageModule,
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<IgoMessageModule, never, [typeof i1.CommonModule, typeof i2.ToastrModule], never>;
|
|
10
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<IgoMessageModule>;
|
|
11
10
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { TemplateRef } from '@angular/core';
|
|
2
2
|
import { MessageType } from './message.enum';
|
|
3
|
-
import {
|
|
3
|
+
import { IndividualConfig } from 'ngx-toastr';
|
|
4
4
|
export interface Message {
|
|
5
5
|
title?: string;
|
|
6
6
|
text?: string;
|
|
7
7
|
html?: string | TemplateRef<any>;
|
|
8
|
-
icon?: string;
|
|
9
8
|
type?: MessageType;
|
|
10
9
|
options?: MessageOptions;
|
|
11
10
|
format?: 'text' | 'html';
|
|
12
11
|
}
|
|
13
|
-
export interface MessageOptions extends
|
|
12
|
+
export interface MessageOptions extends IndividualConfig {
|
|
14
13
|
template?: string;
|
|
15
14
|
from?: Date | string;
|
|
16
15
|
to?: Date | string;
|
|
17
|
-
id?:
|
|
16
|
+
id?: number;
|
|
17
|
+
showOnEachLayerVisibility?: boolean;
|
|
18
18
|
}
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
+
import { Injector } from '@angular/core';
|
|
1
2
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
2
3
|
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { Notification, NotificationsService } from '@igo2/angular2-notifications';
|
|
4
4
|
import { ConfigService } from '../../config/config.service';
|
|
5
5
|
import { Message } from './message.interface';
|
|
6
|
+
import { ActiveToast, IndividualConfig } from 'ngx-toastr';
|
|
7
|
+
import { LanguageService } from '../../language/shared/language.service';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
9
|
export declare class MessageService {
|
|
8
|
-
private
|
|
10
|
+
private injector;
|
|
9
11
|
private configService;
|
|
12
|
+
private languageService;
|
|
10
13
|
messages$: BehaviorSubject<Message[]>;
|
|
11
14
|
private options;
|
|
12
|
-
constructor(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
constructor(injector: Injector, configService: ConfigService, languageService: LanguageService);
|
|
16
|
+
private get toastr();
|
|
17
|
+
showError(httpError: HttpErrorResponse): ActiveToast<any>;
|
|
18
|
+
message(message: Message): void;
|
|
19
|
+
success(text: string, title?: string, options?: Partial<IndividualConfig>): ActiveToast<any>;
|
|
20
|
+
error(text: string, title?: string, options?: Partial<IndividualConfig>): ActiveToast<any>;
|
|
21
|
+
info(text: string, title?: string, options?: Partial<IndividualConfig>): ActiveToast<any>;
|
|
22
|
+
alert(text: string, title?: string, options?: Partial<IndividualConfig>): ActiveToast<any>;
|
|
23
|
+
remove(id?: number): void;
|
|
20
24
|
removeAllAreNotError(): void;
|
|
21
|
-
private addIcon;
|
|
22
25
|
private handleTemplate;
|
|
23
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageService, never>;
|
|
24
27
|
static ɵprov: i0.ɵɵInjectableDeclaration<MessageService>;
|
|
@@ -9,6 +9,7 @@ export declare class NetworkService implements OnDestroy {
|
|
|
9
9
|
private stateChangeEventEmitter;
|
|
10
10
|
private onlineSubscription;
|
|
11
11
|
private offlineSubscription;
|
|
12
|
+
private previousMessageId;
|
|
12
13
|
private state;
|
|
13
14
|
constructor(messageService: MessageService, injector: Injector);
|
|
14
15
|
private checkNetworkState;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute, Params } from '@angular/router';
|
|
2
|
+
import { ActivatedRoute, Params, Router } from '@angular/router';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { RouteServiceOptions } from './route.interface';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -9,10 +9,11 @@ export declare function provideRouteServiceOptions(options: RouteServiceOptions)
|
|
|
9
9
|
useValue: RouteServiceOptions;
|
|
10
10
|
};
|
|
11
11
|
export declare class RouteService {
|
|
12
|
+
private router;
|
|
12
13
|
route: ActivatedRoute;
|
|
13
14
|
options: RouteServiceOptions;
|
|
14
|
-
constructor(route: ActivatedRoute, options: RouteServiceOptions);
|
|
15
|
+
constructor(router: Router, route: ActivatedRoute, options: RouteServiceOptions);
|
|
15
16
|
get queryParams(): Observable<Params>;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RouteService, [null, { optional: true; }]>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RouteService, [null, null, { optional: true; }]>;
|
|
17
18
|
static ɵprov: i0.ɵɵInjectableDeclaration<RouteService>;
|
|
18
19
|
}
|
package/locale/en.core.json
CHANGED
package/locale/en.geo.json
CHANGED
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
"title": "Nothing to import"
|
|
50
50
|
},
|
|
51
51
|
"success": {
|
|
52
|
-
"text": "
|
|
53
|
-
"title": "
|
|
52
|
+
"text": "The layer '{{value}}' was added to the map",
|
|
53
|
+
"title": "Imported file"
|
|
54
54
|
},
|
|
55
55
|
"unreadable": {
|
|
56
|
-
"text": "
|
|
57
|
-
"title": "
|
|
56
|
+
"text": "The file '{{value}}' is unreadable",
|
|
57
|
+
"title": "Unreadable file"
|
|
58
58
|
},
|
|
59
59
|
"tooLarge": {
|
|
60
60
|
"text": "The file '{{value}}' is too large (Max: {{size}} MB)",
|
|
@@ -113,16 +113,18 @@
|
|
|
113
113
|
"encoding": {
|
|
114
114
|
"LATIN1": "LATIN-1",
|
|
115
115
|
"UTF8": "UTF-8"
|
|
116
|
-
}
|
|
116
|
+
},
|
|
117
|
+
"combinedLayers": "combinedLayers"
|
|
117
118
|
},
|
|
118
119
|
"importExportForm": {
|
|
119
120
|
"exportButton": "Export",
|
|
120
121
|
"exportButtonLink": "Open the link",
|
|
121
122
|
"exportButtonLinks": "Open the links",
|
|
122
|
-
"
|
|
123
|
+
"exportCombineResults": "Combine layers into one file",
|
|
123
124
|
"exportFormatPlaceholder": "Format",
|
|
124
125
|
"exportLayerPlaceholder": "Layer",
|
|
125
126
|
"exportFileNamePlaceholder": "Filename",
|
|
127
|
+
"exportSeparator": "Insert separator (empty row) between layers",
|
|
126
128
|
"encodingPlaceholder": "Encoding",
|
|
127
129
|
"exportTabTitle": "Export",
|
|
128
130
|
"exportFeatureInExtent": "Export only features in map extent",
|
|
@@ -186,7 +188,7 @@
|
|
|
186
188
|
"selectField": "Choose a field"
|
|
187
189
|
},
|
|
188
190
|
"filter": {
|
|
189
|
-
"resetFilters": "
|
|
191
|
+
"resetFilters": "Reset default values",
|
|
190
192
|
"addFilter": "Add an empty filter to the current list",
|
|
191
193
|
"removeFilter": "Remove the current filter from the filters's list",
|
|
192
194
|
"toggleFilterState": "Enable/disable the current filter",
|
|
@@ -263,6 +265,7 @@
|
|
|
263
265
|
"mapButtons": {
|
|
264
266
|
"baselayerSwitcher": "Change base layer",
|
|
265
267
|
"geolocate": "Geolocate",
|
|
268
|
+
"home-extent": "Go to the home map extent",
|
|
266
269
|
"offline": "Offline mode",
|
|
267
270
|
"online": "Online mode",
|
|
268
271
|
"zoomIn": "Zoom in ({{zoom}})",
|
|
@@ -382,8 +385,8 @@
|
|
|
382
385
|
"notification": "notification ...",
|
|
383
386
|
"uturnText": "Make u-turn and head {{translatedDirection}} on {{route}}",
|
|
384
387
|
"unknown": "???",
|
|
385
|
-
|
|
386
|
-
"cntSuffix": {
|
|
388
|
+
|
|
389
|
+
"cntSuffix": {
|
|
387
390
|
"first": "st",
|
|
388
391
|
"secondAndMore": "rd"
|
|
389
392
|
},
|
|
@@ -545,6 +548,8 @@
|
|
|
545
548
|
"Address": "Addresses",
|
|
546
549
|
"Thematics": "Thematics",
|
|
547
550
|
"searchResults": "Search Results",
|
|
551
|
+
"showSearchResults": "Show search results",
|
|
552
|
+
"hideSearchResults": "Hide search results",
|
|
548
553
|
"type": "Type",
|
|
549
554
|
"radius": "Radius",
|
|
550
555
|
"radiusAlert": "Radius must be between 0 and 100 kilometers (or 100 000 meters)",
|
|
@@ -697,8 +702,25 @@
|
|
|
697
702
|
}
|
|
698
703
|
},
|
|
699
704
|
"workspace": {
|
|
705
|
+
"deleteConfirmation": "Do you really want to delete this entity?",
|
|
706
|
+
"addConfirmation": "Do you really wish to add an entity?",
|
|
707
|
+
"modifyConfirmation": "Do you really wish to modify this entity?",
|
|
708
|
+
"deleteSuccess": "Entity has been deleted.",
|
|
709
|
+
"addSuccess": "Entity has been added.",
|
|
710
|
+
"modifySuccess": "Entity has been modified.",
|
|
711
|
+
"deleteError": "An error has occured. Entity could not be deleted.",
|
|
712
|
+
"addError": "An error has occured. Entity could not be added.",
|
|
713
|
+
"modifyError": "An error has occured. Entity could not be modified.",
|
|
714
|
+
"cancel": "Cancel",
|
|
700
715
|
"inMapExtent.active.tooltip": "Ne montrer que les entités contenues dans la carte",
|
|
701
716
|
"inMapExtent.inactive.tooltip": "Montrer tous les entités"
|
|
717
|
+
},
|
|
718
|
+
"formValidation": {
|
|
719
|
+
"mandatory": "{{column}} is mandatory",
|
|
720
|
+
"minValue": "{{column}} is smaller than {{value}}",
|
|
721
|
+
"maxValue": "{{column}} is bigger than {{value}}",
|
|
722
|
+
"minLength": "{{column}} is shorter than {{value}} characters",
|
|
723
|
+
"maxLength": "{{column}} is longer than {{value}} characters"
|
|
702
724
|
}
|
|
703
725
|
}
|
|
704
726
|
}
|