@provoly/dashboard 0.23.0 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/admin/admin.module.d.ts +1 -1
  2. package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +2 -0
  3. package/admin/i18n/fr.translations.d.ts +2 -0
  4. package/esm2022/admin/admin.module.mjs +8 -5
  5. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +44 -29
  6. package/esm2022/admin/i18n/fr.translations.mjs +3 -1
  7. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
  8. package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +6 -3
  9. package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +5 -4
  10. package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
  11. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +3 -3
  12. package/fesm2022/provoly-dashboard-admin.mjs +51 -32
  13. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  14. package/fesm2022/provoly-dashboard-dataset.mjs +2 -2
  15. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  16. package/fesm2022/provoly-dashboard.mjs +11 -7
  17. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  18. package/lib/core/components/chips-selector/chips-selector.component.d.ts +2 -1
  19. package/lib/core/components/share/group-share/group-share.component.d.ts +4 -0
  20. package/lib/core/store/data-source/data-source.model.d.ts +2 -0
  21. package/package.json +1 -1
  22. package/styles/components/_o-chips-selector.scss +12 -1
  23. package/styles/components/_o-modal.scss +1 -1
  24. package/styles/components/_o-pry-admin-dataset-select.scss +13 -0
  25. package/styles/components/_o-tabs.scss +0 -1
  26. package/styles/main.scss +1 -0
  27. package/styles-theme/components-theme/_a-chip.theme.scss +1 -1
  28. package/styles-theme/components-theme/_o-chips-selector.theme.scss +9 -0
  29. package/styles-theme/main-theme.scss +1 -0
@@ -36,6 +36,7 @@ export class PryGroupShareComponent extends SubscriptionnerDirective {
36
36
  label: label.toLowerCase(),
37
37
  value: PryVisibilityType[label]
38
38
  }));
39
+ this.templateData$ = combineLatest([this.groups$, this.assignedGroups$]).pipe(map(([groups, assignedGroups]) => ({ groups, assignedGroups })));
39
40
  }
40
41
  writeValue(value) {
41
42
  value = value ?? [];
@@ -92,13 +93,13 @@ export class PryGroupShareComponent extends SubscriptionnerDirective {
92
93
  }
93
94
  }
