tango-app-ui-analyse-trax 3.6.0 → 3.6.2-bulktask-2

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 (56) hide show
  1. package/esm2022/lib/components/action-centre/action-centre.component.mjs +3 -3
  2. package/esm2022/lib/components/activity-log-v2/activity-log-v2.component.mjs +3 -2
  3. package/esm2022/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.mjs +3 -3
  4. package/esm2022/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.mjs +3 -3
  5. package/esm2022/lib/components/add-checklist/add-checklist.component.mjs +5 -3
  6. package/esm2022/lib/components/add-multitask/add-multitask.component.mjs +538 -0
  7. package/esm2022/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.mjs +269 -0
  8. package/esm2022/lib/components/add-multitask/create-task.data.mjs +306 -0
  9. package/esm2022/lib/components/add-multitask/create-task.interface.mjs +2 -0
  10. package/esm2022/lib/components/add-multitask/unique-string-validator.mjs +10 -0
  11. package/esm2022/lib/components/add-multitask/whitespace-validator.mjs +10 -0
  12. package/esm2022/lib/components/add-task/add-task.component.mjs +3 -1
  13. package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +4 -4
  14. package/esm2022/lib/components/dashboard/dashboard.component.mjs +3 -3
  15. package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +1 -1
  16. package/esm2022/lib/components/disabled-select/disabled-select.component.mjs +158 -0
  17. package/esm2022/lib/components/export-gallery/export-gallery.component.mjs +7 -2
  18. package/esm2022/lib/components/eye-test-audit/eye-test/eye-test.component.mjs +11 -17
  19. package/esm2022/lib/components/eye-test-audit/group-select/group-select.component.mjs +3 -3
  20. package/esm2022/lib/components/eye-test-audit/reactive-select/reactive-select.component.mjs +3 -3
  21. package/esm2022/lib/components/flags/flags.component.mjs +1 -1
  22. package/esm2022/lib/components/flags-info/flags-info.component.mjs +1 -1
  23. package/esm2022/lib/components/gallery/gallery.component.mjs +324 -50
  24. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +6 -3
  25. package/esm2022/lib/components/task-configure/task-configure.component.mjs +6 -6
  26. package/esm2022/lib/components/task-info/task-info.component.mjs +1 -1
  27. package/esm2022/lib/services/trax.service.mjs +20 -2
  28. package/esm2022/lib/tango-analyse-trax.module.mjs +12 -5
  29. package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-mp5zGDN4.mjs → tango-app-ui-analyse-trax-eye-test-audit.module-B6bePYMW.mjs} +20 -26
  30. package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-B6bePYMW.mjs.map +1 -0
  31. package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DKvlR9IQ.mjs → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-IHj5-6FY.mjs} +1820 -253
  32. package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-IHj5-6FY.mjs.map +1 -0
  33. package/fesm2022/tango-app-ui-analyse-trax.mjs +1 -1
  34. package/lib/components/activity-log-v2/activity-log-v2.component.d.ts +1 -0
  35. package/lib/components/add-multitask/add-multitask.component.d.ts +95 -0
  36. package/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.d.ts +42 -0
  37. package/lib/components/add-multitask/create-task.data.d.ts +244 -0
  38. package/lib/components/add-multitask/create-task.interface.d.ts +147 -0
  39. package/lib/components/add-multitask/unique-string-validator.d.ts +2 -0
  40. package/lib/components/add-multitask/whitespace-validator.d.ts +2 -0
  41. package/lib/components/disabled-select/disabled-select.component.d.ts +34 -0
  42. package/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.d.ts +2 -2
  43. package/lib/components/flags/flags.component.d.ts +2 -2
  44. package/lib/components/flags-info/flags-info.component.d.ts +3 -3
  45. package/lib/components/flags-new/flags-new.component.d.ts +2 -2
  46. package/lib/components/gallery/gallery.component.d.ts +40 -2
  47. package/lib/components/manage-task/manage-task.component.d.ts +1 -1
  48. package/lib/components/orders/orders.component.d.ts +1 -1
  49. package/lib/components/reactive-select/reactive-select.component.d.ts +2 -2
  50. package/lib/components/reports/reports.component.d.ts +2 -2
  51. package/lib/components/task-configure/task-configure.component.d.ts +3 -3
  52. package/lib/services/trax.service.d.ts +6 -1
  53. package/lib/tango-analyse-trax.module.d.ts +11 -8
  54. package/package.json +1 -1
  55. package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-mp5zGDN4.mjs.map +0 -1
  56. package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-DKvlR9IQ.mjs.map +0 -1
