@provoly/dashboard 1.3.12 → 1.3.14

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 (40) hide show
  1. package/components/paginator/paginator.component.d.ts +2 -1
  2. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +5 -2
  3. package/esm2022/components/data-format/data-format.pipe.mjs +7 -19
  4. package/esm2022/components/paginator/paginator.component.mjs +9 -2
  5. package/esm2022/import/components/list/import-list.component.mjs +16 -8
  6. package/esm2022/import/components/version-modal/version-modal.component.mjs +5 -4
  7. package/esm2022/import/i18n/en.translations.mjs +3 -3
  8. package/esm2022/import/i18n/fr.translations.mjs +3 -3
  9. package/esm2022/lib/core/i18n/en.translations.mjs +2 -2
  10. package/esm2022/lib/core/i18n/fr.translations.mjs +2 -2
  11. package/esm2022/lib/core/store/data-source/data-source.actions.mjs +1 -1
  12. package/esm2022/lib/core/store/data-source/data-source.service.mjs +4 -4
  13. package/esm2022/lib/core/store/search/search.effects.mjs +1 -1
  14. package/esm2022/lib/dashboard/action-bus/service/bus.service.mjs +4 -4
  15. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +3 -3
  16. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +4 -4
  17. package/esm2022/lib/dashboard/store/manifest-utils.class.mjs +2 -2
  18. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +2 -2
  19. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
  20. package/fesm2022/provoly-dashboard-admin.mjs +4 -1
  21. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  22. package/fesm2022/provoly-dashboard-components-data-format.mjs +6 -18
  23. package/fesm2022/provoly-dashboard-components-data-format.mjs.map +1 -1
  24. package/fesm2022/provoly-dashboard-components-paginator.mjs +8 -1
  25. package/fesm2022/provoly-dashboard-components-paginator.mjs.map +1 -1
  26. package/fesm2022/provoly-dashboard-import.mjs +21 -14
  27. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  28. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +1 -1
  29. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  30. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
  31. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  32. package/fesm2022/provoly-dashboard.mjs +12 -12
  33. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  34. package/import/components/list/import-list.component.d.ts +5 -3
  35. package/lib/core/i18n/en.translations.d.ts +1 -1
  36. package/lib/core/i18n/fr.translations.d.ts +1 -1
  37. package/lib/core/store/data-source/data-source.actions.d.ts +4 -4
  38. package/lib/core/store/data-source/data-source.effects.d.ts +2 -2
  39. package/lib/core/store/data-source/data-source.service.d.ts +2 -2
  40. package/package.json +1 -1