94
95
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryGroupShareComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryGroupShareComponent, selector: "pry-group-share", providers: [
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryGroupShareComponent, selector: "pry-group-share", providers: [
96
97
  {
97
98
  provide: NG_VALUE_ACCESSOR,
98
99
  useExisting: forwardRef(() => PryGroupShareComponent),
99
100
  multi: true
100
101
  }
101
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"m-form-radio-group\">\n <div *ngFor=\"let type of visibilityTypes\" class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n name=\"visibility\"\n [id]=\"type.label\"\n [value]=\"type.value\"\n [ngModel]=\"radioValue\"\n (ngModelChange)=\"changeGroupsBasedOnRadioValue($event)\"\n [disabled]=\"_disabled\"\n />\n <label [for]=\"type.label\" class=\"a-label\">{{ '@pry.share.' + type.label | i18n }}</label>\n </div>\n</div>\n\n<ng-container *ngIf=\"radioValue === PryVisibilityType.RESTRICTED\">\n <pry-chips-selector\n bindLabel=\"name\"\n bindValue=\"name\"\n translationStringBase=\"@pry.components.chipsSelector.share.\"\n itemTranslationStringBase=\"@pry.components.chipsSelector.share.groups.\"\n [showActionButtons]=\"false\"\n [items]=\"(groups$ | async) ?? []\"\n (itemsChanged)=\"changeGroups($event)\"\n [usedItems]=\"(assignedGroups$ | async) ?? []\"\n ></pry-chips-selector>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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.ChipsSelectorComponent, selector: "pry-chips-selector", inputs: ["bindValue", "bindLabel", "translationStringBase", "itemTranslationStringBase", "showActionButtons", "items", "usedItems"], outputs: ["cancel", "validated", "previousTab", "nextTab", "itemsChanged"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"m-form-radio-group\">\n <div *ngFor=\"let type of visibilityTypes\" class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n name=\"visibility\"\n [id]=\"type.label\"\n [value]=\"type.value\"\n [ngModel]=\"radioValue\"\n (ngModelChange)=\"changeGroupsBasedOnRadioValue($event)\"\n [disabled]=\"_disabled\"\n />\n <label [for]=\"type.label\" class=\"a-label\">{{ '@pry.share.' + type.label | i18n }}</label>\n </div>\n</div>\n@if (radioValue === PryVisibilityType.RESTRICTED) {\n @if(templateData$ | async; as data) {\n <pry-chips-selector\n bindLabel=\"name\"\n bindValue=\"name\"\n translationStringBase=\"@pry.components.chipsSelector.share.\"\n itemTranslationStringBase=\"@pry.components.chipsSelector.share.groups.\"\n [showActionButtons]=\"false\"\n [items]=\"data.groups\"\n (itemsChanged)=\"changeGroups($event)\"\n [usedItems]=\"data.assignedGroups\"\n [showSearchbar]=\"data.groups.length > 6\"\n ></pry-chips-selector>\n }\n}\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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.ChipsSelectorComponent, selector: "pry-chips-selector", inputs: ["bindValue", "bindLabel", "translationStringBase", "itemTranslationStringBase", "showActionButtons", "showSearchbar", "items", "usedItems"], outputs: ["cancel", "validated", "previousTab", "nextTab", "itemsChanged"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
103
  }
103
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryGroupShareComponent, decorators: [{
104
105
  type: Component,
@@ -108,6 +109,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
108
109
  useExisting: forwardRef(() => PryGroupShareComponent),
109
110
  multi: true
110
111
  }
111
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"m-form-radio-group\">\n <div *ngFor=\"let type of visibilityTypes\" class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n name=\"visibility\"\n [id]=\"type.label\"\n [value]=\"type.value\"\n [ngModel]=\"radioValue\"\n (ngModelChange)=\"changeGroupsBasedOnRadioValue($event)\"\n [disabled]=\"_disabled\"\n />\n <label [for]=\"type.label\" class=\"a-label\">{{ '@pry.share.' + type.label | i18n }}</label>\n </div>\n</div>\n\n<ng-container *ngIf=\"radioValue === PryVisibilityType.RESTRICTED\">\n <pry-chips-selector\n bindLabel=\"name\"\n bindValue=\"name\"\n translationStringBase=\"@pry.components.chipsSelector.share.\"\n itemTranslationStringBase=\"@pry.components.chipsSelector.share.groups.\"\n [showActionButtons]=\"false\"\n [items]=\"(groups$ | async) ?? []\"\n (itemsChanged)=\"changeGroups($event)\"\n [usedItems]=\"(assignedGroups$ | async) ?? []\"\n ></pry-chips-selector>\n</ng-container>\n" }]
112
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"m-form-radio-group\">\n <div *ngFor=\"let type of visibilityTypes\" class=\"m-form-radio-group__item\">\n <input\n type=\"radio\"\n name=\"visibility\"\n [id]=\"type.label\"\n [value]=\"type.value\"\n [ngModel]=\"radioValue\"\n (ngModelChange)=\"changeGroupsBasedOnRadioValue($event)\"\n [disabled]=\"_disabled\"\n />\n <label [for]=\"type.label\" class=\"a-label\">{{ '@pry.share.' + type.label | i18n }}</label>\n </div>\n</div>\n@if (radioValue === PryVisibilityType.RESTRICTED) {\n @if(templateData$ | async; as data) {\n <pry-chips-selector\n bindLabel=\"name\"\n bindValue=\"name\"\n translationStringBase=\"@pry.components.chipsSelector.share.\"\n itemTranslationStringBase=\"@pry.components.chipsSelector.share.groups.\"\n [showActionButtons]=\"false\"\n [items]=\"data.groups\"\n (itemsChanged)=\"changeGroups($event)\"\n [usedItems]=\"data.assignedGroups\"\n [showSearchbar]=\"data.groups.length > 6\"\n ></pry-chips-selector>\n }\n}\n" }]
112
113
  }], ctorParameters: () => [{ type: i1.Store }, { type: i0.ChangeDetectorRef }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtc2hhcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9zaGFyZS9ncm91cC1zaGFyZS9ncm91cC1zaGFyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NoYXJlL2dyb3VwLXNoYXJlL2dyb3VwLXNoYXJlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFTLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFjeEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHdCQUF3QjtJQWNsRSxZQUFvQixLQUFZLEVBQVUsR0FBc0I7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFieEQsY0FBUyxHQUFHLENBQUMsTUFBZ0IsRUFBRSxFQUFFLENBQUMs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LENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQzs4R0E1RlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsMENBVHRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDckQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQ25CSCx3K0JBMkJBOzsyRkRMYSxzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGFBRWhCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBHcm91cCwgUHJ5VmlzaWJpbGl0eVR5cGUgfSBmcm9tICcuLi9zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Rhc2hib2FyZC9jb21wb25lbnRzL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbC9lczYnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZ3JvdXAtc2hhcmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JvdXAtc2hhcmUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFByeUdyb3VwU2hhcmVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFByeUdyb3VwU2hhcmVDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKGdyb3Vwczogc3RyaW5nW10pID0+IGdyb3VwcztcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8vIGZvciB0cmFja2luZyBpbnB1dFxuICBhc3NpZ25lZEdyb3VwTmFtZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuXG4gIHJhZGlvVmFsdWUgPSBQcnlWaXNpYmlsaXR5VHlwZS5QUklWQVRFO1xuICBhc3NpZ25lZEdyb3VwcyQ6IE9ic2VydmFibGU8R3JvdXBbXT47XG4gIGdyb3VwcyQ6IE9ic2VydmFibGU8R3JvdXBbXT47XG4gIFByeVZpc2liaWxpdHlUeXBlID0gUHJ5VmlzaWJpbGl0eVR5cGU7XG4gIHZpc2liaWxpdHlUeXBlczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogUHJ5VmlzaWJpbGl0eVR5cGUgfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmxvYWRBY2Nlc3NHcm91cHMoKSk7XG4gICAgdGhpcy5ncm91cHMkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChDb25maWdTZWxlY3RvcnMuYWNjZXNzR3JvdXBzKVxuICAgICAgLnBpcGUobWFwKChncm91cHMpID0+IGdyb3Vwcy5maWx0ZXIoKGdyb3VwKSA9PiBncm91cC5uYW1lICE9PSAnQUxMJykpKTtcbiAgICB0aGlzLmFzc2lnbmVkR3JvdXBzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZ3JvdXBzJCwgdGhpcy5hc3NpZ25lZEdyb3VwTmFtZXMkXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtncm91cHMsIGdyb3VwTmFtZXNdKSA9PlxuICAgICAgICAgIGdyb3Vwcy5maWx0ZXIoKGdyb3VwKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ3JvdXBOYW1lcy5pbmNsdWRlcyhncm91cC5uYW1lKTtcbiAgICAgICAgICB9KSA/PyBbXVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy52aXNpYmlsaXR5VHlwZXMgPSBPYmplY3Qua2V5cyhQcnlWaXNpYmlsaXR5VHlwZSkubWFwKChsYWJlbCkgPT4gKHtcbiAgICAgIGxhYmVsOiBsYWJlbC50b0xvd2VyQ2FzZSgpLFxuICAgICAgdmFsdWU6IFByeVZpc2liaWxpdHlUeXBlWzxrZXlvZiB0eXBlb2YgUHJ5VmlzaWJpbGl0eVR5cGU+bGFiZWxdXG4gICAgfSkpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB2YWx1ZSA9IHZhbHVlID8/IFtdO1xuICAgIGlmICghZXF1YWwodGhpcy5hc3NpZ25lZEdyb3VwTmFtZXMkLmdldFZhbHVlKCksIHZhbHVlKSkge1xuICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgdGhpcy5hc3NpZ25lZEdyb3VwTmFtZXMkLm5leHQodmFsdWUpO1xuICAgICAgdGhpcy51cGRhdGVSYWRpb1ZhbHVlKHZhbHVlKTtcbiAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHVwZGF0ZVJhZGlvVmFsdWUoZ3JvdXBzOiBzdHJpbmdbXSkge1xuICAgIGlmIChncm91cHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnJhZGlvVmFsdWUgPSBQcnlWaXNpYmlsaXR5VHlwZS5QUklWQVRFO1xuICAgIH0gZWxzZSBpZiAoZ3JvdXBzLmxlbmd0aCA9PT0gMSAmJiBncm91cHMuZmluZCgoZ3JvdXApID0+IGdyb3VwID09PSAnQUxMJykpIHtcbiAgICAgIHRoaXMucmFkaW9WYWx1ZSA9IFByeVZpc2liaWxpdHlUeXBlLlBVQkxJQztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yYWRpb1ZhbHVlID0gUHJ5VmlzaWJpbGl0eVR5cGUuUkVTVFJJQ1RFRDtcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VHcm91cHNCYXNlZE9uUmFkaW9WYWx1ZSh0eXBlOiBQcnlWaXNpYmlsaXR5VHlwZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvVmFsdWUgIT09IHR5cGUpIHtcbiAgICAgIHRoaXMucmFkaW9WYWx1ZSA9IHR5cGU7XG5cbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFByeVZpc2liaWxpdHlUeXBlLlBSSVZBVEU6XG4gICAgICAgICAgdGhpcy5jaGFuZ2VHcm91cHMoW10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFByeVZpc2liaWxpdHlUeXBlLlJFU1RSSUNURUQ6XG4gICAgICAgICAgdGhpcy5jaGFuZ2VHcm91cHModGhpcy5hc3NpZ25lZEdyb3VwTmFtZXMkLmdldFZhbHVlKCkgPz8gW10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFByeVZpc2liaWxpdHlUeXBlLlBVQkxJQzpcbiAgICAgICAgICB0aGlzLmNoYW5nZUdyb3VwcyhbJ0FMTCddKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGFuZ2VHcm91cHMoZ3JvdXBzOiAoR3JvdXAgfCBzdHJpbmcpW10gfCBudWxsKSB7XG4gICAgaWYgKGdyb3Vwcykge1xuICAgICAgdGhpcy5fb25DaGFuZ2UoZ3JvdXBzLm1hcCgoZ3JvdXApID0+ICh0eXBlb2YgZ3JvdXAgPT09ICdzdHJpbmcnID8gZ3JvdXAgOiBncm91cC5uYW1lKSkpO1xuICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtLWZvcm0tcmFkaW8tZ3JvdXBcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgdHlwZSBvZiB2aXNpYmlsaXR5VHlwZXNcIiBjbGFzcz1cIm0tZm9ybS1yYWRpby1ncm91cF9faXRlbVwiPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgIG5hbWU9XCJ2aXNpYmlsaXR5XCJcbiAgICAgIFtpZF09XCJ0eXBlLmxhYmVsXCJcbiAgICAgIFt2YWx1ZV09XCJ0eXBlLnZhbHVlXCJcbiAgICAgIFtuZ01vZGVsXT1cInJhZGlvVmFsdWVcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlR3JvdXBzQmFzZWRPblJhZGlvVmFsdWUoJGV2ZW50KVwiXG4gICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcbiAgICAvPlxuICAgIDxsYWJlbCBbZm9yXT1cInR5cGUubGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5zaGFyZS4nICsgdHlwZS5sYWJlbCB8IGkxOG4gfX08L2xhYmVsPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwicmFkaW9WYWx1ZSA9PT0gUHJ5VmlzaWJpbGl0eVR5cGUuUkVTVFJJQ1RFRFwiPlxuICA8cHJ5LWNoaXBzLXNlbGVjdG9yXG4gICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgYmluZFZhbHVlPVwibmFtZVwiXG4gICAgdHJhbnNsYXRpb25TdHJpbmdCYXNlPVwiQHByeS5jb21wb25lbnRzLmNoaXBzU2VsZWN0b3Iuc2hhcmUuXCJcbiAgICBpdGVtVHJhbnNsYXRpb25TdHJpbmdCYXNlPVwiQHByeS5jb21wb25lbnRzLmNoaXBzU2VsZWN0b3Iuc2hhcmUuZ3JvdXBzLlwiXG4gICAgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCJcbiAgICBbaXRlbXNdPVwiKGdyb3VwcyQgfCBhc3luYykgPz8gW11cIlxuICAgIChpdGVtc0NoYW5nZWQpPVwiY2hhbmdlR3JvdXBzKCRldmVudClcIlxuICAgIFt1c2VkSXRlbXNdPVwiKGFzc2lnbmVkR3JvdXBzJCB8IGFzeW5jKSA/PyBbXVwiXG4gID48L3ByeS1jaGlwcy1zZWxlY3Rvcj5cbjwvbmctY29udGFpbmVyPlxuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtc2hhcmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9zaGFyZS9ncm91cC1zaGFyZS9ncm91cC1zaGFyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL3NoYXJlL2dyb3VwLXNoYXJlL2dyb3VwLXNoYXJlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFTLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFjeEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHdCQUF3QjtJQWVsRSxZQUFvQixLQUFZLEVBQVUsR0FBc0I7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFkeEQsY0FBUyxHQUFHLENBQUMsTUFBZ0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3pDLGVBQVUsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixxQkFBcUI7UUFDckIsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFFeEQsZUFBVSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztRQUd2QyxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN0QyxvQkFBZSxHQUFrRCxFQUFFLENBQUM7UUFLbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQ3RCLE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO2FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakYsR0FBRyxDQUNELENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ1gsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzFCLEtBQUssRUFBRSxpQkFBaUIsQ0FBaUMsS0FBSyxDQUFDO1NBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDM0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUNoRSxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUEyQjtRQUNwQyxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFnQjtRQUMvQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDOUMsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELDZCQUE2QixDQUFDLElBQXVCO1FBQ25ELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUV2QixRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNiLEtBQUssaUJBQWlCLENBQUMsT0FBTztvQkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDdEIsTUFBTTtnQkFDUixLQUFLLGlCQUFpQixDQUFDLFVBQVU7b0JBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUM3RCxNQUFNO2dCQUNSLEtBQUssaUJBQWlCLENBQUMsTUFBTTtvQkFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQzNCLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsTUFBaUM7UUFDNUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQzs4R0FoR1Usc0JBQXNCO2tHQUF0QixzQkFBc0IsMENBVHRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDckQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQ25CSCxtaUNBNkJBOzsyRkRQYSxzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGFBRWhCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBHcm91cCwgUHJ5VmlzaWJpbGl0eVR5cGUgfSBmcm9tICcuLi9zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Rhc2hib2FyZC9jb21wb25lbnRzL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbC9lczYnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZ3JvdXAtc2hhcmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JvdXAtc2hhcmUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFByeUdyb3VwU2hhcmVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFByeUdyb3VwU2hhcmVDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKGdyb3Vwczogc3RyaW5nW10pID0+IGdyb3VwcztcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8vIGZvciB0cmFja2luZyBpbnB1dFxuICBhc3NpZ25lZEdyb3VwTmFtZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuXG4gIHJhZGlvVmFsdWUgPSBQcnlWaXNpYmlsaXR5VHlwZS5QUklWQVRFO1xuICBhc3NpZ25lZEdyb3VwcyQ6IE9ic2VydmFibGU8R3JvdXBbXT47XG4gIGdyb3VwcyQ6IE9ic2VydmFibGU8R3JvdXBbXT47XG4gIFByeVZpc2liaWxpdHlUeXBlID0gUHJ5VmlzaWJpbGl0eVR5cGU7XG4gIHZpc2liaWxpdHlUeXBlczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogUHJ5VmlzaWJpbGl0eVR5cGUgfVtdID0gW107XG4gIHRlbXBsYXRlRGF0YSQ6IE9ic2VydmFibGU8eyBncm91cHM6IEdyb3VwW107IGFzc2lnbmVkR3JvdXBzOiBHcm91cFtdIH0+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5sb2FkQWNjZXNzR3JvdXBzKCkpO1xuICAgIHRoaXMuZ3JvdXBzJCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmFjY2Vzc0dyb3VwcylcbiAgICAgIC5waXBlKG1hcCgoZ3JvdXBzKSA9PiBncm91cHMuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAubmFtZSAhPT0gJ0FMTCcpKSk7XG4gICAgdGhpcy5hc3NpZ25lZEdyb3VwcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmdyb3VwcyQsIHRoaXMuYXNzaWduZWRHcm91cE5hbWVzJF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbZ3JvdXBzLCBncm91cE5hbWVzXSkgPT5cbiAgICAgICAgICBncm91cHMuZmlsdGVyKChncm91cCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGdyb3VwTmFtZXMuaW5jbHVkZXMoZ3JvdXAubmFtZSk7XG4gICAgICAgICAgfSkgPz8gW11cbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMudmlzaWJpbGl0eVR5cGVzID0gT2JqZWN0LmtleXMoUHJ5VmlzaWJpbGl0eVR5cGUpLm1hcCgobGFiZWwpID0+ICh7XG4gICAgICBsYWJlbDogbGFiZWwudG9Mb3dlckNhc2UoKSxcbiAgICAgIHZhbHVlOiBQcnlWaXNpYmlsaXR5VHlwZVs8a2V5b2YgdHlwZW9mIFByeVZpc2liaWxpdHlUeXBlPmxhYmVsXVxuICAgIH0pKTtcbiAgICB0aGlzLnRlbXBsYXRlRGF0YSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmdyb3VwcyQsIHRoaXMuYXNzaWduZWRHcm91cHMkXSkucGlwZShcbiAgICAgIG1hcCgoW2dyb3VwcywgYXNzaWduZWRHcm91cHNdKSA9PiAoeyBncm91cHMsIGFzc2lnbmVkR3JvdXBzIH0pKVxuICAgICk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlID0gdmFsdWUgPz8gW107XG4gICAgaWYgKCFlcXVhbCh0aGlzLmFzc2lnbmVkR3JvdXBOYW1lcyQuZ2V0VmFsdWUoKSwgdmFsdWUpKSB7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLmFzc2lnbmVkR3JvdXBOYW1lcyQubmV4dCh2YWx1ZSk7XG4gICAgICB0aGlzLnVwZGF0ZVJhZGlvVmFsdWUodmFsdWUpO1xuICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdXBkYXRlUmFkaW9WYWx1ZShncm91cHM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKGdyb3Vwcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucmFkaW9WYWx1ZSA9IFByeVZpc2liaWxpdHlUeXBlLlBSSVZBVEU7XG4gICAgfSBlbHNlIGlmIChncm91cHMubGVuZ3RoID09PSAxICYmIGdyb3Vwcy5maW5kKChncm91cCkgPT4gZ3JvdXAgPT09ICdBTEwnKSkge1xuICAgICAgdGhpcy5yYWRpb1ZhbHVlID0gUHJ5VmlzaWJpbGl0eVR5cGUuUFVCTElDO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJhZGlvVmFsdWUgPSBQcnlWaXNpYmlsaXR5VHlwZS5SRVNUUklDVEVEO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUdyb3Vwc0Jhc2VkT25SYWRpb1ZhbHVlKHR5cGU6IFByeVZpc2liaWxpdHlUeXBlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmFkaW9WYWx1ZSAhPT0gdHlwZSkge1xuICAgICAgdGhpcy5yYWRpb1ZhbHVlID0gdHlwZTtcblxuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUHJ5VmlzaWJpbGl0eVR5cGUuUFJJVkFURTpcbiAgICAgICAgICB0aGlzLmNoYW5nZUdyb3VwcyhbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUHJ5VmlzaWJpbGl0eVR5cGUuUkVTVFJJQ1RFRDpcbiAgICAgICAgICB0aGlzLmNoYW5nZUdyb3Vwcyh0aGlzLmFzc2lnbmVkR3JvdXBOYW1lcyQuZ2V0VmFsdWUoKSA/PyBbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUHJ5VmlzaWJpbGl0eVR5cGUuUFVCTElDOlxuICAgICAgICAgIHRoaXMuY2hhbmdlR3JvdXBzKFsnQUxMJ10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUdyb3Vwcyhncm91cHM6IChHcm91cCB8IHN0cmluZylbXSB8IG51bGwpIHtcbiAgICBpZiAoZ3JvdXBzKSB7XG4gICAgICB0aGlzLl9vbkNoYW5nZShncm91cHMubWFwKChncm91cCkgPT4gKHR5cGVvZiBncm91cCA9PT0gJ3N0cmluZycgPyBncm91cCA6IGdyb3VwLm5hbWUpKSk7XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm0tZm9ybS1yYWRpby1ncm91cFwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCB0eXBlIG9mIHZpc2liaWxpdHlUeXBlc1wiIGNsYXNzPVwibS1mb3JtLXJhZGlvLWdyb3VwX19pdGVtXCI+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgbmFtZT1cInZpc2liaWxpdHlcIlxuICAgICAgW2lkXT1cInR5cGUubGFiZWxcIlxuICAgICAgW3ZhbHVlXT1cInR5cGUudmFsdWVcIlxuICAgICAgW25nTW9kZWxdPVwicmFkaW9WYWx1ZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VHcm91cHNCYXNlZE9uUmFkaW9WYWx1ZSgkZXZlbnQpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxuICAgIC8+XG4gICAgPGxhYmVsIFtmb3JdPVwidHlwZS5sYWJlbFwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnNoYXJlLicgKyB0eXBlLmxhYmVsIHwgaTE4biB9fTwvbGFiZWw+XG4gIDwvZGl2PlxuPC9kaXY+XG5AaWYgKHJhZGlvVmFsdWUgPT09IFByeVZpc2liaWxpdHlUeXBlLlJFU1RSSUNURUQpIHtcbiAgQGlmKHRlbXBsYXRlRGF0YSQgfCBhc3luYzsgYXMgZGF0YSkge1xuICAgIDxwcnktY2hpcHMtc2VsZWN0b3JcbiAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgYmluZFZhbHVlPVwibmFtZVwiXG4gICAgICB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LmNvbXBvbmVudHMuY2hpcHNTZWxlY3Rvci5zaGFyZS5cIlxuICAgICAgaXRlbVRyYW5zbGF0aW9uU3RyaW5nQmFzZT1cIkBwcnkuY29tcG9uZW50cy5jaGlwc1NlbGVjdG9yLnNoYXJlLmdyb3Vwcy5cIlxuICAgICAgW3Nob3dBY3Rpb25CdXR0b25zXT1cImZhbHNlXCJcbiAgICAgIFtpdGVtc109XCJkYXRhLmdyb3Vwc1wiXG4gICAgICAoaXRlbXNDaGFuZ2VkKT1cImNoYW5nZUdyb3VwcygkZXZlbnQpXCJcbiAgICAgIFt1c2VkSXRlbXNdPVwiZGF0YS5hc3NpZ25lZEdyb3Vwc1wiXG4gICAgICBbc2hvd1NlYXJjaGJhcl09XCJkYXRhLmdyb3Vwcy5sZW5ndGggPiA2XCJcbiAgICA+PC9wcnktY2hpcHMtc2VsZWN0b3I+XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJ5VmlzaWJpbGl0eSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgTWV0YWRhdGFWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVsL2FkbWluLWFwaS5tb2RlbCc7XG5pbXBvcnQgeyBQcnlEYXRhc2V0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGFzZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbW9uby1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBGdWxsVGV4dFNlYXJjaFBheWxvYWQsIE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW11bHRpLWNsYXNzLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgRGF0YVNvdXJjZSA9IE5hbWVkUXVlcnkgfCBEYXRhc2V0O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVkUXVlcnkgZXh0ZW5kcyBEZXNjcmlwdGlvblF1ZXJ5IHtcbiAgc291cmNlVHlwZTogJ25hbWVkUXVlcnknO1xuICBpZDogc3RyaW5nO1xuICByZXF1ZXN0OiBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIHwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfCBGdWxsVGV4dFNlYXJjaFBheWxvYWQ7XG4gIGNvbG9yPzogc3RyaW5nO1xuICBmYXZvcml0ZT86IGJvb2xlYW47XG4gIGxhc3RFeGVjdXRpb25EYXRlPzogRGF0ZTtcbiAgb3duZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0aW9uUXVlcnkge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB2aXNpYmlsaXR5PzogUHJ5VmlzaWJpbGl0eTtcbiAgbWV0YWRhdGE/OiBNZXRhZGF0YVZhbHVlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldCBleHRlbmRzIERlc2NyaXB0aW9uUXVlcnkge1xuICBzb3VyY2VUeXBlOiAnZGF0YXNldCc7XG4gIGlkOiBzdHJpbmc7XG4gIG9DbGFzczogc3RyaW5nO1xuICB0eXBlOiBQcnlEYXRhc2V0VHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0VmVyc2lvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGRhdGFzZXQ6IHN0cmluZztcbiAgb0NsYXNzOiBzdHJpbmc7XG4gIGxhc3RNb2RpZmllZDogc3RyaW5nO1xuICBhdmFpbGFibGU6IGJvb2xlYW47XG4gIHZlcnNpb246IG51bWJlcjtcbiAgc3RhdGU6IHN0cmluZztcbiAgd2l0aEZpbGU6IGJvb2xlYW47XG4gIG1ldGFkYXRhOiBhbnlbXTtcbiAgaGFzV2FybmluZ3M6IGJvb2xlYW47XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJ5VmlzaWJpbGl0eSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgTWV0YWRhdGFWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVsL2FkbWluLWFwaS5tb2RlbCc7XG5pbXBvcnQgeyBQcnlEYXRhc2V0VHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGFzZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbW9uby1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBGdWxsVGV4dFNlYXJjaFBheWxvYWQsIE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW11bHRpLWNsYXNzLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgRGF0YVNvdXJjZSA9IE5hbWVkUXVlcnkgfCBEYXRhc2V0O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVkUXVlcnkgZXh0ZW5kcyBEZXNjcmlwdGlvblF1ZXJ5IHtcbiAgc291cmNlVHlwZTogJ25hbWVkUXVlcnknO1xuICBpZDogc3RyaW5nO1xuICByZXF1ZXN0OiBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIHwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfCBGdWxsVGV4dFNlYXJjaFBheWxvYWQ7XG4gIGNvbG9yPzogc3RyaW5nO1xuICBmYXZvcml0ZT86IGJvb2xlYW47XG4gIGxhc3RFeGVjdXRpb25EYXRlPzogRGF0ZTtcbiAgb3duZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0aW9uUXVlcnkge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB2aXNpYmlsaXR5PzogUHJ5VmlzaWJpbGl0eTtcbiAgbWV0YWRhdGE/OiBNZXRhZGF0YVZhbHVlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldCBleHRlbmRzIERlc2NyaXB0aW9uUXVlcnkge1xuICBzb3VyY2VUeXBlOiAnZGF0YXNldCc7XG4gIGlkOiBzdHJpbmc7XG4gIG9DbGFzczogc3RyaW5nO1xuICB0eXBlOiBQcnlEYXRhc2V0VHlwZTtcbiAgb3duZXI/OiBib29sZWFuO1xuICBncm91cHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0VmVyc2lvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIGRhdGFzZXQ6IHN0cmluZztcbiAgb0NsYXNzOiBzdHJpbmc7XG4gIGxhc3RNb2RpZmllZDogc3RyaW5nO1xuICBhdmFpbGFibGU6IGJvb2xlYW47XG4gIHZlcnNpb246IG51bWJlcjtcbiAgc3RhdGU6IHN0cmluZztcbiAgd2l0aEZpbGU6IGJvb2xlYW47XG4gIG1ldGFkYXRhOiBhbnlbXTtcbiAgaGFzV2FybmluZ3M6IGJvb2xlYW47XG59XG4iXX0=
@@ -52,14 +52,14 @@ export class DatasourceSelectorComponent extends ChipsSelectorComponent {
52
52
  }));
