@igo2/core 1.11.1 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/__ivy_ngcc__/locale/en.auth.json +29 -29
  2. package/__ivy_ngcc__/locale/en.common.json +43 -43
  3. package/__ivy_ngcc__/locale/en.context.json +198 -198
  4. package/__ivy_ngcc__/locale/en.core.json +29 -29
  5. package/__ivy_ngcc__/locale/en.geo.json +737 -727
  6. package/__ivy_ngcc__/locale/en.integration.json +123 -105
  7. package/__ivy_ngcc__/locale/en.json +32 -4
  8. package/__ivy_ngcc__/locale/fr.auth.json +32 -32
  9. package/__ivy_ngcc__/locale/fr.common.json +43 -43
  10. package/__ivy_ngcc__/locale/fr.context.json +198 -198
  11. package/__ivy_ngcc__/locale/fr.core.json +29 -29
  12. package/__ivy_ngcc__/locale/fr.geo.json +737 -727
  13. package/__ivy_ngcc__/locale/fr.integration.json +125 -107
  14. package/__ivy_ngcc__/locale/fr.json +32 -4
  15. package/bundles/igo2-core.umd.js +177 -10
  16. package/bundles/igo2-core.umd.js.map +1 -1
  17. package/esm2015/lib/activity/activity.interceptor.js +1 -1
  18. package/esm2015/lib/activity/activity.module.js +1 -1
  19. package/esm2015/lib/activity/activity.service.js +1 -1
  20. package/esm2015/lib/activity/index.js +1 -1
  21. package/esm2015/lib/analytics/index.js +1 -1
  22. package/esm2015/lib/analytics/shared/analytics.interface.js +1 -1
  23. package/esm2015/lib/analytics/shared/analytics.service.js +1 -1
  24. package/esm2015/lib/analytics/shared/index.js +1 -1
  25. package/esm2015/lib/compression/compressedData.interface.js +2 -0
  26. package/esm2015/lib/compression/compression.service.js +140 -0
  27. package/esm2015/lib/compression/index.js +3 -0
  28. package/esm2015/lib/config/config.interface.js +1 -1
  29. package/esm2015/lib/config/config.module.js +1 -1
  30. package/esm2015/lib/config/config.provider.js +1 -1
  31. package/esm2015/lib/config/config.service.js +1 -1
  32. package/esm2015/lib/config/index.js +1 -1
  33. package/esm2015/lib/config/version.js +3 -3
  34. package/esm2015/lib/core.module.js +19 -4
  35. package/esm2015/lib/gesture/gesture.module.js +1 -1
  36. package/esm2015/lib/gesture/gesture.provider.js +1 -1
  37. package/esm2015/lib/language/index.js +1 -1
  38. package/esm2015/lib/language/language.module.js +1 -1
  39. package/esm2015/lib/language/shared/index.js +1 -1
  40. package/esm2015/lib/language/shared/language.interface.js +1 -1
  41. package/esm2015/lib/language/shared/language.loader.js +1 -1
  42. package/esm2015/lib/language/shared/language.provider.js +1 -1
  43. package/esm2015/lib/language/shared/language.service.js +1 -1
  44. package/esm2015/lib/language/shared/missing-translation.guard.js +2 -2
  45. package/esm2015/lib/media/index.js +1 -1
  46. package/esm2015/lib/media/media.enum.js +1 -1
  47. package/esm2015/lib/media/media.service.js +1 -1
  48. package/esm2015/lib/message/index.js +1 -1
  49. package/esm2015/lib/message/message.module.js +1 -1
  50. package/esm2015/lib/message/shared/index.js +1 -1
  51. package/esm2015/lib/message/shared/message.enum.js +1 -1
  52. package/esm2015/lib/message/shared/message.interface.js +1 -1
  53. package/esm2015/lib/message/shared/message.service.js +1 -1
  54. package/esm2015/lib/network/index.js +1 -1
  55. package/esm2015/lib/network/network.interfaces.js +1 -1
  56. package/esm2015/lib/network/network.service.js +1 -1
  57. package/esm2015/lib/request/error.interceptor.js +1 -1
  58. package/esm2015/lib/request/error.module.js +1 -1
  59. package/esm2015/lib/request/index.js +1 -1
  60. package/esm2015/lib/request/logging.interceptor.js +2 -2
  61. package/esm2015/lib/request/logging.module.js +1 -1
  62. package/esm2015/lib/route/route.interface.js +1 -1
  63. package/esm2015/lib/route/route.service.js +1 -1
  64. package/esm2015/lib/storage/index.js +1 -1
  65. package/esm2015/lib/storage/storage.interface.js +1 -1
  66. package/esm2015/lib/storage/storage.service.js +1 -1
  67. package/esm2015/public_api.js +2 -1
  68. package/fesm2015/igo2-core.js +161 -9
  69. package/fesm2015/igo2-core.js.map +1 -1
  70. package/lib/compression/compressedData.interface.d.ts +5 -0
  71. package/lib/compression/compression.service.d.ts +15 -0
  72. package/lib/compression/index.d.ts +2 -0
  73. package/lib/core.module.d.ts +2 -1
  74. package/locale/en.auth.json +29 -29
  75. package/locale/en.common.json +43 -43
  76. package/locale/en.context.json +198 -198
  77. package/locale/en.core.json +29 -29
  78. package/locale/en.geo.json +737 -727
  79. package/locale/en.integration.json +123 -105
  80. package/locale/en.json +32 -4
  81. package/locale/fr.auth.json +32 -32
  82. package/locale/fr.common.json +43 -43
  83. package/locale/fr.context.json +198 -198
  84. package/locale/fr.core.json +29 -29
  85. package/locale/fr.geo.json +737 -727
  86. package/locale/fr.integration.json +125 -107
  87. package/locale/fr.json +32 -4
  88. package/package.json +3 -2
  89. package/public_api.d.ts +1 -0
  90. package/style/all.theming.scss +5 -5
  91. package/style/core.theming.scss +9 -9
  92. package/style/foreground.scss +20 -20
  93. package/style/index.theming.scss +823 -756
  94. package/style/material.font.scss +9 -9
  95. package/style/partial/core.variables.scss +4 -4
  96. package/style/partial/media.scss +80 -80
  97. package/style/themes/blue.theme.scss +19 -19
  98. package/style/themes/bluedq.theme.scss +52 -52
  99. package/style/themes/bluegrey.theme.scss +16 -16
  100. package/style/themes/dark.theme.scss +16 -16
  101. package/style/themes/deeppurple.theme.scss +16 -16
  102. package/style/themes/indigo.theme.scss +16 -16
  103. package/style/themes/orange.theme.scss +16 -16
  104. package/style/themes/qcca.theme.scss +66 -0
  105. package/style/themes/teal.theme.scss +16 -16
  106. package/style/theming.scss +7 -7
  107. package/style/typography.scss +15 -15
@@ -3,12 +3,14 @@ import { Injectable, NgModule, InjectionToken, APP_INITIALIZER, Injector, Inject
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { HTTP_INTERCEPTORS, HttpClient, HttpErrorResponse, HttpClientModule, HttpResponse } from '@angular/common/http';
5
5
  import { finalize, catchError, map, tap, debounceTime, startWith } from 'rxjs/operators';
6
- import { BehaviorSubject, throwError, of, combineLatest, fromEvent } from 'rxjs';
6
+ import { BehaviorSubject, throwError, of, combineLatest, Observable, fromEvent } from 'rxjs';
7
7
  import { uuid, ObjectUtils } from '@igo2/utils';
8
8
  import * as i1 from '@ngx-translate/core';
9
9
  import { TranslateLoader, TranslateModule, MissingTranslationHandler } from '@ngx-translate/core';
10
10
  import * as i1$1 from 'ngx-toastr';
11
11
  import { ToastrModule, ToastrService } from 'ngx-toastr';
12
+ import * as i8 from 'ngx-indexed-db';
13
+ import { NgxIndexedDBModule } from 'ngx-indexed-db';
12
14
  import * as i1$2 from '@angular/material/icon';
13
15
  import * as i2 from '@angular/platform-browser';
14
16
  import { HammerGestureConfig, HAMMER_GESTURE_CONFIG, HammerModule } from '@angular/platform-browser';
@@ -98,8 +100,8 @@ IgoActivityModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[]] })
98
100
  }], null, null); })();
99
101
 
100
102
  const version = {
101
- lib: '1.11.1',
102
- releaseDate: 1649355043171
103
+ lib: '1.12.0',
104
+ releaseDate: 1656013761086
103
105
  };
104
106
 
105
107
  class ConfigService {
@@ -232,7 +234,7 @@ function provideDefaultLanguageLoader(loader) {
232
234
  class IgoMissingTranslationHandler {
233
235
  handle(params) {
234
236
  if (!params.translateService.langs.length) {
235
- const error = 'Translations are not yet loaded. \
237
+ const error = 'Translations are not yet loaded. \
236
238
  Check that the LanguageService is injected.';
237
239
  throw new Error(error);
238
240
  }
@@ -563,6 +565,17 @@ IgoErrorModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[]] });
563
565
  type: SkipSelf
564
566
  }] }]; }, null); })();
565
567
 