@@ -7,6 +7,7 @@ export declare class PryPaginatorComponent {
7
7
  nbPerPage: import("@angular/core").InputSignal<number>;
8
8
  totalItemNb: import("@angular/core").InputSignal<number>;
9
9
  mode: import("@angular/core").InputSignal<"long" | "short">;
10
+ goBackToFirstPage: import("@angular/core").InputSignal<any>;
10
11
  nbOfPages: import("@angular/core").Signal<number>;
11
12
  pages: import("@angular/core").Signal<number[]>;
12
13
  currentPage: import("@angular/core").WritableSignal<number>;
@@ -15,5 +16,5 @@ export declare class PryPaginatorComponent {
15
16
  dispatchPageChangeAction(): void;
16
17
  changePage(page: number): void;
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<PryPaginatorComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<PryPaginatorComponent, "pry-paginator", never, { "action": { "alias": "action"; "required": false; "isSignal": true; }; "nbPerPage": { "alias": "nbPerPage"; "required": false; "isSignal": true; }; "totalItemNb": { "alias": "totalItemNb"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; }, never, never, false, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<PryPaginatorComponent, "pry-paginator", never, { "action": { "alias": "action"; "required": false; "isSignal": true; }; "nbPerPage": { "alias": "nbPerPage"; "required": false; "isSignal": true; }; "totalItemNb": { "alias": "totalItemNb"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "goBackToFirstPage": { "alias": "goBackToFirstPage"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; }, never, never, false, never>;
19
20
  }
@@ -84,7 +84,10 @@ export class AdminAttributesFormComponent extends SubscriptionnerDirective {
84
84
  this.selectedFieldTypeDescription$ = combineLatest([
85
85
  this.attrForm.get('field').valueChanges.pipe(startWith(this.attrForm.get('field')?.value)),
86
86
  this.fields$
87
- ]).pipe(map(([selectedFieldId, fields]) => FIELD_I18N.information + fields.find((field) => field.id === selectedFieldId)?.type));
87
+ ]).pipe(map(([selectedFieldId, fields]) => !selectedFieldId
88
+ ? ''
89
+ : FIELD_I18N.information +
90
+ fields.find((field) => field.id === (typeof selectedFieldId === 'string' ? selectedFieldId : selectedFieldId.id))?.type));
88
91
  }
89
92
  goBack() {
90
93
  const redirectPath = this.selectedAttribute ? '../..' : '..';
@@ -145,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
145
148
  }], selectedAttribute: [{
146
149
  type: Input
147
150
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1mb3JtL2FkbWluLWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtZm9ybS9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBd0MsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbEYsT0FBTyxFQUdMLGVBQWUsRUFDZixpQkFBaUIsRUFFakIscUJBQXFCLEVBRXJCLFVBQVUsRUFDVixZQUFZLEVBQ1osY0FBYyxFQUdkLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckcsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlD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aUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5RyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN4RCxHQUFHLENBQUMsU0FBVSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLEdBQUcsQ0FBQyxTQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUN2QixRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUU7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OEdBdEtVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHNNQy9CekMsMjVKQXFIQTs7MkZEdEZhLDRCQUE0QjtrQkFKeEMsU0FBUzsrQkFDRSwyQkFBMkI7eU5BaUI1QixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIENhdGVnb3J5LFxuICBDYXRlZ29yeUFjdGlvbnMsXG4gIENhdGVnb3J5U2VsZWN0b3JzLFxuICBDbGFzcyxcbiAgREVGQVVMVF9DQVRFR09SWV9VVUlELFxuICBGaWVsZCxcbiAgRklFTERfSTE4TixcbiAgRmllbGRBY3Rpb25zLFxuICBGaWVsZFNlbGVjdG9ycyxcbiAgUHJ5RGlhbG9nU2VydmljZSxcbiAgUHJ5STE4blNlcnZpY2UsXG4gIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IG5vV2hpdGVzcGFjZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvYWRtaW4uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2FkbWluLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc0FjdGlvbnMgfSBmcm9tICcuLi8uLi9zdG9yZS9hZG1pbi1jbGFzcy5hY3Rpb25zJztcbmltcG9ydCB7IEFkZENhdGVnb3J5TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvYWRkLWNhdGVnb3J5LW1vZGFsL2FkZC1jYXRlZ29yeS1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1hdHRyaWJ1dGVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkF0dHJpYnV0ZXNGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBhdHRyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBhdHRyaWJ1dGVOYW1lcz86IHN0cmluZ1tdO1xuICBhdHRyaWJ1dGVUZWNobmljYWxOYW1lcz86IHN0cmluZ1tdO1xuICBuYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBuYW1lQWxyZWFkeUV4aXN0cyA9IGZhbHNlO1xuICB0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyA9IGZhbHNlO1xuXG4gIGZpZWxkcyQ6IE9ic2VydmFibGU8RmllbGRbXT47XG4gIHNlbGVjdGVkRmllbGRUeXBlRGVzY3JpcHRpb24kITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBjYXRlZ29yaWVzJDogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPjtcblxuICBASW5wdXQoKSBzZWxlY3RlZENsYXNzPzogQ2xhc3M7XG4gIEBJbnB1dCgpIGludGVyQ2xhc3M/OiBDbGFzcztcbiAgQElucHV0KCkgc2VsZWN0ZWRBdHRyaWJ1dGU/OiBBdHRyaWJ1dGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGkxOG5TZXJ2aWNlOiBQcnlJMThuU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogUHJ5RGlhbG9nU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRmllbGRBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENhdGVnb3J5QWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKTtcblxuICAgIHRoaXMuYXR0ckZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGlkOiBbdXVpZCgpXSxcbiAgICAgIHRlY2huaWNhbE5hbWU6IFtcbiAgICAgICAgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKSwgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yXVxuICAgICAgXSxcbiAgICAgIG5hbWU6IFsnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSwgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yXV0sXG4gICAgICBkZXNjcmlwdGlvbjogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgIGZpZWxkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjYXRlZ29yeTogW0RFRkFVTFRfQ0FURUdPUllfVVVJRF0sXG4gICAgICBtdWx0aVZhbHVlZDogW2ZhbHNlXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHRyaWJ1dGVOYW1lcyA9IHRoaXMuaW50ZXJDbGFzcz8uYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcbiAgICB0aGlzLmF0dHJpYnV0ZVRlY2huaWNhbE5hbWVzID0gdGhpcy5pbnRlckNsYXNzPy5hdHRyaWJ1dGVzLm1hcCgoYXR0cjogQXR0cmlidXRlKSA9PiBhdHRyLnRlY2huaWNhbE5hbWUpO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDbGFzcykge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVOYW1lcyA9IHRoaXMuc2VsZWN0ZWRDbGFzcy5hdHRyaWJ1dGVzLm1hcCgoYXR0cjogQXR0cmlidXRlKSA9PiBhdHRyLm5hbWUpO1xuICAgICAgdGhpcy5hdHRyaWJ1dGVUZWNobmljYWxOYW1lcyA9IHRoaXMuc2VsZWN0ZWRDbGFzcy5hdHRyaWJ1dGVzLm1hcCgoYXR0cjogQXR0cmlidXRlKSA9PiBhdHRyLnRlY2huaWNhbE5hbWUpO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSkge1xuICAgICAgICB0aGlzLmF0dHJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGlkOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLmlkLFxuICAgICAgICAgIHRlY2huaWNhbE5hbWU6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUudGVjaG5pY2FsTmFtZSxcbiAgICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLm5hbWUgPz8gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS50ZWNobmljYWxOYW1lLFxuICAgICAgICAgIGZpZWxkOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLmZpZWxkLFxuICAgICAgICAgIGNhdGVnb3J5OiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLmNhdGVnb3J5XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmF0dHJGb3JtLmNvbnRyb2xzWydmaWVsZCddLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVOYW1lcykge1xuICAgICAgdGhpcy5uYW1lQWxyZWFkeUV4aXN0cyQgPSB0aGlzLmF0dHJGb3JtXG4gICAgICAgIC5nZXQoJ25hbWUnKSFcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgIG1hcCgodmFsdWUpID0+ICEhdGhpcy5hdHRyaWJ1dGVOYW1lcz8uaW5jbHVkZXModmFsdWUpICYmIHZhbHVlICE9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGU/Lm5hbWUpXG4gICAgICAgICk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMubmFtZUFscmVhZHlFeGlzdHMkLnN1YnNjcmliZSgodmFsdWUpID0+ICh0aGlzLm5hbWVBbHJlYWR5RXhpc3RzID0gdmFsdWUpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuYXR0ckZvcm1cbiAgICAgICAgLmdldCgndGVjaG5pY2FsTmFtZScpIVxuICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgZGVib3VuY2VUaW1lKDUwMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIG5hbWU6IHZhbHVlLnNsaWNlKDAsIDUwKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVUZWNobmljYWxOYW1lcykge1xuICAgICAgdGhpcy50ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyQgPSB0aGlzLmF0dHJGb3JtXG4gICAgICAgIC5nZXQoJ3RlY2huaWNhbE5hbWUnKSFcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICh2YWx1ZSkgPT4gISF0aGlzLmF0dHJpYnV0ZVRlY2huaWNhbE5hbWVzPy5pbmNsdWRlcyh2YWx1ZSkgJiYgdmFsdWUgIT0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZT8udGVjaG5pY2FsTmFtZVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIHRoaXMudGVjaG5pY2FsTmFtZUFscmVhZHlFeGlzdHMkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnRlY2huaWNhbE5hbWVBbHJlYWR5RXhpc3RzID0gdmFsdWU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRGaWVsZFR5cGVEZXNjcmlwdGlvbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYXR0ckZvcm0uZ2V0KCdmaWVsZCcpIS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5hdHRyRm9ybS5nZXQoJ2ZpZWxkJyk/LnZhbHVlKSksXG4gICAgICB0aGlzLmZpZWxkcyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW3NlbGVjdGVkRmllbGRJZCwgZmllbGRzXSkgPT5cbiAgICAgICAgICBGSUVMRF9JMThOLmluZm9ybWF0aW9uICsgZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5pZCA9PT0gc2VsZWN0ZWRGaWVsZElkKT8udHlwZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgY29uc3QgcmVkaXJlY3RQYXRoID0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSA/ICcuLi8uLicgOiAnLi4nO1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFtyZWRpcmVjdFBhdGhdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHBhdGgudG9TdHJpbmcoKSB9KSk7XG4gIH1cblxuICBhZGRBdHRyaWJ1dGUoKSB7XG4gICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIG5hbWU6IHRoaXMuYXR0ckZvcm0udmFsdWUubmFtZS50cmltKClcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5hdHRyRm9ybS52YWx1ZS5uYW1lKSB7XG4gICAgICB0aGlzLmF0dHJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBuYW1lOiB0aGlzLmF0dHJGb3JtLnZhbHVlLnRlY2huaWNhbE5hbWUuc2xpY2UoMCwgNTApXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hdHRyRm9ybS52YWxpZCkge1xuICAgICAgbGV0IGF0dHJUb1NhdmUgPSB0aGlzLmF0dHJGb3JtLmdldFJhd1ZhbHVlKCkgYXMgQXR0cmlidXRlO1xuICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSkge1xuICAgICAgICBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uLy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDbGFzcykge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzcyh7XG4gICAgICAgICAgICBjbGFzc0lkOiB0aGlzLnNlbGVjdGVkQ2xhc3MuaWQsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJUb1NhdmUsXG4gICAgICAgICAgICByb3V0ZTogcGF0aC50b1N0cmluZygpXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlckNsYXNzKSB7XG4gICAgICAgIGxldCBpbnRlckF0dHJpYnV0ZSA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMuaW50ZXJDbGFzcy5hdHRyaWJ1dGVzKTtcbiAgICAgICAgbGV0IGludGVyQ2xhc3NVcGRhdGVkID0geyAuLi50aGlzLmludGVyQ2xhc3MgfTtcbiAgICAgICAgaW50ZXJBdHRyaWJ1dGUucHVzaChhdHRyVG9TYXZlKTtcbiAgICAgICAgaW50ZXJDbGFzc1VwZGF0ZWQuYXR0cmlidXRlcyA9IGludGVyQXR0cmlidXRlO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVJbnRlckNsYXNzKHsgY2xhc3M6IGludGVyQ2xhc3NVcGRhdGVkLCByb3V0ZTogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2cub3BlbihBZGRDYXRlZ29yeU1vZGFsQ29tcG9uZW50KTtcbiAgICByZWYuY29tcG9uZW50IS5lbnRpdHlUeXBlID0gJ2F0dHJpYnV0ZSc7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHJlZi5jb21wb25lbnQhLmNhdGVnb3J5LnN1YnNjcmliZSgoY2F0ZWdvcnkpID0+IHtcbiAgICAgICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBjYXRlZ29yeTogY2F0ZWdvcnkuaWRcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChyZWYuY29tcG9uZW50IS5jbG9zZU1vZGFsLnN1YnNjcmliZSgoKSA9PiByZWYuY2xvc2UoKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEZJRUxEX0kxOE4gPSBGSUVMRF9JMThOO1xufVxuIiwiPGZvcm0gY2xhc3M9XCJvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImF0dHJGb3JtXCIgKG5nU3VibWl0KT1cImFkZEF0dHJpYnV0ZSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLXNtXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImF0dHJfdGVjaG5pY2FsTmFtZVwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuYXR0cmlidXRlcy50ZWNobmljYWxOYW1lJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxpbnB1dCBpZD1cImF0dHJfdGVjaG5pY2FsTmFtZVwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZWNobmljYWxOYW1lXCIgcmVxdWlyZWQgLz5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl90ZWNobmljYWxOYW1lXCIgKm5nSWY9XCJ0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyQgfCBhc3luY1wiPnt7XG4gICAgICAnQHByeS5hZG1pbi5leGlzdHMnIHwgaTE4blxuICAgIH19PC9sYWJlbD5cbiAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/LmludmFsaWRcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyRm9ybS5nZXQoJ3RlY2huaWNhbE5hbWUnKT8uZGlydHkgJiYgYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgndGVjaG5pY2FsTmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfdGVjaG5pY2FsTmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWluTGVuZ3RoJyB8IGkxOG46IHsgbGVuOiAyIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl90ZWNobmljYWxOYW1lXCI+e3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5tYXhMZW5ndGgnIHwgaTE4bjogeyBsZW46IDEwMCB9XG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGF0dHJGb3JtLmdldCgndGVjaG5pY2FsTmFtZScpPy5oYXNFcnJvcignd2hpdGVzcGFjZScpICYmICFhdHRyRm9ybS5nZXQoJ3RlY2huaWNhbE5hbWUnKT8uaGFzRXJyb3IoJ21pbmxlbmd0aCcpXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57e1xuICAgICAgICAgICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuXG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8aW5wdXQgaWQ9XCJhdHRyX25hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiICpuZ0lmPVwibmFtZUFscmVhZHlFeGlzdHMkIHwgYXN5bmNcIj57e1xuICAgICAgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl9uYW1lXCI+e3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5tYXhMZW5ndGgnIHwgaTE4bjogeyBsZW46IDUwIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7ICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0eXBlXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hdHRyaWJ1dGVzLmZpZWxkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleFwiPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgaWQ9XCJ0eXBlXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIlxuICAgICAgICBbaXRlbXNdPVwiZmllbGRzJCB8IGFzeW5jXCJcbiAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJ0cnVlXCJcbiAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgcmVxdWlyZWQ9XCJ0cnVlXCJcbiAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlT3B0aW9uXCJcbiAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlT3B0aW9uIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxpZ25lZC1vcHRpb25cIj5cbiAgICAgICAgICA8cD57eyBpdGVtLm5hbWUgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImEtY2hpcFwiICpuZ0lmPVwiaXRlbS5jcnNcIj57eyBpdGVtLmNycyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibS1pbmZvLWljb24gYS10b29sdGlwIC10b29sdGlwLXdpZHRoLWxnIHUtc2VsZi1jZW50ZXIgdS1mbGV4LXNocmluay0wXCJcbiAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIihzZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJCB8IGFzeW5jKSA/PyAnJyB8IGkxOG5cIlxuICAgICAgICBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJyaWdodFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuPmk8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5kaXJ0eSAmJiBhdHRyRm9ybS5nZXQoJ2ZpZWxkJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJ0eXBlXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiY2F0ZWdvcnlcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMuY2F0ZWdvcnknIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgPHByeS1zZWxlY3RcbiAgICAgIGlkPVwiY2F0ZWdvcnlcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgW2l0ZW1zXT1cImNhdGVnb3JpZXMkIHwgYXN5bmNcIlxuICAgICAgKGNsaWNrKT1cIm9wZW5Nb2RhbCgpXCJcbiAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICA+PC9wcnktc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXdpZHRoLXNtXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2FuY2VsJyB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdjbGFzc2VzJywgYWN0aW9uOiAnYWRkX2F0dHJpYnV0ZScgfVwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2Rpc2FibGVkXT1cImF0dHJGb3JtLmludmFsaWQgfHwgbmFtZUFscmVhZHlFeGlzdHMgfHwgdGVjaG5pY2FsTmFtZUFscmVhZHlFeGlzdHNcIlxuICAgICAgW2lubmVySFRNTF09XCIoc2VsZWN0ZWRBdHRyaWJ1dGUgPyAnQHByeS5hZG1pbi5lZGl0JyA6ICdAcHJ5LmFkbWluLmNyZWF0ZScpIHwgaTE4blwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1mb3JtL2FkbWluLWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtZm9ybS9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBd0MsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbEYsT0FBTyxFQUdMLGVBQWUsRUFDZixpQkFBaUIsRUFFakIscUJBQXFCLEVBRXJCLFVBQVUsRUFDVixZQUFZLEVBQ1osY0FBYyxFQUdkLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckcsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlD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b21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgQ2F0ZWdvcnksXG4gIENhdGVnb3J5QWN0aW9ucyxcbiAgQ2F0ZWdvcnlTZWxlY3RvcnMsXG4gIENsYXNzLFxuICBERUZBVUxUX0NBVEVHT1JZX1VVSUQsXG4gIEZpZWxkLFxuICBGSUVMRF9JMThOLFxuICBGaWVsZEFjdGlvbnMsXG4gIEZpZWxkU2VsZWN0b3JzLFxuICBQcnlEaWFsb2dTZXJ2aWNlLFxuICBQcnlJMThuU2VydmljZSxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9hZG1pbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvYWRtaW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzQWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2FkbWluLWNsYXNzLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRkQ2F0ZWdvcnlNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9hZGQtY2F0ZWdvcnktbW9kYWwvYWRkLWNhdGVnb3J5LW1vZGFsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1hdHRyaWJ1dGVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkF0dHJpYnV0ZXNGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBhdHRyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcblxuICBhdHRyaWJ1dGVOYW1lcz86IHN0cmluZ1tdO1xuICBhdHRyaWJ1dGVUZWNobmljYWxOYW1lcz86IHN0cmluZ1tdO1xuICBuYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBuYW1lQWxyZWFkeUV4aXN0cyA9IGZhbHNlO1xuICB0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyA9IGZhbHNlO1xuXG4gIGZpZWxkcyQ6IE9ic2VydmFibGU8RmllbGRbXT47XG4gIHNlbGVjdGVkRmllbGRUeXBlRGVzY3JpcHRpb24kITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBjYXRlZ29yaWVzJDogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPjtcblxuICBASW5wdXQoKSBzZWxlY3RlZENsYXNzPzogQ2xhc3M7XG4gIEBJbnB1dCgpIGludGVyQ2xhc3M/OiBDbGFzcztcbiAgQElucHV0KCkgc2VsZWN0ZWRBdHRyaWJ1dGU/OiBBdHRyaWJ1dGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGkxOG5TZXJ2aWNlOiBQcnlJMThuU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogUHJ5RGlhbG9nU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRmllbGRBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENhdGVnb3J5QWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKTtcblxuICAgIHRoaXMuYXR0ckZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGlkOiBbdXVpZCgpXSxcbiAgICAgIHRlY2huaWNhbE5hbWU6IFtcbiAgICAgICAgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKSwgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yXVxuICAgICAgXSxcbiAgICAgIG5hbWU6IFsnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSwgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yXV0sXG4gICAgICBkZXNjcmlwdGlvbjogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgIGZpZWxkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjYXRlZ29yeTogW0RFRkFVTFRfQ0FURUdPUllfVVVJRF0sXG4gICAgICBtdWx0aVZhbHVlZDogW2ZhbHNlXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHRyaWJ1dGVOYW1lcyA9IHRoaXMuaW50ZXJDbGFzcz8uYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcbiAgICB0aGlzLmF0dHJpYnV0ZVRlY2huaWNhbE5hbWVzID0gdGhpcy5pbnRlckNsYXNzPy5hdHRyaWJ1dGVzLm1hcCgoYXR0cjogQXR0cmlidXRlKSA9PiBhdHRyLnRlY2huaWNhbE5hbWUpO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDbGFzcykge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVOYW1lcyA9IHRoaXMuc2VsZWN0ZWRDbGFzcy5hdHRyaWJ1dGVzLm1hcCgoYXR0cjogQXR0cmlidXRlKSA9PiBhdHRyLm5hbWUpO1xuICAgICAgdGhpcy5hdHRyaWJ1dGVUZWNobmljYWxOYW1lcyA9IHRoaXMuc2VsZWN0ZWRDbGFzcy5hdHRyaWJ1dGVzLm1hcCgoYXR0cjogQXR0cmlidXRlKSA9PiBhdHRyLnRlY2huaWNhbE5hbWUpO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSkge1xuICAgICAgICB0aGlzLmF0dHJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGlkOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLmlkLFxuICAgICAgICAgIHRlY2huaWNhbE5hbWU6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUudGVjaG5pY2FsTmFtZSxcbiAgICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLm5hbWUgPz8gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS50ZWNobmljYWxOYW1lLFxuICAgICAgICAgIGZpZWxkOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLmZpZWxkLFxuICAgICAgICAgIGNhdGVnb3J5OiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLmNhdGVnb3J5XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmF0dHJGb3JtLmNvbnRyb2xzWydmaWVsZCddLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVOYW1lcykge1xuICAgICAgdGhpcy5uYW1lQWxyZWFkeUV4aXN0cyQgPSB0aGlzLmF0dHJGb3JtXG4gICAgICAgIC5nZXQoJ25hbWUnKSFcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgIG1hcCgodmFsdWUpID0+ICEhdGhpcy5hdHRyaWJ1dGVOYW1lcz8uaW5jbHVkZXModmFsdWUpICYmIHZhbHVlICE9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGU/Lm5hbWUpXG4gICAgICAgICk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMubmFtZUFscmVhZHlFeGlzdHMkLnN1YnNjcmliZSgodmFsdWUpID0+ICh0aGlzLm5hbWVBbHJlYWR5RXhpc3RzID0gdmFsdWUpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuYXR0ckZvcm1cbiAgICAgICAgLmdldCgndGVjaG5pY2FsTmFtZScpIVxuICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgZGVib3VuY2VUaW1lKDUwMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIG5hbWU6IHZhbHVlLnNsaWNlKDAsIDUwKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICBpZiAodGhpcy5hdHRyaWJ1dGVUZWNobmljYWxOYW1lcykge1xuICAgICAgdGhpcy50ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyQgPSB0aGlzLmF0dHJGb3JtXG4gICAgICAgIC5nZXQoJ3RlY2huaWNhbE5hbWUnKSFcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICh2YWx1ZSkgPT4gISF0aGlzLmF0dHJpYnV0ZVRlY2huaWNhbE5hbWVzPy5pbmNsdWRlcyh2YWx1ZSkgJiYgdmFsdWUgIT0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZT8udGVjaG5pY2FsTmFtZVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIHRoaXMudGVjaG5pY2FsTmFtZUFscmVhZHlFeGlzdHMkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLnRlY2huaWNhbE5hbWVBbHJlYWR5RXhpc3RzID0gdmFsdWU7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRGaWVsZFR5cGVEZXNjcmlwdGlvbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYXR0ckZvcm0uZ2V0KCdmaWVsZCcpIS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5hdHRyRm9ybS5nZXQoJ2ZpZWxkJyk/LnZhbHVlKSksXG4gICAgICB0aGlzLmZpZWxkcyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbc2VsZWN0ZWRGaWVsZElkLCBmaWVsZHNdKSA9PlxuICAgICAgICAhc2VsZWN0ZWRGaWVsZElkXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogRklFTERfSTE4Ti5pbmZvcm1hdGlvbiArXG4gICAgICAgICAgICBmaWVsZHMuZmluZChcbiAgICAgICAgICAgICAgKGZpZWxkKSA9PiBmaWVsZC5pZCA9PT0gKHR5cGVvZiBzZWxlY3RlZEZpZWxkSWQgPT09ICdzdHJpbmcnID8gc2VsZWN0ZWRGaWVsZElkIDogc2VsZWN0ZWRGaWVsZElkLmlkKVxuICAgICAgICAgICAgKT8udHlwZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgY29uc3QgcmVkaXJlY3RQYXRoID0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSA/ICcuLi8uLicgOiAnLi4nO1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFtyZWRpcmVjdFBhdGhdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHBhdGgudG9TdHJpbmcoKSB9KSk7XG4gIH1cblxuICBhZGRBdHRyaWJ1dGUoKSB7XG4gICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIG5hbWU6IHRoaXMuYXR0ckZvcm0udmFsdWUubmFtZS50cmltKClcbiAgICB9KTtcblxuICAgIGlmICghdGhpcy5hdHRyRm9ybS52YWx1ZS5uYW1lKSB7XG4gICAgICB0aGlzLmF0dHJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBuYW1lOiB0aGlzLmF0dHJGb3JtLnZhbHVlLnRlY2huaWNhbE5hbWUuc2xpY2UoMCwgNTApXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hdHRyRm9ybS52YWxpZCkge1xuICAgICAgbGV0IGF0dHJUb1NhdmUgPSB0aGlzLmF0dHJGb3JtLmdldFJhd1ZhbHVlKCkgYXMgQXR0cmlidXRlO1xuICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSkge1xuICAgICAgICBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uLy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDbGFzcykge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzcyh7XG4gICAgICAgICAgICBjbGFzc0lkOiB0aGlzLnNlbGVjdGVkQ2xhc3MuaWQsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJUb1NhdmUsXG4gICAgICAgICAgICByb3V0ZTogcGF0aC50b1N0cmluZygpXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlckNsYXNzKSB7XG4gICAgICAgIGxldCBpbnRlckF0dHJpYnV0ZSA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMuaW50ZXJDbGFzcy5hdHRyaWJ1dGVzKTtcbiAgICAgICAgbGV0IGludGVyQ2xhc3NVcGRhdGVkID0geyAuLi50aGlzLmludGVyQ2xhc3MgfTtcbiAgICAgICAgaW50ZXJBdHRyaWJ1dGUucHVzaChhdHRyVG9TYXZlKTtcbiAgICAgICAgaW50ZXJDbGFzc1VwZGF0ZWQuYXR0cmlidXRlcyA9IGludGVyQXR0cmlidXRlO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVJbnRlckNsYXNzKHsgY2xhc3M6IGludGVyQ2xhc3NVcGRhdGVkLCByb3V0ZTogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuTW9kYWwoKSB7XG4gICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2cub3BlbihBZGRDYXRlZ29yeU1vZGFsQ29tcG9uZW50KTtcbiAgICByZWYuY29tcG9uZW50IS5lbnRpdHlUeXBlID0gJ2F0dHJpYnV0ZSc7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHJlZi5jb21wb25lbnQhLmNhdGVnb3J5LnN1YnNjcmliZSgoY2F0ZWdvcnkpID0+IHtcbiAgICAgICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBjYXRlZ29yeTogY2F0ZWdvcnkuaWRcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChyZWYuY29tcG9uZW50IS5jbG9zZU1vZGFsLnN1YnNjcmliZSgoKSA9PiByZWYuY2xvc2UoKSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEZJRUxEX0kxOE4gPSBGSUVMRF9JMThOO1xufVxuIiwiPGZvcm0gY2xhc3M9XCJvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImF0dHJGb3JtXCIgKG5nU3VibWl0KT1cImFkZEF0dHJpYnV0ZSgpXCI+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLXNtXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImF0dHJfdGVjaG5pY2FsTmFtZVwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuYXR0cmlidXRlcy50ZWNobmljYWxOYW1lJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxpbnB1dCBpZD1cImF0dHJfdGVjaG5pY2FsTmFtZVwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZWNobmljYWxOYW1lXCIgcmVxdWlyZWQgLz5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl90ZWNobmljYWxOYW1lXCIgKm5nSWY9XCJ0ZWNobmljYWxOYW1lQWxyZWFkeUV4aXN0cyQgfCBhc3luY1wiPnt7XG4gICAgICAnQHByeS5hZG1pbi5leGlzdHMnIHwgaTE4blxuICAgIH19PC9sYWJlbD5cbiAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/LmludmFsaWRcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJhdHRyRm9ybS5nZXQoJ3RlY2huaWNhbE5hbWUnKT8uZGlydHkgJiYgYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgndGVjaG5pY2FsTmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfdGVjaG5pY2FsTmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWluTGVuZ3RoJyB8IGkxOG46IHsgbGVuOiAyIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCd0ZWNobmljYWxOYW1lJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl90ZWNobmljYWxOYW1lXCI+e3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5tYXhMZW5ndGgnIHwgaTE4bjogeyBsZW46IDEwMCB9XG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGF0dHJGb3JtLmdldCgndGVjaG5pY2FsTmFtZScpPy5oYXNFcnJvcignd2hpdGVzcGFjZScpICYmICFhdHRyRm9ybS5nZXQoJ3RlY2huaWNhbE5hbWUnKT8uaGFzRXJyb3IoJ21pbmxlbmd0aCcpXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX3RlY2huaWNhbE5hbWVcIj57e1xuICAgICAgICAgICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuXG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8aW5wdXQgaWQ9XCJhdHRyX25hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiICpuZ0lmPVwibmFtZUFscmVhZHlFeGlzdHMkIHwgYXN5bmNcIj57e1xuICAgICAgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgZm9yPVwiYXR0cl9uYW1lXCI+e3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5tYXhMZW5ndGgnIHwgaTE4bjogeyBsZW46IDUwIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7ICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0eXBlXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hdHRyaWJ1dGVzLmZpZWxkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleFwiPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgaWQ9XCJ0eXBlXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIlxuICAgICAgICBbaXRlbXNdPVwiZmllbGRzJCB8IGFzeW5jXCJcbiAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJ0cnVlXCJcbiAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgcmVxdWlyZWQ9XCJ0cnVlXCJcbiAgICAgICAgW3RlbXBsYXRlXT1cInRlbXBsYXRlT3B0aW9uXCJcbiAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlT3B0aW9uIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxpZ25lZC1vcHRpb25cIj5cbiAgICAgICAgICA8cD57eyBpdGVtLm5hbWUgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImEtY2hpcFwiICpuZ0lmPVwiaXRlbS5jcnNcIj57eyBpdGVtLmNycyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibS1pbmZvLWljb24gYS10b29sdGlwIC10b29sdGlwLXdpZHRoLWxnIHUtc2VsZi1jZW50ZXIgdS1mbGV4LXNocmluay0wXCJcbiAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIihzZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJCB8IGFzeW5jKSA/PyAnJyB8IGkxOG5cIlxuICAgICAgICBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJyaWdodFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuPmk8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5kaXJ0eSAmJiBhdHRyRm9ybS5nZXQoJ2ZpZWxkJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJ0eXBlXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiY2F0ZWdvcnlcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMuY2F0ZWdvcnknIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgPHByeS1zZWxlY3RcbiAgICAgIGlkPVwiY2F0ZWdvcnlcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgW2l0ZW1zXT1cImNhdGVnb3JpZXMkIHwgYXN5bmNcIlxuICAgICAgKGNsaWNrKT1cIm9wZW5Nb2RhbCgpXCJcbiAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICA+PC9wcnktc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXdpZHRoLXNtXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2FuY2VsJyB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdjbGFzc2VzJywgYWN0aW9uOiAnYWRkX2F0dHJpYnV0ZScgfVwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2Rpc2FibGVkXT1cImF0dHJGb3JtLmludmFsaWQgfHwgbmFtZUFscmVhZHlFeGlzdHMgfHwgdGVjaG5pY2FsTmFtZUFscmVhZHlFeGlzdHNcIlxuICAgICAgW2lubmVySFRNTF09XCIoc2VsZWN0ZWRBdHRyaWJ1dGUgPyAnQHByeS5hZG1pbi5lZGl0JyA6ICdAcHJ5LmFkbWluLmNyZWF0ZScpIHwgaTE4blwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
@@ -13,22 +13,21 @@ export class DataFormatPipe {
13
13
  if (typeof value === 'object') {
14
14
  return JSON.stringify(value);
15
15
  }
16
- if (decimalPrecision) {
17
- result = new Intl.NumberFormat(undefined, {
16
+ if (decimalPrecision || localeFormat) {
17
+ result = new Intl.NumberFormat(LOCALE.value, {
18
18
  // @ts-ignore
19
19
  roundingMode: 'floor',
20
20
  minimumFractionDigits: decimalPrecision,
21
- maximumFractionDigits: decimalPrecision
21
+ maximumFractionDigits: decimalPrecision,
22
+ useGrouping: localeFormat
22
23
  }).format(value);
23
24
  }
24
- if (localeFormat) {
25
- result = toLocaleString(result);
26
- }
27
25
  if (unit) {
28
26
  result = result + ' ' + unit;
29
27
  }
30
28
  if (format) {
31
- result = new Intl.DateTimeFormat(LOCALE.value, dateFormatOptions.value[format]).format(getDate(value));
29
+ const actualDate = getDate(value);
30
+ result = new Intl.DateTimeFormat(LOCALE.value, dateFormatOptions.value[format]).format(actualDate);
32
31
  }
33
32
  return result;
34
33
  }
@@ -39,17 +38,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
39
38
  type: Pipe,
40
39
  args: [{ name: 'dataFormat' }]
41
40
  }], ctorParameters: () => [] });
42
- // number formatting methods
43
- const toLocaleString = (value) => {
44
- switch (typeof value) {
45
- case 'number':
46
- return new Intl.NumberFormat(LOCALE.value, { maximumFractionDigits: 20 }).format(value);
47
- case 'string':
48
- return value;
49
- default:
50
- return value;
51
- }
52
- };
53
41
  // date formatting methods
54
42
  export const dateFormatOptions = {
55
43
  value: {
@@ -110,4 +98,4 @@ export const toD3Format = (format) => {
110
98
  return '%Y-%B-%dT%H:%M:%S';
111
99
  }
112
100
  };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvZGF0YS1mb3JtYXQvZGF0YS1mb3JtYXQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLEtBQUssRUFBRSxTQUFTLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUTtDQUN2RyxDQUFDO0FBR0YsTUFBTSxPQUFPLGNBQWM7SUFDekIsZ0JBQWUsQ0FBQztJQUVoQixTQUFTLENBQ1AsS0FBVSxFQUNWLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEtBQXlDLEVBQUU7UUFFekYsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtnQkFDeEMsYUFBYTtnQkFDYixZQUFZLEVBQUUsT0FBTztnQkFDckIscUJBQXFCLEVBQUUsZ0JBQWdCO2dCQUN2QyxxQkFBcUIsRUFBRSxnQkFBZ0I7YUFD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QU8sSUFBSSxDQUFDO1FBQ2QsS0FBSyxLQUFLO1lBQ1IsT0FBTyxJQUFJLENBQUM7UUFDZDtZQUNFLE9BQU8sbUJBQW1CLENBQUM7SUFDL0IsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1hdE9wdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuXG5leHBvcnQgY29uc3QgTE9DQUxFID0ge1xuICB2YWx1ZTogbmF2aWdhdG9yLmxhbmd1YWdlcyAmJiBuYXZpZ2F0b3IubGFuZ3VhZ2VzLmxlbmd0aCA/IG5hdmlnYXRvci5sYW5ndWFnZXNbMF0gOiBuYXZpZ2F0b3IubGFuZ3VhZ2Vcbn07XG5cbkBQaXBlKHsgbmFtZTogJ2RhdGFGb3JtYXQnIH0pXG5leHBvcnQgY2xhc3MgRGF0YUZvcm1hdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogYW55LFxuICAgIHsgbG9jYWxlRm9ybWF0LCB1bml0LCBkZWNpbWFsUHJlY2lzaW9uLCBmb3JtYXQgfTogUGFydGlhbDxGb3JtYXRPcHRpb25zPiB8IHVuZGVmaW5lZCA9IHt9XG4gICk6IGFueSB7XG4gICAgbGV0IHJlc3VsdCA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoZGVjaW1hbFByZWNpc2lvbikge1xuICAgICAgcmVzdWx0ID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KHVuZGVmaW5lZCwge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJvdW5kaW5nTW9kZTogJ2Zsb29yJyxcbiAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiBkZWNpbWFsUHJlY2lzaW9uLFxuICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IGRlY2ltYWxQcmVjaXNpb25cbiAgICAgIH0pLmZvcm1hdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvY2FsZUZvcm1hdCkge1xuICAgICAgcmVzdWx0ID0gdG9Mb2NhbGVTdHJpbmcocmVzdWx0KTtcbiAgICB9XG4gICAgaWYgKHVuaXQpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdCArICfigK8nICsgdW5pdDtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0KSB7XG4gICAgICByZXN1bHQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChMT0NBTEUudmFsdWUsIGRhdGVGb3JtYXRPcHRpb25zLnZhbHVlW2Zvcm1hdF0pLmZvcm1hdChnZXREYXRlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG4vLyBudW1iZXIgZm9ybWF0dGluZyBtZXRob2RzXG5jb25zdCB0b0xvY2FsZVN0cmluZyA9ICh2YWx1ZT86IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgIGNhc2UgJ251bWJlcic6XG4gICAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KExPQ0FMRS52YWx1ZSwgeyBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIwIH0pLmZvcm1hdCh2YWx1ZSk7XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG4vLyBkYXRlIGZvcm1hdHRpbmcgbWV0aG9kc1xuZXhwb3J0IGNvbnN0IGRhdGVGb3JtYXRPcHRpb25zOiB7IHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zIH0gfSA9IHtcbiAgdmFsdWU6IHtcbiAgICBEQVRFVElNRToge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdudW1lcmljJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgbWludXRlOiAnbnVtZXJpYydcbiAgICB9LFxuICAgIERBVEU6IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICBkYXk6ICcyLWRpZ2l0J1xuICAgIH0sXG4gICAgTU9OVEhfWUVBUjoge1xuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJ1xuICAgIH0sXG4gICAgREFZX01PTlRIOiB7XG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgZGF5OiAnMi1kaWdpdCdcbiAgICB9LFxuICAgIFlFQVI6IHtcbiAgICAgIHllYXI6ICdudW1lcmljJ1xuICAgIH0sXG4gICAgTU9OVEg6IHtcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCdcbiAgICB9LFxuICAgIERBWToge1xuICAgICAgZGF5OiAnMi1kaWdpdCdcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGdldERhdGUgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IERhdGUpOiBEYXRlID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvRDNGb3JtYXQgPSAoZm9ybWF0Pzogc3RyaW5nKSA9PiB7XG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSAnREFURVRJTUUnOlxuICAgICAgcmV0dXJuICclWS0lbS0lZFQlSDolTTolUyc7XG4gICAgY2FzZSAnREFURSc6XG4gICAgICByZXR1cm4gJyVZLSVtLSVkJztcbiAgICBjYXNlICdNT05USF9ZRUFSJzpcbiAgICAgIHJldHVybiAnJW0tJVknO1xuICAgIGNhc2UgJ0RBWV9NT05USCc6XG4gICAgICByZXR1cm4gJyVkLSVtJztcbiAgICBjYXNlICdZRUFSJzpcbiAgICAgIHJldHVybiAnJVknO1xuICAgIGNhc2UgJ01PTlRIJzpcbiAgICAgIHJldHVybiAnJW0nO1xuICAgIGNhc2UgJ0RBWSc6XG4gICAgICByZXR1cm4gJyVkJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICclWS0lQi0lZFQlSDolTTolUyc7XG4gIH1cbn07XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvZGF0YS1mb3JtYXQvZGF0YS1mb3JtYXQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLEtBQUssRUFBRSxTQUFTLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUTtDQUN2RyxDQUFDO0FBR0YsTUFBTSxPQUFPLGNBQWM7SUFDekIsZ0JBQWUsQ0FBQztJQUVoQixTQUFTLENBQ1AsS0FBVSxFQUNWLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEtBQXlDLEVBQUU7UUFFekYsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksZ0JBQWdCLElBQUksWUFBWSxFQUFFLENBQUM7WUFDckMsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUMzQyxhQUFhO2dCQUNiLFlBQVksRUFBRSxPQUFPO2dCQUNyQixxQkFBcUIsRUFBRSxnQkFBZ0I7Z0JBQ3ZDLHFCQUFxQixFQUFFLGdCQUFnQjtnQkFDdkMsV0FBVyxFQUFFLFlBQVk7YUFDMUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE1BQU0sR0FBRyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO1FBRUQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JHLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzhHQXJDVSxjQUFjOzRHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFOztBQXlDNUIsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUE2RDtJQUN6RixLQUFLLEVBQUU7UUFDTCxRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsU0FBUztZQUNmLEtBQUssRUFBRSxTQUFTO1lBQ2hCLEdBQUcsRUFBRSxTQUFTO1lBQ2QsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUUsU0FBUztTQUNsQjtRQUNELElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsR0FBRyxFQUFFLFNBQVM7U0FDZjtRQUNELFVBQVUsRUFBRTtZQUNWLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxTQUFTO1NBQ2hCO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsS0FBSyxFQUFFLFNBQVM7WUFDaEIsR0FBRyxFQUFFLFNBQVM7U0FDZjtRQUNELElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxTQUFTO1NBQ2hCO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsS0FBSyxFQUFFLFNBQVM7U0FDakI7UUFDRCxHQUFHLEVBQUU7WUFDSCxHQUFHLEVBQUUsU0FBUztTQUNmO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUE2QixFQUFRLEVBQUU7SUFDdEQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0QsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtJQUM1QyxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxVQUFVO1lBQ2IsT0FBTyxtQkFBbUIsQ0FBQztRQUM3QixLQUFLLE1BQU07WUFDVCxPQUFPLFVBQVUsQ0FBQztRQUNwQixLQUFLLFlBQVk7WUFDZixPQUFPLE9BQU8sQ0FBQztRQUNqQixLQUFLLFdBQVc7WUFDZCxPQUFPLE9BQU8sQ0FBQztRQUNqQixLQUFLLE1BQU07WUFDVCxPQUFPLElBQUksQ0FBQztRQUNkLEtBQUssT0FBTztZQUNWLE9BQU8sSUFBSSxDQUFDO1FBQ2QsS0FBSyxLQUFLO1lBQ1IsT0FBTyxJQUFJLENBQUM7UUFDZDtZQUNFLE9BQU8sbUJBQW1CLENBQUM7SUFDL0IsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1hdE9wdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuXG5leHBvcnQgY29uc3QgTE9DQUxFID0ge1xuICB2YWx1ZTogbmF2aWdhdG9yLmxhbmd1YWdlcyAmJiBuYXZpZ2F0b3IubGFuZ3VhZ2VzLmxlbmd0aCA/IG5hdmlnYXRvci5sYW5ndWFnZXNbMF0gOiBuYXZpZ2F0b3IubGFuZ3VhZ2Vcbn07XG5cbkBQaXBlKHsgbmFtZTogJ2RhdGFGb3JtYXQnIH0pXG5leHBvcnQgY2xhc3MgRGF0YUZvcm1hdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogYW55LFxuICAgIHsgbG9jYWxlRm9ybWF0LCB1bml0LCBkZWNpbWFsUHJlY2lzaW9uLCBmb3JtYXQgfTogUGFydGlhbDxGb3JtYXRPcHRpb25zPiB8IHVuZGVmaW5lZCA9IHt9XG4gICk6IGFueSB7XG4gICAgbGV0IHJlc3VsdCA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoZGVjaW1hbFByZWNpc2lvbiB8fCBsb2NhbGVGb3JtYXQpIHtcbiAgICAgIHJlc3VsdCA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChMT0NBTEUudmFsdWUsIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByb3VuZGluZ01vZGU6ICdmbG9vcicsXG4gICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogZGVjaW1hbFByZWNpc2lvbixcbiAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBkZWNpbWFsUHJlY2lzaW9uLFxuICAgICAgICB1c2VHcm91cGluZzogbG9jYWxlRm9ybWF0XG4gICAgICB9KS5mb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh1bml0KSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQgKyAn4oCvJyArIHVuaXQ7XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdCkge1xuICAgICAgY29uc3QgYWN0dWFsRGF0ZSA9IGdldERhdGUodmFsdWUpO1xuICAgICAgcmVzdWx0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoTE9DQUxFLnZhbHVlLCBkYXRlRm9ybWF0T3B0aW9ucy52YWx1ZVtmb3JtYXRdKS5mb3JtYXQoYWN0dWFsRGF0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG4vLyBkYXRlIGZvcm1hdHRpbmcgbWV0aG9kc1xuZXhwb3J0IGNvbnN0IGRhdGVGb3JtYXRPcHRpb25zOiB7IHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zIH0gfSA9IHtcbiAgdmFsdWU6IHtcbiAgICBEQVRFVElNRToge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdudW1lcmljJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgbWludXRlOiAnbnVtZXJpYydcbiAgICB9LFxuICAgIERBVEU6IHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICBkYXk6ICcyLWRpZ2l0J1xuICAgIH0sXG4gICAgTU9OVEhfWUVBUjoge1xuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJ1xuICAgIH0sXG4gICAgREFZX01PTlRIOiB7XG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgZGF5OiAnMi1kaWdpdCdcbiAgICB9LFxuICAgIFlFQVI6IHtcbiAgICAgIHllYXI6ICdudW1lcmljJ1xuICAgIH0sXG4gICAgTU9OVEg6IHtcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCdcbiAgICB9LFxuICAgIERBWToge1xuICAgICAgZGF5OiAnMi1kaWdpdCdcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IGdldERhdGUgPSAodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IERhdGUpOiBEYXRlID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvRDNGb3JtYXQgPSAoZm9ybWF0Pzogc3RyaW5nKSA9PiB7XG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSAnREFURVRJTUUnOlxuICAgICAgcmV0dXJuICclWS0lbS0lZFQlSDolTTolUyc7XG4gICAgY2FzZSAnREFURSc6XG4gICAgICByZXR1cm4gJyVZLSVtLSVkJztcbiAgICBjYXNlICdNT05USF9ZRUFSJzpcbiAgICAgIHJldHVybiAnJW0tJVknO1xuICAgIGNhc2UgJ0RBWV9NT05USCc6XG4gICAgICByZXR1cm4gJyVkLSVtJztcbiAgICBjYXNlICdZRUFSJzpcbiAgICAgIHJldHVybiAnJVknO1xuICAgIGNhc2UgJ01PTlRIJzpcbiAgICAgIHJldHVybiAnJW0nO1xuICAgIGNhc2UgJ0RBWSc6XG4gICAgICByZXR1cm4gJyVkJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICclWS0lQi0lZFQlSDolTTolUyc7XG4gIH1cbn07XG4iXX0=
@@ -11,6 +11,7 @@ export class PryPaginatorComponent {
11
11
  this.nbPerPage = input(10);
12
12
  this.totalItemNb = input(100);
13
13
  this.mode = input('long');
14
+ this.goBackToFirstPage = input();
14
15
  this.nbOfPages = computed(() => {
15
16
  return Math.floor(this.totalItemNb() / this.nbPerPage());
16
17
  });
@@ -20,10 +21,16 @@ export class PryPaginatorComponent {
20
21
  this.currentPage = signal(1);
21
22
  this.pageChange = new EventEmitter();
22
23
  effect(() => {
24
+ // if current page changes, dispatch action to load data
23
25
  if (this.currentPage()) {
24
26
  this.dispatchPageChangeAction();
25
27
  }
26
28
  }, { allowSignalWrites: true });
29
+ effect(() => {
30
+ if (this.goBackToFirstPage()) {
31
+ this.changePage(1);
32
+ }
33
+ }, { allowSignalWrites: true });
27
34
  }
28
35
  dispatchPageChangeAction() {
29
36
  if (untracked(this.action)) {
@@ -40,7 +47,7 @@ export class PryPaginatorComponent {
40
47
  this.pageChange.emit(page);
41
48
  }
42
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryPaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryPaginatorComponent, selector: "pry-paginator", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, nbPerPage: { classPropertyName: "nbPerPage", publicName: "nbPerPage", isSignal: true, isRequired: false, transformFunction: null }, totalItemNb: { classPropertyName: "totalItemNb", publicName: "totalItemNb", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<pry-paginator-css></pry-paginator-css>\n<div\n class=\"o-paginator u-display-flex -align-center\"\n [class.o-paginator--long]=\"mode() === 'long'\"\n [class.o-paginator--short]=\"mode() === 'short'\"\n>\n @if (mode() === 'long') {\n <ng-container *ngTemplateOutlet=\"longPaginator\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"shortPaginator\"></ng-container>\n }\n</div>\n\n<ng-template #shortPaginator>\n <button (click)=\"changePage(1)\" [disabled]=\"currentPage() === 1\">\n <pry-icon iconSvg=\"skip-left-fill\"></pry-icon>\n </button>\n <button (click)=\"changePage(currentPage() - 1)\" [disabled]=\"currentPage() === 1\">\n <pry-icon iconSvg=\"arrow-left-s-fill\"></pry-icon>\n </button>\n <span class=\"o-paginator__page-counter\">{{ currentPage() }} / {{ nbOfPages() }}</span>\n <button (click)=\"changePage(currentPage() + 1)\" [disabled]=\"currentPage() === nbOfPages()\">\n <pry-icon iconSvg=\"arrow-right-s-fill\"></pry-icon>\n </button>\n <button (click)=\"changePage(nbOfPages())\" [disabled]=\"currentPage() === nbOfPages()\">\n <pry-icon iconSvg=\"skip-right-fill\"></pry-icon>\n </button>\n</ng-template>\n\n<ng-template #longPaginator>\n @if (currentPage() > 1) {\n <button (click)=\"changePage(currentPage() - 1)\">\n <pry-icon iconSvg=\"chevron_left\"></pry-icon>\n </button>\n }\n @if (nbOfPages() > 8) {\n @if (currentPage() < 3) {\n @for (page of pages().slice(0, 3); track page) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"page === currentPage()\"\n [class.a-btn--ghost]=\"page !== currentPage()\"\n (click)=\"changePage(page)\"\n >\n {{ page }}\n </button>\n }\n <span class=\"u-self-end\">...</span>\n <button class=\"a-btn -small-circle -no-padding\" (click)=\"changePage(pages().length)\">\n {{ pages().length }}\n </button>\n } @else if (currentPage() > pages().length - 2) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n (click)=\"changePage(1)\"\n [class.a-btn--primary]=\"currentPage() === 1\"\n [class.a-btn--ghost]=\"currentPage() !== 1\"\n >\n 1\n </button>\n <span class=\"u-self-end\">...</span>\n @for (page of pages().slice(-3); track page) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"page === currentPage()\"\n [class.a-btn--ghost]=\"page !== currentPage()\"\n (click)=\"changePage(page)\"\n >\n {{ page }}\n </button>\n }\n } @else {\n <button class=\"a-btn -small-circle -no-padding\" (click)=\"changePage(1)\">1</button>\n <span>...</span>\n @for (page of pages().slice(currentPage() - 2, currentPage() + 1); track page) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"page === currentPage()\"\n [class.a-btn--ghost]=\"page !== currentPage()\"\n (click)=\"changePage(page)\"\n >\n {{ page }}\n </button>\n }\n <span>...</span>\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"currentPage() === pages().length\"\n [class.a-btn--ghost]=\"currentPage() !== pages().length\"\n (click)=\"changePage(pages().length)\"\n >\n {{ pages().length }}\n </button>\n }\n } @else {\n @for (page of pages(); track page) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"page === currentPage()\"\n [class.a-btn--ghost]=\"page !== currentPage()\"\n (click)=\"changePage(page)\"\n >\n {{ page }}\n </button>\n }\n }\n @if (currentPage() < pages().length) {\n <button (click)=\"changePage(currentPage() + 1)\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: i1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.PryPaginatorCssComponent, selector: "pry-paginator-css" }] }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryPaginatorComponent, selector: "pry-paginator", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, nbPerPage: { classPropertyName: "nbPerPage", publicName: "nbPerPage", isSignal: true, isRequired: false, transformFunction: null }, totalItemNb: { classPropertyName: "totalItemNb", publicName: "totalItemNb", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, goBackToFirstPage: { classPropertyName: "goBackToFirstPage", publicName: "goBackToFirstPage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pageChange: "pageChange" }, ngImport: i0, template: "<pry-paginator-css></pry-paginator-css>\n<div\n class=\"o-paginator u-display-flex -align-center\"\n [class.o-paginator--long]=\"mode() === 'long'\"\n [class.o-paginator--short]=\"mode() === 'short'\"\n>\n @if (mode() === 'long') {\n <ng-container *ngTemplateOutlet=\"longPaginator\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"shortPaginator\"></ng-container>\n }\n</div>\n\n<ng-template #shortPaginator>\n <button (click)=\"changePage(1)\" [disabled]=\"currentPage() === 1\">\n <pry-icon iconSvg=\"skip-left-fill\"></pry-icon>\n </button>\n <button (click)=\"changePage(currentPage() - 1)\" [disabled]=\"currentPage() === 1\">\n <pry-icon iconSvg=\"arrow-left-s-fill\"></pry-icon>\n </button>\n <span class=\"o-paginator__page-counter\">{{ currentPage() }} / {{ nbOfPages() }}</span>\n <button (click)=\"changePage(currentPage() + 1)\" [disabled]=\"currentPage() === nbOfPages()\">\n <pry-icon iconSvg=\"arrow-right-s-fill\"></pry-icon>\n </button>\n <button (click)=\"changePage(nbOfPages())\" [disabled]=\"currentPage() === nbOfPages()\">\n <pry-icon iconSvg=\"skip-right-fill\"></pry-icon>\n </button>\n</ng-template>\n\n<ng-template #longPaginator>\n @if (currentPage() > 1) {\n <button (click)=\"changePage(currentPage() - 1)\">\n <pry-icon iconSvg=\"chevron_left\"></pry-icon>\n </button>\n }\n @if (nbOfPages() > 8) {\n @if (currentPage() < 3) {\n @for (page of pages().slice(0, 3); track page) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"page === currentPage()\"\n [class.a-btn--ghost]=\"page !== currentPage()\"\n (click)=\"changePage(page)\"\n >\n {{ page }}\n </button>\n }\n <span class=\"u-self-end\">...</span>\n <button class=\"a-btn -small-circle -no-padding\" (click)=\"changePage(pages().length)\">\n {{ pages().length }}\n </button>\n } @else if (currentPage() > pages().length - 2) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n (click)=\"changePage(1)\"\n [class.a-btn--primary]=\"currentPage() === 1\"\n [class.a-btn--ghost]=\"currentPage() !== 1\"\n >\n 1\n </button>\n <span class=\"u-self-end\">...</span>\n @for (page of pages().slice(-3); track page) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"page === currentPage()\"\n [class.a-btn--ghost]=\"page !== currentPage()\"\n (click)=\"changePage(page)\"\n >\n {{ page }}\n </button>\n }\n } @else {\n <button class=\"a-btn -small-circle -no-padding\" (click)=\"changePage(1)\">1</button>\n <span>...</span>\n @for (page of pages().slice(currentPage() - 2, currentPage() + 1); track page) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"page === currentPage()\"\n [class.a-btn--ghost]=\"page !== currentPage()\"\n (click)=\"changePage(page)\"\n >\n {{ page }}\n </button>\n }\n <span>...</span>\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"currentPage() === pages().length\"\n [class.a-btn--ghost]=\"currentPage() !== pages().length\"\n (click)=\"changePage(pages().length)\"\n >\n {{ pages().length }}\n </button>\n }\n } @else {\n @for (page of pages(); track page) {\n <button\n class=\"a-btn -small-circle -no-padding\"\n [class.a-btn--primary]=\"page === currentPage()\"\n [class.a-btn--ghost]=\"page !== currentPage()\"\n (click)=\"changePage(page)\"\n >\n {{ page }}\n </button>\n }\n }\n @if (currentPage() < pages().length) {\n <button (click)=\"changePage(currentPage() + 1)\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: i1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.PryPaginatorCssComponent, selector: "pry-paginator-css" }] }); }
44
51
  }
45
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryPaginatorComponent, decorators: [{
46
53
  type: Component,
@@ -48,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
48
55
  }], ctorParameters: () => [], propDecorators: { pageChange: [{
49
56
  type: Output
50
57
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBVSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBTTVDLE1BQU0sT0FBTyxxQkFBcUI7SUFrQmhDO1FBakJBLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEIsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxLQUFLLENBQVMsR0FBRyxDQUFDLENBQUM7UUFDakMsU0FBSSxHQUFHLEtBQUssQ0FBbUIsTUFBTSxDQUFDLENBQUM7UUFFdkMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztRQUNILFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztRQUNILGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHaEQsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQ2xCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLGFBQWE7Z0JBQ2IsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ25ELEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs4R0EzQ1UscUJBQXFCO2tHQUFyQixxQkFBcUIsc21CQ1BsQyw0N0hBZ0hBOzsyRkR6R2EscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLGVBQWU7d0RBbUJmLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXBhZ2luYXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeVBhZ2luYXRvckNvbXBvbmVudCB7XG4gIHN0b3JlID0gaW5qZWN0KFN0b3JlKTtcblxuICBhY3Rpb24gPSBpbnB1dDxBY3Rpb24+KCk7XG4gIG5iUGVyUGFnZSA9IGlucHV0PG51bWJlcj4oMTApO1xuICB0b3RhbEl0ZW1OYiA9IGlucHV0PG51bWJlcj4oMTAwKTtcbiAgbW9kZSA9IGlucHV0PCdsb25nJyB8ICdzaG9ydCc+KCdsb25nJyk7XG5cbiAgbmJPZlBhZ2VzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMudG90YWxJdGVtTmIoKSAvIHRoaXMubmJQZXJQYWdlKCkpO1xuICB9KTtcbiAgcGFnZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMubmJPZlBhZ2VzKCkgfSwgKF8sIGkpID0+IGkgKyAxKTtcbiAgfSk7XG4gIGN1cnJlbnRQYWdlID0gc2lnbmFsKDEpO1xuXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50UGFnZSgpKSB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaFBhZ2VDaGFuZ2VBY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBkaXNwYXRjaFBhZ2VDaGFuZ2VBY3Rpb24oKSB7XG4gICAgaWYgKHVudHJhY2tlZCh0aGlzLmFjdGlvbikpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goe1xuICAgICAgICAuLi51bnRyYWNrZWQodGhpcy5hY3Rpb24pLFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG9mZnNldDogKHRoaXMuY3VycmVudFBhZ2UoKSAtIDEpICogdGhpcy5uYlBlclBhZ2UoKSxcbiAgICAgICAgbGltaXQ6IHRoaXMubmJQZXJQYWdlKClcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVBhZ2UocGFnZTogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQocGFnZSk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQocGFnZSk7XG4gIH1cbn1cbiIsIjxwcnktcGFnaW5hdG9yLWNzcz48L3ByeS1wYWdpbmF0b3ItY3NzPlxuPGRpdlxuICBjbGFzcz1cIm8tcGFnaW5hdG9yIHUtZGlzcGxheS1mbGV4IC1hbGlnbi1jZW50ZXJcIlxuICBbY2xhc3Muby1wYWdpbmF0b3ItLWxvbmddPVwibW9kZSgpID09PSAnbG9uZydcIlxuICBbY2xhc3Muby1wYWdpbmF0b3ItLXNob3J0XT1cIm1vZGUoKSA9PT0gJ3Nob3J0J1wiXG4+XG4gIEBpZiAobW9kZSgpID09PSAnbG9uZycpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9uZ1BhZ2luYXRvclwiPjwvbmctY29udGFpbmVyPlxuICB9IEBlbHNlIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2hvcnRQYWdpbmF0b3JcIj48L25nLWNvbnRhaW5lcj5cbiAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2hvcnRQYWdpbmF0b3I+XG4gIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVBhZ2UoMSlcIiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gMVwiPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2tpcC1sZWZ0LWZpbGxcIj48L3ByeS1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiY2hhbmdlUGFnZShjdXJyZW50UGFnZSgpIC0gMSlcIiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gMVwiPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYXJyb3ctbGVmdC1zLWZpbGxcIj48L3ByeS1pY29uPlxuICA8L2J1dHRvbj5cbiAgPHNwYW4gY2xhc3M9XCJvLXBhZ2luYXRvcl9fcGFnZS1jb3VudGVyXCI+e3sgY3VycmVudFBhZ2UoKSB9fSAvIHt7IG5iT2ZQYWdlcygpIH19PC9zcGFuPlxuICA8YnV0dG9uIChjbGljayk9XCJjaGFuZ2VQYWdlKGN1cnJlbnRQYWdlKCkgKyAxKVwiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID09PSBuYk9mUGFnZXMoKVwiPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYXJyb3ctcmlnaHQtcy1maWxsXCI+PC9wcnktaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVBhZ2UobmJPZlBhZ2VzKCkpXCIgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IG5iT2ZQYWdlcygpXCI+XG4gICAgPHByeS1pY29uIGljb25Tdmc9XCJza2lwLXJpZ2h0LWZpbGxcIj48L3ByeS1pY29uPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9uZ1BhZ2luYXRvcj5cbiAgQGlmIChjdXJyZW50UGFnZSgpID4gMSkge1xuICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVBhZ2UoY3VycmVudFBhZ2UoKSAtIDEpXCI+XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNoZXZyb25fbGVmdFwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIH1cbiAgQGlmIChuYk9mUGFnZXMoKSA+IDgpIHtcbiAgICBAaWYgKGN1cnJlbnRQYWdlKCkgPCAzKSB7XG4gICAgICBAZm9yIChwYWdlIG9mIHBhZ2VzKCkuc2xpY2UoMCwgMyk7IHRyYWNrIHBhZ2UpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gLXNtYWxsLWNpcmNsZSAtbm8tcGFkZGluZ1wiXG4gICAgICAgICAgW2NsYXNzLmEtYnRuLS1wcmltYXJ5XT1cInBhZ2UgPT09IGN1cnJlbnRQYWdlKClcIlxuICAgICAgICAgIFtjbGFzcy5hLWJ0bi0tZ2hvc3RdPVwicGFnZSAhPT0gY3VycmVudFBhZ2UoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIDxzcGFuIGNsYXNzPVwidS1zZWxmLWVuZFwiPi4uLjwvc3Bhbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biAtc21hbGwtY2lyY2xlIC1uby1wYWRkaW5nXCIgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZXMoKS5sZW5ndGgpXCI+XG4gICAgICAgIHt7IHBhZ2VzKCkubGVuZ3RoIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICB9IEBlbHNlIGlmIChjdXJyZW50UGFnZSgpID4gcGFnZXMoKS5sZW5ndGggLSAyKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYS1idG4gLXNtYWxsLWNpcmNsZSAtbm8tcGFkZGluZ1wiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VQYWdlKDEpXCJcbiAgICAgICAgW2NsYXNzLmEtYnRuLS1wcmltYXJ5XT1cImN1cnJlbnRQYWdlKCkgPT09IDFcIlxuICAgICAgICBbY2xhc3MuYS1idG4tLWdob3N0XT1cImN1cnJlbnRQYWdlKCkgIT09IDFcIlxuICAgICAgPlxuICAgICAgICAxXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidS1zZWxmLWVuZFwiPi4uLjwvc3Bhbj5cbiAgICAgIEBmb3IgKHBhZ2Ugb2YgcGFnZXMoKS5zbGljZSgtMyk7IHRyYWNrIHBhZ2UpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gLXNtYWxsLWNpcmNsZSAtbm8tcGFkZGluZ1wiXG4gICAgICAgICAgW2NsYXNzLmEtYnRuLS1wcmltYXJ5XT1cInBhZ2UgPT09IGN1cnJlbnRQYWdlKClcIlxuICAgICAgICAgIFtjbGFzcy5hLWJ0bi0tZ2hvc3RdPVwicGFnZSAhPT0gY3VycmVudFBhZ2UoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biAtc21hbGwtY2lyY2xlIC1uby1wYWRkaW5nXCIgKGNsaWNrKT1cImNoYW5nZVBhZ2UoMSlcIj4xPC9idXR0b24+XG4gICAgICA8c3Bhbj4uLi48L3NwYW4+XG4gICAgICBAZm9yIChwYWdlIG9mIHBhZ2VzKCkuc2xpY2UoY3VycmVudFBhZ2UoKSAtIDIsIGN1cnJlbnRQYWdlKCkgKyAxKTsgdHJhY2sgcGFnZSkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biAtc21hbGwtY2lyY2xlIC1uby1wYWRkaW5nXCJcbiAgICAgICAgICBbY2xhc3MuYS1idG4tLXByaW1hcnldPVwicGFnZSA9PT0gY3VycmVudFBhZ2UoKVwiXG4gICAgICAgICAgW2NsYXNzLmEtYnRuLS1naG9zdF09XCJwYWdlICE9PSBjdXJyZW50UGFnZSgpXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUGFnZShwYWdlKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBwYWdlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgPHNwYW4+Li4uPC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImEtYnRuIC1zbWFsbC1jaXJjbGUgLW5vLXBhZGRpbmdcIlxuICAgICAgICBbY2xhc3MuYS1idG4tLXByaW1hcnldPVwiY3VycmVudFBhZ2UoKSA9PT0gcGFnZXMoKS5sZW5ndGhcIlxuICAgICAgICBbY2xhc3MuYS1idG4tLWdob3N0XT1cImN1cnJlbnRQYWdlKCkgIT09IHBhZ2VzKCkubGVuZ3RoXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZXMoKS5sZW5ndGgpXCJcbiAgICAgID5cbiAgICAgICAge3sgcGFnZXMoKS5sZW5ndGggfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGZvciAocGFnZSBvZiBwYWdlcygpOyB0cmFjayBwYWdlKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYS1idG4gLXNtYWxsLWNpcmNsZSAtbm8tcGFkZGluZ1wiXG4gICAgICAgIFtjbGFzcy5hLWJ0bi0tcHJpbWFyeV09XCJwYWdlID09PSBjdXJyZW50UGFnZSgpXCJcbiAgICAgICAgW2NsYXNzLmEtYnRuLS1naG9zdF09XCJwYWdlICE9PSBjdXJyZW50UGFnZSgpXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZSlcIlxuICAgICAgPlxuICAgICAgICB7eyBwYWdlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIH1cbiAgQGlmIChjdXJyZW50UGFnZSgpIDwgcGFnZXMoKS5sZW5ndGgpIHtcbiAgICA8YnV0dG9uIChjbGljayk9XCJjaGFuZ2VQYWdlKGN1cnJlbnRQYWdlKCkgKyAxKVwiPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjaGV2cm9uX3JpZ2h0XCI+PC9wcnktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBVSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBTTVDLE1BQU0sT0FBTyxxQkFBcUI7SUFtQmhDO1FBbEJBLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEIsV0FBTSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxLQUFLLENBQVMsR0FBRyxDQUFDLENBQUM7UUFDakMsU0FBSSxHQUFHLEtBQUssQ0FBbUIsTUFBTSxDQUFDLENBQUM7UUFDdkMsc0JBQWlCLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFFakMsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztRQUNILFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztRQUNILGdCQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHaEQsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILHdEQUF3RDtZQUN4RCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7UUFDRixNQUFNLENBQ0osR0FBRyxFQUFFO1lBQ0gsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQ2xCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLGFBQWE7Z0JBQ2IsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ25ELEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs4R0FyRFUscUJBQXFCO2tHQUFyQixxQkFBcUIsa3dCQ1BsQyw0N0hBZ0hBOzsyRkR6R2EscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLGVBQWU7d0RBb0JmLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBpbnB1dCwgT3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXBhZ2luYXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeVBhZ2luYXRvckNvbXBvbmVudCB7XG4gIHN0b3JlID0gaW5qZWN0KFN0b3JlKTtcblxuICBhY3Rpb24gPSBpbnB1dDxBY3Rpb24+KCk7XG4gIG5iUGVyUGFnZSA9IGlucHV0PG51bWJlcj4oMTApO1xuICB0b3RhbEl0ZW1OYiA9IGlucHV0PG51bWJlcj4oMTAwKTtcbiAgbW9kZSA9IGlucHV0PCdsb25nJyB8ICdzaG9ydCc+KCdsb25nJyk7XG4gIGdvQmFja1RvRmlyc3RQYWdlID0gaW5wdXQ8YW55PigpO1xuXG4gIG5iT2ZQYWdlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLnRvdGFsSXRlbU5iKCkgLyB0aGlzLm5iUGVyUGFnZSgpKTtcbiAgfSk7XG4gIHBhZ2VzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLm5iT2ZQYWdlcygpIH0sIChfLCBpKSA9PiBpICsgMSk7XG4gIH0pO1xuICBjdXJyZW50UGFnZSA9IHNpZ25hbCgxKTtcblxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgLy8gaWYgY3VycmVudCBwYWdlIGNoYW5nZXMsIGRpc3BhdGNoIGFjdGlvbiB0byBsb2FkIGRhdGFcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFBhZ2UoKSkge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hQYWdlQ2hhbmdlQWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZ29CYWNrVG9GaXJzdFBhZ2UoKSkge1xuICAgICAgICAgIHRoaXMuY2hhbmdlUGFnZSgxKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBkaXNwYXRjaFBhZ2VDaGFuZ2VBY3Rpb24oKSB7XG4gICAgaWYgKHVudHJhY2tlZCh0aGlzLmFjdGlvbikpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goe1xuICAgICAgICAuLi51bnRyYWNrZWQodGhpcy5hY3Rpb24pLFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG9mZnNldDogKHRoaXMuY3VycmVudFBhZ2UoKSAtIDEpICogdGhpcy5uYlBlclBhZ2UoKSxcbiAgICAgICAgbGltaXQ6IHRoaXMubmJQZXJQYWdlKClcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVBhZ2UocGFnZTogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQocGFnZSk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQocGFnZSk7XG4gIH1cbn1cbiIsIjxwcnktcGFnaW5hdG9yLWNzcz48L3ByeS1wYWdpbmF0b3ItY3NzPlxuPGRpdlxuICBjbGFzcz1cIm8tcGFnaW5hdG9yIHUtZGlzcGxheS1mbGV4IC1hbGlnbi1jZW50ZXJcIlxuICBbY2xhc3Muby1wYWdpbmF0b3ItLWxvbmddPVwibW9kZSgpID09PSAnbG9uZydcIlxuICBbY2xhc3Muby1wYWdpbmF0b3ItLXNob3J0XT1cIm1vZGUoKSA9PT0gJ3Nob3J0J1wiXG4+XG4gIEBpZiAobW9kZSgpID09PSAnbG9uZycpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9uZ1BhZ2luYXRvclwiPjwvbmctY29udGFpbmVyPlxuICB9IEBlbHNlIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2hvcnRQYWdpbmF0b3JcIj48L25nLWNvbnRhaW5lcj5cbiAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2hvcnRQYWdpbmF0b3I+XG4gIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVBhZ2UoMSlcIiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gMVwiPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2tpcC1sZWZ0LWZpbGxcIj48L3ByeS1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiY2hhbmdlUGFnZShjdXJyZW50UGFnZSgpIC0gMSlcIiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UoKSA9PT0gMVwiPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYXJyb3ctbGVmdC1zLWZpbGxcIj48L3ByeS1pY29uPlxuICA8L2J1dHRvbj5cbiAgPHNwYW4gY2xhc3M9XCJvLXBhZ2luYXRvcl9fcGFnZS1jb3VudGVyXCI+e3sgY3VycmVudFBhZ2UoKSB9fSAvIHt7IG5iT2ZQYWdlcygpIH19PC9zcGFuPlxuICA8YnV0dG9uIChjbGljayk9XCJjaGFuZ2VQYWdlKGN1cnJlbnRQYWdlKCkgKyAxKVwiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSgpID09PSBuYk9mUGFnZXMoKVwiPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYXJyb3ctcmlnaHQtcy1maWxsXCI+PC9wcnktaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVBhZ2UobmJPZlBhZ2VzKCkpXCIgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlKCkgPT09IG5iT2ZQYWdlcygpXCI+XG4gICAgPHByeS1pY29uIGljb25Tdmc9XCJza2lwLXJpZ2h0LWZpbGxcIj48L3ByeS1pY29uPlxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9uZ1BhZ2luYXRvcj5cbiAgQGlmIChjdXJyZW50UGFnZSgpID4gMSkge1xuICAgIDxidXR0b24gKGNsaWNrKT1cImNoYW5nZVBhZ2UoY3VycmVudFBhZ2UoKSAtIDEpXCI+XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNoZXZyb25fbGVmdFwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIH1cbiAgQGlmIChuYk9mUGFnZXMoKSA+IDgpIHtcbiAgICBAaWYgKGN1cnJlbnRQYWdlKCkgPCAzKSB7XG4gICAgICBAZm9yIChwYWdlIG9mIHBhZ2VzKCkuc2xpY2UoMCwgMyk7IHRyYWNrIHBhZ2UpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gLXNtYWxsLWNpcmNsZSAtbm8tcGFkZGluZ1wiXG4gICAgICAgICAgW2NsYXNzLmEtYnRuLS1wcmltYXJ5XT1cInBhZ2UgPT09IGN1cnJlbnRQYWdlKClcIlxuICAgICAgICAgIFtjbGFzcy5hLWJ0bi0tZ2hvc3RdPVwicGFnZSAhPT0gY3VycmVudFBhZ2UoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIDxzcGFuIGNsYXNzPVwidS1zZWxmLWVuZFwiPi4uLjwvc3Bhbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biAtc21hbGwtY2lyY2xlIC1uby1wYWRkaW5nXCIgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZXMoKS5sZW5ndGgpXCI+XG4gICAgICAgIHt7IHBhZ2VzKCkubGVuZ3RoIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICB9IEBlbHNlIGlmIChjdXJyZW50UGFnZSgpID4gcGFnZXMoKS5sZW5ndGggLSAyKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYS1idG4gLXNtYWxsLWNpcmNsZSAtbm8tcGFkZGluZ1wiXG4gICAgICAgIChjbGljayk9XCJjaGFuZ2VQYWdlKDEpXCJcbiAgICAgICAgW2NsYXNzLmEtYnRuLS1wcmltYXJ5XT1cImN1cnJlbnRQYWdlKCkgPT09IDFcIlxuICAgICAgICBbY2xhc3MuYS1idG4tLWdob3N0XT1cImN1cnJlbnRQYWdlKCkgIT09IDFcIlxuICAgICAgPlxuICAgICAgICAxXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidS1zZWxmLWVuZFwiPi4uLjwvc3Bhbj5cbiAgICAgIEBmb3IgKHBhZ2Ugb2YgcGFnZXMoKS5zbGljZSgtMyk7IHRyYWNrIHBhZ2UpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gLXNtYWxsLWNpcmNsZSAtbm8tcGFkZGluZ1wiXG4gICAgICAgICAgW2NsYXNzLmEtYnRuLS1wcmltYXJ5XT1cInBhZ2UgPT09IGN1cnJlbnRQYWdlKClcIlxuICAgICAgICAgIFtjbGFzcy5hLWJ0bi0tZ2hvc3RdPVwicGFnZSAhPT0gY3VycmVudFBhZ2UoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZSlcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcGFnZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biAtc21hbGwtY2lyY2xlIC1uby1wYWRkaW5nXCIgKGNsaWNrKT1cImNoYW5nZVBhZ2UoMSlcIj4xPC9idXR0b24+XG4gICAgICA8c3Bhbj4uLi48L3NwYW4+XG4gICAgICBAZm9yIChwYWdlIG9mIHBhZ2VzKCkuc2xpY2UoY3VycmVudFBhZ2UoKSAtIDIsIGN1cnJlbnRQYWdlKCkgKyAxKTsgdHJhY2sgcGFnZSkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biAtc21hbGwtY2lyY2xlIC1uby1wYWRkaW5nXCJcbiAgICAgICAgICBbY2xhc3MuYS1idG4tLXByaW1hcnldPVwicGFnZSA9PT0gY3VycmVudFBhZ2UoKVwiXG4gICAgICAgICAgW2NsYXNzLmEtYnRuLS1naG9zdF09XCJwYWdlICE9PSBjdXJyZW50UGFnZSgpXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUGFnZShwYWdlKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBwYWdlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgPHNwYW4+Li4uPC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImEtYnRuIC1zbWFsbC1jaXJjbGUgLW5vLXBhZGRpbmdcIlxuICAgICAgICBbY2xhc3MuYS1idG4tLXByaW1hcnldPVwiY3VycmVudFBhZ2UoKSA9PT0gcGFnZXMoKS5sZW5ndGhcIlxuICAgICAgICBbY2xhc3MuYS1idG4tLWdob3N0XT1cImN1cnJlbnRQYWdlKCkgIT09IHBhZ2VzKCkubGVuZ3RoXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZXMoKS5sZW5ndGgpXCJcbiAgICAgID5cbiAgICAgICAge3sgcGFnZXMoKS5sZW5ndGggfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGZvciAocGFnZSBvZiBwYWdlcygpOyB0cmFjayBwYWdlKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYS1idG4gLXNtYWxsLWNpcmNsZSAtbm8tcGFkZGluZ1wiXG4gICAgICAgIFtjbGFzcy5hLWJ0bi0tcHJpbWFyeV09XCJwYWdlID09PSBjdXJyZW50UGFnZSgpXCJcbiAgICAgICAgW2NsYXNzLmEtYnRuLS1naG9zdF09XCJwYWdlICE9PSBjdXJyZW50UGFnZSgpXCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UocGFnZSlcIlxuICAgICAgPlxuICAgICAgICB7eyBwYWdlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIH1cbiAgQGlmIChjdXJyZW50UGFnZSgpIDwgcGFnZXMoKS5sZW5ndGgpIHtcbiAgICA8YnV0dG9uIChjbGljayk9XCJjaGFuZ2VQYWdlKGN1cnJlbnRQYWdlKCkgKyAxKVwiPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjaGV2cm9uX3JpZ2h0XCI+PC9wcnktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { Component, input, signal } from '@angular/core';
2
2
  import { DataSourceActions, DataSourceSelectors, PryStatusModalComponent, SubscriptionnerDirective } from '@provoly/dashboard';
3
+ import { Subject } from 'rxjs';
3
4
  import { PryVersionModalComponent } from '../version-modal/version-modal.component';
4
5
  import { GlobalPositionStrategy } from '@angular/cdk/overlay';
5
6
  import * as i0 from "@angular/core";
@@ -14,7 +15,7 @@ export class PryImportListComponent extends SubscriptionnerDirective {
14
15
  super();
15
16
  this.store = store;
16
17
  this.dialog = dialog;
17
- this.loadDataAction = signal(DataSourceActions.dataset.listVersions({}));
18
+ this.loadDataAction = signal(DataSourceActions.dataset.listVersions({ orderBy: 'DATE', sortBy: 'desc' }));
18
19
  this.refreshClick = input();
19
20
  this.possibleStatus = ['LOADING', 'INDEXING', 'INACTIVE', 'ERROR', 'ACTIVE', 'DELETING', 'DELETE_ERROR'];
20
21
  this.filters = {
@@ -23,7 +24,8 @@ export class PryImportListComponent extends SubscriptionnerDirective {
23
24
  dateMin: undefined,
24
25
  dateMax: undefined
25
26
  };
26
- this.sort = {};
27
+ this.sort = { orderBy: 'DATE', sortBy: 'desc' };
28
+ this.goBackToFirstPage$ = new Subject();
27
29
  this.store.dispatch(DataSourceActions.dataset.loadDataset());
28
30
  this.datasets$ = this.store.select(DataSourceSelectors.datasets);
29
31
  this.datasetVersions$ = this.store.select(DataSourceSelectors.datasetVersions);
@@ -34,19 +36,20 @@ export class PryImportListComponent extends SubscriptionnerDirective {
34
36
  }
35
37
  clearFilters() {
36
38
  this.filters = { dataset: undefined, status: undefined, dateMin: undefined, dateMax: undefined };
39
+ this.loadDataAction.update((loadDataAction) => ({ ...loadDataAction, offset: 0 }));
37
40
  this.store.dispatch({
38
41
  ...this.loadDataAction(),
39
42
  limit: 10,
40
43
  ...this.sort
41
44
  });
45
+ this.goBackToFirstPage();
42
46
  }
43
47
  loadData() {
44
48
  this.store.dispatch({
45
49
  ...this.loadDataAction(),
46
- limit: 10,
47
- ...this.filters,
48
- ...this.sort
50
+ limit: 10
49
51
  });
52
+ this.goBackToFirstPage();
50
53
  }
51
54
  openInfoModal(version) {
52
55
  this.dialog.open(PryVersionModalComponent, {
@@ -66,16 +69,21 @@ export class PryImportListComponent extends SubscriptionnerDirective {
66
69
  sortChange($event) {
67
70
  this.sort.sortBy = $event.direction;
68
71
  this.sort.orderBy = $event.active;
72
+ this.loadDataAction.update((loadDataAction) => ({ ...loadDataAction, ...this.sort }));
69
73
  this.loadData();
70
74
  }
71
75
  updateFilters() {
72
76
  this.loadDataAction.update((loadDataAction) => ({ ...loadDataAction, ...this.filters }));
73
77
  }
78
+ goBackToFirstPage() {
79
+ this.goBackToFirstPage$.next(true);
80
+ setTimeout(() => this.goBackToFirstPage$.next(false), 50);
81
+ }
74
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryImportListComponent, deps: [{ token: i1.Store }, { token: i2.PryDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryImportListComponent, selector: "pry-import-list", inputs: { refreshClick: { classPropertyName: "refreshClick", publicName: "refreshClick", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import-list u-display-flex -column -gap-20\">\n <h1 class=\"a-h1\">{{ '@pry.importList.title' | i18n }}</h1>\n <div class=\"o-import-list__filters u-display-flex -gap-20\">\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__dataset-filter\" #dsRef>\n <label class=\"a-label m-filter__label\" for=\"dataset_name_filter\">\n {{ '@pry.importList.filter.dsName' | i18n }}&nbsp;:&nbsp;\n </label>\n <pry-select\n id=\"dataset_name_filter\"\n [items]=\"datasets$ | async\"\n [(ngModel)]=\"filters.dataset\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [elementRef]=\"dsRef\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__state-filter\" #statusRef>\n <label class=\"a-label m-filter__label\" for=\"import_status\">\n {{ '@pry.importList.filter.status' | i18n }}&nbsp;:&nbsp;\n </label>\n <pry-select\n id=\"import_status\"\n [items]=\"possibleStatus\"\n [(ngModel)]=\"filters.status\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n aria-labelledby=\"item-label\"\n [elementRef]=\"statusRef\"\n i18nPrefix=\"@pry.dataset.version.stateFilter.\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__date-filter\">\n <fieldset class=\"u-display-flex -align-center\">\n <legend class=\"a-label m-filter__label\">{{ '@pry.importList.filter.date' | i18n }}&nbsp;:&nbsp;</legend>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMin\" (ngModelChange)=\"updateFilters()\" />\n <span class=\"m-filter__date-input-separator\">&nbsp;-&nbsp;</span>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMax\" (ngModelChange)=\"updateFilters()\" />\n </fieldset>\n </div>\n <button type=\"button\" class=\"a-btn a-btn--icon-only u-self-center\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"loadData()\">\n {{ '@pry.toolbox.apply' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n <div class=\"o-import-list__content\">\n <table class=\"a-table\" prySortTable (prySortChange)=\"sortChange($event)\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th id=\"import_list_header_dataset\" prySortHeader=\"DATASET_NAME\">\n {{ '@pry.importList.dsName' | i18n }}\n </th>\n <th>{{ '@pry.importList.number' | i18n }}</th>\n <th id=\"import_list_header_date\" prySortHeader=\"DATE\" (sortChange)=\"sortChange($event)\">\n {{ '@pry.importList.date' | i18n }}\n </th>\n <th>{{ '@pry.importList.status' | i18n }}</th>\n <th>{{ '@pry.importList.actions' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (version of datasetVersions$ | async; track version.id) {\n <tr>\n <td>{{ version.dataset.name }}</td>\n <td>\n {{ version.version }}\n </td>\n <td>\n {{ version.productionDate | date: 'dd/MM/yyyy HH:mm' }}\n </td>\n <td class=\"u-display-flex -align-center -cell-with-icon\">\n @if (version.state === 'ACTIVE') {\n <pry-icon iconSvg=\"check\" class=\"check\" [height]=\"20\" [width]=\"20\"></pry-icon>\n } @else if (version.state === 'WARNING' || version.state === 'ERROR') {\n <pry-icon iconSvg=\"warning-triangle\" class=\"warning\" [height]=\"20\" [width]=\"20\"></pry-icon>\n }\n {{\n version.id === version.dataset.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : ('@pry.dataset.version.state.' + version.state | i18n)\n }}\n </td>\n @if (version.state === 'ACTIVE' || version.state === 'INACTIVE') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openInfoModal(version)\">Consulter</button>\n </td>\n } @else if (version.state === 'ERROR' || version.state === 'WARNING') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ version.state === 'ERROR' ? 'Consulter erreurs' : 'Consulter warnings' }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n <pry-paginator\n [action]=\"loadDataAction()\"\n [nbPerPage]=\"10\"\n [totalItemNb]=\"(totalVersionCount$ | async)!\"\n class=\"u-self-center\"\n ></pry-paginator>\n</div>\n", dependencies: [{ kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryPaginatorComponent, selector: "pry-paginator", inputs: ["action", "nbPerPage", "totalItemNb", "mode"], outputs: ["pageChange"] }, { kind: "component", type: i2.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i2.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i2.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i5.PryImportCssComponent, selector: "pry-import-css" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.DatePipe, name: "date" }] }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryImportListComponent, selector: "pry-import-list", inputs: { refreshClick: { classPropertyName: "refreshClick", publicName: "refreshClick", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import-list u-display-flex -column -gap-20\">\n <h1 class=\"a-h1\">{{ '@pry.importList.title' | i18n }}</h1>\n <div class=\"o-import-list__filters u-display-flex -gap-20\">\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__dataset-filter\" #dsRef>\n <label class=\"a-label m-filter__label\" for=\"dataset_name_filter\">\n {{ '@pry.importList.filter.dsName' | i18n }}&nbsp;:&nbsp;\n </label>\n <pry-select\n id=\"dataset_name_filter\"\n [items]=\"datasets$ | async\"\n [(ngModel)]=\"filters.dataset\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [elementRef]=\"dsRef\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__state-filter\" #statusRef>\n <label class=\"a-label m-filter__label\" for=\"import_status\">\n {{ '@pry.importList.filter.status' | i18n }}&nbsp;:&nbsp;\n </label>\n <pry-select\n id=\"import_status\"\n [items]=\"possibleStatus\"\n [(ngModel)]=\"filters.status\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n aria-labelledby=\"item-label\"\n [elementRef]=\"statusRef\"\n i18nPrefix=\"@pry.dataset.version.stateFilter.\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__date-filter\">\n <fieldset class=\"u-display-flex -align-center\">\n <legend class=\"a-label m-filter__label\">{{ '@pry.importList.filter.date' | i18n }}&nbsp;:&nbsp;</legend>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMin\" (ngModelChange)=\"updateFilters()\" />\n <span class=\"m-filter__date-input-separator\">&nbsp;-&nbsp;</span>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMax\" (ngModelChange)=\"updateFilters()\" />\n </fieldset>\n </div>\n <button type=\"button\" class=\"a-btn a-btn--icon-only u-self-center\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"loadData()\">\n {{ '@pry.toolbox.apply' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n <div class=\"o-import-list__content\">\n <table\n class=\"a-table\"\n prySortTable\n (prySortChange)=\"sortChange($event)\"\n [prySortDirection]=\"sort.sortBy\"\n [prySortActive]=\"sort.orderBy\"\n >\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th id=\"import_list_header_dataset\" prySortHeader=\"DATASET_NAME\">\n {{ '@pry.importList.dsName' | i18n }}\n </th>\n <th>{{ '@pry.importList.number' | i18n }}</th>\n <th id=\"import_list_header_date\" prySortHeader=\"DATE\" (sortChange)=\"sortChange($event)\">\n {{ '@pry.importList.date' | i18n }}\n </th>\n <th>{{ '@pry.importList.status' | i18n }}</th>\n <th>{{ '@pry.importList.actions' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (version of datasetVersions$ | async; track version.id) {\n <tr>\n <td>{{ version.dataset.name }}</td>\n <td>\n {{ version.version }}\n </td>\n <td>\n {{ version.lastModified | date: 'dd/MM/yyyy HH:mm' }}\n </td>\n <td class=\"u-display-flex -align-center -cell-with-icon\">\n @if (version.state === 'ACTIVE') {\n <pry-icon iconSvg=\"check\" class=\"check\" [height]=\"20\" [width]=\"20\"></pry-icon>\n } @else if (version.state === 'WARNING' || version.state === 'ERROR') {\n <pry-icon iconSvg=\"warning-triangle\" class=\"warning\" [height]=\"20\" [width]=\"20\"></pry-icon>\n }\n {{\n version.id === version.dataset.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : ('@pry.dataset.version.state.' + version.state | i18n)\n }}\n </td>\n @if (version.state === 'ACTIVE' || version.state === 'INACTIVE') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openInfoModal(version)\">\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n </td>\n @if (version.hasWarnings) {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ '@pry.dataset.buttonAction.WARNING' | i18n }}\n </button>\n </td>\n }\n } @else if (version.state === 'ERROR') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n <pry-paginator\n [action]=\"loadDataAction()\"\n [nbPerPage]=\"10\"\n [totalItemNb]=\"(totalVersionCount$ | async)!\"\n class=\"u-self-center\"\n [goBackToFirstPage]=\"goBackToFirstPage$ | async\"\n ></pry-paginator>\n</div>\n", dependencies: [{ kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryPaginatorComponent, selector: "pry-paginator", inputs: ["action", "nbPerPage", "totalItemNb", "mode", "goBackToFirstPage"], outputs: ["pageChange"] }, { kind: "component", type: i2.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i2.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i2.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i5.PryImportCssComponent, selector: "pry-import-css" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.DatePipe, name: "date" }] }); }
76
84
  }
77
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryImportListComponent, decorators: [{
78
86
  type: Component,
79
- args: [{ selector: 'pry-import-list', template: "<pry-import-css></pry-import-css>\n<div class=\"o-import-list u-display-flex -column -gap-20\">\n <h1 class=\"a-h1\">{{ '@pry.importList.title' | i18n }}</h1>\n <div class=\"o-import-list__filters u-display-flex -gap-20\">\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__dataset-filter\" #dsRef>\n <label class=\"a-label m-filter__label\" for=\"dataset_name_filter\">\n {{ '@pry.importList.filter.dsName' | i18n }}&nbsp;:&nbsp;\n </label>\n <pry-select\n id=\"dataset_name_filter\"\n [items]=\"datasets$ | async\"\n [(ngModel)]=\"filters.dataset\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [elementRef]=\"dsRef\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__state-filter\" #statusRef>\n <label class=\"a-label m-filter__label\" for=\"import_status\">\n {{ '@pry.importList.filter.status' | i18n }}&nbsp;:&nbsp;\n </label>\n <pry-select\n id=\"import_status\"\n [items]=\"possibleStatus\"\n [(ngModel)]=\"filters.status\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n aria-labelledby=\"item-label\"\n [elementRef]=\"statusRef\"\n i18nPrefix=\"@pry.dataset.version.stateFilter.\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__date-filter\">\n <fieldset class=\"u-display-flex -align-center\">\n <legend class=\"a-label m-filter__label\">{{ '@pry.importList.filter.date' | i18n }}&nbsp;:&nbsp;</legend>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMin\" (ngModelChange)=\"updateFilters()\" />\n <span class=\"m-filter__date-input-separator\">&nbsp;-&nbsp;</span>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMax\" (ngModelChange)=\"updateFilters()\" />\n </fieldset>\n </div>\n <button type=\"button\" class=\"a-btn a-btn--icon-only u-self-center\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"loadData()\">\n {{ '@pry.toolbox.apply' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n <div class=\"o-import-list__content\">\n <table class=\"a-table\" prySortTable (prySortChange)=\"sortChange($event)\">\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th id=\"import_list_header_dataset\" prySortHeader=\"DATASET_NAME\">\n {{ '@pry.importList.dsName' | i18n }}\n </th>\n <th>{{ '@pry.importList.number' | i18n }}</th>\n <th id=\"import_list_header_date\" prySortHeader=\"DATE\" (sortChange)=\"sortChange($event)\">\n {{ '@pry.importList.date' | i18n }}\n </th>\n <th>{{ '@pry.importList.status' | i18n }}</th>\n <th>{{ '@pry.importList.actions' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (version of datasetVersions$ | async; track version.id) {\n <tr>\n <td>{{ version.dataset.name }}</td>\n <td>\n {{ version.version }}\n </td>\n <td>\n {{ version.productionDate | date: 'dd/MM/yyyy HH:mm' }}\n </td>\n <td class=\"u-display-flex -align-center -cell-with-icon\">\n @if (version.state === 'ACTIVE') {\n <pry-icon iconSvg=\"check\" class=\"check\" [height]=\"20\" [width]=\"20\"></pry-icon>\n } @else if (version.state === 'WARNING' || version.state === 'ERROR') {\n <pry-icon iconSvg=\"warning-triangle\" class=\"warning\" [height]=\"20\" [width]=\"20\"></pry-icon>\n }\n {{\n version.id === version.dataset.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : ('@pry.dataset.version.state.' + version.state | i18n)\n }}\n </td>\n @if (version.state === 'ACTIVE' || version.state === 'INACTIVE') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openInfoModal(version)\">Consulter</button>\n </td>\n } @else if (version.state === 'ERROR' || version.state === 'WARNING') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ version.state === 'ERROR' ? 'Consulter erreurs' : 'Consulter warnings' }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n <pry-paginator\n [action]=\"loadDataAction()\"\n [nbPerPage]=\"10\"\n [totalItemNb]=\"(totalVersionCount$ | async)!\"\n class=\"u-self-center\"\n ></pry-paginator>\n</div>\n" }]
87
+ args: [{ selector: 'pry-import-list', template: "<pry-import-css></pry-import-css>\n<div class=\"o-import-list u-display-flex -column -gap-20\">\n <h1 class=\"a-h1\">{{ '@pry.importList.title' | i18n }}</h1>\n <div class=\"o-import-list__filters u-display-flex -gap-20\">\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__dataset-filter\" #dsRef>\n <label class=\"a-label m-filter__label\" for=\"dataset_name_filter\">\n {{ '@pry.importList.filter.dsName' | i18n }}&nbsp;:&nbsp;\n </label>\n <pry-select\n id=\"dataset_name_filter\"\n [items]=\"datasets$ | async\"\n [(ngModel)]=\"filters.dataset\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [elementRef]=\"dsRef\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__state-filter\" #statusRef>\n <label class=\"a-label m-filter__label\" for=\"import_status\">\n {{ '@pry.importList.filter.status' | i18n }}&nbsp;:&nbsp;\n </label>\n <pry-select\n id=\"import_status\"\n [items]=\"possibleStatus\"\n [(ngModel)]=\"filters.status\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n aria-labelledby=\"item-label\"\n [elementRef]=\"statusRef\"\n i18nPrefix=\"@pry.dataset.version.stateFilter.\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__date-filter\">\n <fieldset class=\"u-display-flex -align-center\">\n <legend class=\"a-label m-filter__label\">{{ '@pry.importList.filter.date' | i18n }}&nbsp;:&nbsp;</legend>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMin\" (ngModelChange)=\"updateFilters()\" />\n <span class=\"m-filter__date-input-separator\">&nbsp;-&nbsp;</span>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMax\" (ngModelChange)=\"updateFilters()\" />\n </fieldset>\n </div>\n <button type=\"button\" class=\"a-btn a-btn--icon-only u-self-center\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"loadData()\">\n {{ '@pry.toolbox.apply' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n <div class=\"o-import-list__content\">\n <table\n class=\"a-table\"\n prySortTable\n (prySortChange)=\"sortChange($event)\"\n [prySortDirection]=\"sort.sortBy\"\n [prySortActive]=\"sort.orderBy\"\n >\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th id=\"import_list_header_dataset\" prySortHeader=\"DATASET_NAME\">\n {{ '@pry.importList.dsName' | i18n }}\n </th>\n <th>{{ '@pry.importList.number' | i18n }}</th>\n <th id=\"import_list_header_date\" prySortHeader=\"DATE\" (sortChange)=\"sortChange($event)\">\n {{ '@pry.importList.date' | i18n }}\n </th>\n <th>{{ '@pry.importList.status' | i18n }}</th>\n <th>{{ '@pry.importList.actions' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (version of datasetVersions$ | async; track version.id) {\n <tr>\n <td>{{ version.dataset.name }}</td>\n <td>\n {{ version.version }}\n </td>\n <td>\n {{ version.lastModified | date: 'dd/MM/yyyy HH:mm' }}\n </td>\n <td class=\"u-display-flex -align-center -cell-with-icon\">\n @if (version.state === 'ACTIVE') {\n <pry-icon iconSvg=\"check\" class=\"check\" [height]=\"20\" [width]=\"20\"></pry-icon>\n } @else if (version.state === 'WARNING' || version.state === 'ERROR') {\n <pry-icon iconSvg=\"warning-triangle\" class=\"warning\" [height]=\"20\" [width]=\"20\"></pry-icon>\n }\n {{\n version.id === version.dataset.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : ('@pry.dataset.version.state.' + version.state | i18n)\n }}\n </td>\n @if (version.state === 'ACTIVE' || version.state === 'INACTIVE') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openInfoModal(version)\">\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n </td>\n @if (version.hasWarnings) {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ '@pry.dataset.buttonAction.WARNING' | i18n }}\n </button>\n </td>\n }\n } @else if (version.state === 'ERROR') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ '@pry.dataset.buttonAction.' + version.state | i18n }}\n </button>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n <pry-paginator\n [action]=\"loadDataAction()\"\n [nbPerPage]=\"10\"\n [totalItemNb]=\"(totalVersionCount$ | async)!\"\n class=\"u-self-center\"\n [goBackToFirstPage]=\"goBackToFirstPage$ | async\"\n ></pry-paginator>\n</div>\n" }]
80
88
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.PryDialogService }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2NvbXBvbmVudHMvbGlzdC9pbXBvcnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9pbXBvcnQvY29tcG9uZW50cy9saXN0L2ltcG9ydC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFVLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFHbkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQU05RCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsd0JBQXdCO0lBZ0JsRSxZQUNVLEtBQVksRUFDWixNQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQUhBLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQWpCbEMsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLGlCQUFZLEdBQUcsS0FBSyxFQUFvQixDQUFDO1FBR3pDLG1CQUFjLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUdwRyxZQUFPLEdBQThF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QXlIQTs7MkZEckdhLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgaW5wdXQsIE9uSW5pdCwgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIERhdGFzZXQsXG4gIERhdGFzZXRWZXJzaW9uLFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgUHJ5RGlhbG9nU2VydmljZSxcbiAgUHJ5U29ydENoYW5nZSxcbiAgUHJ5U3RhdHVzTW9kYWxDb21wb25lbnQsXG4gIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJ5VmVyc2lvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vdmVyc2lvbi1tb2RhbC92ZXJzaW9uLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktaW1wb3J0LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1wb3J0LWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUltcG9ydExpc3RDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBsb2FkRGF0YUFjdGlvbiA9IHNpZ25hbChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9ucyh7fSkpO1xuICByZWZyZXNoQ2xpY2sgPSBpbnB1dDxPYnNlcnZhYmxlPHZvaWQ+PigpO1xuXG4gIGRhdGFzZXRzJDogT2JzZXJ2YWJsZTxEYXRhc2V0W10+O1xuICBwb3NzaWJsZVN0YXR1cyA9IFsnTE9BRElORycsICdJTkRFWElORycsICdJTkFDVElWRScsICdFUlJPUicsICdBQ1RJVkUnLCAnREVMRVRJTkcnLCAnREVMRVRFX0VSUk9SJ107XG4gIGRhdGFzZXRWZXJzaW9ucyQ6IE9ic2VydmFibGU8RGF0YXNldFZlcnNpb25bXT47XG4gIHRvdGFsVmVyc2lvbkNvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICBmaWx0ZXJzOiB7IGRhdGFzZXQ/OiBzdHJpbmc7IHN0YXR1cz86IHN0cmluZzsgZGF0ZU1pbj86IHN0cmluZzsgZGF0ZU1heD86IHN0cmluZyB9ID0ge1xuICAgIGRhdGFzZXQ6IHVuZGVmaW5lZCxcbiAgICBzdGF0dXM6IHVuZGVmaW5lZCxcbiAgICBkYXRlTWluOiB1bmRlZmluZWQsXG4gICAgZGF0ZU1heDogdW5kZWZpbmVkXG4gIH07XG4gIHNvcnQ6IHsgb3JkZXJCeT86ICdEQVRBU0VUX05BTUUnIHwgJ0RBVEUnOyBzb3J0Qnk/OiAnYXNjJyB8ICdkZXNjJyB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IFByeURpYWxvZ1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSk7XG4gICAgdGhpcy5kYXRhc2V0cyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmRhdGFzZXRzKTtcbiAgICB0aGlzLmRhdGFzZXRWZXJzaW9ucyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmRhdGFzZXRWZXJzaW9ucyk7XG4gICAgdGhpcy50b3RhbFZlcnNpb25Db3VudCQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLnRvdGFsVmVyc2lvbkNvdW50KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5yZWZyZXNoQ2xpY2soKT8uc3Vic2NyaWJlKCgpID0+IHRoaXMubG9hZERhdGEoKSkpO1xuICB9XG5cbiAgY2xlYXJGaWx0ZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVycyA9IHsgZGF0YXNldDogdW5kZWZpbmVkLCBzdGF0dXM6IHVuZGVmaW5lZCwgZGF0ZU1pbjogdW5kZWZpbmVkLCBkYXRlTWF4OiB1bmRlZmluZWQgfTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIC4uLnRoaXMubG9hZERhdGFBY3Rpb24oKSxcbiAgICAgIGxpbWl0OiAxMCxcbiAgICAgIC4uLnRoaXMuc29ydFxuICAgIH0pO1xuICB9XG5cbiAgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAuLi50aGlzLmxvYWREYXRhQWN0aW9uKCksXG4gICAgICBsaW1pdDogMTAsXG4gICAgICAuLi50aGlzLmZpbHRlcnMsXG4gICAgICAuLi50aGlzLnNvcnRcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5JbmZvTW9kYWwodmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFByeVZlcnNpb25Nb2RhbENvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyB2ZXJzaW9uIH0sXG4gICAgICBvdmVybGF5Q29uZmlnOiB7XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IG5ldyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5KCkuY2VudGVyVmVydGljYWxseSgpLnJpZ2h0KCcyMHB4JyksXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvcGVuRXJyb3JNb2RhbCh2ZXJzaW9uOiBEYXRhc2V0VmVyc2lvbikge1xuICAgIHRoaXMuZGlhbG9nLm9wZW4oUHJ5U3RhdHVzTW9kYWxDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHsgdmVyc2lvbiB9XG4gICAgfSk7XG4gIH1cblxuICBzb3J0Q2hhbmdlKCRldmVudDogUHJ5U29ydENoYW5nZSkge1xuICAgIHRoaXMuc29ydC5zb3J0QnkgPSAkZXZlbnQuZGlyZWN0aW9uIGFzICdhc2MnIHwgJ2Rlc2MnO1xuICAgIHRoaXMuc29ydC5vcmRlckJ5ID0gJGV2ZW50LmFjdGl2ZSBhcyAnREFUQVNFVF9OQU1FJyB8ICdEQVRFJztcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICB1cGRhdGVGaWx0ZXJzKCkge1xuICAgIHRoaXMubG9hZERhdGFBY3Rpb24udXBkYXRlKChsb2FkRGF0YUFjdGlvbikgPT4gKHsgLi4ubG9hZERhdGFBY3Rpb24sIC4uLnRoaXMuZmlsdGVycyB9KSk7XG4gIH1cbn1cbiIsIjxwcnktaW1wb3J0LWNzcz48L3ByeS1pbXBvcnQtY3NzPlxuPGRpdiBjbGFzcz1cIm8taW1wb3J0LWxpc3QgdS1kaXNwbGF5LWZsZXggLWNvbHVtbiAtZ2FwLTIwXCI+XG4gIDxoMSBjbGFzcz1cImEtaDFcIj57eyAnQHByeS5pbXBvcnRMaXN0LnRpdGxlJyB8IGkxOG4gfX08L2gxPlxuICA8ZGl2IGNsYXNzPVwiby1pbXBvcnQtbGlzdF9fZmlsdGVycyB1LWRpc3BsYXktZmxleCAtZ2FwLTIwXCI+XG4gICAgPGRpdiBjbGFzcz1cIm0tZmlsdGVyX19pbnB1dC13cmFwcGVyIG0tZmlsdGVyX19pbnB1dC13cmFwcGVyLS1kcm9wZG93biBvLWltcG9ydC1saXN0X19kYXRhc2V0LWZpbHRlclwiICNkc1JlZj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgbS1maWx0ZXJfX2xhYmVsXCIgZm9yPVwiZGF0YXNldF9uYW1lX2ZpbHRlclwiPlxuICAgICAgICB7eyAnQHByeS5pbXBvcnRMaXN0LmZpbHRlci5kc05hbWUnIHwgaTE4biB9fSZuYnNwOzombmJzcDtcbiAgICAgIDwvbGFiZWw+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBpZD1cImRhdGFzZXRfbmFtZV9maWx0ZXJcIlxuICAgICAgICBbaXRlbXNdPVwiZGF0YXNldHMkIHwgYXN5bmNcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZGF0YXNldFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpbHRlcnMoKVwiXG4gICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwidHJ1ZVwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIml0ZW0tbGFiZWxcIlxuICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgICBbZWxlbWVudFJlZl09XCJkc1JlZlwiXG4gICAgICA+PC9wcnktc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWZpbHRlcl9faW5wdXQtd3JhcHBlciBtLWZpbHRlcl9faW5wdXQtd3JhcHBlci0tZHJvcGRvd24gby1pbXBvcnQtbGlzdF9fc3RhdGUtZmlsdGVyXCIgI3N0YXR1c1JlZj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgbS1maWx0ZXJfX2xhYmVsXCIgZm9yPVwiaW1wb3J0X3N0YXR1c1wiPlxuICAgICAgICB7eyAnQHByeS5pbXBvcnRMaXN0LmZpbHRlci5zdGF0dXMnIHwgaTE4biB9fSZuYnNwOzombmJzcDtcbiAgICAgIDwvbGFiZWw+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBpZD1cImltcG9ydF9zdGF0dXNcIlxuICAgICAgICBbaXRlbXNdPVwicG9zc2libGVTdGF0dXNcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuc3RhdHVzXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlRmlsdGVycygpXCJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiaXRlbS1sYWJlbFwiXG4gICAgICAgIFtlbGVtZW50UmVmXT1cInN0YXR1c1JlZlwiXG4gICAgICAgIGkxOG5QcmVmaXg9XCJAcHJ5LmRhdGFzZXQudmVyc2lvbi5zdGF0ZUZpbHRlci5cIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1maWx0ZXJfX2lucHV0LXdyYXBwZXIgbS1maWx0ZXJfX2lucHV0LXdyYXBwZXItLWRyb3Bkb3duIG8taW1wb3J0LWxpc3RfX2RhdGUtZmlsdGVyXCI+XG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgIDxsZWdlbmQgY2xhc3M9XCJhLWxhYmVsIG0tZmlsdGVyX19sYWJlbFwiPnt7ICdAcHJ5LmltcG9ydExpc3QuZmlsdGVyLmRhdGUnIHwgaTE4biB9fSZuYnNwOzombmJzcDs8L2xlZ2VuZD5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwibS1maWx0ZXJfX2lucHV0XCIgdHlwZT1cImRhdGVcIiBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZGF0ZU1pblwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpbHRlcnMoKVwiIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibS1maWx0ZXJfX2RhdGUtaW5wdXQtc2VwYXJhdG9yXCI+Jm5ic3A7LSZuYnNwOzwvc3Bhbj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwibS1maWx0ZXJfX2lucHV0XCIgdHlwZT1cImRhdGVcIiBbKG5nTW9kZWwpXT1cImZpbHRlcnMuZGF0ZU1heFwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpbHRlcnMoKVwiIC8+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seSB1LXNlbGYtY2VudGVyXCIgKGNsaWNrKT1cImNsZWFyRmlsdGVycygpXCI+XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsZWFyX2ZpbHRlclwiIFt3aWR0aF09XCIzMFwiIFtoZWlnaHRdPVwiMzBcIj48L3ByeS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwibG9hZERhdGEoKVwiPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5hcHBseScgfCBpMThuIH19XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cInJlZnJlc2hfZmlsdGVyXCIgW3dpZHRoXT1cIjE4XCIgW2hlaWdodF09XCIxOFwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1pbXBvcnQtbGlzdF9fY29udGVudFwiPlxuICAgIDx0YWJsZSBjbGFzcz1cImEtdGFibGVcIiBwcnlTb3J0VGFibGUgKHByeVNvcnRDaGFuZ2UpPVwic29ydENoYW5nZSgkZXZlbnQpXCI+XG4gICAgICA8Y2FwdGlvbj5cbiAgICAgICAge3tcbiAgICAgICAgICAnQHByeS5hZG1pbi5kYXRhc2V0LnRpdGxlJyB8IGkxOG5cbiAgICAgICAgfX0sXG4gICAgICAgIHt7XG4gICAgICAgICAgJ0BwcnkuYWN0aW9uLnNvcnRhYmxlQ29sdW1uSGVhZGVyJyB8IGkxOG5cbiAgICAgICAgfX1cbiAgICAgIDwvY2FwdGlvbj5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCBpZD1cImltcG9ydF9saXN0X2hlYWRlcl9kYXRhc2V0XCIgcHJ5U29ydEhlYWRlcj1cIkRBVEFTRVRfTkFNRVwiPlxuICAgICAgICAgICAge3sgJ0BwcnkuaW1wb3J0TGlzdC5kc05hbWUnIHwgaTE4biB9fVxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRoPnt7ICdAcHJ5LmltcG9ydExpc3QubnVtYmVyJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aCBpZD1cImltcG9ydF9saXN0X2hlYWRlcl9kYXRlXCIgcHJ5U29ydEhlYWRlcj1cIkRBVEVcIiAoc29ydENoYW5nZSk9XCJzb3J0Q2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LmltcG9ydExpc3QuZGF0ZScgfCBpMThuIH19XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuaW1wb3J0TGlzdC5zdGF0dXMnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPHRoPnt7ICdAcHJ5LmltcG9ydExpc3QuYWN0aW9ucycgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIEBmb3IgKHZlcnNpb24gb2YgZGF0YXNldFZlcnNpb25zJCB8IGFzeW5jOyB0cmFjayB2ZXJzaW9uLmlkKSB7XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkPnt7IHZlcnNpb24uZGF0YXNldC5uYW1lIH19PC90ZD5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAge3sgdmVyc2lvbi52ZXJzaW9uIH19XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICB7eyB2ZXJzaW9uLnByb2R1Y3Rpb25EYXRlIHwgZGF0ZTogJ2RkL01NL3l5eXkgSEg6bW0nIH19XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLWFsaWduLWNlbnRlciAtY2VsbC13aXRoLWljb25cIj5cbiAgICAgICAgICAgICAgQGlmICh2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJykge1xuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hlY2tcIiBjbGFzcz1cImNoZWNrXCIgW2hlaWdodF09XCIyMFwiIFt3aWR0aF09XCIyMFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHZlcnNpb24uc3RhdGUgPT09ICdXQVJOSU5HJyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnRVJST1InKSB7XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJ3YXJuaW5nLXRyaWFuZ2xlXCIgY2xhc3M9XCJ3YXJuaW5nXCIgW2hlaWdodF09XCIyMFwiIFt3aWR0aF09XCIyMFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICB2ZXJzaW9uLmlkID09PSB2ZXJzaW9uLmRhdGFzZXQuYWN0aXZlVmVyc2lvbj8uaWRcbiAgICAgICAgICAgICAgICAgID8gJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnN0YXRlLmN1cnJlbnRseUFjdGl2ZSdcbiAgICAgICAgICAgICAgICAgIDogKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5zdGF0ZS4nICsgdmVyc2lvbi5zdGF0ZSB8IGkxOG4pXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgQGlmICh2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnSU5BQ1RJVkUnKSB7XG4gICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJvcGVuSW5mb01vZGFsKHZlcnNpb24pXCI+Q29uc3VsdGVyPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9IEBlbHNlIGlmICh2ZXJzaW9uLnN0YXRlID09PSAnRVJST1InIHx8IHZlcnNpb24uc3RhdGUgPT09ICdXQVJOSU5HJykge1xuICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwib3BlbkVycm9yTW9kYWwodmVyc2lvbilcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHZlcnNpb24uc3RhdGUgPT09ICdFUlJPUicgPyAnQ29uc3VsdGVyIGVycmV1cnMnIDogJ0NvbnN1bHRlciB3YXJuaW5ncycgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICB9XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuICA8cHJ5LXBhZ2luYXRvclxuICAgIFthY3Rpb25dPVwibG9hZERhdGFBY3Rpb24oKVwiXG4gICAgW25iUGVyUGFnZV09XCIxMFwiXG4gICAgW3RvdGFsSXRlbU5iXT1cIih0b3RhbFZlcnNpb25Db3VudCQgfCBhc3luYykhXCJcbiAgICBjbGFzcz1cInUtc2VsZi1jZW50ZXJcIlxuICA+PC9wcnktcGFnaW5hdG9yPlxuPC9kaXY+XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2NvbXBvbmVudHMvbGlzdC9pbXBvcnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9pbXBvcnQvY29tcG9uZW50cy9saXN0L2ltcG9ydC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFVLE1BQU0sRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFHbkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBTTlELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx3QkFBd0I7SUFpQmxFLFlBQ1UsS0FBWSxFQUNaLE1BQXdCO1FBRWhDLEtBQUssRUFBRSxDQUFDO1FBSEEsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBbEJsQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLGlCQUFZLEdBQUcsS0FBSyxFQUFvQixDQUFDO1FBR3pDLG1CQUFjLEdBQUcsQ0FBQyxTQUFTLEVBQUUs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LFNBQTJCLENBQUM7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQWlDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQzs4R0FsRlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsdU9DcEJuQyxreExBeUlBOzsyRkRySGEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBpbnB1dCwgT25Jbml0LCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGF0YXNldCxcbiAgRGF0YXNldFZlcnNpb24sXG4gIERhdGFTb3VyY2VBY3Rpb25zLFxuICBEYXRhU291cmNlU2VsZWN0b3JzLFxuICBQcnlEaWFsb2dTZXJ2aWNlLFxuICBQcnlTb3J0Q2hhbmdlLFxuICBQcnlTdGF0dXNNb2RhbENvbXBvbmVudCxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcnlWZXJzaW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi92ZXJzaW9uLW1vZGFsL3ZlcnNpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1pbXBvcnQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5SW1wb3J0TGlzdENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGxvYWREYXRhQWN0aW9uID0gc2lnbmFsKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zKHsgb3JkZXJCeTogJ0RBVEUnLCBzb3J0Qnk6ICdkZXNjJyB9KSk7XG4gIHJlZnJlc2hDbGljayA9IGlucHV0PE9ic2VydmFibGU8dm9pZD4+KCk7XG5cbiAgZGF0YXNldHMkOiBPYnNlcnZhYmxlPERhdGFzZXRbXT47XG4gIHBvc3NpYmxlU3RhdHVzID0gWydMT0FESU5HJywgJ0lOREVYSU5HJywgJ0lOQUNUSVZFJywgJ0VSUk9SJywgJ0FDVElWRScsICdERUxFVElORycsICdERUxFVEVfRVJST1InXTtcbiAgZGF0YXNldFZlcnNpb25zJDogT2JzZXJ2YWJsZTxEYXRhc2V0VmVyc2lvbltdPjtcbiAgdG90YWxWZXJzaW9uQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gIGZpbHRlcnM6IHsgZGF0YXNldD86IHN0cmluZzsgc3RhdHVzPzogc3RyaW5nOyBkYXRlTWluPzogc3RyaW5nOyBkYXRlTWF4Pzogc3RyaW5nIH0gPSB7XG4gICAgZGF0YXNldDogdW5kZWZpbmVkLFxuICAgIHN0YXR1czogdW5kZWZpbmVkLFxuICAgIGRhdGVNaW46IHVuZGVmaW5lZCxcbiAgICBkYXRlTWF4OiB1bmRlZmluZWRcbiAgfTtcbiAgc29ydDogeyBvcmRlckJ5PzogJ0RBVEFTRVRfTkFNRScgfCAnREFURSc7IHNvcnRCeT86ICdhc2MnIHwgJ2Rlc2MnIH0gPSB7IG9yZGVyQnk6ICdEQVRFJywgc29ydEJ5OiAnZGVzYycgfTtcbiAgZ29CYWNrVG9GaXJzdFBhZ2UkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIGRpYWxvZzogUHJ5RGlhbG9nU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCgpKTtcbiAgICB0aGlzLmRhdGFzZXRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZGF0YXNldHMpO1xuICAgIHRoaXMuZGF0YXNldFZlcnNpb25zJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZGF0YXNldFZlcnNpb25zKTtcbiAgICB0aGlzLnRvdGFsVmVyc2lvbkNvdW50JCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMudG90YWxWZXJzaW9uQ291bnQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnJlZnJlc2hDbGljaygpPy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sb2FkRGF0YSgpKSk7XG4gIH1cblxuICBjbGVhckZpbHRlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzID0geyBkYXRhc2V0OiB1bmRlZmluZWQsIHN0YXR1czogdW5kZWZpbmVkLCBkYXRlTWluOiB1bmRlZmluZWQsIGRhdGVNYXg6IHVuZGVmaW5lZCB9O1xuICAgIHRoaXMubG9hZERhdGFBY3Rpb24udXBkYXRlKChsb2FkRGF0YUFjdGlvbikgPT4gKHsgLi4ubG9hZERhdGFBY3Rpb24sIG9mZnNldDogMCB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh7XG4gICAgICAuLi50aGlzLmxvYWREYXRhQWN0aW9uKCksXG4gICAgICBsaW1pdDogMTAsXG4gICAgICAuLi50aGlzLnNvcnRcbiAgICB9KTtcbiAgICB0aGlzLmdvQmFja1RvRmlyc3RQYWdlKCk7XG4gIH1cblxuICBsb2FkRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHtcbiAgICAgIC4uLnRoaXMubG9hZERhdGFBY3Rpb24oKSxcbiAgICAgIGxpbWl0OiAxMFxuICAgIH0pO1xuICAgIHRoaXMuZ29CYWNrVG9GaXJzdFBhZ2UoKTtcbiAgfVxuXG4gIG9wZW5JbmZvTW9kYWwodmVyc2lvbjogRGF0YXNldFZlcnNpb24pIHtcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFByeVZlcnNpb25Nb2RhbENvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyB2ZXJzaW9uIH0sXG4gICAgICBvdmVybGF5Q29uZmlnOiB7XG4gICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IG5ldyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5KCkuY2VudGVyVmVydGljYWxseSgpLnJpZ2h0KCcyMHB4JyksXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvcGVuRXJyb3JNb2RhbCh2ZXJzaW9uOiBEYXRhc2V0VmVyc2lvbikge1xuICAgIHRoaXMuZGlhbG9nLm9wZW4oUHJ5U3RhdHVzTW9kYWxDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHsgdmVyc2lvbiB9XG4gICAgfSk7XG4gIH1cblxuICBzb3J0Q2hhbmdlKCRldmVudDogUHJ5U29ydENoYW5nZSkge1xuICAgIHRoaXMuc29ydC5zb3J0QnkgPSAkZXZlbnQuZGlyZWN0aW9uIGFzICdhc2MnIHwgJ2Rlc2MnO1xuICAgIHRoaXMuc29ydC5vcmRlckJ5ID0gJGV2ZW50LmFjdGl2ZSBhcyAnREFUQVNFVF9OQU1FJyB8ICdEQVRFJztcbiAgICB0aGlzLmxvYWREYXRhQWN0aW9uLnVwZGF0ZSgobG9hZERhdGFBY3Rpb24pID0+ICh7IC4uLmxvYWREYXRhQWN0aW9uLCAuLi50aGlzLnNvcnQgfSkpO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcnMoKSB7XG4gICAgdGhpcy5sb2FkRGF0YUFjdGlvbi51cGRhdGUoKGxvYWREYXRhQWN0aW9uKSA9PiAoeyAuLi5sb2FkRGF0YUFjdGlvbiwgLi4udGhpcy5maWx0ZXJzIH0pKTtcbiAgfVxuXG4gIGdvQmFja1RvRmlyc3RQYWdlKCkge1xuICAgIHRoaXMuZ29CYWNrVG9GaXJzdFBhZ2UkLm5leHQodHJ1ZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmdvQmFja1RvRmlyc3RQYWdlJC5uZXh0KGZhbHNlKSwgNTApO1xuICB9XG59XG4iLCI8cHJ5LWltcG9ydC1jc3M+PC9wcnktaW1wb3J0LWNzcz5cbjxkaXYgY2xhc3M9XCJvLWltcG9ydC1saXN0IHUtZGlzcGxheS1mbGV4IC1jb2x1bW4gLWdhcC0yMFwiPlxuICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgJ0BwcnkuaW1wb3J0TGlzdC50aXRsZScgfCBpMThuIH19PC9oMT5cbiAgPGRpdiBjbGFzcz1cIm8taW1wb3J0LWxpc3RfX2ZpbHRlcnMgdS1kaXNwbGF5LWZsZXggLWdhcC0yMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtLWZpbHRlcl9faW5wdXQtd3JhcHBlciBtLWZpbHRlcl9faW5wdXQtd3JhcHBlci0tZHJvcGRvd24gby1pbXBvcnQtbGlzdF9fZGF0YXNldC1maWx0ZXJcIiAjZHNSZWY+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIG0tZmlsdGVyX19sYWJlbFwiIGZvcj1cImRhdGFzZXRfbmFtZV9maWx0ZXJcIj5cbiAgICAgICAge3sgJ0BwcnkuaW1wb3J0TGlzdC5maWx0ZXIuZHNOYW1lJyB8IGkxOG4gfX0mbmJzcDs6Jm5ic3A7XG4gICAgICA8L2xhYmVsPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgaWQ9XCJkYXRhc2V0X25hbWVfZmlsdGVyXCJcbiAgICAgICAgW2l0ZW1zXT1cImRhdGFzZXRzJCB8IGFzeW5jXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRhdGFzZXRcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVGaWx0ZXJzKClcIlxuICAgICAgICBbY2xlYXJhYmxlXT1cInRydWVcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cInRydWVcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJpdGVtLWxhYmVsXCJcbiAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgICAgW2VsZW1lbnRSZWZdPVwiZHNSZWZcIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1maWx0ZXJfX2lucHV0LXdyYXBwZXIgbS1maWx0ZXJfX2lucHV0LXdyYXBwZXItLWRyb3Bkb3duIG8taW1wb3J0LWxpc3RfX3N0YXRlLWZpbHRlclwiICNzdGF0dXNSZWY+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIG0tZmlsdGVyX19sYWJlbFwiIGZvcj1cImltcG9ydF9zdGF0dXNcIj5cbiAgICAgICAge3sgJ0BwcnkuaW1wb3J0TGlzdC5maWx0ZXIuc3RhdHVzJyB8IGkxOG4gfX0mbmJzcDs6Jm5ic3A7XG4gICAgICA8L2xhYmVsPlxuICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgaWQ9XCJpbXBvcnRfc3RhdHVzXCJcbiAgICAgICAgW2l0ZW1zXT1cInBvc3NpYmxlU3RhdHVzXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnN0YXR1c1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpbHRlcnMoKVwiXG4gICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgIGFyaWEtbGFiZWxsZWRieT1cIml0ZW0tbGFiZWxcIlxuICAgICAgICBbZWxlbWVudFJlZl09XCJzdGF0dXNSZWZcIlxuICAgICAgICBpMThuUHJlZml4PVwiQHByeS5kYXRhc2V0LnZlcnNpb24uc3RhdGVGaWx0ZXIuXCJcbiAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZmlsdGVyX19pbnB1dC13cmFwcGVyIG0tZmlsdGVyX19pbnB1dC13cmFwcGVyLS1kcm9wZG93biBvLWltcG9ydC1saXN0X19kYXRlLWZpbHRlclwiPlxuICAgICAgPGZpZWxkc2V0IGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLWFsaWduLWNlbnRlclwiPlxuICAgICAgICA8bGVnZW5kIGNsYXNzPVwiYS1sYWJlbCBtLWZpbHRlcl9fbGFiZWxcIj57eyAnQHByeS5pbXBvcnRMaXN0LmZpbHRlci5kYXRlJyB8IGkxOG4gfX0mbmJzcDs6Jm5ic3A7PC9sZWdlbmQ+XG4gICAgICAgIDxpbnB1dCBjbGFzcz1cIm0tZmlsdGVyX19pbnB1dFwiIHR5cGU9XCJkYXRlXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRhdGVNaW5cIiAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVGaWx0ZXJzKClcIiAvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm0tZmlsdGVyX19kYXRlLWlucHV0LXNlcGFyYXRvclwiPiZuYnNwOy0mbmJzcDs8L3NwYW4+XG4gICAgICAgIDxpbnB1dCBjbGFzcz1cIm0tZmlsdGVyX19pbnB1dFwiIHR5cGU9XCJkYXRlXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLmRhdGVNYXhcIiAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVGaWx0ZXJzKClcIiAvPlxuICAgICAgPC9maWVsZHNldD5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHkgdS1zZWxmLWNlbnRlclwiIChjbGljayk9XCJjbGVhckZpbHRlcnMoKVwiPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbGVhcl9maWx0ZXJcIiBbd2lkdGhdPVwiMzBcIiBbaGVpZ2h0XT1cIjMwXCI+PC9wcnktaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImxvYWREYXRhKClcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3guYXBwbHknIHwgaTE4biB9fVxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJyZWZyZXNoX2ZpbHRlclwiIFt3aWR0aF09XCIxOFwiIFtoZWlnaHRdPVwiMThcIj48L3ByeS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8taW1wb3J0LWxpc3RfX2NvbnRlbnRcIj5cbiAgICA8dGFibGVcbiAgICAgIGNsYXNzPVwiYS10YWJsZVwiXG4gICAgICBwcnlTb3J0VGFibGVcbiAgICAgIChwcnlTb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbcHJ5U29ydERpcmVjdGlvbl09XCJzb3J0LnNvcnRCeVwiXG4gICAgICBbcHJ5U29ydEFjdGl2ZV09XCJzb3J0Lm9yZGVyQnlcIlxuICAgID5cbiAgICAgIDxjYXB0aW9uPlxuICAgICAgICB7e1xuICAgICAgICAgICdAcHJ5LmFkbWluLmRhdGFzZXQudGl0bGUnIHwgaTE4blxuICAgICAgICB9fSxcbiAgICAgICAge3tcbiAgICAgICAgICAnQHByeS5hY3Rpb24uc29ydGFibGVDb2x1bW5IZWFkZXInIHwgaTE4blxuICAgICAgICB9fVxuICAgICAgPC9jYXB0aW9uPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoIGlkPVwiaW1wb3J0X2xpc3RfaGVhZGVyX2RhdGFzZXRcIiBwcnlTb3J0SGVhZGVyPVwiREFUQVNFVF9OQU1FXCI+XG4gICAgICAgICAgICB7eyAnQHByeS5pbXBvcnRMaXN0LmRzTmFtZScgfCBpMThuIH19XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuaW1wb3J0TGlzdC5udW1iZXInIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPHRoIGlkPVwiaW1wb3J0X2xpc3RfaGVhZGVyX2RhdGVcIiBwcnlTb3J0SGVhZGVyPVwiREFURVwiIChzb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAge3sgJ0BwcnkuaW1wb3J0TGlzdC5kYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDx0aD57eyAnQHByeS5pbXBvcnRMaXN0LnN0YXR1cycgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8dGg+e3sgJ0BwcnkuaW1wb3J0TGlzdC5hY3Rpb25zJyB8IGkxOG4gfX08L3RoPlxuICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgQGZvciAodmVyc2lvbiBvZiBkYXRhc2V0VmVyc2lvbnMkIHwgYXN5bmM7IHRyYWNrIHZlcnNpb24uaWQpIHtcbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGQ+e3sgdmVyc2lvbi5kYXRhc2V0Lm5hbWUgfX08L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICB7eyB2ZXJzaW9uLnZlcnNpb24gfX1cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIHt7IHZlcnNpb24ubGFzdE1vZGlmaWVkIHwgZGF0ZTogJ2RkL01NL3l5eXkgSEg6bW0nIH19XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLWFsaWduLWNlbnRlciAtY2VsbC13aXRoLWljb25cIj5cbiAgICAgICAgICAgICAgQGlmICh2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJykge1xuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hlY2tcIiBjbGFzcz1cImNoZWNrXCIgW2hlaWdodF09XCIyMFwiIFt3aWR0aF09XCIyMFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHZlcnNpb24uc3RhdGUgPT09ICdXQVJOSU5HJyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnRVJST1InKSB7XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJ3YXJuaW5nLXRyaWFuZ2xlXCIgY2xhc3M9XCJ3YXJuaW5nXCIgW2hlaWdodF09XCIyMFwiIFt3aWR0aF09XCIyMFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICB2ZXJzaW9uLmlkID09PSB2ZXJzaW9uLmRhdGFzZXQuYWN0aXZlVmVyc2lvbj8uaWRcbiAgICAgICAgICAgICAgICAgID8gJ0BwcnkuZGF0YXNldC52ZXJzaW9uLnN0YXRlLmN1cnJlbnRseUFjdGl2ZSdcbiAgICAgICAgICAgICAgICAgIDogKCdAcHJ5LmRhdGFzZXQudmVyc2lvbi5zdGF0ZS4nICsgdmVyc2lvbi5zdGF0ZSB8IGkxOG4pXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgQGlmICh2ZXJzaW9uLnN0YXRlID09PSAnQUNUSVZFJyB8fCB2ZXJzaW9uLnN0YXRlID09PSAnSU5BQ1RJVkUnKSB7XG4gICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJvcGVuSW5mb01vZGFsKHZlcnNpb24pXCI+XG4gICAgICAgICAgICAgICAgICB7eyAnQHByeS5kYXRhc2V0LmJ1dHRvbkFjdGlvbi4nICsgdmVyc2lvbi5zdGF0ZSB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgQGlmICh2ZXJzaW9uLmhhc1dhcm5pbmdzKSB7XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwib3BlbkVycm9yTW9kYWwodmVyc2lvbilcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZGF0YXNldC5idXR0b25BY3Rpb24uV0FSTklORycgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIGlmICh2ZXJzaW9uLnN0YXRlID09PSAnRVJST1InKSB7XG4gICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIChjbGljayk9XCJvcGVuRXJyb3JNb2RhbCh2ZXJzaW9uKVwiPlxuICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZGF0YXNldC5idXR0b25BY3Rpb24uJyArIHZlcnNpb24uc3RhdGUgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgfVxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICA8L2Rpdj5cbiAgPHByeS1wYWdpbmF0b3JcbiAgICBbYWN0aW9uXT1cImxvYWREYXRhQWN0aW9uKClcIlxuICAgIFtuYlBlclBhZ2VdPVwiMTBcIlxuICAgIFt0b3RhbEl0ZW1OYl09XCIodG90YWxWZXJzaW9uQ291bnQkIHwgYXN5bmMpIVwiXG4gICAgY2xhc3M9XCJ1LXNlbGYtY2VudGVyXCJcbiAgICBbZ29CYWNrVG9GaXJzdFBhZ2VdPVwiZ29CYWNrVG9GaXJzdFBhZ2UkIHwgYXN5bmNcIlxuICA+PC9wcnktcGFnaW5hdG9yPlxuPC9kaXY+XG4iXX0=