@solidev/data 0.0.1-rc.3 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/esm2020/lib/auth/auth-interceptor.service.mjs +3 -3
  2. package/esm2020/lib/data/data-backend.mjs +3 -3
  3. package/esm2020/lib/data/fields/base.mjs +2 -1
  4. package/esm2020/lib/dispedit/choice.pipe.mjs +6 -6
  5. package/esm2020/lib/dispedit/dispedit/dispedit.component.mjs +3 -3
  6. package/esm2020/lib/dispedit/factor.pipe.mjs +6 -6
  7. package/esm2020/lib/dispedit/factorc.pipe.mjs +6 -6
  8. package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +3 -3
  9. package/esm2020/lib/dispedit/flags/flags.component.mjs +3 -3
  10. package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +3 -3
  11. package/esm2020/lib/dispedit/richedit/richedit.component.mjs +3 -3
  12. package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +3 -3
  13. package/esm2020/lib/messages/message-zone/message-zone.component.mjs +3 -3
  14. package/esm2020/lib/messages/message.service.mjs +3 -3
  15. package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +5 -5
  16. package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +6 -5
  17. package/esm2020/lib/modellist/model-list-fields/model-list-fields.mjs +58 -10
  18. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +3 -3
  19. package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +3 -3
  20. package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +3 -3
  21. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +3 -3
  22. package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +3 -3
  23. package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +3 -3
  24. package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +3 -3
  25. package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +3 -3
  26. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +3 -3
  27. package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +3 -3
  28. package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +3 -3
  29. package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +3 -3
  30. package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +3 -3
  31. package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +3 -3
  32. package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +3 -3
  33. package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +3 -3
  34. package/esm2020/lib/modellist/model-list.service.mjs +4 -4
  35. package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +3 -3
  36. package/esm2020/lib/updates/update/update.component.mjs +3 -3
  37. package/esm2020/lib/updates/update.service.mjs +3 -3
  38. package/esm2020/lib/uploader/ng-file-drop.directive.mjs +3 -3
  39. package/esm2020/lib/uploader/ng-file-select.directive.mjs +3 -3
  40. package/esm2020/lib/uploader/ngx-uploader.module.mjs +4 -4
  41. package/esm2020/lib/utils/tab-memory.service.mjs +3 -3
  42. package/fesm2015/solidev-data.mjs +188 -138
  43. package/fesm2015/solidev-data.mjs.map +1 -1
  44. package/fesm2020/solidev-data.mjs +188 -138
  45. package/fesm2020/solidev-data.mjs.map +1 -1
  46. package/lib/data/data-collection.d.ts +2 -2
  47. package/lib/data/data-model.d.ts +1 -1
  48. package/lib/data/data-query.d.ts +1 -1
  49. package/lib/data/fields/base.d.ts +5 -2
  50. package/lib/data/fields/boolean.d.ts +1 -1
  51. package/lib/data/fields/stringfields.d.ts +1 -1
  52. package/lib/dispedit/dispedit/dispedit.constants.d.ts +2 -2
  53. package/lib/dispedit/fkselect/fkselect.component.d.ts +1 -1
  54. package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +1 -0
  55. package/lib/modellist/model-list-fields/model-list-fields.d.ts +1 -0
  56. package/lib/modellist/model-list-filters/filters/filtertypes.d.ts +1 -1
  57. package/lib/modellist/model-list-sorter/model-list-sorter.d.ts +2 -2
  58. package/lib/modellist/model-list.service.d.ts +3 -2
  59. package/lib/routing/routing.d.ts +4 -4
  60. package/package.json +1 -1
@@ -17,11 +17,11 @@ export class ModelListFieldHeaderComponent {
17
17
  this.list.fields.enable(f.name);
18
18
  }
19
19
  }