568
+ const dbConfig = {
569
+ name: 'igo2DB',
570
+ version: 1,
571
+ objectStoresMeta: [{
572
+ store: 'geoData',
573
+ storeConfig: { keyPath: 'url', autoIncrement: false },
574
+ storeSchema: [
575
+ { name: 'regionID', keypath: 'regionID', options: { unique: false } }
576
+ ]
577
+ }]
578
+ };
566
579
  class IgoCoreModule {
567
580
  constructor(matIconRegistry, domSanitizer) {
568
581
  matIconRegistry.addSvgIconSet(domSanitizer.bypassSecurityTrustResourceUrl('./assets/igo2/core/icons/mdi.svg'));
@@ -583,7 +596,8 @@ IgoCoreModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
583
596
  IgoConfigModule.forRoot(),
584
597
  IgoErrorModule.forRoot(),
585
598
  IgoLanguageModule.forRoot(),
586
- IgoMessageModule.forRoot()
599
+ IgoMessageModule.forRoot(),
600
+ NgxIndexedDBModule.forRoot(dbConfig)
587
601
  ], IgoActivityModule,
588
602
  IgoConfigModule,
589
603
  IgoErrorModule,
@@ -599,7 +613,8 @@ IgoCoreModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
599
613
  IgoConfigModule.forRoot(),
600
614
  IgoErrorModule.forRoot(),
601
615
  IgoLanguageModule.forRoot(),
602
- IgoMessageModule.forRoot()
616
+ IgoMessageModule.forRoot(),
617
+ NgxIndexedDBModule.forRoot(dbConfig)
603
618
  ],
604
619
  declarations: [],
605
620
  exports: [
@@ -612,7 +627,7 @@ IgoCoreModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
612
627
  }]
613
628
  }], function () { return [{ type: i1$2.MatIconRegistry }, { type: i2.DomSanitizer }]; }, null); })();
