@igo2/core 1.12.0 → 1.13.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/__ivy_ngcc__/locale/fr.integration.json +2 -2
  2. package/__ivy_ngcc__/locale/fr.json +2 -2
  3. package/assets/icons/mdi.svg +1 -1
  4. package/{esm2015/igo2-core.js → esm2020/igo2-core.mjs} +0 -0
  5. package/{esm2015/lib/activity/activity.interceptor.js → esm2020/lib/activity/activity.interceptor.mjs} +0 -0
  6. package/{esm2015/lib/activity/activity.module.js → esm2020/lib/activity/activity.module.mjs} +2 -2
  7. package/{esm2015/lib/activity/activity.service.js → esm2020/lib/activity/activity.service.mjs} +0 -0
  8. package/{esm2015/lib/activity/index.js → esm2020/lib/activity/index.mjs} +0 -0
  9. package/{esm2015/lib/analytics/index.js → esm2020/lib/analytics/index.mjs} +0 -0
  10. package/{esm2015/lib/analytics/shared/analytics.interface.js → esm2020/lib/analytics/shared/analytics.interface.mjs} +0 -0
  11. package/{esm2015/lib/analytics/shared/analytics.service.js → esm2020/lib/analytics/shared/analytics.service.mjs} +0 -0
  12. package/{esm2015/lib/analytics/shared/index.js → esm2020/lib/analytics/shared/index.mjs} +0 -0
  13. package/{esm2015/lib/compression/compressedData.interface.js → esm2020/lib/compression/compressedData.interface.mjs} +0 -0
  14. package/{esm2015/lib/compression/compression.service.js → esm2020/lib/compression/compression.service.mjs} +0 -0
  15. package/{esm2015/lib/compression/index.js → esm2020/lib/compression/index.mjs} +0 -0
  16. package/{esm2015/lib/config/config.interface.js → esm2020/lib/config/config.interface.mjs} +0 -0
  17. package/{esm2015/lib/config/config.module.js → esm2020/lib/config/config.module.mjs} +2 -2
  18. package/{esm2015/lib/config/config.provider.js → esm2020/lib/config/config.provider.mjs} +0 -0
  19. package/{esm2015/lib/config/config.service.js → esm2020/lib/config/config.service.mjs} +0 -0
  20. package/{esm2015/lib/config/index.js → esm2020/lib/config/index.mjs} +0 -0
  21. package/esm2020/lib/config/version.mjs +5 -0
  22. package/{esm2015/lib/core.module.js → esm2020/lib/core.module.mjs} +9 -11
  23. package/{esm2015/lib/gesture/gesture.module.js → esm2020/lib/gesture/gesture.module.mjs} +2 -2
  24. package/{esm2015/lib/gesture/gesture.provider.js → esm2020/lib/gesture/gesture.provider.mjs} +0 -0
  25. package/{esm2015/lib/language/index.js → esm2020/lib/language/index.mjs} +0 -0
  26. package/{esm2015/lib/language/language.module.js → esm2020/lib/language/language.module.mjs} +7 -9
  27. package/{esm2015/lib/language/shared/index.js → esm2020/lib/language/shared/index.mjs} +0 -0
  28. package/{esm2015/lib/language/shared/language.interface.js → esm2020/lib/language/shared/language.interface.mjs} +0 -0
  29. package/esm2020/lib/language/shared/language.loader.mjs +27 -0
  30. package/{esm2015/lib/language/shared/language.provider.js → esm2020/lib/language/shared/language.provider.mjs} +0 -0
  31. package/{esm2015/lib/language/shared/language.service.js → esm2020/lib/language/shared/language.service.mjs} +0 -0
  32. package/{esm2015/lib/language/shared/missing-translation.guard.js → esm2020/lib/language/shared/missing-translation.guard.mjs} +0 -0
  33. package/{esm2015/lib/media/index.js → esm2020/lib/media/index.mjs} +0 -0
  34. package/{esm2015/lib/media/media.enum.js → esm2020/lib/media/media.enum.mjs} +0 -0
  35. package/{esm2015/lib/media/media.service.js → esm2020/lib/media/media.service.mjs} +0 -0
  36. package/{esm2015/lib/message/index.js → esm2020/lib/message/index.mjs} +0 -0
  37. package/esm2020/lib/message/message.module.mjs +56 -0
  38. package/{esm2015/lib/message/shared/index.js → esm2020/lib/message/shared/index.mjs} +0 -0
  39. package/{esm2015/lib/message/shared/message.enum.js → esm2020/lib/message/shared/message.enum.mjs} +0 -0
  40. package/{esm2015/lib/message/shared/message.interface.js → esm2020/lib/message/shared/message.interface.mjs} +0 -0
  41. package/{esm2015/lib/message/shared/message.service.js → esm2020/lib/message/shared/message.service.mjs} +0 -0
  42. package/{esm2015/lib/network/index.js → esm2020/lib/network/index.mjs} +0 -0
  43. package/{esm2015/lib/network/network.interfaces.js → esm2020/lib/network/network.interfaces.mjs} +0 -0
  44. package/{esm2015/lib/network/network.service.js → esm2020/lib/network/network.service.mjs} +0 -0
  45. package/esm2020/lib/request/error.interceptor.mjs +59 -0
  46. package/{esm2015/lib/request/error.module.js → esm2020/lib/request/error.module.mjs} +2 -2
  47. package/{esm2015/lib/request/index.js → esm2020/lib/request/index.mjs} +0 -0
  48. package/{esm2015/lib/request/logging.interceptor.js → esm2020/lib/request/logging.interceptor.mjs} +0 -0
  49. package/{esm2015/lib/request/logging.module.js → esm2020/lib/request/logging.module.mjs} +2 -2
  50. package/{esm2015/lib/route/route.interface.js → esm2020/lib/route/route.interface.mjs} +0 -0
  51. package/{esm2015/lib/route/route.service.js → esm2020/lib/route/route.service.mjs} +0 -0
  52. package/{esm2015/lib/storage/index.js → esm2020/lib/storage/index.mjs} +0 -0
  53. package/{esm2015/lib/storage/storage.interface.js → esm2020/lib/storage/storage.interface.mjs} +0 -0
  54. package/{esm2015/lib/storage/storage.service.js → esm2020/lib/storage/storage.service.mjs} +2 -2
  55. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  56. package/fesm2015/igo2-core.mjs +1286 -0
  57. package/fesm2015/igo2-core.mjs.map +1 -0
  58. package/{fesm2015/igo2-core.js → fesm2020/igo2-core.mjs} +57 -64
  59. package/fesm2020/igo2-core.mjs.map +1 -0
  60. package/{igo2-core.d.ts → index.d.ts} +0 -0
  61. package/lib/request/error.interceptor.d.ts +1 -3
  62. package/locale/fr.integration.json +2 -2
  63. package/locale/fr.json +2 -2
  64. package/package.json +24 -11
  65. package/style/index.theming.scss +76 -41
  66. package/style/setup.scss +1 -1
  67. package/style/themes/qcca.theme.scss +65 -33
  68. package/bundles/igo2-core.umd.js +0 -1760
  69. package/bundles/igo2-core.umd.js.map +0 -1
  70. package/esm2015/lib/config/version.js +0 -5
  71. package/esm2015/lib/language/shared/language.loader.js +0 -28
  72. package/esm2015/lib/message/message.module.js +0 -56
  73. package/esm2015/lib/request/error.interceptor.js +0 -62
  74. package/fesm2015/igo2-core.js.map +0 -1