20
- ModelListFieldHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListFieldHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
- ModelListFieldHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListFieldHeaderComponent, isStandalone: true, selector: "data-model-list-field-header", inputs: { list: "list", field: "field", sort: "sort", sortField: "sortField" }, ngImport: i0, template: "\n<ng-template #label><span #ref>\n <ng-content></ng-content></span><span *ngIf=\"!ref.children.length\">{{list.fields.get(field)?.label||field}}</span></ng-template>\n<div class=\"d-flex flex-row justify-content-between align-items-end slabel\" [class.active]=\"mnu.isOpen()\">\n <div class=\"flex-grow-1\">\n <data-model-list-sorter [list]=\"list\" [field]=\"sortField||field\" *ngIf=\"sort\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </data-model-list-sorter>\n <ng-container *ngIf=\"!sort\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </ng-container>\n </div>\n <div class=\"navicons d-flex flex-row\"><i class=\"bi bi-caret-left-fill\" role=\"button\" (click)=\"list.fields.move(field, 'before')\"></i>\n <div ngbDropdown #mnu=\"ngbDropdown\"><i class=\"bi bi-record\" ngbDropdownToggle></i>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"disable()\"><i class=\"bi bi-trash me-2\"></i>Supprimer</button>\n <h6 class=\"dropdown-header\">Ajouter une colonne apr\u00E8s</h6>\n <ng-container *ngFor=\"let f of list.fields.fields|async\">\n <ng-container *ngIf=\"f.allowed &amp;&amp; !f.enabled\">\n <button ngbDropdownItem (click)=\"enable(f)\"><i class=\"bi bi-plus-circle me-2\"></i>{{f.label||f.name}}</button>\n </ng-container>\n </ng-container>\n </div>\n </div><i class=\"bi bi-caret-right-fill\" role=\"button\" (click)=\"list.fields.move(field, 'after')\"></i>\n </div>\n</div>", styles: [".slabel .navicons{opacity:0}.slabel:hover .navicons,.slabel.active .navicons{opacity:1!important}.dropdown-toggle:after{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i2.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i2.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i2.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i2.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: ModelListSorterComponent, selector: "data-model-list-sorter", inputs: ["list", "field"] }] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListFieldHeaderComponent, decorators: [{
20
+ ModelListFieldHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListFieldHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ ModelListFieldHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListFieldHeaderComponent, isStandalone: true, selector: "data-model-list-field-header", inputs: { list: "list", field: "field", sort: "sort", sortField: "sortField" }, ngImport: i0, template: "\n<ng-template #label><span #ref>\n <ng-content></ng-content></span><span *ngIf=\"!ref.children.length\">{{list.fields.get(field)?.label||field}}</span></ng-template>\n<div class=\"d-flex flex-row justify-content-between align-items-end slabel\" [class.active]=\"mnu.isOpen()\">\n <div class=\"flex-grow-1\">\n <data-model-list-sorter [list]=\"list\" [field]=\"sortField||field\" *ngIf=\"sort\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </data-model-list-sorter>\n <ng-container *ngIf=\"!sort\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </ng-container>\n </div>\n <div class=\"navicons d-flex flex-row\" [attr.aria-label]=\"'Gestion champs'\"><i class=\"bi bi-caret-left-fill\" role=\"button\" (click)=\"list.fields.move(field, 'before')\" aria-label=\"D\u00E9placer vers la gauche\"></i>\n <div ngbDropdown #mnu=\"ngbDropdown\" [container]=\"'body'\"><i class=\"bi bi-record\" ngbDropdownToggle aria-label=\"Ouvrir la boite de dialogue des champs\" role=\"button\"></i>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"disable()\"><i class=\"bi bi-trash me-2\"></i>Supprimer</button>\n <h6 class=\"dropdown-header\">Ajouter une colonne apr\u00E8s</h6>\n <ng-container *ngFor=\"let f of list.fields.fields|async\">\n <ng-container *ngIf=\"f.allowed &amp;&amp; !f.enabled\">\n <button ngbDropdownItem (click)=\"enable(f)\" [attr.aria-label]=\"f.label||f.name\"><i class=\"bi bi-plus-circle me-2\"></i>{{f.label||f.name}}</button>\n </ng-container>\n </ng-container>\n </div>\n </div><i class=\"bi bi-caret-right-fill\" role=\"button\" (click)=\"list.fields.move(field, 'after')\" aria-label=\"D\u00E9placer vers la droite\"></i>\n </div>\n</div>", styles: [".slabel .navicons{opacity:0}.slabel:hover .navicons,.slabel.active .navicons{opacity:1!important}.dropdown-toggle:after{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i2.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i2.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i2.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i2.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: ModelListSorterComponent, selector: "data-model-list-sorter", inputs: ["list", "field"] }] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListFieldHeaderComponent, decorators: [{
23
23
  type: Component,
24
- args: [{ selector: 'data-model-list-field-header', standalone: true, imports: [CommonModule, NgbDropdownModule, ModelListSorterComponent], template: "\n<ng-template #label><span #ref>\n <ng-content></ng-content></span><span *ngIf=\"!ref.children.length\">{{list.fields.get(field)?.label||field}}</span></ng-template>\n<div class=\"d-flex flex-row justify-content-between align-items-end slabel\" [class.active]=\"mnu.isOpen()\">\n <div class=\"flex-grow-1\">\n <data-model-list-sorter [list]=\"list\" [field]=\"sortField||field\" *ngIf=\"sort\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </data-model-list-sorter>\n <ng-container *ngIf=\"!sort\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </ng-container>\n </div>\n <div class=\"navicons d-flex flex-row\"><i class=\"bi bi-caret-left-fill\" role=\"button\" (click)=\"list.fields.move(field, 'before')\"></i>\n <div ngbDropdown #mnu=\"ngbDropdown\"><i class=\"bi bi-record\" ngbDropdownToggle></i>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"disable()\"><i class=\"bi bi-trash me-2\"></i>Supprimer</button>\n <h6 class=\"dropdown-header\">Ajouter une colonne apr\u00E8s</h6>\n <ng-container *ngFor=\"let f of list.fields.fields|async\">\n <ng-container *ngIf=\"f.allowed &amp;&amp; !f.enabled\">\n <button ngbDropdownItem (click)=\"enable(f)\"><i class=\"bi bi-plus-circle me-2\"></i>{{f.label||f.name}}</button>\n </ng-container>\n </ng-container>\n </div>\n </div><i class=\"bi bi-caret-right-fill\" role=\"button\" (click)=\"list.fields.move(field, 'after')\"></i>\n </div>\n</div>", styles: [".slabel .navicons{opacity:0}.slabel:hover .navicons,.slabel.active .navicons{opacity:1!important}.dropdown-toggle:after{display:none!important}\n"] }]
24
+ args: [{ selector: 'data-model-list-field-header', standalone: true, imports: [CommonModule, NgbDropdownModule, ModelListSorterComponent], template: "\n<ng-template #label><span #ref>\n <ng-content></ng-content></span><span *ngIf=\"!ref.children.length\">{{list.fields.get(field)?.label||field}}</span></ng-template>\n<div class=\"d-flex flex-row justify-content-between align-items-end slabel\" [class.active]=\"mnu.isOpen()\">\n <div class=\"flex-grow-1\">\n <data-model-list-sorter [list]=\"list\" [field]=\"sortField||field\" *ngIf=\"sort\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </data-model-list-sorter>\n <ng-container *ngIf=\"!sort\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </ng-container>\n </div>\n <div class=\"navicons d-flex flex-row\" [attr.aria-label]=\"'Gestion champs'\"><i class=\"bi bi-caret-left-fill\" role=\"button\" (click)=\"list.fields.move(field, 'before')\" aria-label=\"D\u00E9placer vers la gauche\"></i>\n <div ngbDropdown #mnu=\"ngbDropdown\" [container]=\"'body'\"><i class=\"bi bi-record\" ngbDropdownToggle aria-label=\"Ouvrir la boite de dialogue des champs\" role=\"button\"></i>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"disable()\"><i class=\"bi bi-trash me-2\"></i>Supprimer</button>\n <h6 class=\"dropdown-header\">Ajouter une colonne apr\u00E8s</h6>\n <ng-container *ngFor=\"let f of list.fields.fields|async\">\n <ng-container *ngIf=\"f.allowed &amp;&amp; !f.enabled\">\n <button ngbDropdownItem (click)=\"enable(f)\" [attr.aria-label]=\"f.label||f.name\"><i class=\"bi bi-plus-circle me-2\"></i>{{f.label||f.name}}</button>\n </ng-container>\n </ng-container>\n </div>\n </div><i class=\"bi bi-caret-right-fill\" role=\"button\" (click)=\"list.fields.move(field, 'after')\" aria-label=\"D\u00E9placer vers la droite\"></i>\n </div>\n</div>", styles: [".slabel .navicons{opacity:0}.slabel:hover .navicons,.slabel.active .navicons{opacity:1!important}.dropdown-toggle:after{display:none!important}\n"] }]
25
25
  }], ctorParameters: function () { return []; }, propDecorators: { list: [{
26
26
  type: Input
27
27
  }], field: [{
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
31
31
  }], sortField: [{
32
32
  type: Input
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWVsZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpZWxkcy9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQzs7OztBQVNqSCxNQUFNLE9BQU8sNkJBQTZCO0lBTXhDO1FBSGdCLFNBQUksR0FBYSxLQUFLLENBQUM7SUFHeEIsQ0FBQztJQUVoQixPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sTUFBTSxDQUFDLENBQWlCO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDOzswSEFmVSw2QkFBNkI7OEdBQTdCLDZCQUE2Qix3S0NmMUMsdWdEQXlCTSwwTURaTSxZQUFZLDJkQUFFLGlCQUFpQiwyZ0JBQUUsd0JBQXdCOzJGQUV4RCw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQzswRUFHcEQsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgTW9kZWxMaXN0RmllbGQgfSBmcm9tICcuLi9tb2RlbC1saXN0LWZpZWxkcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBNb2RlbExpc3RTb3J0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2RlbC1saXN0LXNvcnRlci9tb2RlbC1saXN0LXNvcnRlci9tb2RlbC1saXN0LXNvcnRlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtZmllbGQtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC1maWVsZC1oZWFkZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUsIE1vZGVsTGlzdFNvcnRlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdEZpZWxkSGVhZGVyQ29tcG9uZW50PFQgZXh0ZW5kcyBEYXRhTW9kZWw+IHtcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8VD47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZCE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNvcnQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzb3J0RmllbGQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGRpc2FibGUoKSB7XG4gICAgdGhpcy5saXN0LmZpZWxkcy5kaXNhYmxlKHRoaXMuZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZShmOiBNb2RlbExpc3RGaWVsZCkge1xuICAgIHRoaXMubGlzdC5maWVsZHMubW92ZShmLm5hbWUsICdhZnRlcicsIHRoaXMuZmllbGQpO1xuICAgIHRoaXMubGlzdC5maWVsZHMuZW5hYmxlKGYubmFtZSk7XG4gIH1cbn1cbiIsIlxuPG5nLXRlbXBsYXRlICNsYWJlbD48c3BhbiAjcmVmPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+PHNwYW4gKm5nSWY9XCIhcmVmLmNoaWxkcmVuLmxlbmd0aFwiPnt7bGlzdC5maWVsZHMuZ2V0KGZpZWxkKT8ubGFiZWx8fGZpZWxkfX08L3NwYW4+PC9uZy10ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kIHNsYWJlbFwiIFtjbGFzcy5hY3RpdmVdPVwibW51LmlzT3BlbigpXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgIDxkYXRhLW1vZGVsLWxpc3Qtc29ydGVyIFtsaXN0XT1cImxpc3RcIiBbZmllbGRdPVwic29ydEZpZWxkfHxmaWVsZFwiICpuZ0lmPVwic29ydFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kYXRhLW1vZGVsLWxpc3Qtc29ydGVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc29ydFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibmF2aWNvbnMgZC1mbGV4IGZsZXgtcm93XCI+PGkgY2xhc3M9XCJiaSBiaS1jYXJldC1sZWZ0LWZpbGxcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImxpc3QuZmllbGRzLm1vdmUoZmllbGQsICdiZWZvcmUnKVwiPjwvaT5cbiAgICA8ZGl2IG5nYkRyb3Bkb3duICNtbnU9XCJuZ2JEcm9wZG93blwiPjxpIGNsYXNzPVwiYmkgYmktcmVjb3JkXCIgbmdiRHJvcGRvd25Ub2dnbGU+PC9pPlxuICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnU+XG4gICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJkaXNhYmxlKClcIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoIG1lLTJcIj48L2k+U3VwcHJpbWVyPC9idXR0b24+XG4gICAgICAgIDxoNiBjbGFzcz1cImRyb3Bkb3duLWhlYWRlclwiPkFqb3V0ZXIgdW5lIGNvbG9ubmUgYXByw6hzPC9oNj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZiBvZiBsaXN0LmZpZWxkcy5maWVsZHN8YXN5bmNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZi5hbGxvd2VkICZhbXA7JmFtcDsgIWYuZW5hYmxlZFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImVuYWJsZShmKVwiPjxpIGNsYXNzPVwiYmkgYmktcGx1cy1jaXJjbGUgbWUtMlwiPjwvaT57e2YubGFiZWx8fGYubmFtZX19PC9idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+PGkgY2xhc3M9XCJiaSBiaS1jYXJldC1yaWdodC1maWxsXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJsaXN0LmZpZWxkcy5tb3ZlKGZpZWxkLCAnYWZ0ZXInKVwiPjwvaT5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWVsZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpZWxkcy9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQzs7OztBQVNqSCxNQUFNLE9BQU8sNkJBQTZCO0lBTXhDO1FBSGdCLFNBQUksR0FBYSxLQUFLLENBQUM7SUFHeEIsQ0FBQztJQUVoQixPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sTUFBTSxDQUFDLENBQWlCO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDOzswSEFmVSw2QkFBNkI7OEdBQTdCLDZCQUE2Qix3S0NmMUMseXdEQXlCTSwwTURaTSxZQUFZLDJkQUFFLGlCQUFpQiwyZ0JBQUUsd0JBQXdCOzJGQUV4RCw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQzswRUFHcEQsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgTW9kZWxMaXN0RmllbGQgfSBmcm9tICcuLi9tb2RlbC1saXN0LWZpZWxkcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdiRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBNb2RlbExpc3RTb3J0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2RlbC1saXN0LXNvcnRlci9tb2RlbC1saXN0LXNvcnRlci9tb2RlbC1saXN0LXNvcnRlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtZmllbGQtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC1maWVsZC1oZWFkZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdiRHJvcGRvd25Nb2R1bGUsIE1vZGVsTGlzdFNvcnRlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdEZpZWxkSGVhZGVyQ29tcG9uZW50PFQgZXh0ZW5kcyBEYXRhTW9kZWw+IHtcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8VD47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZCE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNvcnQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzb3J0RmllbGQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGRpc2FibGUoKSB7XG4gICAgdGhpcy5saXN0LmZpZWxkcy5kaXNhYmxlKHRoaXMuZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZShmOiBNb2RlbExpc3RGaWVsZCkge1xuICAgIHRoaXMubGlzdC5maWVsZHMubW92ZShmLm5hbWUsICdhZnRlcicsIHRoaXMuZmllbGQpO1xuICAgIHRoaXMubGlzdC5maWVsZHMuZW5hYmxlKGYubmFtZSk7XG4gIH1cbn1cbiIsIlxuPG5nLXRlbXBsYXRlICNsYWJlbD48c3BhbiAjcmVmPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+PHNwYW4gKm5nSWY9XCIhcmVmLmNoaWxkcmVuLmxlbmd0aFwiPnt7bGlzdC5maWVsZHMuZ2V0KGZpZWxkKT8ubGFiZWx8fGZpZWxkfX08L3NwYW4+PC9uZy10ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kIHNsYWJlbFwiIFtjbGFzcy5hY3RpdmVdPVwibW51LmlzT3BlbigpXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgIDxkYXRhLW1vZGVsLWxpc3Qtc29ydGVyIFtsaXN0XT1cImxpc3RcIiBbZmllbGRdPVwic29ydEZpZWxkfHxmaWVsZFwiICpuZ0lmPVwic29ydFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kYXRhLW1vZGVsLWxpc3Qtc29ydGVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc29ydFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibmF2aWNvbnMgZC1mbGV4IGZsZXgtcm93XCIgW2F0dHIuYXJpYS1sYWJlbF09XCInR2VzdGlvbiBjaGFtcHMnXCI+PGkgY2xhc3M9XCJiaSBiaS1jYXJldC1sZWZ0LWZpbGxcIiByb2xlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImxpc3QuZmllbGRzLm1vdmUoZmllbGQsICdiZWZvcmUnKVwiIGFyaWEtbGFiZWw9XCJEw6lwbGFjZXIgdmVycyBsYSBnYXVjaGVcIj48L2k+XG4gICAgPGRpdiBuZ2JEcm9wZG93biAjbW51PVwibmdiRHJvcGRvd25cIiBbY29udGFpbmVyXT1cIidib2R5J1wiPjxpIGNsYXNzPVwiYmkgYmktcmVjb3JkXCIgbmdiRHJvcGRvd25Ub2dnbGUgYXJpYS1sYWJlbD1cIk91dnJpciBsYSBib2l0ZSBkZSBkaWFsb2d1ZSBkZXMgY2hhbXBzXCIgcm9sZT1cImJ1dHRvblwiPjwvaT5cbiAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxuICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiZGlzYWJsZSgpXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaCBtZS0yXCI+PC9pPlN1cHByaW1lcjwvYnV0dG9uPlxuICAgICAgICA8aDYgY2xhc3M9XCJkcm9wZG93bi1oZWFkZXJcIj5Bam91dGVyIHVuZSBjb2xvbm5lIGFwcsOoczwvaDY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGYgb2YgbGlzdC5maWVsZHMuZmllbGRzfGFzeW5jXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImYuYWxsb3dlZCAmYW1wOyZhbXA7ICFmLmVuYWJsZWRcIj5cbiAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJlbmFibGUoZilcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImYubGFiZWx8fGYubmFtZVwiPjxpIGNsYXNzPVwiYmkgYmktcGx1cy1jaXJjbGUgbWUtMlwiPjwvaT57e2YubGFiZWx8fGYubmFtZX19PC9idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+PGkgY2xhc3M9XCJiaSBiaS1jYXJldC1yaWdodC1maWxsXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJsaXN0LmZpZWxkcy5tb3ZlKGZpZWxkLCAnYWZ0ZXInKVwiIGFyaWEtbGFiZWw9XCJEw6lwbGFjZXIgdmVycyBsYSBkcm9pdGVcIj48L2k+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -16,6 +16,7 @@ const DragConfig = {
16
16
  export class ModelListFieldsSelectorComponent {
17
17
  constructor(_ofc) {
18
18
  this._ofc = _ofc;
19
+ this.seeMore = false;
19
20
  }
20
21
  ngOnInit() {
21
22
  if (!this.list || !this.list.fields) {
@@ -44,20 +45,20 @@ export class ModelListFieldsSelectorComponent {
44
45
  }
45
46
  }
46
47
  }
47
- ModelListFieldsSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListFieldsSelectorComponent, deps: [{ token: i1.NgbOffcanvas }], target: i0.ɵɵFactoryTarget.Component });
48
- ModelListFieldsSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListFieldsSelectorComponent, isStandalone: true, selector: "data-model-list-fields-selector", inputs: { list: "list" }, providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }], viewQueries: [{ propertyName: "ofctpl", first: true, predicate: ["selector"], descendants: true, static: true }], ngImport: i0, template: "<i class=\"bi bi-list-ul\" (click)=\"open()\" role=\"button\"></i>\n<ng-template #selector let-offcanvas>\n <div class=\"offcanvas-header\">\n <h4 class=\"offcanvas-title\">Choix des champs</h4>\n <button class=\"btn-close\" type=\"button\" aria-label=\"Close\" (click)=\"offcanvas.dismiss('x')\"></button>\n </div>\n <div class=\"offcanvas-body\" cdkScrollable>\n <div class=\"fields-list\" cdkDropList cdkDropListLockAxis=\"y\" (cdkDropListDropped)=\"drop($event)\" *ngIf=\"list.fields.fields|async as fields\">\n <ng-container *ngFor=\"let f of fields\">\n <div class=\"field-box\" cdkDrag (click)=\"toggle(f)\" [cdkDragData]=\"f.name\" [class.enabled]=\"f.enabled\" [class.compact]=\"fields.length&gt;30\">{{f.label}}</div>\n </ng-container>\n </div>\n </div>\n</ng-template>", styles: [".fields-list{width:100%;max-width:100%;border:var(--bs-border-style) var(--bs-border-width) var(--bs-border-color);min-height:50px;display:block;background:var(--bs-body-bg-rgb);border-radius:var(--bs-border-radius-sm);overflow:hidden}.field-box{padding:.5rem 1rem;border-bottom:solid 1px #ccc;color:var(--bs-secondary);display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:var(--bs-body-font-size)}.field-box.compact{padding:.2rem 1rem;font-size:.8rem}.field-box.enabled{background-color:#90ee90;color:var(--bs-black)}.cdk-drag-preview{box-sizing:border-box;border-radius:var(--bs-border-radius-sm);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.field-box:last-child{border:none}.fields-list.cdk-drop-list-dragging .field-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i4.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: i4.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: "ngmodule", type: CdkScrollableModule }, { kind: "ngmodule", type: NgbOffcanvasModule }] });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListFieldsSelectorComponent, decorators: [{
48
+ ModelListFieldsSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListFieldsSelectorComponent, deps: [{ token: i1.NgbOffcanvas }], target: i0.ɵɵFactoryTarget.Component });
49
+ ModelListFieldsSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListFieldsSelectorComponent, isStandalone: true, selector: "data-model-list-fields-selector", inputs: { list: "list" }, providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }], viewQueries: [{ propertyName: "ofctpl", first: true, predicate: ["selector"], descendants: true, static: true }], ngImport: i0, template: "<i class=\"bi bi-list-ul\" (click)=\"open()\" role=\"button\" aria-label=\"Choix des champs\"></i>\n<ng-template #selector let-offcanvas>\n <div class=\"offcanvas-header\">\n <h4 class=\"offcanvas-title\">Choix des champs</h4>\n <button class=\"btn-close\" type=\"button\" aria-label=\"Close\" (click)=\"offcanvas.dismiss('x')\"></button>\n </div>\n <div class=\"offcanvas-body\" cdkScrollable>\n <div class=\"fields-list\" cdkDropList cdkDropListLockAxis=\"y\" (cdkDropListDropped)=\"drop($event)\" *ngIf=\"list.fields.fields|async as fields\">\n <ng-container *ngFor=\"let f of fields\">\n <ng-container *ngIf=\"seeMore || f.priority &gt;= 0\">\n <div class=\"field-box\" cdkDrag (click)=\"toggle(f)\" [cdkDragData]=\"f.name\" [class.enabled]=\"f.enabled\" [class.compact]=\"fields.length&gt;30\" [attr.arial-label]=\"f.label\" role=\"button\">{{f.label}}<span class=\"badge bg-info\"> {{f.priority}}</span></div>\n </ng-container>\n </ng-container>\n </div>\n <button class=\"btn btn-sm btn-link\" (click)=\"seeMore=!seeMore\">plus de champs</button>\n </div>\n</ng-template>", styles: [".fields-list{width:100%;max-width:100%;border:var(--bs-border-style) var(--bs-border-width) var(--bs-border-color);min-height:50px;display:block;background:var(--bs-body-bg-rgb);border-radius:var(--bs-border-radius-sm);overflow:hidden}.field-box{padding:.5rem 1rem;border-bottom:solid 1px #ccc;color:var(--bs-black);display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:var(--bs-body-font-size)}.field-box.compact{padding:.2rem 1rem;font-size:.9rem}.field-box.enabled{background-color:var(--bs-success);color:var(--bs-white)}.cdk-drag-preview{box-sizing:border-box;border-radius:var(--bs-border-radius-sm);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.field-box:last-child{border:none}.fields-list.cdk-drop-list-dragging .field-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i4.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: i4.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: "ngmodule", type: CdkScrollableModule }, { kind: "ngmodule", type: NgbOffcanvasModule }] });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListFieldsSelectorComponent, decorators: [{
50
51
  type: Component,
51
52
  args: [{ selector: 'data-model-list-fields-selector', standalone: true, imports: [
52
53
  CommonModule,
53
54
  DragDropModule,
54
55
  CdkScrollableModule,
55
56
  NgbOffcanvasModule,
56
- ], providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }], template: "<i class=\"bi bi-list-ul\" (click)=\"open()\" role=\"button\"></i>\n<ng-template #selector let-offcanvas>\n <div class=\"offcanvas-header\">\n <h4 class=\"offcanvas-title\">Choix des champs</h4>\n <button class=\"btn-close\" type=\"button\" aria-label=\"Close\" (click)=\"offcanvas.dismiss('x')\"></button>\n </div>\n <div class=\"offcanvas-body\" cdkScrollable>\n <div class=\"fields-list\" cdkDropList cdkDropListLockAxis=\"y\" (cdkDropListDropped)=\"drop($event)\" *ngIf=\"list.fields.fields|async as fields\">\n <ng-container *ngFor=\"let f of fields\">\n <div class=\"field-box\" cdkDrag (click)=\"toggle(f)\" [cdkDragData]=\"f.name\" [class.enabled]=\"f.enabled\" [class.compact]=\"fields.length&gt;30\">{{f.label}}</div>\n </ng-container>\n </div>\n </div>\n</ng-template>", styles: [".fields-list{width:100%;max-width:100%;border:var(--bs-border-style) var(--bs-border-width) var(--bs-border-color);min-height:50px;display:block;background:var(--bs-body-bg-rgb);border-radius:var(--bs-border-radius-sm);overflow:hidden}.field-box{padding:.5rem 1rem;border-bottom:solid 1px #ccc;color:var(--bs-secondary);display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:var(--bs-body-font-size)}.field-box.compact{padding:.2rem 1rem;font-size:.8rem}.field-box.enabled{background-color:#90ee90;color:var(--bs-black)}.cdk-drag-preview{box-sizing:border-box;border-radius:var(--bs-border-radius-sm);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.field-box:last-child{border:none}.fields-list.cdk-drop-list-dragging .field-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
57
+ ], providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }], template: "<i class=\"bi bi-list-ul\" (click)=\"open()\" role=\"button\" aria-label=\"Choix des champs\"></i>\n<ng-template #selector let-offcanvas>\n <div class=\"offcanvas-header\">\n <h4 class=\"offcanvas-title\">Choix des champs</h4>\n <button class=\"btn-close\" type=\"button\" aria-label=\"Close\" (click)=\"offcanvas.dismiss('x')\"></button>\n </div>\n <div class=\"offcanvas-body\" cdkScrollable>\n <div class=\"fields-list\" cdkDropList cdkDropListLockAxis=\"y\" (cdkDropListDropped)=\"drop($event)\" *ngIf=\"list.fields.fields|async as fields\">\n <ng-container *ngFor=\"let f of fields\">\n <ng-container *ngIf=\"seeMore || f.priority &gt;= 0\">\n <div class=\"field-box\" cdkDrag (click)=\"toggle(f)\" [cdkDragData]=\"f.name\" [class.enabled]=\"f.enabled\" [class.compact]=\"fields.length&gt;30\" [attr.arial-label]=\"f.label\" role=\"button\">{{f.label}}<span class=\"badge bg-info\"> {{f.priority}}</span></div>\n </ng-container>\n </ng-container>\n </div>\n <button class=\"btn btn-sm btn-link\" (click)=\"seeMore=!seeMore\">plus de champs</button>\n </div>\n</ng-template>", styles: [".fields-list{width:100%;max-width:100%;border:var(--bs-border-style) var(--bs-border-width) var(--bs-border-color);min-height:50px;display:block;background:var(--bs-body-bg-rgb);border-radius:var(--bs-border-radius-sm);overflow:hidden}.field-box{padding:.5rem 1rem;border-bottom:solid 1px #ccc;color:var(--bs-black);display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:var(--bs-body-font-size)}.field-box.compact{padding:.2rem 1rem;font-size:.9rem}.field-box.enabled{background-color:var(--bs-success);color:var(--bs-white)}.cdk-drag-preview{box-sizing:border-box;border-radius:var(--bs-border-radius-sm);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.field-box:last-child{border:none}.fields-list.cdk-drop-list-dragging .field-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
57
58
  }], ctorParameters: function () { return [{ type: i1.NgbOffcanvas }]; }, propDecorators: { list: [{
58
59
  type: Input
59
60
  }], ofctpl: [{
60
61
  type: ViewChild,
61
62
  args: ['selector', { static: true }]
62
63
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWVsZHMtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpZWxkcy9tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3Rvci9tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGRzLXNlbGVjdG9yL21vZGVsLWxpc3QtZmllbGRzLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQ0wsZUFBZSxFQUVmLGNBQWMsR0FDZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQUU3RCxNQUFNLFVBQVUsR0FBRztJQUNqQixrQkFBa0IsRUFBRSxDQUFDO0lBQ3JCLCtCQUErQixFQUFFLEVBQUU7SUFDbkMsTUFBTSxFQUFFLEtBQUs7Q0FDZCxDQUFDO0FBZUYsTUFBTSxPQUFPLGdDQUFnQztJQU0zQyxZQUFvQixJQUFrQjtRQUFsQixTQUFJLEdBQUosSUFBSSxDQUFjO0lBQUcsQ0FBQztJQUVuQyxRQUFRO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQTJCO1FBQzlCLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQzlDLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDVjthQUFNO1lBQ0wsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxNQUFNLENBQUMsQ0FBaUI7UUFDN0IsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQzthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7OzZIQWxDVSxnQ0FBZ0M7aUhBQWhDLGdDQUFnQyx3R0FGaEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLDRJQzlCakUsOHlCQWFjLCtqQ0RZVixZQUFZLG9UQUNaLGNBQWMsMmlDQUNkLG1CQUFtQiw4QkFDbkIsa0JBQWtCOzJGQUlULGdDQUFnQztrQkFiNUMsU0FBUzsrQkFDRSxpQ0FBaUMsY0FHL0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGtCQUFrQjtxQkFDbkIsYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUM7bUdBSy9DLElBQUk7c0JBQW5CLEtBQUs7Z0JBRUMsTUFBTTtzQkFEWixTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQge1xuICBDREtfRFJBR19DT05GSUcsXG4gIENka0RyYWdEcm9wLFxuICBEcmFnRHJvcE1vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdiT2ZmY2FudmFzLCBOZ2JPZmZjYW52YXNNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBNb2RlbExpc3RGaWVsZCB9IGZyb20gJy4uL21vZGVsLWxpc3QtZmllbGRzJztcbmltcG9ydCB7IENka1Njcm9sbGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuY29uc3QgRHJhZ0NvbmZpZyA9IHtcbiAgZHJhZ1N0YXJ0VGhyZXNob2xkOiA1LFxuICBwb2ludGVyRGlyZWN0aW9uQ2hhbmdlVGhyZXNob2xkOiAxMCxcbiAgekluZGV4OiAxMDAwMCxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC1maWVsZHMtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC1maWVsZHMtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3Rvci5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIENka1Njcm9sbGFibGVNb2R1bGUsXG4gICAgTmdiT2ZmY2FudmFzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENES19EUkFHX0NPTkZJRywgdXNlVmFsdWU6IERyYWdDb25maWcgfV0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdEZpZWxkc1NlbGVjdG9yQ29tcG9uZW50PFQgZXh0ZW5kcyBEYXRhTW9kZWw+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PFQ+O1xuICBAVmlld0NoaWxkKCdzZWxlY3RvcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvZmN0cGwhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfb2ZjOiBOZ2JPZmZjYW52YXMpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5saXN0IHx8ICF0aGlzLmxpc3QuZmllbGRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgbGlzdCAvIGZpZWxkcycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuKCkge1xuICAgIHRoaXMuX29mYy5vcGVuKHRoaXMub2ZjdHBsKTtcbiAgfVxuXG4gIGRyb3AoJGV2ZW50OiBDZGtEcmFnRHJvcDxULCBhbnk+KSB7XG4gICAgbGV0IHBvcyA9ICRldmVudC5jdXJyZW50SW5kZXggKiAxMDtcbiAgICBpZiAoJGV2ZW50LmN1cnJlbnRJbmRleCA+ICRldmVudC5wcmV2aW91c0luZGV4KSB7XG4gICAgICBwb3MgKz0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9zIC09IDE7XG4gICAgfVxuICAgIHRoaXMubGlzdC5maWVsZHMuc2V0UG9zaXRpb24oJGV2ZW50Lml0ZW0uZGF0YSwgcG9zKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGUoZjogTW9kZWxMaXN0RmllbGQpIHtcbiAgICBpZiAoZi5lbmFibGVkKSB7XG4gICAgICB0aGlzLmxpc3QuZmllbGRzLmRpc2FibGUoZi5uYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saXN0LmZpZWxkcy5lbmFibGUoZi5uYW1lKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxpIGNsYXNzPVwiYmkgYmktbGlzdC11bFwiIChjbGljayk9XCJvcGVuKClcIiByb2xlPVwiYnV0dG9uXCI+PC9pPlxuPG5nLXRlbXBsYXRlICNzZWxlY3RvciBsZXQtb2ZmY2FudmFzPlxuICA8ZGl2IGNsYXNzPVwib2ZmY2FudmFzLWhlYWRlclwiPlxuICAgIDxoNCBjbGFzcz1cIm9mZmNhbnZhcy10aXRsZVwiPkNob2l4IGRlcyBjaGFtcHM8L2g0PlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4tY2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm9mZmNhbnZhcy5kaXNtaXNzKCd4JylcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvZmZjYW52YXMtYm9keVwiIGNka1Njcm9sbGFibGU+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkcy1saXN0XCIgY2RrRHJvcExpc3QgY2RrRHJvcExpc3RMb2NrQXhpcz1cInlcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiICpuZ0lmPVwibGlzdC5maWVsZHMuZmllbGRzfGFzeW5jIGFzIGZpZWxkc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZiBvZiBmaWVsZHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLWJveFwiIGNka0RyYWcgKGNsaWNrKT1cInRvZ2dsZShmKVwiIFtjZGtEcmFnRGF0YV09XCJmLm5hbWVcIiBbY2xhc3MuZW5hYmxlZF09XCJmLmVuYWJsZWRcIiBbY2xhc3MuY29tcGFjdF09XCJmaWVsZHMubGVuZ3RoJmd0OzMwXCI+e3tmLmxhYmVsfX08L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWVsZHMtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpZWxkcy9tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3Rvci9tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGRzLXNlbGVjdG9yL21vZGVsLWxpc3QtZmllbGRzLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQ0wsZUFBZSxFQUVmLGNBQWMsR0FDZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQUU3RCxNQUFNLFVBQVUsR0FBRztJQUNqQixrQkFBa0IsRUFBRSxDQUFDO0lBQ3JCLCtCQUErQixFQUFFLEVBQUU7SUFDbkMsTUFBTSxFQUFFLEtBQUs7Q0FDZCxDQUFDO0FBZUYsTUFBTSxPQUFPLGdDQUFnQztJQVEzQyxZQUFvQixJQUFrQjtRQUFsQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBRi9CLFlBQU8sR0FBWSxLQUFLLENBQUM7SUFFUyxDQUFDO0lBRW5DLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBMkI7UUFDOUIsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDbkMsSUFBSSxNQUFNLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDOUMsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNWO2FBQU07WUFDTCxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxDQUFpQjtRQUM3QixJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzs7NkhBcENVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLHdHQUZoQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsNElDOUJqRSw0bUNBZ0JjLHFrQ0RTVixZQUFZLG9UQUNaLGNBQWMsMmlDQUNkLG1CQUFtQiw4QkFDbkIsa0JBQWtCOzJGQUlULGdDQUFnQztrQkFiNUMsU0FBUzsrQkFDRSxpQ0FBaUMsY0FHL0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGtCQUFrQjtxQkFDbkIsYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUM7bUdBSy9DLElBQUk7c0JBQW5CLEtBQUs7Z0JBRUMsTUFBTTtzQkFEWixTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQge1xuICBDREtfRFJBR19DT05GSUcsXG4gIENka0RyYWdEcm9wLFxuICBEcmFnRHJvcE1vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdiT2ZmY2FudmFzLCBOZ2JPZmZjYW52YXNNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBNb2RlbExpc3RGaWVsZCB9IGZyb20gJy4uL21vZGVsLWxpc3QtZmllbGRzJztcbmltcG9ydCB7IENka1Njcm9sbGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcblxuY29uc3QgRHJhZ0NvbmZpZyA9IHtcbiAgZHJhZ1N0YXJ0VGhyZXNob2xkOiA1LFxuICBwb2ludGVyRGlyZWN0aW9uQ2hhbmdlVGhyZXNob2xkOiAxMCxcbiAgekluZGV4OiAxMDAwMCxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC1maWVsZHMtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC1maWVsZHMtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3Rvci5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIENka1Njcm9sbGFibGVNb2R1bGUsXG4gICAgTmdiT2ZmY2FudmFzTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENES19EUkFHX0NPTkZJRywgdXNlVmFsdWU6IERyYWdDb25maWcgfV0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdEZpZWxkc1NlbGVjdG9yQ29tcG9uZW50PFQgZXh0ZW5kcyBEYXRhTW9kZWw+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PFQ+O1xuICBAVmlld0NoaWxkKCdzZWxlY3RvcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvZmN0cGwhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgcHVibGljIHNlZU1vcmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9vZmM6IE5nYk9mZmNhbnZhcykge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmxpc3QgfHwgIXRoaXMubGlzdC5maWVsZHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBsaXN0IC8gZmllbGRzJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW4oKSB7XG4gICAgdGhpcy5fb2ZjLm9wZW4odGhpcy5vZmN0cGwpO1xuICB9XG5cbiAgZHJvcCgkZXZlbnQ6IENka0RyYWdEcm9wPFQsIGFueT4pIHtcbiAgICBsZXQgcG9zID0gJGV2ZW50LmN1cnJlbnRJbmRleCAqIDEwO1xuICAgIGlmICgkZXZlbnQuY3VycmVudEluZGV4ID4gJGV2ZW50LnByZXZpb3VzSW5kZXgpIHtcbiAgICAgIHBvcyArPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBwb3MgLT0gMTtcbiAgICB9XG4gICAgdGhpcy5saXN0LmZpZWxkcy5zZXRQb3NpdGlvbigkZXZlbnQuaXRlbS5kYXRhLCBwb3MpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZShmOiBNb2RlbExpc3RGaWVsZCkge1xuICAgIGlmIChmLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMubGlzdC5maWVsZHMuZGlzYWJsZShmLm5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxpc3QuZmllbGRzLmVuYWJsZShmLm5hbWUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGkgY2xhc3M9XCJiaSBiaS1saXN0LXVsXCIgKGNsaWNrKT1cIm9wZW4oKVwiIHJvbGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiQ2hvaXggZGVzIGNoYW1wc1wiPjwvaT5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0b3IgbGV0LW9mZmNhbnZhcz5cbiAgPGRpdiBjbGFzcz1cIm9mZmNhbnZhcy1oZWFkZXJcIj5cbiAgICA8aDQgY2xhc3M9XCJvZmZjYW52YXMtdGl0bGVcIj5DaG9peCBkZXMgY2hhbXBzPC9oND5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWNsb3NlXCIgdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJvZmZjYW52YXMuZGlzbWlzcygneCcpXCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwib2ZmY2FudmFzLWJvZHlcIiBjZGtTY3JvbGxhYmxlPlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZHMtbGlzdFwiIGNka0Ryb3BMaXN0IGNka0Ryb3BMaXN0TG9ja0F4aXM9XCJ5XCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIiAqbmdJZj1cImxpc3QuZmllbGRzLmZpZWxkc3xhc3luYyBhcyBmaWVsZHNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGYgb2YgZmllbGRzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWVNb3JlIHx8IGYucHJpb3JpdHkgJmd0Oz0gMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1ib3hcIiBjZGtEcmFnIChjbGljayk9XCJ0b2dnbGUoZilcIiBbY2RrRHJhZ0RhdGFdPVwiZi5uYW1lXCIgW2NsYXNzLmVuYWJsZWRdPVwiZi5lbmFibGVkXCIgW2NsYXNzLmNvbXBhY3RdPVwiZmllbGRzLmxlbmd0aCZndDszMFwiIFthdHRyLmFyaWFsLWxhYmVsXT1cImYubGFiZWxcIiByb2xlPVwiYnV0dG9uXCI+e3tmLmxhYmVsfX08c3BhbiBjbGFzcz1cImJhZGdlIGJnLWluZm9cIj4ge3tmLnByaW9yaXR5fX08L3NwYW4+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpbmtcIiAoY2xpY2spPVwic2VlTW9yZT0hc2VlTW9yZVwiPnBsdXMgZGUgY2hhbXBzPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -15,6 +15,7 @@ export class ModelListFields {
15
15
  enabled: false,
16
16
  field: m.FV(fn),
17
17
  position: tmp.length * 10,
18
+ priority: m.FM(fn).priority || 0,
18
19
  });
19
20
  }
20
21
  // Add custom fields if provided
@@ -27,24 +28,33 @@ export class ModelListFields {
27
28
  enabled: false,
28
29
  field: null,
29
30
  position: tmp.length * 10,
31
+ priority: c.priority || 0,
30
32
  });