@@ -58,6 +58,7 @@ export class ReactiveSelectComponent {
58
58
  this.onChanged(this.selectedId);
59
59
  }
60
60
  onClick(event) {
61
+ console.log(this.isDisabled);
61
62
  if (!this.isDisabled) {
62
63
  const targetElement = event.target;
63
64
  if (!this.isComponentClicked(targetElement)) {
@@ -83,12 +84,14 @@ export class ReactiveSelectComponent {
83
84
  this.apiService.dropDownTrigger.next(this.instanceId);
84
85
  }
85
86
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReactiveSelectComponent, deps: [{ token: i1.TraxService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
86
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ReactiveSelectComponent, selector: "lib-reactive-select", inputs: { idField: "idField", nameField: "nameField", label: "label", data: "data" }, outputs: { itemChange: "itemChange" }, host: { listeners: { "document:click": "onClick($event)" } }, providers: [SELECT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown()\" [ngClass]=\"isDisabled ? 'disable' : ''\" class=\"form-select dropselect ellipse1\">\r\n {{selected?.[nameField]}}</div>\r\n <div *ngIf=\"isOpened\" class=\"card py-2 w-100 position-absolute end-0 z-1 drop-list\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li *ngFor=\"let item of data\" (click)=\"onSelect(item)\"\r\n [ngClass]=\"item?.[idField] === selected?.[idField] ? 'active' : ''\"\r\n class=\"text px-5 items cursor-pointer py-4 \">\r\n {{item?.[nameField]}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".custom-select{min-width:200px}.custom-select .items:hover,.custom-select .tems.focus,.custom-select .items.active,.custom-select .camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.custom-select .drop-list{max-height:300px;overflow-y:scroll}.custom-select .dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important;cursor:default;white-space:nowrap;overflow:hidden}.custom-select .text{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.custom-select .disable{pointer-events:none;background-color:#f9fafb!important}.ellipse1{min-width:auto;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
87
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ReactiveSelectComponent, selector: "lib-reactive-select", inputs: { isDisabled: "isDisabled", idField: "idField", nameField: "nameField", label: "label", data: "data" }, outputs: { itemChange: "itemChange" }, host: { listeners: { "document:click": "onClick($event)" } }, providers: [SELECT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown()\" [ngClass]=\"isDisabled ? 'disable' : ''\" class=\"form-select dropselect ellipse1\">\r\n {{selected?.[nameField]}}</div>\r\n <div *ngIf=\"isOpened\" class=\"card py-2 w-100 position-absolute end-0 z-1 drop-list\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li *ngFor=\"let item of data\" (click)=\"onSelect(item)\"\r\n [ngClass]=\"item?.[idField] === selected?.[idField] ? 'active' : ''\"\r\n class=\"text px-5 items cursor-pointer py-4 \">\r\n {{item?.[nameField]}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".custom-select{min-width:200px}.custom-select .items:hover,.custom-select .tems.focus,.custom-select .items.active,.custom-select .camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.custom-select .drop-list{max-height:300px;overflow-y:scroll}.custom-select .dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important;cursor:default;white-space:nowrap;overflow:hidden}.custom-select .text{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.custom-select .disable{pointer-events:none;background-color:#f9fafb!important}.ellipse1{min-width:auto;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
87
88
  }
88
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ReactiveSelectComponent, decorators: [{
89
90
  type: Component,
90
91
  args: [{ selector: 'lib-reactive-select', providers: [SELECT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown()\" [ngClass]=\"isDisabled ? 'disable' : ''\" class=\"form-select dropselect ellipse1\">\r\n {{selected?.[nameField]}}</div>\r\n <div *ngIf=\"isOpened\" class=\"card py-2 w-100 position-absolute end-0 z-1 drop-list\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li *ngFor=\"let item of data\" (click)=\"onSelect(item)\"\r\n [ngClass]=\"item?.[idField] === selected?.[idField] ? 'active' : ''\"\r\n class=\"text px-5 items cursor-pointer py-4 \">\r\n {{item?.[nameField]}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".custom-select{min-width:200px}.custom-select .items:hover,.custom-select .tems.focus,.custom-select .items.active,.custom-select .camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.custom-select .drop-list{max-height:300px;overflow-y:scroll}.custom-select .dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important;cursor:default;white-space:nowrap;overflow:hidden}.custom-select .text{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.custom-select .disable{pointer-events:none;background-color:#f9fafb!important}.ellipse1{min-width:auto;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
91
- }], ctorParameters: () => [{ type: i1.TraxService }, { type: i0.ChangeDetectorRef }], propDecorators: { idField: [{
92
+ }], ctorParameters: () => [{ type: i1.TraxService }, { type: i0.ChangeDetectorRef }], propDecorators: { isDisabled: [{
93
+ type: Input
94
+ }], idField: [{
92
95
  type: Input
93
96
  }], nameField: [{
94
97
  type: Input
@@ -102,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
102
105
  type: HostListener,
103
106
  args: ['document:click', ['$event']]
104
107
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvcmVhY3RpdmUtc2VsZWN0L3JlYWN0aXZlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3JlYWN0aXZlLXNlbGVjdC9yZWFjdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFZLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHekUsTUFBTSw2QkFBNkIsR0FBYTtJQUM5QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7SUFDdEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBUUYsTUFBTSxPQUFPLHVCQUF1QjtJQWdCZDtJQUFpQztJQWQ3QyxTQUFTLENBQVc7SUFDcEIsU0FBUyxDQUFXO0lBQ2xCLFVBQVUsQ0FBVTtJQUNyQixPQUFPLENBQVE7SUFDZixTQUFTLENBQVE7SUFDakIsS0FBSyxDQUFRO0lBQ2IsSUFBSSxDQUFLO0lBQ1IsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDL0IsUUFBUSxHQUFZLEtBQUssQ0FBQTtJQUN6QixRQUFRLEdBQStCLElBQUksQ0FBQTtJQUMzQyxVQUFVLENBQWlCO0lBQ3JDLFVBQVUsQ0FBUztJQUduQixZQUFvQixVQUF1QixFQUFVLEVBQXFCO1FBQXRELGVB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Tyx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0UscUJBQXFCLGFBR3BCLENBQUMsNkJBQTZCLENBQUM7Z0hBT2pDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFpRFAsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUHJvdmlkZXIsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcblxyXG5jb25zdCBTRUxFQ1RfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmVhY3RpdmVTZWxlY3RDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlLFxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcmVhY3RpdmUtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVhY3RpdmUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmVhY3RpdmUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcclxuICBwcm92aWRlcnM6IFtTRUxFQ1RfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlYWN0aXZlU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XHJcblxyXG4gIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbjtcclxuICBwcml2YXRlIG9uQ2hhbmdlZDogRnVuY3Rpb247XHJcbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaWRGaWVsZDogc3RyaW5nXHJcbiAgQElucHV0KCkgbmFtZUZpZWxkOiBzdHJpbmdcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nXHJcbiAgQElucHV0KCkgZGF0YTogYW55XHJcbiAgQE91dHB1dCgpIGl0ZW1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKClcclxuICBwcm90ZWN0ZWQgaXNPcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHByb3RlY3RlZCBzZWxlY3RlZDogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGwgPSBudWxsXHJcbiAgcHJvdGVjdGVkIHNlbGVjdGVkSWQ6IHN0cmluZyB8IG51bWJlclxyXG4gIGluc3RhbmNlSWQ6IHN0cmluZztcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogVHJheFNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluc3RhbmNlSWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmRyb3BEb3duVHJpZ2dlci5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUgIT09IHRoaXMuaW5zdGFuY2VJZCkge1xyXG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWw6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZElkID0gdmFsXHJcbiAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5kYXRhLmZpbHRlcigoaXRlbTogUmVjb3JkPHN0cmluZywgYW55PikgPT4gaXRlbT8uW3RoaXMuaWRGaWVsZF0gPT09IHZhbClbMF1cclxuICAgIFxyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VkID0gZm5cclxuICAgIFxyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuXHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWRcclxuXHJcbiAgfVxyXG5cclxuICBvblNlbGVjdChpdGVtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpXHJcbiAgICB0aGlzLnNlbGVjdGVkID0gaXRlbVxyXG4gICAgdGhpcy5zZWxlY3RlZElkID0gaXRlbT8uW3RoaXMuaWRGaWVsZF1cclxuICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZVxyXG4gICAgdGhpcy5pdGVtQ2hhbmdlLm5leHQodGhpcy5zZWxlY3RlZElkKVxyXG4gICAgdGhpcy5vbkNoYW5nZWQodGhpcy5zZWxlY3RlZElkKVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGlmICghdGhpcy5pc0NvbXBvbmVudENsaWNrZWQodGFyZ2V0RWxlbWVudCkpIHtcclxuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzQ29tcG9uZW50Q2xpY2tlZCh0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRhcmdldEVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IGNsaWNrZWRPbkNvbXBvbmVudCA9IHBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXN0b20tc2VsZWN0Jyk7XHJcbiAgICAgIGlmIChjbGlja2VkT25Db21wb25lbnQpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc0NvbXBvbmVudENsaWNrZWQocGFyZW50RWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bigpe1xyXG4gICAgdGhpcy5pc09wZW5lZCA9ICF0aGlzLmlzT3BlbmVkO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmRyb3BEb3duVHJpZ2dlci5uZXh0KHRoaXMuaW5zdGFuY2VJZClcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY3VzdG9tLXNlbGVjdFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7bGFiZWx9fTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigpXCIgW25nQ2xhc3NdPVwiaXNEaXNhYmxlZCA/ICdkaXNhYmxlJyA6ICcnXCIgY2xhc3M9XCJmb3JtLXNlbGVjdCBkcm9wc2VsZWN0IGVsbGlwc2UxXCI+XHJcbiAgICAgICAgICAgICAgICB7e3NlbGVjdGVkPy5bbmFtZUZpZWxkXX19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc09wZW5lZFwiIGNsYXNzPVwiY2FyZCBweS0yIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIGVuZC0wIHotMSBkcm9wLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhXCIgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbT8uW2lkRmllbGRdID09PSBzZWxlY3RlZD8uW2lkRmllbGRdID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dCBweC01IGl0ZW1zIGN1cnNvci1wb2ludGVyIHB5LTQgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbT8uW25hbWVGaWVsZF19fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvcmVhY3RpdmUtc2VsZWN0L3JlYWN0aXZlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL3JlYWN0aXZlLXNlbGVjdC9yZWFjdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFZLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHekUsTUFBTSw2QkFBNkIsR0FBYTtJQUM5QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7SUFDdEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBUUYsTUFBTSxPQUFPLHVCQUF1QjtJQWdCZDtJQUFpQztJQWQ3QyxTQUFTLENBQVc7SUFDcEIsU0FBUyxDQUFXO0lBQ25CLFVBQVUsQ0FBVTtJQUNwQixPQUFPLENBQVE7SUFDZixTQUFTLENBQVE7SUFDakIsS0FBSyxDQUFRO0lBQ2IsSUFBSSxDQUFLO0lBQ1IsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDL0IsUUFBUSxHQUFZLEtBQUssQ0FBQTtJQUN6QixRQUFRLEdBQStCLElBQUksQ0FBQTtJQUMzQyxVQUFVLENBQWlCO0lBQ3JDLFVBQVUsQ0FBUztJQUduQixZQUFvQixVQUF1QixFQUFVLEVBQXFCO1FBQXRELGVB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dUJBQXVCLG1RQUZ2QixDQUFDLDZCQUE2QixDQUFDLDBCQ2Q1QyxnN0JBaUJNOzs0RkRETyx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0UscUJBQXFCLGFBR3BCLENBQUMsNkJBQTZCLENBQUM7Z0hBTWpDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQWlEUCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBQcm92aWRlciwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJheC5zZXJ2aWNlJztcclxuXHJcbmNvbnN0IFNFTEVDVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBQcm92aWRlciA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZWFjdGl2ZVNlbGVjdENvbXBvbmVudCksXHJcbiAgbXVsdGk6IHRydWUsXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1yZWFjdGl2ZS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFjdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9yZWFjdGl2ZS1zZWxlY3QuY29tcG9uZW50LnNjc3MnLFxyXG4gIHByb3ZpZGVyczogW1NFTEVDVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVhY3RpdmVTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuXHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6IEZ1bmN0aW9uO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VkOiBGdW5jdGlvbjtcclxuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlkRmllbGQ6IHN0cmluZ1xyXG4gIEBJbnB1dCgpIG5hbWVGaWVsZDogc3RyaW5nXHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZ1xyXG4gIEBJbnB1dCgpIGRhdGE6IGFueVxyXG4gIEBPdXRwdXQoKSBpdGVtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpXHJcbiAgcHJvdGVjdGVkIGlzT3BlbmVkOiBib29sZWFuID0gZmFsc2VcclxuICBwcm90ZWN0ZWQgc2VsZWN0ZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsID0gbnVsbFxyXG4gIHByb3RlY3RlZCBzZWxlY3RlZElkOiBzdHJpbmcgfCBudW1iZXJcclxuICBpbnN0YW5jZUlkOiBzdHJpbmc7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IFRyYXhTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnN0YW5jZUlkID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuICAgIHRoaXMuYXBpU2VydmljZS5kcm9wRG93blRyaWdnZXIuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGlmIChlICE9PSB0aGlzLmluc3RhbmNlSWQpIHtcclxuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHdyaXRlVmFsdWUodmFsOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJZCA9IHZhbFxyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuZGF0YS5maWx0ZXIoKGl0ZW06IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IGl0ZW0/Llt0aGlzLmlkRmllbGRdID09PSB2YWwpWzBdXHJcbiAgICBcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlZCA9IGZuXHJcbiAgICBcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmblxyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkXHJcblxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QoaXRlbTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKVxyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGl0ZW1cclxuICAgIHRoaXMuc2VsZWN0ZWRJZCA9IGl0ZW0/Llt0aGlzLmlkRmllbGRdXHJcbiAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2VcclxuICAgIHRoaXMuaXRlbUNoYW5nZS5uZXh0KHRoaXMuc2VsZWN0ZWRJZClcclxuICAgIHRoaXMub25DaGFuZ2VkKHRoaXMuc2VsZWN0ZWRJZClcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmlzRGlzYWJsZWQpXHJcbiAgICBpZiAoIXRoaXMuaXNEaXNhYmxlZCkge1xyXG4gICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBpZiAoIXRoaXMuaXNDb21wb25lbnRDbGlja2VkKHRhcmdldEVsZW1lbnQpKSB7XHJcbiAgICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0NvbXBvbmVudENsaWNrZWQodGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICBpZiAocGFyZW50RWxlbWVudCkge1xyXG4gICAgICBjb25zdCBjbGlja2VkT25Db21wb25lbnQgPSBwYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnY3VzdG9tLXNlbGVjdCcpO1xyXG4gICAgICBpZiAoY2xpY2tlZE9uQ29tcG9uZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNDb21wb25lbnRDbGlja2VkKHBhcmVudEVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvcGVuRHJvcGRvd24oKXtcclxuICAgIHRoaXMuaXNPcGVuZWQgPSAhdGhpcy5pc09wZW5lZDtcclxuICAgIHRoaXMuYXBpU2VydmljZS5kcm9wRG93blRyaWdnZXIubmV4dCh0aGlzLmluc3RhbmNlSWQpXHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57e2xhYmVsfX08L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2IChjbGljayk9XCJvcGVuRHJvcGRvd24oKVwiIFtuZ0NsYXNzXT1cImlzRGlzYWJsZWQgPyAnZGlzYWJsZScgOiAnJ1wiIGNsYXNzPVwiZm9ybS1zZWxlY3QgZHJvcHNlbGVjdCBlbGxpcHNlMVwiPlxyXG4gICAgICAgICAgICAgICAge3tzZWxlY3RlZD8uW25hbWVGaWVsZF19fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNPcGVuZWRcIiBjbGFzcz1cImNhcmQgcHktMiB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB6LTEgZHJvcC1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVwiIChjbGljayk9XCJvblNlbGVjdChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0/LltpZEZpZWxkXSA9PT0gc2VsZWN0ZWQ/LltpZEZpZWxkXSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQgcHgtNSBpdGVtcyBjdXJzb3ItcG9pbnRlciBweS00IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0/LltuYW1lRmllbGRdfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19