@provoly/dashboard 0.24.1 → 0.24.3
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/filters/autocomplete/autocomplete.component.mjs +16 -8
- package/esm2022/lib/core/model/filter.interface.mjs +1 -1
- package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
- package/esm2022/lib/core/store/search/search.actions.mjs +4 -2
- package/esm2022/lib/core/store/search/search.effects.mjs +4 -1
- package/esm2022/lib/core/store/search/search.reducer.mjs +9 -2
- package/esm2022/lib/core/store/search/search.selectors.mjs +4 -2
- package/esm2022/lib/core/store/search/search.service.mjs +2 -2
- package/esm2022/toolbox/components/dashboard-details/dashboard-details.component.mjs +12 -9
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -3
- package/esm2022/toolbox/style/css.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +15 -7
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +15 -11
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +18 -4
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/filters/autocomplete/autocomplete.component.d.ts +2 -1
- package/lib/core/model/manifest.interface.d.ts +1 -1
- package/lib/core/store/search/search.actions.d.ts +24 -0
- package/lib/core/store/search/search.effects.d.ts +4 -0
- package/lib/core/store/search/search.reducer.d.ts +3 -0
- package/lib/core/store/search/search.selectors.d.ts +1 -0
- package/lib/dashboard/store/dashboard.effects.d.ts +1 -0
- package/lib/dashboard/store/dashboard.selectors.d.ts +8 -0
- package/package.json +7 -7
- package/toolbox/components/dashboard-details/dashboard-details.component.d.ts +2 -2
- package/toolbox/style/_o-dashboard-details.component.scss +9 -7
|
@@ -115,11 +115,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
115
115
|
|
|
116
116
|
class PrySelectGridLayoutCssComponent {
|
|
117
117
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PrySelectGridLayoutCssComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
118
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css", ngImport: i0, template: '', isInline: true, styles: [".o-select-grid-layout{margin:0;padding:0}.o-select-grid-layout li{list-style:none}.o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:80%}.o-select-grid-layout{overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,auto));grid-gap:1.875rem;padding:.25rem .25rem 1.875rem}.o-select-grid-layout__item .a-btn{display:flex;flex-direction:column;align-items:center;justify-content:space-around;width:100%;height:18.75rem;padding:.9375rem;border-radius:0;text-align:left}.o-select-grid-layout__item .a-btn:focus{outline:2px solid #35b99f}.o-select-grid-layout__item .a-btn:focus:not(:focus-visible){outline:0}.o-select-grid-layout__item .a-btn:focus-visible{outline:0;border-radius:.125rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}.o-select-grid-layout__item .a-btn strong{display:block}.o-select-grid-layout__item .a-btn .a-p{margin-bottom:0;font-size:13px}.o-select-grid-layout__item__preview{height:6.25rem;width:100%}\n", ".o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:60%;padding:1.875rem 2.5rem}.o-filters{width:100%}.o-filters__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.875rem;border-bottom:1px solid #dfe5ec}.o-filters__header h2{padding:0}.o-filters__header .back-button{transform:rotate(180deg)}.o-filters__content{display:flex;flex-direction:column;padding-top:1.25rem}.o-filters__content>.a-btn{margin-top:1.25rem;align-self:center}.o-filters__filter td:first-child{min-width:20%;max-width:30%}.o-filters__filter td:nth-child(2){min-width:50%;max-width:60%}.o-filters__filter td:nth-child(3){width:8%}.o-filters__filter td:nth-child(4){width:8%}.o-filters__filter td:last-child{width:4%}.o-filters__filter.cdk-drag-preview{background-color:#fff}.o-filters__filter.cdk-drag-preview td{padding:.75rem .5rem}.o-filters__filter .cdk-drag-handle{pointer-events:auto}.o-filters__filter .cdk-drag-handle:hover{cursor:grab}.o-filters tr.o-filters__filter{cursor:default}.o-filters__no-filters{padding-bottom:1.875rem}\n", ".o-draggable-menu{width:fit-content}.o-draggable-menu__list{display:flex;flex-direction:column;padding:.25rem 0;align-items:flex-end}\n", ".refresh-rs>div{padding-left:0;padding-right:0}.refresh-rs button.refresh-line{border-radius:0;padding:0 .9375rem}.refresh-rs button.refresh-line:hover{font-weight:400;background-color:#0000001a}.refresh-rs button.refresh-line.-selected{background-color:#00000026}\n", ".o-dashboard-details.a-btn{gap:.5rem}.o-dashboard-details.a-btn:hover{transition:background-color .3s ease,color .3s ease;background-color:#d8e7f7}#dashboard-details-panel .o-modal__top{margin:0;padding:0}#dashboard-details-panel .o-modal__top__title{font-size:1.125rem;color:#253043;padding-bottom:.3125rem}#dashboard-details-panel .o-modal__content{padding:0}#dashboard-details-panel h5{font-weight:700;font-size:.875rem;color:#253043;padding:0;margin:0}#dashboard-details-panel span,#dashboard-details-panel p{font-size:.875rem;color:#263340}#dashboard-details-panel div{padding-bottom:10px}#dashboard-details-panel ul{margin:0}#dashboard-details-panel li{color:#253043;font-size:.875rem}
|
|
118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css", ngImport: i0, template: '', isInline: true, styles: [".o-select-grid-layout{margin:0;padding:0}.o-select-grid-layout li{list-style:none}.o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:80%}.o-select-grid-layout{overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,auto));grid-gap:1.875rem;padding:.25rem .25rem 1.875rem}.o-select-grid-layout__item .a-btn{display:flex;flex-direction:column;align-items:center;justify-content:space-around;width:100%;height:18.75rem;padding:.9375rem;border-radius:0;text-align:left}.o-select-grid-layout__item .a-btn:focus{outline:2px solid #35b99f}.o-select-grid-layout__item .a-btn:focus:not(:focus-visible){outline:0}.o-select-grid-layout__item .a-btn:focus-visible{outline:0;border-radius:.125rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}.o-select-grid-layout__item .a-btn strong{display:block}.o-select-grid-layout__item .a-btn .a-p{margin-bottom:0;font-size:13px}.o-select-grid-layout__item__preview{height:6.25rem;width:100%}\n", ".o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:60%;padding:1.875rem 2.5rem}.o-filters{width:100%}.o-filters__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.875rem;border-bottom:1px solid #dfe5ec}.o-filters__header h2{padding:0}.o-filters__header .back-button{transform:rotate(180deg)}.o-filters__content{display:flex;flex-direction:column;padding-top:1.25rem}.o-filters__content>.a-btn{margin-top:1.25rem;align-self:center}.o-filters__filter td:first-child{min-width:20%;max-width:30%}.o-filters__filter td:nth-child(2){min-width:50%;max-width:60%}.o-filters__filter td:nth-child(3){width:8%}.o-filters__filter td:nth-child(4){width:8%}.o-filters__filter td:last-child{width:4%}.o-filters__filter.cdk-drag-preview{background-color:#fff}.o-filters__filter.cdk-drag-preview td{padding:.75rem .5rem}.o-filters__filter .cdk-drag-handle{pointer-events:auto}.o-filters__filter .cdk-drag-handle:hover{cursor:grab}.o-filters tr.o-filters__filter{cursor:default}.o-filters__no-filters{padding-bottom:1.875rem}\n", ".o-draggable-menu{width:fit-content}.o-draggable-menu__list{display:flex;flex-direction:column;padding:.25rem 0;align-items:flex-end}\n", ".refresh-rs>div{padding-left:0;padding-right:0}.refresh-rs button.refresh-line{border-radius:0;padding:0 .9375rem}.refresh-rs button.refresh-line:hover{font-weight:400;background-color:#0000001a}.refresh-rs button.refresh-line.-selected{background-color:#00000026}\n", ".o-dashboard-details.a-btn{gap:.5rem}.o-dashboard-details.a-btn:hover{transition:background-color .3s ease,color .3s ease;background-color:#d8e7f7}#dashboard-details-panel{background-color:#fff;box-shadow:0 2px 7px #00000017;width:100%;max-width:31.25rem;overflow-x:hidden;overflow-y:auto;max-height:25rem;padding:.5rem .9375rem .9375rem .625rem}#dashboard-details-panel .o-modal__top{margin:0;padding:0}#dashboard-details-panel .o-modal__top__title{font-size:1.125rem;color:#253043;padding-bottom:.3125rem}#dashboard-details-panel .o-modal__content{padding:0}#dashboard-details-panel h5{font-weight:700;font-size:.875rem;color:#253043;padding:0;margin:0}#dashboard-details-panel span,#dashboard-details-panel p{font-size:.875rem;color:#263340}#dashboard-details-panel div{padding-bottom:10px}#dashboard-details-panel ul{margin:0}#dashboard-details-panel li{color:#253043;font-size:.875rem}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
119
119
|
}
|
|
120
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PrySelectGridLayoutCssComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
122
|
-
args: [{ selector: 'pry-toolbox-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-select-grid-layout{margin:0;padding:0}.o-select-grid-layout li{list-style:none}.o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:80%}.o-select-grid-layout{overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,auto));grid-gap:1.875rem;padding:.25rem .25rem 1.875rem}.o-select-grid-layout__item .a-btn{display:flex;flex-direction:column;align-items:center;justify-content:space-around;width:100%;height:18.75rem;padding:.9375rem;border-radius:0;text-align:left}.o-select-grid-layout__item .a-btn:focus{outline:2px solid #35b99f}.o-select-grid-layout__item .a-btn:focus:not(:focus-visible){outline:0}.o-select-grid-layout__item .a-btn:focus-visible{outline:0;border-radius:.125rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}.o-select-grid-layout__item .a-btn strong{display:block}.o-select-grid-layout__item .a-btn .a-p{margin-bottom:0;font-size:13px}.o-select-grid-layout__item__preview{height:6.25rem;width:100%}\n", ".o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:60%;padding:1.875rem 2.5rem}.o-filters{width:100%}.o-filters__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.875rem;border-bottom:1px solid #dfe5ec}.o-filters__header h2{padding:0}.o-filters__header .back-button{transform:rotate(180deg)}.o-filters__content{display:flex;flex-direction:column;padding-top:1.25rem}.o-filters__content>.a-btn{margin-top:1.25rem;align-self:center}.o-filters__filter td:first-child{min-width:20%;max-width:30%}.o-filters__filter td:nth-child(2){min-width:50%;max-width:60%}.o-filters__filter td:nth-child(3){width:8%}.o-filters__filter td:nth-child(4){width:8%}.o-filters__filter td:last-child{width:4%}.o-filters__filter.cdk-drag-preview{background-color:#fff}.o-filters__filter.cdk-drag-preview td{padding:.75rem .5rem}.o-filters__filter .cdk-drag-handle{pointer-events:auto}.o-filters__filter .cdk-drag-handle:hover{cursor:grab}.o-filters tr.o-filters__filter{cursor:default}.o-filters__no-filters{padding-bottom:1.875rem}\n", ".o-draggable-menu{width:fit-content}.o-draggable-menu__list{display:flex;flex-direction:column;padding:.25rem 0;align-items:flex-end}\n", ".refresh-rs>div{padding-left:0;padding-right:0}.refresh-rs button.refresh-line{border-radius:0;padding:0 .9375rem}.refresh-rs button.refresh-line:hover{font-weight:400;background-color:#0000001a}.refresh-rs button.refresh-line.-selected{background-color:#00000026}\n", ".o-dashboard-details.a-btn{gap:.5rem}.o-dashboard-details.a-btn:hover{transition:background-color .3s ease,color .3s ease;background-color:#d8e7f7}#dashboard-details-panel .o-modal__top{margin:0;padding:0}#dashboard-details-panel .o-modal__top__title{font-size:1.125rem;color:#253043;padding-bottom:.3125rem}#dashboard-details-panel .o-modal__content{padding:0}#dashboard-details-panel h5{font-weight:700;font-size:.875rem;color:#253043;padding:0;margin:0}#dashboard-details-panel span,#dashboard-details-panel p{font-size:.875rem;color:#263340}#dashboard-details-panel div{padding-bottom:10px}#dashboard-details-panel ul{margin:0}#dashboard-details-panel li{color:#253043;font-size:.875rem}
|
|
122
|
+
args: [{ selector: 'pry-toolbox-css', template: '', encapsulation: ViewEncapsulation.None, styles: [".o-select-grid-layout{margin:0;padding:0}.o-select-grid-layout li{list-style:none}.o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:80%}.o-select-grid-layout{overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,auto));grid-gap:1.875rem;padding:.25rem .25rem 1.875rem}.o-select-grid-layout__item .a-btn{display:flex;flex-direction:column;align-items:center;justify-content:space-around;width:100%;height:18.75rem;padding:.9375rem;border-radius:0;text-align:left}.o-select-grid-layout__item .a-btn:focus{outline:2px solid #35b99f}.o-select-grid-layout__item .a-btn:focus:not(:focus-visible){outline:0}.o-select-grid-layout__item .a-btn:focus-visible{outline:0;border-radius:.125rem;box-shadow:0 0 0 2px #fff,0 0 0 4px #35b99f}.o-select-grid-layout__item .a-btn strong{display:block}.o-select-grid-layout__item .a-btn .a-p{margin-bottom:0;font-size:13px}.o-select-grid-layout__item__preview{height:6.25rem;width:100%}\n", ".o-select-grid-layout-wrapper{overflow-y:auto;max-height:80%}.o-select-grid-layout-modal-wrapper{max-width:60%;padding:1.875rem 2.5rem}.o-filters{width:100%}.o-filters__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.875rem;border-bottom:1px solid #dfe5ec}.o-filters__header h2{padding:0}.o-filters__header .back-button{transform:rotate(180deg)}.o-filters__content{display:flex;flex-direction:column;padding-top:1.25rem}.o-filters__content>.a-btn{margin-top:1.25rem;align-self:center}.o-filters__filter td:first-child{min-width:20%;max-width:30%}.o-filters__filter td:nth-child(2){min-width:50%;max-width:60%}.o-filters__filter td:nth-child(3){width:8%}.o-filters__filter td:nth-child(4){width:8%}.o-filters__filter td:last-child{width:4%}.o-filters__filter.cdk-drag-preview{background-color:#fff}.o-filters__filter.cdk-drag-preview td{padding:.75rem .5rem}.o-filters__filter .cdk-drag-handle{pointer-events:auto}.o-filters__filter .cdk-drag-handle:hover{cursor:grab}.o-filters tr.o-filters__filter{cursor:default}.o-filters__no-filters{padding-bottom:1.875rem}\n", ".o-draggable-menu{width:fit-content}.o-draggable-menu__list{display:flex;flex-direction:column;padding:.25rem 0;align-items:flex-end}\n", ".refresh-rs>div{padding-left:0;padding-right:0}.refresh-rs button.refresh-line{border-radius:0;padding:0 .9375rem}.refresh-rs button.refresh-line:hover{font-weight:400;background-color:#0000001a}.refresh-rs button.refresh-line.-selected{background-color:#00000026}\n", ".o-dashboard-details.a-btn{gap:.5rem}.o-dashboard-details.a-btn:hover{transition:background-color .3s ease,color .3s ease;background-color:#d8e7f7}#dashboard-details-panel{background-color:#fff;box-shadow:0 2px 7px #00000017;width:100%;max-width:31.25rem;overflow-x:hidden;overflow-y:auto;max-height:25rem;padding:.5rem .9375rem .9375rem .625rem}#dashboard-details-panel .o-modal__top{margin:0;padding:0}#dashboard-details-panel .o-modal__top__title{font-size:1.125rem;color:#253043;padding-bottom:.3125rem}#dashboard-details-panel .o-modal__content{padding:0}#dashboard-details-panel h5{font-weight:700;font-size:.875rem;color:#253043;padding:0;margin:0}#dashboard-details-panel span,#dashboard-details-panel p{font-size:.875rem;color:#263340}#dashboard-details-panel div{padding-bottom:10px}#dashboard-details-panel ul{margin:0}#dashboard-details-panel li{color:#253043;font-size:.875rem}\n"] }]
|
|
123
123
|
}] });
|
|
124
124
|
|
|
125
125
|
var FilterSteps;
|
|
@@ -345,11 +345,11 @@ class PryFilterSettingsComponent extends ToolboxActionComponent {
|
|
|
345
345
|
return `${attributeId}@${datasetId}`;
|
|
346
346
|
}
|
|
347
347
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryFilterSettingsComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i3$1.FilterFactoryService }, { token: i0.Injector }, { token: i3$1.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
348
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryFilterSettingsComponent, selector: "pry-filter-settings", inputs: { label: "label" }, viewQueries: [{ propertyName: "templateSettings", first: true, predicate: ["settings"], descendants: true, read: TemplateRef }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'autocomplete'\" class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [clearable]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n bindLabel=\"label\"\n bindValue=\"customId\"\n bindClasses=\"classes\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
348
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryFilterSettingsComponent, selector: "pry-filter-settings", inputs: { label: "label" }, viewQueries: [{ propertyName: "templateSettings", first: true, predicate: ["settings"], descendants: true, read: TemplateRef }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'autocomplete'\" class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [clearable]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n bindLabel=\"label\"\n bindValue=\"customId\"\n bindClasses=\"classes\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"\n (currentFilterComponentType$ | async) === 'list' ||\n (currentFilterComponentType$ | async) === 'autocomplete'\n \"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i6.PryCheckboxComponent, selector: "pry-checkbox", inputs: ["circle"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
349
349
|
}
|
|
350
350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryFilterSettingsComponent, decorators: [{
|
|
351
351
|
type: Component,
|
|
352
|
-
args: [{ selector: 'pry-filter-settings', template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'autocomplete'\" class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [clearable]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n bindLabel=\"label\"\n bindValue=\"customId\"\n bindClasses=\"classes\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"(currentFilterComponentType$ | async) === 'list'\"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n" }]
|
|
352
|
+
args: [{ selector: 'pry-filter-settings', template: "<pry-toolbox-css></pry-toolbox-css>\n<div class=\"save-manifest-container\">\n <div style=\"display: none\">\n <ng-template #container></ng-template>\n </div>\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n [disabled]=\"(attributes$ | async)?.length === 0\"\n (click)=\"toggleSettings()\"\n aria-haspopup=\"dialog\"\n >\n <ng-container *ngIf=\"label\">{{ '@pry.filters.label' | i18n }}</ng-container>\n </button>\n</div>\n\n<ng-template #settings>\n <div class=\"o-filters\">\n <div class=\"o-filters__header\">\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <h2>{{ '@pry.filters.label' | i18n }}</h2>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"u-display-flex -row -align-center\">\n <button (click)=\"goBack()\" type=\"button\" class=\"back-button\">\n <pry-icon iconSvg=\"chevron_right\"></pry-icon>\n </button>\n <h2>\n {{\n (currentStep === FilterSteps.CREATION ? '@pry.filters.creation.create' : '@pry.filters.creation.update')\n | i18n\n }}\n </h2>\n </div>\n </ng-container>\n <button (click)=\"toggleSettings()\" type=\"button\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n </div>\n <ng-container *ngIf=\"currentStep === FilterSteps.LIST\">\n <div class=\"o-filters__content\">\n <div *ngIf=\"(attributes$ | async)?.length === 0; else attributesExists\" class=\"a-table-wrapper\"></div>\n <ng-template #attributesExists>\n <table *ngIf=\"filters.length > 0; else noFilters\" class=\"a-table\">\n <tbody cdkDropList [cdkDropListData]=\"filters\" (cdkDropListDropped)=\"drop($event)\">\n <tr *ngFor=\"let filter of filters\" class=\"o-filters__filter\" cdkDrag>\n <td>\n <span>{{ filter.name }}</span>\n </td>\n <td>\n <span>{{ getFilterAttributes(filter, 3) }}</span>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"deleteFilter(filter.id)\">\n {{ '@pry.action.delete' | i18n }}\n </button>\n </td>\n <td>\n <button type=\"button\" class=\"a-btn a-btn--primary\" (click)=\"goToEdition(filter)\">\n {{ '@pry.filters.list.modify' | i18n }}\n </button>\n </td>\n <td cdkDragHandle>\n <pry-icon iconSvg=\"drag_indicator\"></pry-icon>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-template #noFilters>\n <span class=\"o-filters__no-filters\">{{ '@pry.filters.noFilters' | i18n }}</span>\n </ng-template>\n <button (click)=\"goToCreation()\" class=\"a-btn a-btn--primary\">{{ '@pry.filters.list.add' | i18n }}</button>\n </ng-template>\n </div>\n </ng-container>\n <ng-container *ngIf=\"currentStep === FilterSteps.CREATION || currentStep === FilterSteps.EDITION\">\n <div class=\"o-filters__content\">\n <div class=\"m-form-label-field\">\n <label for=\"filterName\" class=\"a-label\">{{ '@pry.filters.creation.name' | i18n }}</label>\n <input id=\"filterName\" class=\"a-form-field\" type=\"text\" [(ngModel)]=\"filter.name\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"filterType\" class=\"a-label\">{{ '@pry.filters.creation.type' | i18n }}</label>\n <pry-select\n id=\"filterType\"\n [placeholder]=\"'@pry.filters.creation.type' | i18n\"\n [items]=\"types$ | async\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [(ngModel)]=\"filter.type\"\n (ngModelChange)=\"updateFilterType($event)\"\n >\n </pry-select>\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'date'\" class=\"m-form-label-field u-display-flex -row\">\n <label for=\"date-range\" class=\"a-label\">{{ '@pry.filters.creation.dateRange' | i18n }}</label>\n <pry-checkbox\n id=\"date-range\"\n [(ngModel)]=\"filter.hasDateRange\"\n (ngModelChange)=\"this.currentOperators$.next(getOperators())\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'list'\" class=\"m-form-label-field\">\n <label for=\"possibleValues\" class=\"a-label\">{{ '@pry.filters.creation.values' | i18n }}</label>\n <input\n id=\"possibleValues\"\n class=\"a-form-field\"\n type=\"text\"\n [(ngModel)]=\"filter.possibleValues\"\n placeholder=\"valeur1, valeur2, valeur3\"\n />\n </div>\n <div *ngIf=\"(currentFilterComponentType$ | async) === 'autocomplete'\" class=\"m-form-label-field\">\n <label for=\"limit\" class=\"a-label\">{{ '@pry.filters.creation.limit' | i18n }}</label>\n <input id=\"limit\" class=\"a-form-field\" type=\"number\" min=\"0\" max=\"50\" [(ngModel)]=\"filter.limit\" />\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"attributes\" class=\"a-label\">{{ '@pry.filters.creation.attributes' | i18n }}</label>\n <pry-select\n id=\"attributes\"\n [multiple]=\"true\"\n [clearable]=\"true\"\n [closeOnSelect]=\"false\"\n [items]=\"attributes$ | async\"\n [ngModel]=\"filter.attributes\"\n (ngModelChange)=\"selectAttribute($event)\"\n [placeholder]=\"'@pry.filters.creation.attributes' | i18n\"\n bindLabel=\"label\"\n bindValue=\"customId\"\n bindClasses=\"classes\"\n >\n </pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label for=\"operations\" class=\"a-label\">{{ '@pry.filters.attributes.operator' | i18n }}</label>\n <pry-select\n id=\"operations\"\n [items]=\"currentOperators$ | async\"\n [(ngModel)]=\"filter.operator\"\n [placeholder]=\"'@pry.filters.attributes.operator' | i18n\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"\n (currentFilterComponentType$ | async) === 'list' ||\n (currentFilterComponentType$ | async) === 'autocomplete'\n \"\n >\n </pry-select>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"submitFilter()\"\n [disabled]=\"!(filter.name && filter.type && filter.attributes.length !== 0 && filter.operator)\"\n type=\"submit\"\n >\n {{ '@pry.toolbox.manifest.validate' | i18n }}\n </button>\n </div>\n </ng-container>\n </div>\n</ng-template>\n" }]
|
|
353
353
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i3$1.FilterFactoryService }, { type: i0.Injector }, { type: i3$1.PryI18nService }], propDecorators: { label: [{
|
|
354
354
|
type: Input
|
|
355
355
|
}], templateSettings: [{
|
|
@@ -920,13 +920,17 @@ class DashboardDetailsComponent extends ToolboxActionComponent {
|
|
|
920
920
|
originY: 'bottom',
|
|
921
921
|
overlayX: 'end',
|
|
922
922
|
overlayY: 'top',
|
|
923
|
-
offsetY: 5
|
|
924
|
-
|
|
923
|
+
offsetY: 5
|
|
924
|
+
},
|
|
925
|
+
{
|
|
926
|
+
originX: 'start',
|
|
927
|
+
originY: 'bottom',
|
|
928
|
+
overlayX: 'start',
|
|
929
|
+
overlayY: 'top',
|
|
930
|
+
offsetY: 5
|
|
925
931
|
}
|
|
926
932
|
];
|
|
927
|
-
this.
|
|
928
|
-
.select(DashboardSelectors.presentation)
|
|
929
|
-
.pipe(map((presentation) => presentation.current));
|
|
933
|
+
this.globalManifest$ = this.store.select(DashboardSelectors.globalManifest);
|
|
930
934
|
}
|
|
931
935
|
openPanel($event) {
|
|
932
936
|
this.isPanelOpen = true;
|
|
@@ -938,11 +942,11 @@ class DashboardDetailsComponent extends ToolboxActionComponent {
|
|
|
938
942
|
$event.stopPropagation();
|
|
939
943
|
}
|
|
940
944
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DashboardDetailsComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
941
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DashboardDetailsComponent, selector: "pry-dashboard-details", usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n@if (
|
|
945
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DashboardDetailsComponent, selector: "pry-dashboard-details", usesInheritance: true, ngImport: i0, template: "<pry-toolbox-css></pry-toolbox-css>\n@if (globalManifest$ | async; as manifest) {\n @if (manifest.html) {\n <button\n class=\"a-btn o-dashboard-details\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"dashboard-details\"\n aria-controls=\"dashboard-details-panel\"\n aria-expanded=\"false\"\n (click)=\"openPanel($event)\"\n >\n <pry-icon iconSvg=\"dashboard-about\"></pry-icon>\n {{ '@pry.toolbox.about' | i18n }}\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"panelPosition\"\n (backdropClick)=\"isPanelOpen = false\"\n >\n <div class=\"o-modal\" id=\"dashboard-details-panel\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.toolbox.about' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closePanel($event)\">\n <pry-icon iconSvg=\"close\" [height]=\"20\" [width]=\"20\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"o-modal__content\" [innerHTML]=\"manifest.html\"></div>\n </div>\n </ng-template>\n }\n}\n", dependencies: [{ kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: i3$1.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: PrySelectGridLayoutCssComponent, selector: "pry-toolbox-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.I18nPipe, name: "i18n" }] }); }
|
|
942
946
|
}
|
|
943
947
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DashboardDetailsComponent, decorators: [{
|
|
944
948
|
type: Component,
|
|
945
|
-
args: [{ selector: 'pry-dashboard-details', template: "<pry-toolbox-css></pry-toolbox-css>\n@if (
|
|
949
|
+
args: [{ selector: 'pry-dashboard-details', template: "<pry-toolbox-css></pry-toolbox-css>\n@if (globalManifest$ | async; as manifest) {\n @if (manifest.html) {\n <button\n class=\"a-btn o-dashboard-details\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n id=\"dashboard-details\"\n aria-controls=\"dashboard-details-panel\"\n aria-expanded=\"false\"\n (click)=\"openPanel($event)\"\n >\n <pry-icon iconSvg=\"dashboard-about\"></pry-icon>\n {{ '@pry.toolbox.about' | i18n }}\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isPanelOpen\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayPositions]=\"panelPosition\"\n (backdropClick)=\"isPanelOpen = false\"\n >\n <div class=\"o-modal\" id=\"dashboard-details-panel\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.toolbox.about' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closePanel($event)\">\n <pry-icon iconSvg=\"close\" [height]=\"20\" [width]=\"20\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div class=\"o-modal__content\" [innerHTML]=\"manifest.html\"></div>\n </div>\n </ng-template>\n }\n}\n" }]
|
|
946
950
|
}], ctorParameters: () => [{ type: i1.Store }] });
|
|
947
951
|
|
|
948
952
|
const ACTIONS = [
|