31
33
  }
34
+ tmp.sort((b, a) => a.priority === b.priority
35
+ ? b.position - a.position
36
+ : a.priority - b.priority);
37
+ let pos = 0;
38
+ for (const i of tmp) {
39
+ i.position = pos;
40
+ pos += 10;
41
+ }
32
42
  // Prepare allowed fields (all fields if not set or empty)
33
43
  let allowed;
44
+ let ddefaults;
34
45
  if (params?.allowed === undefined || params?.allowed.length === 0) {
35
- allowed = Array.from(m.FN);
36
- for (const c of custom) {
37
- allowed.push(c.name);
38
- }
46
+ allowed = tmp.map((f) => f.name);
47
+ ddefaults = tmp.filter((f) => f.priority >= 0).map((f) => f.name);
39
48
  }
40
49
  else {
41
50
  allowed = params.allowed;
51
+ ddefaults = params.allowed;
42
52
  }
43
53
  // Prepare excluded fields
44
54
  const excluded = params?.excluded || [];
45
55
  // Process default fields
46
56
  // Use all allowed fields if empty of not set
47
- const defaults = params?.defaults || allowed;
57
+ const defaults = params?.defaults || ddefaults;
48
58
  // Prepare fields status
49
59
  // Set allowed
50
60
  for (const fe of allowed) {
@@ -55,15 +65,13 @@ export class ModelListFields {
55
65
  }
56
66
  }