614
629
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoCoreModule, { imports: [CommonModule,
615
- HttpClientModule, IgoActivityModule, IgoConfigModule, IgoErrorModule, IgoLanguageModule, IgoMessageModule], exports: [IgoActivityModule,
630
+ HttpClientModule, IgoActivityModule, IgoConfigModule, IgoErrorModule, IgoLanguageModule, IgoMessageModule, i8.NgxIndexedDBModule], exports: [IgoActivityModule,
616
631
  IgoConfigModule,
617
632
  IgoErrorModule,
618
633
  IgoLanguageModule,
@@ -670,7 +685,7 @@ class LoggingInterceptor {
670
685
  // Log when response observable either completes or errors
671
686
  finalize(() => {
672
687
  const elapsed = Date.now() - started;
673
- const msg = `${req.method} "${req.urlWithParams}"
688
+ const msg = `${req.method} "${req.urlWithParams}"
674
689
  ${ok} in ${elapsed} ms.`;
675
690
  console.log(msg);
676
691
  }));
@@ -1016,6 +1031,143 @@ StorageService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: StorageSe
1016
1031
  }]
1017
1032
  }], function () { return [{ type: ConfigService }]; }, null); })();
1018
1033
 
1034
+ function getNumber(v, endposition, length) {
1035
+ /* tslint:disable:no-bitwise*/
1036
+ const mask = ((1 << length) - 1);
1037
+ return (v >> endposition) & mask;
1038
+ /* tslint:enable:no-bitwise*/
1039
+ }
1040
+ class CompressionService {
1041
+ constructor() {
1042
+ this.base64Index = new Map();
1043
+ this.indexBase64 = new Map();
1044
+ this.generateBase64Index();
1045
+ }
1046
+ generateBase64Index() {
1047
+ // https://fr.wikipedia.org/wiki/Base64
1048
+ // A-Z => [0, 25]
1049
+ for (let i = 0; i < 26; i++) {
1050
+ this.base64Index.set(String.fromCharCode('A'.charCodeAt(0) + i), i);
1051
+ this.indexBase64.set(i, String.fromCharCode('A'.charCodeAt(0) + i));
1052
+ }
1053
+ // a-z => [26, 51]
1054
+ for (let i = 0; i < 26; i++) {
1055
+ this.base64Index.set(String.fromCharCode('a'.charCodeAt(0) + i), i + 26);
1056
+ this.indexBase64.set(i + 26, String.fromCharCode('a'.charCodeAt(0) + i));
1057
+ }
1058
+ // 0-9 => [52, 61]
1059
+ for (let i = 0; i < 10; i++) {
1060
+ this.base64Index.set(String.fromCharCode('0'.charCodeAt(0) + i), i + 52);
1061
+ this.indexBase64.set(i + 52, String.fromCharCode('0'.charCodeAt(0) + i));
1062
+ }
1063
+ // + / => [62, 63]
1064
+ this.base64Index.set('+', 62);
1065
+ this.base64Index.set('/', 63);
1066
+ this.indexBase64.set(62, '+');
1067
+ this.indexBase64.set(63, '/');
1068
+ }
1069
+ compressBlob(blob) {
1070
+ if (!blob) {
1071
+ return;
1072
+ }
1073
+ const observable = new Observable((observer) => {
1074
+ const reader = new FileReader();
1075
+ reader.readAsDataURL(blob);
1076
+ reader.onload = () => {
1077
+ const base64 = reader.result.valueOf();
1078
+ const text64 = base64.substr(base64.indexOf(',') + 1);
1079
+ const compressed = this.compressStringBase64(text64);
1080
+ const compressedData = { length: text64.length,
1081
+ type: blob.type,
1082
+ object: compressed };
1083
+ observer.next(compressedData);
1084
+ };
1085
+ });
1086
+ return observable;
1087
+ }
1088
+ decompressBlob(compressedData) {
1089
+ /* tslint:disable:no-bitwise*/
1090
+ const object = compressedData.object;
1091
+ const length = compressedData.length;
1092
+ const decompressed = this.decompressStringBase64(object, length);
1093
+ const byteCharacters = atob(decompressed);
1094
+ const byteNumbers = new Array(byteCharacters.length);
1095
+ for (let i = 0; i < byteCharacters.length; i++) {
1096
+ byteNumbers[i] = byteCharacters.charCodeAt(i);
1097
+ }
1098
+ const byteArray = new Uint8Array(byteNumbers);
1099
+ const blob = new Blob([byteArray], { type: compressedData.type });
1100
+ /* tslint:enable:no-bitwise*/
1101
+ return blob;
1102
+ }
1103
+ compressStringBase64(s) {
1104
+ /* tslint:disable:no-bitwise*/
1105
+ let out = '';
1106
+ let bits = 16;
1107
+ let chr = 0;
1108
+ let rem = 0;
1109
+ for (const c of s) {
1110
+ const value = this.base64Index.get(c);
1111
+ if (bits > 6) {
1112
+ bits -= 6;
1113
+ chr += value << bits;
1114
+ }
1115
+ else {
1116
+ rem = 6 - bits;
1117
+ chr += value >> rem;
1118
+ out += String.fromCharCode(chr);
1119
+ chr = (value) << (16 - rem);
1120
+ bits = 16 - rem;
1121
+ }
1122
+ }
1123
+ if (s.length % 8 !== 0) {
1124
+ out += String.fromCharCode(chr);
1125
+ }
1126
+ /* tslint:enable:no-bitwise*/
1127
+ return String.fromCharCode(9731) + out;
1128
+ }
1129
+ decompressStringBase64(c, length) {
1130
+ /* tslint:disable:no-bitwise*/
1131
+ if (!c) {
1132
+ return;
1133
+ }
1134
+ if (c.charCodeAt(0) !== 9731) {
1135
+ return c;
1136
+ }
1137
+ let chr = 0;
1138
+ let rem = 0;
1139
+ let bits = 16;
1140
+ let out = '';
1141
+ let j = 1;
1142
+ let value = c.charCodeAt(j);
1143
+ for (let i = 0; i < length; i++) {
1144
+ if (bits > 6) {
1145
+ bits -= 6;
1146
+ chr = getNumber(value, bits, 6);
1147
+ out += this.indexBase64.get(chr);
1148
+ }
1149
+ else {
1150
+ rem = 6 - bits;
1151
+ chr = getNumber(value, 0, bits) << rem;
1152
+ value = c.charCodeAt(++j);
1153
+ chr += getNumber(value, 16 - rem, rem);
1154
+ out += this.indexBase64.get(chr);
1155
+ bits = 16 - rem;
1156
+ }
1157
+ }
1158
+ return out;
1159
+ /* tslint:enable:no-bitwise*/
1160
+ }
1161
+ }
1162
+ CompressionService.ɵfac = function CompressionService_Factory(t) { return new (t || CompressionService)(); };
1163
+ CompressionService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CompressionService, factory: CompressionService.ɵfac, providedIn: 'root' });
1164
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CompressionService, [{
1165
+ type: Injectable,
1166
+ args: [{
1167
+ providedIn: 'root'
1168
+ }]
1169
+ }], function () { return []; }, null); })();
1170
+
1019
1171
  class NetworkService {
1020
1172
  constructor(messageService, injector) {
1021
1173
  this.messageService = messageService;
@@ -1085,5 +1237,5 @@ NetworkService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NetworkSe
1085
1237
  * Generated bundle index. Do not edit.
1086
1238
  */
1087
1239
 
1088
- export { ActivityInterceptor, ActivityService, AnalyticsService, CONFIG_OPTIONS, ConfigService, ErrorInterceptor, IgoActivityModule, IgoConfigModule, IgoCoreModule, IgoErrorModule, IgoGestureConfig, IgoGestureModule, IgoLanguageModule, IgoLoggingModule, IgoMessageModule, IgoMissingTranslationHandler, LanguageLoader, LanguageService, LoggingInterceptor, Media, MediaOrientation, MediaService, MessageService, MessageType, NetworkService, ROUTE_SERVICE_OPTIONS, RouteService, StorageScope, StorageService, StorageServiceEventEnum, configFactory, defaultLanguageLoader, provideConfigLoader, provideConfigOptions, provideDefaultLanguageLoader, provideLanguageLoader, provideRouteServiceOptions, version };
1240
+ export { ActivityInterceptor, ActivityService, AnalyticsService, CONFIG_OPTIONS, CompressionService, ConfigService, ErrorInterceptor, IgoActivityModule, IgoConfigModule, IgoCoreModule, IgoErrorModule, IgoGestureConfig, IgoGestureModule, IgoLanguageModule, IgoLoggingModule, IgoMessageModule, IgoMissingTranslationHandler, LanguageLoader, LanguageService, LoggingInterceptor, Media, MediaOrientation, MediaService, MessageService, MessageType, NetworkService, ROUTE_SERVICE_OPTIONS, RouteService, StorageScope, StorageService, StorageServiceEventEnum, configFactory, defaultLanguageLoader, provideConfigLoader, provideConfigOptions, provideDefaultLanguageLoader, provideLanguageLoader, provideRouteServiceOptions, version };
1089
1241
  //# sourceMappingURL=igo2-core.js.map
@@ -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.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';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { uuid } from '@igo2/utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivityService {\n public counter$ = new BehaviorSubject<number>(0);\n\n private ids: string[] = [];\n\n constructor() {}\n\n register(): string {\n const id = uuid();\n this.ids.push(id);\n this.counter$.next(this.ids.length);\n\n return id;\n }\n\n unregister(id: string) {\n const index = this.ids.indexOf(id);\n if (index === -1) {\n return;\n }\n this.ids.splice(index, 1);\n\n this.counter$.next(this.ids.length);\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\n\nimport { ActivityService } from './activity.service';\n\n@Injectable()\nexport class ActivityInterceptor implements HttpInterceptor {\n constructor(private activityService: ActivityService) {}\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const activity = req.headers.get('activityInterceptor');\n if (activity) {\n const actReq = req.clone({\n headers: req.headers.delete('activityInterceptor')\n });\n if (activity === 'false') {\n return next.handle(actReq);\n }\n }\n\n const id = this.activityService.register();\n\n return next.handle(req).pipe(\n finalize(() => {\n this.activityService.unregister(id);\n })\n );\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { ActivityInterceptor } from './activity.interceptor';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoActivityModule {\n static forRoot(): ModuleWithProviders<IgoActivityModule> {\n return {\n ngModule: IgoActivityModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ActivityInterceptor,\n multi: true\n }\n ]\n };\n }\n}\n","export interface Version {\n lib: string;\n releaseDate: number;\n}\n\nexport const version: Version = {\n lib: '1.11.1',\n releaseDate: 1649355043171\n};\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { ConfigOptions } from './config.interface';\nimport { version } from './version';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n private config: object = {};\n\n constructor(private injector: Injector) {}\n\n /**\n * Use to get the data found in config file\n */\n public getConfig(key: string): any {\n return ObjectUtils.resolve(this.config, key);\n }\n\n /**\n * This method loads \"[path]\" to get all config's variables\n */\n public load(options: ConfigOptions) {\n const baseConfig = options.default || {};\n if (!options.path) {\n this.config = baseConfig;\n return true;\n }\n\n const http = this.injector.get(HttpClient);\n\n return new Promise((resolve, _reject) => {\n http\n .get(options.path)\n .pipe(\n catchError((error: any): any => {\n console.log(`Configuration file ${options.path} could not be read`);\n resolve(true);\n return throwError(error.error || 'Server error');\n })\n )\n .subscribe((configResponse: object) => {\n this.config = ObjectUtils.mergeDeep(\n ObjectUtils.mergeDeep({ version }, baseConfig),\n configResponse\n );\n resolve(true);\n });\n });\n }\n}\n","import { APP_INITIALIZER, InjectionToken } from '@angular/core';\n\nimport { ConfigService } from './config.service';\nimport { ConfigOptions } from './config.interface';\n\nexport let CONFIG_OPTIONS = new InjectionToken<ConfigOptions>('configOptions');\n\nexport function provideConfigOptions(options: ConfigOptions) {\n return {\n provide: CONFIG_OPTIONS,\n useValue: options\n };\n}\n\nexport function configFactory(\n configService: ConfigService,\n options: ConfigOptions\n) {\n return () => configService.load(options);\n}\n\nexport function provideConfigLoader() {\n return {\n provide: APP_INITIALIZER,\n useFactory: configFactory,\n multi: true,\n deps: [ConfigService, CONFIG_OPTIONS]\n };\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { provideConfigOptions, provideConfigLoader } from './config.provider';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoConfigModule {\n static forRoot(): ModuleWithProviders<IgoConfigModule> {\n return {\n ngModule: IgoConfigModule,\n providers: [provideConfigOptions({}), provideConfigLoader()]\n };\n }\n}\n","import { HttpClient } from '@angular/common/http';\n\nimport { of, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { TranslateLoader } from '@ngx-translate/core';\n\nimport { ObjectUtils } from '@igo2/utils';\n\nimport { ConfigService } from '../../config/config.service';\n\ndeclare function require(arg: string): any;\n\nexport class LanguageLoader implements TranslateLoader {\n constructor(\n private http: HttpClient,\n private prefix?: string | string[],\n private suffix: string = '.json',\n private config?: ConfigService\n ) {}\n\n public getTranslation(lang: string): any {\n const translation = require(`../locale/${lang}.json`);\n const igoLocale$ = of(translation);\n\n if (this.config && !this.prefix) {\n const prefix = this.config.getConfig('language.prefix');\n this.prefix = !prefix || Array.isArray(prefix) ? prefix : [prefix];\n }\n\n if (!this.prefix || this.prefix.length === 0) {\n return igoLocale$;\n }\n\n const appLocale$ = (this.prefix as string[]).map((prefix) =>\n this.http.get(`${prefix}${lang}${this.suffix}`)\n );\n\n const locale$ = combineLatest([igoLocale$, ...appLocale$]);\n\n return locale$.pipe(\n map((translations) => {\n return translations.reduce(\n (acc, current) => ObjectUtils.mergeDeep(acc, current),\n {}\n );\n })\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { TranslateLoader } from '@ngx-translate/core';\n\nimport { ConfigService } from '../../config/config.service';\nimport { LanguageLoader } from './language.loader';\n\nexport function defaultLanguageLoader(\n http: HttpClient,\n config?: ConfigService\n) {\n return new LanguageLoader(http, undefined, undefined, config);\n}\n\nexport function provideLanguageLoader(loader?) {\n return {\n provide: TranslateLoader,\n useFactory: loader || defaultLanguageLoader,\n deps: [HttpClient]\n };\n}\n\nexport function provideDefaultLanguageLoader(loader?) {\n return {\n provide: TranslateLoader,\n useFactory: loader || defaultLanguageLoader,\n deps: [HttpClient, ConfigService]\n };\n}\n","import {\n MissingTranslationHandler,\n MissingTranslationHandlerParams\n} from '@ngx-translate/core';\n\nexport class IgoMissingTranslationHandler implements MissingTranslationHandler {\n handle(params: MissingTranslationHandlerParams) {\n if (!params.translateService.langs.length) {\n const error =\n 'Translations are not yet loaded. \\\n Check that the LanguageService is injected.';\n throw new Error(error);\n }\n\n if (params.key.substr(0, 4) === 'igo.') {\n throw new Error(`The Key \"${params.key}\" is missing in locale file.`);\n } else {\n return params.key;\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport {\n TranslateModule,\n MissingTranslationHandler\n} from '@ngx-translate/core';\n\nimport { provideDefaultLanguageLoader } from './shared/language.provider';\nimport { IgoMissingTranslationHandler } from './shared/missing-translation.guard';\n\n@NgModule({\n imports: [\n TranslateModule.forRoot({\n missingTranslationHandler: {\n provide: MissingTranslationHandler,\n useClass: IgoMissingTranslationHandler\n }\n })\n ],\n declarations: [],\n exports: [TranslateModule]\n})\nexport class IgoLanguageModule {\n static forRoot(): ModuleWithProviders<IgoLanguageModule> {\n return {\n ngModule: IgoLanguageModule,\n providers: [provideDefaultLanguageLoader()]\n };\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { GlobalConfig, ToastrModule } from 'ngx-toastr';\n\n@NgModule({\n imports: [CommonModule,\n ToastrModule.forRoot({\n positionClass: 'toast-bottom-right',\n timeOut: 10000,\n extendedTimeOut: 10000,\n messageClass: 'toast-message mat-typography',\n closeButton: true,\n progressBar: true,\n enableHtml: true,\n tapToDismiss: true,\n maxOpened: 4,\n preventDuplicates: true,\n resetTimeoutOnDuplicate: true,\n countDuplicates: false,\n includeTitleDuplicates: true\n } as GlobalConfig)],\n declarations: [],\n exports: []\n})\nexport class IgoMessageModule {\n static forRoot(): ModuleWithProviders<IgoMessageModule> {\n return {\n ngModule: IgoMessageModule,\n providers: []\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LanguageService {\n private language: string = this.translate.getBrowserLang();\n\n constructor(public translate: TranslateService) {\n const lang = this.getLanguage();\n this.translate.setDefaultLang(lang);\n }\n\n public getLanguage(): string {\n return this.language.match(/en|fr/) ? this.language : 'en';\n }\n\n public setLanguage(language: string) {\n this.language = language.match(/en|fr/) ? language : 'en';\n this.translate.use(this.language);\n this.translate.reloadLang(this.language);\n }\n}\n","export enum MessageType {\n ERROR = 'error',\n ALERT = 'warning', // todo delete (transition to ngx-toastr)\n WARNING = 'warning',\n INFO = 'info',\n SUCCESS = 'success'\n}\n","import { Injectable, Inject, Injector } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ConfigService } from '../../config/config.service';\n\nimport { Message, MessageOptions } from './message.interface';\nimport { ActiveToast, IndividualConfig, ToastrService } from 'ngx-toastr';\nimport { MessageType } from './message.enum';\nimport { LanguageService } from '../../language/shared/language.service';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService {\n public messages$ = new BehaviorSubject<Message[]>([]);\n private options: MessageOptions;\n\n constructor(\n @Inject(Injector) private injector: Injector,\n private configService: ConfigService,\n private languageService: LanguageService\n ) {\n this.options = this.configService.getConfig('message') || {};\n }\n\n private get toastr(): ToastrService {\n return this.injector.get(ToastrService);\n }\n\n showError(httpError: HttpErrorResponse) {\n httpError.error.caught = true;\n return this.error(httpError.error.message, httpError.error.title);\n }\n\n message(message: Message) {\n this.messages$.next(this.messages$.value.concat([message]));\n\n message.options = message.options || {} as MessageOptions;\n const currentDate = new Date();\n\n message.options.from = message.options.from ? message.options.from : new Date('1 jan 1900');\n message.options.to = message.options.to ? message.options.to : new Date('1 jan 3000');\n if (typeof message.options.from === 'string') {\n message.options.from = new Date(Date.parse(message.options.from.replace(/-/g, ' ')));\n }\n if (typeof message.options.to === 'string') {\n message.options.to = new Date(Date.parse(message.options.to.replace(/-/g, ' ')));\n }\n if (\n currentDate > message.options.from && currentDate < message.options.to) {\n\n message = this.handleTemplate(message);\n\n if (message.text) {\n let messageShown: ActiveToast<any>;\n switch (message.type) {\n case MessageType.SUCCESS:\n messageShown = this.success(message.text, message.title, message.options);\n break;\n case MessageType.ERROR:\n messageShown = this.error(message.text, message.title, message.options);\n break;\n case MessageType.INFO:\n messageShown = this.info(message.text, message.title, message.options);\n break;\n case MessageType.ALERT:\n case MessageType.WARNING:\n messageShown = this.alert(message.text, message.title, message.options);\n break;\n default:\n messageShown = this.info(message.text, message.title, message.options);\n break;\n }\n message.options.id = messageShown.toastId;\n }\n }\n }\n\n success(text: string, title: string = 'igo.core.message.success', options: Partial<IndividualConfig> = {}): ActiveToast<any> {\n const message = this.languageService.translate.instant(text);\n const translatedTitle = this.languageService.translate.instant(title);\n return this.toastr.success(message, translatedTitle, options);\n }\n\n error(text: string, title: string = 'igo.core.message.error', options: Partial<IndividualConfig> = {}): ActiveToast<any> {\n const message = this.languageService.translate.instant(text);\n const translatedTitle = this.languageService.translate.instant(title);\n return this.toastr.error(message, translatedTitle, options);\n }\n\n info(text: string, title: string = 'igo.core.message.info', options: Partial<IndividualConfig> = {}): ActiveToast<any> {\n const message = this.languageService.translate.instant(text);\n const translatedTitle = this.languageService.translate.instant(title);\n return this.toastr.info(message, translatedTitle, options);\n }\n\n alert(text: string, title: string = 'igo.core.message.alert', options: Partial<IndividualConfig> = {}): ActiveToast<any> {\n const message = this.languageService.translate.instant(text);\n const translatedTitle = this.languageService.translate.instant(title);\n return this.toastr.warning(message, translatedTitle, options);\n }\n\n remove(id?: number) {\n this.toastr.remove(id);\n }\n\n removeAllAreNotError() {\n for (const mess of this.messages$.value) {\n if (mess.type !== MessageType.ERROR) {\n this.remove(mess.options.id);\n }\n }\n }\n\n private handleTemplate(message: Message): Message {\n if (!this.options.template || message.html) {\n return message;\n }\n\n let html = this.options.template;\n html = html.replace('${text}', message.text);\n html = html.replace('${title}', message.title);\n\n message.html = undefined;\n message.text = html;\n message.title = undefined;\n return message;\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpHandler,\n HttpRequest,\n HttpEvent,\n HttpErrorResponse\n} from '@angular/common/http';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, finalize } from 'rxjs/operators';\n\nimport { MessageService } from '../message/shared/message.service';\nimport { LanguageService } from '../language/shared/language.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorInterceptor implements HttpInterceptor {\n constructor(\n private messageService: MessageService,\n private injector: Injector\n ) {}\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const errorContainer = { httpError: undefined };\n return next.handle(req).pipe(\n catchError(error => this.handleError(error, errorContainer)),\n finalize(() => {\n this.handleCaughtError(errorContainer);\n this.handleUncaughtError(errorContainer);\n })\n );\n }\n\n private handleError(\n httpError: HttpErrorResponse,\n errorContainer: { httpError: HttpErrorResponse }\n ) {\n if (httpError instanceof HttpErrorResponse) {\n const errorObj = httpError.error === 'object' ? httpError.error : {};\n errorObj.message = httpError.error.message || httpError.statusText;\n errorObj.caught = false;\n\n httpError = new HttpErrorResponse({\n error: errorObj,\n headers: httpError.headers,\n status: httpError.status,\n statusText: httpError.statusText,\n url: httpError.url\n });\n }\n\n errorContainer.httpError = httpError;\n return throwError(httpError);\n }\n\n private handleCaughtError(errorContainer: { httpError: HttpErrorResponse }) {\n const httpError = errorContainer.httpError;\n if (httpError && httpError.error.toDisplay) {\n httpError.error.caught = true;\n this.messageService.error(httpError.error.message, httpError.error.title);\n }\n }\n\n private handleUncaughtError(errorContainer: {\n httpError: HttpErrorResponse;\n }) {\n const httpError = errorContainer.httpError;\n if (httpError && !httpError.error.caught) {\n const translate = this.injector.get(LanguageService).translate;\n const message = translate.instant('igo.core.errors.uncaught.message');\n const title = translate.instant('igo.core.errors.uncaught.title');\n httpError.error.caught = true;\n this.messageService.error(message, title);\n }\n }\n}\n","import {\n NgModule,\n ModuleWithProviders,\n Optional,\n SkipSelf\n} from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { ErrorInterceptor } from './error.interceptor';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoErrorModule {\n static forRoot(): ModuleWithProviders<IgoErrorModule> {\n return {\n ngModule: IgoErrorModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorInterceptor,\n multi: true\n }\n ]\n };\n }\n\n constructor(@Optional() @SkipSelf() parentModule: IgoErrorModule) {\n if (parentModule) {\n throw new Error(\n 'IgoErrorModule is already loaded. Import it in the AppModule only'\n );\n }\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatIconRegistry } from '@angular/material/icon';\n\nimport { IgoActivityModule } from './activity/activity.module';\nimport { IgoConfigModule } from './config/config.module';\nimport { IgoLanguageModule } from './language/language.module';\nimport { IgoMessageModule } from './message/message.module';\nimport { IgoErrorModule } from './request/error.module';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n IgoActivityModule.forRoot(),\n IgoConfigModule.forRoot(),\n IgoErrorModule.forRoot(),\n IgoLanguageModule.forRoot(),\n IgoMessageModule.forRoot()\n ],\n declarations: [],\n exports: [\n IgoActivityModule,\n IgoConfigModule,\n IgoErrorModule,\n IgoLanguageModule,\n IgoMessageModule\n ]\n})\nexport class IgoCoreModule {\n static forRoot(): ModuleWithProviders<IgoCoreModule> {\n return {\n ngModule: IgoCoreModule,\n providers: []\n };\n }\n\n constructor(matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer) {\n matIconRegistry.addSvgIconSet(\n domSanitizer.bypassSecurityTrustResourceUrl(\n './assets/igo2/core/icons/mdi.svg'\n )\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HammerGestureConfig } from '@angular/platform-browser';\n\n\n@Injectable()\nexport class IgoGestureConfig extends HammerGestureConfig {\n buildHammer(element: HTMLElement) {\n const mc = super.buildHammer(element) as any;\n mc.set({ touchAction: 'pan-y' });\n return mc;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HammerModule, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';\n\nimport { IgoGestureConfig } from './gesture.provider';\n\n@NgModule({\n imports: [HammerModule],\n declarations: [],\n exports: []\n})\nexport class IgoGestureModule {\n static forRoot(): ModuleWithProviders<IgoGestureModule> {\n return {\n ngModule: IgoGestureModule,\n providers: [\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: IgoGestureConfig\n }\n ]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpHandler,\n HttpEvent,\n HttpRequest,\n HttpResponse\n} from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { tap, finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class LoggingInterceptor implements HttpInterceptor {\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n const started = Date.now();\n let ok: string;\n\n // extend server response observable with logging\n return next.handle(req).pipe(\n tap(\n // Succeeds when there is a response; ignore other events\n event => (ok = event instanceof HttpResponse ? 'succeeded' : ''),\n // Operation failed; error is an HttpErrorResponse\n error => (ok = 'failed')\n ),\n // Log when response observable either completes or errors\n finalize(() => {\n const elapsed = Date.now() - started;\n const msg = `${req.method} \"${req.urlWithParams}\"\n ${ok} in ${elapsed} ms.`;\n\n console.log(msg);\n })\n );\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { LoggingInterceptor } from './logging.interceptor';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoLoggingModule {\n static forRoot(): ModuleWithProviders<IgoLoggingModule> {\n return {\n ngModule: IgoLoggingModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: LoggingInterceptor,\n multi: true\n }\n ]\n };\n }\n}\n","import { Injectable, Inject, InjectionToken, Optional } from '@angular/core';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { RouteServiceOptions } from './route.interface';\n\nexport let ROUTE_SERVICE_OPTIONS = new InjectionToken<RouteServiceOptions>(\n 'routeServiceOptions'\n);\n\nexport function provideRouteServiceOptions(options: RouteServiceOptions) {\n return {\n provide: ROUTE_SERVICE_OPTIONS,\n useValue: options\n };\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RouteService {\n public options: RouteServiceOptions;\n\n constructor(\n private router: Router,\n public route: ActivatedRoute,\n @Inject(ROUTE_SERVICE_OPTIONS)\n @Optional()\n options: RouteServiceOptions\n ) {\n const defaultOptions = {\n centerKey: 'center',\n zoomKey: 'zoom',\n projectionKey: 'projection',\n contextKey: 'context',\n searchKey: 'search',\n visibleOnLayersKey: 'visiblelayers',\n visibleOffLayersKey: 'invisiblelayers',\n directionsCoordKey: 'routing',\n directionsOptionsKey: 'routingOptions',\n toolKey: 'tool',\n wmsUrlKey: 'wmsUrl',\n wmsLayersKey: 'wmsLayers',\n wmtsUrlKey: 'wmtsUrl',\n wmtsLayersKey: 'wmtsLayers',\n arcgisUrlKey: 'arcgisUrl',\n arcgisLayersKey: 'arcgisLayers',\n iarcgisUrlKey: 'iarcgisUrl',\n iarcgisLayersKey: 'iarcgisLayers',\n tarcgisUrlKey: 'tarcgisUrl',\n tarcgisLayersKey: 'tarcgisLayers',\n vectorKey: 'vector'\n };\n this.options = Object.assign({}, defaultOptions, options);\n }\n\n get queryParams(): Observable<Params> {\n let url = decodeURIComponent(location.search);\n if (url.includes('¢er=')) {\n url = url.replace('¢er', '&center');\n const queryParams: any = url\n .slice(1)\n .split('&')\n .map(p => p.split('='))\n .reduce((obj, pair) => {\n const [key, value] = pair.map(decodeURIComponent);\n obj[key] = value;\n return obj;\n }, {});\n this.router.navigate([], { queryParams });\n }\n return this.route.queryParams;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ConfigService } from '../../config/config.service';\n\nimport { AnalyticsOptions } from './analytics.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnalyticsService {\n private options: AnalyticsOptions;\n\n get paq() {\n return ((window as any)._paq = (window as any)._paq || []);\n }\n\n constructor(private config: ConfigService) {\n this.options = this.config.getConfig('analytics') || {};\n\n if (this.options.provider === 'matomo') {\n this.initMatomo();\n }\n }\n\n private initMatomo() {\n if (!this.options.url || !this.options.id) {\n return;\n }\n const url =\n this.options.url.substr(-1) === '/'\n ? this.options.url + 'matomo'\n : this.options.url;\n\n // this.paq.push(['trackPageView']);\n // this.paq.push(['enableLinkTracking']);\n (() => {\n this.paq.push(['setTrackerUrl', url + '.php']);\n this.paq.push(['setSiteId', this.options.id]);\n const g = document.createElement('script');\n const s = document.getElementsByTagName('script')[0];\n g.type = 'text/javascript';\n g.async = true;\n g.defer = true;\n g.src = url + '.js';\n s.parentNode.insertBefore(g, s);\n })();\n }\n\n public setUser(\n user?: {\n id: number;\n sourceId?: string;\n firstName?: string;\n lastName?: string;\n },\n profils?: string[]\n ) {\n if (this.options.provider === 'matomo') {\n if (!user) {\n this.paq.push(['resetUserId']);\n this.paq.push(['deleteCustomVariable', 1, 'user']);\n this.paq.push(['deleteCustomVariable', 2, 'name']);\n this.paq.push(['deleteCustomVariable', 3, 'profils']);\n } else {\n this.paq.push(['setUserId', user.id]);\n\n const name = `${user.firstName} ${user.lastName}`;\n this.paq.push(['setCustomVariable', 1, 'user', user.sourceId, 'visit']);\n this.paq.push(['setCustomVariable', 2, 'name', name, 'visit']);\n this.paq.push(['setCustomVariable', 3, 'profils', profils, 'visit']);\n }\n\n this.paq.push(['trackPageView']);\n this.paq.push(['enableLinkTracking']);\n }\n }\n\n public trackSearch(term: string, nbResults: number) {\n if (this.options.provider === 'matomo') {\n this.paq.push(['trackSiteSearch', term, false, nbResults]);\n }\n }\n\n public trackEvent(category: string, action: string, name: string) {\n if (this.options.provider === 'matomo') {\n this.paq.push(['trackEvent', category, action, name]);\n }\n }\n}\n","export enum Media {\n Mobile = 'mobile',\n Tablet = 'tablet',\n Desktop = 'desktop'\n}\n\nexport enum MediaOrientation {\n Portrait = 'portrait',\n Landscape = 'landscape'\n}\n","import { Injectable } from '@angular/core';\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Media, MediaOrientation } from './media.enum';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MediaService {\n public media$ = new BehaviorSubject<Media>(undefined);\n public orientation$ = new BehaviorSubject<MediaOrientation>(undefined);\n\n constructor(breakpointObserver: BreakpointObserver) {\n breakpointObserver\n .observe([Breakpoints.HandsetLandscape])\n .subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Mobile);\n this.orientation$.next(MediaOrientation.Landscape);\n }\n });\n\n breakpointObserver.observe([Breakpoints.HandsetPortrait]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Mobile);\n this.orientation$.next(MediaOrientation.Portrait);\n }\n });\n\n breakpointObserver.observe([Breakpoints.TabletLandscape]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Tablet);\n this.orientation$.next(MediaOrientation.Landscape);\n }\n });\n\n breakpointObserver.observe([Breakpoints.TabletPortrait]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Tablet);\n this.orientation$.next(MediaOrientation.Portrait);\n }\n });\n\n breakpointObserver.observe([Breakpoints.WebLandscape]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Desktop);\n this.orientation$.next(MediaOrientation.Landscape);\n }\n });\n\n breakpointObserver.observe([Breakpoints.WebPortrait]).subscribe(res => {\n if (res.matches) {\n this.media$.next(Media.Desktop);\n this.orientation$.next(MediaOrientation.Portrait);\n }\n });\n }\n\n getMedia(): Media {\n return this.media$.value;\n }\n\n getOrientation(): MediaOrientation {\n return this.orientation$.value;\n }\n\n isTouchScreen(): boolean {\n return 'ontouchstart' in document.documentElement ? true : false;\n }\n\n isMobile(): boolean {\n const media = this.getMedia();\n return media === 'mobile';\n }\n\n isDesktop(): boolean {\n const media = this.getMedia();\n return media === 'desktop';\n }\n}\n","export enum StorageScope {\n SESSION = 'Session',\n LOCAL = 'Local'\n}\n\nexport interface StorageOptions {\n key: string;\n}\n\nexport interface StorageServiceEvent {\n key?: string;\n scope: StorageScope;\n event: StorageServiceEventEnum;\n previousValue?: any;\n currentValue?: any;\n}\n\nexport enum StorageServiceEventEnum {\n ADDED = 'Added',\n MODIFIED = 'Modified',\n REMOVED = 'Removed',\n CLEARED = 'Cleared'\n}\n","import { Injectable } from '@angular/core';\n\nimport { ConfigService } from '../config/config.service';\nimport { StorageScope, StorageOptions, StorageServiceEvent, StorageServiceEventEnum } from './storage.interface';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageService {\n protected options: StorageOptions;\n\n public storageChange$: BehaviorSubject<StorageServiceEvent> = new BehaviorSubject(undefined);\n\n constructor(private config: ConfigService) {\n this.options = this.config.getConfig('storage') || { key: 'igo' };\n }\n /**\n * Use to get the data found in storage file\n */\n get(key: string, scope?: StorageScope): string | object | boolean | number {\n let value: any;\n\n if (!scope || scope === StorageScope.SESSION) {\n value = sessionStorage.getItem(`${this.options.key}.${key}`);\n }\n\n if (scope === StorageScope.LOCAL || (!value && !scope)) {\n value = localStorage.getItem(`${this.options.key}.${key}`);\n }\n\n if (value) {\n try {\n value = JSON.parse(value);\n } catch {\n value = value;\n }\n }\n\n return value;\n }\n\n set(\n key: string,\n value: string | object | boolean | number,\n scope: StorageScope = StorageScope.LOCAL\n ) {\n const previousValue = this.get(key, scope);\n if (scope === StorageScope.SESSION) {\n sessionStorage.setItem(\n `${this.options.key}.${key}`,\n JSON.stringify(value)\n );\n } else {\n localStorage.setItem(`${this.options.key}.${key}`, JSON.stringify(value));\n }\n const currentValue = this.get(key, scope);\n\n if (currentValue !== previousValue) {\n this.storageChange$.next({\n key, scope,\n event: previousValue !== undefined ? StorageServiceEventEnum.MODIFIED : StorageServiceEventEnum.ADDED,\n previousValue,\n currentValue\n });\n }\n }\n\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\n const previousValue = this.get(key, scope);\n if (scope === StorageScope.SESSION) {\n sessionStorage.removeItem(`${this.options.key}.${key}`);\n } else {\n localStorage.removeItem(`${this.options.key}.${key}`);\n }\n this.storageChange$.next({key, scope, event: StorageServiceEventEnum.REMOVED, previousValue });\n }\n\n clear(scope: StorageScope = StorageScope.LOCAL) {\n if (scope === StorageScope.SESSION) {\n sessionStorage.clear();\n } else {\n localStorage.clear();\n }\n this.storageChange$.next({scope, event: StorageServiceEventEnum.CLEARED });\n }\n}\n","import { Injectable, EventEmitter, OnDestroy, Injector } from '@angular/core';\nimport { Observable, Subscription, fromEvent } from 'rxjs';\nimport { debounceTime, startWith } from 'rxjs/operators';\n\nimport { MessageService } from '../message/shared/message.service';\nimport { LanguageService } from '../language/shared/language.service';\nimport { ConnectionState } from './network.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NetworkService implements OnDestroy {\n private stateChangeEventEmitter = new EventEmitter<ConnectionState>();\n private onlineSubscription: Subscription;\n private offlineSubscription: Subscription;\n private previousMessageId;\n\n private state: ConnectionState = {\n connection: window.navigator.onLine\n };\n\n constructor(\n private messageService: MessageService,\n private injector: Injector\n ) {\n this.checkNetworkState();\n }\n\n private checkNetworkState() {\n this.onlineSubscription = fromEvent(window, 'online').subscribe(() => {\n if (this.previousMessageId) {\n this.messageService.remove(this.previousMessageId);\n }\n const translate = this.injector.get(LanguageService).translate;\n const message = translate.instant('igo.core.network.online.message');\n const title = translate.instant('igo.core.network.online.title');\n const messageObj = this.messageService.info(message, title);\n this.previousMessageId = messageObj.toastId;\n this.state.connection = true;\n this.emitEvent();\n });\n\n this.offlineSubscription = fromEvent(window, 'offline').subscribe(() => {\n if (this.previousMessageId) {\n this.messageService.remove(this.previousMessageId);\n }\n const translate = this.injector.get(LanguageService).translate;\n const message = translate.instant('igo.core.network.offline.message');\n const title = translate.instant('igo.core.network.offline.title');\n const messageObj = this.messageService.info(message, title);\n this.previousMessageId = messageObj.toastId;\n this.state.connection = false;\n this.emitEvent();\n });\n }\n\n private emitEvent() {\n this.stateChangeEventEmitter.emit(this.state);\n }\n\n ngOnDestroy(): void {\n try {\n this.offlineSubscription.unsubscribe();\n this.onlineSubscription.unsubscribe();\n } catch (e) {}\n }\n\n currentState(reportState = true): Observable<ConnectionState> {\n return reportState\n ? this.stateChangeEventEmitter.pipe(\n debounceTime(300),\n startWith(this.state)\n )\n : this.stateChangeEventEmitter.pipe(debounceTime(300));\n }\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib/core.module';\nexport * from './lib/activity/activity.module';\nexport * from './lib/config/config.module';\nexport * from './lib/gesture/gesture.module';\nexport * from './lib/language/language.module';\nexport * from './lib/message/message.module';\nexport * from './lib/request/error.module';\nexport * from './lib/request/logging.module';\n\nexport * from './lib/config/config.provider';\nexport * from './lib/gesture/gesture.provider';\nexport * from './lib/language/shared/language.provider';\nexport * from './lib/route/route.service';\nexport * from './lib/route/route.interface';\n\nexport * from './lib/activity';\nexport * from './lib/analytics';\nexport * from './lib/config';\nexport * from './lib/language';\nexport * from './lib/media';\nexport * from './lib/message';\nexport * from './lib/request';\nexport * from './lib/storage';\nexport * from './lib/network';\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/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.12.0',\r\n releaseDate: 1656013761086\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\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":[],"mappings":";;;;;;;;;;;;;;;;;;;;MASa,eAAe;IAK1B;QAJO,aAAQ,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;QAEzC,QAAG,GAAa,EAAE,CAAC;KAEX;IAEhB,QAAQ;QACN,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO,EAAE,CAAC;KACX;IAED,UAAU,CAAC,EAAU;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,OAAO;SACR;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KACrC;;8EAvBU,eAAe;qEAAf,eAAe,WAAf,eAAe,mBAFd,MAAM;uFAEP,eAAe;cAH3B,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;MCMY,mBAAmB;IAC9B,YAAoB,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;KAAI;IAExD,SAAS,CACP,GAAqB,EACrB,IAAiB;QAEjB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE;YACZ,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;gBACvB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC;aACnD,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,OAAO,EAAE;gBACxB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aAC5B;SACF;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAE3C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1B,QAAQ,CAAC;YACP,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACrC,CAAC,CACH,CAAC;KACH;;sFAxBU,mBAAmB;yEAAnB,mBAAmB,WAAnB,mBAAmB;uFAAnB,mBAAmB;cAD/B,UAAU;;;MCHE,iBAAiB;IAC5B,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,mBAAmB;oBAC7B,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC;KACH;;kFAZU,iBAAiB;mEAAjB,iBAAiB;uEAJnB,EAAE;uFAIA,iBAAiB;cAL7B,QAAQ;eAAC;gBACR,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE;aACZ;;;MCJY,OAAO,GAAY;IAC9B,GAAG,EAAE,QAAQ;IACb,WAAW,EAAE,aAAa;;;MCMf,aAAa;IAGxB,YAAoB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAF9B,WAAM,GAAW,EAAE,CAAC;KAEc;;;;IAKnC,SAAS,CAAC,GAAW;QAC1B,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9C;;;;IAKM,IAAI,CAAC,OAAsB;QAChC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzB,OAAO,IAAI,CAAC;SACb;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO;YAClC,IAAI;iBACD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;iBACjB,IAAI,CACH,UAAU,CAAC,CAAC,KAAU;gBACpB,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,IAAI,oBAAoB,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,cAAc,CAAC,CAAC;aAClD,CAAC,CACH;iBACA,SAAS,CAAC,CAAC,cAAsB;gBAChC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS,CACjC,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,EAC9C,cAAc,CACf,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC;aACf,CAAC,CAAC;SACN,CAAC,CAAC;KACJ;;0EA1CU,aAAa;mEAAb,aAAa,WAAb,aAAa,mBAFZ,MAAM;uFAEP,aAAa;cAHzB,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;ICPU,cAAc,GAAG,IAAI,cAAc,CAAgB,eAAe,EAAE;SAE/D,oBAAoB,CAAC,OAAsB;IACzD,OAAO;QACL,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,OAAO;KAClB,CAAC;AACJ,CAAC;SAEe,aAAa,CAC3B,aAA4B,EAC5B,OAAsB;IAEtB,OAAO,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;SAEe,mBAAmB;IACjC,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;KACtC,CAAC;AACJ;;MCpBa,eAAe;IAC1B,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC;SAC7D,CAAC;KACH;;8EANU,eAAe;iEAAf,eAAe;qEAJjB,EAAE;uFAIA,eAAe;cAL3B,QAAQ;eAAC;gBACR,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE;aACZ;;;MCMY,cAAc;IACzB,YACU,IAAgB,EAChB,MAA0B,EAC1B,SAAiB,OAAO,EACxB,MAAsB;QAHtB,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAoB;QAC1B,WAAM,GAAN,MAAM,CAAkB;QACxB,WAAM,GAAN,MAAM,CAAgB;KAC5B;IAEG,cAAc,CAAC,IAAY;QAChC,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;SACpE;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5C,OAAO,UAAU,CAAC;SACnB;QAED,MAAM,UAAU,GAAI,IAAI,CAAC,MAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,KACtD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAChD,CAAC;QAEF,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;QAE3D,OAAO,OAAO,CAAC,IAAI,CACjB,GAAG,CAAC,CAAC,YAAY;YACf,OAAO,YAAY,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,OAAO,KAAK,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,EACrD,EAAE,CACH,CAAC;SACH,CAAC,CACH,CAAC;KACH;;;SC1Ca,qBAAqB,CACnC,IAAgB,EAChB,MAAsB;IAEtB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;SAEe,qBAAqB,CAAC,MAAO;IAC3C,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,MAAM,IAAI,qBAAqB;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC;KACnB,CAAC;AACJ,CAAC;SAEe,4BAA4B,CAAC,MAAO;IAClD,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,MAAM,IAAI,qBAAqB;QAC3C,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;KAClC,CAAC;AACJ;;MCtBa,4BAA4B;IACvC,MAAM,CAAC,MAAuC;QAC5C,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE;YACzC,MAAM,KAAK,GACT;qDAC6C,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;SACxB;QAED,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,GAAG,8BAA8B,CAAC,CAAC;SACvE;aAAM;YACL,OAAO,MAAM,CAAC,GAAG,CAAC;SACnB;KACF;;;MCEU,iBAAiB;IAC5B,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE,CAAC,4BAA4B,EAAE,CAAC;SAC5C,CAAC;KACH;;kFANU,iBAAiB;mEAAjB,iBAAiB;uEAXnB;YACP,eAAe,CAAC,OAAO,CAAC;gBACtB,yBAAyB,EAAE;oBACzB,OAAO,EAAE,yBAAyB;oBAClC,QAAQ,EAAE,4BAA4B;iBACvC;aACF,CAAC;SACH,EAES,eAAe;uFAEd,iBAAiB;cAZ7B,QAAQ;eAAC;gBACR,OAAO,EAAE;oBACP,eAAe,CAAC,OAAO,CAAC;wBACtB,yBAAyB,EAAE;4BACzB,OAAO,EAAE,yBAAyB;4BAClC,QAAQ,EAAE,4BAA4B;yBACvC;qBACF,CAAC;iBACH;gBACD,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,CAAC,eAAe,CAAC;aAC3B;;wFACY,iBAAiB,6CAFlB,eAAe;;MCMd,gBAAgB;IAC3B,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;gFANU,gBAAgB;kEAAhB,gBAAgB;sEAnBlB,CAAC,YAAY;YACpB,YAAY,CAAC,OAAO,CAAC;gBACnB,aAAa,EAAE,oBAAoB;gBACnC,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,KAAK;gBACtB,YAAY,EAAE,8BAA8B;gBAC5C,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,CAAC;gBACZ,iBAAiB,EAAE,IAAI;gBACvB,uBAAuB,EAAE,IAAI;gBAC7B,eAAe,EAAE,KAAK;gBACtB,sBAAsB,EAAE,IAAI;aACb,CAAC,CAAC;uFAIV,gBAAgB;cApB5B,QAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,YAAY;oBACpB,YAAY,CAAC,OAAO,CAAC;wBACnB,aAAa,EAAE,oBAAoB;wBACnC,OAAO,EAAE,KAAK;wBACd,eAAe,EAAE,KAAK;wBACtB,YAAY,EAAE,8BAA8B;wBAC5C,WAAW,EAAE,IAAI;wBACjB,WAAW,EAAE,IAAI;wBACjB,UAAU,EAAE,IAAI;wBAChB,YAAY,EAAE,IAAI;wBAClB,SAAS,EAAE,CAAC;wBACZ,iBAAiB,EAAE,IAAI;wBACvB,uBAAuB,EAAE,IAAI;wBAC7B,eAAe,EAAE,KAAK;wBACtB,sBAAsB,EAAE,IAAI;qBACb,CAAC,CAAC;gBACrB,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE;aACZ;;wFACY,gBAAgB,cAnBjB,YAAY;;MCAX,eAAe;IAG1B,YAAmB,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;QAFtC,aAAQ,GAAW,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;QAGzD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KACrC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KAC5D;IAEM,WAAW,CAAC,QAAgB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC1C;;8EAhBU,eAAe;qEAAf,eAAe,WAAf,eAAe,mBAFd,MAAM;uFAEP,eAAe;cAH3B,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;ICLW;AAAZ,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,kCAAmB,CAAA;AACrB,CAAC,EANW,WAAW,KAAX,WAAW;;MCeV,cAAc;IAIzB,YAC4B,QAAkB,EACpC,aAA4B,EAC5B,eAAgC;QAFd,aAAQ,GAAR,QAAQ,CAAU;QACpC,kBAAa,GAAb,aAAa,CAAe;QAC5B,oBAAe,GAAf,eAAe,CAAiB;QANnC,cAAS,GAAG,IAAI,eAAe,CAAY,EAAE,CAAC,CAAC;QAQpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KAC9D;IAED,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;KACzC;IAED,SAAS,CAAC,SAA4B;QACpC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACnE;IAED,OAAO,CAAC,OAAgB;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE5D,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAoB,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAE/B,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5F,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;QACtF,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC5C,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;SACtF;QACD,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE;YAC1C,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;SAClF;QACD,IACE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE;YAExE,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAEvC,IAAI,OAAO,CAAC,IAAI,EAAE;gBAChB,IAAI,YAA8B,CAAC;gBACnC,QAAQ,OAAO,CAAC,IAAI;oBAClB,KAAK,WAAW,CAAC,OAAO;wBACtB,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC1E,MAAM;oBACR,KAAK,WAAW,CAAC,KAAK;wBACpB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBACxE,MAAM;oBACR,KAAK,WAAW,CAAC,IAAI;wBACnB,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBACvE,MAAM;oBACR,KAAK,WAAW,CAAC,KAAK,CAAC;oBACvB,KAAK,WAAW,CAAC,OAAO;wBACtB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBACxE,MAAM;oBACR;wBACE,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBACvE,MAAM;iBACT;gBACD,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC;aAC3C;SACF;KACF;IAED,OAAO,CAAC,IAAY,EAAE,QAAgB,0BAA0B,EAAE,UAAqC,EAAE;QACvG,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;KAC/D;IAED,KAAK,CAAC,IAAY,EAAE,QAAgB,wBAAwB,EAAE,UAAqC,EAAE;QACnG,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;KAC7D;IAED,IAAI,CAAC,IAAY,EAAE,QAAgB,uBAAuB,EAAE,UAAqC,EAAE;QACjG,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;KAC5D;IAED,KAAK,CAAC,IAAY,EAAE,QAAgB,wBAAwB,EAAE,UAAqC,EAAE;QACnG,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;KAC/D;IAED,MAAM,CAAC,EAAW;QAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACxB;IAED,oBAAoB;QAClB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACvC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,EAAE;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aAC9B;SACF;KACF;IAEO,cAAc,CAAC,OAAgB;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;YAC1C,OAAO,OAAO,CAAC;SAChB;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAE/C,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;QAC1B,OAAO,OAAO,CAAC;KAChB;;4EAlHU,cAAc,cAKf,QAAQ;oEALP,cAAc,WAAd,cAAc,mBAFb,MAAM;uFAEP,cAAc;cAH1B,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;sBAMI,MAAM;uBAAC,QAAQ;;;MCFP,gBAAgB;IAC3B,YACU,cAA8B,EAC9B,QAAkB;QADlB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,aAAQ,GAAR,QAAQ,CAAU;KACxB;IAEJ,SAAS,CACP,GAAqB,EACrB,IAAiB;QAEjB,MAAM,cAAc,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1B,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,EAC5D,QAAQ,CAAC;YACP,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YACvC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;SAC1C,CAAC,CACH,CAAC;KACH;IAEO,WAAW,CACjB,SAA4B,EAC5B,cAAgD;QAEhD,IAAI,SAAS,YAAY,iBAAiB,EAAE;YAC1C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,KAAK,QAAQ,GAAG,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;YACrE,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC;YACnE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;YAExB,SAAS,GAAG,IAAI,iBAAiB,CAAC;gBAChC,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB,CAAC,CAAC;SACJ;QAED,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;QACrC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;KAC9B;IAEO,iBAAiB,CAAC,cAAgD;QACxE,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;QAC3C,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE;YAC1C,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC3E;KACF;IAEO,mBAAmB,CAAC,cAE3B;QACC,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;QAC3C,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;YAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAClE,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC3C;KACF;;gFA7DU,gBAAgB;sEAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;uFAEP,gBAAgB;cAH5B,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;MCFY,cAAc;IAczB,YAAoC,YAA4B;QAC9D,IAAI,YAAY,EAAE;YAChB,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;SACH;KACF;IAnBD,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,gBAAgB;oBAC1B,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC;KACH;;4EAZU,cAAc,cAcyB,cAAc;gEAdrD,cAAc;oEAJhB,EAAE;uFAIA,cAAc;cAL1B,QAAQ;eAAC;gBACR,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE;aACZ;sCAemD,cAAc;sBAAnD,QAAQ;;sBAAI,QAAQ;;;AChBnC,MAAM,QAAQ,GAAa;IACzB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,CAAC;IACV,gBAAgB,EAAE,CAAC;YACjB,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;YACrD,WAAW,EAAE;gBACX,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAC;aACrE;SACF,CAAC;CACH,CAAC;MAqBW,aAAa;IAQxB,YAAY,eAAgC,EAAE,YAA0B;QACtE,eAAe,CAAC,aAAa,CAC3B,YAAY,CAAC,8BAA8B,CACzC,kCAAkC,CACnC,CACF,CAAC;KACH;IAbD,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;0EANU,aAAa;+DAAb,aAAa;mEAnBf;YACP,YAAY;YACZ,gBAAgB;YAChB,iBAAiB,CAAC,OAAO,EAAE;YAC3B,eAAe,CAAC,OAAO,EAAE;YACzB,cAAc,CAAC,OAAO,EAAE;YACxB,iBAAiB,CAAC,OAAO,EAAE;YAC3B,gBAAgB,CAAC,OAAO,EAAE;YAC1B,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC;SACrC,EAGC,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,iBAAiB;QACjB,gBAAgB;uFAGP,aAAa;cApBzB,QAAQ;eAAC;gBACR,OAAO,EAAE;oBACP,YAAY;oBACZ,gBAAgB;oBAChB,iBAAiB,CAAC,OAAO,EAAE;oBAC3B,eAAe,CAAC,OAAO,EAAE;oBACzB,cAAc,CAAC,OAAO,EAAE;oBACxB,iBAAiB,CAAC,OAAO,EAAE;oBAC3B,gBAAgB,CAAC,OAAO,EAAE;oBAC1B,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC;iBACrC;gBACD,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE;oBACP,iBAAiB;oBACjB,eAAe;oBACf,cAAc;oBACd,iBAAiB;oBACjB,gBAAgB;iBACjB;aACF;;wFACY,aAAa,cAlBtB,YAAY;QACZ,gBAAgB,6HAUhB,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,iBAAiB;QACjB,gBAAgB;;MCpCP,gBAAiB,SAAQ,mBAAmB;IACvD,WAAW,CAAC,OAAoB;QAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAQ,CAAC;QAC7C,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QACjC,OAAO,EAAE,CAAC;KACX;;wOALU,gBAAgB,SAAhB,gBAAgB;sEAAhB,gBAAgB,WAAhB,gBAAgB;uFAAhB,gBAAgB;cAD5B,UAAU;;;MCME,gBAAgB;IAC3B,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,EAAE,gBAAgB;iBAC3B;aACF;SACF,CAAC;KACH;;gFAXU,gBAAgB;kEAAhB,gBAAgB;sEAJlB,CAAC,YAAY,CAAC;uFAIZ,gBAAgB;cAL5B,QAAQ;eAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE;aACZ;;wFACY,gBAAgB,cAJjB,YAAY;;MCOX,kBAAkB;IAC7B,SAAS,CACP,GAAqB,EACrB,IAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,EAAU,CAAC;;QAGf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1B,GAAG;;QAED,KAAK,KAAK,EAAE,GAAG,KAAK,YAAY,YAAY,GAAG,WAAW,GAAG,EAAE,CAAC;;QAEhE,KAAK,KAAK,EAAE,GAAG,QAAQ,CAAC,CACzB;;QAED,QAAQ,CAAC;YACP,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACrC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,aAAa;eACxC,EAAE,OAAO,OAAO,MAAM,CAAC;YAE9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAClB,CAAC,CACH,CAAC;KACH;;oFAzBU,kBAAkB;wEAAlB,kBAAkB,WAAlB,kBAAkB;uFAAlB,kBAAkB;cAD9B,UAAU;;;MCFE,gBAAgB;IAC3B,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,kBAAkB;oBAC5B,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC;KACH;;gFAZU,gBAAgB;kEAAhB,gBAAgB;sEAJlB,EAAE;uFAIA,gBAAgB;cAL5B,QAAQ;eAAC;gBACR,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE;aACZ;;;ICHU,qBAAqB,GAAG,IAAI,cAAc,CACnD,qBAAqB,EACrB;SAEc,0BAA0B,CAAC,OAA4B;IACrE,OAAO;QACL,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,OAAO;KAClB,CAAC;AACJ,CAAC;MAKY,YAAY;IAGvB,YACU,MAAc,EACf,KAAqB,EAG5B,OAA4B;QAJpB,WAAM,GAAN,MAAM,CAAQ;QACf,UAAK,GAAL,KAAK,CAAgB;QAK5B,MAAM,cAAc,GAAG;YACrB,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,YAAY;YAC3B,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,QAAQ;YACnB,kBAAkB,EAAE,eAAe;YACnC,mBAAmB,EAAE,iBAAiB;YACtC,kBAAkB,EAAE,SAAS;YAC7B,oBAAoB,EAAE,gBAAgB;YACtC,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAG,WAAW;YAC1B,UAAU,EAAE,SAAS;YACrB,aAAa,EAAG,YAAY;YAC5B,YAAY,EAAE,WAAW;YACzB,eAAe,EAAG,cAAc;YAChC,aAAa,EAAE,YAAY;YAC3B,gBAAgB,EAAG,eAAe;YAClC,aAAa,EAAE,YAAY;YAC3B,gBAAgB,EAAG,eAAe;YAClC,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;KAC3D;IAED,IAAI,WAAW;QACb,IAAI,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACxB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACpC,MAAM,WAAW,GAAQ,GAAG;iBAC3B,KAAK,CAAC,CAAC,CAAC;iBACR,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACtB,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI;gBAChB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjB,OAAO,GAAG,CAAC;aACZ,EAAE,EAAE,CAAC,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;KAC/B;;wEApDU,YAAY,0EAMb,qBAAqB;kEANpB,YAAY,WAAZ,YAAY,mBAFX,MAAM;uFAEP,YAAY;cAHxB,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;sBAOI,MAAM;uBAAC,qBAAqB;;sBAC5B,QAAQ;;;MClBA,gBAAgB;IAO3B,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAVD,IAAI,GAAG;QACL,QAAS,MAAc,CAAC,IAAI,GAAI,MAAc,CAAC,IAAI,IAAI,EAAE,EAAE;KAC5D;IAUO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;YACzC,OAAO;SACR;QACD,MAAM,GAAG,GACP,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;cAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ;cAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;;;QAIvB,CAAC;YACC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC;YAC3B,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;YACf,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;YACf,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;YACpB,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACjC,GAAG,CAAC;KACN;IAEM,OAAO,CACZ,IAKC,EACD,OAAkB;QAElB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,IAAI,EAAE;gBACT,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;aACvD;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEtC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;aACtE;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;SACvC;KACF;IAEM,WAAW,CAAC,IAAY,EAAE,SAAiB;QAChD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;SAC5D;KACF;IAEM,UAAU,CAAC,QAAgB,EAAE,MAAc,EAAE,IAAY;QAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;SACvD;KACF;;gFA9EU,gBAAgB;sEAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;uFAEP,gBAAgB;cAH5B,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;ICRW;AAAZ,WAAY,KAAK;IACf,0BAAiB,CAAA;IACjB,0BAAiB,CAAA;IACjB,4BAAmB,CAAA;AACrB,CAAC,EAJW,KAAK,KAAL,KAAK,QAIhB;IAEW;AAAZ,WAAY,gBAAgB;IAC1B,yCAAqB,CAAA;IACrB,2CAAuB,CAAA;AACzB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB;;MCIf,YAAY;IAIvB,YAAY,kBAAsC;QAH3C,WAAM,GAAG,IAAI,eAAe,CAAQ,SAAS,CAAC,CAAC;QAC/C,iBAAY,GAAG,IAAI,eAAe,CAAmB,SAAS,CAAC,CAAC;QAGrE,kBAAkB;aACf,OAAO,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;aACvC,SAAS,CAAC,GAAG;YACZ,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;aACpD;SACF,CAAC,CAAC;QAEL,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;YACrE,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aACnD;SACF,CAAC,CAAC;QAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;YACrE,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;aACpD;SACF,CAAC,CAAC;QAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;YACpE,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aACnD;SACF,CAAC,CAAC;QAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;YAClE,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;aACpD;SACF,CAAC,CAAC;QAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;YACjE,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aACnD;SACF,CAAC,CAAC;KACJ;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;KAC1B;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;KAChC;IAED,aAAa;QACX,OAAO,cAAc,IAAI,QAAQ,CAAC,eAAe,GAAG,IAAI,GAAG,KAAK,CAAC;KAClE;IAED,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,KAAK,QAAQ,CAAC;KAC3B;IAED,SAAS;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,KAAK,SAAS,CAAC;KAC5B;;wEAtEU,YAAY;kEAAZ,YAAY,WAAZ,YAAY,mBAFX,MAAM;uFAEP,YAAY;cAHxB,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;ICTW;AAAZ,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;AACjB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;IAcW;AAAZ,WAAY,uBAAuB;IACjC,0CAAe,CAAA;IACf,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;IACnB,8CAAmB,CAAA;AACrB,CAAC,EALW,uBAAuB,KAAvB,uBAAuB;;MCRtB,cAAc;IAKzB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAFlC,mBAAc,GAAyC,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;QAG3F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;KACnE;;;;IAID,GAAG,CAAC,GAAW,EAAE,KAAoB;QACnC,IAAI,KAAU,CAAC;QAEf,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE;YAC5C,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;SAC9D;QAED,IAAI,KAAK,KAAK,YAAY,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;YACtD,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;SAC5D;QAED,IAAI,KAAK,EAAE;YACT,IAAI;gBACF,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC3B;YAAC,WAAM;gBACN,KAAK,GAAG,KAAK,CAAC;aACf;SACF;QAED,OAAO,KAAK,CAAC;KACd;IAED,GAAG,CACD,GAAW,EACX,KAAyC,EACzC,QAAsB,YAAY,CAAC,KAAK;QAExC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE;YAClC,cAAc,CAAC,OAAO,CACpB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,EAC5B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CACtB,CAAC;SACH;aAAM;YACL,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3E;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE1C,IAAI,YAAY,KAAK,aAAa,EAAE;YAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,aAAa,KAAK,SAAS,GAAG,uBAAuB,CAAC,QAAQ,GAAG,uBAAuB,CAAC,KAAK;gBACrG,aAAa;gBACb,YAAY;aACb,CAAC,CAAC;SACJ;KACF;IAED,MAAM,CAAC,GAAW,EAAE,QAAsB,YAAY,CAAC,KAAK;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE;YAClC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;SACzD;aAAM;YACL,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;SACvD;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;KAChG;IAED,KAAK,CAAC,QAAsB,YAAY,CAAC,KAAK;QAC5C,IAAI,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE;YAClC,cAAc,CAAC,KAAK,EAAE,CAAC;SACxB;aAAM;YACL,YAAY,CAAC,KAAK,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,uBAAuB,CAAC,OAAO,EAAE,CAAC,CAAC;KAC5E;;4EA5EU,cAAc;oEAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;uFAEP,cAAc;cAH1B,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;ACJD,SAAS,SAAS,CAAC,CAAS,EAAE,WAAmB,EAAE,MAAc;;IAE/D,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC,IAAI,WAAW,IAAI,IAAI,CAAC;;AAEnC,CAAC;MAKY,kBAAkB;IAI7B;QAHQ,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAG9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;IAEO,mBAAmB;;;QAGzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACrE;;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC1E;;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC1E;;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;KAC/B;IAED,YAAY,CAAC,IAAU;QACrB,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,CAAC,QAAkC;YACnE,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,CAAC,MAAM,GAAG;gBACd,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAY,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtD,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,cAAc,GAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,UAAU,EAAE,CAAC;gBAC9D,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC/B,CAAC;SACH,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;KACnB;IAED,cAAc,CAAC,cAA8B;;QAE3C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACrC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACrC,MAAM,YAAY,GAAW,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACjD;QACD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAC,CAAC,CAAC;;QAEhE,OAAO,IAAI,CAAC;KACb;IAEO,oBAAoB,CAAC,CAAS;;QAEpC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,IAAI,GAAG,CAAC,EAAE;gBACZ,IAAI,IAAI,CAAC,CAAC;gBACV,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC;aACtB;iBAAM;gBACL,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;gBACf,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;gBACpB,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAChC,GAAG,GAAG,CAAC,KAAK,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;gBAC5B,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC;aACjB;SACF;QACD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;YACtB,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SACjC;;QAED,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;KACxC;IAEO,sBAAsB,CAAC,CAAS,EAAE,MAAc;;QAEtD,IAAI,CAAC,CAAC,EAAE;YACN,OAAO;SACR;QAED,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YAC5B,OAAO,CAAC,CAAC;SACV;QAED,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAI,IAAI,GAAG,CAAC,EAAE;gBACZ,IAAI,IAAI,CAAC,CAAC;gBACV,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAClC;iBAAM;gBACL,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;gBACf,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;gBACvC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC;aACjB;SACF;QACD,OAAO,GAAG,CAAC;;KAEZ;;oFA/HU,kBAAkB;wEAAlB,kBAAkB,WAAlB,kBAAkB,mBAFjB,MAAM;uFAEP,kBAAkB;cAH9B,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;MCFY,cAAc;IAUzB,YACU,cAA8B,EAC9B,QAAkB;QADlB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,aAAQ,GAAR,QAAQ,CAAU;QAXpB,4BAAuB,GAAG,IAAI,YAAY,EAAmB,CAAC;QAK9D,UAAK,GAAoB;YAC/B,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;SACpC,CAAC;QAME,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAEO,iBAAiB;QACvB,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC;YAC9D,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACpD;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;YAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC;YAChE,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACpD;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;YAC/D,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;YACtE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,CAAC,CAAC;KACJ;IAEO,SAAS;QACf,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/C;IAED,WAAW;QACT,IAAI;YACF,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;SACvC;QAAC,OAAO,CAAC,EAAE,GAAE;KACf;IAED,YAAY,CAAC,WAAW,GAAG,IAAI;QAC7B,OAAO,WAAW;cACd,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAC/B,YAAY,CAAC,GAAG,CAAC,EACjB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CACtB;cACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1D;;4EA/DU,cAAc;oEAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;uFAEP,cAAc;cAH1B,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;;ACVD;;;;ACAA;;;;;;"}
@@ -0,0 +1,5 @@
1
+ export interface CompressedData {
2
+ length: number;
3
+ type: string;
4
+ object: any;
5
+ }