53
53
  }
54
54
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DatasourceSelectorComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }, { token: i2.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: { usedItems: "usedItems", manifest: "manifest" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-chips-selector__list o-chips-selector__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-chips-selector__main\">\n <ul class=\"o-chips-selector__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-chips-selector__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.I18nPipe, name: "i18n" }] }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: { usedItems: "usedItems", manifest: "manifest" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-chips-selector\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div *ngIf=\"showSearchbar\" class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\" class=\"o-chips-selector__selected-items\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-chips-selector__list o-chips-selector__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <span class=\"-no-items\">{{ translationStringBase + 'noItemSelected' | i18n }}</span>\n </ng-template>\n <div class=\"o-chips-selector__unused-items\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-chips-selector__main\">\n <ul class=\"o-chips-selector__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-chips-selector__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.I18nPipe, name: "i18n" }] }); }
56
56
  }
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DatasourceSelectorComponent, decorators: [{
58
58
  type: Component,
59
- args: [{ selector: 'pry-datasource-selector', template: "<div class=\"m-namedqueries-wrapper\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-chips-selector__list o-chips-selector__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <h4 class=\"a-h4\">{{ translationStringBase + 'noItemSelected' | i18n }}</h4>\n </ng-template>\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-chips-selector__main\">\n <ul class=\"o-chips-selector__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-chips-selector__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n" }]
59
+ args: [{ selector: 'pry-datasource-selector', template: "<div class=\"o-chips-selector\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"dialog_namedqueries\">\n <div *ngIf=\"showSearchbar\" class=\"o-widget__search\">\n <input\n id=\"catalog-search\"\n (keydown.shift.tab)=\"previousTab.emit()\"\n type=\"text\"\n class=\"a-form-field\"\n [placeholder]=\"'@pry.components.searchData' | i18n\"\n [ngModel]=\"search$ | async\"\n (ngModelChange)=\"search($event)\"\n />\n <pry-icon iconSvg=\"search\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </div>\n <div *ngIf=\"((usedItems$ | async) ?? []).length > 0; else noItems\" class=\"o-chips-selector__selected-items\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'selection' | i18n }}</h4>\n <div>\n <ul class=\"o-chips-selector__list o-chips-selector__list--selected\">\n <li *ngFor=\"let item of usedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\" type=\"button\">\n <p>\n {{ getItemLabel(item) }}\n </p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n <pry-icon [iconSvg]=\"'close'\" [width]=\"17\" [height]=\"17\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <ng-template #noItems>\n <span class=\"-no-items\">{{ translationStringBase + 'noItemSelected' | i18n }}</span>\n </ng-template>\n <div class=\"o-chips-selector__unused-items\">\n <h4 class=\"a-h4\">{{ translationStringBase + 'select' | i18n }}</h4>\n <div class=\"o-chips-selector__main\">\n <ul class=\"o-chips-selector__list\">\n <li *ngFor=\"let item of unusedItems$ | async\" class=\"o-chips-selector__item\">\n <button class=\"a-chip a-chip--light -md o-chips-selector__chip\" (click)=\"toggleItemSelection(item)\">\n <span class=\"u-visually-hidden\">{{ translationStringBase + 'selectItem' | i18n }}</span>\n <p class=\"a-p\">{{ getItemLabel(item) }}</p>\n <pry-icon *ngIf=\"isGeo(item)\" iconSvg=\"globe\" [width]=\"22\" [height]=\"22\"></pry-icon>\n </button>\n </li>\n </ul>\n </div>\n </div>\n <div *ngIf=\"showActionButtons\" class=\"m-btn-group o-chips-selector__bottom\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n</div>\n" }]
60
60
  }], ctorParameters: () => [{ type: i1.Store }, { type: i0.ChangeDetectorRef }, { type: i2.PryI18nService }], propDecorators: { usedItems: [{
61
61
  type: Input
62
62
  }], manifest: [{
63
63
  type: Input
64
64
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhc291cmNlLXNlbGVjdG9yL2RhdGFzb3VyY2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9jaGlwcy1zZWxlY3Rvci9jaGlwcy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBRWhHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOzs7Ozs7OztBQVM3RyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsc0JBQXNCO0lBSXJFLElBQXNCLFNBQVMsQ0FBQyxLQUFZO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxRQUErQjtRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBSUQsWUFBb0IsS0FBWSxFQUFFLEdBQXNCLEVBQUUsSUFBb0I7UUFDNUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxJ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TyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVOS05PV05fREFUQVNPVVJDRSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy90cmFuc2xhdGUtaWQvdHJhbnNsYXRlLWlkLnBpcGUnO1xuaW1wb3J0IHsgTmFtZWRRdWVyeSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IENoaXBzU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2NvbXBvbmVudHMvY2hpcHMtc2VsZWN0b3IvY2hpcHMtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldE1hbmlmZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQcnlJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvaTE4bi9pMThuLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZGF0YXNvdXJjZS1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi4vLi4vLi4vLi4vY29yZS9jb21wb25lbnRzL2NoaXBzLXNlbGVjdG9yL2NoaXBzLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRhc291cmNlU2VsZWN0b3JDb21wb25lbnQgZXh0ZW5kcyBDaGlwc1NlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgX3VzZWRJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdIGFzIGFueVtdKTtcbiAgdXNlZERhdGFzb3VyY2VzJDogT2JzZXJ2YWJsZTxOYW1lZFF1ZXJ5W10+O1xuXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHNldCB1c2VkSXRlbXMoaXRlbXM6IGFueVtdKSB7XG4gICAgdGhpcy5fdXNlZEl0ZW1zJC5uZXh0KGl0ZW1zKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYW5pZmVzdChtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfCBudWxsKSB7XG4gICAgdGhpcy5tYW5pZmVzdCQubmV4dChtYW5pZmVzdCk7XG4gIH1cblxuICBtYW5pZmVzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpZGdldE1hbmlmZXN0IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIGkxOG46IFByeUkxOG5TZXJ2aWNlKSB7XG4gICAgc3VwZXIoY2RyLCBpMThuKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5tYW5pZmVzdCQsIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXNTb3J0ZWQpXSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChbbWFuaWZlc3QsIGFsbE5hbWVkUXVlcmllc10pID0+IHtcbiAgICAgICAgICAgIGxldCBkc3MgPSBbLi4uYWxsTmFtZWRRdWVyaWVzXTtcbiAgICAgICAgICAgIGlmICghIW1hbmlmZXN0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IG1hbmlmZXN0TmFtZWRRdWVyaWVzID0gQXJyYXkuaXNBcnJheShtYW5pZmVzdC5kYXRhc291cmNlKVxuICAgICAgICAgICAgICAgID8gbWFuaWZlc3QuZGF0YXNvdXJjZVxuICAgICAgICAgICAgICAgIDogW21hbmlmZXN0LmRhdGFzb3VyY2VdO1xuICAgICAgICAgICAgICBtYW5pZmVzdE5hbWVkUXVlcmllcy5mb3JFYWNoKChtYW5pZmVzdE5hbWVkUXVlcnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbHJlYWR5UHJlc2VudCA9ICEhYWxsTmFtZWRRdWVyaWVzLmZpbmQoKG5xKSA9PiBucS5pZCA9PT0gbWFuaWZlc3ROYW1lZFF1ZXJ5KTtcbiAgICAgICAgICAgICAgICBpZiAoIWFscmVhZHlQcmVzZW50KSB7XG4gICAgICAgICAgICAgICAgICBkc3MucHVzaChVTktOT1dOX0RBVEFTT1VSQ0UobWFuaWZlc3ROYW1lZFF1ZXJ5ID8/ICcnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkc3M7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhc291cmNlcykgPT4ge1xuICAgICAgICAgIHRoaXMuaXRlbXMkLm5leHQoZGF0YXNvdXJjZXMpO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnVzZWREYXRhc291cmNlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX3VzZWRJdGVtcyQsXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbdXNlZERhdGFzb3VyY2VzLCBkYXRhc291cmNlc10pID0+XG4gICAgICAgICAgdXNlZERhdGFzb3VyY2VzXG4gICAgICAgICAgICAubWFwKCh1c2VkRGF0YXNvdXJjZSkgPT4gZGF0YXNvdXJjZXMuZmluZCgoZHMpID0+IGRzLmlkID09PSB1c2VkRGF0YXNvdXJjZS5pZCkgPz8gdXNlZERhdGFzb3VyY2UpXG4gICAgICAgICAgICAubWFwKChucSkgPT4gKHR5cGVvZiBucSAhPT0gJ3N0cmluZycgPyBucSA6IFVOS05PV05fREFUQVNPVVJDRShucSkpKSBhcyBOYW1lZFF1ZXJ5W11cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudXNlZERhdGFzb3VyY2VzJC5zdWJzY3JpYmUoKHVzZWREYXRhc291cmNlcykgPT4ge1xuICAgICAgICB0aGlzLnVzZWRJdGVtcyQubmV4dCh1c2VkRGF0YXNvdXJjZXMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibS1uYW1lZHF1ZXJpZXMtd3JhcHBlclwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZ19uYW1lZHF1ZXJpZXNcIj5cbiAgPGRpdiBjbGFzcz1cIm8td2lkZ2V0X19zZWFyY2hcIj5cbiAgICA8aW5wdXRcbiAgICAgIGlkPVwiY2F0YWxvZy1zZWFyY2hcIlxuICAgICAgKGtleWRvd24uc2hpZnQudGFiKT1cInByZXZpb3VzVGFiLmVtaXQoKVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkuY29tcG9uZW50cy5zZWFyY2hEYXRhJyB8IGkxOG5cIlxuICAgICAgW25nTW9kZWxdPVwic2VhcmNoJCB8IGFzeW5jXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2VhcmNoXCIgW3dpZHRoXT1cIjE3XCIgW2hlaWdodF09XCIxN1wiPjwvcHJ5LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiKCh1c2VkSXRlbXMkIHwgYXN5bmMpID8/IFtdKS5sZW5ndGggPiAwOyBlbHNlIG5vSXRlbXNcIj5cbiAgICA8aDQgY2xhc3M9XCJhLWg0XCI+e3sgdHJhbnNsYXRpb25TdHJpbmdCYXNlICsgJ3NlbGVjdGlvbicgfCBpMThuIH19PC9oND5cbiAgICA8ZGl2PlxuICAgICAgPHVsIGNsYXNzPVwiby1jaGlwcy1zZWxlY3Rvcl9fbGlzdCBvLWNoaXBzLXNlbGVjdG9yX19saXN0LS1zZWxlY3RlZFwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdXNlZEl0ZW1zJCB8IGFzeW5jXCIgY2xhc3M9XCJvLWNoaXBzLXNlbGVjdG9yX19pdGVtXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtY2hpcCAtbWQgby1jaGlwcy1zZWxlY3Rvcl9fY2hpcFwiIChjbGljayk9XCJ0b2dnbGVJdGVtU2VsZWN0aW9uKGl0ZW0pXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIHt7IGdldEl0ZW1MYWJlbChpdGVtKSB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHByeS1pY29uICpuZ0lmPVwiaXNHZW8oaXRlbSlcIiBpY29uU3ZnPVwiZ2xvYmVcIiBbd2lkdGhdPVwiMjJcIiBbaGVpZ2h0XT1cIjIyXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBbaWNvblN2Z109XCInY2xvc2UnXCIgW3dpZHRoXT1cIjE3XCIgW2hlaWdodF09XCIxN1wiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNub0l0ZW1zPlxuICAgIDxoNCBjbGFzcz1cImEtaDRcIj57eyB0cmFuc2xhdGlvblN0cmluZ0Jhc2UgKyAnbm9JdGVtU2VsZWN0ZWQnIHwgaTE4biB9fTwvaDQ+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxoNCBjbGFzcz1cImEtaDRcIj57eyB0cmFuc2xhdGlvblN0cmluZ0Jhc2UgKyAnc2VsZWN0JyB8IGkxOG4gfX08L2g0PlxuICA8ZGl2IGNsYXNzPVwiby1jaGlwcy1zZWxlY3Rvcl9fbWFpblwiPlxuICAgIDx1bCBjbGFzcz1cIm8tY2hpcHMtc2VsZWN0b3JfX2xpc3RcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiB1bnVzZWRJdGVtcyQgfCBhc3luY1wiIGNsYXNzPVwiby1jaGlwcy1zZWxlY3Rvcl9faXRlbVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1jaGlwIGEtY2hpcC0tbGlnaHQgLW1kIG8tY2hpcHMtc2VsZWN0b3JfX2NoaXBcIiAoY2xpY2spPVwidG9nZ2xlSXRlbVNlbGVjdGlvbihpdGVtKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyB0cmFuc2xhdGlvblN0cmluZ0Jhc2UgKyAnc2VsZWN0SXRlbScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgIDxwIGNsYXNzPVwiYS1wXCI+e3sgZ2V0SXRlbUxhYmVsKGl0ZW0pIH19PC9wPlxuICAgICAgICAgIDxwcnktaWNvbiAqbmdJZj1cImlzR2VvKGl0ZW0pXCIgaWNvblN2Zz1cImdsb2JlXCIgW3dpZHRoXT1cIjIyXCIgW2hlaWdodF09XCIyMlwiPjwvcHJ5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInNob3dBY3Rpb25CdXR0b25zXCIgY2xhc3M9XCJtLWJ0bi1ncm91cCBvLWNoaXBzLXNlbGVjdG9yX19ib3R0b21cIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2FuY2VsLmVtaXQoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwidmFsaWRhdGVkLmVtaXQoKVwiXG4gICAgICAjdmFsaWRhdGVcbiAgICAgIChrZXlkb3duLnRhYik9XCJuZXh0VGFiLmVtaXQoKVwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICA+XG4gICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LnZhbGlkYXRlZCcgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhc291cmNlLXNlbGVjdG9yL2RhdGFzb3VyY2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9jaGlwcy1zZWxlY3Rvci9jaGlwcy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBRWhHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOzs7Ozs7OztBQVM3RyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsc0JBQXNCO0lBSXJFLElBQXNCLFNBQVMsQ0FBQyxLQUFZO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxRQUErQjtRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBSUQsWUFBb0IsS0FBWSxFQUFFLEdBQXNCLEVBQUUsSUFBb0I7UUFDNUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxJ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TyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVOS05PV05fREFUQVNPVVJDRSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy90cmFuc2xhdGUtaWQvdHJhbnNsYXRlLWlkLnBpcGUnO1xuaW1wb3J0IHsgTmFtZWRRdWVyeSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IENoaXBzU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2NvbXBvbmVudHMvY2hpcHMtc2VsZWN0b3IvY2hpcHMtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldE1hbmlmZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQcnlJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvaTE4bi9pMThuLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZGF0YXNvdXJjZS1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi4vLi4vLi4vLi4vY29yZS9jb21wb25lbnRzL2NoaXBzLXNlbGVjdG9yL2NoaXBzLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRhc291cmNlU2VsZWN0b3JDb21wb25lbnQgZXh0ZW5kcyBDaGlwc1NlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgX3VzZWRJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdIGFzIGFueVtdKTtcbiAgdXNlZERhdGFzb3VyY2VzJDogT2JzZXJ2YWJsZTxOYW1lZFF1ZXJ5W10+O1xuXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHNldCB1c2VkSXRlbXMoaXRlbXM6IGFueVtdKSB7XG4gICAgdGhpcy5fdXNlZEl0ZW1zJC5uZXh0KGl0ZW1zKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYW5pZmVzdChtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfCBudWxsKSB7XG4gICAgdGhpcy5tYW5pZmVzdCQubmV4dChtYW5pZmVzdCk7XG4gIH1cblxuICBtYW5pZmVzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpZGdldE1hbmlmZXN0IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIGkxOG46IFByeUkxOG5TZXJ2aWNlKSB7XG4gICAgc3VwZXIoY2RyLCBpMThuKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5tYW5pZmVzdCQsIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXNTb3J0ZWQpXSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChbbWFuaWZlc3QsIGFsbE5hbWVkUXVlcmllc10pID0+IHtcbiAgICAgICAgICAgIGxldCBkc3MgPSBbLi4uYWxsTmFtZWRRdWVyaWVzXTtcbiAgICAgICAgICAgIGlmICghIW1hbmlmZXN0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IG1hbmlmZXN0TmFtZWRRdWVyaWVzID0gQXJyYXkuaXNBcnJheShtYW5pZmVzdC5kYXRhc291cmNlKVxuICAgICAgICAgICAgICAgID8gbWFuaWZlc3QuZGF0YXNvdXJjZVxuICAgICAgICAgICAgICAgIDogW21hbmlmZXN0LmRhdGFzb3VyY2VdO1xuICAgICAgICAgICAgICBtYW5pZmVzdE5hbWVkUXVlcmllcy5mb3JFYWNoKChtYW5pZmVzdE5hbWVkUXVlcnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbHJlYWR5UHJlc2VudCA9ICEhYWxsTmFtZWRRdWVyaWVzLmZpbmQoKG5xKSA9PiBucS5pZCA9PT0gbWFuaWZlc3ROYW1lZFF1ZXJ5KTtcbiAgICAgICAgICAgICAgICBpZiAoIWFscmVhZHlQcmVzZW50KSB7XG4gICAgICAgICAgICAgICAgICBkc3MucHVzaChVTktOT1dOX0RBVEFTT1VSQ0UobWFuaWZlc3ROYW1lZFF1ZXJ5ID8/ICcnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkc3M7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhc291cmNlcykgPT4ge1xuICAgICAgICAgIHRoaXMuaXRlbXMkLm5leHQoZGF0YXNvdXJjZXMpO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnVzZWREYXRhc291cmNlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX3VzZWRJdGVtcyQsXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbdXNlZERhdGFzb3VyY2VzLCBkYXRhc291cmNlc10pID0+XG4gICAgICAgICAgdXNlZERhdGFzb3VyY2VzXG4gICAgICAgICAgICAubWFwKCh1c2VkRGF0YXNvdXJjZSkgPT4gZGF0YXNvdXJjZXMuZmluZCgoZHMpID0+IGRzLmlkID09PSB1c2VkRGF0YXNvdXJjZS5pZCkgPz8gdXNlZERhdGFzb3VyY2UpXG4gICAgICAgICAgICAubWFwKChucSkgPT4gKHR5cGVvZiBucSAhPT0gJ3N0cmluZycgPyBucSA6IFVOS05PV05fREFUQVNPVVJDRShucSkpKSBhcyBOYW1lZFF1ZXJ5W11cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudXNlZERhdGFzb3VyY2VzJC5zdWJzY3JpYmUoKHVzZWREYXRhc291cmNlcykgPT4ge1xuICAgICAgICB0aGlzLnVzZWRJdGVtcyQubmV4dCh1c2VkRGF0YXNvdXJjZXMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1jaGlwcy1zZWxlY3RvclwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZ19uYW1lZHF1ZXJpZXNcIj5cbiAgPGRpdiAqbmdJZj1cInNob3dTZWFyY2hiYXJcIiBjbGFzcz1cIm8td2lkZ2V0X19zZWFyY2hcIj5cbiAgICA8aW5wdXRcbiAgICAgIGlkPVwiY2F0YWxvZy1zZWFyY2hcIlxuICAgICAgKGtleWRvd24uc2hpZnQudGFiKT1cInByZXZpb3VzVGFiLmVtaXQoKVwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkuY29tcG9uZW50cy5zZWFyY2hEYXRhJyB8IGkxOG5cIlxuICAgICAgW25nTW9kZWxdPVwic2VhcmNoJCB8IGFzeW5jXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxwcnktaWNvbiBpY29uU3ZnPVwic2VhcmNoXCIgW3dpZHRoXT1cIjE3XCIgW2hlaWdodF09XCIxN1wiPjwvcHJ5LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiKCh1c2VkSXRlbXMkIHwgYXN5bmMpID8/IFtdKS5sZW5ndGggPiAwOyBlbHNlIG5vSXRlbXNcIiBjbGFzcz1cIm8tY2hpcHMtc2VsZWN0b3JfX3NlbGVjdGVkLWl0ZW1zXCI+XG4gICAgPGg0IGNsYXNzPVwiYS1oNFwiPnt7IHRyYW5zbGF0aW9uU3RyaW5nQmFzZSArICdzZWxlY3Rpb24nIHwgaTE4biB9fTwvaDQ+XG4gICAgPGRpdj5cbiAgICAgIDx1bCBjbGFzcz1cIm8tY2hpcHMtc2VsZWN0b3JfX2xpc3Qgby1jaGlwcy1zZWxlY3Rvcl9fbGlzdC0tc2VsZWN0ZWRcIj5cbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIHVzZWRJdGVtcyQgfCBhc3luY1wiIGNsYXNzPVwiby1jaGlwcy1zZWxlY3Rvcl9faXRlbVwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWNoaXAgLW1kIG8tY2hpcHMtc2VsZWN0b3JfX2NoaXBcIiAoY2xpY2spPVwidG9nZ2xlSXRlbVNlbGVjdGlvbihpdGVtKVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICB7eyBnZXRJdGVtTGFiZWwoaXRlbSkgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwcnktaWNvbiAqbmdJZj1cImlzR2VvKGl0ZW0pXCIgaWNvblN2Zz1cImdsb2JlXCIgW3dpZHRoXT1cIjIyXCIgW2hlaWdodF09XCIyMlwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICA8cHJ5LWljb24gW2ljb25TdmddPVwiJ2Nsb3NlJ1wiIFt3aWR0aF09XCIxN1wiIFtoZWlnaHRdPVwiMTdcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjbm9JdGVtcz5cbiAgICA8c3BhbiBjbGFzcz1cIi1uby1pdGVtc1wiPnt7IHRyYW5zbGF0aW9uU3RyaW5nQmFzZSArICdub0l0ZW1TZWxlY3RlZCcgfCBpMThuIH19PC9zcGFuPlxuICA8L25nLXRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiby1jaGlwcy1zZWxlY3Rvcl9fdW51c2VkLWl0ZW1zXCI+XG4gICAgPGg0IGNsYXNzPVwiYS1oNFwiPnt7IHRyYW5zbGF0aW9uU3RyaW5nQmFzZSArICdzZWxlY3QnIHwgaTE4biB9fTwvaDQ+XG4gICAgPGRpdiBjbGFzcz1cIm8tY2hpcHMtc2VsZWN0b3JfX21haW5cIj5cbiAgICAgIDx1bCBjbGFzcz1cIm8tY2hpcHMtc2VsZWN0b3JfX2xpc3RcIj5cbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIHVudXNlZEl0ZW1zJCB8IGFzeW5jXCIgY2xhc3M9XCJvLWNoaXBzLXNlbGVjdG9yX19pdGVtXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtY2hpcCBhLWNoaXAtLWxpZ2h0IC1tZCBvLWNoaXBzLXNlbGVjdG9yX19jaGlwXCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW1TZWxlY3Rpb24oaXRlbSlcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyB0cmFuc2xhdGlvblN0cmluZ0Jhc2UgKyAnc2VsZWN0SXRlbScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJhLXBcIj57eyBnZXRJdGVtTGFiZWwoaXRlbSkgfX08L3A+XG4gICAgICAgICAgICA8cHJ5LWljb24gKm5nSWY9XCJpc0dlbyhpdGVtKVwiIGljb25Tdmc9XCJnbG9iZVwiIFt3aWR0aF09XCIyMlwiIFtoZWlnaHRdPVwiMjJcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93QWN0aW9uQnV0dG9uc1wiIGNsYXNzPVwibS1idG4tZ3JvdXAgby1jaGlwcy1zZWxlY3Rvcl9fYm90dG9tXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbC5lbWl0KClcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2xvc2UnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cInZhbGlkYXRlZC5lbWl0KClcIlxuICAgICAgI3ZhbGlkYXRlXG4gICAgICAoa2V5ZG93bi50YWIpPVwibmV4dFRhYi5lbWl0KClcIlxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC52YWxpZGF0ZWQnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -13,10 +13,10 @@ import { concatLatestFrom, createEffect, ofType, EffectsModule } from '@ngrx/eff
13
13
  import * as i1 from '@ngrx/store';
14
14
  import { createAction, props, createReducer, on, createFeatureSelector, createSelector, StoreModule } from '@ngrx/store';
15
15
  import * as i4 from '@provoly/dashboard';
16
- import { ClassSelectors, FieldSelectors, FieldType, ClassActions, FieldActions, SubscriptionnerDirective, ConfigSelectors, ConfigActions, DEFAULT_ICON_URL, IconPosition, compareOperationFunctions, ItemUtils, FIELD_OPTIONS, CategoryActions, CategorySelectors, DEFAULT_CATEGORY_UUID, DataSourceActions, DataSourceSelectors, PryDatasetType, ENV_OPTIONS, GeometricFieldTypes, META_OPTIONS, RelationTypesSelectors, RelationTypesActions, BaseMenuComponent, BaseLayoutComponent, PRY_ACCESS_GUARD, PryDialogConfirmComponent, PrySortModule, PryIconModule, PryModalModule, PryI18nModule, PryCoreModule, PrySelectModule, PryToggleModule, PryOverlayModule } from '@provoly/dashboard';
16
+ import { ClassSelectors, FieldSelectors, FieldType, ClassActions, FieldActions, SubscriptionnerDirective, ConfigSelectors, ConfigActions, DEFAULT_ICON_URL, IconPosition, compareOperationFunctions, ItemUtils, FIELD_OPTIONS, CategoryActions, CategorySelectors, DEFAULT_CATEGORY_UUID, DataSourceActions, DataSourceSelectors, PryDatasetType, ENV_OPTIONS, GeometricFieldTypes, META_OPTIONS, RelationTypesSelectors, RelationTypesActions, BaseMenuComponent, BaseLayoutComponent, PRY_ACCESS_GUARD, PryDialogConfirmComponent, PrySortModule, PryIconModule, PryModalModule, PryI18nModule, PryCoreModule, PrySelectModule, PryToggleModule, PryOverlayModule, PryShareModule } from '@provoly/dashboard';
17
17
  import * as i5$1 from '@provoly/dashboard/components/checkbox';
18
18
  import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
19
- import * as i5$3 from '@provoly/dashboard/components/metadata-editor';
19
+ import * as i6 from '@provoly/dashboard/components/metadata-editor';
20
20
  import { MetadataSelectors, MetadataActions, PryExpandPanelModule } from '@provoly/dashboard/components/metadata-editor';
21
21
  import * as i2 from '@angular/router';
22
22
  import { RouterModule } from '@angular/router';
@@ -2773,6 +2773,7 @@ class AdminSelectDatasetComponent extends SubscriptionnerDirective {
2773
2773
  this.route = route;
2774
2774
  this.sub = new Subscription();
2775
2775
  this.currentTypeTranslation = '';
2776
+ this.accessGroups = [];
2776
2777
  this.store.dispatch(MetadataActions.loadMetadata());
2777
2778
  this.selectedDataset$ = this.store.select(DataSourceSelectors.selectedDataset);
2778
2779
  this.datasetMetadata$ = this.store.select(DataSourceSelectors.selectedDatasetMetadata);
@@ -2782,33 +2783,43 @@ class AdminSelectDatasetComponent extends SubscriptionnerDirective {
2782
2783
  ngOnInit() {
2783
2784
  this.subscriptions.add(this.selectedDataset$.subscribe((dataset) => {
2784
2785
  if (dataset) {
2786
+ this.accessGroups = dataset?.groups ?? [];
2785
2787
  const editPath = this.router.createUrlTree(['.', 'dataset', 'edit', dataset.id], {
2786
2788
  relativeTo: this.route
2787
2789
  });
2788
- this.store.dispatch(AdminActions.mainActions({
2789
- actions: [
2790
- {
2791
- action: AdminActions.routeTo({ path: editPath.toString() }),
2792
- label: 'edit',
2793
- icon: 'edit',
2794
- moduleAccess: 'admin',
2795
- pageAccess: 'dataset',
2796
- actionAccess: 'write'
2797
- },
2798
- {
2799
- action: DataSourceActions.dataset.confirmDataSourceDeletion({
2800
- name: dataset.id,
2801
- route: this.router.createUrlTree(['.', 'dataset'], { relativeTo: this.route }).toString(),
2802
- addRoute: this.router.createUrlTree(['.', 'dataset', 'new'], { relativeTo: this.route }).toString()
2803
- }),
2804
- label: 'delete',
2805
- icon: 'delete',
2806
- moduleAccess: 'admin',
2807
- pageAccess: 'dataset',
2808
- actionAccess: 'write'
2809
- }
2810
- ]
2811
- }));
2790
+ if (dataset.owner) {
2791
+ this.store.dispatch(AdminActions.mainActions({
2792
+ actions: [
2793
+ {
2794
+ action: AdminActions.routeTo({ path: editPath.toString() }),
2795
+ label: 'edit',
2796
+ icon: 'edit',
2797
+ moduleAccess: 'admin',
2798
+ pageAccess: 'dataset',
2799
+ actionAccess: 'write'
2800
+ },
2801
+ {
2802
+ action: DataSourceActions.dataset.confirmDataSourceDeletion({
2803
+ name: dataset.id,
2804
+ route: this.router.createUrlTree(['.', 'dataset'], { relativeTo: this.route }).toString(),
2805
+ addRoute: this.router
2806
+ .createUrlTree(['.', 'dataset', 'new'], { relativeTo: this.route })
2807
+ .toString()
2808
+ }),
2809
+ label: 'delete',
2810
+ icon: 'delete',
2811
+ moduleAccess: 'admin',
2812
+ pageAccess: 'dataset',
2813
+ actionAccess: 'write'
2814
+ }
2815
+ ]
2816
+ }));
2817
+ }
2818
+ else {
2819
+ this.store.dispatch(AdminActions.mainActions({
2820
+ actions: []
2821
+ }));
2822
+ }
2812
2823
  }
2813
2824
  }));
2814
2825
  }
@@ -2839,12 +2850,15 @@ class AdminSelectDatasetComponent extends SubscriptionnerDirective {
2839
2850
  value: metadata.value
2840
2851
  }));
2841
2852
  }
2853
+ share(dataset) {
2854
+ this.store.dispatch(DataSourceActions.dataset.update({ dataset: { ...dataset, groups: this.accessGroups }, route: '' }));
2855
+ }
2842
2856
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
2843
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminSelectDatasetComponent, selector: "pry-admin-select-dataset", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5$3.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "component", type: PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2857
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminSelectDatasetComponent, selector: "pry-admin-select-dataset", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel o-pry-admin-dataset-select\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 class=\"a-h3\">\n {{ '@pry.admin.dataset.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n <pry-tab *ngIf=\"dataset.owner\" [templateRef]=\"shareDataset\" name=\"share\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </ng-template>\n\n <ng-template #shareDataset>\n <div class=\"o-pry-admin-dataset-select__share\">\n <pry-group-share [ngModel]=\"dataset.groups\" (ngModelChange)=\"accessGroups = $event\"></pry-group-share>\n <button type=\"submit\" class=\"a-btn a-btn--primary u-self-end\" #submit (click)=\"share(dataset)\">\n {{ '@pry.admin.validate' | i18n }}\n </button>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "component", type: i4.PryGroupShareComponent, selector: "pry-group-share" }, { kind: "component", type: PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
2844
2858
  }
2845
2859
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectDatasetComponent, decorators: [{
2846
2860
  type: Component,
2847
- args: [{ selector: 'pry-admin-select-dataset', template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </ng-template>\n</div>\n" }]
2861
+ args: [{ selector: 'pry-admin-select-dataset', template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel o-pry-admin-dataset-select\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 class=\"a-h3\">\n {{ '@pry.admin.dataset.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n <pry-tab *ngIf=\"dataset.owner\" [templateRef]=\"shareDataset\" name=\"share\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </ng-template>\n\n <ng-template #shareDataset>\n <div class=\"o-pry-admin-dataset-select__share\">\n <pry-group-share [ngModel]=\"dataset.groups\" (ngModelChange)=\"accessGroups = $event\"></pry-group-share>\n <button type=\"submit\" class=\"a-btn a-btn--primary u-self-end\" #submit (click)=\"share(dataset)\">\n {{ '@pry.admin.validate' | i18n }}\n </button>\n </div>\n </ng-template>\n</div>\n" }]
2848
2862
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
2849
2863
 
2850
2864
  class AdminEnvironmentSelectComponent {
@@ -3516,7 +3530,7 @@ class AdminUserSelectComponent {
3516
3530
  this.tab = number;
3517
3531
  }
3518
3532
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserSelectComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
3519
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminUserSelectComponent, selector: "pry-admin-user-select", inputs: { profil: "profil" }, ngImport: i0, template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"userProfile\" name=\"userInfo.profile\"></pry-tab>\n <pry-tab [templateRef]=\"userDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #userProfile>\n <pry-metadata-editor\n [targetId]=\"(selectedUser$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(userMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadataUser($event)\"\n [type]=\"'user'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #userDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5$3.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3533
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminUserSelectComponent, selector: "pry-admin-user-select", inputs: { profil: "profil" }, ngImport: i0, template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"userProfile\" name=\"userInfo.profile\"></pry-tab>\n <pry-tab [templateRef]=\"userDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #userProfile>\n <pry-metadata-editor\n [targetId]=\"(selectedUser$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(userMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadataUser($event)\"\n [type]=\"'user'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #userDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
3520
3534
  }
3521
3535
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserSelectComponent, decorators: [{
3522
3536
  type: Component,
@@ -6180,6 +6194,7 @@ const frTranslations = {
6180
6194
  addAttribute: 'Ajouter un attribut',
6181
6195
  create: 'Créer',
6182
6196
  upload: 'Ajouter une image',
6197
+ share: 'Partager',
6183
6198
  cancel: 'Annuler',
6184
6199
  back: 'Retour',
6185
6200
  next: 'Suivant',
@@ -6300,6 +6315,7 @@ const frTranslations = {
6300
6315
  dataset: {
6301
6316
  delete: "L'ensemble des versions et des données associées seront supprimées. Les restitutions et présentations utilisant ce jeu de données n'afficheront plus les données correspondantes. Confirmez-vous la suppression ?",
6302
6317
  title: 'Jeux de données',
6318
+ details: 'Détails du jeu de données',
6303
6319
  id: 'Identifiant',
6304
6320
  name: 'Nom',
6305
6321
  oClass: 'Modèle métier',
@@ -6694,7 +6710,8 @@ class PryAdminModule {
6694
6710
  PryI18nModule,
6695
6711
  PryExpandPanelModule,
6696
6712
  PrySinceDateModule,
6697
- PryDatasetModule] }); }
6713
+ PryDatasetModule,
6714
+ PryShareModule] }); }
6698
6715
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminModule, providers: [DatePipe], imports: [CommonModule,
6699
6716
  PryCoreModule,
6700
6717
  AdminRoutingModule,
@@ -6733,7 +6750,8 @@ class PryAdminModule {
6733
6750
  PryI18nModule,
6734
6751
  PryExpandPanelModule,
6735
6752
  PrySinceDateModule,
6736
- PryDatasetModule] }); }
6753
+ PryDatasetModule,
6754
+ PryShareModule] }); }
6737
6755
  }
6738
6756
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminModule, decorators: [{
6739
6757
  type: NgModule,
@@ -6853,7 +6871,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
6853
6871
  PryI18nModule,
6854
6872
  PryExpandPanelModule,
6855
6873
  PrySinceDateModule,
6856
- PryDatasetModule
6874
+ PryDatasetModule,
6875
+ PryShareModule
6857
6876
  ]
6858
6877
  }]
6859
6878
  }], ctorParameters: () => [{ type: i4.PryI18nService }] });