57
67
  // Set defaults
58
- let pos = 0;
68
+ let out = [];
59
69
  for (const fe of defaults) {
60
70
  for (const f of tmp) {
61
71
  if (f.name === fe) {
62
72
  f.enabled = true;
63
73
  f.allowed = true;
64
- f.position = pos;
65
74
  }
66
- pos += 10;
67
75
  }
68
76
  }
69
77
  // remove excluded
@@ -81,7 +89,47 @@ export class ModelListFields {
81
89
  filtered.push(f);
82
90
  }
83
91
  }
84
- this.__fields = filtered;
92
+ const ordered = [];
93
+ const enabled = filtered.filter((f) => f.enabled);
94
+ pos = 0;
95
+ for (const fe of defaults) {
96
+ for (const f of enabled) {
97
+ if (f.name === fe) {
98
+ f.position = pos;
99
+ pos += 10;
100
+ }
101
+ }
102
+ }
103
+ enabled.sort((a, b) => a.position - b.position);
104
+ const disabled = filtered.filter((f) => !f.enabled);
105
+ let ei = 0;
106
+ let di = 0;
107
+ for (let i = 0; i < filtered.length; i++) {
108
+ if (enabled[ei] && disabled[di]) {
109
+ if (enabled[ei].priority > disabled[di].priority) {
110
+ ordered.push(enabled[ei]);
111
+ ei += 1;
112
+ }
113
+ else {
114
+ ordered.push(disabled[di]);
115
+ di += 1;
116
+ }
117
+ }
118
+ else if (enabled[ei]) {
119
+ ordered.push(enabled[ei]);
120
+ ei += 1;
121
+ }
122
+ else {
123
+ ordered.push(disabled[di]);
124
+ di += 1;
125
+ }
126
+ }
127
+ pos = 0;
128
+ for (const f of ordered) {
129
+ f.position = pos;
130
+ pos += 10;
131
+ }
132
+ this.__fields = ordered;
85
133
  this._update();
