@provoly/dashboard 0.24.4 → 0.24.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +1 -1
- package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +1 -1
- package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +1 -1
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +1 -1
- package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +1 -1
- package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +1 -1
- package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +1 -1
- package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +1 -1
- package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +1 -1
- package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +1 -1
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +1 -1
- package/esm2022/components/scheme-picker/scheme-picker.component.mjs +1 -1
- package/esm2022/filters/autocomplete/autocomplete.component.mjs +14 -8
- package/esm2022/filters/list/list-filter.component.mjs +1 -1
- package/esm2022/import/components/import.component.mjs +1 -1
- package/esm2022/lib/core/components/select/select-a11y.service.mjs +2 -2
- package/esm2022/lib/core/components/select/select.component.mjs +23 -6
- package/esm2022/lib/core/components/share/share.component.mjs +1 -1
- package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +1 -1
- package/esm2022/pipeline-components/filter/component/filter.component.mjs +1 -1
- package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +1 -1
- package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +1 -1
- package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +1 -1
- package/esm2022/restitution/components/restitution/restitution.component.mjs +1 -1
- package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +1 -1
- package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +1 -1
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +1 -1
- package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +1 -1
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +1 -1
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +1 -1
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +1 -1
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +1 -1
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
- package/fesm2022/provoly-dashboard-admin.mjs +13 -13
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +1 -1
- package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +14 -8
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs +1 -1
- package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-import.mjs +1 -1
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +4 -4
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +25 -8
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/filters/autocomplete/autocomplete.component.d.ts +5 -2
- package/lib/core/components/select/select.component.d.ts +4 -2
- package/package.json +1 -1
package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs
CHANGED
|
@@ -110,7 +110,7 @@ export class FormMetadataComponent {
|
|
|
110
110
|
return path.toString();
|
|
111
111
|
}
|
|
112
112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: { titleForm: "titleForm", isMetaSimpleEdit: "isMetaSimpleEdit", isMetaUser: "isMetaUser", metadata: "metadata" }, outputs: { submitMetadata$: "submitMetadata$" }, ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ titleForm }}</h1>\n\n <form class=\"o-form\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadata()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"metadata-name\">\n {{ '@pry.admin.metadata.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-name\"\n type=\"text\"\n formControlName=\"name\"\n [required]=\"!metadata\"\n [attr.aria-labelledby]=\"isSubmitted && metaForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.classes.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-md\">\n <label class=\"a-label\" for=\"metadata_description\">{{ '@pry.admin.metadata.description' | i18n }}</label>\n <textarea\n rows=\"5\"\n type=\"text\"\n id=\"metadata_description\"\n class=\"a-form-field\"\n formControlName=\"description\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"metadata-type\" id=\"metadata-type-label\" class=\"a-label\">\n {{ '@pry.admin.metadata.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"metadata-type\"\n formControlName=\"type\"\n [items]=\"metaOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [readonly]=\"!!metadata\"\n [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"metaForm.value.type === 'LIST'\">\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\" *ngIf=\"metadataList.controls.length > 0\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n\n <div class=\"o-datas-list metadata-list\" *ngFor=\"let control of metadataList.controls; let i = index\">\n <div class=\"o-datas-list__fields metadata-input\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"metadata-list-label\" for=\"metadata-list\" class=\"a-label\">\n {{ '@pry.admin.metadata.listLabel' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-list\"\n formControlName=\"{{ i }}\"\n [required]=\"!control.value\"\n [attr.aria-invalid]=\"isSubmitted && control?.invalid\"\n [attr.aria-labelledby]=\"\n isSubmitted && control?.invalid ? 'metadata-list-label metadata-list-error' : 'metadata-list-label'\n \"\n />\n <label\n *ngIf=\"isSubmitted && control.invalid\"\n id=\"metadata-list-error\"\n for=\"metadata-list\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group m-btn-group--input-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i === metadataList.controls.length - 1\"\n (click)=\"control.value.trim() !== '' ? addItemList() : undefined\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.addValue' | i18n }}</span>\n <pry-icon iconSvg=\"add\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i !== 0 && !metadataList.controls[i].disabled\"\n (click)=\"removeItemList(i)\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.removeValue' | i18n }}</span>\n <pry-icon iconSvg=\"delete\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </ng-container>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadata ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: { titleForm: "titleForm", isMetaSimpleEdit: "isMetaSimpleEdit", isMetaUser: "isMetaUser", metadata: "metadata" }, outputs: { submitMetadata$: "submitMetadata$" }, ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ titleForm }}</h1>\n\n <form class=\"o-form\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadata()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"metadata-name\">\n {{ '@pry.admin.metadata.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-name\"\n type=\"text\"\n formControlName=\"name\"\n [required]=\"!metadata\"\n [attr.aria-labelledby]=\"isSubmitted && metaForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.classes.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-md\">\n <label class=\"a-label\" for=\"metadata_description\">{{ '@pry.admin.metadata.description' | i18n }}</label>\n <textarea\n rows=\"5\"\n type=\"text\"\n id=\"metadata_description\"\n class=\"a-form-field\"\n formControlName=\"description\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"metadata-type\" id=\"metadata-type-label\" class=\"a-label\">\n {{ '@pry.admin.metadata.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"metadata-type\"\n formControlName=\"type\"\n [items]=\"metaOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [readonly]=\"!!metadata\"\n [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"metaForm.value.type === 'LIST'\">\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\" *ngIf=\"metadataList.controls.length > 0\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n\n <div class=\"o-datas-list metadata-list\" *ngFor=\"let control of metadataList.controls; let i = index\">\n <div class=\"o-datas-list__fields metadata-input\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"metadata-list-label\" for=\"metadata-list\" class=\"a-label\">\n {{ '@pry.admin.metadata.listLabel' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-list\"\n formControlName=\"{{ i }}\"\n [required]=\"!control.value\"\n [attr.aria-invalid]=\"isSubmitted && control?.invalid\"\n [attr.aria-labelledby]=\"\n isSubmitted && control?.invalid ? 'metadata-list-label metadata-list-error' : 'metadata-list-label'\n \"\n />\n <label\n *ngIf=\"isSubmitted && control.invalid\"\n id=\"metadata-list-error\"\n for=\"metadata-list\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group m-btn-group--input-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i === metadataList.controls.length - 1\"\n (click)=\"control.value.trim() !== '' ? addItemList() : undefined\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.addValue' | i18n }}</span>\n <pry-icon iconSvg=\"add\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i !== 0 && !metadataList.controls[i].disabled\"\n (click)=\"removeItemList(i)\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.removeValue' | i18n }}</span>\n <pry-icon iconSvg=\"delete\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </ng-container>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadata ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
|
|
114
114
|
}
|
|
115
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormMetadataComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
@@ -119,7 +119,7 @@ export class AdminFormMetadataRulesComponent {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFormMetadataRulesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: { metadataRules: "metadataRules" }, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"item\">{{\n '@pry.admin.metadata-rules.metadata-item.name' | i18n\n }}</label>\n <pry-select\n id=\"item\"\n formControlName=\"metadataItem\"\n [items]=\"metadataList\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataItem($event)\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"user\">{{\n '@pry.admin.metadata-rules.metadata-user.name' | i18n\n }}</label>\n <pry-select\n id=\"user\"\n formControlName=\"metadataUser\"\n [items]=\"metadataUserListFilter\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataUser($event)\"\n aria-labelledby=\"user-label\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameRules\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadataRules ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: { metadataRules: "metadataRules" }, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"item\">{{\n '@pry.admin.metadata-rules.metadata-item.name' | i18n\n }}</label>\n <pry-select\n id=\"item\"\n formControlName=\"metadataItem\"\n [items]=\"metadataList\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataItem($event)\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"user\">{{\n '@pry.admin.metadata-rules.metadata-user.name' | i18n\n }}</label>\n <pry-select\n id=\"user\"\n formControlName=\"metadataUser\"\n [items]=\"metadataUserListFilter\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataUser($event)\"\n aria-labelledby=\"user-label\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameRules\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadataRules ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
|
|
123
123
|
}
|
|
124
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminFormMetadataRulesComponent, decorators: [{
|
|
125
125
|
type: Component,
|
|
@@ -106,7 +106,7 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryMetadataEditorComponent, deps: [{ token: i1.Store }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: { isModification: "isModification", targetId: "targetId", type: "type", metadata: "metadata" }, outputs: { addMeta: "addMeta", removeMeta: "removeMeta" }, usesInheritance: true, ngImport: i0, template: "<pry-metadata-editor-css></pry-metadata-editor-css>\n<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *ngIf=\"!metaDefinition(metadata).readOnly\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"o-metadata-editor\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value.metadata\">\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"o-metadata-editor\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </ng-container>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (isModification ? '@pry.action.editMetadata' : '@pry.action.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\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.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryMetadataEditorCssComponent, selector: "pry-metadata-editor-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: { isModification: "isModification", targetId: "targetId", type: "type", metadata: "metadata" }, outputs: { addMeta: "addMeta", removeMeta: "removeMeta" }, usesInheritance: true, ngImport: i0, template: "<pry-metadata-editor-css></pry-metadata-editor-css>\n<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *ngIf=\"!metaDefinition(metadata).readOnly\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"o-metadata-editor\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value.metadata\">\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"o-metadata-editor\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </ng-container>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (isModification ? '@pry.action.editMetadata' : '@pry.action.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\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.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryMetadataEditorCssComponent, selector: "pry-metadata-editor-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
110
110
|
}
|
|
111
111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryMetadataEditorComponent, decorators: [{
|
|
112
112
|
type: Component,
|
|
@@ -89,7 +89,7 @@ export class PrySchemePickerComponent {
|
|
|
89
89
|
useExisting: forwardRef(() => PrySchemePickerComponent),
|
|
90
90
|
multi: true
|
|
91
91
|
}
|
|
92
|
-
], ngImport: i0, template: "<div class=\"m-color-scheme\">\n <label class=\"a-label\" for=\"scheme\">{{ '@pry.widget.colorScheme' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeColorScheme($event)\"\n [ngModel]=\"scheme$ | async\"\n [items]=\"schemes$ | async\"\n id=\"scheme\"\n bindValue=\"id\"\n bindLabel=\"label\"\n ></pry-select>\n</div>\n\n<div class=\"m-color-scheme__display\">\n <div class=\"m-color-scheme__display__item\" *ngFor=\"let colorScheme of schemeColors$ | async; let i = index\">\n <pry-color-picker [ngModel]=\"colorScheme\" (ngModelChange)=\"modifyColorScheme($event, i)\"></pry-color-picker>\n <button\n (click)=\"removeColorFromScheme(i)\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.widget.removeColor' | i18n }}\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.widget.removeColor' | i18n }}</span>\n <pry-icon iconSvg=\"trash\"></pry-icon>\n </button>\n </div>\n <button\n (click)=\"addColorToScheme()\"\n class=\"a-btn a-btn--primary a-btn--icon-only\"\n title=\"{{ '@pry.widget.addColor' | i18n }}\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.widget.addColor' | i18n }}</span>\n <pry-icon iconSvg=\"add\"></pry-icon>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i5.PryColorPickerComponent, selector: "pry-color-picker" }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
92
|
+
], ngImport: i0, template: "<div class=\"m-color-scheme\">\n <label class=\"a-label\" for=\"scheme\">{{ '@pry.widget.colorScheme' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeColorScheme($event)\"\n [ngModel]=\"scheme$ | async\"\n [items]=\"schemes$ | async\"\n id=\"scheme\"\n bindValue=\"id\"\n bindLabel=\"label\"\n ></pry-select>\n</div>\n\n<div class=\"m-color-scheme__display\">\n <div class=\"m-color-scheme__display__item\" *ngFor=\"let colorScheme of schemeColors$ | async; let i = index\">\n <pry-color-picker [ngModel]=\"colorScheme\" (ngModelChange)=\"modifyColorScheme($event, i)\"></pry-color-picker>\n <button\n (click)=\"removeColorFromScheme(i)\"\n class=\"a-btn a-btn--icon-only\"\n title=\"{{ '@pry.widget.removeColor' | i18n }}\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.widget.removeColor' | i18n }}</span>\n <pry-icon iconSvg=\"trash\"></pry-icon>\n </button>\n </div>\n <button\n (click)=\"addColorToScheme()\"\n class=\"a-btn a-btn--primary a-btn--icon-only\"\n title=\"{{ '@pry.widget.addColor' | i18n }}\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.widget.addColor' | i18n }}</span>\n <pry-icon iconSvg=\"add\"></pry-icon>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i5.PryColorPickerComponent, selector: "pry-color-picker" }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
93
93
|
}
|
|
94
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PrySchemePickerComponent, decorators: [{
|
|
95
95
|
type: Component,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter } from '@angular/core';
|
|
2
2
|
import { BaseFilterComponent, SearchActions, SearchSelectors } from '@provoly/dashboard';
|
|
3
3
|
import { BehaviorSubject, catchError, combineLatest, debounceTime, distinctUntilChanged, map, of, skipUntil, startWith, Subject, switchMap } from 'rxjs';
|
|
4
4
|
import equal from 'fast-deep-equal/es6';
|
|
@@ -16,9 +16,14 @@ export class AutocompleteComponent extends BaseFilterComponent {
|
|
|
16
16
|
this.search$ = new BehaviorSubject('');
|
|
17
17
|
this.loader = false;
|
|
18
18
|
this.preventInitCall$ = new Subject();
|
|
19
|
+
this.possibleFilterValues = [];
|
|
20
|
+
this.items$ = new Subject();
|
|
21
|
+
this.selectClicked = new EventEmitter();
|
|
19
22
|
this.type = 'autocomplete';
|
|
20
23
|
}
|
|
21
24
|
ngOnInit() {
|
|
25
|
+
this.possibleFilterValues$ = this.store.select(SearchSelectors.possibleFilterValues(this.filter?.id));
|
|
26
|
+
this.subscriptions.add(this.possibleFilterValues$.subscribe((values) => (this.possibleFilterValues = values)));
|
|
22
27
|
super.ngOnInit();
|
|
23
28
|
if (this.filter?.attributes) {
|
|
24
29
|
this.store.dispatch(SearchActions.getPossibleFilterValues({
|
|
@@ -30,6 +35,7 @@ export class AutocompleteComponent extends BaseFilterComponent {
|
|
|
30
35
|
this.autocomplete$ = this.search$.pipe(distinctUntilChanged((p, v) => equal(p, v)), skipUntil(this.preventInitCall$), debounceTime(500), switchMap((search) => {
|
|
31
36
|
if (!!search && search.length > 1) {
|
|
32
37
|
this.loader = true;
|
|
38
|
+
this.items$.next([]);
|
|
33
39
|
return this.searchService.autocomplete(this.filter?.attributes, search, this.filter?.limit).pipe(tap(() => (this.loader = false)), catchError((err) => {
|
|
34
40
|
this.loader = false;
|
|
35
41
|
console.error('Autocomplete failed', err);
|
|
@@ -39,10 +45,10 @@ export class AutocompleteComponent extends BaseFilterComponent {
|
|
|
39
45
|
return of([]);
|
|
40
46
|
}));
|
|
41
47
|
setTimeout(() => this.preventInitCall$.next(), 200);
|
|
42
|
-
this.
|
|
43
|
-
|
|
44
|
-
this.
|
|
45
|
-
|
|
48
|
+
this.subscriptions.add(combineLatest([this.possibleFilterValues$, this.autocomplete$.pipe(startWith([]))])
|
|
49
|
+
.pipe(map(([possibleValues, autocomplete]) => (autocomplete.length > 0 ? autocomplete : possibleValues)))
|
|
50
|
+
.subscribe((values) => this.items$.next(values)));
|
|
51
|
+
this.selectClicked.subscribe((_) => this.items$.next(this.possibleFilterValues));
|
|
46
52
|
}
|
|
47
53
|
setFilter(value) {
|
|
48
54
|
if (value !== this.filter?.value) {
|
|
@@ -58,10 +64,10 @@ export class AutocompleteComponent extends BaseFilterComponent {
|
|
|
58
64
|
this.search$.next('');
|
|
59
65
|
}
|
|
60
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i1.Store }, { token: i2.SearchService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
61
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AutocompleteComponent, selector: "pry-autocomplete", usesInheritance: true, ngImport: i0, template: "<pry-autocomplete-css></pry-autocomplete-css>\n<div\n class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\"\n *ngIf=\"filter\"\n (keyup)=\"updateSearch($event)\"\n #ref\n>\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <pry-select\n [id]=\"filter.name\"\n [items]=\"items$ | async\"\n [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n (blur)=\"updateSearch($event)\"\n [elementRef]=\"ref\"\n (cleared)=\"clear()\"\n [loading]=\"loader\"\n ></pry-select>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i5.PryAutocompleteCssComponent, selector: "pry-autocomplete-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AutocompleteComponent, selector: "pry-autocomplete", usesInheritance: true, ngImport: i0, template: "<pry-autocomplete-css></pry-autocomplete-css>\n<div\n class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\"\n *ngIf=\"filter\"\n (keyup)=\"updateSearch($event)\"\n #ref\n>\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <pry-select\n [id]=\"filter.name\"\n [items]=\"items$ | async\"\n [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n aria-labelledby=\"item-label\"\n (blur)=\"updateSearch($event)\"\n [elementRef]=\"ref\"\n (cleared)=\"clear()\"\n [loading]=\"loader\"\n (click)=\"selectClicked.emit()\"\n ></pry-select>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i5.PryAutocompleteCssComponent, selector: "pry-autocomplete-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
62
68
|
}
|
|
63
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
64
70
|
type: Component,
|
|
65
|
-
args: [{ selector: 'pry-autocomplete', template: "<pry-autocomplete-css></pry-autocomplete-css>\n<div\n class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\"\n *ngIf=\"filter\"\n (keyup)=\"updateSearch($event)\"\n #ref\n>\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <pry-select\n [id]=\"filter.name\"\n [items]=\"items$ | async\"\n [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n (blur)=\"updateSearch($event)\"\n [elementRef]=\"ref\"\n (cleared)=\"clear()\"\n [loading]=\"loader\"\n ></pry-select>\n</div>\n" }]
|
|
71
|
+
args: [{ selector: 'pry-autocomplete', template: "<pry-autocomplete-css></pry-autocomplete-css>\n<div\n class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\"\n *ngIf=\"filter\"\n (keyup)=\"updateSearch($event)\"\n #ref\n>\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <pry-select\n [id]=\"filter.name\"\n [items]=\"items$ | async\"\n [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n [externalAutocompleteService]=\"true\"\n aria-labelledby=\"item-label\"\n (blur)=\"updateSearch($event)\"\n [elementRef]=\"ref\"\n (cleared)=\"clear()\"\n [loading]=\"loader\"\n (click)=\"selectClicked.emit()\"\n ></pry-select>\n</div>\n" }]
|
|
66
72
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.SearchService }] });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2ZpbHRlcnMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9maWx0ZXJzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQWlCLE1BQU0sb0JBQW9CLENBQUM7QUFDeEcsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsR0FBRyxFQUVILEVBQUUsRUFDRixTQUFTLEVBQ1QsU0FBUyxFQUNULE9BQU8sRUFDUCxTQUFTLEVBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFPckMsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQU81RCxZQUFZLEtBQVksRUFBVSxhQUE0QjtRQUM1RCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEbUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFOOUQsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUtyQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lB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QUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQWhFVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwrRUN6QmxDLDJxQkFzQkE7OzJGREdhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJDb21wb25lbnQsIFNlYXJjaEFjdGlvbnMsIFNlYXJjaFNlbGVjdG9ycywgU2VhcmNoU2VydmljZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNhdGNoRXJyb3IsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHNraXBVbnRpbCxcbiAgc3RhcnRXaXRoLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXBcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzZWFyY2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgYXV0b2NvbXBsZXRlJD86IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBsb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJldmVudEluaXRDYWxsJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGl0ZW1zJCE6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMudHlwZSA9ICdhdXRvY29tcGxldGUnO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBpZiAodGhpcy5maWx0ZXI/LmF0dHJpYnV0ZXMpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIFNlYXJjaEFjdGlvbnMuZ2V0UG9zc2libGVGaWx0ZXJWYWx1ZXMoe1xuICAgICAgICAgIGZpbHRlcklkOiB0aGlzLmZpbHRlcj8uaWQgPz8gJycsXG4gICAgICAgICAgYXR0cmlidXRlczogdGhpcy5maWx0ZXI/LmF0dHJpYnV0ZXMgYXMgT21pdDxBdHRyaWJ1dGUsICdjdXN0b21JZCc+W11cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWFyY2gkLm5leHQoYCR7dGhpcy5fdmFsdWV9YCk7XG4gICAgdGhpcy5hdXRvY29tcGxldGUkID0gdGhpcy5zZWFyY2gkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocCwgdikgPT4gZXF1YWwocCwgdikpLFxuICAgICAgc2tpcFVudGlsKHRoaXMucHJldmVudEluaXRDYWxsJCksXG4gICAgICBkZWJvdW5jZVRpbWUoNTAwKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VhcmNoKSA9PiB7XG4gICAgICAgIGlmICghIXNlYXJjaCAmJiBzZWFyY2gubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hTZXJ2aWNlLmF1dG9jb21wbGV0ZSh0aGlzLmZpbHRlcj8uYXR0cmlidXRlcywgc2VhcmNoLCB0aGlzLmZpbHRlcj8ubGltaXQpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4gKHRoaXMubG9hZGVyID0gZmFsc2UpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdBdXRvY29tcGxldGUgZmFpbGVkJywgZXJyKTtcbiAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZihbXSBhcyBzdHJpbmdbXSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnByZXZlbnRJbml0Q2FsbCQubmV4dCgpLCAyMDApO1xuICAgIHRoaXMuaXRlbXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChTZWFyY2hTZWxlY3RvcnMucG9zc2libGVGaWx0ZXJWYWx1ZXModGhpcy5maWx0ZXI/LmlkKSksXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZSQucGlwZShzdGFydFdpdGgoW10gYXMgc3RyaW5nW10pKVxuICAgIF0pLnBpcGUobWFwKChbcG9zc2libGVWYWx1ZXMsIGF1dG9jb21wbGV0ZV0pID0+IChhdXRvY29tcGxldGUubGVuZ3RoID4gMCA/IGF1dG9jb21wbGV0ZSA6IHBvc3NpYmxlVmFsdWVzKSkpO1xuICB9XG5cbiAgc2V0RmlsdGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuZmlsdGVyPy52YWx1ZSkge1xuICAgICAgc3VwZXIudXBkYXRlRmlsdGVyKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWFyY2goJGV2ZW50PzogRXZlbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgdmFsdWUgPSAkZXZlbnQgPyAkZXZlbnQudGFyZ2V0IS52YWx1ZSA6ICcnO1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KCcnKTtcbiAgfVxufVxuIiwiPHByeS1hdXRvY29tcGxldGUtY3NzPjwvcHJ5LWF1dG9jb21wbGV0ZS1jc3M+XG48ZGl2XG4gIGNsYXNzPVwibS1maWx0ZXJfX2lucHV0LXdyYXBwZXIgbS1maWx0ZXJfX2lucHV0LXdyYXBwZXItLWRyb3Bkb3duXCJcbiAgKm5nSWY9XCJmaWx0ZXJcIlxuICAoa2V5dXApPVwidXBkYXRlU2VhcmNoKCRldmVudClcIlxuICAjcmVmXG4+XG4gIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgbS1maWx0ZXJfX2xhYmVsXCIgZm9yPVwie3sgZmlsdGVyLm5hbWUgfX1cIj57eyBmaWx0ZXIubmFtZSB9fSZuYnNwOzombmJzcDs8L2xhYmVsPlxuICA8cHJ5LXNlbGVjdFxuICAgIFtpZF09XCJmaWx0ZXIubmFtZVwiXG4gICAgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcbiAgICBbbmdNb2RlbF09XCJmaWx0ZXIudmFsdWVcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldEZpbHRlcigkZXZlbnQpXCJcbiAgICBbY2xlYXJhYmxlXT1cInRydWVcIlxuICAgIFthdXRvY29tcGxldGVdPVwidHJ1ZVwiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiaXRlbS1sYWJlbFwiXG4gICAgKGJsdXIpPVwidXBkYXRlU2VhcmNoKCRldmVudClcIlxuICAgIFtlbGVtZW50UmVmXT1cInJlZlwiXG4gICAgKGNsZWFyZWQpPVwiY2xlYXIoKVwiXG4gICAgW2xvYWRpbmddPVwibG9hZGVyXCJcbiAgPjwvcHJ5LXNlbGVjdD5cbjwvZGl2PlxuIl19
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2ZpbHRlcnMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9maWx0ZXJzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ3hHLE9BQU8sRUFDTCxlQUFlLEVBQ2YsVUFBVSxFQUNWLGFBQWEsRUFDYixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULFNBQVMsRUFDVCxPQUFPLEVBQ1AsU0FBUyxFQUNWLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxLQUFLLE1BQU0scUJBQXFCLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBT3JDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxtQkFBbUI7SUFVNUQsWUFDRSxLQUFZLEVBQ0osYUFBNEI7UUFFcEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRkwsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFYdEMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV2Qyx5QkFBb0IsR0FBYSxFQUFFLENBQUM7UUFDcEMsV0FBTSxH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QUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2FBQ3hHLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN6QixhQUFhO1FBQ2IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQzs4R0E5RVUscUJBQXFCO2tHQUFyQixxQkFBcUIsK0VDekJsQyw2dkJBd0JBOzsyRkRDYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJDb21wb25lbnQsIFNlYXJjaEFjdGlvbnMsIFNlYXJjaFNlbGVjdG9ycywgU2VhcmNoU2VydmljZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNhdGNoRXJyb3IsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHNraXBVbnRpbCxcbiAgc3RhcnRXaXRoLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXBcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzZWFyY2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgYXV0b2NvbXBsZXRlJD86IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBsb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJldmVudEluaXRDYWxsJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHBvc3NpYmxlRmlsdGVyVmFsdWVzJCE6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBwb3NzaWJsZUZpbHRlclZhbHVlczogc3RyaW5nW10gPSBbXTtcbiAgaXRlbXMkID0gbmV3IFN1YmplY3Q8c3RyaW5nW10+KCk7XG4gIHNlbGVjdENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZVxuICApIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gICAgdGhpcy50eXBlID0gJ2F1dG9jb21wbGV0ZSc7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBvc3NpYmxlRmlsdGVyVmFsdWVzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KFNlYXJjaFNlbGVjdG9ycy5wb3NzaWJsZUZpbHRlclZhbHVlcyh0aGlzLmZpbHRlcj8uaWQpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMucG9zc2libGVGaWx0ZXJWYWx1ZXMkLnN1YnNjcmliZSgodmFsdWVzKSA9PiAodGhpcy5wb3NzaWJsZUZpbHRlclZhbHVlcyA9IHZhbHVlcykpKTtcblxuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgaWYgKHRoaXMuZmlsdGVyPy5hdHRyaWJ1dGVzKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBTZWFyY2hBY3Rpb25zLmdldFBvc3NpYmxlRmlsdGVyVmFsdWVzKHtcbiAgICAgICAgICBmaWx0ZXJJZDogdGhpcy5maWx0ZXI/LmlkID8/ICcnLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuZmlsdGVyPy5hdHRyaWJ1dGVzIGFzIE9taXQ8QXR0cmlidXRlLCAnY3VzdG9tSWQnPltdXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuc2VhcmNoJC5uZXh0KGAke3RoaXMuX3ZhbHVlfWApO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlJCA9IHRoaXMuc2VhcmNoJC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHAsIHYpID0+IGVxdWFsKHAsIHYpKSxcbiAgICAgIHNraXBVbnRpbCh0aGlzLnByZXZlbnRJbml0Q2FsbCQpLFxuICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICBzd2l0Y2hNYXAoKHNlYXJjaCkgPT4ge1xuICAgICAgICBpZiAoISFzZWFyY2ggJiYgc2VhcmNoLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5pdGVtcyQubmV4dChbXSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoU2VydmljZS5hdXRvY29tcGxldGUodGhpcy5maWx0ZXI/LmF0dHJpYnV0ZXMsIHNlYXJjaCwgdGhpcy5maWx0ZXI/LmxpbWl0KS5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+ICh0aGlzLmxvYWRlciA9IGZhbHNlKSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignQXV0b2NvbXBsZXRlIGZhaWxlZCcsIGVycik7XG4gICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2YoW10gYXMgc3RyaW5nW10pO1xuICAgICAgfSlcbiAgICApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcmV2ZW50SW5pdENhbGwkLm5leHQoKSwgMjAwKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnBvc3NpYmxlRmlsdGVyVmFsdWVzJCwgdGhpcy5hdXRvY29tcGxldGUkLnBpcGUoc3RhcnRXaXRoKFtdIGFzIHN0cmluZ1tdKSldKVxuICAgICAgICAucGlwZShtYXAoKFtwb3NzaWJsZVZhbHVlcywgYXV0b2NvbXBsZXRlXSkgPT4gKGF1dG9jb21wbGV0ZS5sZW5ndGggPiAwID8gYXV0b2NvbXBsZXRlIDogcG9zc2libGVWYWx1ZXMpKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWVzKSA9PiB0aGlzLml0ZW1zJC5uZXh0KHZhbHVlcykpXG4gICAgKTtcblxuICAgIHRoaXMuc2VsZWN0Q2xpY2tlZC5zdWJzY3JpYmUoKF8pID0+IHRoaXMuaXRlbXMkLm5leHQodGhpcy5wb3NzaWJsZUZpbHRlclZhbHVlcykpO1xuICB9XG5cbiAgc2V0RmlsdGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuZmlsdGVyPy52YWx1ZSkge1xuICAgICAgc3VwZXIudXBkYXRlRmlsdGVyKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWFyY2goJGV2ZW50PzogRXZlbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgdmFsdWUgPSAkZXZlbnQgPyAkZXZlbnQudGFyZ2V0IS52YWx1ZSA6ICcnO1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuc2VhcmNoJC5uZXh0KCcnKTtcbiAgfVxufVxuIiwiPHByeS1hdXRvY29tcGxldGUtY3NzPjwvcHJ5LWF1dG9jb21wbGV0ZS1jc3M+XG48ZGl2XG4gIGNsYXNzPVwibS1maWx0ZXJfX2lucHV0LXdyYXBwZXIgbS1maWx0ZXJfX2lucHV0LXdyYXBwZXItLWRyb3Bkb3duXCJcbiAgKm5nSWY9XCJmaWx0ZXJcIlxuICAoa2V5dXApPVwidXBkYXRlU2VhcmNoKCRldmVudClcIlxuICAjcmVmXG4+XG4gIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgbS1maWx0ZXJfX2xhYmVsXCIgZm9yPVwie3sgZmlsdGVyLm5hbWUgfX1cIj57eyBmaWx0ZXIubmFtZSB9fSZuYnNwOzombmJzcDs8L2xhYmVsPlxuICA8cHJ5LXNlbGVjdFxuICAgIFtpZF09XCJmaWx0ZXIubmFtZVwiXG4gICAgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcbiAgICBbbmdNb2RlbF09XCJmaWx0ZXIudmFsdWVcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldEZpbHRlcigkZXZlbnQpXCJcbiAgICBbY2xlYXJhYmxlXT1cInRydWVcIlxuICAgIFthdXRvY29tcGxldGVdPVwidHJ1ZVwiXG4gICAgW2V4dGVybmFsQXV0b2NvbXBsZXRlU2VydmljZV09XCJ0cnVlXCJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJpdGVtLWxhYmVsXCJcbiAgICAoYmx1cik9XCJ1cGRhdGVTZWFyY2goJGV2ZW50KVwiXG4gICAgW2VsZW1lbnRSZWZdPVwicmVmXCJcbiAgICAoY2xlYXJlZCk9XCJjbGVhcigpXCJcbiAgICBbbG9hZGluZ109XCJsb2FkZXJcIlxuICAgIChjbGljayk9XCJzZWxlY3RDbGlja2VkLmVtaXQoKVwiXG4gID48L3ByeS1zZWxlY3Q+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -23,7 +23,7 @@ export class ListFilterComponent extends BaseFilterComponent {
|
|
|
23
23
|
super.updateFilter(value);
|
|
24
24
|
}
|
|
25
25
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ListFilterComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ListFilterComponent, selector: "pry-list-filter", usesInheritance: true, ngImport: i0, template: "<pry-list-filter-css></pry-list-filter-css>\n<div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\" *ngIf=\"filter\">\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <pry-select\n [id]=\"filter.name\"\n [items]=\"possibleValues\"\n [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i5.PryListFilterCssComponent, selector: "pry-list-filter-css" }] }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: ListFilterComponent, selector: "pry-list-filter", usesInheritance: true, ngImport: i0, template: "<pry-list-filter-css></pry-list-filter-css>\n<div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\" *ngIf=\"filter\">\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n <pry-select\n [id]=\"filter.name\"\n [items]=\"possibleValues\"\n [ngModel]=\"filter.value\"\n (ngModelChange)=\"setFilter($event)\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i5.PryListFilterCssComponent, selector: "pry-list-filter-css" }] }); }
|
|
27
27
|
}
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ListFilterComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
@@ -79,7 +79,7 @@ export class PryImportComponent {
|
|
|
79
79
|
this.selectedFileType = fileType;
|
|
80
80
|
}
|
|
81
81
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryImportComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryImportComponent, selector: "pry-import", ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"o-import__container\">\n <div class=\"o-import__container__input\">\n <div class=\"m-form-label-field\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n id=\"fileType\"\n [items]=\"fileTypes\"\n [ngModel]=\"fileTypes[0].value\"\n [disabled]=\"false\"\n (ngModelChange)=\"onFileTypeChange($event)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + selectedFileType | i18n }}\n </label>\n <div class=\"o-file-input\">\n <div *ngIf=\"file\" class=\"o-import__container__input__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.name }}</h3>\n <span>{{ getFileSize(file.size) }}</span>\n </div>\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileExtension[selectedFileType]\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [(ngModel)]=\"datasetSelected\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n </div>\n <pry-checkbox [(ngModel)]=\"normalizeGeoShape\">{{ '@pry.import.normalize' | i18n }}</pry-checkbox>\n <div class=\"o-import__container__input__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"submit()\" [disabled]=\"isSubmitDisabled()\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"showMessage\">\n <div class=\"o-import__result\">\n <h1>\n {{\n '@pry.import.consultDataset'\n | i18n\n : { parameter: datasetSelected ?? '' | translateId : { type: 'datasource', output: 'name' } | async }\n }}\n </h1>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { 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.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i6.PryImportCssComponent, selector: "pry-import-css" }, { kind: "pipe", type: i2.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
82
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryImportComponent, selector: "pry-import", ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <div class=\"o-import__container\">\n <div class=\"o-import__container__input\">\n <div class=\"m-form-label-field\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n id=\"fileType\"\n [items]=\"fileTypes\"\n [ngModel]=\"fileTypes[0].value\"\n [disabled]=\"false\"\n (ngModelChange)=\"onFileTypeChange($event)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + selectedFileType | i18n }}\n </label>\n <div class=\"o-file-input\">\n <div *ngIf=\"file\" class=\"o-import__container__input__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.name }}</h3>\n <span>{{ getFileSize(file.size) }}</span>\n </div>\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileExtension[selectedFileType]\"\n mode=\"files\"\n (uploadedFile)=\"uploadedChange($event)\"\n labelTranslate=\"@pry.import.selectFile\"\n ></pry-upload>\n </div>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.datasetImport' | i18n }}</label>\n <pry-select\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [(ngModel)]=\"datasetSelected\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></pry-select>\n </div>\n <pry-checkbox [(ngModel)]=\"normalizeGeoShape\">{{ '@pry.import.normalize' | i18n }}</pry-checkbox>\n <div class=\"o-import__container__input__actions\">\n <button class=\"a-btn a-btn--primary\" (click)=\"submit()\" [disabled]=\"isSubmitDisabled()\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </div>\n <ng-container *ngIf=\"showMessage\">\n <div class=\"o-import__result\">\n <h1>\n {{\n '@pry.import.consultDataset'\n | i18n\n : { parameter: datasetSelected ?? '' | translateId : { type: 'datasource', output: 'name' } | async }\n }}\n </h1>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i2.PryUploadComponent, selector: "pry-upload", inputs: ["mode", "accept", "labelTranslate"], outputs: ["uploaded", "uploadedFile"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { 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.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "component", type: i6.PryImportCssComponent, selector: "pry-import-css" }, { kind: "pipe", type: i2.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
83
83
|
}
|
|
84
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryImportComponent, decorators: [{
|
|
85
85
|
type: Component,
|
|
@@ -33,7 +33,7 @@ export class SelectA11yService {
|
|
|
33
33
|
this.toggle();
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
if (!open && searchValue?.length >
|
|
36
|
+
if (!open && searchValue?.length > 0 && (event.key.length === 1 || event.key === 'Backspace')) {
|
|
37
37
|
this.toggle();
|
|
38
38
|
}
|
|
39
39
|
else if (open && event.key === 'Enter') {
|
|
@@ -90,4 +90,4 @@ export class SelectA11yService {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWExMXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC1hMTF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQUE5QjtRQUNZLFdBQU0sR0FBRyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUF5RzVDLENBQUM7SUF4R1EsU0FBUyxDQUFDLGNBQXdDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBbUIsRUFBRSxZQUFxQixFQUFFLFdBQXVCLEVBQUUsV0FBdUI7UUFDeEcsV0FBVyxFQUFFLENBQUM7UUFDZCxRQUFRLE1BQU0sRUFBRSxDQUFDO1lBQ2YsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsQ0FBQztnQkFDRCxNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksWUFBWSxFQUFFLENBQUM7b0JBQ2pCLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixDQUFDO2dCQUNELE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFvQixFQUFFLFlBQXFCO1FBQ3pELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCwwQkFBMEIsQ0FDeEIs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b250ZW50IjpbImltcG9ydCB7IEVtYmVkZGVkVmlld1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RBMTF5U2VydmljZSB7XG4gIHByb3RlY3RlZCB0b2dnbGUgPSAoLi4uYXJnczogYW55W10pID0+IHt9O1xuICBwdWJsaWMgc2V0VG9nZ2xlKHRvZ2dsZUNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpIHtcbiAgICB0aGlzLnRvZ2dsZSA9IHRvZ2dsZUNhbGxiYWNrO1xuICB9XG5cbiAgb25Gb2N1c0NoYW5nZShvcmlnaW46IEZvY3VzT3JpZ2luLCBhdXRvY29tcGxldGU6IGJvb2xlYW4sIHRvZ2dsZUZvY3VzOiAoKSA9PiB2b2lkLCBmb2N1c1NlbGVjdDogKCkgPT4gdm9pZCkge1xuICAgIHRvZ2dsZUZvY3VzKCk7XG4gICAgc3dpdGNoIChvcmlnaW4pIHtcbiAgICAgIGNhc2UgJ21vdXNlJzpcbiAgICAgICAgaWYgKCFhdXRvY29tcGxldGUpIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2tleWJvYXJkJzpcbiAgICAgICAgaWYgKGF1dG9jb21wbGV0ZSkge1xuICAgICAgICAgIGZvY3VzU2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgb25LZXlkb3duU2VsZWN0KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBhdXRvY29tcGxldGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIWF1dG9jb21wbGV0ZSkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25LZXlkb3duQXV0b2NvbXBsZXRlSW5wdXQoXG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnQsXG4gICAgb3BlbjogYm9vbGVhbixcbiAgICBzZWFyY2hWYWx1ZTogc3RyaW5nLFxuICAgIG9wdGlvbnNNb2RhbFJlZj86IEVtYmVkZGVkVmlld1JlZjxhbnk+XG4gICkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICBpZiAob3BlbikgdGhpcy50b2dnbGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIW9wZW4gJiYgc2VhcmNoVmFsdWU/Lmxlbmd0aCA+IDAgJiYgKGV2ZW50LmtleS5sZW5ndGggPT09IDEgfHwgZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykpIHtcbiAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgfSBlbHNlIGlmIChvcGVuICYmIGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICB9IGVsc2UgaWYgKG9wZW4gJiYgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgb3B0aW9uc01vZGFsUmVmPy5yb290Tm9kZXNbMF0ucXVlcnlTZWxlY3RvcignW2FyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiXScpLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb25LZXlkb3duT3B0aW9uKFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICAgIG9wdGlvbkRpdlJlZjogSFRNTERpdkVsZW1lbnQsXG4gICAgZmlyc3Q6IGJvb2xlYW4sXG4gICAgbGFzdDogYm9vbGVhbixcbiAgICBhdXRvY29tcGxldGU6IGJvb2xlYW4sXG4gICAgc2VsZWN0RWxlbWVudDogSFRNTERpdkVsZW1lbnQsXG4gICAgc2VsZWN0OiAoKSA9PiB2b2lkXG4gICkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICBjYXNlICdTcGFjZSc6XG4gICAgICBjYXNlICcgJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2VsZWN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGlmICghZmlyc3QpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIChvcHRpb25EaXZSZWYucHJldmlvdXNFbGVtZW50U2libGluZyBhcyBIVE1MRGl2RWxlbWVudCkuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlyc3QgJiYgYXV0b2NvbXBsZXRlKSB7XG4gICAgICAgICAgc2VsZWN0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgaWYgKCFsYXN0KSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAob3B0aW9uRGl2UmVmLm5leHRFbGVtZW50U2libGluZyBhcyBIVE1MRGl2RWxlbWVudCkuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGFzdCAmJiBhdXRvY29tcGxldGUpIHtcbiAgICAgICAgICAvLyB3aXRoIGF1dG9jb21wbGV0ZT10cnVlLCBmb2N1cyBpcyBub3QgdHJhcHBlZCwgc28gcHJldmVudCB0YWJiaW5nIG91dCBvZiBsaXN0XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIGlmIChsYXN0ICYmIGF1dG9jb21wbGV0ZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzSW5pdGlhbFNlbGVjdGlvbihhdXRvY29tcGxldGU6IGJvb2xlYW4sIG9wdGlvbnNNb2RhbFJlZj86IEVtYmVkZGVkVmlld1JlZjxhbnk+KSB7XG4gICAgaWYgKCFhdXRvY29tcGxldGUpIHtcbiAgICAgIGxldCBzZWxlY3RlZE9wdGlvbjogSFRNTERpdkVsZW1lbnQgPVxuICAgICAgICBvcHRpb25zTW9kYWxSZWY/LnJvb3ROb2Rlc1swXS5xdWVyeVNlbGVjdG9yKCdbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0nKSA/P1xuICAgICAgICBvcHRpb25zTW9kYWxSZWY/LnJvb3ROb2Rlc1swXS5xdWVyeVNlbGVjdG9yKCdbYXJpYS1zZWxlY3RlZD1cImZhbHNlXCJdJyk7XG4gICAgICBzZWxlY3RlZE9wdGlvbj8uc2V0QXR0cmlidXRlKCdjZGtGb2N1c0luaXRpYWwnLCAnJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|