@solidev/data 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/auth/auth-interceptor.service.mjs +3 -3
- package/esm2022/lib/data/data-backend.mjs +3 -3
- package/esm2022/lib/dispedit/choice.pipe.mjs +6 -6
- package/esm2022/lib/dispedit/dispedit/dispedit.component.mjs +3 -3
- package/esm2022/lib/dispedit/factor.pipe.mjs +6 -6
- package/esm2022/lib/dispedit/factorc.pipe.mjs +6 -6
- package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +10 -13
- package/esm2022/lib/dispedit/flags/flags.component.mjs +9 -12
- package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +10 -16
- package/esm2022/lib/dispedit/richedit/richedit.component.mjs +3 -3
- package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +3 -3
- package/esm2022/lib/messages/message-zone/message-zone.component.mjs +8 -12
- package/esm2022/lib/messages/message.service.mjs +3 -3
- package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +8 -12
- package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +9 -12
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/model-list-filter-group.mjs +19 -0
- package/esm2022/lib/modellist/model-list-filters/model-list-filter.mjs +9 -1
- package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +5 -5
- package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +27 -6
- package/esm2022/lib/modellist/model-list-filters/model-list-filters.mjs +70 -16
- package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +13 -14
- package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list.service.mjs +4 -4
- package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +8 -12
- package/esm2022/lib/updates/update/update.component.mjs +3 -3
- package/esm2022/lib/updates/update.service.mjs +3 -3
- package/esm2022/lib/uploader/ng-file-drop.directive.mjs +3 -3
- package/esm2022/lib/uploader/ng-file-select.directive.mjs +3 -3
- package/esm2022/lib/uploader/ngx-uploader.module.mjs +4 -4
- package/esm2022/lib/utils/tab-memory.service.mjs +3 -3
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/solidev-data.mjs +410 -344
- package/fesm2022/solidev-data.mjs.map +1 -1
- package/lib/dispedit/fkselect/fkselect.component.d.ts +3 -4
- package/lib/dispedit/flags/flags.component.d.ts +3 -4
- package/lib/dispedit/m2mselect/m2mselect.component.d.ts +3 -7
- package/lib/messages/message-zone/message-zone.component.d.ts +3 -4
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +3 -4
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +3 -4
- package/lib/modellist/model-list-filters/model-list-filter-group.d.ts +11 -0
- package/lib/modellist/model-list-filters/model-list-filter.d.ts +4 -0
- package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +8 -2
- package/lib/modellist/model-list-filters/model-list-filters.d.ts +11 -5
- package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +3 -5
- package/lib/modellist/model-list.service.d.ts +2 -1
- package/lib/routing/breadcrumb/breadcrumb.component.d.ts +3 -4
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs
CHANGED
|
@@ -14,16 +14,16 @@ import { ModelListNumberFilterComponent } from '../filters/model-list-number-fil
|
|
|
14
14
|
import { ModelListDateFilterComponent } from '../filters/model-list-date-filter/model-list-date-filter.component';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
16
|
import * as i1 from "@angular/common";
|
|
17
|
-
//
|
|
17
|
+
// SEE: register filter components and load them dynamically to allow user defined filters
|
|
18
18
|
export class ModelListFiltersComponent {
|
|
19
19
|
constructor() {
|
|
20
20
|
this.containerClasses = '';
|
|
21
21
|
this.itemClasses = '';
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ModelListFiltersComponent, isStandalone: true, selector: "data-model-list-filters", inputs: { list: "list", containerClasses: "containerClasses", itemClasses: "itemClasses" }, ngImport: i0, template: "\n<div [ngClass]=\"containerClasses\">\n <ng-container *ngFor=\"let f of list.filters.enabled|async\">\n <ng-container [ngSwitch]=\"f.type\">\n <data-model-list-autocomplete-filter *ngSwitchCase=\"'autocomplete'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-autocomplete-filter>\n <data-model-list-autocomplete-multi-filter *ngSwitchCase=\"'autocompletemulti'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-autocomplete-multi-filter>\n <data-model-list-datetime-filter *ngSwitchCase=\"'datetime'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-datetime-filter>\n <data-model-list-date-filter *ngSwitchCase=\"'date'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-date-filter>\n <data-model-list-datetime-range-filter *ngSwitchCase=\"'datetimerange'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-datetime-range-filter>\n <data-model-list-flags-filter *ngSwitchCase=\"'flags'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-flags-filter>\n <data-model-list-geodistance-filter *ngSwitchCase=\"'geodistance'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-geodistance-filter>\n <data-model-list-number-filter *ngSwitchCase=\"'number'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-number-filter>\n <data-model-list-select-filter *ngSwitchCase=\"'select'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-select-filter>\n <data-model-list-select-multi-filter *ngSwitchCase=\"'selectmulti'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-select-multi-filter>\n <data-model-list-text-filter *ngSwitchCase=\"'text'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-text-filter>\n <data-model-list-tree-filter *ngSwitchCase=\"'tree'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-tree-filter>\n </ng-container>\n </ng-container>\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: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ModelListTextFilterComponent, selector: "data-model-list-text-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListNumberFilterComponent, selector: "data-model-list-number-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListAutocompleteFilterComponent, selector: "data-model-list-autocomplete-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListAutocompleteMultiFilterComponent, selector: "data-model-list-autocomplete-multi-filter", inputs: ["filter"] }, { kind: "component", type: ModelListDatetimeFilterComponent, selector: "data-model-list-datetime-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListDateFilterComponent, selector: "data-model-list-date-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListDatetimeRangeFilterComponent, selector: "data-model-list-datetime-range-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListFlagsFilterComponent, selector: "data-model-list-flags-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListGeodistanceFilterComponent, selector: "data-model-list-geodistance-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListSelectFilterComponent, selector: "data-model-list-select-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListSelectMultiFilterComponent, selector: "data-model-list-select-multi-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListTreeFilterComponent, selector: "data-model-list-tree-filter", inputs: ["list", "filter", "classes"] }] }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListFiltersComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{ selector: 'data-model-list-filters', standalone: true, imports: [
|
|
29
29
|
CommonModule,
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
47
47
|
}], itemClasses: [{
|
|
48
48
|
type: Input
|
|
49
49
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWx0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVycy9tb2RlbC1saXN0LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDMUksT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sZ0dBQWdHLENBQUM7QUFDM0osT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDOUgsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sdUZBQXVGLENBQUM7QUFDOUksT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDckgsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDdkksT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDekksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDeEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7OztBQUVsSCwwRkFBMEY7QUF1QjFGLE1BQU0sT0FBTyx5QkFBeUI7SUFyQnRDO1FBdUJrQixxQkFBZ0IsR0FBc0IsRUFBRSxDQUFDO1FBQ3pDLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztLQUNyRDs4R0FKWSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrS0N2Q3RDLDRxRUFrQk0seURETUYsWUFBWSwyZUFDWiw0QkFBNEIsK0dBQzVCLDhCQUE4QixpSEFDOUIsb0NBQW9DLHVIQUNwQyx5Q0FBeUMsMEdBQ3pDLGdDQUFnQyxtSEFDaEMsNEJBQTRCLCtHQUM1QixxQ0FBcUMseUhBQ3JDLDZCQUE2QixnSEFDN0IsbUNBQW1DLHNIQUNuQyw4QkFBOEIsaUhBQzlCLG1DQUFtQyx1SEFDbkMsNEJBQTRCOzsyRkFHbkIseUJBQXlCO2tCQXJCckMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osNEJBQTRCO3dCQUM1Qiw4QkFBOEI7d0JBQzlCLG9DQUFvQzt3QkFDcEMseUNBQXlDO3dCQUN6QyxnQ0FBZ0M7d0JBQ2hDLDRCQUE0Qjt3QkFDNUIscUNBQXFDO3dCQUNyQyw2QkFBNkI7d0JBQzdCLG1DQUFtQzt3QkFDbkMsOEJBQThCO3dCQUM5QixtQ0FBbUM7d0JBQ25DLDRCQUE0QjtxQkFDN0I7OEJBR2UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTW9kZWxMaXN0VGV4dEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlcnMvbW9kZWwtbGlzdC10ZXh0LWZpbHRlci9tb2RlbC1saXN0LXRleHQtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RlbExpc3RBdXRvY29tcGxldGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXJzL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLWZpbHRlci9tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsTGlzdEF1dG9jb21wbGV0ZU11bHRpRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVycy9tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1tdWx0aS1maWx0ZXIvbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtbXVsdGktZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RlbExpc3REYXRldGltZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlcnMvbW9kZWwtbGlzdC1kYXRldGltZS1maWx0ZXIvbW9kZWwtbGlzdC1kYXRldGltZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsTGlzdERhdGV0aW1lUmFuZ2VGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXJzL21vZGVsLWxpc3QtZGF0ZXRpbWVyYW5nZS1maWx0ZXIvbW9kZWwtbGlzdC1kYXRldGltZS1yYW5nZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsTGlzdEZsYWdzRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVycy9tb2RlbC1saXN0LWZsYWdzLWZpbHRlci9tb2RlbC1saXN0LWZsYWdzLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kZWxMaXN0R2VvZGlzdGFuY2VGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXJzL21vZGVsLWxpc3QtZ2VvZGlzdGFuY2UtZmlsdGVyL21vZGVsLWxpc3QtZ2VvZGlzdGFuY2UtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RlbExpc3RTZWxlY3RGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXJzL21vZGVsLWxpc3Qtc2VsZWN0LWZpbHRlci9tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsTGlzdFNlbGVjdE11bHRpRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVycy9tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXIvbW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RlbExpc3RUcmVlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVycy9tb2RlbC1saXN0LXRyZWUtZmlsdGVyL21vZGVsLWxpc3QtdHJlZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsTGlzdE51bWJlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlcnMvbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyL21vZGVsLWxpc3QtbnVtYmVyLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kZWxMaXN0RGF0ZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlcnMvbW9kZWwtbGlzdC1kYXRlLWZpbHRlci9tb2RlbC1saXN0LWRhdGUtZmlsdGVyLmNvbXBvbmVudCc7XG5cbi8vIFNFRTogcmVnaXN0ZXIgZmlsdGVyIGNvbXBvbmVudHMgYW5kIGxvYWQgdGhlbSBkeW5hbWljYWxseSB0byBhbGxvdyB1c2VyIGRlZmluZWQgZmlsdGVyc1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LWZpbHRlcnMuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNb2RlbExpc3RUZXh0RmlsdGVyQ29tcG9uZW50LFxuICAgIE1vZGVsTGlzdE51bWJlckZpbHRlckNvbXBvbmVudCxcbiAgICBNb2RlbExpc3RBdXRvY29tcGxldGVGaWx0ZXJDb21wb25lbnQsXG4gICAgTW9kZWxMaXN0QXV0b2NvbXBsZXRlTXVsdGlGaWx0ZXJDb21wb25lbnQsXG4gICAgTW9kZWxMaXN0RGF0ZXRpbWVGaWx0ZXJDb21wb25lbnQsXG4gICAgTW9kZWxMaXN0RGF0ZUZpbHRlckNvbXBvbmVudCxcbiAgICBNb2RlbExpc3REYXRldGltZVJhbmdlRmlsdGVyQ29tcG9uZW50LFxuICAgIE1vZGVsTGlzdEZsYWdzRmlsdGVyQ29tcG9uZW50LFxuICAgIE1vZGVsTGlzdEdlb2Rpc3RhbmNlRmlsdGVyQ29tcG9uZW50LFxuICAgIE1vZGVsTGlzdFNlbGVjdEZpbHRlckNvbXBvbmVudCxcbiAgICBNb2RlbExpc3RTZWxlY3RNdWx0aUZpbHRlckNvbXBvbmVudCxcbiAgICBNb2RlbExpc3RUcmVlRmlsdGVyQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbExpc3RGaWx0ZXJzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGNvbnRhaW5lckNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpdGVtQ2xhc3Nlczogc3RyaW5nW10gfCBzdHJpbmcgPSAnJztcbn1cbiIsIlxuPGRpdiBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc2VzXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGYgb2YgbGlzdC5maWx0ZXJzLmVuYWJsZWR8YXN5bmNcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmLnR5cGVcIj5cbiAgICAgIDxkYXRhLW1vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ2F1dG9jb21wbGV0ZSdcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtZmlsdGVyPlxuICAgICAgPGRhdGEtbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtbXVsdGktZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInYXV0b2NvbXBsZXRlbXVsdGknXCIgW2ZpbHRlcl09XCIkYW55KGYpXCIgW2xpc3RdPVwibGlzdFwiIFtuZ0NsYXNzXT1cIml0ZW1DbGFzc2VzXCI+PC9kYXRhLW1vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLW11bHRpLWZpbHRlcj5cbiAgICAgIDxkYXRhLW1vZGVsLWxpc3QtZGF0ZXRpbWUtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZXRpbWUnXCIgW2ZpbHRlcl09XCIkYW55KGYpXCIgW2xpc3RdPVwibGlzdFwiIFtuZ0NsYXNzXT1cIml0ZW1DbGFzc2VzXCI+PC9kYXRhLW1vZGVsLWxpc3QtZGF0ZXRpbWUtZmlsdGVyPlxuICAgICAgPGRhdGEtbW9kZWwtbGlzdC1kYXRlLWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCIgW2ZpbHRlcl09XCIkYW55KGYpXCIgW2xpc3RdPVwibGlzdFwiIFtuZ0NsYXNzXT1cIml0ZW1DbGFzc2VzXCI+PC9kYXRhLW1vZGVsLWxpc3QtZGF0ZS1maWx0ZXI+XG4gICAgICA8ZGF0YS1tb2RlbC1saXN0LWRhdGV0aW1lLXJhbmdlLWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGV0aW1lcmFuZ2UnXCIgW2ZpbHRlcl09XCIkYW55KGYpXCIgW2xpc3RdPVwibGlzdFwiIFtuZ0NsYXNzXT1cIml0ZW1DbGFzc2VzXCI+PC9kYXRhLW1vZGVsLWxpc3QtZGF0ZXRpbWUtcmFuZ2UtZmlsdGVyPlxuICAgICAgPGRhdGEtbW9kZWwtbGlzdC1mbGFncy1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIidmbGFncydcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC1mbGFncy1maWx0ZXI+XG4gICAgICA8ZGF0YS1tb2RlbC1saXN0LWdlb2Rpc3RhbmNlLWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ2dlb2Rpc3RhbmNlJ1wiIFtmaWx0ZXJdPVwiJGFueShmKVwiIFtsaXN0XT1cImxpc3RcIiBbbmdDbGFzc109XCJpdGVtQ2xhc3Nlc1wiPjwvZGF0YS1tb2RlbC1saXN0LWdlb2Rpc3RhbmNlLWZpbHRlcj5cbiAgICAgIDxkYXRhLW1vZGVsLWxpc3QtbnVtYmVyLWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyPlxuICAgICAgPGRhdGEtbW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiIFtmaWx0ZXJdPVwiJGFueShmKVwiIFtsaXN0XT1cImxpc3RcIiBbbmdDbGFzc109XCJpdGVtQ2xhc3Nlc1wiPjwvZGF0YS1tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXI+XG4gICAgICA8ZGF0YS1tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3RtdWx0aSdcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyPlxuICAgICAgPGRhdGEtbW9kZWwtbGlzdC10ZXh0LWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCIgW2ZpbHRlcl09XCIkYW55KGYpXCIgW2xpc3RdPVwibGlzdFwiIFtuZ0NsYXNzXT1cIml0ZW1DbGFzc2VzXCI+PC9kYXRhLW1vZGVsLWxpc3QtdGV4dC1maWx0ZXI+XG4gICAgICA8ZGF0YS1tb2RlbC1saXN0LXRyZWUtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCIndHJlZSdcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC10cmVlLWZpbHRlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj4iXX0=
|
|
@@ -1,23 +1,42 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, DestroyRef, inject, Input } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
5
8
|
export class ModelListFiltersSelectComponent {
|
|
6
9
|
constructor() {
|
|
7
10
|
this.containerClasses = '';
|
|
8
11
|
this.itemActiveClasses = 'badge bg-success mx-1';
|
|
9
12
|
this.itemInactiveClasses = 'badge bg-secondary mx-1';
|
|
13
|
+
this.mode = 'badge';
|
|
14
|
+
this.selectForm = new FormControl(null);
|
|
15
|
+
this.destroy$ = inject(DestroyRef);
|
|
10
16
|
}
|
|
11
17
|
toggle(f) {
|
|
12
18
|
f.enabled = !f.enabled;
|
|
13
19
|
this.list.filters.update();
|
|
14
20
|
}
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
if (this.mode === 'select') {
|
|
23
|
+
this.selectForm.valueChanges
|
|
24
|
+
.pipe(takeUntilDestroyed(this.destroy$))
|
|
25
|
+
.subscribe((f) => {
|
|
26
|
+
if (f) {
|
|
27
|
+
f.enabled = !f.enabled;
|
|
28
|
+
this.list.filters.update();
|
|
29
|
+
this.selectForm.setValue(null, { emitEvent: false });
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListFiltersSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ModelListFiltersSelectComponent, isStandalone: true, selector: "data-model-list-filters-select", inputs: { list: "list", containerClasses: "containerClasses", itemActiveClasses: "itemActiveClasses", itemInactiveClasses: "itemInactiveClasses", mode: "mode" }, ngImport: i0, template: "\n<ng-container *ngIf=\"mode==='badge'\"><span *ngFor=\"let f of list.filters.available|async\" (click)=\"toggle(f)\" [ngClass]=\"containerClasses\"><span *ngIf=\"f.enabled\" role=\"button\" [ngClass]=\"itemActiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-check2-square me-2\"></i><span>{{f.label}}</span></span><span *ngIf=\"!f.enabled\" role=\"button\" [ngClass]=\"itemInactiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-square me-2\"></i><span>{{f.label}}</span></span></span></ng-container>\n<ng-container *ngIf=\"mode==='badge_summary'\"><span *ngFor=\"let f of list.filters.available|async\" (click)=\"toggle(f)\" [ngClass]=\"containerClasses\"><span *ngIf=\"f.enabled\" role=\"button\" [ngClass]=\"itemActiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-check2-square me-2\"></i><span>{{f.label}} : {{f.summary||'...'}}</span></span></span></ng-container>\n<ng-container *ngIf=\"mode==='select'\">\n <select class=\"form-select\" [formControl]=\"selectForm\">\n <option [ngValue]=\"null\">-- Ajouter un filtre --</option>\n <ng-container *ngFor=\"let f of list.filters.available|async\">\n <ng-container *ngIf=\"!f.enabled && !f.group\">\n <option [ngValue]=\"f\">{{f.label}}</option>\n </ng-container>\n </ng-container>\n <ng-container *ngFor=\"let g of list.filters.groups|async\">\n <optgroup [label]=\"g.label\">\n <ng-container *ngFor=\"let f of g.filters\">\n <ng-container *ngIf=\"!f.enabled && f.allowed\">\n <option [ngValue]=\"f\">{{f.label}}</option>\n </ng-container>\n </ng-container>\n </optgroup>\n </ng-container>\n </select>\n</ng-container>", 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: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
|
17
36
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListFiltersSelectComponent, decorators: [{
|
|
19
38
|
type: Component,
|
|
20
|
-
args: [{ selector: 'data-model-list-filters-select', standalone: true, imports: [CommonModule], template: "<span *ngFor=\"let f of list.filters.available|async\" (click)=\"toggle(f)\" [ngClass]=\"containerClasses\"><span *ngIf=\"f.enabled\" role=\"button\" [ngClass]=\"itemActiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-check2-square me-2\"></i><span>{{f.label}}</span></span><span *ngIf=\"!f.enabled\" role=\"button\" [ngClass]=\"itemInactiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-square me-2\"></i><span>{{f.label}}</span></span></span>" }]
|
|
39
|
+
args: [{ selector: 'data-model-list-filters-select', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<ng-container *ngIf=\"mode==='badge'\"><span *ngFor=\"let f of list.filters.available|async\" (click)=\"toggle(f)\" [ngClass]=\"containerClasses\"><span *ngIf=\"f.enabled\" role=\"button\" [ngClass]=\"itemActiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-check2-square me-2\"></i><span>{{f.label}}</span></span><span *ngIf=\"!f.enabled\" role=\"button\" [ngClass]=\"itemInactiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-square me-2\"></i><span>{{f.label}}</span></span></span></ng-container>\n<ng-container *ngIf=\"mode==='badge_summary'\"><span *ngFor=\"let f of list.filters.available|async\" (click)=\"toggle(f)\" [ngClass]=\"containerClasses\"><span *ngIf=\"f.enabled\" role=\"button\" [ngClass]=\"itemActiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-check2-square me-2\"></i><span>{{f.label}} : {{f.summary||'...'}}</span></span></span></ng-container>\n<ng-container *ngIf=\"mode==='select'\">\n <select class=\"form-select\" [formControl]=\"selectForm\">\n <option [ngValue]=\"null\">-- Ajouter un filtre --</option>\n <ng-container *ngFor=\"let f of list.filters.available|async\">\n <ng-container *ngIf=\"!f.enabled && !f.group\">\n <option [ngValue]=\"f\">{{f.label}}</option>\n </ng-container>\n </ng-container>\n <ng-container *ngFor=\"let g of list.filters.groups|async\">\n <optgroup [label]=\"g.label\">\n <ng-container *ngFor=\"let f of g.filters\">\n <ng-container *ngIf=\"!f.enabled && f.allowed\">\n <option [ngValue]=\"f\">{{f.label}}</option>\n </ng-container>\n </ng-container>\n </optgroup>\n </ng-container>\n </select>\n</ng-container>" }]
|
|
21
40
|
}], ctorParameters: () => [], propDecorators: { list: [{
|
|
22
41
|
type: Input
|
|
23
42
|
}], containerClasses: [{
|
|
@@ -26,5 +45,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
26
45
|
type: Input
|
|
27
46
|
}], itemInactiveClasses: [{
|
|
28
47
|
type: Input
|
|
48
|
+
}], mode: [{
|
|
49
|
+
type: Input
|
|
29
50
|
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWx0ZXJzLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9tb2RlbC1saXN0LWZpbHRlcnMtc2VsZWN0L21vZGVsLWxpc3QtZmlsdGVycy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvbW9kZWwtbGlzdC1maWx0ZXJzLXNlbGVjdC9tb2RlbC1saXN0LWZpbHRlcnMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQVNoRSxNQUFNLE9BQU8sK0JBQStCO0lBWTFDO1FBVmdCLHFCQUFnQixHQUFzQixFQUFFLENBQUM7UUFDekMsc0JBQWlCLEdBQy9CLHVCQUF1QixDQUFDO1FBQ1Ysd0JBQW1CLEdBQ2pDLHlCQUF5QixDQUFDO1FBQ1osU0FBSSxHQUF5QyxPQUFPLENBQUM7UUFFOUQsZUFBVSxHQUFHLElBQUksV0FBVyxDQUF5QixJQUFJLENBQUMsQ0FBQztRQUMxRCxhQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXZCLENBQUM7SUFFVCxNQUFNLENBQUMsQ0FBa0I7UUFDOUIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWTtpQkFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDdkMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLEVBQUU7b0JBQ0wsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztpQkFDdEQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQzs4R0EvQlUsK0JBQStCO2tHQUEvQiwrQkFBK0IsNFBDZDVDLDJvREFxQmUseUREVEgsWUFBWSxrWkFBRSxtQkFBbUI7OzJGQUVoQywrQkFBK0I7a0JBUDNDLFNBQVM7K0JBQ0UsZ0NBQWdDLGNBRzlCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQzt3REFHNUIsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUVVLG1CQUFtQjtzQkFBbEMsS0FBSztnQkFFVSxJQUFJO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBNb2RlbExpc3RGaWx0ZXIgfSBmcm9tICcuLi9tb2RlbC1saXN0LWZpbHRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC1maWx0ZXJzLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LWZpbHRlcnMtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC1maWx0ZXJzLXNlbGVjdC5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0RmlsdGVyc1NlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250YWluZXJDbGFzc2VzOiBzdHJpbmdbXSB8IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgaXRlbUFjdGl2ZUNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID1cbiAgICAnYmFkZ2UgYmctc3VjY2VzcyBteC0xJztcbiAgQElucHV0KCkgcHVibGljIGl0ZW1JbmFjdGl2ZUNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID1cbiAgICAnYmFkZ2UgYmctc2Vjb25kYXJ5IG14LTEnO1xuICBASW5wdXQoKSBwdWJsaWMgbW9kZTogJ3NlbGVjdCcgfCAnYmFkZ2UnIHwgJ2JhZGdlX3N1bW1hcnknID0gJ2JhZGdlJztcblxuICBwdWJsaWMgc2VsZWN0Rm9ybSA9IG5ldyBGb3JtQ29udHJvbDxNb2RlbExpc3RGaWx0ZXIgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIHRvZ2dsZShmOiBNb2RlbExpc3RGaWx0ZXIpIHtcbiAgICBmLmVuYWJsZWQgPSAhZi5lbmFibGVkO1xuICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdzZWxlY3QnKSB7XG4gICAgICB0aGlzLnNlbGVjdEZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoZikgPT4ge1xuICAgICAgICAgIGlmIChmKSB7XG4gICAgICAgICAgICBmLmVuYWJsZWQgPSAhZi5lbmFibGVkO1xuICAgICAgICAgICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEZvcm0uc2V0VmFsdWUobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlPT09J2JhZGdlJ1wiPjxzcGFuICpuZ0Zvcj1cImxldCBmIG9mIGxpc3QuZmlsdGVycy5hdmFpbGFibGV8YXN5bmNcIiAoY2xpY2spPVwidG9nZ2xlKGYpXCIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3Nlc1wiPjxzcGFuICpuZ0lmPVwiZi5lbmFibGVkXCIgcm9sZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIml0ZW1BY3RpdmVDbGFzc2VzXCIgW3RpdGxlXT1cImYuZGVzY1wiPjxpIGNsYXNzPVwiYmkgYmktY2hlY2syLXNxdWFyZSBtZS0yXCI+PC9pPjxzcGFuPnt7Zi5sYWJlbH19PC9zcGFuPjwvc3Bhbj48c3BhbiAqbmdJZj1cIiFmLmVuYWJsZWRcIiByb2xlPVwiYnV0dG9uXCIgW25nQ2xhc3NdPVwiaXRlbUluYWN0aXZlQ2xhc3Nlc1wiIFt0aXRsZV09XCJmLmRlc2NcIj48aSBjbGFzcz1cImJpIGJpLXNxdWFyZSBtZS0yXCI+PC9pPjxzcGFuPnt7Zi5sYWJlbH19PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwibW9kZT09PSdiYWRnZV9zdW1tYXJ5J1wiPjxzcGFuICpuZ0Zvcj1cImxldCBmIG9mIGxpc3QuZmlsdGVycy5hdmFpbGFibGV8YXN5bmNcIiAoY2xpY2spPVwidG9nZ2xlKGYpXCIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3Nlc1wiPjxzcGFuICpuZ0lmPVwiZi5lbmFibGVkXCIgcm9sZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIml0ZW1BY3RpdmVDbGFzc2VzXCIgW3RpdGxlXT1cImYuZGVzY1wiPjxpIGNsYXNzPVwiYmkgYmktY2hlY2syLXNxdWFyZSBtZS0yXCI+PC9pPjxzcGFuPnt7Zi5sYWJlbH19IDoge3tmLnN1bW1hcnl8fCcuLi4nfX08L3NwYW4+PC9zcGFuPjwvc3Bhbj48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlPT09J3NlbGVjdCdcIj5cbiAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgW2Zvcm1Db250cm9sXT1cInNlbGVjdEZvcm1cIj5cbiAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj4tLSBBam91dGVyIHVuIGZpbHRyZSAtLTwvb3B0aW9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGYgb2YgbGlzdC5maWx0ZXJzLmF2YWlsYWJsZXxhc3luY1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmLmVuYWJsZWQgJmFtcDsmYW1wOyAhZi5ncm91cFwiPlxuICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cImZcIj57e2YubGFiZWx9fTwvb3B0aW9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZyBvZiBsaXN0LmZpbHRlcnMuZ3JvdXBzfGFzeW5jXCI+XG4gICAgICA8b3B0Z3JvdXAgW2xhYmVsXT1cImcubGFiZWxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZiBvZiBnLmZpbHRlcnNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWYuZW5hYmxlZCAmYW1wOyZhbXA7IGYuYWxsb3dlZFwiPlxuICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJmXCI+e3tmLmxhYmVsfX08L29wdGlvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L29wdGdyb3VwPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NlbGVjdD5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
import { ReplaySubject } from 'rxjs';
|
|
2
|
+
import { ModelListFilter } from './model-list-filter';
|
|
2
3
|
export class ModelListFilters {
|
|
3
4
|
constructor(params) {
|
|
4
|
-
this.
|
|
5
|
-
this.
|
|
6
|
-
this.
|
|
7
|
-
|
|
5
|
+
this._enabled$ = new ReplaySubject(1);
|
|
6
|
+
this._filters = [];
|
|
7
|
+
this._output$ = new ReplaySubject(1);
|
|
8
|
+
this._available$ = new ReplaySubject(1);
|
|
9
|
+
this._groups$ = new ReplaySubject(1);
|
|
10
|
+
this._groups = [];
|
|
11
|
+
this._enabled = [];
|
|
12
|
+
this._available = [];
|
|
13
|
+
const fwgroups = Array.from(params?.filters || []);
|
|
14
|
+
// Ungroup filters, keeping groups
|
|
15
|
+
const tmp = [];
|
|
16
|
+
const groups = [];
|
|
17
|
+
for (const f of fwgroups) {
|
|
18
|
+
if (f instanceof ModelListFilter) {
|
|
19
|
+
tmp.push(f);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
groups.push(f);
|
|
23
|
+
for (const ff of f.filters) {
|
|
24
|
+
tmp.push(ff);
|
|
25
|
+
ff.group = f;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
8
29
|
// Prepare allowed filters (all filters if not set or empty)
|
|
9
30
|
let allowed = [];
|
|
10
31
|
if (params?.allowed === undefined || params?.allowed.length === 0) {
|
|
@@ -48,33 +69,66 @@ export class ModelListFilters {
|
|
|
48
69
|
}
|
|
49
70
|
}
|
|
50
71
|
this._filters = tmp;
|
|
72
|
+
this._groups = groups;
|
|
51
73
|
this.update();
|
|
52
74
|
}
|
|
53
|
-
get
|
|
54
|
-
return this.
|
|
75
|
+
get groups() {
|
|
76
|
+
return this._groups$.asObservable();
|
|
55
77
|
}
|
|
56
78
|
get enabled() {
|
|
57
|
-
return this._enabled
|
|
79
|
+
return this._enabled$.asObservable();
|
|
58
80
|
}
|
|
59
81
|
get available() {
|
|
60
|
-
return this._available
|
|
82
|
+
return this._available$.asObservable();
|
|
83
|
+
}
|
|
84
|
+
get output() {
|
|
85
|
+
return this._output$.asObservable();
|
|
61
86
|
}
|
|
62
87
|
update() {
|
|
63
88
|
const filter = {};
|
|
64
|
-
const enabled = [];
|
|
65
|
-
const available = [];
|
|
66
89
|
for (const f of this._filters) {
|
|
67
90
|
if (f.enabled) {
|
|
68
91
|
f.updateFilter(filter);
|
|
69
|
-
|
|
92
|
+
if (this._enabled.indexOf(f) === -1) {
|
|
93
|
+
this._enabled.push(f);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const i = this._enabled.indexOf(f);
|
|
98
|
+
if (i !== -1) {
|
|
99
|
+
this._enabled.splice(i, 1);
|
|
100
|
+
}
|
|
70
101
|
}
|
|
71
102
|
if (f.allowed) {
|
|
72
|
-
|
|
103
|
+
if (this._available.indexOf(f) === -1) {
|
|
104
|
+
this._available.push(f);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
const i = this._available.indexOf(f);
|
|
109
|
+
if (i !== -1) {
|
|
110
|
+
this._available.splice(i, 1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
for (const g of this._groups) {
|
|
115
|
+
g.enabled = false;
|
|
116
|
+
g.allowed = false;
|
|
117
|
+
for (const f of g.filters) {
|
|
118
|
+
if (!f.enabled && f.allowed) {
|
|
119
|
+
g.enabled = true;
|
|
120
|
+
}
|
|
121
|
+
if (f.allowed) {
|
|
122
|
+
g.allowed = true;
|
|
123
|
+
}
|
|
73
124
|
}
|
|
74
125
|
}
|
|
75
|
-
this._output
|
|
76
|
-
this._enabled
|
|
77
|
-
this._available
|
|
126
|
+
this._output$.next(filter);
|
|
127
|
+
this._enabled$.next(this._enabled);
|
|
128
|
+
this._available$.next(this._available);
|
|
129
|
+
this._groups$.next(this._groups
|
|
130
|
+
.filter((g) => g.allowed && g.enabled)
|
|
131
|
+
.sort((a, b) => a.position - b.position));
|
|
78
132
|
}
|
|
79
133
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvbW9kZWwtbGlzdC1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJakQsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUFZLE1BQXNCO1FBaUQxQixZQUFPLEdBQUcsSUFBSSxhQUFhLENBQWEsQ0FBQyxDQUFDLENBQUM7UUFLNUMsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFvQixDQUFDLENBQUMsQ0FBQztRQUtuRCxlQUFVLEdBQUcsSUFBSSxhQUFhLENBQW9CLENBQUMsQ0FBQyxDQUFDO1FBMUQxRCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUMsNERBQTREO1FBQzVELElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztRQUMzQixJQUFJLE1BQU0sRUFBRSxPQUFPLEtBQUssU0FBUyxJQUFJLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRTtnQkFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEI7U0FDRjthQUFNO1lBQ0wsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDMUI7UUFDRCwyQkFBMkI7UUFDM0IsTUFBTSxRQUFRLEdBQWEsTUFBTSxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFFbEQsMEJBQTBCO1FBQzFCLDhDQUE4QztRQUM5QyxNQUFNLFFBQVEsR0FBYSxNQUFNLEVBQUUsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUV2RCx5QkFBeUI7UUFDekIsY0FBYztRQUNkLEtBQUssTUFBTSxFQUFFLElBQUksT0FBTyxFQUFFO1lBQ3hCLEtBQUssTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO29CQUNqQixDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztpQkFDbEI7YUFDRjtTQUNGO1FBQ0QsZUFBZTtRQUNmLEtBQUssTUFBTSxFQUFFLElBQUksUUFBUSxFQUFFO1lBQ3pCLEtBQUssTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO29CQUNqQixDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDakIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7aUJBQ2xCO2FBQ0Y7U0FDRjtRQUNELGtCQUFrQjtRQUNsQixLQUFLLE1BQU0sRUFBRSxJQUFJLFFBQVEsRUFBRTtZQUN6QixLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTtvQkFDakIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ2xCLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2lCQUNuQjthQUNGO1NBQ0Y7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUdELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBR0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBR0QsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sTUFBTSxHQUFlLEVBQUUsQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBc0IsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sU0FBUyxHQUFzQixFQUFFLENBQUM7UUFDeEMsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDYixDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pCO1lBQ0QsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUNiLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkI7U0FDRjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlckRhdGEgfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtcXVlcnknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlsdGVyc1BhcmFtcyB9IGZyb20gJy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBNb2RlbExpc3RGaWx0ZXIgfSBmcm9tICcuL21vZGVsLWxpc3QtZmlsdGVyJztcblxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdEZpbHRlcnMge1xuICBwcml2YXRlIF9maWx0ZXJzOiBNb2RlbExpc3RGaWx0ZXJbXTtcblxuICBjb25zdHJ1Y3RvcihwYXJhbXM/OiBGaWx0ZXJzUGFyYW1zKSB7XG4gICAgY29uc3QgdG1wID0gQXJyYXkuZnJvbShwYXJhbXM/LmZpbHRlcnMgfHwgW10pO1xuICAgIC8vIFByZXBhcmUgYWxsb3dlZCBmaWx0ZXJzIChhbGwgZmlsdGVycyBpZiBub3Qgc2V0IG9yIGVtcHR5KVxuICAgIGxldCBhbGxvd2VkOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChwYXJhbXM/LmFsbG93ZWQgPT09IHVuZGVmaW5lZCB8fCBwYXJhbXM/LmFsbG93ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGYgb2YgdG1wKSB7XG4gICAgICAgIGFsbG93ZWQucHVzaChmLm5hbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhbGxvd2VkID0gcGFyYW1zLmFsbG93ZWQ7XG4gICAgfVxuICAgIC8vIFByZXBhcmUgZXhjbHVkZWQgZmlsdGVyc1xuICAgIGNvbnN0IGV4Y2x1ZGVkOiBzdHJpbmdbXSA9IHBhcmFtcz8uZXhjbHVkZWQgfHwgW107XG5cbiAgICAvLyBQcm9jZXNzIGRlZmF1bHQgZmlsdGVyc1xuICAgIC8vIFVzZSBhbGwgYWxsb3dlZCBmaWx0ZXJzIGlmIGVtcHR5IG9mIG5vdCBzZXRcbiAgICBjb25zdCBkZWZhdWx0czogc3RyaW5nW10gPSBwYXJhbXM/LmRlZmF1bHRzIHx8IGFsbG93ZWQ7XG5cbiAgICAvLyBQcmVwYXJlIGZpbHRlcnMgc3RhdHVzXG4gICAgLy8gU2V0IGFsbG93ZWRcbiAgICBmb3IgKGNvbnN0IGZlIG9mIGFsbG93ZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiB0bXApIHtcbiAgICAgICAgaWYgKGYubmFtZSA9PT0gZmUpIHtcbiAgICAgICAgICBmLmFsbG93ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFNldCBkZWZhdWx0c1xuICAgIGZvciAoY29uc3QgZmUgb2YgZGVmYXVsdHMpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiB0bXApIHtcbiAgICAgICAgaWYgKGYubmFtZSA9PT0gZmUpIHtcbiAgICAgICAgICBmLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGYuYWxsb3dlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gcmVtb3ZlIGV4Y2x1ZGVkXG4gICAgZm9yIChjb25zdCBmZSBvZiBleGNsdWRlZCkge1xuICAgICAgZm9yIChjb25zdCBmIG9mIHRtcCkge1xuICAgICAgICBpZiAoZi5uYW1lID09PSBmZSkge1xuICAgICAgICAgIGYuZW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIGYuYWxsb3dlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2ZpbHRlcnMgPSB0bXA7XG4gICAgdGhpcy51cGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX291dHB1dCA9IG5ldyBSZXBsYXlTdWJqZWN0PEZpbHRlckRhdGE+KDEpO1xuICBwdWJsaWMgZ2V0IG91dHB1dCgpOiBPYnNlcnZhYmxlPEZpbHRlckRhdGE+IHtcbiAgICByZXR1cm4gdGhpcy5fb3V0cHV0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIF9lbmFibGVkID0gbmV3IFJlcGxheVN1YmplY3Q8TW9kZWxMaXN0RmlsdGVyW10+KDEpO1xuICBwdWJsaWMgZ2V0IGVuYWJsZWQoKTogT2JzZXJ2YWJsZTxNb2RlbExpc3RGaWx0ZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIF9hdmFpbGFibGUgPSBuZXcgUmVwbGF5U3ViamVjdDxNb2RlbExpc3RGaWx0ZXJbXT4oMSk7XG4gIHB1YmxpYyBnZXQgYXZhaWxhYmxlKCk6IE9ic2VydmFibGU8TW9kZWxMaXN0RmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5fYXZhaWxhYmxlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBmaWx0ZXI6IEZpbHRlckRhdGEgPSB7fTtcbiAgICBjb25zdCBlbmFibGVkOiBNb2RlbExpc3RGaWx0ZXJbXSA9IFtdO1xuICAgIGNvbnN0IGF2YWlsYWJsZTogTW9kZWxMaXN0RmlsdGVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5fZmlsdGVycykge1xuICAgICAgaWYgKGYuZW5hYmxlZCkge1xuICAgICAgICBmLnVwZGF0ZUZpbHRlcihmaWx0ZXIpO1xuICAgICAgICBlbmFibGVkLnB1c2goZik7XG4gICAgICB9XG4gICAgICBpZiAoZi5hbGxvd2VkKSB7XG4gICAgICAgIGF2YWlsYWJsZS5wdXNoKGYpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9vdXRwdXQubmV4dChmaWx0ZXIpO1xuICAgIHRoaXMuX2VuYWJsZWQubmV4dChlbmFibGVkKTtcbiAgICB0aGlzLl9hdmFpbGFibGUubmV4dChhdmFpbGFibGUpO1xuICB9XG59XG4iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvbW9kZWwtbGlzdC1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3RELE1BQU0sT0FBTyxnQkFBZ0I7SUFPM0IsWUFBWSxNQUFzQjtRQU4xQixjQUFTLEdBQUcsSUFBSSxhQUFhLENBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQ3BELGFBQVEsR0FBc0IsRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBYSxDQUFDLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksYUFBYSxDQUFvQixDQUFDLENBQUMsQ0FBQztRQUN0RCxhQUFRLEdBQUcsSUFBSSxhQUFhLENBQXlCLENBQUMsQ0FBQyxDQUFDO1FBbUV4RCxZQUFPLEdBQTJCLEVBQUUsQ0FBQztRQU1yQyxhQUFRLEdBQXNCLEVBQUUsQ0FBQztRQU1qQyxlQUFVLEdBQXNCLEVBQUUsQ0FBQztRQTVFekMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELGtDQUFrQztRQUNsQyxNQUFNLEdBQUcsR0FBc0IsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7UUFDMUMsS0FBSyxNQUFNLENBQUMsSUFBSSxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFlBQVksZUFBZSxFQUFFO2dCQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLElB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LENBQUMsT0FBTyxFQUFFO29CQUNiLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjthQUNGO1NBQ0Y7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixJQUFJLENBQUMsT0FBTzthQUNULE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO2FBQ3JDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUMzQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyRGF0YSB9IGZyb20gJy4uLy4uL2RhdGEvZGF0YS1xdWVyeSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWx0ZXJzUGFyYW1zIH0gZnJvbSAnLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpbHRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWx0ZXInO1xuaW1wb3J0IHsgTW9kZWxMaXN0RmlsdGVyR3JvdXAgfSBmcm9tICcuL21vZGVsLWxpc3QtZmlsdGVyLWdyb3VwJztcblxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdEZpbHRlcnMge1xuICBwcml2YXRlIF9lbmFibGVkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PE1vZGVsTGlzdEZpbHRlcltdPigxKTtcbiAgcHJpdmF0ZSBfZmlsdGVyczogTW9kZWxMaXN0RmlsdGVyW10gPSBbXTtcbiAgcHJpdmF0ZSBfb3V0cHV0JCA9IG5ldyBSZXBsYXlTdWJqZWN0PEZpbHRlckRhdGE+KDEpO1xuICBwcml2YXRlIF9hdmFpbGFibGUkID0gbmV3IFJlcGxheVN1YmplY3Q8TW9kZWxMaXN0RmlsdGVyW10+KDEpO1xuICBwcml2YXRlIF9ncm91cHMkID0gbmV3IFJlcGxheVN1YmplY3Q8TW9kZWxMaXN0RmlsdGVyR3JvdXBbXT4oMSk7XG5cbiAgY29uc3RydWN0b3IocGFyYW1zPzogRmlsdGVyc1BhcmFtcykge1xuICAgIGNvbnN0IGZ3Z3JvdXBzID0gQXJyYXkuZnJvbShwYXJhbXM/LmZpbHRlcnMgfHwgW10pO1xuICAgIC8vIFVuZ3JvdXAgZmlsdGVycywga2VlcGluZyBncm91cHNcbiAgICBjb25zdCB0bXA6IE1vZGVsTGlzdEZpbHRlcltdID0gW107XG4gICAgY29uc3QgZ3JvdXBzOiBNb2RlbExpc3RGaWx0ZXJHcm91cFtdID0gW107XG4gICAgZm9yIChjb25zdCBmIG9mIGZ3Z3JvdXBzKSB7XG4gICAgICBpZiAoZiBpbnN0YW5jZW9mIE1vZGVsTGlzdEZpbHRlcikge1xuICAgICAgICB0bXAucHVzaChmKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGdyb3Vwcy5wdXNoKGYpO1xuICAgICAgICBmb3IgKGNvbnN0IGZmIG9mIGYuZmlsdGVycykge1xuICAgICAgICAgIHRtcC5wdXNoKGZmKTtcbiAgICAgICAgICBmZi5ncm91cCA9IGY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcmVwYXJlIGFsbG93ZWQgZmlsdGVycyAoYWxsIGZpbHRlcnMgaWYgbm90IHNldCBvciBlbXB0eSlcbiAgICBsZXQgYWxsb3dlZDogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAocGFyYW1zPy5hbGxvd2VkID09PSB1bmRlZmluZWQgfHwgcGFyYW1zPy5hbGxvd2VkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZm9yIChjb25zdCBmIG9mIHRtcCkge1xuICAgICAgICBhbGxvd2VkLnB1c2goZi5uYW1lKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYWxsb3dlZCA9IHBhcmFtcy5hbGxvd2VkO1xuICAgIH1cbiAgICAvLyBQcmVwYXJlIGV4Y2x1ZGVkIGZpbHRlcnNcbiAgICBjb25zdCBleGNsdWRlZDogc3RyaW5nW10gPSBwYXJhbXM/LmV4Y2x1ZGVkIHx8IFtdO1xuXG4gICAgLy8gUHJvY2VzcyBkZWZhdWx0IGZpbHRlcnNcbiAgICAvLyBVc2UgYWxsIGFsbG93ZWQgZmlsdGVycyBpZiBlbXB0eSBvZiBub3Qgc2V0XG4gICAgY29uc3QgZGVmYXVsdHM6IHN0cmluZ1tdID0gcGFyYW1zPy5kZWZhdWx0cyB8fCBhbGxvd2VkO1xuXG4gICAgLy8gUHJlcGFyZSBmaWx0ZXJzIHN0YXR1c1xuICAgIC8vIFNldCBhbGxvd2VkXG4gICAgZm9yIChjb25zdCBmZSBvZiBhbGxvd2VkKSB7XG4gICAgICBmb3IgKGNvbnN0IGYgb2YgdG1wKSB7XG4gICAgICAgIGlmIChmLm5hbWUgPT09IGZlKSB7XG4gICAgICAgICAgZi5hbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBTZXQgZGVmYXVsdHNcbiAgICBmb3IgKGNvbnN0IGZlIG9mIGRlZmF1bHRzKSB7XG4gICAgICBmb3IgKGNvbnN0IGYgb2YgdG1wKSB7XG4gICAgICAgIGlmIChmLm5hbWUgPT09IGZlKSB7XG4gICAgICAgICAgZi5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgICBmLmFsbG93ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHJlbW92ZSBleGNsdWRlZFxuICAgIGZvciAoY29uc3QgZmUgb2YgZXhjbHVkZWQpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiB0bXApIHtcbiAgICAgICAgaWYgKGYubmFtZSA9PT0gZmUpIHtcbiAgICAgICAgICBmLmVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICBmLmFsbG93ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9maWx0ZXJzID0gdG1wO1xuICAgIHRoaXMuX2dyb3VwcyA9IGdyb3VwcztcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ3JvdXBzOiBNb2RlbExpc3RGaWx0ZXJHcm91cFtdID0gW107XG5cbiAgcHVibGljIGdldCBncm91cHMoKTogT2JzZXJ2YWJsZTxNb2RlbExpc3RGaWx0ZXJHcm91cFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2dyb3VwcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIF9lbmFibGVkOiBNb2RlbExpc3RGaWx0ZXJbXSA9IFtdO1xuXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpOiBPYnNlcnZhYmxlPE1vZGVsTGlzdEZpbHRlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXZhaWxhYmxlOiBNb2RlbExpc3RGaWx0ZXJbXSA9IFtdO1xuXG4gIHB1YmxpYyBnZXQgYXZhaWxhYmxlKCk6IE9ic2VydmFibGU8TW9kZWxMaXN0RmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5fYXZhaWxhYmxlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3V0cHV0KCk6IE9ic2VydmFibGU8RmlsdGVyRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLl9vdXRwdXQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBmaWx0ZXI6IEZpbHRlckRhdGEgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5fZmlsdGVycykge1xuICAgICAgaWYgKGYuZW5hYmxlZCkge1xuICAgICAgICBmLnVwZGF0ZUZpbHRlcihmaWx0ZXIpO1xuICAgICAgICBpZiAodGhpcy5fZW5hYmxlZC5pbmRleE9mKGYpID09PSAtMSkge1xuICAgICAgICAgIHRoaXMuX2VuYWJsZWQucHVzaChmKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaSA9IHRoaXMuX2VuYWJsZWQuaW5kZXhPZihmKTtcbiAgICAgICAgaWYgKGkgIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy5fZW5hYmxlZC5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChmLmFsbG93ZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2F2YWlsYWJsZS5pbmRleE9mKGYpID09PSAtMSkge1xuICAgICAgICAgIHRoaXMuX2F2YWlsYWJsZS5wdXNoKGYpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpID0gdGhpcy5fYXZhaWxhYmxlLmluZGV4T2YoZik7XG4gICAgICAgIGlmIChpICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMuX2F2YWlsYWJsZS5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGcgb2YgdGhpcy5fZ3JvdXBzKSB7XG4gICAgICBnLmVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIGcuYWxsb3dlZCA9IGZhbHNlO1xuICAgICAgZm9yIChjb25zdCBmIG9mIGcuZmlsdGVycykge1xuICAgICAgICBpZiAoIWYuZW5hYmxlZCAmJiBmLmFsbG93ZWQpIHtcbiAgICAgICAgICBnLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmLmFsbG93ZWQpIHtcbiAgICAgICAgICBnLmFsbG93ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fb3V0cHV0JC5uZXh0KGZpbHRlcik7XG4gICAgdGhpcy5fZW5hYmxlZCQubmV4dCh0aGlzLl9lbmFibGVkKTtcbiAgICB0aGlzLl9hdmFpbGFibGUkLm5leHQodGhpcy5fYXZhaWxhYmxlKTtcbiAgICB0aGlzLl9ncm91cHMkLm5leHQoXG4gICAgICB0aGlzLl9ncm91cHNcbiAgICAgICAgLmZpbHRlcigoZykgPT4gZy5hbGxvd2VkICYmIGcuZW5hYmxlZClcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEucG9zaXRpb24gLSBiLnBvc2l0aW9uKSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, DestroyRef, inject, Input } from '@angular/core';
|
|
2
2
|
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { debounceTime
|
|
3
|
+
import { debounceTime } from 'rxjs';
|
|
4
4
|
import { NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/common";
|
|
8
9
|
import * as i2 from "@angular/forms";
|
|
@@ -15,7 +16,7 @@ export class ModelListPaginatorComponent {
|
|
|
15
16
|
this.showDirectAccess = false;
|
|
16
17
|
this.directAccess = new FormControl(0);
|
|
17
18
|
this.curPage = 1;
|
|
18
|
-
this.
|
|
19
|
+
this.destroy$ = inject(DestroyRef);
|
|
19
20
|
}
|
|
20
21
|
onPageChange(page) {
|
|
21
22
|
if (!page) {
|
|
@@ -23,16 +24,14 @@ export class ModelListPaginatorComponent {
|
|
|
23
24
|
}
|
|
24
25
|
this.list.paginator.setPage(page);
|
|
25
26
|
}
|
|
26
|
-
ngOnDestroy() {
|
|
27
|
-
this._unsubscribe.next();
|
|
28
|
-
this._unsubscribe.complete();
|
|
29
|
-
}
|
|
30
27
|
ngOnChanges() {
|
|
31
28
|
if (this.list) {
|
|
32
29
|
this.perPageControl.setValue(this.list.paginator.getPageSize(), {
|
|
33
30
|
emitEvent: false,
|
|
34
31
|
});
|
|
35
|
-
this.list.meta
|
|
32
|
+
this.list.meta
|
|
33
|
+
.pipe(takeUntilDestroyed(this.destroy$))
|
|
34
|
+
.subscribe((meta) => {
|
|
36
35
|
if (meta.nav) {
|
|
37
36
|
this.list.paginator.updatePage(meta.nav.page || 1);
|
|
38
37
|
this.curPage = meta.nav.page || 1;
|
|
@@ -43,21 +42,21 @@ export class ModelListPaginatorComponent {
|
|
|
43
42
|
}
|
|
44
43
|
});
|
|
45
44
|
this.perPageControl.valueChanges
|
|
46
|
-
.pipe(
|
|
45
|
+
.pipe(takeUntilDestroyed(this.destroy$))
|
|
47
46
|
.subscribe((count) => {
|
|
48
47
|
this.list.paginator.setPageSize(count);
|
|
49
48
|
});
|
|
50
49
|
this.directAccess.valueChanges
|
|
51
|
-
.pipe(
|
|
50
|
+
.pipe(takeUntilDestroyed(this.destroy$), debounceTime(400))
|
|
52
51
|
.subscribe((count) => {
|
|
53
52
|
this.list.paginator.setPage(+count);
|
|
54
53
|
});
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListPaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ModelListPaginatorComponent, isStandalone: true, selector: "data-model-list-paginator", inputs: { list: "list", maxPages: "maxPages", hide: "hide" }, usesOnChanges: true, ngImport: i0, template: "\n<div class=\"row\" *ngIf=\"!hide\">\n <div class=\"col-sm-4\">\n <select class=\"form-select perpage\" [formControl]=\"perPageControl\">\n <option value=\"10\" *ngIf=\"maxPages>=10\">10 / page</option>\n <option value=\"20\" *ngIf=\"maxPages>=20\">20 / page</option>\n <option value=\"50\" *ngIf=\"maxPages>=50\">50 / page</option>\n <option value=\"100\" *ngIf=\"maxPages>=100\">100 / page</option>\n <option value=\"200\" *ngIf=\"maxPages>=200\">200 / page</option>\n <option value=\"500\" *ngIf=\"maxPages>=500\">500 / page</option>\n <option value=\"1000\" *ngIf=\"maxPages>=1000\">1000 / page</option>\n <option value=\"2000\" *ngIf=\"maxPages>=2000\">2000 / page</option>\n <option value=\"5000\" *ngIf=\"maxPages>=5000\">5000 / page</option>\n <option value=\"10000\" *ngIf=\"maxPages>=10000\">10000 / page</option>\n </select>\n </div>\n <div class=\"col-sm-5 pagination\" *ngIf=\"list\">\n <div class=\"text-xs-center\">\n <ngb-pagination [pageSize]=\"pageSize\" [collectionSize]=\"curCount\" [page]=\"curPage\" (pageChange)=\"onPageChange($event)\" [maxSize]=\"5\" [rotate]=\"true\"></ngb-pagination>\n </div>\n </div>\n <div class=\"col-sm-3 results\">\n <div>{{curCount}} r\u00E9sultats -<span (click)=\"showDirectAccess=!showDirectAccess\" role=\"button\">acces direct</span></div>\n <div *ngIf=\"showDirectAccess\">\n <input class=\"form-control\" [formControl]=\"directAccess\" type=\"number\" placeholder=\"Aller \u00E0 la page\">\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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: NgbPaginationModule }, { kind: "component", type: i3.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }] }); }
|
|
59
58
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListPaginatorComponent, decorators: [{
|
|
61
60
|
type: Component,
|
|
62
61
|
args: [{ selector: 'data-model-list-paginator', standalone: true, imports: [CommonModule, ReactiveFormsModule, NgbPaginationModule], template: "\n<div class=\"row\" *ngIf=\"!hide\">\n <div class=\"col-sm-4\">\n <select class=\"form-select perpage\" [formControl]=\"perPageControl\">\n <option value=\"10\" *ngIf=\"maxPages>=10\">10 / page</option>\n <option value=\"20\" *ngIf=\"maxPages>=20\">20 / page</option>\n <option value=\"50\" *ngIf=\"maxPages>=50\">50 / page</option>\n <option value=\"100\" *ngIf=\"maxPages>=100\">100 / page</option>\n <option value=\"200\" *ngIf=\"maxPages>=200\">200 / page</option>\n <option value=\"500\" *ngIf=\"maxPages>=500\">500 / page</option>\n <option value=\"1000\" *ngIf=\"maxPages>=1000\">1000 / page</option>\n <option value=\"2000\" *ngIf=\"maxPages>=2000\">2000 / page</option>\n <option value=\"5000\" *ngIf=\"maxPages>=5000\">5000 / page</option>\n <option value=\"10000\" *ngIf=\"maxPages>=10000\">10000 / page</option>\n </select>\n </div>\n <div class=\"col-sm-5 pagination\" *ngIf=\"list\">\n <div class=\"text-xs-center\">\n <ngb-pagination [pageSize]=\"pageSize\" [collectionSize]=\"curCount\" [page]=\"curPage\" (pageChange)=\"onPageChange($event)\" [maxSize]=\"5\" [rotate]=\"true\"></ngb-pagination>\n </div>\n </div>\n <div class=\"col-sm-3 results\">\n <div>{{curCount}} r\u00E9sultats -<span (click)=\"showDirectAccess=!showDirectAccess\" role=\"button\">acces direct</span></div>\n <div *ngIf=\"showDirectAccess\">\n <input class=\"form-control\" [formControl]=\"directAccess\" type=\"number\" placeholder=\"Aller \u00E0 la page\">\n </div>\n </div>\n</div>" }]
|
|
63
62
|
}], propDecorators: { list: [{
|
|
@@ -67,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
67
66
|
}], hide: [{
|
|
68
67
|
type: Input
|
|
69
68
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1wYWdpbmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LXBhZ2luYXRvci9tb2RlbC1saXN0LXBhZ2luYXRvci9tb2RlbC1saXN0LXBhZ2luYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtcGFnaW5hdG9yL21vZGVsLWxpc3QtcGFnaW5hdG9yL21vZGVsLWxpc3QtcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQVNoRSxNQUFNLE9BQU8sMkJBQTJCO0lBUHhDO1FBV2tCLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBRXRCLG1CQUFjLEdBQWdCLElBQUksV0FBVyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFELHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixpQkFBWSxHQUFnQixJQUFJLFdBQVcsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RCxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBR1gsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQXdDdkM7SUF0Q1EsWUFBWSxDQUFDLElBQVk7UUFDOUIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDOUQsU0FBUyxFQUFFLEtBQUs7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2lCQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3ZDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNsQixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztvQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztpQkFDbkU7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVMLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWTtpQkFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDdkMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztZQUVMLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWTtpQkFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzFELFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQzs4R0FwRFUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsd0tDaEJ4Qyx5akRBMkJNLHlERGJNLFlBQVksa0lBQUUsbUJBQW1CLHNvQ0FBRSxtQkFBbUI7OzJGQUVyRCwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMkJBQTJCLGNBR3pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQzs4QkFLakQsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOZ2JQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2RhdGEvZGF0YS1tb2RlbCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC1wYWdpbmF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC1wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LXBhZ2luYXRvci5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBOZ2JQYWdpbmF0aW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0UGFnaW5hdG9yQ29tcG9uZW50PFQgZXh0ZW5kcyBEYXRhTW9kZWw+XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzXG57XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PFQ+O1xuICBASW5wdXQoKSBwdWJsaWMgbWF4UGFnZXMgPSAyMDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlID0gZmFsc2U7XG5cbiAgcHVibGljIHBlclBhZ2VDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxudW1iZXI+KDEwKTtcbiAgcHVibGljIHNob3dEaXJlY3RBY2Nlc3MgPSBmYWxzZTtcbiAgcHVibGljIGRpcmVjdEFjY2VzczogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyPigwKTtcbiAgcHVibGljIGN1clBhZ2UgPSAxO1xuICBwdWJsaWMgY3VyQ291bnQhOiBudW1iZXI7XG4gIHB1YmxpYyBwYWdlU2l6ZSE6IG51bWJlcjtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwdWJsaWMgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghcGFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmxpc3QucGFnaW5hdG9yLnNldFBhZ2UocGFnZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdCkge1xuICAgICAgdGhpcy5wZXJQYWdlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmxpc3QucGFnaW5hdG9yLmdldFBhZ2VTaXplKCksIHtcbiAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5saXN0Lm1ldGFcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKChtZXRhKSA9PiB7XG4gICAgICAgICAgaWYgKG1ldGEubmF2KSB7XG4gICAgICAgICAgICB0aGlzLmxpc3QucGFnaW5hdG9yLnVwZGF0ZVBhZ2UobWV0YS5uYXYucGFnZSB8fCAxKTtcbiAgICAgICAgICAgIHRoaXMuY3VyUGFnZSA9IG1ldGEubmF2LnBhZ2UgfHwgMTtcbiAgICAgICAgICAgIHRoaXMuY3VyQ291bnQgPSBtZXRhLm5hdi5jb3VudDtcbiAgICAgICAgICAgIHRoaXMubGlzdC5wYWdpbmF0b3IudXBkYXRlUGFnZVNpemUobWV0YS5uYXYuc2l6ZSk7XG4gICAgICAgICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5saXN0LnBhZ2luYXRvci5nZXRQYWdlU2l6ZSgpO1xuICAgICAgICAgICAgdGhpcy5wZXJQYWdlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnBhZ2VTaXplLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5wZXJQYWdlQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKChjb3VudCkgPT4ge1xuICAgICAgICAgIHRoaXMubGlzdC5wYWdpbmF0b3Iuc2V0UGFnZVNpemUoY291bnQpO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5kaXJlY3RBY2Nlc3MudmFsdWVDaGFuZ2VzXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDQwMCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGNvdW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5saXN0LnBhZ2luYXRvci5zZXRQYWdlKCtjb3VudCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiXG48ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhaGlkZVwiPlxuICA8ZGl2IGNsYXNzPVwiY29sLXNtLTRcIj5cbiAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgcGVycGFnZVwiIFtmb3JtQ29udHJvbF09XCJwZXJQYWdlQ29udHJvbFwiPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwXCIgKm5nSWY9XCJtYXhQYWdlcyZndDs9MTBcIj4xMCAvIHBhZ2U8L29wdGlvbj5cbiAgICAgIDxvcHRpb24gdmFsdWU9XCIyMFwiICpuZ0lmPVwibWF4UGFnZXMmZ3Q7PTIwXCI+MjAgLyBwYWdlPC9vcHRpb24+XG4gICAgICA8b3B0aW9uIHZhbHVlPVwiNTBcIiAqbmdJZj1cIm1heFBhZ2VzJmd0Oz01MFwiPjUwIC8gcGFnZTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwMFwiICpuZ0lmPVwibWF4UGFnZXMmZ3Q7PTEwMFwiPjEwMCAvIHBhZ2U8L29wdGlvbj5cbiAgICAgIDxvcHRpb24gdmFsdWU9XCIyMDBcIiAqbmdJZj1cIm1heFBhZ2VzJmd0Oz0yMDBcIj4yMDAgLyBwYWdlPC9vcHRpb24+XG4gICAgICA8b3B0aW9uIHZhbHVlPVwiNTAwXCIgKm5nSWY9XCJtYXhQYWdlcyZndDs9NTAwXCI+NTAwIC8gcGFnZTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwMDBcIiAqbmdJZj1cIm1heFBhZ2VzJmd0Oz0xMDAwXCI+MTAwMCAvIHBhZ2U8L29wdGlvbj5cbiAgICAgIDxvcHRpb24gdmFsdWU9XCIyMDAwXCIgKm5nSWY9XCJtYXhQYWdlcyZndDs9MjAwMFwiPjIwMDAgLyBwYWdlPC9vcHRpb24+XG4gICAgICA8b3B0aW9uIHZhbHVlPVwiNTAwMFwiICpuZ0lmPVwibWF4UGFnZXMmZ3Q7PTUwMDBcIj41MDAwIC8gcGFnZTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwMDAwXCIgKm5nSWY9XCJtYXhQYWdlcyZndDs9MTAwMDBcIj4xMDAwMCAvIHBhZ2U8L29wdGlvbj5cbiAgICA8L3NlbGVjdD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2wtc20tNSBwYWdpbmF0aW9uXCIgKm5nSWY9XCJsaXN0XCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQteHMtY2VudGVyXCI+XG4gICAgICA8bmdiLXBhZ2luYXRpb24gW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgW2NvbGxlY3Rpb25TaXplXT1cImN1ckNvdW50XCIgW3BhZ2VdPVwiY3VyUGFnZVwiIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCIgW21heFNpemVdPVwiNVwiIFtyb3RhdGVdPVwidHJ1ZVwiPjwvbmdiLXBhZ2luYXRpb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sLXNtLTMgcmVzdWx0c1wiPlxuICAgIDxkaXY+e3tjdXJDb3VudH19IHLDqXN1bHRhdHMgLTxzcGFuIChjbGljayk9XCJzaG93RGlyZWN0QWNjZXNzPSFzaG93RGlyZWN0QWNjZXNzXCIgcm9sZT1cImJ1dHRvblwiPmFjY2VzIGRpcmVjdDwvc3Bhbj48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RpcmVjdEFjY2Vzc1wiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2Zvcm1Db250cm9sXT1cImRpcmVjdEFjY2Vzc1wiIHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIkFsbGVyIMOgIGxhIHBhZ2VcIj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs
CHANGED
|
@@ -35,10 +35,10 @@ export class ModelListSorterComponent {
|
|
|
35
35
|
cancel() {
|
|
36
36
|
this.list.sorter.unset(this.field);
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListSorterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ModelListSorterComponent, isStandalone: true, selector: "data-model-list-sorter", inputs: { list: "list", field: "field" }, ngImport: i0, template: "<span class=\"dirs\"><span *ngIf=\"getOrder()>=0 || getCount()>1\" (click)=\"cancel()\" role=\"button\"><span class=\"count\" *ngIf=\"getCount()>1\"> {{getOrder()}}</span><span class=\"bi bi-x\"></span></span><span class=\"bi bi-sort-down-alt\" (click)=\"setUp()\" [class.active]=\"isUp()\" role=\"button\"></span><span class=\"bi bi-sort-down\" (click)=\"setDown()\" [class.active]=\"isDown()\" role=\"button\"></span> </span>\n<ng-content></ng-content>", styles: [".dirs{color:#d3d3d3}.dirs .count{font-size:.7rem;margin-right:-.1rem;vertical-align:super}.active{color:#000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListSorterComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
43
|
args: [{ selector: 'data-model-list-sorter', standalone: true, imports: [CommonModule], template: "<span class=\"dirs\"><span *ngIf=\"getOrder()>=0 || getCount()>1\" (click)=\"cancel()\" role=\"button\"><span class=\"count\" *ngIf=\"getCount()>1\"> {{getOrder()}}</span><span class=\"bi bi-x\"></span></span><span class=\"bi bi-sort-down-alt\" (click)=\"setUp()\" [class.active]=\"isUp()\" role=\"button\"></span><span class=\"bi bi-sort-down\" (click)=\"setDown()\" [class.active]=\"isDown()\" role=\"button\"></span> </span>\n<ng-content></ng-content>", styles: [".dirs{color:#d3d3d3}.dirs .count{font-size:.7rem;margin-right:-.1rem;vertical-align:super}.active{color:#000}\n"] }]
|
|
44
44
|
}], ctorParameters: () => [], propDecorators: { list: [{
|
|
@@ -149,10 +149,10 @@ export class ModelListService {
|
|
|
149
149
|
}
|
|
150
150
|
return ml;
|
|
151
151
|
}
|
|
152
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
153
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.
|
|
152
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListService, deps: [{ token: DATA_AUTH_SERVICE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
153
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListService, providedIn: 'root' }); }
|
|
154
154
|
}
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListService, decorators: [{
|
|
156
156
|
type: Injectable,
|
|
157
157
|
args: [{
|
|
158
158
|
providedIn: 'root',
|
|
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
161
161
|
type: Inject,
|
|
162
162
|
args: [DATA_AUTH_SERVICE]
|
|
163
163
|
}] }] });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGFBQWEsRUFDYixLQUFLLEVBRUwsRUFBRSxFQUNGLGFBQWEsRUFDYixLQUFLLEVBQ0wsT0FBTyxFQUNQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQVFkLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFLM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQXlEckUsTUFBTSxPQUFPLFNBQVM7SUFZcEIsWUFBWSxJQUFZO1FBSGpCLGNBQVMsR0FBRyxJQUFJLGFBQWEsQ0FBb0IsQ0FBQyxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQU1mLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBSG5DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFJRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBSUQsSUFBVyxPQUFPO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxF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O2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDL0I7U0FDRjthQUFNO1lBQ0wsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDZixJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLEVBQUUsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFrQixDQUFDO2FBQzNDO1lBQ0QsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFO2dCQUN4QixFQUFFLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsRUFBRSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO2FBQ3RDO1lBQ0QsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwQjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs4R0FyRFUsZ0JBQWdCLGtCQUlqQixpQkFBaUI7a0hBSmhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBORVZFUixcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFJlcGxheVN1YmplY3QsXG4gIHNoYXJlLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7XG4gIElRdWVyeU1ldGEsXG4gIElRdWVyeU1ldGFOYXZQYXJhbXMsXG4gIElRdWVyeU5hdixcbiAgUXVlcnlzZXQsXG59IGZyb20gJy4uL2RhdGEvZGF0YS1xdWVyeSc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9kZWxMaXN0RmllbGRzIH0gZnJvbSAnLi9tb2RlbC1saXN0LWZpZWxkcy9tb2RlbC1saXN0LWZpZWxkcyc7XG5pbXBvcnQgeyBNb2RlbExpc3RQYWdpbmF0b3IgfSBmcm9tICcuL21vZGVsLWxpc3QtcGFnaW5hdG9yL21vZGVsLWxpc3QtcGFnaW5hdG9yJztcbmltcG9ydCB7IE1vZGVsTGlzdFNvcnRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC1zb3J0ZXIvbW9kZWwtbGlzdC1zb3J0ZXInO1xuaW1wb3J0IHsgTW9kZWxMaXN0RmlsdGVycyB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVycyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vZGF0YS9kYXRhLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgTW9kZWxMaXN0RmlsdGVyIH0gZnJvbSAnLi9tb2RlbC1saXN0LWZpbHRlcnMvbW9kZWwtbGlzdC1maWx0ZXInO1xuaW1wb3J0IHsgSUZpZWxkSGVhZGVyTWVzc2FnZSB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWVsZHMvbW9kZWwtbGlzdC1maWVsZC1oZWFkZXIvbWVzc2FnZXMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2VCYXNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgREFUQV9BVVRIX1NFUlZJQ0UgfSBmcm9tICcuLi9hdXRoL2F1dGgtaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tRmllbGQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHByaW9yaXR5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckRlZmF1bHRzIHtcbiAgW2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB0eXBlIFNvcnRlckRlZmF1bHRzID0gc3RyaW5nW107XG5cbi8qKlxuICogRmllbGRzIHBhcmFtZXRlcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRzUGFyYW1zIHtcbiAgLyoqIEFsbG93ZWQgZmllbGRzLCBhbGwgbW9kZWwgZmllbGRzIGFyZSBhbGxvd2VkIGlmIGVtcHR5ICovXG4gIGFsbG93ZWQ/OiBzdHJpbmdbXTtcbiAgLyoqIERlZmF1bHQgZW5hYmxlZCBmaWVsZHMgKi9cbiAgZGVmYXVsdHM/OiBzdHJpbmdbXTtcbiAgLyoqIEV4Y2x1ZGVkIGZpZWxkcyAqL1xuICBleGNsdWRlZD86IHN0cmluZ1tdO1xuICAvKiogQ3VzdG9tIGZpZWxkcyAqL1xuICBjdXN0b20/OiBDdXN0b21GaWVsZFtdO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJzUGFyYW1zIHtcbiAgLyoqIEFsbG93ZWQgZmlsdGVyIG5hbWVzICovXG4gIGFsbG93ZWQ/OiBzdHJpbmdbXTtcbiAgLyoqIERlZmF1bHQgYWN0aXZlIGZpbHRlciBuYW1lcyAqL1xuICBkZWZhdWx0cz86IHN0cmluZ1tdO1xuICAvKiogRXhjbHVkZWQgZmlsdGVyIG5hbWVzICovXG4gIGV4Y2x1ZGVkPzogc3RyaW5nW107XG4gIC8qKiBGaWx0ZXJzIGRlZmluaXRpb25zICovXG4gIGZpbHRlcnM/OiBNb2RlbExpc3RGaWx0ZXJbXTtcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvblBhcmFtcyA9IElRdWVyeU1ldGFOYXZQYXJhbXM7XG5cbmV4cG9ydCB0eXBlIElNb2RlbExpc3RNZXNzYWdlID0gSUZpZWxkSGVhZGVyTWVzc2FnZTtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RlbExpc3RQYXJhbXMge1xuICBmaWVsZHM/OiBGaWVsZHNQYXJhbXM7XG4gIGZpbHRlcnM/OiBGaWx0ZXJzUGFyYW1zO1xuICBmaWx0ZXI/OiBGaWx0ZXJEZWZhdWx0cyB8IE9ic2VydmFibGU8RmlsdGVyRGVmYXVsdHM+O1xuICBzb3J0ZXI/OiBTb3J0ZXJEZWZhdWx0cztcbiAgcGFnaW5hdG9yPzogSVF1ZXJ5TmF2O1xuICBrZWVwPzogYm9vbGVhbjtcbiAgcmVsb2FkPzogU3ViamVjdDx2b2lkIHwgYm9vbGVhbj47XG4gIHVuc3Vic2NyaWJlPzogU3ViamVjdDx2b2lkPjtcbn1cblxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdDxUIGV4dGVuZHMgRGF0YU1vZGVsPiB7XG4gIHB1YmxpYyBuYW1lITogc3RyaW5nO1xuICBwdWJsaWMgZmlsdGVycyE6IE1vZGVsTGlzdEZpbHRlcnM7XG4gIHB1YmxpYyBzb3J0ZXIhOiBNb2RlbExpc3RTb3J0ZXI7XG4gIHB1YmxpYyBwYWdpbmF0b3IhOiBNb2RlbExpc3RQYWdpbmF0b3I7XG4gIHB1YmxpYyBxdWVyeXNldCE6IFF1ZXJ5c2V0PFQ+O1xuICBwdWJsaWMgZmllbGRzITogTW9kZWxMaXN0RmllbGRzPFQ+O1xuICBwdWJsaWMgcmVsb2FkITogU3ViamVjdDx2b2lkIHwgYm9vbGVhbj47XG4gIHB1YmxpYyB1bnN1YnNjcmliZSE6IFN1YmplY3Q8dm9pZD47XG4gIHB1YmxpYyBtZXNzYWdlcyQgPSBuZXcgUmVwbGF5U3ViamVjdDxJTW9kZWxMaXN0TWVzc2FnZT4oMSk7XG4gIHB1YmxpYyBzdGFydGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgcmVzdWx0cyBjb3VudCAoZnJvbSBsYXN0IG1ldGEgcmVjZWl2ZWQpLlxuICAgKi9cbiAgcHVibGljIGdldCBjb3VudCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY291bnQ7XG4gIH1cblxuICBwcml2YXRlIF9yZXN1bHRzPzogT2JzZXJ2YWJsZTxUW10+O1xuXG4gIHB1YmxpYyBnZXQgcmVzdWx0cygpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGlmICghdGhpcy5fcmVzdWx0cykge1xuICAgICAgdGhpcy5fcmVzdWx0cyA9IHRoaXMucXVlcnlzZXQucmVzdWx0cy5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdCByZXN1bHQnKSksXG4gICAgICAgIHNoYXJlKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlIHx8IE5FVkVSKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3Jlc3VsdHM7XG4gIH1cblxuICBwcml2YXRlIF9tZXRhPzogT2JzZXJ2YWJsZTxJUXVlcnlNZXRhPjtcblxuICBwdWJsaWMgZ2V0IG1ldGEoKTogT2JzZXJ2YWJsZTxJUXVlcnlNZXRhPiB7XG4gICAgaWYgKCF0aGlzLl9tZXRhKSB7XG4gICAgICB0aGlzLl9tZXRhID0gdGhpcy5xdWVyeXNldC5tZXRhLnBpcGUoXG4gICAgICAgIC8vIHRhcCgoKSA9PiBjb25zb2xlLmxvZygnQHNvbGlkZXYvZGF0YTogbW9kZWxsaXN0IG1ldGEnKSksXG4gICAgICAgIHRhcCgobSkgPT4gKHRoaXMuX2NvdW50ID0gbS5uYXYuY291bnQpKSxcbiAgICAgICAgc2hhcmUoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUgfHwgTkVWRVIpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbWV0YTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRpbmc/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAoIXRoaXMuX2xvYWRpbmcpIHtcbiAgICAgIHRoaXMuX2xvYWRpbmcgPSB0aGlzLnF1ZXJ5c2V0LmxvYWRpbmcucGlwZShcbiAgICAgICAgLy8gdGFwKCgpID0+IGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBtb2RlbGxpc3QgbG9hZGluZycpKSxcbiAgICAgICAgc2hhcmUoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUgfHwgTkVWRVIpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHByaXZhdGUgX2Z1bGw/OiBPYnNlcnZhYmxlPFtUW10sIGJvb2xlYW4sIElRdWVyeU1ldGFdPjtcblxuICBwdWJsaWMgZ2V0IGZ1bGwoKTogT2JzZXJ2YWJsZTxbVFtdLCBib29sZWFuLCBJUXVlcnlNZXRhXT4ge1xuICAgIGlmICghdGhpcy5fZnVsbCkge1xuICAgICAgdGhpcy5fZnVsbCA9IHRoaXMucXVlcnlzZXQuZnVsbC5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdCBmdWxsJykpLFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSB8fCBORVZFUilcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mdWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0KHBhcmFtczogTW9kZWxMaXN0UGFyYW1zKSB7XG4gICAgbGV0IGZpbHRlciQ6IE9ic2VydmFibGU8RmlsdGVyRGVmYXVsdHM+O1xuICAgIGxldCByZWxvYWRGaXJlZCA9IGZhbHNlO1xuICAgIGlmIChwYXJhbXMuZmlsdGVyICYmICFwYXJhbXMuZmlsdGVyLnN1YnNjcmliZSkge1xuICAgICAgZmlsdGVyJCA9IG9mKHBhcmFtcy5maWx0ZXIgYXMgRmlsdGVyRGVmYXVsdHMpO1xuICAgIH0gZWxzZSBpZiAocGFyYW1zLmZpbHRlciAmJiBwYXJhbXMuZmlsdGVyLnN1YnNjcmliZSkge1xuICAgICAgZmlsdGVyJCA9IHBhcmFtcy5maWx0ZXIgYXMgT2JzZXJ2YWJsZTxGaWx0ZXJEZWZhdWx0cz47XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlciQgPSBvZih7fSk7XG4gICAgfVxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5yZWxvYWQucGlwZSh0YXAoKHYpID0+IChyZWxvYWRGaXJlZCA9ICEhdikpKSxcbiAgICAgIHRoaXMuZmlsdGVycy5vdXRwdXQsXG4gICAgICBmaWx0ZXIkLFxuICAgICAgdGhpcy5wYWdpbmF0b3Iub3V0cHV0LFxuICAgICAgdGhpcy5zb3J0ZXIub3V0cHV0LFxuICAgICAgdGhpcy5maWVsZHMub3V0cHV0LFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGhyb3R0bGVUaW1lKDIwMCksXG4gICAgICAgIHN3aXRjaE1hcChcbiAgICAgICAgICAoW3JlbG9hZCwgZmlsdGVyLCBtYW51YWxGaWx0ZXIsIHBhZ2luYXRvciwgc29ydGVyLCBmaWVsZHNdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5c2V0XG4gICAgICAgICAgICAgIC5maWx0ZXIoZmlsdGVyKVxuICAgICAgICAgICAgICAuZmlsdGVyKG1hbnVhbEZpbHRlciB8fCB7fSwgdHJ1ZSlcbiAgICAgICAgICAgICAgLnBhZ2luYXRlQnkocGFnaW5hdG9yLnBhZ2Vfc2l6ZSlcbiAgICAgICAgICAgICAgLnNldFBhZ2UocGFnaW5hdG9yLnBhZ2UpXG4gICAgICAgICAgICAgIC5zb3J0KC4uLnNvcnRlcilcbiAgICAgICAgICAgICAgLnNldEZpZWxkcyhmaWVsZHMpO1xuICAgICAgICAgICAgY29uc3QgZGJTeW5jID0gcmVsb2FkRmlyZWQ7XG4gICAgICAgICAgICByZWxvYWRGaXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlzZXQuZ2V0KHRydWUsIGRiU3luYyk7XG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSB8fCBORVZFUilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdDpnZXQgcmVzdWx0cycsIHRoaXMubmFtZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0Bzb2xpZGV2L2RhdGE6IGVycm9yIHdoaWxlIGdldHRpbmcgbW9kZWwgbGlzdCByZXN1bHRzIDogJyxcbiAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQHNvbGlkZXYvZGF0YTogbW9kZWxsaXN0OmNvbXBsZXRlZCcsIHRoaXMubmFtZSk7XG4gICAgICAgICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB0aGlzLnJlbG9hZC5uZXh0KCk7XG4gICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0U2VydmljZSB7XG4gIHByaXZhdGUgX2luc3RhbmNlczogTWFwPHN0cmluZywgTW9kZWxMaXN0PGFueT4+ID0gbmV3IE1hcCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoREFUQV9BVVRIX1NFUlZJQ0UpIHByaXZhdGUgX2F1dGg6IEF1dGhTZXJ2aWNlQmFzZTxhbnksIGFueSwgYW55PlxuICApIHtcbiAgICB0aGlzLl9hdXRoLmxvZ291dCQuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzZXQoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIHRoaXMuX2luc3RhbmNlcy52YWx1ZXMoKSkge1xuICAgICAgaWYgKGkudW5zdWJzY3JpYmUpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0NsZWFyaW5nICcsIGkpO1xuICAgICAgICBpLnVuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5faW5zdGFuY2VzLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0PFQgZXh0ZW5kcyBEYXRhTW9kZWw+KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIGRlZmF1bHRzOiBNb2RlbExpc3RQYXJhbXNcbiAgKSB7XG4gICAgbGV0IG1sOiBNb2RlbExpc3Q8VD47XG5cbiAgICBpZiAoIW5hbWUgfHwgIXRoaXMuX2luc3RhbmNlcy5oYXMobmFtZSkgfHwgIWRlZmF1bHRzLmtlZXApIHtcbiAgICAgIG1sID0gbmV3IE1vZGVsTGlzdDxUPihuYW1lKTtcbiAgICAgIG1sLnF1ZXJ5c2V0ID0gY29sbGVjdGlvbi5xdWVyeXNldCgpO1xuICAgICAgbWwuZmllbGRzID0gbmV3IE1vZGVsTGlzdEZpZWxkcyhjb2xsZWN0aW9uLCBkZWZhdWx0cy5maWVsZHMpO1xuICAgICAgbWwuc29ydGVyID0gbmV3IE1vZGVsTGlzdFNvcnRlcihkZWZhdWx0cy5zb3J0ZXIgfHwgW10pO1xuICAgICAgbWwucGFnaW5hdG9yID0gbmV3IE1vZGVsTGlzdFBhZ2luYXRvcihkZWZhdWx0cy5wYWdpbmF0b3IpO1xuICAgICAgbWwuZmlsdGVycyA9IG5ldyBNb2RlbExpc3RGaWx0ZXJzKGRlZmF1bHRzLmZpbHRlcnMpO1xuICAgICAgaWYgKGRlZmF1bHRzLmtlZXApIHtcbiAgICAgICAgdGhpcy5faW5zdGFuY2VzLnNldChuYW1lLCBtbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1sID0gdGhpcy5faW5zdGFuY2VzLmdldChuYW1lKSE7XG4gICAgfVxuICAgIGlmICghbWwuc3RhcnRlZCkge1xuICAgICAgaWYgKGRlZmF1bHRzLnJlbG9hZCkge1xuICAgICAgICBtbC5yZWxvYWQgPSBkZWZhdWx0cy5yZWxvYWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtbC5yZWxvYWQgPSBuZXcgU3ViamVjdDx2b2lkIHwgYm9vbGVhbj4oKTtcbiAgICAgIH1cbiAgICAgIGlmIChkZWZhdWx0cy51bnN1YnNjcmliZSkge1xuICAgICAgICBtbC51bnN1YnNjcmliZSA9IGRlZmF1bHRzLnVuc3Vic2NyaWJlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWwudW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgfVxuICAgICAgbWwuc3RhcnQoZGVmYXVsdHMpO1xuICAgIH1cbiAgICByZXR1cm4gbWw7XG4gIH1cbn1cbiJdfQ==
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGFBQWEsRUFDYixLQUFLLEVBRUwsRUFBRSxFQUNGLGFBQWEsRUFDYixLQUFLLEVBQ0wsT0FBTyxFQUNQLFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQVFkLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFLM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQTBEckUsTUFBTSxPQUFPLFNBQVM7SUFZcEIsWUFBWSxJQUFZO1FBSGpCLGNBQVMsR0FBRyxJQUFJLGFBQWEsQ0FBb0IsQ0FBQyxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQU1mLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBSG5DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFJRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBSUQsSUFBVyxPQUFPO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxF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O2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDL0I7U0FDRjthQUFNO1lBQ0wsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDZixJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLEVBQUUsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFrQixDQUFDO2FBQzNDO1lBQ0QsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFO2dCQUN4QixFQUFFLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsRUFBRSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO2FBQ3RDO1lBQ0QsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwQjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs4R0FyRFUsZ0JBQWdCLGtCQUlqQixpQkFBaUI7a0hBSmhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBORVZFUixcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFJlcGxheVN1YmplY3QsXG4gIHNoYXJlLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7XG4gIElRdWVyeU1ldGEsXG4gIElRdWVyeU1ldGFOYXZQYXJhbXMsXG4gIElRdWVyeU5hdixcbiAgUXVlcnlzZXQsXG59IGZyb20gJy4uL2RhdGEvZGF0YS1xdWVyeSc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9kZWxMaXN0RmllbGRzIH0gZnJvbSAnLi9tb2RlbC1saXN0LWZpZWxkcy9tb2RlbC1saXN0LWZpZWxkcyc7XG5pbXBvcnQgeyBNb2RlbExpc3RQYWdpbmF0b3IgfSBmcm9tICcuL21vZGVsLWxpc3QtcGFnaW5hdG9yL21vZGVsLWxpc3QtcGFnaW5hdG9yJztcbmltcG9ydCB7IE1vZGVsTGlzdFNvcnRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC1zb3J0ZXIvbW9kZWwtbGlzdC1zb3J0ZXInO1xuaW1wb3J0IHsgTW9kZWxMaXN0RmlsdGVycyB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVycyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vZGF0YS9kYXRhLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgTW9kZWxMaXN0RmlsdGVyIH0gZnJvbSAnLi9tb2RlbC1saXN0LWZpbHRlcnMvbW9kZWwtbGlzdC1maWx0ZXInO1xuaW1wb3J0IHsgSUZpZWxkSGVhZGVyTWVzc2FnZSB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWVsZHMvbW9kZWwtbGlzdC1maWVsZC1oZWFkZXIvbWVzc2FnZXMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2VCYXNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgREFUQV9BVVRIX1NFUlZJQ0UgfSBmcm9tICcuLi9hdXRoL2F1dGgtaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RlbExpc3RGaWx0ZXJHcm91cCB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVyLWdyb3VwJztcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21GaWVsZCB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJpb3JpdHk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRGVmYXVsdHMge1xuICBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHR5cGUgU29ydGVyRGVmYXVsdHMgPSBzdHJpbmdbXTtcblxuLyoqXG4gKiBGaWVsZHMgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZHNQYXJhbXMge1xuICAvKiogQWxsb3dlZCBmaWVsZHMsIGFsbCBtb2RlbCBmaWVsZHMgYXJlIGFsbG93ZWQgaWYgZW1wdHkgKi9cbiAgYWxsb3dlZD86IHN0cmluZ1tdO1xuICAvKiogRGVmYXVsdCBlbmFibGVkIGZpZWxkcyAqL1xuICBkZWZhdWx0cz86IHN0cmluZ1tdO1xuICAvKiogRXhjbHVkZWQgZmllbGRzICovXG4gIGV4Y2x1ZGVkPzogc3RyaW5nW107XG4gIC8qKiBDdXN0b20gZmllbGRzICovXG4gIGN1c3RvbT86IEN1c3RvbUZpZWxkW107XG59XG5cbi8qKlxuICogRmlsdGVycyBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlcnNQYXJhbXMge1xuICAvKiogQWxsb3dlZCBmaWx0ZXIgbmFtZXMgKi9cbiAgYWxsb3dlZD86IHN0cmluZ1tdO1xuICAvKiogRGVmYXVsdCBhY3RpdmUgZmlsdGVyIG5hbWVzICovXG4gIGRlZmF1bHRzPzogc3RyaW5nW107XG4gIC8qKiBFeGNsdWRlZCBmaWx0ZXIgbmFtZXMgKi9cbiAgZXhjbHVkZWQ/OiBzdHJpbmdbXTtcbiAgLyoqIEZpbHRlcnMgZGVmaW5pdGlvbnMgKi9cbiAgZmlsdGVycz86IChNb2RlbExpc3RGaWx0ZXIgfCBNb2RlbExpc3RGaWx0ZXJHcm91cClbXTtcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvblBhcmFtcyA9IElRdWVyeU1ldGFOYXZQYXJhbXM7XG5cbmV4cG9ydCB0eXBlIElNb2RlbExpc3RNZXNzYWdlID0gSUZpZWxkSGVhZGVyTWVzc2FnZTtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RlbExpc3RQYXJhbXMge1xuICBmaWVsZHM/OiBGaWVsZHNQYXJhbXM7XG4gIGZpbHRlcnM/OiBGaWx0ZXJzUGFyYW1zO1xuICBmaWx0ZXI/OiBGaWx0ZXJEZWZhdWx0cyB8IE9ic2VydmFibGU8RmlsdGVyRGVmYXVsdHM+O1xuICBzb3J0ZXI/OiBTb3J0ZXJEZWZhdWx0cztcbiAgcGFnaW5hdG9yPzogSVF1ZXJ5TmF2O1xuICBrZWVwPzogYm9vbGVhbjtcbiAgcmVsb2FkPzogU3ViamVjdDx2b2lkIHwgYm9vbGVhbj47XG4gIHVuc3Vic2NyaWJlPzogU3ViamVjdDx2b2lkPjtcbn1cblxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdDxUIGV4dGVuZHMgRGF0YU1vZGVsPiB7XG4gIHB1YmxpYyBuYW1lITogc3RyaW5nO1xuICBwdWJsaWMgZmlsdGVycyE6IE1vZGVsTGlzdEZpbHRlcnM7XG4gIHB1YmxpYyBzb3J0ZXIhOiBNb2RlbExpc3RTb3J0ZXI7XG4gIHB1YmxpYyBwYWdpbmF0b3IhOiBNb2RlbExpc3RQYWdpbmF0b3I7XG4gIHB1YmxpYyBxdWVyeXNldCE6IFF1ZXJ5c2V0PFQ+O1xuICBwdWJsaWMgZmllbGRzITogTW9kZWxMaXN0RmllbGRzPFQ+O1xuICBwdWJsaWMgcmVsb2FkITogU3ViamVjdDx2b2lkIHwgYm9vbGVhbj47XG4gIHB1YmxpYyB1bnN1YnNjcmliZSE6IFN1YmplY3Q8dm9pZD47XG4gIHB1YmxpYyBtZXNzYWdlcyQgPSBuZXcgUmVwbGF5U3ViamVjdDxJTW9kZWxMaXN0TWVzc2FnZT4oMSk7XG4gIHB1YmxpYyBzdGFydGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgcmVzdWx0cyBjb3VudCAoZnJvbSBsYXN0IG1ldGEgcmVjZWl2ZWQpLlxuICAgKi9cbiAgcHVibGljIGdldCBjb3VudCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY291bnQ7XG4gIH1cblxuICBwcml2YXRlIF9yZXN1bHRzPzogT2JzZXJ2YWJsZTxUW10+O1xuXG4gIHB1YmxpYyBnZXQgcmVzdWx0cygpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGlmICghdGhpcy5fcmVzdWx0cykge1xuICAgICAgdGhpcy5fcmVzdWx0cyA9IHRoaXMucXVlcnlzZXQucmVzdWx0cy5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdCByZXN1bHQnKSksXG4gICAgICAgIHNoYXJlKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlIHx8IE5FVkVSKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWV0YT86IE9ic2VydmFibGU8SVF1ZXJ5TWV0YT47XG5cbiAgcHVibGljIGdldCBtZXRhKCk6IE9ic2VydmFibGU8SVF1ZXJ5TWV0YT4ge1xuICAgIGlmICghdGhpcy5fbWV0YSkge1xuICAgICAgdGhpcy5fbWV0YSA9IHRoaXMucXVlcnlzZXQubWV0YS5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdCBtZXRhJykpLFxuICAgICAgICB0YXAoKG0pID0+ICh0aGlzLl9jb3VudCA9IG0ubmF2LmNvdW50KSksXG4gICAgICAgIHNoYXJlKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlIHx8IE5FVkVSKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9tZXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZGluZz86IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHVibGljIGdldCBsb2FkaW5nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy5fbG9hZGluZykge1xuICAgICAgdGhpcy5fbG9hZGluZyA9IHRoaXMucXVlcnlzZXQubG9hZGluZy5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdCBsb2FkaW5nJykpLFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSB8fCBORVZFUiksXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHByaXZhdGUgX2Z1bGw/OiBPYnNlcnZhYmxlPFtUW10sIGJvb2xlYW4sIElRdWVyeU1ldGFdPjtcblxuICBwdWJsaWMgZ2V0IGZ1bGwoKTogT2JzZXJ2YWJsZTxbVFtdLCBib29sZWFuLCBJUXVlcnlNZXRhXT4ge1xuICAgIGlmICghdGhpcy5fZnVsbCkge1xuICAgICAgdGhpcy5fZnVsbCA9IHRoaXMucXVlcnlzZXQuZnVsbC5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdCBmdWxsJykpLFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSB8fCBORVZFUiksXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydChwYXJhbXM6IE1vZGVsTGlzdFBhcmFtcykge1xuICAgIGxldCBmaWx0ZXIkOiBPYnNlcnZhYmxlPEZpbHRlckRlZmF1bHRzPjtcbiAgICBsZXQgcmVsb2FkRmlyZWQgPSBmYWxzZTtcbiAgICBpZiAocGFyYW1zLmZpbHRlciAmJiAhcGFyYW1zLmZpbHRlci5zdWJzY3JpYmUpIHtcbiAgICAgIGZpbHRlciQgPSBvZihwYXJhbXMuZmlsdGVyIGFzIEZpbHRlckRlZmF1bHRzKTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtcy5maWx0ZXIgJiYgcGFyYW1zLmZpbHRlci5zdWJzY3JpYmUpIHtcbiAgICAgIGZpbHRlciQgPSBwYXJhbXMuZmlsdGVyIGFzIE9ic2VydmFibGU8RmlsdGVyRGVmYXVsdHM+O1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXIkID0gb2Yoe30pO1xuICAgIH1cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucmVsb2FkLnBpcGUodGFwKCh2KSA9PiAocmVsb2FkRmlyZWQgPSAhIXYpKSksXG4gICAgICB0aGlzLmZpbHRlcnMub3V0cHV0LFxuICAgICAgZmlsdGVyJCxcbiAgICAgIHRoaXMucGFnaW5hdG9yLm91dHB1dCxcbiAgICAgIHRoaXMuc29ydGVyLm91dHB1dCxcbiAgICAgIHRoaXMuZmllbGRzLm91dHB1dCxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRocm90dGxlVGltZSgyMDApLFxuICAgICAgICBzd2l0Y2hNYXAoXG4gICAgICAgICAgKFtyZWxvYWQsIGZpbHRlciwgbWFudWFsRmlsdGVyLCBwYWdpbmF0b3IsIHNvcnRlciwgZmllbGRzXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5xdWVyeXNldFxuICAgICAgICAgICAgICAuZmlsdGVyKGZpbHRlcilcbiAgICAgICAgICAgICAgLmZpbHRlcihtYW51YWxGaWx0ZXIgfHwge30sIHRydWUpXG4gICAgICAgICAgICAgIC5wYWdpbmF0ZUJ5KHBhZ2luYXRvci5wYWdlX3NpemUpXG4gICAgICAgICAgICAgIC5zZXRQYWdlKHBhZ2luYXRvci5wYWdlKVxuICAgICAgICAgICAgICAuc29ydCguLi5zb3J0ZXIpXG4gICAgICAgICAgICAgIC5zZXRGaWVsZHMoZmllbGRzKTtcbiAgICAgICAgICAgIGNvbnN0IGRiU3luYyA9IHJlbG9hZEZpcmVkO1xuICAgICAgICAgICAgcmVsb2FkRmlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5c2V0LmdldCh0cnVlLCBkYlN5bmMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlIHx8IE5FVkVSKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdDpnZXQgcmVzdWx0cycsIHRoaXMubmFtZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0Bzb2xpZGV2L2RhdGE6IGVycm9yIHdoaWxlIGdldHRpbmcgbW9kZWwgbGlzdCByZXN1bHRzIDogJyxcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdDpjb21wbGV0ZWQnLCB0aGlzLm5hbWUpO1xuICAgICAgICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgdGhpcy5yZWxvYWQubmV4dCgpO1xuICAgIHRoaXMuc3RhcnRlZCA9IHRydWU7XG4gIH1cbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdFNlcnZpY2Uge1xuICBwcml2YXRlIF9pbnN0YW5jZXM6IE1hcDxzdHJpbmcsIE1vZGVsTGlzdDxhbnk+PiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERBVEFfQVVUSF9TRVJWSUNFKSBwcml2YXRlIF9hdXRoOiBBdXRoU2VydmljZUJhc2U8YW55LCBhbnksIGFueT4sXG4gICkge1xuICAgIHRoaXMuX2F1dGgubG9nb3V0JC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNldCgpKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICBmb3IgKGNvbnN0IGkgb2YgdGhpcy5faW5zdGFuY2VzLnZhbHVlcygpKSB7XG4gICAgICBpZiAoaS51bnN1YnNjcmliZSkge1xuICAgICAgICBjb25zb2xlLmxvZygnQ2xlYXJpbmcgJywgaSk7XG4gICAgICAgIGkudW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9pbnN0YW5jZXMuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQ8VCBleHRlbmRzIERhdGFNb2RlbD4oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4sXG4gICAgZGVmYXVsdHM6IE1vZGVsTGlzdFBhcmFtcyxcbiAgKSB7XG4gICAgbGV0IG1sOiBNb2RlbExpc3Q8VD47XG5cbiAgICBpZiAoIW5hbWUgfHwgIXRoaXMuX2luc3RhbmNlcy5oYXMobmFtZSkgfHwgIWRlZmF1bHRzLmtlZXApIHtcbiAgICAgIG1sID0gbmV3IE1vZGVsTGlzdDxUPihuYW1lKTtcbiAgICAgIG1sLnF1ZXJ5c2V0ID0gY29sbGVjdGlvbi5xdWVyeXNldCgpO1xuICAgICAgbWwuZmllbGRzID0gbmV3IE1vZGVsTGlzdEZpZWxkcyhjb2xsZWN0aW9uLCBkZWZhdWx0cy5maWVsZHMpO1xuICAgICAgbWwuc29ydGVyID0gbmV3IE1vZGVsTGlzdFNvcnRlcihkZWZhdWx0cy5zb3J0ZXIgfHwgW10pO1xuICAgICAgbWwucGFnaW5hdG9yID0gbmV3IE1vZGVsTGlzdFBhZ2luYXRvcihkZWZhdWx0cy5wYWdpbmF0b3IpO1xuICAgICAgbWwuZmlsdGVycyA9IG5ldyBNb2RlbExpc3RGaWx0ZXJzKGRlZmF1bHRzLmZpbHRlcnMpO1xuICAgICAgaWYgKGRlZmF1bHRzLmtlZXApIHtcbiAgICAgICAgdGhpcy5faW5zdGFuY2VzLnNldChuYW1lLCBtbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1sID0gdGhpcy5faW5zdGFuY2VzLmdldChuYW1lKSE7XG4gICAgfVxuICAgIGlmICghbWwuc3RhcnRlZCkge1xuICAgICAgaWYgKGRlZmF1bHRzLnJlbG9hZCkge1xuICAgICAgICBtbC5yZWxvYWQgPSBkZWZhdWx0cy5yZWxvYWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtbC5yZWxvYWQgPSBuZXcgU3ViamVjdDx2b2lkIHwgYm9vbGVhbj4oKTtcbiAgICAgIH1cbiAgICAgIGlmIChkZWZhdWx0cy51bnN1YnNjcmliZSkge1xuICAgICAgICBtbC51bnN1YnNjcmliZSA9IGRlZmF1bHRzLnVuc3Vic2NyaWJlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWwudW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgfVxuICAgICAgbWwuc3RhcnQoZGVmYXVsdHMpO1xuICAgIH1cbiAgICByZXR1cm4gbWw7XG4gIH1cbn1cbiJdfQ==
|