86
134
  }
87
135
  get fields() {
@@ -222,4 +270,4 @@ export class ModelListFields {
222
270
  this._fields.next(this.__fields);
223
271
  }
224
272
  }
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFjakQsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBWSxVQUF5QixFQUFFLE1BQXFCO1FBc0ZwRCxZQUFPLEdBQUcsSUFBSSxhQUFhLENBQW1CLENBQUMsQ0FBQyxDQUFDO1FBTWpELGFBQVEsR0FBYSxFQUFFLENBQUM7UUFNeEIsWUFBTyxHQUFHLElBQUksYUFBYSxDQUFXLENBQUMsQ0FBQyxDQUFDO1FBakcvQyx3QkFBd0I7UUFDeEIsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyQixHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNQLElBQUksRUFBRSxFQUFFO2dCQUNSLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBSSxFQUFFO2dCQUNqQyxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRTthQUMxQixDQUFDLENBQUM7U0FDSjtRQUNELGdDQUFnQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNwQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtZQUN0QixH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ekIsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDYixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsQjtTQUNGO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IEZpZWxkc1BhcmFtcyB9IGZyb20gJy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxMaXN0RmllbGQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGFsbG93ZWQ6IGJvb2xlYW47XG4gIGZpZWxkOiBhbnk7XG4gIHBvc2l0aW9uOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbExpc3RGaWVsZHM8VCBleHRlbmRzIERhdGFNb2RlbD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9fZmllbGRzITogTW9kZWxMaXN0RmllbGRbXTtcblxuICBjb25zdHJ1Y3Rvcihjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LCBwYXJhbXM/OiBGaWVsZHNQYXJhbXMpIHtcbiAgICAvLyBHZXQgZmllbGRzIGZyb20gbW9kZWxcbiAgICBjb25zdCBtID0gY29sbGVjdGlvbi5jcmVhdGUoKTtcbiAgICBjb25zdCB0bXAgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGZuIG9mIG0uRk4pIHtcbiAgICAgIHRtcC5wdXNoKHtcbiAgICAgICAgbmFtZTogZm4sXG4gICAgICAgIGxhYmVsOiBtLkZNKGZuKS5kZXNjcmlwdGlvbiB8fCBmbixcbiAgICAgICAgYWxsb3dlZDogZmFsc2UsXG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBmaWVsZDogbS5GVihmbiksXG4gICAgICAgIHBvc2l0aW9uOiB0bXAubGVuZ3RoICogMTAsXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gQWRkIGN1c3RvbSBmaWVsZHMgaWYgcHJvdmlkZWRcbiAgICBjb25zdCBjdXN0b20gPSBwYXJhbXM/LmN1c3RvbSB8fCBbXTtcbiAgICBmb3IgKGNvbnN0IGMgb2YgY3VzdG9tKSB7XG4gICAgICB0bXAucHVzaCh7XG4gICAgICAgIG5hbWU6IGMubmFtZSxcbiAgICAgICAgbGFiZWw6IGMubGFiZWwsXG4gICAgICAgIGFsbG93ZWQ6IGZhbHNlLFxuICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgZmllbGQ6IG51bGwsXG4gICAgICAgIHBvc2l0aW9uOiB0bXAubGVuZ3RoICogMTAsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGFsbG93ZWQgZmllbGRzIChhbGwgZmllbGRzIGlmIG5vdCBzZXQgb3IgZW1wdHkpXG4gICAgbGV0IGFsbG93ZWQ6IHN0cmluZ1tdO1xuICAgIGlmIChwYXJhbXM/LmFsbG93ZWQgPT09IHVuZGVmaW5lZCB8fCBwYXJhbXM/LmFsbG93ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICBhbGxvd2VkID0gQXJyYXkuZnJvbShtLkZOKTtcbiAgICAgIGZvciAoY29uc3QgYyBvZiBjdXN0b20pIHtcbiAgICAgICAgYWxsb3dlZC5wdXNoKGMubmFtZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGFsbG93ZWQgPSBwYXJhbXMuYWxsb3dlZDtcbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGV4Y2x1ZGVkIGZpZWxkc1xuICAgIGNvbnN0IGV4Y2x1ZGVkOiBzdHJpbmdbXSA9IHBhcmFtcz8uZXhjbHVkZWQgfHwgW107XG5cbiAgICAvLyBQcm9jZXNzIGRlZmF1bHQgZmllbGRzXG4gICAgLy8gVXNlIGFsbCBhbGxvd2VkIGZpZWxkcyBpZiBlbXB0eSBvZiBub3Qgc2V0XG4gICAgY29uc3QgZGVmYXVsdHM6IHN0cmluZ1tdID0gcGFyYW1zPy5kZWZhdWx0cyB8fCBhbGxvd2VkO1xuXG4gICAgLy8gUHJlcGFyZSBmaWVsZHMgc3RhdHVzXG4gICAgLy8gU2V0IGFsbG93ZWRcbiAgICBmb3IgKGNvbnN0IGZlIG9mIGFsbG93ZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiB0bXApIHtcbiAgICAgICAgaWYgKGYubmFtZSA9PT0gZmUpIHtcbiAgICAgICAgICBmLmFsbG93ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFNldCBkZWZhdWx0c1xuICAgIGxldCBwb3MgPSAwO1xuICAgIGZvciAoY29uc3QgZmUgb2YgZGVmYXVsdHMpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiB0bXApIHtcbiAgICAgICAgaWYgKGYubmFtZSA9PT0gZmUpIHtcbiAgICAgICAgICBmLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGYuYWxsb3dlZCA9IHRydWU7XG4gICAgICAgICAgZi5wb3NpdGlvbiA9IHBvcztcbiAgICAgICAgfVxuICAgICAgICBwb3MgKz0gMTA7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHJlbW92ZSBleGNsdWRlZFxuICAgIGZvciAoY29uc3QgZmUgb2YgZXhjbHVkZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiB0bXApIHtcbiAgICAgICAgaWYgKGYubmFtZSA9PT0gZmUpIHtcbiAgICAgICAgICBmLmVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICBmLmFsbG93ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBmaWx0ZXJlZCA9IFtdO1xuICAgIGZvciAoY29uc3QgZiBvZiB0bXApIHtcbiAgICAgIGlmICghKCFmLmVuYWJsZWQgJiYgIWYuYWxsb3dlZCkpIHtcbiAgICAgICAgZmlsdGVyZWQucHVzaChmKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fX2ZpZWxkcyA9IGZpbHRlcmVkO1xuXG4gICAgdGhpcy5fdXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9maWVsZHMgPSBuZXcgUmVwbGF5U3ViamVjdDxNb2RlbExpc3RGaWVsZFtdPigxKTtcblxuICBwdWJsaWMgZ2V0IGZpZWxkcygpOiBPYnNlcnZhYmxlPE1vZGVsTGlzdEZpZWxkW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW5hYmxlZDogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgZ2V0IGVuYWJsZWQoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3V0cHV0ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nW10+KDEpO1xuXG4gIHB1YmxpYyBnZXQgb3V0cHV0KCk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5fb3V0cHV0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhIGZpZWxkIGJ5IG5hbWUuIFBvc2l0aW9uIGlzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBAcGFyYW0gZm5hbWUgOiBuYW1lIG9mIGZpZWxkIHRvIGJlIGVuYWJsZWRcbiAgICogQHBhcmFtICBwb3NpdGlvbiA6IHBvc2l0aW9uIChvcHRpb25hbClcbiAgICogQHJldHVybnMgY3VycmVudCBlbmFibGVkIGZpZWxkc1xuICAgKi9cbiAgcHVibGljIGVuYWJsZShmbmFtZTogc3RyaW5nLCBwb3NpdGlvbj86IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmID0gdGhpcy5nZXQoZm5hbWUpO1xuICAgIGlmIChmKSB7XG4gICAgICBmLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgaWYgKHBvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZi5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGaWVsZCBub3QgZm91bmQnLCBmKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlKCk7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSBhIGZpZWxkIGJ5IG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBmbmFtZSA6IG5hbWUgb2YgZmllbGQgdG8gYmUgZGlzYWJsZWRcbiAgICogQHJldHVybnMgIGN1cnJlbnQgZW5hYmxlZCBmaWVsZHNcbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlKGZuYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZiA9IHRoaXMuZ2V0KGZuYW1lKTtcbiAgICBpZiAoZikge1xuICAgICAgZi5lbmFibGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZpZWxkIG5vdCBmb3VuZCcsIGYpO1xuICAgIH1cbiAgICB0aGlzLl91cGRhdGUoKTtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIGZpZWxkIGBmbmFtZWAgYmVmb3JlIG9yIGFmdGVyIChkZXBlbmRpbmcgb24gYHBvc2l0aW9uYCkgZmllbGQgYGRlc3RgLlxuICAgKlxuICAgKiBAcGFyYW0gZm5hbWUgZmllbGQgdG8gbW92ZVxuICAgKiBAcGFyYW0gcG9zaXRpb24gKFwiYmVmb3JlXCIgb3IgXCJhZnRlclwiKVxuICAgKiBAcGFyYW0gZGVzdCByZWZlcmVuY2UgZmllbGRcbiAgICogQHJldHVybnMgY3VycmVudCBlbmFibGVkIGZpZWxkc1xuICAgKi9cbiAgcHVibGljIG1vdmUoXG4gICAgZm5hbWU6IHN0cmluZyxcbiAgICBwb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInLFxuICAgIGRlc3Q6IHN0cmluZyA9ICcnXG4gICk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmdGFyZ2V0ID0gdGhpcy5nZXQoZm5hbWUpO1xuICAgIGlmIChkZXN0ID09ICcnKSB7XG4gICAgICBjb25zdCBwb3MgPSB0aGlzLl9lbmFibGVkLmluZGV4T2YoZm5hbWUpO1xuICAgICAgZGVzdCA9IHRoaXMuX2VuYWJsZWRbcG9zICsgKHBvc2l0aW9uID09PSAnYmVmb3JlJyA/IC0xIDogKzEpXTtcbiAgICAgIGlmIChkZXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGZkZXN0ID0gdGhpcy5nZXQoZGVzdCk7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gICAgaWYgKCFmdGFyZ2V0IHx8ICFmZGVzdCkge1xuICAgICAgY29uc29sZS5lcnJvcignVGFyZ2V0IC8gZGVzdCBub3QgZm91bmQnLCBmbmFtZSwgZGVzdCk7XG4gICAgICByZXR1cm4gdGhpcy5fZW5hYmxlZDtcbiAgICB9XG4gICAgaWYgKGZuYW1lID09IGRlc3QpIHtcbiAgICAgIGZ0YXJnZXQucG9zaXRpb24gPSBmZGVzdC5wb3NpdGlvbiArIChwb3NpdGlvbiA9PT0gJ2JlZm9yZScgPyAtMTUgOiArMTUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmdGFyZ2V0LnBvc2l0aW9uID0gZmRlc3QucG9zaXRpb24gKyAocG9zaXRpb24gPT09ICdiZWZvcmUnID8gLTUgOiArNSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlKCk7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgZmllbGQgd2l0aCBuYW1lIGBmbmFtZWAgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQHBhcmFtIGZuYW1lIDogbmFtZSBvZiBmaWVsZFxuICAgKiBAcmV0dXJucyAgZW5hYmxlZCAodHJ1ZSkgb3IgZGlzYWJsZWQgKGZhbHNlKVxuICAgKi9cbiAgcHVibGljIGlzRW5hYmxlZChmbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQuaW5kZXhPZihmbmFtZSkgIT09IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmaWVsZCBieSBuYW1lXG4gICAqIEBwYXJhbSBmbmFtZSA6IG5hbWUgb2YgZmllbGRcbiAgICogQHJldHVybnMgTW9kZWwgbGlzdCBmaWVsZCBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgcHVibGljIGdldChmbmFtZTogc3RyaW5nKTogTW9kZWxMaXN0RmllbGQgfCBudWxsIHtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5fX2ZpZWxkcykge1xuICAgICAgaWYgKGYubmFtZSA9PT0gZm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGY7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmaWVsZCBieSBwb3NpdGlvblxuICAgKiBAcGFyYW0gcG9zIDogcG9zaXRpb24gb2YgZmllbGRcbiAgICogQHJldHVybnMgTW9kZWwgbGlzdCBmaWVsZCBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgcHVibGljIGdldEF0UG9zKHBvczogbnVtYmVyKTogTW9kZWxMaXN0RmllbGQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fX2ZpZWxkc1twb3NdIHx8IG51bGw7XG4gIH1cblxuICBzZXRQb3NpdGlvbihmbmFtZTogYW55LCBwb3NpdGlvbjogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGYgPSB0aGlzLmdldChmbmFtZSk7XG4gICAgaWYgKGYpIHtcbiAgICAgIGYucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignRmllbGQgbm90IGZvdW5kJywgZik7XG4gICAgfVxuICAgIHRoaXMuX3VwZGF0ZSgpO1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlKCkge1xuICAgIHRoaXMuX19maWVsZHMuc29ydCgoYSwgYikgPT4gYS5wb3NpdGlvbiAtIGIucG9zaXRpb24pO1xuICAgIGxldCBpID0gMDtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5fX2ZpZWxkcykge1xuICAgICAgZi5wb3NpdGlvbiA9IGkgKiAxMDtcbiAgICAgIGkgKz0gMTtcbiAgICB9XG4gICAgY29uc3Qgb3V0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLl9fZmllbGRzKSB7XG4gICAgICBpZiAoZi5lbmFibGVkKSB7XG4gICAgICAgIG91dC5wdXNoKGYubmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2VuYWJsZWQgPSBvdXQ7XG4gICAgdGhpcy5fb3V0cHV0Lm5leHQodGhpcy5fZW5hYmxlZCk7XG4gICAgdGhpcy5fZmllbGRzLm5leHQodGhpcy5fX2ZpZWxkcyk7XG4gIH1cbn1cbiJdfQ==
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFlakQsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBWSxVQUF5QixFQUFFLE1BQXFCO1FBd0lwRCxZQUFPLEdBQUcsSUFBSSxhQUFhLENBQW1CLENBQUMsQ0FBQyxDQUFDO1FBTWpELGFBQVEsR0FBYSxFQUFFLENBQUM7UUFNeEIsWUFBTyxHQUFHLElBQUksYUFBYSxDQUFXLENBQUMsQ0FBQyxDQUFDO1FBbkovQyx3QkFBd0I7UUFDeEIsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyQixHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNQLElBQUksRUFBRSxFQUFFO2dCQUNSLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBSSxFQUFFO2dCQUNqQyxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRTtnQkFDekIsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUM7YUFDakMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxnQ0FBZ0M7UUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxF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Q0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ1I7UUFDRCxNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7UUFDekIsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDYixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsQjtTQUNGO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IEZpZWxkc1BhcmFtcyB9IGZyb20gJy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxMaXN0RmllbGQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGFsbG93ZWQ6IGJvb2xlYW47XG4gIGZpZWxkOiBhbnk7XG4gIHBvc2l0aW9uOiBudW1iZXI7XG4gIHByaW9yaXR5OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbExpc3RGaWVsZHM8VCBleHRlbmRzIERhdGFNb2RlbD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9fZmllbGRzITogTW9kZWxMaXN0RmllbGRbXTtcblxuICBjb25zdHJ1Y3Rvcihjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LCBwYXJhbXM/OiBGaWVsZHNQYXJhbXMpIHtcbiAgICAvLyBHZXQgZmllbGRzIGZyb20gbW9kZWxcbiAgICBjb25zdCBtID0gY29sbGVjdGlvbi5jcmVhdGUoKTtcbiAgICBjb25zdCB0bXAgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGZuIG9mIG0uRk4pIHtcbiAgICAgIHRtcC5wdXNoKHtcbiAgICAgICAgbmFtZTogZm4sXG4gICAgICAgIGxhYmVsOiBtLkZNKGZuKS5kZXNjcmlwdGlvbiB8fCBmbixcbiAgICAgICAgYWxsb3dlZDogZmFsc2UsXG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICBmaWVsZDogbS5GVihmbiksXG4gICAgICAgIHBvc2l0aW9uOiB0bXAubGVuZ3RoICogMTAsXG4gICAgICAgIHByaW9yaXR5OiBtLkZNKGZuKS5wcmlvcml0eSB8fCAwLFxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIEFkZCBjdXN0b20gZmllbGRzIGlmIHByb3ZpZGVkXG4gICAgY29uc3QgY3VzdG9tID0gcGFyYW1zPy5jdXN0b20gfHwgW107XG4gICAgZm9yIChjb25zdCBjIG9mIGN1c3RvbSkge1xuICAgICAgdG1wLnB1c2goe1xuICAgICAgICBuYW1lOiBjLm5hbWUsXG4gICAgICAgIGxhYmVsOiBjLmxhYmVsLFxuICAgICAgICBhbGxvd2VkOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgIGZpZWxkOiBudWxsLFxuICAgICAgICBwb3NpdGlvbjogdG1wLmxlbmd0aCAqIDEwLFxuICAgICAgICBwcmlvcml0eTogYy5wcmlvcml0eSB8fCAwLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdG1wLnNvcnQoKGIsIGEpID0+XG4gICAgICBhLnByaW9yaXR5ID09PSBiLnByaW9yaXR5XG4gICAgICAgID8gYi5wb3NpdGlvbiAtIGEucG9zaXRpb25cbiAgICAgICAgOiBhLnByaW9yaXR5IC0gYi5wcmlvcml0eVxuICAgICk7XG4gICAgbGV0IHBvcyA9IDA7XG4gICAgZm9yIChjb25zdCBpIG9mIHRtcCkge1xuICAgICAgaS5wb3NpdGlvbiA9IHBvcztcbiAgICAgIHBvcyArPSAxMDtcbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGFsbG93ZWQgZmllbGRzIChhbGwgZmllbGRzIGlmIG5vdCBzZXQgb3IgZW1wdHkpXG4gICAgbGV0IGFsbG93ZWQ6IHN0cmluZ1tdO1xuICAgIGxldCBkZGVmYXVsdHM6IHN0cmluZ1tdO1xuICAgIGlmIChwYXJhbXM/LmFsbG93ZWQgPT09IHVuZGVmaW5lZCB8fCBwYXJhbXM/LmFsbG93ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICBhbGxvd2VkID0gdG1wLm1hcCgoZikgPT4gZi5uYW1lKTtcbiAgICAgIGRkZWZhdWx0cyA9IHRtcC5maWx0ZXIoKGYpID0+IGYucHJpb3JpdHkgPj0gMCkubWFwKChmKSA9PiBmLm5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbGxvd2VkID0gcGFyYW1zLmFsbG93ZWQ7XG4gICAgICBkZGVmYXVsdHMgPSBwYXJhbXMuYWxsb3dlZDtcbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGV4Y2x1ZGVkIGZpZWxkc1xuICAgIGNvbnN0IGV4Y2x1ZGVkOiBzdHJpbmdbXSA9IHBhcmFtcz8uZXhjbHVkZWQgfHwgW107XG5cbiAgICAvLyBQcm9jZXNzIGRlZmF1bHQgZmllbGRzXG4gICAgLy8gVXNlIGFsbCBhbGxvd2VkIGZpZWxkcyBpZiBlbXB0eSBvZiBub3Qgc2V0XG4gICAgY29uc3QgZGVmYXVsdHM6IHN0cmluZ1tdID0gcGFyYW1zPy5kZWZhdWx0cyB8fCBkZGVmYXVsdHM7XG5cbiAgICAvLyBQcmVwYXJlIGZpZWxkcyBzdGF0dXNcbiAgICAvLyBTZXQgYWxsb3dlZFxuICAgIGZvciAoY29uc3QgZmUgb2YgYWxsb3dlZCkge1xuICAgICAgZm9yIChjb25zdCBmIG9mIHRtcCkge1xuICAgICAgICBpZiAoZi5uYW1lID09PSBmZSkge1xuICAgICAgICAgIGYuYWxsb3dlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gU2V0IGRlZmF1bHRzXG4gICAgbGV0IG91dCA9IFtdO1xuICAgIGZvciAoY29uc3QgZmUgb2YgZGVmYXVsdHMpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiB0bXApIHtcbiAgICAgICAgaWYgKGYubmFtZSA9PT0gZmUpIHtcbiAgICAgICAgICBmLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGYuYWxsb3dlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyByZW1vdmUgZXhjbHVkZWRcbiAgICBmb3IgKGNvbnN0IGZlIG9mIGV4Y2x1ZGVkKSB7XG4gICAgICBmb3IgKGNvbnN0IGYgb2YgdG1wKSB7XG4gICAgICAgIGlmIChmLm5hbWUgPT09IGZlKSB7XG4gICAgICAgICAgZi5lbmFibGVkID0gZmFsc2U7XG4gICAgICAgICAgZi5hbGxvd2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgZmlsdGVyZWQgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdG1wKSB7XG4gICAgICBpZiAoISghZi5lbmFibGVkICYmICFmLmFsbG93ZWQpKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2goZik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3JkZXJlZCA9IFtdO1xuICAgIGNvbnN0IGVuYWJsZWQgPSBmaWx0ZXJlZC5maWx0ZXIoKGYpID0+IGYuZW5hYmxlZCk7XG4gICAgcG9zID0gMDtcbiAgICBmb3IgKGNvbnN0IGZlIG9mIGRlZmF1bHRzKSB7XG4gICAgICBmb3IgKGNvbnN0IGYgb2YgZW5hYmxlZCkge1xuICAgICAgICBpZiAoZi5uYW1lID09PSBmZSkge1xuICAgICAgICAgIGYucG9zaXRpb24gPSBwb3M7XG4gICAgICAgICAgcG9zICs9IDEwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVuYWJsZWQuc29ydCgoYSwgYikgPT4gYS5wb3NpdGlvbiAtIGIucG9zaXRpb24pO1xuICAgIGNvbnN0IGRpc2FibGVkID0gZmlsdGVyZWQuZmlsdGVyKChmKSA9PiAhZi5lbmFibGVkKTtcbiAgICBsZXQgZWkgPSAwO1xuICAgIGxldCBkaSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWx0ZXJlZC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGVuYWJsZWRbZWldICYmIGRpc2FibGVkW2RpXSkge1xuICAgICAgICBpZiAoZW5hYmxlZFtlaV0ucHJpb3JpdHkgPiBkaXNhYmxlZFtkaV0ucHJpb3JpdHkpIHtcbiAgICAgICAgICBvcmRlcmVkLnB1c2goZW5hYmxlZFtlaV0pO1xuICAgICAgICAgIGVpICs9IDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3JkZXJlZC5wdXNoKGRpc2FibGVkW2RpXSk7XG4gICAgICAgICAgZGkgKz0gMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChlbmFibGVkW2VpXSkge1xuICAgICAgICBvcmRlcmVkLnB1c2goZW5hYmxlZFtlaV0pO1xuICAgICAgICBlaSArPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3JkZXJlZC5wdXNoKGRpc2FibGVkW2RpXSk7XG4gICAgICAgIGRpICs9IDE7XG4gICAgICB9XG4gICAgfVxuICAgIHBvcyA9IDA7XG4gICAgZm9yIChjb25zdCBmIG9mIG9yZGVyZWQpIHtcbiAgICAgIGYucG9zaXRpb24gPSBwb3M7XG4gICAgICBwb3MgKz0gMTA7XG4gICAgfVxuXG4gICAgdGhpcy5fX2ZpZWxkcyA9IG9yZGVyZWQ7XG4gICAgdGhpcy5fdXBkYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9maWVsZHMgPSBuZXcgUmVwbGF5U3ViamVjdDxNb2RlbExpc3RGaWVsZFtdPigxKTtcblxuICBwdWJsaWMgZ2V0IGZpZWxkcygpOiBPYnNlcnZhYmxlPE1vZGVsTGlzdEZpZWxkW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZW5hYmxlZDogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgZ2V0IGVuYWJsZWQoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3V0cHV0ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nW10+KDEpO1xuXG4gIHB1YmxpYyBnZXQgb3V0cHV0KCk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5fb3V0cHV0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhIGZpZWxkIGJ5IG5hbWUuIFBvc2l0aW9uIGlzIG9wdGlvbmFsLlxuICAgKlxuICAgKiBAcGFyYW0gZm5hbWUgOiBuYW1lIG9mIGZpZWxkIHRvIGJlIGVuYWJsZWRcbiAgICogQHBhcmFtICBwb3NpdGlvbiA6IHBvc2l0aW9uIChvcHRpb25hbClcbiAgICogQHJldHVybnMgY3VycmVudCBlbmFibGVkIGZpZWxkc1xuICAgKi9cbiAgcHVibGljIGVuYWJsZShmbmFtZTogc3RyaW5nLCBwb3NpdGlvbj86IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmID0gdGhpcy5nZXQoZm5hbWUpO1xuICAgIGlmIChmKSB7XG4gICAgICBmLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgaWYgKHBvc2l0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZi5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGaWVsZCBub3QgZm91bmQnLCBmKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlKCk7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSBhIGZpZWxkIGJ5IG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBmbmFtZSA6IG5hbWUgb2YgZmllbGQgdG8gYmUgZGlzYWJsZWRcbiAgICogQHJldHVybnMgIGN1cnJlbnQgZW5hYmxlZCBmaWVsZHNcbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlKGZuYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZiA9IHRoaXMuZ2V0KGZuYW1lKTtcbiAgICBpZiAoZikge1xuICAgICAgZi5lbmFibGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZpZWxkIG5vdCBmb3VuZCcsIGYpO1xuICAgIH1cbiAgICB0aGlzLl91cGRhdGUoKTtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIGZpZWxkIGBmbmFtZWAgYmVmb3JlIG9yIGFmdGVyIChkZXBlbmRpbmcgb24gYHBvc2l0aW9uYCkgZmllbGQgYGRlc3RgLlxuICAgKlxuICAgKiBAcGFyYW0gZm5hbWUgZmllbGQgdG8gbW92ZVxuICAgKiBAcGFyYW0gcG9zaXRpb24gKFwiYmVmb3JlXCIgb3IgXCJhZnRlclwiKVxuICAgKiBAcGFyYW0gZGVzdCByZWZlcmVuY2UgZmllbGRcbiAgICogQHJldHVybnMgY3VycmVudCBlbmFibGVkIGZpZWxkc1xuICAgKi9cbiAgcHVibGljIG1vdmUoXG4gICAgZm5hbWU6IHN0cmluZyxcbiAgICBwb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInLFxuICAgIGRlc3Q6IHN0cmluZyA9ICcnXG4gICk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmdGFyZ2V0ID0gdGhpcy5nZXQoZm5hbWUpO1xuICAgIGlmIChkZXN0ID09ICcnKSB7XG4gICAgICBjb25zdCBwb3MgPSB0aGlzLl9lbmFibGVkLmluZGV4T2YoZm5hbWUpO1xuICAgICAgZGVzdCA9IHRoaXMuX2VuYWJsZWRbcG9zICsgKHBvc2l0aW9uID09PSAnYmVmb3JlJyA/IC0xIDogKzEpXTtcbiAgICAgIGlmIChkZXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGZkZXN0ID0gdGhpcy5nZXQoZGVzdCk7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gICAgaWYgKCFmdGFyZ2V0IHx8ICFmZGVzdCkge1xuICAgICAgY29uc29sZS5lcnJvcignVGFyZ2V0IC8gZGVzdCBub3QgZm91bmQnLCBmbmFtZSwgZGVzdCk7XG4gICAgICByZXR1cm4gdGhpcy5fZW5hYmxlZDtcbiAgICB9XG4gICAgaWYgKGZuYW1lID09IGRlc3QpIHtcbiAgICAgIGZ0YXJnZXQucG9zaXRpb24gPSBmZGVzdC5wb3NpdGlvbiArIChwb3NpdGlvbiA9PT0gJ2JlZm9yZScgPyAtMTUgOiArMTUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmdGFyZ2V0LnBvc2l0aW9uID0gZmRlc3QucG9zaXRpb24gKyAocG9zaXRpb24gPT09ICdiZWZvcmUnID8gLTUgOiArNSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdXBkYXRlKCk7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgZmllbGQgd2l0aCBuYW1lIGBmbmFtZWAgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQHBhcmFtIGZuYW1lIDogbmFtZSBvZiBmaWVsZFxuICAgKiBAcmV0dXJucyAgZW5hYmxlZCAodHJ1ZSkgb3IgZGlzYWJsZWQgKGZhbHNlKVxuICAgKi9cbiAgcHVibGljIGlzRW5hYmxlZChmbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQuaW5kZXhPZihmbmFtZSkgIT09IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmaWVsZCBieSBuYW1lXG4gICAqIEBwYXJhbSBmbmFtZSA6IG5hbWUgb2YgZmllbGRcbiAgICogQHJldHVybnMgTW9kZWwgbGlzdCBmaWVsZCBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgcHVibGljIGdldChmbmFtZTogc3RyaW5nKTogTW9kZWxMaXN0RmllbGQgfCBudWxsIHtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5fX2ZpZWxkcykge1xuICAgICAgaWYgKGYubmFtZSA9PT0gZm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGY7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmaWVsZCBieSBwb3NpdGlvblxuICAgKiBAcGFyYW0gcG9zIDogcG9zaXRpb24gb2YgZmllbGRcbiAgICogQHJldHVybnMgTW9kZWwgbGlzdCBmaWVsZCBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgcHVibGljIGdldEF0UG9zKHBvczogbnVtYmVyKTogTW9kZWxMaXN0RmllbGQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fX2ZpZWxkc1twb3NdIHx8IG51bGw7XG4gIH1cblxuICBzZXRQb3NpdGlvbihmbmFtZTogYW55LCBwb3NpdGlvbjogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGYgPSB0aGlzLmdldChmbmFtZSk7XG4gICAgaWYgKGYpIHtcbiAgICAgIGYucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignRmllbGQgbm90IGZvdW5kJywgZik7XG4gICAgfVxuICAgIHRoaXMuX3VwZGF0ZSgpO1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlKCkge1xuICAgIHRoaXMuX19maWVsZHMuc29ydCgoYSwgYikgPT4gYS5wb3NpdGlvbiAtIGIucG9zaXRpb24pO1xuICAgIGxldCBpID0gMDtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5fX2ZpZWxkcykge1xuICAgICAgZi5wb3NpdGlvbiA9IGkgKiAxMDtcbiAgICAgIGkgKz0gMTtcbiAgICB9XG4gICAgY29uc3Qgb3V0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLl9fZmllbGRzKSB7XG4gICAgICBpZiAoZi5lbmFibGVkKSB7XG4gICAgICAgIG91dC5wdXNoKGYubmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2VuYWJsZWQgPSBvdXQ7XG4gICAgdGhpcy5fb3V0cHV0Lm5leHQodGhpcy5fZW5hYmxlZCk7XG4gICAgdGhpcy5fZmllbGRzLm5leHQodGhpcy5fX2ZpZWxkcyk7XG4gIH1cbn1cbiJdfQ==
@@ -93,9 +93,9 @@ export class ModelListAutocompleteFilterComponent {
93
93
  }), takeUntil(this._subscription));