@@ -0,0 +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.0-alpha.1',\r\n releaseDate: 1658264998391\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}\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","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\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 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 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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"}
File without changes
@@ -1,12 +1,10 @@
1
1
  import { Injector } from '@angular/core';
2
2
  import { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent } from '@angular/common/http';
3
3
  import { Observable } from 'rxjs';
4
- import { MessageService } from '../message/shared/message.service';
5
4
  import * as i0 from "@angular/core";
6
5
  export declare class ErrorInterceptor implements HttpInterceptor {
7
- private messageService;
8
6
  private injector;
9
- constructor(messageService: MessageService, injector: Injector);
7
+ constructor(injector: Injector);
10
8
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
11
9
  private handleError;
12
10
  private handleCaughtError;
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "mapTool": {
38
38
  "empty": "La carte ne contient aucune couche de données.",
39
- "customize": "Personnalisez- en ajoutant des couches à partir des outils suivants : ",
39
+ "customize": "Personnalisez-la en ajoutant des couches à partir des outils suivants : ",
40
40
  "search-tool": "Recherche",
41
41
  "catalog-tool": "Catalogue de données",
42
42
  "context-tool": "Gestionnaire de contextes",
@@ -96,7 +96,7 @@
96
96
  "swipe-select": "Choisir les couches à comparer",
97
97
  "selectAll": "Tout sélectionner",
98
98
  "empty": "La carte ne contient aucune couche de données.",
99
- "customize": "Personnalisez- en ajoutant des couches à partir des outils suivants : ",
99
+ "customize": "Personnalisez-la en ajoutant des couches à partir des outils suivants : ",
100
100
  "search-tool": "Recherche",
101
101
  "catalog-tool": "Catalogue de données",
102
102
  "context-tool": "Gestionnaire de contextes",
package/locale/fr.json CHANGED
@@ -1053,7 +1053,7 @@
1053
1053
  },
1054
1054
  "mapTool": {
1055
1055
  "empty": "La carte ne contient aucune couche de données.",
1056
- "customize": "Personnalisez- en ajoutant des couches à partir des outils suivants : ",
1056
+ "customize": "Personnalisez-la en ajoutant des couches à partir des outils suivants : ",
1057
1057
  "search-tool": "Recherche",
1058
1058
  "catalog-tool": "Catalogue de données",
1059
1059
  "context-tool": "Gestionnaire de contextes",
@@ -1113,7 +1113,7 @@
1113
1113
  "swipe-select": "Choisir les couches à comparer",
1114
1114
  "selectAll": "Tout sélectionner",
1115
1115
  "empty": "La carte ne contient aucune couche de données.",
1116
- "customize": "Personnalisez- en ajoutant des couches à partir des outils suivants : ",
1116
+ "customize": "Personnalisez-la en ajoutant des couches à partir des outils suivants : ",
1117
1117
  "search-tool": "Recherche",
1118
1118
  "catalog-tool": "Catalogue de données",
1119
1119
  "context-tool": "Gestionnaire de contextes",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igo2/core",
3
- "version": "1.12.0",
3
+ "version": "1.13.0-alpha.1",
4
4
  "description": "IGO Library",
5
5
  "author": "MSP",
6
6
  "keywords": [
@@ -20,20 +20,33 @@
20
20
  "tslib": "^2.0.0"
21
21
  },
22
22
  "peerDependencies": {
23
- "@angular/cdk": "^12.2.9",
24
- "@angular/common": "^12.2.9",
25
- "@angular/core": "^12.2.9",
26
- "@igo2/utils": "^1.12.0",
23
+ "@angular/cdk": "^13.1.1",
24
+ "@angular/common": "^13.3.11",
25
+ "@angular/core": "^13.3.11",
26
+ "@igo2/utils": "^1.13.0-alpha.1",
27
27
  "rxjs": "^6.6.7",
28
28
  "ngx-indexed-db": "^11.0.2",
29
29
  "ngx-toastr": "^14.1.3"
30
30
  },
31
- "main": "bundles/igo2-core.umd.js",
32
- "module": "fesm2015/igo2-core.js",
33
- "es2015": "fesm2015/igo2-core.js",
34
- "esm2015": "esm2015/igo2-core.js",
35
- "fesm2015": "fesm2015/igo2-core.js",
36
- "typings": "igo2-core.d.ts",
31
+ "module": "fesm2015/igo2-core.mjs",
32
+ "es2020": "fesm2020/igo2-core.mjs",
33
+ "esm2020": "esm2020/igo2-core.mjs",
34
+ "fesm2020": "fesm2020/igo2-core.mjs",
35
+ "fesm2015": "fesm2015/igo2-core.mjs",
36
+ "typings": "index.d.ts",
37
+ "exports": {
38
+ "./package.json": {
39
+ "default": "./package.json"
40
+ },
41
+ ".": {
42
+ "types": "./index.d.ts",
43
+ "esm2020": "./esm2020/igo2-core.mjs",
44
+ "es2020": "./fesm2020/igo2-core.mjs",
45
+ "es2015": "./fesm2015/igo2-core.mjs",
46
+ "node": "./fesm2015/igo2-core.mjs",
47
+ "default": "./fesm2020/igo2-core.mjs"
48
+ }
49
+ },
37
50
  "sideEffects": false,
38
51
  "scripts": {
39
52
 
@@ -1,4 +1,4 @@
1
- @use '~@angular/material/_index.scss' as mat;
1
+ @use './node_modules/@angular/material/_index.scss' as mat;
2
2
  @mixin igo-all-theming($theme, $typography: $igo-typography) {
3
3
  @include igo-theming($theme, $typography);
4
4
  @include igo-common-theming($theme, $typography);
@@ -287,13 +287,13 @@ button.toast-close-button {
287
287
 
288
288
  .shepherd-button{background:#3288e6;border:0;border-radius:3px;color:hsla(0,0%,100%,.75);cursor:pointer;margin-right:.5rem;padding:.5rem 1.5rem;transition:all .5s ease}.shepherd-button:not(:disabled):hover{background:#196fcc;color:hsla(0,0%,100%,.75)}.shepherd-button.shepherd-button-secondary{background:#f1f2f3;color:rgba(0,0,0,.75)}.shepherd-button.shepherd-button-secondary:not(:disabled):hover{background:#d6d9db;color:rgba(0,0,0,.75)}.shepherd-button:disabled{cursor:not-allowed}
289
289
  .shepherd-footer{border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:flex;justify-content:flex-end;padding:0 .75rem .75rem}.shepherd-footer .shepherd-button:last-child{margin-right:0}
290
- .shepherd-cancel-icon{background:transparent;border:none;color:hsla(0,0%,50.2%,.75);font-size:2em;cursor:pointer;font-weight:400;margin:0;padding:0;transition:color .5s ease}.shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon{color:hsla(0,0%,50.2%,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}
291
- .shepherd-title{color:rgba(0,0,0,.75);display:flex;font-size:1rem;font-weight:400;flex:1 0 auto;margin:0;padding:0}
290
+ .shepherd-cancel-icon{background:transparent;border:none;color:hsla(0,0%,50%,.75);cursor:pointer;font-size:2em;font-weight:400;margin:0;padding:0;transition:color .5s ease}.shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon{color:hsla(0,0%,50%,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}
291
+ .shepherd-title{color:rgba(0,0,0,.75);display:flex;flex:1 0 auto;font-size:1rem;font-weight:400;margin:0;padding:0}
292
292
  .shepherd-header{align-items:center;border-top-left-radius:5px;border-top-right-radius:5px;display:flex;justify-content:flex-end;line-height:2em;padding:.75rem .75rem 0}.shepherd-has-title .shepherd-content .shepherd-header{background:#e6e6e6;padding:1em}
293
293
  .shepherd-text{color:rgba(0,0,0,.75);font-size:1rem;line-height:1.3em;padding:.75em}.shepherd-text p{margin-top:0}.shepherd-text p:last-child{margin-bottom:0}
294
294
  .shepherd-content{border-radius:5px;outline:none;padding:0}
295
- .shepherd-element{background:#fff;border-radius:5px;box-shadow:0 1px 4px rgba(0,0,0,.2);max-width:400px;opacity:0;outline:none;transition:opacity .3s,visibility .3s;visibility:hidden;width:100%;z-index:9999}.shepherd-enabled.shepherd-element{opacity:1;visibility:visible}.shepherd-element[data-popper-reference-hidden]:not(.shepherd-centered){opacity:0;pointer-events:none;visibility:hidden}.shepherd-element,.shepherd-element *,.shepherd-element :after,.shepherd-element :before{box-sizing:border-box}.shepherd-arrow,.shepherd-arrow:before{position:absolute;width:16px;height:16px;z-index:-1}.shepherd-arrow:before{content:"";transform:rotate(45deg);background:#fff}.shepherd-element[data-popper-placement^=top]>.shepherd-arrow{bottom:-8px}.shepherd-element[data-popper-placement^=bottom]>.shepherd-arrow{top:-8px}.shepherd-element[data-popper-placement^=left]>.shepherd-arrow{right:-8px}.shepherd-element[data-popper-placement^=right]>.shepherd-arrow{left:-8px}.shepherd-element.shepherd-centered>.shepherd-arrow{opacity:0}.shepherd-element.shepherd-has-title[data-popper-placement^=bottom]>.shepherd-arrow:before{background-color:#e6e6e6}.shepherd-target-click-disabled.shepherd-enabled.shepherd-target,.shepherd-target-click-disabled.shepherd-enabled.shepherd-target *{pointer-events:none}
296
- .shepherd-modal-overlay-container{height:0;left:0;opacity:0;overflow:hidden;pointer-events:none;position:fixed;top:0;transition:all .3s ease-out,height 0ms .3s,opacity .3s 0ms;width:100vw;z-index:9997}.shepherd-modal-overlay-container.shepherd-modal-is-visible{height:100vh;opacity:.5;transition:all .3s ease-out,height 0s 0s,opacity .3s 0s}.shepherd-modal-overlay-container.shepherd-modal-is-visible path{pointer-events:all}
295
+ .shepherd-element{background:#fff;border-radius:5px;box-shadow:0 1px 4px rgba(0,0,0,.2);max-width:400px;opacity:0;outline:none;transition:opacity .3s,visibility .3s;visibility:hidden;width:100%;z-index:9999}.shepherd-enabled.shepherd-element{opacity:1;visibility:visible}.shepherd-element[data-popper-reference-hidden]:not(.shepherd-centered){opacity:0;pointer-events:none;visibility:hidden}.shepherd-element,.shepherd-element *,.shepherd-element :after,.shepherd-element :before{box-sizing:border-box}.shepherd-arrow,.shepherd-arrow:before{height:16px;position:absolute;width:16px;z-index:-1}.shepherd-arrow:before{background:#fff;content:"";transform:rotate(45deg)}.shepherd-element[data-popper-placement^=top]>.shepherd-arrow{bottom:-8px}.shepherd-element[data-popper-placement^=bottom]>.shepherd-arrow{top:-8px}.shepherd-element[data-popper-placement^=left]>.shepherd-arrow{right:-8px}.shepherd-element[data-popper-placement^=right]>.shepherd-arrow{left:-8px}.shepherd-element.shepherd-centered>.shepherd-arrow{opacity:0}.shepherd-element.shepherd-has-title[data-popper-placement^=bottom]>.shepherd-arrow:before{background-color:#e6e6e6}.shepherd-target-click-disabled.shepherd-enabled.shepherd-target,.shepherd-target-click-disabled.shepherd-enabled.shepherd-target *{pointer-events:none}
296
+ .shepherd-modal-overlay-container{height:0;left:0;opacity:0;overflow:hidden;pointer-events:none;position:fixed;top:0;transition:all .3s ease-out,height 0ms .3s,opacity .3s 0ms;width:100vw;z-index:9997}.shepherd-modal-overlay-container.shepherd-modal-is-visible{height:100vh;opacity:.5;transform:translateZ(0);transition:all .3s ease-out,height 0s 0s,opacity .3s 0s}.shepherd-modal-overlay-container.shepherd-modal-is-visible path{pointer-events:all}
297
297
 
298
298
  @mixin igo-common-theming($theme, $typography) {
299
299
  @include igo-action-theming($theme);
@@ -583,13 +583,13 @@ button.toast-close-button {
583
583
  height: 15px;
584
584
  background-color: #000000;
585
585
  float: right;
586
- z-Index: 10;
586
+ z-index: 10;
587
587
  }
588
588
  .ol-scale-step-text {
589
589
  position: absolute;
590
590
  bottom: -5px;
591
591
  font-size: 12px;
592
- z-Index: 11;
592
+ z-index: 11;
593
593
  color: #000000;
594
594
  text-shadow: -2px 0 #FFFFFF, 0 2px #FFFFFF, 2px 0 #FFFFFF, 0 -2px #FFFFFF;
595
595
  }
@@ -604,7 +604,7 @@ button.toast-close-button {
604
604
  .ol-scale-singlebar {
605
605
  position: relative;
606
606
  height: 10px;
607
- z-Index: 9;
607
+ z-index: 9;
608
608
  box-sizing: border-box;
609
609
  border: 1px solid black;
610
610
  }
@@ -620,6 +620,9 @@ button.toast-close-button {
620
620
  user-select: none;
621
621
  -webkit-tap-highlight-color: rgba(0,0,0,0);
622
622
  }
623
+ .ol-viewport canvas {
624
+ all: unset;
625
+ }
623
626
  .ol-selectable {
624
627
  -webkit-touch-callout: default;
625
628
  -webkit-user-select: text;
@@ -1243,52 +1246,79 @@ button.toast-close-button {
1243
1246
 
1244
1247
  .qcca-theme {
1245
1248
  $qcca-palette: (
1246
- 100 : #095797,
1247
- 200 : #095797,
1248
- 201 : #fff,
1249
- 300 : #dae6f0,
1250
- 301 : #f2f1f1,
1251
- 302 : #223654,
1252
- 303 : #c5cad2,
1253
- 400 : #cb381f,
1254
- 401 : #4f813d,
1255
- 500 : #f09686,
1249
+ 50: #f2f1f1,
1250
+ 100: #dae6f0, //lighter ex: list on focus
1251
+ 200: #dae6f0,
1252
+ 300: #509FDF,
1253
+ 400: #0D7DD9,
1254
+ 500: #095797, //default
1255
+ 600: #0A60A6,
1256
+ 700: #223654, // darker
1257
+ 800: #cb381f,
1258
+ 900: #4f813d,
1259
+ A100: #1479cc,
1260
+ A200: #1479cc,
1261
+ A400: #dae6f0,
1262
+ A700: #f2f1f1,
1256
1263
  contrast: (
1257
- 100 : #fff,
1258
- 200 : #fff,
1259
- 201 : #fff,
1260
- 300 : #095797,
1261
- 301 : #095797,
1262
- 302 : #fff,
1263
- 303 : #095797,
1264
- 400 : #fff,
1265
- 401 : #fff,
1266
- 501 : #fff
1264
+ 50: #223654,
1265
+ 100: #223654,
1266
+ 200: #223654,
1267
+ 300: #fff,
1268
+ 400: #fff,
1269
+ 500: #fff,
1270
+ 600: #fff,
1271
+ 700: #fff,
1272
+ 800: #fff,
1273
+ 900: #fff,
1274
+ A100: #fff,
1275
+ A200: #fff,
1276
+ A400: #223654,
1277
+ A700: #223654,
1267
1278
  )
1268
- );
1279
+ );
1269
1280
 
1270
- $basic: mat.define-palette($qcca-palette, 100);
1271
- $primary: mat.define-palette($qcca-palette, 200);
1272
- $accent: mat.define-palette($qcca-palette, 500);
1273
- $warn: mat.define-palette($qcca-palette, 400);
1274
- $success: mat.define-palette($qcca-palette, 401);
1281
+ $primary: mat.define-palette($qcca-palette, 500, 400, 700);
1282
+ $accent: mat.define-palette($qcca-palette, 400, 100, 700);
1283
+ $warn: mat.define-palette($qcca-palette, 800);
1284
+ $success: mat.define-palette($qcca-palette, 900);
1285
+ $background: mat.define-palette($qcca-palette, 100, 100, 100);
1286
+ $foreground: mat.define-palette($qcca-palette, 700, 700, 700);
1275
1287
 
1276
- $theme: mat.define-light-theme((
1288
+ $temp-theme: mat.define-light-theme((
1277
1289
  color: (
1278
- basic: $basic,
1279
1290
  primary: $primary,
1280
1291
  accent: $accent,
1281
1292
  warn: $warn,
1282
- success: $success
1293
+ success: $success,
1294
+ background: $background
1283
1295
  )
1284
1296
  ));
1285
1297
 
1298
+ $theme-foreground: (
1299
+ base: #223654,
1300
+ divider: #f2f1f1,
1301
+ dividers: #f2f1f1,
1302
+ disabled: #f2f1f1,
1303
+ disabled-button: #f2f1f1,
1304
+ disabled-text: #f2f1f1,
1305
+ hint-text: #f2f1f1,
1306
+ secondary-text: #f2f1f1,
1307
+ icon: #f2f1f1,
1308
+ icons: #f2f1f1,
1309
+ text: #223654,
1310
+ slider-min: #f2f1f1,
1311
+ slider-off: #f2f1f1,
1312
+ slider-off-active: #f2f1f1,
1313
+ );
1314
+
1315
+ $foreground: theme-foreground(mat.define-palette($qcca-palette, 500, 100, 700));
1316
+ $theme: map-merge($temp-theme, (foreground: $foreground));
1317
+
1318
+ @include mat.core($theme);
1286
1319
  @include igo-all-theming($theme);
1287
1320
  @include mat.all-component-colors($theme);
1288
- /*
1289
- .mat-button, .mat-icon-button, .mat-stroked-button, .mat-flat-button, .md-button {
1290
- border-radius: 0!important;
1291
- }*/
1321
+ @include mat.strong-focus-indicators-theme($theme);
1292
1322
  }
1293
1323
 
1294
1324
  //
@@ -1307,3 +1337,8 @@ button.toast-close-button {
1307
1337
  // Alternatively, you can import and @include the theme mixins for each component
1308
1338
  // that you are using.
1309
1339
  //@include angular-material-theme($theme);
1340
+
1341
+ /* For the non-Angular Material items */
1342
+ body {
1343
+ color: #223654;
1344
+ }
package/style/setup.scss CHANGED
@@ -1 +1 @@
1
- @use '~@angular/material/_index.scss' as mat;
1
+ @use './node_modules/@angular/material/_index.scss' as mat;
@@ -1,51 +1,78 @@
1
1
  .qcca-theme {
2
2
  $qcca-palette: (
3
- 100 : #095797,
4
- 200 : #095797,
5
- 201 : #fff,
6
- 300 : #dae6f0,
7
- 301 : #f2f1f1,
8
- 302 : #223654,
9
- 303 : #c5cad2,
10
- 400 : #cb381f,
11
- 401 : #4f813d,
12
- 500 : #f09686,
3
+ 50: #f2f1f1,
4
+ 100: #dae6f0, //lighter ex: list on focus
5
+ 200: #dae6f0,
6
+ 300: #509FDF,
7
+ 400: #0D7DD9,
8
+ 500: #095797, //default
9
+ 600: #0A60A6,
10
+ 700: #223654, // darker
11
+ 800: #cb381f,
12
+ 900: #4f813d,
13
+ A100: #1479cc,
14
+ A200: #1479cc,
15
+ A400: #dae6f0,
16
+ A700: #f2f1f1,
13
17
  contrast: (
14
- 100 : #fff,
15
- 200 : #fff,
16
- 201 : #fff,
17
- 300 : #095797,
18
- 301 : #095797,
19
- 302 : #fff,
20
- 303 : #095797,
21
- 400 : #fff,
22
- 401 : #fff,
23
- 501 : #fff
18
+ 50: #223654,
19
+ 100: #223654,
20
+ 200: #223654,
21
+ 300: #fff,
22
+ 400: #fff,
23
+ 500: #fff,
24
+ 600: #fff,
25
+ 700: #fff,
26
+ 800: #fff,
27
+ 900: #fff,
28
+ A100: #fff,
29
+ A200: #fff,
30
+ A400: #223654,
31
+ A700: #223654,
24
32
  )
25
- );
33
+ );
26
34
 
27
- $basic: mat.define-palette($qcca-palette, 100);
28
- $primary: mat.define-palette($qcca-palette, 200);
29
- $accent: mat.define-palette($qcca-palette, 500);
30
- $warn: mat.define-palette($qcca-palette, 400);
31
- $success: mat.define-palette($qcca-palette, 401);
35
+ $primary: mat.define-palette($qcca-palette, 500, 400, 700);
36
+ $accent: mat.define-palette($qcca-palette, 400, 100, 700);
37
+ $warn: mat.define-palette($qcca-palette, 800);
38
+ $success: mat.define-palette($qcca-palette, 900);
39
+ $background: mat.define-palette($qcca-palette, 100, 100, 100);
40
+ $foreground: mat.define-palette($qcca-palette, 700, 700, 700);
32
41
 
33
- $theme: mat.define-light-theme((
42
+ $temp-theme: mat.define-light-theme((
34
43
  color: (
35
- basic: $basic,
36
44
  primary: $primary,
37
45
  accent: $accent,
38
46
  warn: $warn,
39
- success: $success
47
+ success: $success,
48
+ background: $background
40
49
  )
41
50
  ));
42
51
 
52
+ $theme-foreground: (
53
+ base: #223654,
54
+ divider: #f2f1f1,
55
+ dividers: #f2f1f1,
56
+ disabled: #f2f1f1,
57
+ disabled-button: #f2f1f1,
58
+ disabled-text: #f2f1f1,
59
+ hint-text: #f2f1f1,
60
+ secondary-text: #f2f1f1,
61
+ icon: #f2f1f1,
62
+ icons: #f2f1f1,
63
+ text: #223654,
64
+ slider-min: #f2f1f1,
65
+ slider-off: #f2f1f1,
66
+ slider-off-active: #f2f1f1,
67
+ );
68
+
69
+ $foreground: theme-foreground(mat.define-palette($qcca-palette, 500, 100, 700));
70
+ $theme: map-merge($temp-theme, (foreground: $foreground));
71
+
72
+ @include mat.core($theme);
43
73
  @include igo-all-theming($theme);
44
74
  @include mat.all-component-colors($theme);
45
- /*
46
- .mat-button, .mat-icon-button, .mat-stroked-button, .mat-flat-button, .md-button {
47
- border-radius: 0!important;
48
- }*/
75
+ @include mat.strong-focus-indicators-theme($theme);
49
76
  }
50
77
 
51
78
  //@import '~@angular/material/theming';
@@ -64,3 +91,8 @@
64
91
  // Alternatively, you can import and @include the theme mixins for each component
65
92
  // that you are using.
66
93
  //@include angular-material-theme($theme);
94
+
95
+ /* For the non-Angular Material items */
96
+ body {
97
+ color: #223654;
98
+ }