@provoly/dashboard 1.4.57 → 1.4.59
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/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 +1 -1
- package/esm2022/filters/list/list-filter.component.mjs +1 -1
- package/esm2022/import/components/form/import-form.component.mjs +1 -1
- package/esm2022/import/components/list/import-list.component.mjs +1 -1
- package/esm2022/lib/core/components/overlay/dialog.service.mjs +4 -2
- package/esm2022/lib/core/components/select/select.component.mjs +8 -4
- package/esm2022/lib/core/components/share/access-rights-share/access-rights-share.component.mjs +1 -1
- package/esm2022/lib/core/components/share/legacy-share/share.component.mjs +1 -1
- package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +1 -1
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +22 -12
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.mjs +1 -1
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +90 -19
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -2
- package/esm2022/lib/dashboard/store/manifest.service.mjs +5 -3
- 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/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/toolbox/shared/presentation-form/presentation-form.component.mjs +1 -1
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +1 -1
- package/esm2022/widgets/widget-analytic/component/widget-analytic.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/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +5 -5
- 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 +1 -1
- 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 +2 -2
- 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-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 +2 -2
- 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-analytic.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.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-widgets-widget-vega.mjs +4 -4
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +206 -118
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/overlay/dialog.service.d.ts +2 -0
- package/lib/core/components/select/select.component.d.ts +3 -2
- package/lib/dashboard/components/dashboard.component.d.ts +8 -1
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +18 -1
- package/lib/dashboard/store/dashboard.selectors.d.ts +17 -0
- package/lib/dashboard/store/manifest.service.d.ts +11 -2
- package/package.json +37 -37
- package/styles/components/_o-widget.scss +28 -0
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: "18.2.7", 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: "17.0.0", version: "18.2.7", 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 @if (isSubmitted && metaForm.get('name')?.invalid) {\n <label\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n @if (metaForm.get('name')?.hasError('same-name')) {\n <span>{{ '@pry.admin.exists' | i18n }}</span>\n }\n @if (metaForm.get('name')?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n @if (metaForm.get('name')?.hasError('pattern')) {\n <span>{{ '@pry.admin.classes.formatName' | i18n }}</span>\n }\n </label>\n }\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 [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n @if (metaForm.value.type === 'LIST') {\n @if (metadataList.controls.length > 0) {\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n @for (control of metadataList.controls; track control; let i = $index) {\n <div class=\"o-datas-list metadata-list\">\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 @if (isSubmitted && control.invalid) {\n <label\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 }\n </div>\n <div class=\"m-btn-group m-btn-group--input-actions\">\n @if (i === metadataList.controls.length - 1) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\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 }\n @if (i !== 0 && !metadataList.controls[i].disabled) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\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 }\n </div>\n </div>\n </div>\n }\n </fieldset>\n </div>\n }\n }\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: "component", type: i4.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: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", 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 @if (isSubmitted && metaForm.get('name')?.invalid) {\n <label\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n @if (metaForm.get('name')?.hasError('same-name')) {\n <span>{{ '@pry.admin.exists' | i18n }}</span>\n }\n @if (metaForm.get('name')?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n @if (metaForm.get('name')?.hasError('pattern')) {\n <span>{{ '@pry.admin.classes.formatName' | i18n }}</span>\n }\n </label>\n }\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 [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n @if (metaForm.value.type === 'LIST') {\n @if (metadataList.controls.length > 0) {\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n @for (control of metadataList.controls; track control; let i = $index) {\n <div class=\"o-datas-list metadata-list\">\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 @if (isSubmitted && control.invalid) {\n <label\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 }\n </div>\n <div class=\"m-btn-group m-btn-group--input-actions\">\n @if (i === metadataList.controls.length - 1) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\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 }\n @if (i !== 0 && !metadataList.controls[i].disabled) {\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\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 }\n </div>\n </div>\n </div>\n }\n </fieldset>\n </div>\n }\n }\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: "component", type: i4.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: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
114
114
|
}
|
|
115
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FormMetadataComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
@@ -118,7 +118,7 @@ export class AdminFormMetadataRulesComponent {
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AdminFormMetadataRulesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
121
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", 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 @if (isSubmitted && form.get('name')?.invalid) {\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\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 @if (isSameName) {\n <label class=\"a-label a-label--help -error\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n }\n @if (isSameRules) {\n <label class=\"a-label a-label--help -error\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n }\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: 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: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
121
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", 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 @if (isSubmitted && form.get('name')?.invalid) {\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\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 @if (isSameName) {\n <label class=\"a-label a-label--help -error\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n }\n @if (isSameRules) {\n <label class=\"a-label a-label--help -error\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n }\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: 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: i4.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
122
122
|
}
|
|
123
123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AdminFormMetadataRulesComponent, decorators: [{
|
|
124
124
|
type: Component,
|
|
@@ -132,7 +132,7 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryMetadataEditorComponent, deps: [{ token: i1.Store }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
135
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", 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@for (groupedMetadatas of _metadataGroupedByDef$ | async; track groupedMetadatas.metadataDef.id) {\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__def\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ groupedMetadatas.metadataDef.name }}</span>\n <div class=\"o-tabs__panel__content__actions__buttons\">\n @if (!groupedMetadatas.metadataDef.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\">\n {{ '@pry.action.delete' | i18n }} {{ groupedMetadatas.metadataDef.name }}\n </span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(groupedMetadatas.metadataDef)\"\n ></pry-icon>\n </button>\n </ng-container>\n }\n </div>\n </div>\n <ul>\n @for (metadata of groupedMetadatas.metadata; track metadata.value; let i = $index) {\n <li class=\"o-tabs__panel__content__actions__def\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n <div class=\"o-tabs__panel__content__actions__buttons\">\n @if (!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\">\n {{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}\n </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 @if ((_type$ | async) === 'user') {\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">\n {{ '@pry.action.delete' | i18n }} {{ groupedMetadatas.metadataDef.name }}\n </span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadataValue(metadata)\"\n ></pry-icon>\n </button>\n }\n </ng-container>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n}\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 @if (isSubmitted && form.get('metadata')?.invalid) {\n <label\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n }\n </div>\n\n @if (form.value.metadata) {\n @if (form.value['metadata']['type'] === 'DATE') {\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 @if (isSubmitted && form.get('value')?.invalid) {\n <label\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 }\n </div>\n } @else {\n @if (form.value['metadata']['type'] === 'LIST') {\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 } @else {\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 @if (isSubmitted && form.get('value')?.invalid) {\n <label\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n @if (form.get('value')?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n @if (form.get('value')?.hasError('pattern')) {\n @if (form.value['metadata']['type'] === 'DOUBLE') {\n <span>\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n }\n @if (form.value['metadata']['type'] === 'INTEGER') {\n <span>\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n }\n }\n </label>\n }\n </div>\n }\n }\n }\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.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: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PryMetadataEditorCssComponent, selector: "pry-metadata-editor-css" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", 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@for (groupedMetadatas of _metadataGroupedByDef$ | async; track groupedMetadatas.metadataDef.id) {\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__def\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ groupedMetadatas.metadataDef.name }}</span>\n <div class=\"o-tabs__panel__content__actions__buttons\">\n @if (!groupedMetadatas.metadataDef.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\">\n {{ '@pry.action.delete' | i18n }} {{ groupedMetadatas.metadataDef.name }}\n </span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(groupedMetadatas.metadataDef)\"\n ></pry-icon>\n </button>\n </ng-container>\n }\n </div>\n </div>\n <ul>\n @for (metadata of groupedMetadatas.metadata; track metadata.value; let i = $index) {\n <li class=\"o-tabs__panel__content__actions__def\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n <div class=\"o-tabs__panel__content__actions__buttons\">\n @if (!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\">\n {{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}\n </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 @if ((_type$ | async) === 'user') {\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">\n {{ '@pry.action.delete' | i18n }} {{ groupedMetadatas.metadataDef.name }}\n </span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadataValue(metadata)\"\n ></pry-icon>\n </button>\n }\n </ng-container>\n }\n </div>\n </li>\n }\n </ul>\n </div>\n}\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 @if (isSubmitted && form.get('metadata')?.invalid) {\n <label\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n }\n </div>\n\n @if (form.value.metadata) {\n @if (form.value['metadata']['type'] === 'DATE') {\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 @if (isSubmitted && form.get('value')?.invalid) {\n <label\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 }\n </div>\n } @else {\n @if (form.value['metadata']['type'] === 'LIST') {\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 } @else {\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 @if (isSubmitted && form.get('value')?.invalid) {\n <label\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n @if (form.get('value')?.hasError('required')) {\n <span>{{ '@pry.admin.required' | i18n }}</span>\n }\n @if (form.get('value')?.hasError('pattern')) {\n @if (form.value['metadata']['type'] === 'DOUBLE') {\n <span>\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n }\n @if (form.value['metadata']['type'] === 'INTEGER') {\n <span>\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n }\n }\n </label>\n }\n </div>\n }\n }\n }\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.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: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PryMetadataEditorCssComponent, selector: "pry-metadata-editor-css" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
136
136
|
}
|
|
137
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryMetadataEditorComponent, decorators: [{
|
|
138
138
|
type: Component,
|
|
@@ -86,7 +86,7 @@ export class PrySchemePickerComponent {
|
|
|
86
86
|
useExisting: forwardRef(() => PrySchemePickerComponent),
|
|
87
87
|
multi: true
|
|
88
88
|
}
|
|
89
|
-
], 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 @for (colorScheme of schemeColors$ | async; track colorScheme; let i = $index) {\n <div class=\"m-color-scheme__display__item\">\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 }\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.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: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.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: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
89
|
+
], 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 @for (colorScheme of schemeColors$ | async; track colorScheme; let i = $index) {\n <div class=\"m-color-scheme__display__item\">\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 }\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.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: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.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: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
90
90
|
}
|
|
91
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PrySchemePickerComponent, decorators: [{
|
|
92
92
|
type: Component,
|
|
@@ -75,7 +75,7 @@ export class AutocompleteComponent extends BaseFilterComponent {
|
|
|
75
75
|
this.pressedEnter.next();
|
|
76
76
|
}
|
|
77
77
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i1.Store }, { token: i2.SearchService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
78
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: AutocompleteComponent, selector: "pry-autocomplete", viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-autocomplete-css></pry-autocomplete-css>\n@if (filter) {\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\" (keyup)=\"updateSearch($event)\" #ref>\n @if (filter.name) {\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n }\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 (clicked)=\"resetAutocompleteValues()\"\n [placeholder]=\"filter.placeholder ?? '' | i18n: { warn: false }\"\n (pressedEnter)=\"enterPressed($event)\"\n #select\n ></pry-select>\n </div>\n}\n", dependencies: [{ 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: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.PryAutocompleteCssComponent, selector: "pry-autocomplete-css" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
78
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: AutocompleteComponent, selector: "pry-autocomplete", viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-autocomplete-css></pry-autocomplete-css>\n@if (filter) {\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\" (keyup)=\"updateSearch($event)\" #ref>\n @if (filter.name) {\n <label class=\"a-label m-filter__label\" for=\"{{ filter.name }}\">{{ filter.name }} : </label>\n }\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 (clicked)=\"resetAutocompleteValues()\"\n [placeholder]=\"filter.placeholder ?? '' | i18n: { warn: false }\"\n (pressedEnter)=\"enterPressed($event)\"\n #select\n ></pry-select>\n </div>\n}\n", dependencies: [{ 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: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.PryAutocompleteCssComponent, selector: "pry-autocomplete-css" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
79
79
|
}
|
|
80
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
81
81
|
type: Component,
|
|
@@ -26,7 +26,7 @@ export class ListFilterComponent extends BaseFilterComponent {
|
|
|
26
26
|
this.cleared.next();
|
|
27
27
|
}
|
|
28
28
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ListFilterComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ListFilterComponent, selector: "pry-list-filter", usesInheritance: true, ngImport: i0, template: "<pry-list-filter-css></pry-list-filter-css>\n@if (filter) {\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\">\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 [placeholder]=\"filter.placeholder ?? '' | i18n: { warn: false }\"\n (cleared)=\"clear()\"\n ></pry-select>\n </div>\n}\n", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.PryListFilterCssComponent, selector: "pry-list-filter-css" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ListFilterComponent, selector: "pry-list-filter", usesInheritance: true, ngImport: i0, template: "<pry-list-filter-css></pry-list-filter-css>\n@if (filter) {\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown\">\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 [placeholder]=\"filter.placeholder ?? '' | i18n: { warn: false }\"\n (cleared)=\"clear()\"\n ></pry-select>\n </div>\n}\n", dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.PryListFilterCssComponent, selector: "pry-list-filter-css" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
30
30
|
}
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ListFilterComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
@@ -157,7 +157,7 @@ export class PryImportFormComponent extends SubscriptionnerDirective {
|
|
|
157
157
|
this.multipleImportsValue.emit(checkBoxValue);
|
|
158
158
|
}
|
|
159
159
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryImportFormComponent, deps: [{ token: i1.Store }, { token: i2.DataSourceService }, { token: i2.PrySnackbarService }, { token: i2.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryImportFormComponent, selector: "pry-import-form", outputs: { multipleImportsValue: "multipleImportsValue", formSubmitted: "formSubmitted" }, viewQueries: [{ propertyName: "message", first: true, predicate: ["message"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import u-display-flex -column\">\n <div class=\"o-import__header u-display-flex -justify-space-between\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <pry-checkbox [ngModel]=\"multipleImports\" (ngModelChange)=\"multipleImportChange($event)\">\n {{ '@pry.import.multiple' | i18n }}\n </pry-checkbox>\n </div>\n <div class=\"o-import__form-container u-display-flex\">\n <form class=\"o-import__form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n formControlName=\"fileType\"\n id=\"fileType\"\n [items]=\"Object.values(fileTypes)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + fileType.value | i18n }}\n </label>\n <p>{{ '@pry.import.warning' | i18n }}</p>\n <div class=\"o-file-input\">\n @if (file.value?.size) {\n <div class=\"o-import__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.value?.name }}</h3>\n <span>{{ getFileSize(file.value?.size ?? 0) }}</span>\n </div>\n }\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileTypes[fileType.value].extension\"\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 formControlName=\"dataset\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindLabel=\"name\"\n [autocomplete]=\"true\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox formControlName=\"normalizeGeo\" inputId=\"normalizeGeo\">{{\n '@pry.import.normalize' | i18n\n }}</pry-checkbox>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"productionDate\">{{ '@pry.dataset.version.productionDate' | i18n }}</label>\n <input\n formControlName=\"productionDate\"\n id=\"productionDate\"\n class=\"a-form-field\"\n type=\"datetime-local\"\n [max]=\"maxDate\"\n [attr.aria-invalid]=\"productionDate.invalid\"\n />\n @if (productionDate.invalid) {\n <label id=\"productionDate-error\" for=\"productionDate\" class=\"a-label a-label--help -error\">\n @if (productionDate.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n } @else if (productionDate.errors?.['dateValidator']) {\n <span>{{ '@pry.dataset.form.date' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"producer\">{{ '@pry.dataset.version.producer' | i18n }}</label>\n <input formControlName=\"producer\" id=\"producer\" class=\"a-form-field\" type=\"text\" maxlength=\"100\" />\n @if (producer.touched && producer.invalid) {\n <label id=\"producer-error\" for=\"producer\" class=\"a-label a-label--help -error\">\n @if (producer.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"additionalInformation\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\" id=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"o-import__actions u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"form.invalid\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </form>\n <div class=\"o-import__message\" [class.u-visually-hidden]=\"!showMessage\" #message>\n <span>\n {{ '@pry.import.consultDataset1' | i18n }}\n <strong>{{ dataset.value?.id ?? '' | translateId: { type: 'datasource', output: 'name' } | async }}</strong>\n {{ '@pry.import.consultDataset2' | i18n }}\n </span>\n </div>\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", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i2.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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { 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.PryTextEditorComponent, selector: "pry-text-editor", inputs: ["tabView"] }, { 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: i7.AsyncPipe, name: "async" }] }); }
|
|
160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryImportFormComponent, selector: "pry-import-form", outputs: { multipleImportsValue: "multipleImportsValue", formSubmitted: "formSubmitted" }, viewQueries: [{ propertyName: "message", first: true, predicate: ["message"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import u-display-flex -column\">\n <div class=\"o-import__header u-display-flex -justify-space-between\">\n <h1 class=\"a-h1\">{{ '@pry.import.title' | i18n }}</h1>\n <pry-checkbox [ngModel]=\"multipleImports\" (ngModelChange)=\"multipleImportChange($event)\">\n {{ '@pry.import.multiple' | i18n }}\n </pry-checkbox>\n </div>\n <div class=\"o-import__form-container u-display-flex\">\n <form class=\"o-import__form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"datasets\">{{ '@pry.import.fileType' | i18n }}</label>\n <pry-select\n formControlName=\"fileType\"\n id=\"fileType\"\n [items]=\"Object.values(fileTypes)\"\n bindValue=\"value\"\n bindLabel=\"label\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"upload_input\">\n {{ '@pry.import.uploadTitle' + fileType.value | i18n }}\n </label>\n <p>{{ '@pry.import.warning' | i18n }}</p>\n <div class=\"o-file-input\">\n @if (file.value?.size) {\n <div class=\"o-import__file\">\n <pry-icon iconSvg=\"download\"></pry-icon>\n <h3>{{ file.value?.name }}</h3>\n <span>{{ getFileSize(file.value?.size ?? 0) }}</span>\n </div>\n }\n <pry-upload\n id=\"upload_input\"\n [accept]=\"fileTypes[fileType.value].extension\"\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 formControlName=\"dataset\"\n id=\"datasets\"\n [items]=\"datasets$ | async\"\n [placeholder]=\"'@pry.import.dataset' | i18n\"\n bindLabel=\"name\"\n [autocomplete]=\"true\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <pry-checkbox formControlName=\"normalizeGeo\" inputId=\"normalizeGeo\">{{\n '@pry.import.normalize' | i18n\n }}</pry-checkbox>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"productionDate\">{{ '@pry.dataset.version.productionDate' | i18n }}</label>\n <input\n formControlName=\"productionDate\"\n id=\"productionDate\"\n class=\"a-form-field\"\n type=\"datetime-local\"\n [max]=\"maxDate\"\n [attr.aria-invalid]=\"productionDate.invalid\"\n />\n @if (productionDate.invalid) {\n <label id=\"productionDate-error\" for=\"productionDate\" class=\"a-label a-label--help -error\">\n @if (productionDate.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n } @else if (productionDate.errors?.['dateValidator']) {\n <span>{{ '@pry.dataset.form.date' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"producer\">{{ '@pry.dataset.version.producer' | i18n }}</label>\n <input formControlName=\"producer\" id=\"producer\" class=\"a-form-field\" type=\"text\" maxlength=\"100\" />\n @if (producer.touched && producer.invalid) {\n <label id=\"producer-error\" for=\"producer\" class=\"a-label a-label--help -error\">\n @if (producer.errors?.['required']) {\n <span>{{ '@pry.dataset.form.obligatory' | i18n }}</span>\n }\n </label>\n }\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-h3\" for=\"additionalInformation\">{{ '@pry.dataset.version.additionalInformation' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\" id=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"o-import__actions u-display-flex -justify-center\">\n <button class=\"a-btn a-btn--primary\" [disabled]=\"form.invalid\">\n {{ '@pry.import.import' | i18n }}\n </button>\n </div>\n </form>\n <div class=\"o-import__message\" [class.u-visually-hidden]=\"!showMessage\" #message>\n <span>\n {{ '@pry.import.consultDataset1' | i18n }}\n <strong>{{ dataset.value?.id ?? '' | translateId: { type: 'datasource', output: 'name' } | async }}</strong>\n {{ '@pry.import.consultDataset2' | i18n }}\n </span>\n </div>\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", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i2.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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle", "name", "inputId", "inhibit"] }, { 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.PryTextEditorComponent, selector: "pry-text-editor", inputs: ["tabView"] }, { 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: i7.AsyncPipe, name: "async" }] }); }
|
|
161
161
|
}
|
|
162
162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryImportFormComponent, decorators: [{
|
|
163
163
|
type: Component,
|
|
@@ -83,7 +83,7 @@ export class PryImportListComponent extends SubscriptionnerDirective {
|
|
|
83
83
|
setTimeout(() => this.goBackToFirstPage$.next(false), 50);
|
|
84
84
|
}
|
|
85
85
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryImportListComponent, deps: [{ token: i1.Store }, { token: i2.PryDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryImportListComponent, selector: "pry-import-list", inputs: { refreshClick: { classPropertyName: "refreshClick", publicName: "refreshClick", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import-list u-display-flex -column -gap-20\">\n <h1 class=\"a-h1\">{{ '@pry.importList.title' | i18n }}</h1>\n <div class=\"o-import-list__filters u-display-flex -gap-20\">\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__dataset-filter\" #dsRef>\n <label class=\"a-label m-filter__label\" for=\"dataset_name_filter\">\n {{ '@pry.importList.filter.dsName' | i18n }} : \n </label>\n <pry-select\n id=\"dataset_name_filter\"\n [items]=\"datasets$ | async\"\n [(ngModel)]=\"filters.dataset\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [elementRef]=\"dsRef\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__state-filter\" #statusRef>\n <label class=\"a-label m-filter__label\" for=\"import_status\">\n {{ '@pry.importList.filter.status' | i18n }} : \n </label>\n <pry-select\n id=\"import_status\"\n [items]=\"possibleStatus\"\n [(ngModel)]=\"filters.status\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n aria-labelledby=\"item-label\"\n [elementRef]=\"statusRef\"\n i18nPrefix=\"@pry.dataset.version.stateFilter.\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__date-filter\">\n <fieldset class=\"u-display-flex -align-center\">\n <legend class=\"a-label m-filter__label\">{{ '@pry.importList.filter.date' | i18n }} : </legend>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMin\" (ngModelChange)=\"updateFilters()\" />\n <span class=\"m-filter__date-input-separator\"> - </span>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMax\" (ngModelChange)=\"updateFilters()\" />\n </fieldset>\n </div>\n <button type=\"button\" class=\"a-btn a-btn--icon-only u-self-center\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"loadData()\">\n {{ '@pry.toolbox.apply' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n <div class=\"o-import-list__content\">\n <table\n class=\"a-table\"\n prySortTable\n (prySortChange)=\"sortChange($event)\"\n [prySortDirection]=\"sort.sortBy\"\n [prySortActive]=\"sort.orderBy\"\n >\n <thead>\n <tr>\n <th id=\"import_list_header_dataset\" prySortHeader=\"DATASET_NAME\">\n {{ '@pry.importList.dsName' | i18n }}\n </th>\n <th>{{ '@pry.importList.number' | i18n }}</th>\n <th id=\"import_list_header_date\" prySortHeader=\"DATE\" (sortChange)=\"sortChange($event)\">\n {{ '@pry.importList.date' | i18n }}\n </th>\n <th>{{ '@pry.importList.status' | i18n }}</th>\n <th>{{ '@pry.importList.actions' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @if (loading$ | async; as loading) {\n <tr>\n <td colSpan=\"5\">\n <div class=\"a-page-loader -relative\" [style.display]=\"'flex'\">\n <pry-page-loader></pry-page-loader>\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </td>\n </tr>\n } @else {\n @for (version of datasetVersions$ | async; track version.id) {\n <tr>\n <td>{{ version.dataset.name }}</td>\n <td>\n {{ version.version }}\n </td>\n <td>\n {{ version.lastModified | date: 'dd/MM/yyyy HH:mm' }}\n </td>\n <td class=\"u-display-flex -align-center -cell-with-icon\">\n @if (version.state === 'ACTIVE') {\n <pry-icon iconSvg=\"check\" class=\"check\" [height]=\"20\" [width]=\"20\"></pry-icon>\n } @else if (version.state === 'WARNING' || version.state === 'ERROR') {\n <pry-icon iconSvg=\"warning-triangle\" class=\"warning\" [height]=\"20\" [width]=\"20\"></pry-icon>\n }\n {{\n version.id === version.dataset.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : ('@pry.dataset.version.state.' + version.state | i18n)\n }}\n </td>\n @if (version.state === 'ERROR') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ '@pry.dataset.buttonAction.ERROR' | i18n }}\n </button>\n </td>\n } @else {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openInfoModal(version)\">\n {{ '@pry.dataset.consult' | i18n }}\n </button>\n @if (version.hasWarnings) {\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ '@pry.dataset.buttonAction.WARNING' | i18n }}\n </button>\n }\n </td>\n }\n </tr>\n }\n <tr></tr>\n }\n </tbody>\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n </table>\n </div>\n <pry-paginator\n [action]=\"loadDataAction()\"\n [nbPerPage]=\"10\"\n [totalItemNb]=\"(totalVersionCount$ | async)!\"\n class=\"u-self-center\"\n [goBackToFirstPage]=\"goBackToFirstPage$ | async\"\n ></pry-paginator>\n</div>\n", dependencies: [{ kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryPaginatorComponent, selector: "pry-paginator", inputs: ["action", "nbPerPage", "totalItemNb", "mode", "goBackToFirstPage", "loaded"], outputs: ["pageChange"] }, { kind: "component", type: i2.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i2.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i2.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i5.PryPageLoaderComponent, selector: "pry-page-loader", inputs: ["image", "imageAltText"] }, { kind: "component", type: i6.PryImportCssComponent, selector: "pry-import-css" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.DatePipe, name: "date" }] }); }
|
|
86
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryImportListComponent, selector: "pry-import-list", inputs: { refreshClick: { classPropertyName: "refreshClick", publicName: "refreshClick", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<pry-import-css></pry-import-css>\n<div class=\"o-import-list u-display-flex -column -gap-20\">\n <h1 class=\"a-h1\">{{ '@pry.importList.title' | i18n }}</h1>\n <div class=\"o-import-list__filters u-display-flex -gap-20\">\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__dataset-filter\" #dsRef>\n <label class=\"a-label m-filter__label\" for=\"dataset_name_filter\">\n {{ '@pry.importList.filter.dsName' | i18n }} : \n </label>\n <pry-select\n id=\"dataset_name_filter\"\n [items]=\"datasets$ | async\"\n [(ngModel)]=\"filters.dataset\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n [autocomplete]=\"true\"\n aria-labelledby=\"item-label\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [elementRef]=\"dsRef\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__state-filter\" #statusRef>\n <label class=\"a-label m-filter__label\" for=\"import_status\">\n {{ '@pry.importList.filter.status' | i18n }} : \n </label>\n <pry-select\n id=\"import_status\"\n [items]=\"possibleStatus\"\n [(ngModel)]=\"filters.status\"\n (ngModelChange)=\"updateFilters()\"\n [clearable]=\"true\"\n aria-labelledby=\"item-label\"\n [elementRef]=\"statusRef\"\n i18nPrefix=\"@pry.dataset.version.stateFilter.\"\n ></pry-select>\n </div>\n <div class=\"m-filter__input-wrapper m-filter__input-wrapper--dropdown o-import-list__date-filter\">\n <fieldset class=\"u-display-flex -align-center\">\n <legend class=\"a-label m-filter__label\">{{ '@pry.importList.filter.date' | i18n }} : </legend>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMin\" (ngModelChange)=\"updateFilters()\" />\n <span class=\"m-filter__date-input-separator\"> - </span>\n <input class=\"m-filter__input\" type=\"date\" [(ngModel)]=\"filters.dateMax\" (ngModelChange)=\"updateFilters()\" />\n </fieldset>\n </div>\n <button type=\"button\" class=\"a-btn a-btn--icon-only u-self-center\" (click)=\"clearFilters()\">\n <pry-icon iconSvg=\"clear_filter\" [width]=\"30\" [height]=\"30\"></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"loadData()\">\n {{ '@pry.toolbox.apply' | i18n }}\n <pry-icon iconSvg=\"refresh_filter\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n </div>\n <div class=\"o-import-list__content\">\n <table\n class=\"a-table\"\n prySortTable\n (prySortChange)=\"sortChange($event)\"\n [prySortDirection]=\"sort.sortBy\"\n [prySortActive]=\"sort.orderBy\"\n >\n <thead>\n <tr>\n <th id=\"import_list_header_dataset\" prySortHeader=\"DATASET_NAME\">\n {{ '@pry.importList.dsName' | i18n }}\n </th>\n <th>{{ '@pry.importList.number' | i18n }}</th>\n <th id=\"import_list_header_date\" prySortHeader=\"DATE\" (sortChange)=\"sortChange($event)\">\n {{ '@pry.importList.date' | i18n }}\n </th>\n <th>{{ '@pry.importList.status' | i18n }}</th>\n <th>{{ '@pry.importList.actions' | i18n }}</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @if (loading$ | async; as loading) {\n <tr>\n <td colSpan=\"5\">\n <div class=\"a-page-loader -relative\" [style.display]=\"'flex'\">\n <pry-page-loader></pry-page-loader>\n <p>{{ '@pry.widget.target.loading' | i18n }}...</p>\n </div>\n </td>\n </tr>\n } @else {\n @for (version of datasetVersions$ | async; track version.id) {\n <tr>\n <td>{{ version.dataset.name }}</td>\n <td>\n {{ version.version }}\n </td>\n <td>\n {{ version.lastModified | date: 'dd/MM/yyyy HH:mm' }}\n </td>\n <td class=\"u-display-flex -align-center -cell-with-icon\">\n @if (version.state === 'ACTIVE') {\n <pry-icon iconSvg=\"check\" class=\"check\" [height]=\"20\" [width]=\"20\"></pry-icon>\n } @else if (version.state === 'WARNING' || version.state === 'ERROR') {\n <pry-icon iconSvg=\"warning-triangle\" class=\"warning\" [height]=\"20\" [width]=\"20\"></pry-icon>\n }\n {{\n version.id === version.dataset.activeVersion?.id\n ? '@pry.dataset.version.state.currentlyActive'\n : ('@pry.dataset.version.state.' + version.state | i18n)\n }}\n </td>\n @if (version.state === 'ERROR') {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ '@pry.dataset.buttonAction.ERROR' | i18n }}\n </button>\n </td>\n } @else {\n <td>\n <button class=\"a-btn a-btn--secondary\" (click)=\"openInfoModal(version)\">\n {{ '@pry.dataset.consult' | i18n }}\n </button>\n @if (version.hasWarnings) {\n <button class=\"a-btn a-btn--secondary\" (click)=\"openErrorModal(version)\">\n {{ '@pry.dataset.buttonAction.WARNING' | i18n }}\n </button>\n }\n </td>\n }\n </tr>\n }\n <tr></tr>\n }\n </tbody>\n <caption>\n {{\n '@pry.admin.dataset.title' | i18n\n }},\n {{\n '@pry.action.sortableColumnHeader' | i18n\n }}\n </caption>\n </table>\n </div>\n <pry-paginator\n [action]=\"loadDataAction()\"\n [nbPerPage]=\"10\"\n [totalItemNb]=\"(totalVersionCount$ | async)!\"\n class=\"u-self-center\"\n [goBackToFirstPage]=\"goBackToFirstPage$ | async\"\n ></pry-paginator>\n</div>\n", dependencies: [{ kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "forcePlaceHolder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i2.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.PryPaginatorComponent, selector: "pry-paginator", inputs: ["action", "nbPerPage", "totalItemNb", "mode", "goBackToFirstPage", "loaded"], outputs: ["pageChange"] }, { kind: "component", type: i2.PrySortHeaderComponent, selector: "th[prySortHeader]", inputs: ["prySortHeader"], outputs: ["sortChange"] }, { kind: "directive", type: i2.PrySortHeaderDirective, selector: "[prySortHeader]" }, { kind: "directive", type: i2.PrySortTableDirective, selector: "[prySortTable]", inputs: ["prySortActive", "prySortDirection"], outputs: ["prySortChange"] }, { kind: "component", type: i5.PryPageLoaderComponent, selector: "pry-page-loader", inputs: ["image", "imageAltText"] }, { kind: "component", type: i6.PryImportCssComponent, selector: "pry-import-css" }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.DatePipe, name: "date" }] }); }
|
|
87
87
|
}
|
|
88
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryImportListComponent, decorators: [{
|
|
89
89
|
type: Component,
|
|
@@ -12,6 +12,7 @@ const DEFAULT_CONFIG = {
|
|
|
12
12
|
backdropClass: 'backdrop'
|
|
13
13
|
};
|
|
14
14
|
export const PRY_DIALOG_DATA = new InjectionToken('PRY_DIALOG_DATA');
|
|
15
|
+
export const INDEX_DATA = new InjectionToken('INDEX_DATA');
|
|
15
16
|
export class PryDialogService {
|
|
16
17
|
constructor(injector, overlay, store) {
|
|
17
18
|
this.injector = injector;
|
|
@@ -35,7 +36,8 @@ export class PryDialogService {
|
|
|
35
36
|
createInjector(dialogRef, config) {
|
|
36
37
|
const providers = [
|
|
37
38
|
{ provide: PryDialogRef, useValue: dialogRef },
|
|
38
|
-
{ provide: PRY_DIALOG_DATA, useValue: config.data }
|
|
39
|
+
{ provide: PRY_DIALOG_DATA, useValue: config.data },
|
|
40
|
+
{ provide: INDEX_DATA, useValue: config.index }
|
|
39
41
|
];
|
|
40
42
|
return Injector.create({ parent: this.injector, providers });
|
|
41
43
|
}
|
|
@@ -68,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
68
70
|
type: Injectable,
|
|
69
71
|
args: [{ providedIn: 'root' }]
|
|
70
72
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.Overlay }, { type: i2.Store }] });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL292ZXJsYXkvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEwQixhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFnQixVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQVc1QyxNQUFNLGNBQWMsR0FBb0I7SUFDdEMsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLENBQUMsc0JBQXNCLENBQUM7SUFDcEMsYUFBYSxFQUFFLFVBQVU7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBTSxpQkFBaUIsQ0FBQyxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBTSxZQUFZLENBQUMsQ0FBQztBQUdoRSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ1UsUUFBa0IsRUFDbEIsT0FBZ0IsRUFDaEIsS0FBWTtRQUZaLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQ25CLENBQUM7SUFFSixJQUFJLENBQ0YsU0FBMkIsRUFDM0IsU0FBMEIsRUFBRSxFQUM1Qix5QkFBc0M7UUFFdEMsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUksV0FBVyxFQUFFLFNBQVMsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sU0FBUyxHQUFHLElBQUksWUFBWSxDQUFJLFVBQVUsQ0FBQyxDQUFDO1FBRWxELFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFJLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRWxHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6RSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sb0JBQW9CLENBQzFCLFVBQXNCLEVBQ3RCLE1BQXVCLEVBQ3ZCLFNBQTBCLEVBQzFCLFNBQTJCO1FBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhELE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkUsTUFBTSxZQUFZLEdBQW9CLFVBQVUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekUsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFTyxjQUFjLENBQUksU0FBMEIsRUFBRSxNQUF1QjtRQUMzRSxNQUFNLFNBQVMsR0FBRztZQUNoQixFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtZQUM5QyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDbkQsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFO1NBQ2hELENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUF1QjtRQUM5QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWxHLE9BQU8sSUFBSSxhQUFhLENBQUM7WUFDdkIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtZQUNuQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7WUFDN0IsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3JELGdCQUFnQjtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUNuQixNQUF1QixFQUN2QixTQUEyQixFQUMzQix5QkFBc0M7UUFFdEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDckMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxDQUFDLHlCQUF5QixFQUFFLENBQUM7Z0JBQ2hDLHlCQUF5QixFQUFFLENBQUM7WUFDOUIsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OEdBeEVVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTs7MkZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IFByeURpYWxvZ1JlZiB9IGZyb20gJy4vZGlhbG9nLXJlZic7XG5cbmludGVyZmFjZSBQcnlEaWFsb2dDb25maWcge1xuICBwYW5lbENsYXNzPzogc3RyaW5nW107XG4gIGhhc0JhY2tkcm9wPzogYm9vbGVhbjtcbiAgYmFja2Ryb3BDbGFzcz86IHN0cmluZztcbiAgZGF0YT86IGFueTtcbiAgb3ZlcmxheUNvbmZpZz86IE92ZXJsYXlDb25maWc7XG4gIGluZGV4PzogbnVtYmVyO1xufVxuXG5jb25zdCBERUZBVUxUX0NPTkZJRzogUHJ5RGlhbG9nQ29uZmlnID0ge1xuICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgcGFuZWxDbGFzczogWydwcnktZGlhbG9nLWNvbnRhaW5lciddLFxuICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG59O1xuXG5leHBvcnQgY29uc3QgUFJZX0RJQUxPR19EQVRBID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ1BSWV9ESUFMT0dfREFUQScpO1xuZXhwb3J0IGNvbnN0IElOREVYX0RBVEEgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignSU5ERVhfREFUQScpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFByeURpYWxvZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmVcbiAgKSB7fVxuXG4gIG9wZW48VD4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LFxuICAgIGNvbmZpZzogUHJ5RGlhbG9nQ29uZmlnID0ge30sXG4gICAgYWRkaXRpb25hbEJlaGF2aW9yQXRDbG9zZT86ICgpID0+IHZvaWRcbiAgKTogUHJ5RGlhbG9nUmVmPFQ+IHtcbiAgICBjb25zdCBtb2RhbENvbmZpZyA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLmNvbmZpZyB9O1xuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXk8VD4obW9kYWxDb25maWcsIGNvbXBvbmVudCwgYWRkaXRpb25hbEJlaGF2aW9yQXRDbG9zZSk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IFByeURpYWxvZ1JlZjxUPihvdmVybGF5UmVmKTtcblxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnQgPSB0aGlzLmF0dGFjaE1vZGFsQ29udGFpbmVyPFQ+KG92ZXJsYXlSZWYsIG1vZGFsQ29uZmlnLCBkaWFsb2dSZWYsIGNvbXBvbmVudCk7XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiBjb21wb25lbnQubmFtZSB9KSk7XG5cbiAgICByZXR1cm4gZGlhbG9nUmVmO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hNb2RhbENvbnRhaW5lcjxUPihcbiAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmLFxuICAgIGNvbmZpZzogUHJ5RGlhbG9nQ29uZmlnLFxuICAgIGRpYWxvZ1JlZjogUHJ5RGlhbG9nUmVmPFQ+LFxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPlxuICApIHtcbiAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuY3JlYXRlSW5qZWN0b3IoZGlhbG9nUmVmLCBjb25maWcpO1xuXG4gICAgY29uc3QgY29udGFpbmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChjb21wb25lbnQsIG51bGwsIGluamVjdG9yKTtcbiAgICBjb25zdCBjb250YWluZXJSZWY6IENvbXBvbmVudFJlZjxUPiA9IG92ZXJsYXlSZWYuYXR0YWNoKGNvbnRhaW5lclBvcnRhbCk7XG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSW5qZWN0b3I8VD4oZGlhbG9nUmVmOiBQcnlEaWFsb2dSZWY8VD4sIGNvbmZpZzogUHJ5RGlhbG9nQ29uZmlnKTogSW5qZWN0b3Ige1xuICAgIGNvbnN0IHByb3ZpZGVycyA9IFtcbiAgICAgIHsgcHJvdmlkZTogUHJ5RGlhbG9nUmVmLCB1c2VWYWx1ZTogZGlhbG9nUmVmIH0sXG4gICAgICB7IHByb3ZpZGU6IFBSWV9ESUFMT0dfREFUQSwgdXNlVmFsdWU6IGNvbmZpZy5kYXRhIH0sXG4gICAgICB7IHByb3ZpZGU6IElOREVYX0RBVEEsIHVzZVZhbHVlOiBjb25maWcuaW5kZXggfVxuICAgIF07XG4gICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7IHBhcmVudDogdGhpcy5pbmplY3RvciwgcHJvdmlkZXJzIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKGNvbmZpZzogUHJ5RGlhbG9nQ29uZmlnKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKTtcblxuICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogY29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgYmFja2Ryb3BDbGFzczogY29uZmlnLmJhY2tkcm9wQ2xhc3MsXG4gICAgICBwYW5lbENsYXNzOiBjb25maWcucGFuZWxDbGFzcyxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5PFQ+KFxuICAgIGNvbmZpZzogUHJ5RGlhbG9nQ29uZmlnLFxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxUPixcbiAgICBhZGRpdGlvbmFsQmVoYXZpb3JBdENsb3NlPzogKCkgPT4gdm9pZFxuICApIHtcbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gY29uZmlnLm92ZXJsYXlDb25maWcgPz8gdGhpcy5nZXRPdmVybGF5Q29uZmlnKGNvbmZpZyk7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gICAgb3ZlcmxheS5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIG92ZXJsYXkuZGlzcG9zZSgpO1xuICAgICAgaWYgKCEhYWRkaXRpb25hbEJlaGF2aW9yQXRDbG9zZSkge1xuICAgICAgICBhZGRpdGlvbmFsQmVoYXZpb3JBdENsb3NlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IGNvbXBvbmVudC5uYW1lIH0pKTtcbiAgICB9KTtcbiAgICByZXR1cm4gb3ZlcmxheTtcbiAgfVxufVxuIl19
|