94
94
  }
95
95
  }
96
- ModelListAutocompleteFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListAutocompleteFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
- ModelListAutocompleteFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListAutocompleteFilterComponent, isStandalone: true, selector: "data-model-list-autocomplete-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListAutocompleteFilterComponent, decorators: [{
96
+ ModelListAutocompleteFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListAutocompleteFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
+ ModelListAutocompleteFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListAutocompleteFilterComponent, isStandalone: true, selector: "data-model-list-autocomplete-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListAutocompleteFilterComponent, decorators: [{
99
99
  type: Component,
100
100
  args: [{ selector: 'data-model-list-autocomplete-filter', standalone: true, imports: [CommonModule, NgbTypeaheadModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n</div>" }]
101
101
  }], ctorParameters: function () { return []; }, propDecorators: { list: [{
@@ -13,9 +13,9 @@ export class ModelListAutocompleteMultiFilterComponent extends ModelListAutocomp
13
13
  this.list.filters.update();
14
14
  }
15
15
  }
16
- ModelListAutocompleteMultiFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListAutocompleteMultiFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
17
- ModelListAutocompleteMultiFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListAutocompleteMultiFilterComponent, isStandalone: true, selector: "data-model-list-autocomplete-multi-filter", inputs: { filter: "filter" }, usesInheritance: true, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n <div class=\"enabled mt-1\">\n <div *ngFor=\"let e of filter.mcurrent$|async\"><i class=\"bi bi-trash me-2\" (click)=\"unset(e.value, e.desc)\" role=\"button\"></i>{{e.desc}}</div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListAutocompleteMultiFilterComponent, decorators: [{
16
+ ModelListAutocompleteMultiFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListAutocompleteMultiFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
17
+ ModelListAutocompleteMultiFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListAutocompleteMultiFilterComponent, isStandalone: true, selector: "data-model-list-autocomplete-multi-filter", inputs: { filter: "filter" }, usesInheritance: true, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n <div class=\"enabled mt-1\">\n <div *ngFor=\"let e of filter.mcurrent$|async\"><i class=\"bi bi-trash me-2\" (click)=\"unset(e.value, e.desc)\" role=\"button\"></i>{{e.desc}}</div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListAutocompleteMultiFilterComponent, decorators: [{
19
19
  type: Component,
20
20
  args: [{ selector: 'data-model-list-autocomplete-multi-filter', standalone: true, imports: [CommonModule, NgbTypeaheadModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n <div class=\"enabled mt-1\">\n <div *ngFor=\"let e of filter.mcurrent$|async\"><i class=\"bi bi-trash me-2\" (click)=\"unset(e.value, e.desc)\" role=\"button\"></i>{{e.desc}}</div>\n </div>\n</div>" }]
21
21
  }], propDecorators: { filter: [{
@@ -25,9 +25,9 @@ export class ModelListDateFilterComponent {
25
25
  this.list.filters.update();
26
26
  }
27
27
  }
28
- ModelListDateFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListDateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- ModelListDateFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListDateFilterComponent, isStandalone: true, selector: "data-model-list-date-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"date\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListDateFilterComponent, decorators: [{
28
+ ModelListDateFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListDateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ ModelListDateFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListDateFilterComponent, isStandalone: true, selector: "data-model-list-date-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"date\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListDateFilterComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'data-model-list-date-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"date\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>" }]
33
33
  }], ctorParameters: function () { return []; }, propDecorators: { list: [{
@@ -25,9 +25,9 @@ export class ModelListDatetimeFilterComponent {
25
25
  this.list.filters.update();
26
26
  }
27
27
  }
28
- ModelListDatetimeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListDatetimeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- ModelListDatetimeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListDatetimeFilterComponent, isStandalone: true, selector: "data-model-list-datetime-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"datetime-local\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListDatetimeFilterComponent, decorators: [{
28
+ ModelListDatetimeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListDatetimeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ ModelListDatetimeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListDatetimeFilterComponent, isStandalone: true, selector: "data-model-list-datetime-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"datetime-local\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListDatetimeFilterComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'data-model-list-datetime-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"datetime-local\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>" }]
33
33
  }], ctorParameters: function () { return []; }, propDecorators: { list: [{
@@ -6,9 +6,9 @@ export class ModelListDatetimeRangeFilterComponent {
6
6
  this.classes = '';
7
7
  }
8
8
  }
9
- ModelListDatetimeRangeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListDatetimeRangeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- ModelListDatetimeRangeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListDatetimeRangeFilterComponent, isStandalone: true, selector: "data-model-list-datetime-range-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "<p>model-list-datetime-range-filter works!</p>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListDatetimeRangeFilterComponent, decorators: [{
9
+ ModelListDatetimeRangeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListDatetimeRangeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ ModelListDatetimeRangeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListDatetimeRangeFilterComponent, isStandalone: true, selector: "data-model-list-datetime-range-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "<p>model-list-datetime-range-filter works!</p>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListDatetimeRangeFilterComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'data-model-list-datetime-range-filter', standalone: true, imports: [CommonModule], template: "<p>model-list-datetime-range-filter works!</p>" }]
14
14
  }], ctorParameters: function () { return []; }, propDecorators: { list: [{
@@ -6,9 +6,9 @@ export class ModelListFlagsFilterComponent {
6
6
  this.classes = '';
7
7
  }
8
8
  }
9
- ModelListFlagsFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListFlagsFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- ModelListFlagsFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListFlagsFilterComponent, isStandalone: true, selector: "data-model-list-flags-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "<p>model-list-flags-filter works!</p>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListFlagsFilterComponent, decorators: [{
9
+ ModelListFlagsFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListFlagsFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ ModelListFlagsFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListFlagsFilterComponent, isStandalone: true, selector: "data-model-list-flags-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "<p>model-list-flags-filter works!</p>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListFlagsFilterComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{ selector: 'data-model-list-flags-filter', standalone: true, imports: [CommonModule], template: "<p>model-list-flags-filter works!</p>" }]
14
14
  }], ctorParameters: function () { return []; }, propDecorators: { list: [{
@@ -48,9 +48,9 @@ export class ModelListGeodistanceFilterComponent {
48
48
  elem.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
49
49
  }
50
50
  }
51
- ModelListGeodistanceFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListGeodistanceFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- ModelListGeodistanceFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListGeodistanceFilterComponent, isStandalone: true, selector: "data-model-list-geodistance-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <div class=\"row g-1\">\n <div class=\"col-4\">\n <select class=\"form-select\" [formControl]=\"fd\">\n <option value=\"\">Distance</option>\n <option value=\"lte,10\">< 10 km</option>\n <option value=\"lte,20\">< 20 km</option>\n <option value=\"lte,30\">< 30 km</option>\n <option value=\"lte,50\">< 50 km</option>\n <option value=\"lte,80\">< 80 km</option>\n <option value=\"lte,100\">< 100 km</option>\n <option value=\"lte,150\">< 150 km</option>\n <option value=\"lte,200\">< 200 km</option>\n <option value=\"lte,250\">< 250 km</option>\n <option value=\"lte,300\">< 300 km</option>\n <option value=\"lte,500\">< 500 km</option>\n <option value=\"lte,1000\">< 1000 km</option>\n </select>\n </div>\n <div class=\"col-8\">\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListGeodistanceFilterComponent, decorators: [{
51
+ ModelListGeodistanceFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListGeodistanceFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
+ ModelListGeodistanceFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListGeodistanceFilterComponent, isStandalone: true, selector: "data-model-list-geodistance-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <div class=\"row g-1\">\n <div class=\"col-4\">\n <select class=\"form-select\" [formControl]=\"fd\">\n <option value=\"\">Distance</option>\n <option value=\"lte,10\">< 10 km</option>\n <option value=\"lte,20\">< 20 km</option>\n <option value=\"lte,30\">< 30 km</option>\n <option value=\"lte,50\">< 50 km</option>\n <option value=\"lte,80\">< 80 km</option>\n <option value=\"lte,100\">< 100 km</option>\n <option value=\"lte,150\">< 150 km</option>\n <option value=\"lte,200\">< 200 km</option>\n <option value=\"lte,250\">< 250 km</option>\n <option value=\"lte,300\">< 300 km</option>\n <option value=\"lte,500\">< 500 km</option>\n <option value=\"lte,1000\">< 1000 km</option>\n </select>\n </div>\n <div class=\"col-8\">\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i2.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListGeodistanceFilterComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{ selector: 'data-model-list-geodistance-filter', standalone: true, imports: [CommonModule, NgbTypeaheadModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <div class=\"row g-1\">\n <div class=\"col-4\">\n <select class=\"form-select\" [formControl]=\"fd\">\n <option value=\"\">Distance</option>\n <option value=\"lte,10\">< 10 km</option>\n <option value=\"lte,20\">< 20 km</option>\n <option value=\"lte,30\">< 30 km</option>\n <option value=\"lte,50\">< 50 km</option>\n <option value=\"lte,80\">< 80 km</option>\n <option value=\"lte,100\">< 100 km</option>\n <option value=\"lte,150\">< 150 km</option>\n <option value=\"lte,200\">< 200 km</option>\n <option value=\"lte,250\">< 250 km</option>\n <option value=\"lte,300\">< 300 km</option>\n <option value=\"lte,500\">< 500 km</option>\n <option value=\"lte,1000\">< 1000 km</option>\n </select>\n </div>\n <div class=\"col-8\">\n <input class=\"form-control\" [formControl]=\"fc\" [ngbTypeahead]=\"search\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"display\" [resultFormatter]=\"display\" [placeholder]=\"filter.help\" (keyup.arrowDown)=\"scrollAction($event)\" (keyup.arrowUp)=\"scrollAction($event)\" #th=\"ngbTypeahead\" [class.tascroll]=\"filter.scroll\">\n </div>\n </div>\n</div>" }]
56
56
  }], ctorParameters: function () { return []; }, propDecorators: { list: [{
@@ -31,9 +31,9 @@ export class ModelListNumberFilterComponent {
31
31
  this.list.filters.update();
32
32
  }
33
33
  }
34
- ModelListNumberFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListNumberFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
- ModelListNumberFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ModelListNumberFilterComponent, isStandalone: true, selector: "data-model-list-number-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\">\n <div class=\"bi bi-trash\"></div>\n </div>\n <label>{{filter.label}}</label>\n <div class=\"input-group\" ngbDropdown>\n <button class=\"btn btn-outline-secondary\" type=\"button\" ngbDropdownToggle><span class=\"me-2\">{{filter.operator.label}}</span>\n <div class=\"dropdown-menu\" ngbDropdownMenu>\n <button ngbDropdownItem *ngFor=\"let op of filter.operations\" (click)=\"selectOp(op.operator)\" [class.text-primary]=\"op.operator === filter.operator.operator\">{{op.label}}</button>\n </div>\n </button>\n <input class=\"form-control\" type=\"number\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i3.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i3.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }] });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ModelListNumberFilterComponent, decorators: [{
34
+ ModelListNumberFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListNumberFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ ModelListNumberFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: ModelListNumberFilterComponent, isStandalone: true, selector: "data-model-list-number-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\">\n <div class=\"bi bi-trash\"></div>\n </div>\n <label>{{filter.label}}</label>\n <div class=\"input-group\" ngbDropdown>\n <button class=\"btn btn-outline-secondary\" type=\"button\" ngbDropdownToggle><span class=\"me-2\">{{filter.operator.label}}</span>\n <div class=\"dropdown-menu\" ngbDropdownMenu>\n <button ngbDropdownItem *ngFor=\"let op of filter.operations\" (click)=\"selectOp(op.operator)\" [class.text-primary]=\"op.operator === filter.operator.operator\">{{op.label}}</button>\n </div>\n </button>\n <input class=\"form-control\" type=\"number\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i3.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i3.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }] });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ModelListNumberFilterComponent, decorators: [{
37
37
  type: Component,
38
38
  args: [{ selector: 'data-model-list-number-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule, NgbDropdownModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\">\n <div class=\"bi bi-trash\"></div>\n </div>\n <label>{{filter.label}}</label>\n <div class=\"input-group\" ngbDropdown>\n <button class=\"btn btn-outline-secondary\" type=\"button\" ngbDropdownToggle><span class=\"me-2\">{{filter.operator.label}}</span>\n <div class=\"dropdown-menu\" ngbDropdownMenu>\n <button ngbDropdownItem *ngFor=\"let op of filter.operations\" (click)=\"selectOp(op.operator)\" [class.text-primary]=\"op.operator === filter.operator.operator\">{{op.label}}</button>\n </div>\n </button>\n <input class=\"form-control\" type=\"number\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n </div>\n</div>" }]
39
39
  }], ctorParameters: function () { return []; }, propDecorators: { list: [{