@igo2/common 21.0.0-next.2 → 21.0.0-next.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/igo2-common-action.mjs +46 -61
- package/fesm2022/igo2-common-action.mjs.map +1 -1
- package/fesm2022/igo2-common-backdrop.mjs +11 -19
- package/fesm2022/igo2-common-backdrop.mjs.map +1 -1
- package/fesm2022/igo2-common-badge.mjs +7 -7
- package/fesm2022/igo2-common-badge.mjs.map +1 -1
- package/fesm2022/igo2-common-clickout.mjs +7 -7
- package/fesm2022/igo2-common-clone.mjs +7 -7
- package/fesm2022/igo2-common-collapsible.mjs +15 -23
- package/fesm2022/igo2-common-collapsible.mjs.map +1 -1
- package/fesm2022/igo2-common-color.mjs +8 -8
- package/fesm2022/igo2-common-color.mjs.map +1 -1
- package/fesm2022/igo2-common-confirm-dialog.mjs +12 -11
- package/fesm2022/igo2-common-confirm-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-context-menu.mjs +15 -13
- package/fesm2022/igo2-common-context-menu.mjs.map +1 -1
- package/fesm2022/igo2-common-custom-html.mjs +10 -10
- package/fesm2022/igo2-common-datepicker.mjs +23 -17
- package/fesm2022/igo2-common-datepicker.mjs.map +1 -1
- package/fesm2022/igo2-common-dom.mjs +10 -8
- package/fesm2022/igo2-common-dom.mjs.map +1 -1
- package/fesm2022/igo2-common-drag-drop.mjs +69 -37
- package/fesm2022/igo2-common-drag-drop.mjs.map +1 -1
- package/fesm2022/igo2-common-dynamic-component.mjs +23 -17
- package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -1
- package/fesm2022/igo2-common-entity.mjs +161 -128
- package/fesm2022/igo2-common-entity.mjs.map +1 -1
- package/fesm2022/igo2-common-flexible.mjs +25 -77
- package/fesm2022/igo2-common-flexible.mjs.map +1 -1
- package/fesm2022/igo2-common-form.mjs +417 -116
- package/fesm2022/igo2-common-form.mjs.map +1 -1
- package/fesm2022/igo2-common-home-button.mjs +7 -7
- package/fesm2022/igo2-common-icon.mjs +7 -7
- package/fesm2022/igo2-common-icon.mjs.map +1 -1
- package/fesm2022/igo2-common-image.mjs +10 -10
- package/fesm2022/igo2-common-image.mjs.map +1 -1
- package/fesm2022/igo2-common-interactive-tour.mjs +53 -30
- package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -1
- package/fesm2022/igo2-common-json-dialog.mjs +11 -11
- package/fesm2022/igo2-common-json-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-keyvalue.mjs +10 -8
- package/fesm2022/igo2-common-keyvalue.mjs.map +1 -1
- package/fesm2022/igo2-common-list.mjs +21 -16
- package/fesm2022/igo2-common-list.mjs.map +1 -1
- package/fesm2022/igo2-common-panel.mjs +8 -8
- package/fesm2022/igo2-common-panel.mjs.map +1 -1
- package/fesm2022/igo2-common-resizable-bar.mjs +8 -10
- package/fesm2022/igo2-common-resizable-bar.mjs.map +1 -1
- package/fesm2022/igo2-common-select-value-dialog.mjs +23 -13
- package/fesm2022/igo2-common-select-value-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-sidenav.mjs +7 -7
- package/fesm2022/igo2-common-sidenav.mjs.map +1 -1
- package/fesm2022/igo2-common-spinner.mjs +11 -11
- package/fesm2022/igo2-common-spinner.mjs.map +1 -1
- package/fesm2022/igo2-common-stop-propagation.mjs +10 -10
- package/fesm2022/igo2-common-table.mjs +59 -66
- package/fesm2022/igo2-common-table.mjs.map +1 -1
- package/fesm2022/igo2-common-timepicker.mjs +11 -12
- package/fesm2022/igo2-common-timepicker.mjs.map +1 -1
- package/fesm2022/igo2-common-tool.mjs +32 -29
- package/fesm2022/igo2-common-tool.mjs.map +1 -1
- package/fesm2022/igo2-common-widget.mjs +17 -17
- package/fesm2022/igo2-common-widget.mjs.map +1 -1
- package/fesm2022/igo2-common-workspace.mjs +28 -32
- package/fesm2022/igo2-common-workspace.mjs.map +1 -1
- package/package.json +3 -3
- package/style/style.css +1 -1
- package/types/igo2-common-action.d.ts +2 -5
- package/types/igo2-common-backdrop.d.ts +2 -4
- package/types/igo2-common-badge.d.ts +4 -4
- package/types/igo2-common-collapsible.d.ts +2 -4
- package/types/igo2-common-confirm-dialog.d.ts +1 -1
- package/types/igo2-common-context-menu.d.ts +2 -2
- package/types/igo2-common-datepicker.d.ts +9 -9
- package/types/igo2-common-drag-drop.d.ts +14 -12
- package/types/igo2-common-dynamic-component.d.ts +3 -3
- package/types/igo2-common-entity.d.ts +63 -59
- package/types/igo2-common-flexible.d.ts +14 -28
- package/types/igo2-common-form.d.ts +213 -74
- package/types/igo2-common-icon.d.ts +1 -1
- package/types/igo2-common-interactive-tour.d.ts +6 -6
- package/types/igo2-common-json-dialog.d.ts +4 -4
- package/types/igo2-common-keyvalue.d.ts +4 -1
- package/types/igo2-common-list.d.ts +7 -7
- package/types/igo2-common-panel.d.ts +1 -1
- package/types/igo2-common-resizable-bar.d.ts +4 -5
- package/types/igo2-common-select-value-dialog.d.ts +2 -2
- package/types/igo2-common-sidenav.d.ts +2 -2
- package/types/igo2-common-spinner.d.ts +1 -1
- package/types/igo2-common-table.d.ts +16 -17
- package/types/igo2-common-timepicker.d.ts +3 -3
- package/types/igo2-common-tool.d.ts +7 -8
- package/types/igo2-common-widget.d.ts +7 -7
- package/types/igo2-common-workspace.d.ts +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-image.mjs","sources":["../../../packages/common/image/src/image-error.directive.ts","../../../packages/common/image/src/image.ts","../../../packages/common/image/src/secure-image.pipe.ts","../../../packages/common/image/src/image.module.ts","../../../packages/common/image/src/public_api.ts","../../../packages/common/image/src/igo2-common-image.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n HostListener,\n inject,\n input\n} from '@angular/core';\n\n@Directive({\n selector: '[igoImageError]'\n})\nexport class ImageErrorDirective {\n private el = inject(ElementRef);\n\n readonly errorImageUrl = input('./igo2/common/images/na.png');\n readonly hideError = input(false);\n\n @HostListener('error', ['$event'])\n public onError(event: any): void {\n if (this.hideError()) {\n this.el.nativeElement.style.display = 'none';\n } else {\n event.target.src = this.errorImageUrl();\n }\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Observable, catchError, switchMap } from 'rxjs';\n\nexport function fetchImageFromDepotUrl(\n url: string,\n depotUrl: string,\n http: HttpClient\n) {\n const headers = new HttpHeaders({\n 'Content-Type': 'text/plain',\n activityInterceptor: 'false',\n interceptError: 'false'\n });\n\n const regexDepot = new RegExp(depotUrl + '.*?(?=\"|$)');\n if (regexDepot.test(url)) {\n url = url.match(regexDepot)[0];\n }\n\n return http\n .get(url, {\n headers,\n responseType: 'blob'\n })\n .pipe(\n catchError((err) => {\n err.error.caught = true;\n err.error.toDisplay = false;\n throw err;\n }),\n switchMap((blob) => {\n return new Observable((observer) => {\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onloadend = () => {\n observer.next(reader.result);\n observer.complete();\n };\n });\n })\n ) as Observable<string>;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { Observable } from 'rxjs';\nimport { Cacheable } from 'ts-cacheable';\n\nimport { fetchImageFromDepotUrl } from './image';\n\n@Pipe({\n name: 'secureImage'\n})\nexport class SecureImagePipe implements PipeTransform {\n private http = inject(HttpClient);\n private configService = inject(ConfigService);\n\n @Cacheable({\n maxCacheCount: 20\n })\n transform(url: string): Observable<string> {\n const depotUrl = this.configService?.getConfig('depot.url');\n return fetchImageFromDepotUrl(url, depotUrl, this.http);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ImageErrorDirective } from './image-error.directive';\nimport { SecureImagePipe } from './secure-image.pipe';\n\n/**\n * @deprecated import the components/directives directly or IMAGE_DIRECTIVES for the set\n */\n@NgModule({\n imports: [SecureImagePipe, ImageErrorDirective],\n exports: [SecureImagePipe, ImageErrorDirective]\n})\nexport class IgoImageModule {\n static forRoot(): ModuleWithProviders<IgoImageModule> {\n return {\n ngModule: IgoImageModule,\n providers: []\n };\n }\n}\n","import { ImageErrorDirective } from './image-error.directive';\nimport { SecureImagePipe } from './secure-image.pipe';\n\nexport * from './image';\nexport * from './image.module';\nexport * from './image-error.directive';\nexport * from './secure-image.pipe';\n\nexport const IMAGE_DIRECTIVES = [SecureImagePipe, ImageErrorDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;MAWa,mBAAmB,CAAA;AACtB,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAEtB,IAAA,aAAa,GAAG,KAAK,CAAC,6BAA6B,oFAAC;AACpD,IAAA,SAAS,GAAG,KAAK,CAAC,KAAK,gFAAC;AAG1B,IAAA,OAAO,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACpB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;QAC9C;aAAO;YACL,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;QACzC;IACF;wGAbW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;sBAOE,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;;SCbnB,sBAAsB,CACpC,GAAW,EACX,QAAgB,EAChB,IAAgB,EAAA;AAEhB,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC;AAC9B,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,mBAAmB,EAAE,OAAO;AAC5B,QAAA,cAAc,EAAE;AACjB,KAAA,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC;AACtD,IAAA,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACxB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"igo2-common-image.mjs","sources":["../../../packages/common/image/src/image-error.directive.ts","../../../packages/common/image/src/image.ts","../../../packages/common/image/src/secure-image.pipe.ts","../../../packages/common/image/src/image.module.ts","../../../packages/common/image/src/public_api.ts","../../../packages/common/image/src/igo2-common-image.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n HostListener,\n inject,\n input\n} from '@angular/core';\n\n@Directive({\n selector: '[igoImageError]'\n})\nexport class ImageErrorDirective {\n private el = inject(ElementRef);\n\n readonly errorImageUrl = input('./igo2/common/images/na.png');\n readonly hideError = input(false);\n\n @HostListener('error', ['$event'])\n public onError(event: any): void {\n if (this.hideError()) {\n this.el.nativeElement.style.display = 'none';\n } else {\n event.target.src = this.errorImageUrl();\n }\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\n\nimport { Observable, catchError, switchMap } from 'rxjs';\n\nexport function fetchImageFromDepotUrl(\n url: string,\n depotUrl: string,\n http: HttpClient\n) {\n const headers = new HttpHeaders({\n 'Content-Type': 'text/plain',\n activityInterceptor: 'false',\n interceptError: 'false'\n });\n\n const regexDepot = new RegExp(depotUrl + '.*?(?=\"|$)');\n if (regexDepot.test(url)) {\n url = url.match(regexDepot)![0];\n }\n\n return http\n .get(url, {\n headers,\n responseType: 'blob'\n })\n .pipe(\n catchError((err) => {\n err.error.caught = true;\n err.error.toDisplay = false;\n throw err;\n }),\n switchMap((blob) => {\n return new Observable((observer) => {\n const reader = new FileReader();\n reader.readAsDataURL(blob);\n reader.onloadend = () => {\n observer.next(reader.result);\n observer.complete();\n };\n });\n })\n ) as Observable<string>;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { Observable } from 'rxjs';\nimport { Cacheable } from 'ts-cacheable';\n\nimport { fetchImageFromDepotUrl } from './image';\n\n@Pipe({\n name: 'secureImage'\n})\nexport class SecureImagePipe implements PipeTransform {\n private http = inject(HttpClient);\n private configService = inject(ConfigService);\n\n @Cacheable({\n maxCacheCount: 20\n })\n transform(url: string): Observable<string> {\n const depotUrl = this.configService?.getConfig('depot.url');\n return fetchImageFromDepotUrl(url, depotUrl, this.http);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ImageErrorDirective } from './image-error.directive';\nimport { SecureImagePipe } from './secure-image.pipe';\n\n/**\n * @deprecated import the components/directives directly or IMAGE_DIRECTIVES for the set\n */\n@NgModule({\n imports: [SecureImagePipe, ImageErrorDirective],\n exports: [SecureImagePipe, ImageErrorDirective]\n})\nexport class IgoImageModule {\n static forRoot(): ModuleWithProviders<IgoImageModule> {\n return {\n ngModule: IgoImageModule,\n providers: []\n };\n }\n}\n","import { ImageErrorDirective } from './image-error.directive';\nimport { SecureImagePipe } from './secure-image.pipe';\n\nexport * from './image';\nexport * from './image.module';\nexport * from './image-error.directive';\nexport * from './secure-image.pipe';\n\nexport const IMAGE_DIRECTIVES = [SecureImagePipe, ImageErrorDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -48,14 +48,13 @@ class InteractiveTourLoader {
|
|
|
48
48
|
if (this.allToursOptions === undefined) {
|
|
49
49
|
return undefined;
|
|
50
50
|
}
|
|
51
|
-
|
|
52
|
-
nameInConfigFile = nameInConfigFile.replace(/\s/g, '');
|
|
51
|
+
const nameInConfigFile = toolName.replace(/\s/g, '');
|
|
53
52
|
return this.allToursOptions[nameInConfigFile];
|
|
54
53
|
}
|
|
55
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
56
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
54
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InteractiveTourLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InteractiveTourLoader });
|
|
57
56
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InteractiveTourLoader, decorators: [{
|
|
59
58
|
type: Injectable
|
|
60
59
|
}], ctorParameters: () => [] });
|
|
61
60
|
|
|
@@ -231,7 +230,11 @@ class InteractiveTourService {
|
|
|
231
230
|
!document.querySelector(actionConfig.condition)))) {
|
|
232
231
|
return;
|
|
233
232
|
}
|
|
234
|
-
const
|
|
233
|
+
const selector = actionConfig.element || step.element;
|
|
234
|
+
if (!selector) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
const element = document.querySelector(selector);
|
|
235
238
|
const action = this.getAction(actionConfig.action);
|
|
236
239
|
if (element && action) {
|
|
237
240
|
element[action]();
|
|
@@ -239,7 +242,9 @@ class InteractiveTourService {
|
|
|
239
242
|
}
|
|
240
243
|
executeActionPromise(step, actionConfig) {
|
|
241
244
|
return new Promise((resolve) => {
|
|
242
|
-
|
|
245
|
+
if (step && actionConfig) {
|
|
246
|
+
this.executeAction(step, actionConfig);
|
|
247
|
+
}
|
|
243
248
|
if (!actionConfig || !actionConfig.waitFor) {
|
|
244
249
|
resolve();
|
|
245
250
|
return;
|
|
@@ -290,15 +295,19 @@ class InteractiveTourService {
|
|
|
290
295
|
canClickTarget: step.disableInteraction
|
|
291
296
|
? !step.disableInteraction
|
|
292
297
|
: undefined,
|
|
293
|
-
title: this.languageService.translate.instant(step.title || tourConfig.title),
|
|
298
|
+
title: this.languageService.translate.instant(step.title || tourConfig.title || ''),
|
|
294
299
|
text: [this.languageService.translate.instant(step.text)],
|
|
295
300
|
when: {
|
|
296
301
|
show: () => {
|
|
297
|
-
|
|
302
|
+
if (step.onShow) {
|
|
303
|
+
this.executeAction(step, step.onShow);
|
|
304
|
+
}
|
|
298
305
|
},
|
|
299
306
|
hide: () => {
|
|
300
307
|
this.previousStep = step;
|
|
301
|
-
|
|
308
|
+
if (step.onHide) {
|
|
309
|
+
this.executeAction(step, step.onHide);
|
|
310
|
+
}
|
|
302
311
|
}
|
|
303
312
|
}
|
|
304
313
|
});
|
|
@@ -308,6 +317,9 @@ class InteractiveTourService {
|
|
|
308
317
|
}
|
|
309
318
|
startTour(toolName) {
|
|
310
319
|
const stepConfig = this.interactiveTourLoader.getTourOptionData(toolName);
|
|
320
|
+
if (!stepConfig) {
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
311
323
|
this.shepherdService.defaultStepOptions = {
|
|
312
324
|
classes: stepConfig.class,
|
|
313
325
|
highlightClass: stepConfig.highlightClass,
|
|
@@ -322,16 +334,18 @@ class InteractiveTourService {
|
|
|
322
334
|
this.shepherdService.modal = true;
|
|
323
335
|
this.shepherdService.confirmCancel = false;
|
|
324
336
|
this.shepherdService.addSteps(shepherdSteps);
|
|
325
|
-
this.shepherdService.tourObject
|
|
326
|
-
|
|
327
|
-
this.
|
|
328
|
-
|
|
337
|
+
if (this.shepherdService.tourObject) {
|
|
338
|
+
this.shepherdService.tourObject.on('show', this.addProgress);
|
|
339
|
+
this.shepherdService.tourObject.on('cancel', (index) => {
|
|
340
|
+
this.checkNext(index, this.shepherdService.tourObject);
|
|
341
|
+
});
|
|
342
|
+
}
|
|
329
343
|
this.shepherdService.start();
|
|
330
344
|
}
|
|
331
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
332
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
345
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InteractiveTourService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
346
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InteractiveTourService, providedIn: 'root' });
|
|
333
347
|
}
|
|
334
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InteractiveTourService, decorators: [{
|
|
335
349
|
type: Injectable,
|
|
336
350
|
args: [{
|
|
337
351
|
providedIn: 'root'
|
|
@@ -347,7 +361,7 @@ class InteractiveTourComponent {
|
|
|
347
361
|
* Toolbox that holds main tools
|
|
348
362
|
*/
|
|
349
363
|
tourToStart = input('', ...(ngDevMode ? [{ debugName: "tourToStart" }] : /* istanbul ignore next */ []));
|
|
350
|
-
styleButton = input(
|
|
364
|
+
styleButton = input(...(ngDevMode ? [undefined, { debugName: "styleButton" }] : /* istanbul ignore next */ []));
|
|
351
365
|
discoverTitleInLocale$ = input(of('IGO'), ...(ngDevMode ? [{ debugName: "discoverTitleInLocale$" }] : /* istanbul ignore next */ []));
|
|
352
366
|
constructor() {
|
|
353
367
|
this.iconService.registerSvg(this.presentationIcon);
|
|
@@ -372,8 +386,9 @@ class InteractiveTourComponent {
|
|
|
372
386
|
}
|
|
373
387
|
get activeToolName() {
|
|
374
388
|
if (this.toolbox) {
|
|
375
|
-
|
|
376
|
-
|
|
389
|
+
const activeTool = this.toolbox.activeTool$.getValue();
|
|
390
|
+
if (activeTool) {
|
|
391
|
+
return activeTool.name;
|
|
377
392
|
}
|
|
378
393
|
else {
|
|
379
394
|
return 'global';
|
|
@@ -388,14 +403,18 @@ class InteractiveTourComponent {
|
|
|
388
403
|
return this.toolbox.activeTool$.getValue() !== undefined;
|
|
389
404
|
}
|
|
390
405
|
else {
|
|
391
|
-
return
|
|
406
|
+
return false;
|
|
392
407
|
}
|
|
393
408
|
}
|
|
394
409
|
get isToolHaveTour() {
|
|
410
|
+
const tourToStart = this.getTourToStart();
|
|
411
|
+
if (!tourToStart) {
|
|
412
|
+
return false;
|
|
413
|
+
}
|
|
395
414
|
if (this.activeToolName === 'about' && !this.tourToStart()) {
|
|
396
415
|
return false;
|
|
397
416
|
}
|
|
398
|
-
return this.interactiveTourService.isToolHaveTourConfig(
|
|
417
|
+
return this.interactiveTourService.isToolHaveTourConfig(tourToStart);
|
|
399
418
|
}
|
|
400
419
|
get showTourButton() {
|
|
401
420
|
// 2 conditions to show: have Tour on tool in Config file and if we are in mobile displayInMobile= true
|
|
@@ -415,7 +434,11 @@ class InteractiveTourComponent {
|
|
|
415
434
|
return this.interactiveTourService.isTourDisplayInMobile();
|
|
416
435
|
}
|
|
417
436
|
get disabledTourButton() {
|
|
418
|
-
|
|
437
|
+
const activeToolName = this.activeToolName;
|
|
438
|
+
if (!activeToolName) {
|
|
439
|
+
return true;
|
|
440
|
+
}
|
|
441
|
+
return this.interactiveTourService.disabledTourButton(activeToolName);
|
|
419
442
|
}
|
|
420
443
|
startInteractiveTour() {
|
|
421
444
|
const tour = this.getTourToStart();
|
|
@@ -426,10 +449,10 @@ class InteractiveTourComponent {
|
|
|
426
449
|
return;
|
|
427
450
|
}
|
|
428
451
|
}
|
|
429
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
430
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
452
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InteractiveTourComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
453
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: InteractiveTourComponent, isStandalone: true, selector: "igo-interactive-tour", inputs: { tourToStart: { classPropertyName: "tourToStart", publicName: "tourToStart", isSignal: true, isRequired: false, transformFunction: null }, styleButton: { classPropertyName: "styleButton", publicName: "styleButton", isSignal: true, isRequired: false, transformFunction: null }, discoverTitleInLocale$: { classPropertyName: "discoverTitleInLocale$", publicName: "discoverTitleInLocale$", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (showTourButton) {\n @if (styleButton() === 'icon') {\n <button\n (click)=\"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n disabledTourButton\n ? ('igo.common.interactiveTour.disaledTooltipTourToolButton'\n | translate)\n : ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\n \"\n [disabled]=\"disabledTourButton\"\n >\n <igo-icon [icon]=\"presentationIcon\" iconPositionEnd />\n </button>\n } @else {\n <button\n (click)=\"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n color=\"primary\"\n matButton=\"elevated\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"disabledTourButton\"\n >\n {{ 'igo.common.interactiveTour.buttonTitle' | translate }}\n {{ discoverTitleInLocale$() | async | translate }}\n <mat-icon\n [svgIcon]=\"presentationIcon.name\"\n iconPositionEnd\n [matTooltip]=\"\n disabledTourButton\n ? ('igo.common.interactiveTour.disaledTooltipTourToolButton'\n | translate)\n : ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\n \"\n />\n </button>\n }\n}\n", styles: [":host ::ng-deep button.tour-button-tool-icon{color:var(--mat-sys-primary-container)}:host ::ng-deep button.tour-button-tool-icon:hover{background-color:var(--mat-sys-secondary-container);color:var(--mat-sys-on-secondary-container)}:host ::ng-deep .mat-primary .mat-mdc-icon-button{color:#fff}:host>button.mat-mdc-raised-button.tour-button-tool-icon{box-shadow:none}.shepherd-has-title .shepherd-content .shepherd-header{padding:.5em .75em}.shepherd-has-title .shepherd-content .shepherd-header h3{font-size:14px}.shepherd-title{margin:0!important;font-weight:revert!important}.shepherd-progress{margin-right:15px;color:#737373}.shepherd-element{border:1px solid;border-color:#474747;box-shadow:4px 5px #65656599}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "component", type: IgoIconComponent, selector: "igo-icon", inputs: ["color", "icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
431
454
|
}
|
|
432
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
455
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InteractiveTourComponent, decorators: [{
|
|
433
456
|
type: Component,
|
|
434
457
|
args: [{ selector: 'igo-interactive-tour', encapsulation: ViewEncapsulation.None, imports: [
|
|
435
458
|
MatButtonModule,
|
|
@@ -443,11 +466,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
443
466
|
}], ctorParameters: () => [], propDecorators: { tourToStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "tourToStart", required: false }] }], styleButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "styleButton", required: false }] }], discoverTitleInLocale$: [{ type: i0.Input, args: [{ isSignal: true, alias: "discoverTitleInLocale$", required: false }] }] } });
|
|
444
467
|
|
|
445
468
|
class IgoInteractiveTourModule {
|
|
446
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
447
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
448
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
469
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: IgoInteractiveTourModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
470
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.19", ngImport: i0, type: IgoInteractiveTourModule, imports: [InteractiveTourComponent], exports: [InteractiveTourComponent] });
|
|
471
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: IgoInteractiveTourModule, providers: [InteractiveTourService, InteractiveTourLoader], imports: [InteractiveTourComponent] });
|
|
449
472
|
}
|
|
450
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
473
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: IgoInteractiveTourModule, decorators: [{
|
|
451
474
|
type: NgModule,
|
|
452
475
|
args: [{
|
|
453
476
|
imports: [InteractiveTourComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-interactive-tour.mjs","sources":["../../../packages/common/interactive-tour/src/interactive-tour.loader.ts","../../../packages/common/interactive-tour/src/interactive-tour.service.ts","../../../packages/common/interactive-tour/src/interactive-tour.component.ts","../../../packages/common/interactive-tour/src/interactive-tour.component.html","../../../packages/common/interactive-tour/src/interactive-tour.module.ts","../../../packages/common/interactive-tour/src/igo2-common-interactive-tour.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { InteractiveTourOptions } from './interactive-tour.interface';\n\n@Injectable()\nexport class InteractiveTourLoader {\n private http = inject(HttpClient);\n private configService = inject(ConfigService);\n\n private jsonURL: string;\n private allToursOptions;\n\n constructor() {\n this.jsonURL = this.getPathToConfigFile();\n }\n\n public loadConfigTour() {\n this.getJSON().subscribe(\n (data) => {\n this.allToursOptions = data;\n },\n () => {\n throw new Error(\n `Problem with Interactive tour configuration file: interactiveTour.json not find. Check if the file and is path is set correctly.`\n );\n }\n );\n }\n\n public getPathToConfigFile(): string {\n return (\n this.configService.getConfig('interactiveTour.pathToConfigFile') ||\n './config/interactiveTour.json'\n );\n }\n\n public getJSON(): Observable<any> {\n return this.http.get(this.jsonURL).pipe(\n catchError((e) => {\n e.error.caught = true;\n throw e;\n })\n );\n }\n\n public getTourOptionData(toolName): InteractiveTourOptions {\n if (this.allToursOptions === undefined) {\n return undefined;\n }\n let nameInConfigFile = toolName;\n nameInConfigFile = nameInConfigFile.replace(/\\s/g, '');\n return this.allToursOptions[nameInConfigFile];\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\nimport { LanguageService } from '@igo2/core/language';\nimport { MediaService } from '@igo2/core/media';\n\nimport { autoPlacement, offset } from '@floating-ui/dom';\nimport { ShepherdService } from 'angular-shepherd';\nimport { StepOptions, Tour } from 'shepherd.js';\n\nimport {\n InteractiveTourAction,\n InteractiveTourOptions,\n InteractiveTourStep\n} from './interactive-tour.interface';\nimport { InteractiveTourLoader } from './interactive-tour.loader';\n\ninterface IIndexTour {\n index: number;\n tour: Tour;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractiveTourService {\n private configService = inject(ConfigService);\n private mediaService = inject(MediaService);\n private languageService = inject(LanguageService);\n private interactiveTourLoader = inject(InteractiveTourLoader);\n private shepherdService = inject(ShepherdService);\n\n private previousStep: InteractiveTourStep;\n\n constructor() {\n if (this.isAppHaveTour()) {\n this.interactiveTourLoader.loadConfigTour();\n }\n }\n\n public isAppHaveTour() {\n const haveTour = this.configService.getConfig(\n 'interactiveTour.activateInteractiveTour'\n );\n if (haveTour === undefined) {\n return true;\n } else {\n return haveTour;\n }\n }\n\n public isToolHaveTourConfig(toolName: string): boolean {\n const checkTourActiveOptions =\n this.interactiveTourLoader.getTourOptionData(toolName);\n if (checkTourActiveOptions === undefined) {\n return false;\n } else {\n return true;\n }\n }\n\n public disabledTourButton(toolName: string): boolean {\n const stepConfig: InteractiveTourOptions =\n this.interactiveTourLoader.getTourOptionData(toolName);\n\n if (stepConfig?.conditions) {\n for (const condition of stepConfig.conditions) {\n if (document.querySelector(condition) === null) {\n return true;\n }\n }\n }\n return false;\n }\n\n public isMobile(): boolean {\n return this.mediaService.isMobile();\n }\n\n public isTourDisplayInMobile(): boolean {\n const showInMobile = this.configService.getConfig(\n 'interactiveTour.tourInMobile'\n );\n\n return showInMobile === undefined ? true : showInMobile;\n }\n\n private getButtons(buttonKind?: 'first' | 'last' | 'noBackButton') {\n if (buttonKind === 'noBackButton') {\n return [\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n if (buttonKind === 'first') {\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.exitButton'\n ),\n type: 'cancel'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n\n if (buttonKind === 'last') {\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.backButton'\n ),\n type: 'back'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.exitButton'\n ),\n type: 'cancel'\n }\n ];\n }\n\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.backButton'\n ),\n type: 'back'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n\n private getAction(actionName: string) {\n const action = {\n click: 'click'\n };\n return action[actionName.toLowerCase()];\n }\n\n private addProgress() {\n const self = this as any;\n let nbTry = 0;\n const maxTry = 21;\n const checkExist = setInterval(() => {\n if (self.getCurrentStep()) {\n if (\n self.getCurrentStep().options.attachTo.element &&\n !document.querySelector(\n self.getCurrentStep().options.attachTo.element\n )\n ) {\n self.cancel();\n clearInterval(checkExist);\n return;\n } else {\n const currentStepElement = self.getCurrentStep().getElement();\n const header = currentStepElement\n ? currentStepElement.querySelector('.shepherd-header')\n : undefined;\n\n nbTry++;\n if (header || nbTry > maxTry) {\n clearInterval(checkExist);\n }\n\n if (header) {\n const stepsArray = self.steps;\n const progress = document.createElement('span');\n progress.className = 'shepherd-progress';\n progress.innerText = `${\n stepsArray.indexOf(self.getCurrentStep()) + 1\n }/${stepsArray.length}`;\n header.insertBefore(\n progress,\n currentStepElement.querySelector('.shepherd-cancel-icon')\n );\n }\n }\n }\n }, 100);\n }\n\n private checkNext(index: IIndexTour, tour) {\n if (tour.getCurrentStep()) {\n if (\n tour.getCurrentStep().options.attachTo.element &&\n document.querySelector(tour.getCurrentStep().options.attachTo.element)\n ) {\n tour.complete();\n return;\n }\n\n if (index.index === tour.steps.length - 1) {\n tour.complete();\n return;\n }\n\n tour.steps.splice(index.index, 1);\n const nextStep = tour.steps[index.index];\n if (\n nextStep.options.attachTo.element &&\n !document.querySelector(nextStep.options.attachTo.element)\n ) {\n index.index = index.index + 1;\n this.checkNext(index, tour);\n } else {\n tour._setupModal();\n tour.show(nextStep.id);\n }\n }\n }\n\n private executeAction(\n step: InteractiveTourStep,\n actionConfig: InteractiveTourAction\n ) {\n if (!actionConfig) {\n return;\n }\n\n if (\n actionConfig.condition &&\n ((actionConfig.condition.charAt(0) === '!' &&\n document.querySelector(actionConfig.condition.slice(1))) ||\n (actionConfig.condition.charAt(0) !== '!' &&\n !document.querySelector(actionConfig.condition)))\n ) {\n return;\n }\n\n const element: HTMLElement = document.querySelector(\n actionConfig.element || step.element\n ) as HTMLElement;\n const action = this.getAction(actionConfig.action);\n if (element && action) {\n element[action]();\n }\n }\n\n private executeActionPromise(\n step: InteractiveTourStep,\n actionConfig: InteractiveTourAction\n ) {\n return new Promise<void>((resolve) => {\n this.executeAction(step, actionConfig);\n if (!actionConfig || !actionConfig.waitFor) {\n resolve();\n return;\n }\n let nbTry = 0;\n const maxTry = actionConfig.maxWait ? actionConfig.maxWait / 100 : 20;\n const checkExist = setInterval(() => {\n nbTry++;\n if (nbTry > maxTry || document.querySelector(actionConfig.waitFor)) {\n clearInterval(checkExist);\n resolve();\n }\n }, 100);\n });\n }\n\n private getShepherdSteps(tourConfig: InteractiveTourOptions) {\n const shepherdSteps: StepOptions[] = [];\n\n let i = 0;\n for (const step of tourConfig.steps) {\n const position = step.position ?? tourConfig.position;\n shepherdSteps.push({\n attachTo: {\n element: step.element,\n on: position as any // PopperPlacement\n },\n floatingUIOptions: {\n middleware: [\n position === 'auto' && autoPlacement(),\n offset({ mainAxis: 15 })\n ].filter(Boolean)\n },\n beforeShowPromise: () => {\n return Promise.all([\n this.executeActionPromise(\n this.previousStep,\n this.previousStep ? this.previousStep.beforeChange : undefined\n ),\n this.executeActionPromise(step, step.beforeShow)\n ]);\n },\n buttons: this.getButtons(\n i === 0\n ? 'first'\n : i + 1 === tourConfig.steps.length\n ? 'last'\n : tourConfig.steps[i].noBackButton\n ? 'noBackButton'\n : undefined\n ),\n classes: step.class,\n highlightClass: step.highlightClass,\n scrollTo: step.scrollToElement || tourConfig.scrollToElement || true,\n canClickTarget: step.disableInteraction\n ? !step.disableInteraction\n : undefined,\n title: this.languageService.translate.instant(\n step.title || tourConfig.title\n ),\n text: [this.languageService.translate.instant(step.text)],\n when: {\n show: () => {\n this.executeAction(step, step.onShow);\n },\n hide: () => {\n this.previousStep = step;\n this.executeAction(step, step.onHide);\n }\n }\n } satisfies StepOptions);\n i++;\n }\n\n return shepherdSteps;\n }\n\n public startTour(toolName: string) {\n const stepConfig: InteractiveTourOptions =\n this.interactiveTourLoader.getTourOptionData(toolName);\n\n this.shepherdService.defaultStepOptions = {\n classes: stepConfig.class,\n highlightClass: stepConfig.highlightClass,\n canClickTarget: stepConfig.disableInteraction\n ? !stepConfig.disableInteraction\n : true,\n cancelIcon: {\n enabled: true\n }\n };\n\n const shepherdSteps = this.getShepherdSteps(stepConfig);\n\n this.shepherdService.modal = true;\n this.shepherdService.confirmCancel = false;\n this.shepherdService.addSteps(shepherdSteps);\n\n this.shepherdService.tourObject.on('show', this.addProgress);\n this.shepherdService.tourObject.on('cancel', (index) => {\n this.checkNext(index, this.shepherdService.tourObject);\n });\n\n this.shepherdService.start();\n }\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { Component, ViewEncapsulation, inject, input } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport {\n IconService,\n IgoIconComponent,\n PRESENTATION_PLAY_ICON\n} from '@igo2/common/icon';\nimport { ToolService } from '@igo2/common/tool';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport { Observable, of } from 'rxjs';\n\nimport { InteractiveTourService } from './interactive-tour.service';\n\n@Component({\n selector: 'igo-interactive-tour',\n templateUrl: './interactive-tour.component.html',\n styleUrls: ['./interactive-tour.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatButtonModule,\n NgClass,\n MatTooltipModule,\n MatIconModule,\n AsyncPipe,\n IgoLanguageModule,\n IgoIconComponent\n ]\n})\nexport class InteractiveTourComponent {\n private interactiveTourService = inject(InteractiveTourService);\n private toolService = inject(ToolService);\n private iconService = inject(IconService);\n\n presentationIcon = PRESENTATION_PLAY_ICON;\n\n /**\n * Toolbox that holds main tools\n */\n readonly tourToStart = input('');\n readonly styleButton = input<'icon' | 'raised'>(undefined);\n readonly discoverTitleInLocale$ = input<Observable<string>>(of('IGO'));\n\n constructor() {\n this.iconService.registerSvg(this.presentationIcon);\n }\n\n getClass() {\n return {\n 'tour-button-tool-icon': this.styleButton() === 'icon',\n 'tour-button-tool': this.styleButton() === 'raised'\n };\n }\n\n get toolbox() {\n return this.toolService.toolbox;\n }\n\n getTourToStart() {\n const tourToStart = this.tourToStart();\n if (tourToStart) {\n return tourToStart;\n } else {\n return this.activeToolName;\n }\n }\n\n get activeToolName() {\n if (this.toolbox) {\n if (this.isActiveTool) {\n return this.toolbox.activeTool$.getValue().name;\n } else {\n return 'global';\n }\n } else {\n return undefined;\n }\n }\n\n get isActiveTool(): boolean {\n if (this.toolbox) {\n return this.toolbox.activeTool$.getValue() !== undefined;\n } else {\n return undefined;\n }\n }\n\n get isToolHaveTour(): boolean {\n if (this.activeToolName === 'about' && !this.tourToStart()) {\n return false;\n }\n return this.interactiveTourService.isToolHaveTourConfig(\n this.getTourToStart()\n );\n }\n\n get showTourButton(): boolean {\n // 2 conditions to show: have Tour on tool in Config file and if we are in mobile displayInMobile= true\n if (this.isToolHaveTour === false) {\n return false;\n }\n\n let inMobileAndShow: boolean;\n if (this.interactiveTourService.isMobile()) {\n inMobileAndShow = this.isTourDisplayInMobile;\n if (inMobileAndShow === false) {\n return false;\n }\n }\n return true;\n }\n\n get isTourDisplayInMobile(): boolean {\n return this.interactiveTourService.isTourDisplayInMobile();\n }\n\n get disabledTourButton(): boolean {\n return this.interactiveTourService.disabledTourButton(this.activeToolName);\n }\n\n startInteractiveTour() {\n const tour = this.getTourToStart();\n if (tour) {\n this.interactiveTourService.startTour(tour);\n } else {\n return;\n }\n }\n}\n","@if (showTourButton) {\n @if (styleButton() === 'icon') {\n <button\n (click)=\"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n disabledTourButton\n ? ('igo.common.interactiveTour.disaledTooltipTourToolButton'\n | translate)\n : ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\n \"\n [disabled]=\"disabledTourButton\"\n >\n <igo-icon [icon]=\"presentationIcon\" iconPositionEnd />\n </button>\n } @else {\n <button\n (click)=\"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n color=\"primary\"\n matButton=\"elevated\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"disabledTourButton\"\n >\n {{ 'igo.common.interactiveTour.buttonTitle' | translate }}\n {{ discoverTitleInLocale$() | async | translate }}\n <mat-icon\n [svgIcon]=\"presentationIcon.name\"\n iconPositionEnd\n [matTooltip]=\"\n disabledTourButton\n ? ('igo.common.interactiveTour.disaledTooltipTourToolButton'\n | translate)\n : ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\n \"\n />\n </button>\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { InteractiveTourComponent } from './interactive-tour.component';\nimport { InteractiveTourLoader } from './interactive-tour.loader';\nimport { InteractiveTourService } from './interactive-tour.service';\n\n@NgModule({\n imports: [InteractiveTourComponent],\n exports: [InteractiveTourComponent],\n providers: [InteractiveTourService, InteractiveTourLoader]\n})\nexport class IgoInteractiveTourModule {}\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-common-interactive-tour.mjs","sources":["../../../packages/common/interactive-tour/src/interactive-tour.loader.ts","../../../packages/common/interactive-tour/src/interactive-tour.service.ts","../../../packages/common/interactive-tour/src/interactive-tour.component.ts","../../../packages/common/interactive-tour/src/interactive-tour.component.html","../../../packages/common/interactive-tour/src/interactive-tour.module.ts","../../../packages/common/interactive-tour/src/igo2-common-interactive-tour.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\n\nimport { Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { InteractiveTourOptions } from './interactive-tour.interface';\n\n@Injectable()\nexport class InteractiveTourLoader {\n private http = inject(HttpClient);\n private configService = inject(ConfigService);\n\n private jsonURL: string;\n private allToursOptions?: Record<string, InteractiveTourOptions>;\n\n constructor() {\n this.jsonURL = this.getPathToConfigFile();\n }\n\n public loadConfigTour() {\n this.getJSON().subscribe(\n (data) => {\n this.allToursOptions = data;\n },\n () => {\n throw new Error(\n `Problem with Interactive tour configuration file: interactiveTour.json not find. Check if the file and is path is set correctly.`\n );\n }\n );\n }\n\n public getPathToConfigFile(): string {\n return (\n this.configService.getConfig('interactiveTour.pathToConfigFile') ||\n './config/interactiveTour.json'\n );\n }\n\n public getJSON(): Observable<any> {\n return this.http.get(this.jsonURL).pipe(\n catchError((e) => {\n e.error.caught = true;\n throw e;\n })\n );\n }\n\n public getTourOptionData(\n toolName: string\n ): InteractiveTourOptions | undefined {\n if (this.allToursOptions === undefined) {\n return undefined;\n }\n const nameInConfigFile = toolName.replace(/\\s/g, '');\n return this.allToursOptions[nameInConfigFile];\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { ConfigService } from '@igo2/core/config';\nimport { LanguageService } from '@igo2/core/language';\nimport { MediaService } from '@igo2/core/media';\n\nimport { autoPlacement, offset } from '@floating-ui/dom';\nimport { ShepherdService } from 'angular-shepherd';\nimport { StepOptions, Tour } from 'shepherd.js';\n\nimport {\n InteractiveTourAction,\n InteractiveTourOptions,\n InteractiveTourStep\n} from './interactive-tour.interface';\nimport { InteractiveTourLoader } from './interactive-tour.loader';\n\ninterface IIndexTour {\n index: number;\n tour: Tour;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class InteractiveTourService {\n private configService = inject(ConfigService);\n private mediaService = inject(MediaService);\n private languageService = inject(LanguageService);\n private interactiveTourLoader = inject(InteractiveTourLoader);\n private shepherdService = inject(ShepherdService);\n\n private previousStep?: InteractiveTourStep;\n\n constructor() {\n if (this.isAppHaveTour()) {\n this.interactiveTourLoader.loadConfigTour();\n }\n }\n\n public isAppHaveTour() {\n const haveTour = this.configService.getConfig(\n 'interactiveTour.activateInteractiveTour'\n );\n if (haveTour === undefined) {\n return true;\n } else {\n return haveTour;\n }\n }\n\n public isToolHaveTourConfig(toolName: string): boolean {\n const checkTourActiveOptions =\n this.interactiveTourLoader.getTourOptionData(toolName);\n if (checkTourActiveOptions === undefined) {\n return false;\n } else {\n return true;\n }\n }\n\n public disabledTourButton(toolName: string): boolean {\n const stepConfig: InteractiveTourOptions | undefined =\n this.interactiveTourLoader.getTourOptionData(toolName);\n\n if (stepConfig?.conditions) {\n for (const condition of stepConfig.conditions) {\n if (document.querySelector(condition) === null) {\n return true;\n }\n }\n }\n return false;\n }\n\n public isMobile(): boolean {\n return this.mediaService.isMobile();\n }\n\n public isTourDisplayInMobile(): boolean {\n const showInMobile = this.configService.getConfig(\n 'interactiveTour.tourInMobile'\n );\n\n return showInMobile === undefined ? true : showInMobile;\n }\n\n private getButtons(buttonKind?: 'first' | 'last' | 'noBackButton') {\n if (buttonKind === 'noBackButton') {\n return [\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n if (buttonKind === 'first') {\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.exitButton'\n ),\n type: 'cancel'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n\n if (buttonKind === 'last') {\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.backButton'\n ),\n type: 'back'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.exitButton'\n ),\n type: 'cancel'\n }\n ];\n }\n\n return [\n {\n classes: 'shepherd-button-secondary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.backButton'\n ),\n type: 'back'\n },\n {\n classes: 'shepherd-button-primary',\n text: this.languageService.translate.instant(\n 'igo.common.interactiveTour.nextButton'\n ),\n type: 'next'\n }\n ];\n }\n\n private getAction(actionName: string) {\n const action: Record<string, string> = {\n click: 'click'\n };\n return action[actionName.toLowerCase()];\n }\n\n private addProgress() {\n const self = this as any;\n let nbTry = 0;\n const maxTry = 21;\n const checkExist = setInterval(() => {\n if (self.getCurrentStep()) {\n if (\n self.getCurrentStep().options.attachTo.element &&\n !document.querySelector(\n self.getCurrentStep().options.attachTo.element\n )\n ) {\n self.cancel();\n clearInterval(checkExist);\n return;\n } else {\n const currentStepElement = self.getCurrentStep().getElement();\n const header = currentStepElement\n ? currentStepElement.querySelector('.shepherd-header')\n : undefined;\n\n nbTry++;\n if (header || nbTry > maxTry) {\n clearInterval(checkExist);\n }\n\n if (header) {\n const stepsArray = self.steps;\n const progress = document.createElement('span');\n progress.className = 'shepherd-progress';\n progress.innerText = `${\n stepsArray.indexOf(self.getCurrentStep()) + 1\n }/${stepsArray.length}`;\n header.insertBefore(\n progress,\n currentStepElement.querySelector('.shepherd-cancel-icon')\n );\n }\n }\n }\n }, 100);\n }\n\n private checkNext(index: IIndexTour, tour: any) {\n if (tour.getCurrentStep()) {\n if (\n tour.getCurrentStep().options.attachTo.element &&\n document.querySelector(tour.getCurrentStep().options.attachTo.element)\n ) {\n tour.complete();\n return;\n }\n\n if (index.index === tour.steps.length - 1) {\n tour.complete();\n return;\n }\n\n tour.steps.splice(index.index, 1);\n const nextStep = tour.steps[index.index];\n if (\n nextStep.options.attachTo.element &&\n !document.querySelector(nextStep.options.attachTo.element)\n ) {\n index.index = index.index + 1;\n this.checkNext(index, tour);\n } else {\n tour._setupModal();\n tour.show(nextStep.id);\n }\n }\n }\n\n private executeAction(\n step: InteractiveTourStep,\n actionConfig: InteractiveTourAction\n ) {\n if (!actionConfig) {\n return;\n }\n\n if (\n actionConfig.condition &&\n ((actionConfig.condition.charAt(0) === '!' &&\n document.querySelector(actionConfig.condition.slice(1))) ||\n (actionConfig.condition.charAt(0) !== '!' &&\n !document.querySelector(actionConfig.condition)))\n ) {\n return;\n }\n\n const selector = actionConfig.element || step.element;\n if (!selector) {\n return;\n }\n\n const element: HTMLElement | null = document.querySelector(\n selector\n ) as HTMLElement | null;\n const action = this.getAction(actionConfig.action);\n if (element && action) {\n (element as any)[action]();\n }\n }\n\n private executeActionPromise(\n step: InteractiveTourStep | undefined,\n actionConfig: InteractiveTourAction | undefined\n ) {\n return new Promise<void>((resolve) => {\n if (step && actionConfig) {\n this.executeAction(step, actionConfig);\n }\n if (!actionConfig || !actionConfig.waitFor) {\n resolve();\n return;\n }\n let nbTry = 0;\n const maxTry = actionConfig.maxWait ? actionConfig.maxWait / 100 : 20;\n const checkExist = setInterval(() => {\n nbTry++;\n if (nbTry > maxTry || document.querySelector(actionConfig.waitFor!)) {\n clearInterval(checkExist);\n resolve();\n }\n }, 100);\n });\n }\n\n private getShepherdSteps(tourConfig: InteractiveTourOptions) {\n const shepherdSteps: StepOptions[] = [];\n\n let i = 0;\n for (const step of tourConfig.steps) {\n const position = step.position ?? tourConfig.position;\n shepherdSteps.push({\n attachTo: {\n element: step.element,\n on: position as any // PopperPlacement\n },\n floatingUIOptions: {\n middleware: [\n position === 'auto' && autoPlacement(),\n offset({ mainAxis: 15 })\n ].filter(Boolean)\n },\n beforeShowPromise: () => {\n return Promise.all([\n this.executeActionPromise(\n this.previousStep,\n this.previousStep ? this.previousStep.beforeChange : undefined\n ),\n this.executeActionPromise(step, step.beforeShow)\n ]);\n },\n buttons: this.getButtons(\n i === 0\n ? 'first'\n : i + 1 === tourConfig.steps.length\n ? 'last'\n : tourConfig.steps[i].noBackButton\n ? 'noBackButton'\n : undefined\n ),\n classes: step.class,\n highlightClass: step.highlightClass,\n scrollTo: step.scrollToElement || tourConfig.scrollToElement || true,\n canClickTarget: step.disableInteraction\n ? !step.disableInteraction\n : undefined,\n title: this.languageService.translate.instant(\n step.title || tourConfig.title || ''\n ),\n text: [this.languageService.translate.instant(step.text)],\n when: {\n show: () => {\n if (step.onShow) {\n this.executeAction(step, step.onShow);\n }\n },\n hide: () => {\n this.previousStep = step;\n if (step.onHide) {\n this.executeAction(step, step.onHide);\n }\n }\n }\n } satisfies StepOptions);\n i++;\n }\n\n return shepherdSteps;\n }\n\n public startTour(toolName: string) {\n const stepConfig: InteractiveTourOptions | undefined =\n this.interactiveTourLoader.getTourOptionData(toolName);\n if (!stepConfig) {\n return;\n }\n\n this.shepherdService.defaultStepOptions = {\n classes: stepConfig.class,\n highlightClass: stepConfig.highlightClass,\n canClickTarget: stepConfig.disableInteraction\n ? !stepConfig.disableInteraction\n : true,\n cancelIcon: {\n enabled: true\n }\n };\n\n const shepherdSteps = this.getShepherdSteps(stepConfig);\n\n this.shepherdService.modal = true;\n this.shepherdService.confirmCancel = false;\n this.shepherdService.addSteps(shepherdSteps);\n\n if (this.shepherdService.tourObject) {\n this.shepherdService.tourObject.on('show', this.addProgress);\n this.shepherdService.tourObject.on('cancel', (index) => {\n this.checkNext(index, this.shepherdService.tourObject);\n });\n }\n\n this.shepherdService.start();\n }\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { Component, ViewEncapsulation, inject, input } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport {\n IconService,\n IgoIconComponent,\n PRESENTATION_PLAY_ICON\n} from '@igo2/common/icon';\nimport { ToolService } from '@igo2/common/tool';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport { Observable, of } from 'rxjs';\n\nimport { InteractiveTourService } from './interactive-tour.service';\n\n@Component({\n selector: 'igo-interactive-tour',\n templateUrl: './interactive-tour.component.html',\n styleUrls: ['./interactive-tour.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatButtonModule,\n NgClass,\n MatTooltipModule,\n MatIconModule,\n AsyncPipe,\n IgoLanguageModule,\n IgoIconComponent\n ]\n})\nexport class InteractiveTourComponent {\n private interactiveTourService = inject(InteractiveTourService);\n private toolService = inject(ToolService);\n private iconService = inject(IconService);\n\n presentationIcon = PRESENTATION_PLAY_ICON;\n\n /**\n * Toolbox that holds main tools\n */\n readonly tourToStart = input('');\n readonly styleButton = input<'icon' | 'raised'>();\n readonly discoverTitleInLocale$ = input<Observable<string>>(of('IGO'));\n\n constructor() {\n this.iconService.registerSvg(this.presentationIcon);\n }\n\n getClass() {\n return {\n 'tour-button-tool-icon': this.styleButton() === 'icon',\n 'tour-button-tool': this.styleButton() === 'raised'\n };\n }\n\n get toolbox() {\n return this.toolService.toolbox;\n }\n\n getTourToStart(): string | undefined {\n const tourToStart = this.tourToStart();\n if (tourToStart) {\n return tourToStart;\n } else {\n return this.activeToolName;\n }\n }\n\n get activeToolName(): string | undefined {\n if (this.toolbox) {\n const activeTool = this.toolbox.activeTool$.getValue();\n if (activeTool) {\n return activeTool.name;\n } else {\n return 'global';\n }\n } else {\n return undefined;\n }\n }\n\n get isActiveTool(): boolean {\n if (this.toolbox) {\n return this.toolbox.activeTool$.getValue() !== undefined;\n } else {\n return false;\n }\n }\n\n get isToolHaveTour(): boolean {\n const tourToStart = this.getTourToStart();\n if (!tourToStart) {\n return false;\n }\n if (this.activeToolName === 'about' && !this.tourToStart()) {\n return false;\n }\n return this.interactiveTourService.isToolHaveTourConfig(tourToStart);\n }\n\n get showTourButton(): boolean {\n // 2 conditions to show: have Tour on tool in Config file and if we are in mobile displayInMobile= true\n if (this.isToolHaveTour === false) {\n return false;\n }\n\n let inMobileAndShow: boolean;\n if (this.interactiveTourService.isMobile()) {\n inMobileAndShow = this.isTourDisplayInMobile;\n if (inMobileAndShow === false) {\n return false;\n }\n }\n return true;\n }\n\n get isTourDisplayInMobile(): boolean {\n return this.interactiveTourService.isTourDisplayInMobile();\n }\n\n get disabledTourButton(): boolean {\n const activeToolName = this.activeToolName;\n if (!activeToolName) {\n return true;\n }\n return this.interactiveTourService.disabledTourButton(activeToolName);\n }\n\n startInteractiveTour() {\n const tour = this.getTourToStart();\n if (tour) {\n this.interactiveTourService.startTour(tour);\n } else {\n return;\n }\n }\n}\n","@if (showTourButton) {\n @if (styleButton() === 'icon') {\n <button\n (click)=\"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n color=\"primary\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n disabledTourButton\n ? ('igo.common.interactiveTour.disaledTooltipTourToolButton'\n | translate)\n : ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\n \"\n [disabled]=\"disabledTourButton\"\n >\n <igo-icon [icon]=\"presentationIcon\" iconPositionEnd />\n </button>\n } @else {\n <button\n (click)=\"startInteractiveTour()\"\n [ngClass]=\"getClass()\"\n color=\"primary\"\n matButton=\"elevated\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"disabledTourButton\"\n >\n {{ 'igo.common.interactiveTour.buttonTitle' | translate }}\n {{ discoverTitleInLocale$() | async | translate }}\n <mat-icon\n [svgIcon]=\"presentationIcon.name\"\n iconPositionEnd\n [matTooltip]=\"\n disabledTourButton\n ? ('igo.common.interactiveTour.disaledTooltipTourToolButton'\n | translate)\n : ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\n \"\n />\n </button>\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { InteractiveTourComponent } from './interactive-tour.component';\nimport { InteractiveTourLoader } from './interactive-tour.loader';\nimport { InteractiveTourService } from './interactive-tour.service';\n\n@NgModule({\n imports: [InteractiveTourComponent],\n exports: [InteractiveTourComponent],\n providers: [InteractiveTourService, InteractiveTourLoader]\n})\nexport class IgoInteractiveTourModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;MAWa,qBAAqB,CAAA;AACxB,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAErC,IAAA,OAAO;AACP,IAAA,eAAe;AAEvB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE;IAC3C;IAEO,cAAc,GAAA;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CACtB,CAAC,IAAI,KAAI;AACP,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC7B,CAAC,EACD,MAAK;AACH,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,gIAAA,CAAkI,CACnI;AACH,QAAA,CAAC,CACF;IACH;IAEO,mBAAmB,GAAA;QACxB,QACE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kCAAkC,CAAC;AAChE,YAAA,+BAA+B;IAEnC;IAEO,OAAO,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACrC,UAAU,CAAC,CAAC,CAAC,KAAI;AACf,YAAA,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI;AACrB,YAAA,MAAM,CAAC;QACT,CAAC,CAAC,CACH;IACH;AAEO,IAAA,iBAAiB,CACtB,QAAgB,EAAA;AAEhB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;AACtC,YAAA,OAAO,SAAS;QAClB;QACA,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACpD,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;IAC/C;wGAhDW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAArB,qBAAqB,EAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;MCeY,sBAAsB,CAAA;AACzB,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AACzC,IAAA,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACrD,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAEzC,IAAA,YAAY;AAEpB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE;QAC7C;IACF;IAEO,aAAa,GAAA;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAC3C,yCAAyC,CAC1C;AACD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,OAAO,IAAI;QACb;aAAO;AACL,YAAA,OAAO,QAAQ;QACjB;IACF;AAEO,IAAA,oBAAoB,CAAC,QAAgB,EAAA;QAC1C,MAAM,sBAAsB,GAC1B,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AACxD,QAAA,IAAI,sBAAsB,KAAK,SAAS,EAAE;AACxC,YAAA,OAAO,KAAK;QACd;aAAO;AACL,YAAA,OAAO,IAAI;QACb;IACF;AAEO,IAAA,kBAAkB,CAAC,QAAgB,EAAA;QACxC,MAAM,UAAU,GACd,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AAExD,QAAA,IAAI,UAAU,EAAE,UAAU,EAAE;AAC1B,YAAA,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE;gBAC7C,IAAI,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;AAC9C,oBAAA,OAAO,IAAI;gBACb;YACF;QACF;AACA,QAAA,OAAO,KAAK;IACd;IAEO,QAAQ,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;IACrC;IAEO,qBAAqB,GAAA;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAC/C,8BAA8B,CAC/B;QAED,OAAO,YAAY,KAAK,SAAS,GAAG,IAAI,GAAG,YAAY;IACzD;AAEQ,IAAA,UAAU,CAAC,UAA8C,EAAA;AAC/D,QAAA,IAAI,UAAU,KAAK,cAAc,EAAE;YACjC,OAAO;AACL,gBAAA;AACE,oBAAA,OAAO,EAAE,yBAAyB;oBAClC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC1C,uCAAuC,CACxC;AACD,oBAAA,IAAI,EAAE;AACP;aACF;QACH;AACA,QAAA,IAAI,UAAU,KAAK,OAAO,EAAE;YAC1B,OAAO;AACL,gBAAA;AACE,oBAAA,OAAO,EAAE,2BAA2B;oBACpC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC1C,uCAAuC,CACxC;AACD,oBAAA,IAAI,EAAE;AACP,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,yBAAyB;oBAClC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC1C,uCAAuC,CACxC;AACD,oBAAA,IAAI,EAAE;AACP;aACF;QACH;AAEA,QAAA,IAAI,UAAU,KAAK,MAAM,EAAE;YACzB,OAAO;AACL,gBAAA;AACE,oBAAA,OAAO,EAAE,2BAA2B;oBACpC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC1C,uCAAuC,CACxC;AACD,oBAAA,IAAI,EAAE;AACP,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,yBAAyB;oBAClC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC1C,uCAAuC,CACxC;AACD,oBAAA,IAAI,EAAE;AACP;aACF;QACH;QAEA,OAAO;AACL,YAAA;AACE,gBAAA,OAAO,EAAE,2BAA2B;gBACpC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC1C,uCAAuC,CACxC;AACD,gBAAA,IAAI,EAAE;AACP,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,yBAAyB;gBAClC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC1C,uCAAuC,CACxC;AACD,gBAAA,IAAI,EAAE;AACP;SACF;IACH;AAEQ,IAAA,SAAS,CAAC,UAAkB,EAAA;AAClC,QAAA,MAAM,MAAM,GAA2B;AACrC,YAAA,KAAK,EAAE;SACR;AACD,QAAA,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC;IAEQ,WAAW,GAAA;QACjB,MAAM,IAAI,GAAG,IAAW;QACxB,IAAI,KAAK,GAAG,CAAC;QACb,MAAM,MAAM,GAAG,EAAE;AACjB,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAK;AAClC,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;gBACzB,IACE,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO;AAC9C,oBAAA,CAAC,QAAQ,CAAC,aAAa,CACrB,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAC/C,EACD;oBACA,IAAI,CAAC,MAAM,EAAE;oBACb,aAAa,CAAC,UAAU,CAAC;oBACzB;gBACF;qBAAO;oBACL,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE;oBAC7D,MAAM,MAAM,GAAG;AACb,0BAAE,kBAAkB,CAAC,aAAa,CAAC,kBAAkB;0BACnD,SAAS;AAEb,oBAAA,KAAK,EAAE;AACP,oBAAA,IAAI,MAAM,IAAI,KAAK,GAAG,MAAM,EAAE;wBAC5B,aAAa,CAAC,UAAU,CAAC;oBAC3B;oBAEA,IAAI,MAAM,EAAE;AACV,wBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK;wBAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC/C,wBAAA,QAAQ,CAAC,SAAS,GAAG,mBAAmB;wBACxC,QAAQ,CAAC,SAAS,GAAG,CAAA,EACnB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAC9C,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,EAAE;AACvB,wBAAA,MAAM,CAAC,YAAY,CACjB,QAAQ,EACR,kBAAkB,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAC1D;oBACH;gBACF;YACF;QACF,CAAC,EAAE,GAAG,CAAC;IACT;IAEQ,SAAS,CAAC,KAAiB,EAAE,IAAS,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,IACE,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO;AAC9C,gBAAA,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EACtE;gBACA,IAAI,CAAC,QAAQ,EAAE;gBACf;YACF;AAEA,YAAA,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,EAAE;gBACf;YACF;YAEA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACxC,YAAA,IACE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO;AACjC,gBAAA,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1D;gBACA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;AAC7B,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;YAC7B;iBAAO;gBACL,IAAI,CAAC,WAAW,EAAE;AAClB,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB;QACF;IACF;IAEQ,aAAa,CACnB,IAAyB,EACzB,YAAmC,EAAA;QAEnC,IAAI,CAAC,YAAY,EAAE;YACjB;QACF;QAEA,IACE,YAAY,CAAC,SAAS;aACrB,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;AACxC,gBAAA,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACtD,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;oBACvC,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EACrD;YACA;QACF;QAEA,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;QACrD,IAAI,CAAC,QAAQ,EAAE;YACb;QACF;QAEA,MAAM,OAAO,GAAuB,QAAQ,CAAC,aAAa,CACxD,QAAQ,CACa;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;AAClD,QAAA,IAAI,OAAO,IAAI,MAAM,EAAE;AACpB,YAAA,OAAe,CAAC,MAAM,CAAC,EAAE;QAC5B;IACF;IAEQ,oBAAoB,CAC1B,IAAqC,EACrC,YAA+C,EAAA;AAE/C,QAAA,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;AACnC,YAAA,IAAI,IAAI,IAAI,YAAY,EAAE;AACxB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;YACxC;YACA,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC1C,gBAAA,OAAO,EAAE;gBACT;YACF;YACA,IAAI,KAAK,GAAG,CAAC;AACb,YAAA,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,GAAG,GAAG,GAAG,EAAE;AACrE,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAK;AAClC,gBAAA,KAAK,EAAE;AACP,gBAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,OAAQ,CAAC,EAAE;oBACnE,aAAa,CAAC,UAAU,CAAC;AACzB,oBAAA,OAAO,EAAE;gBACX;YACF,CAAC,EAAE,GAAG,CAAC;AACT,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,gBAAgB,CAAC,UAAkC,EAAA;QACzD,MAAM,aAAa,GAAkB,EAAE;QAEvC,IAAI,CAAC,GAAG,CAAC;AACT,QAAA,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ;YACrD,aAAa,CAAC,IAAI,CAAC;AACjB,gBAAA,QAAQ,EAAE;oBACR,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,EAAE,EAAE,QAAe;AACpB,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,UAAU,EAAE;AACV,wBAAA,QAAQ,KAAK,MAAM,IAAI,aAAa,EAAE;AACtC,wBAAA,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;qBACxB,CAAC,MAAM,CAAC,OAAO;AACjB,iBAAA;gBACD,iBAAiB,EAAE,MAAK;oBACtB,OAAO,OAAO,CAAC,GAAG,CAAC;wBACjB,IAAI,CAAC,oBAAoB,CACvB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,SAAS,CAC/D;wBACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU;AAChD,qBAAA,CAAC;gBACJ,CAAC;AACD,gBAAA,OAAO,EAAE,IAAI,CAAC,UAAU,CACtB,CAAC,KAAK;AACJ,sBAAE;sBACA,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC;AAC3B,0BAAE;0BACA,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,8BAAE;8BACA,SAAS,CAClB;gBACD,OAAO,EAAE,IAAI,CAAC,KAAK;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,QAAQ,EAAE,IAAI,CAAC,eAAe,IAAI,UAAU,CAAC,eAAe,IAAI,IAAI;gBACpE,cAAc,EAAE,IAAI,CAAC;AACnB,sBAAE,CAAC,IAAI,CAAC;AACR,sBAAE,SAAS;AACb,gBAAA,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC3C,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,IAAI,EAAE,CACrC;AACD,gBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,gBAAA,IAAI,EAAE;oBACJ,IAAI,EAAE,MAAK;AACT,wBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;4BACf,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;wBACvC;oBACF,CAAC;oBACD,IAAI,EAAE,MAAK;AACT,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,wBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;4BACf,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;wBACvC;oBACF;AACD;AACoB,aAAA,CAAC;AACxB,YAAA,CAAC,EAAE;QACL;AAEA,QAAA,OAAO,aAAa;IACtB;AAEO,IAAA,SAAS,CAAC,QAAgB,EAAA;QAC/B,MAAM,UAAU,GACd,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE;YACf;QACF;AAEA,QAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,GAAG;YACxC,OAAO,EAAE,UAAU,CAAC,KAAK;YACzB,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,cAAc,EAAE,UAAU,CAAC;AACzB,kBAAE,CAAC,UAAU,CAAC;AACd,kBAAE,IAAI;AACR,YAAA,UAAU,EAAE;AACV,gBAAA,OAAO,EAAE;AACV;SACF;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAEvD,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,KAAK;AAC1C,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACnC,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;AAC5D,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;gBACrD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AACxD,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;IAC9B;wGA3WW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCSY,wBAAwB,CAAA;AAC3B,IAAA,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACvD,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEzC,gBAAgB,GAAG,sBAAsB;AAEzC;;AAEG;AACM,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,kFAAC;IACvB,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAqB;IACxC,sBAAsB,GAAG,KAAK,CAAqB,EAAE,CAAC,KAAK,CAAC,6FAAC;AAEtE,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACrD;IAEA,QAAQ,GAAA;QACN,OAAO;AACL,YAAA,uBAAuB,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM;AACtD,YAAA,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK;SAC5C;IACH;AAEA,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;IACjC;IAEA,cAAc,GAAA;AACZ,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;QACtC,IAAI,WAAW,EAAE;AACf,YAAA,OAAO,WAAW;QACpB;aAAO;YACL,OAAO,IAAI,CAAC,cAAc;QAC5B;IACF;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;YACtD,IAAI,UAAU,EAAE;gBACd,OAAO,UAAU,CAAC,IAAI;YACxB;iBAAO;AACL,gBAAA,OAAO,QAAQ;YACjB;QACF;aAAO;AACL,YAAA,OAAO,SAAS;QAClB;IACF;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,SAAS;QAC1D;aAAO;AACL,YAAA,OAAO,KAAK;QACd;IACF;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;QACzC,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AAC1D,YAAA,OAAO,KAAK;QACd;QACA,OAAO,IAAI,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,WAAW,CAAC;IACtE;AAEA,IAAA,IAAI,cAAc,GAAA;;AAEhB,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;AACjC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,eAAwB;AAC5B,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE;AAC1C,YAAA,eAAe,GAAG,IAAI,CAAC,qBAAqB;AAC5C,YAAA,IAAI,eAAe,KAAK,KAAK,EAAE;AAC7B,gBAAA,OAAO,KAAK;YACd;QACF;AACA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,IAAI,qBAAqB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,EAAE;IAC5D;AAEA,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;QAC1C,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,OAAO,IAAI;QACb;QACA,OAAO,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,cAAc,CAAC;IACvE;IAEA,oBAAoB,GAAA;AAClB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;QAClC,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7C;aAAO;YACL;QACF;IACF;wGAzGW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjCrC,m3CA4CA,EAAA,MAAA,EAAA,CAAA,4sBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDpBI,eAAe,2iBACf,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACP,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEb,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,gBAAgB,2EAFhB,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;4FAKA,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAfpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,aAAA,EAGjB,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B;wBACP,eAAe;wBACf,OAAO;wBACP,gBAAgB;wBAChB,aAAa;wBACb,SAAS;wBACT,iBAAiB;wBACjB;AACD,qBAAA,EAAA,QAAA,EAAA,m3CAAA,EAAA,MAAA,EAAA,CAAA,4sBAAA,CAAA,EAAA;;;MEpBU,wBAAwB,CAAA;wGAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAxB,wBAAwB,EAAA,OAAA,EAAA,CAJzB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CACxB,wBAAwB,CAAA,EAAA,CAAA;AAGvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,aAFxB,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,YAFhD,wBAAwB,CAAA,EAAA,CAAA;;4FAIvB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,wBAAwB,CAAC;oBACnC,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACnC,oBAAA,SAAS,EAAE,CAAC,sBAAsB,EAAE,qBAAqB;AAC1D,iBAAA;;;ACVD;;AAEG;;;;"}
|
|
@@ -16,10 +16,10 @@ class JsonDialogComponent {
|
|
|
16
16
|
getKey(baseKey, key) {
|
|
17
17
|
return (baseKey ? baseKey + '.' : '') + key;
|
|
18
18
|
}
|
|
19
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
20
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: JsonDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: JsonDialogComponent, isStandalone: true, selector: "igo-json-dialog", ngImport: i0, template: "<h1 mat-dialog-title>{{ title }}</h1>\n\n<div mat-dialog-content>\n <ng-container *ngTemplateOutlet=\"loopObject; context: { obj: data }\" />\n\n <ng-template #loopObject let-obj=\"obj\" let-baseKey=\"baseKey\">\n @for (property of obj | keyvalue; track property) {\n @if (ignoreKeys?.indexOf(getKey(baseKey, $any(property.key))) === -1) {\n @if (isObject(property.value)) {\n <ng-container\n *ngTemplateOutlet=\"\n loopObject;\n context: {\n obj: property.value,\n baseKey: getKey(baseKey, $any(property.key))\n }\n \"\n />\n } @else {\n <p>\n <span\n ><b>{{ getKey(baseKey, $any(property.key)) }}</b> : </span\n ><span class=\"propertyValue\" [innerHtml]=\"property.value\"></span>\n </p>\n }\n }\n }\n </ng-template>\n</div>\n\n<div mat-dialog-actions>\n <button matButton color=\"primary\" (click)=\"dialogRef.close(false)\">OK</button>\n</div>\n", dependencies: [{ kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }] });
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: JsonDialogComponent, decorators: [{
|
|
23
23
|
type: Component,
|
|
24
24
|
args: [{ selector: 'igo-json-dialog', imports: [
|
|
25
25
|
MatDialogTitle,
|
|
@@ -28,7 +28,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
28
28
|
MatDialogActions,
|
|
29
29
|
MatButtonModule,
|
|
30
30
|
KeyValuePipe
|
|
31
|
-
], template: "<h1 mat-dialog-title>{{ title }}</h1>\n\n<div mat-dialog-content>\n <ng-container *ngTemplateOutlet=\"loopObject; context: { obj: data }\" />\n\n <ng-template #loopObject let-obj=\"obj\" let-baseKey=\"baseKey\">\n @for (property of obj | keyvalue; track property) {\n @if (ignoreKeys
|
|
31
|
+
], template: "<h1 mat-dialog-title>{{ title }}</h1>\n\n<div mat-dialog-content>\n <ng-container *ngTemplateOutlet=\"loopObject; context: { obj: data }\" />\n\n <ng-template #loopObject let-obj=\"obj\" let-baseKey=\"baseKey\">\n @for (property of obj | keyvalue; track property) {\n @if (ignoreKeys?.indexOf(getKey(baseKey, $any(property.key))) === -1) {\n @if (isObject(property.value)) {\n <ng-container\n *ngTemplateOutlet=\"\n loopObject;\n context: {\n obj: property.value,\n baseKey: getKey(baseKey, $any(property.key))\n }\n \"\n />\n } @else {\n <p>\n <span\n ><b>{{ getKey(baseKey, $any(property.key)) }}</b> : </span\n ><span class=\"propertyValue\" [innerHtml]=\"property.value\"></span>\n </p>\n }\n }\n }\n </ng-template>\n</div>\n\n<div mat-dialog-actions>\n <button matButton color=\"primary\" (click)=\"dialogRef.close(false)\">OK</button>\n</div>\n" }]
|
|
32
32
|
}] });
|
|
33
33
|
|
|
34
34
|
class JsonDialogService {
|
|
@@ -42,10 +42,10 @@ class JsonDialogService {
|
|
|
42
42
|
dialogRef.componentInstance.ignoreKeys = ignoreKeys ?? [];
|
|
43
43
|
return dialogRef.afterClosed();
|
|
44
44
|
}
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
46
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: JsonDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: JsonDialogService });
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: JsonDialogService, decorators: [{
|
|
49
49
|
type: Injectable
|
|
50
50
|
}] });
|
|
51
51
|
|
|
@@ -58,11 +58,11 @@ class IgoJsonDialogModule {
|
|
|
58
58
|
ngModule: IgoJsonDialogModule
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
62
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
63
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
61
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: IgoJsonDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
62
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.19", ngImport: i0, type: IgoJsonDialogModule, imports: [JsonDialogComponent], exports: [JsonDialogComponent] });
|
|
63
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: IgoJsonDialogModule, providers: [JsonDialogService], imports: [JsonDialogComponent] });
|
|
64
64
|
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: IgoJsonDialogModule, decorators: [{
|
|
66
66
|
type: NgModule,
|
|
67
67
|
args: [{
|
|
68
68
|
imports: [JsonDialogComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-json-dialog.mjs","sources":["../../../packages/common/json-dialog/src/json-dialog.component.ts","../../../packages/common/json-dialog/src/json-dialog.component.html","../../../packages/common/json-dialog/src/json-dialog.service.ts","../../../packages/common/json-dialog/src/json-dialog.module.ts","../../../packages/common/json-dialog/src/igo2-common-json-dialog.ts"],"sourcesContent":["import { KeyValuePipe, NgTemplateOutlet } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MatDialogActions,\n MatDialogContent,\n MatDialogRef,\n MatDialogTitle\n} from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-json-dialog',\n templateUrl: './json-dialog.component.html',\n imports: [\n MatDialogTitle,\n MatDialogContent,\n NgTemplateOutlet,\n MatDialogActions,\n MatButtonModule,\n KeyValuePipe\n ]\n})\nexport class JsonDialogComponent {\n dialogRef = inject<MatDialogRef<JsonDialogComponent>>(MatDialogRef);\n\n public title
|
|
1
|
+
{"version":3,"file":"igo2-common-json-dialog.mjs","sources":["../../../packages/common/json-dialog/src/json-dialog.component.ts","../../../packages/common/json-dialog/src/json-dialog.component.html","../../../packages/common/json-dialog/src/json-dialog.service.ts","../../../packages/common/json-dialog/src/json-dialog.module.ts","../../../packages/common/json-dialog/src/igo2-common-json-dialog.ts"],"sourcesContent":["import { KeyValuePipe, NgTemplateOutlet } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MatDialogActions,\n MatDialogContent,\n MatDialogRef,\n MatDialogTitle\n} from '@angular/material/dialog';\n\n@Component({\n selector: 'igo-json-dialog',\n templateUrl: './json-dialog.component.html',\n imports: [\n MatDialogTitle,\n MatDialogContent,\n NgTemplateOutlet,\n MatDialogActions,\n MatButtonModule,\n KeyValuePipe\n ]\n})\nexport class JsonDialogComponent {\n dialogRef = inject<MatDialogRef<JsonDialogComponent>>(MatDialogRef);\n\n public title?: string;\n public data: any;\n public ignoreKeys?: string[];\n\n isObject(val: any) {\n return typeof val === 'object' && !Array.isArray(val);\n }\n\n getKey(baseKey: string, key: string) {\n return (baseKey ? baseKey + '.' : '') + key;\n }\n}\n","<h1 mat-dialog-title>{{ title }}</h1>\n\n<div mat-dialog-content>\n <ng-container *ngTemplateOutlet=\"loopObject; context: { obj: data }\" />\n\n <ng-template #loopObject let-obj=\"obj\" let-baseKey=\"baseKey\">\n @for (property of obj | keyvalue; track property) {\n @if (ignoreKeys?.indexOf(getKey(baseKey, $any(property.key))) === -1) {\n @if (isObject(property.value)) {\n <ng-container\n *ngTemplateOutlet=\"\n loopObject;\n context: {\n obj: property.value,\n baseKey: getKey(baseKey, $any(property.key))\n }\n \"\n />\n } @else {\n <p>\n <span\n ><b>{{ getKey(baseKey, $any(property.key)) }}</b> : </span\n ><span class=\"propertyValue\" [innerHtml]=\"property.value\"></span>\n </p>\n }\n }\n }\n </ng-template>\n</div>\n\n<div mat-dialog-actions>\n <button matButton color=\"primary\" (click)=\"dialogRef.close(false)\">OK</button>\n</div>\n","import { Injectable, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Observable } from 'rxjs';\n\nimport { JsonDialogComponent } from './json-dialog.component';\n\n@Injectable()\nexport class JsonDialogService {\n private dialog = inject(MatDialog);\n\n public open(\n title: string,\n data: any,\n ignoreKeys?: string[]\n ): Observable<any> {\n const dialogRef = this.dialog.open(JsonDialogComponent, {\n disableClose: false\n });\n dialogRef.componentInstance.data = data;\n dialogRef.componentInstance.title = title;\n dialogRef.componentInstance.ignoreKeys = ignoreKeys ?? [];\n\n return dialogRef.afterClosed();\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { JsonDialogComponent } from './json-dialog.component';\nimport { JsonDialogService } from './json-dialog.service';\n\n@NgModule({\n imports: [JsonDialogComponent],\n exports: [JsonDialogComponent],\n providers: [JsonDialogService]\n})\nexport class IgoJsonDialogModule {\n /**\n * @deprecated it has no effect\n */\n static forRoot(): ModuleWithProviders<IgoJsonDialogModule> {\n return {\n ngModule: IgoJsonDialogModule\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,15 @@ import { Pipe, NgModule } from '@angular/core';
|
|
|
4
4
|
class KeyValuePipe {
|
|
5
5
|
transform(value) {
|
|
6
6
|
const keyValues = [];
|
|
7
|
-
|
|
7
|
+
if (value) {
|
|
8
|
+
Object.getOwnPropertyNames(value).forEach((key) => keyValues.push({ key, value: value[key] }));
|
|
9
|
+
}
|
|
8
10
|
return keyValues;
|
|
9
11
|
}
|
|
10
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
11
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KeyValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.19", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue" });
|
|
12
14
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KeyValuePipe, decorators: [{
|
|
14
16
|
type: Pipe,
|
|
15
17
|
args: [{
|
|
16
18
|
name: 'keyvalue'
|
|
@@ -27,11 +29,11 @@ class IgoKeyValueModule {
|
|
|
27
29
|
providers: []
|
|
28
30
|
};
|
|
29
31
|
}
|
|
30
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
31
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
32
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
32
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: IgoKeyValueModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
33
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.19", ngImport: i0, type: IgoKeyValueModule, imports: [KeyValuePipe], exports: [KeyValuePipe] });
|
|
34
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: IgoKeyValueModule });
|
|
33
35
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: IgoKeyValueModule, decorators: [{
|
|
35
37
|
type: NgModule,
|
|
36
38
|
args: [{
|
|
37
39
|
imports: [KeyValuePipe],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-keyvalue.mjs","sources":["../../../packages/common/keyvalue/src/keyvalue.pipe.ts","../../../packages/common/keyvalue/src/keyvalue.module.ts","../../../packages/common/keyvalue/src/igo2-common-keyvalue.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyvalue'\n})\nexport class KeyValuePipe implements PipeTransform {\n transform(value: any): any {\n const keyValues = [];\n Object.getOwnPropertyNames(value).forEach((key: string) =>\n
|
|
1
|
+
{"version":3,"file":"igo2-common-keyvalue.mjs","sources":["../../../packages/common/keyvalue/src/keyvalue.pipe.ts","../../../packages/common/keyvalue/src/keyvalue.module.ts","../../../packages/common/keyvalue/src/igo2-common-keyvalue.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyvalue'\n})\nexport class KeyValuePipe implements PipeTransform {\n transform(value: any): { key: string; value: any }[] {\n const keyValues: { key: string; value: any }[] = [];\n if (value) {\n Object.getOwnPropertyNames(value).forEach((key: string) =>\n keyValues.push({ key, value: value[key] })\n );\n }\n\n return keyValues;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { KeyValuePipe } from './keyvalue.pipe';\n\n/**\n * @deprecated import the KeyValuePipe directly\n */\n@NgModule({\n imports: [KeyValuePipe],\n exports: [KeyValuePipe]\n})\nexport class IgoKeyValueModule {\n static forRoot(): ModuleWithProviders<IgoKeyValueModule> {\n return {\n ngModule: IgoKeyValueModule,\n providers: []\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAKa,YAAY,CAAA;AACvB,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,MAAM,SAAS,GAAkC,EAAE;QACnD,IAAI,KAAK,EAAE;AACT,YAAA,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KACpD,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAC3C;QACH;AAEA,QAAA,OAAO,SAAS;IAClB;wGAVW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE;AACP,iBAAA;;;ACAD;;AAEG;MAKU,iBAAiB,CAAA;AAC5B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE;SACZ;IACH;wGANW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAjB,iBAAiB,EAAA,OAAA,EAAA,CAHlB,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,YAAY,CAAA,EAAA,CAAA;yGAEX,iBAAiB,EAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,OAAO,EAAE,CAAC,YAAY;AACvB,iBAAA;;;ACVD;;AAEG;;;;"}
|