@solidev/data 0.0.8 → 0.1.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 +92 -0
- package/{esm2020 → esm2022}/lib/auth/auth.service.mjs +1 -1
- package/esm2022/lib/data/data-backend.mjs +135 -0
- package/esm2022/lib/data/data-model.mjs +292 -0
- package/esm2022/lib/dispedit/choice.pipe.mjs +81 -0
- package/{esm2020 → esm2022}/lib/dispedit/dispedit/dispedit.component.mjs +10 -5
- package/esm2022/lib/dispedit/factor.pipe.mjs +83 -0
- package/esm2022/lib/dispedit/factorc.pipe.mjs +101 -0
- package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +143 -0
- package/esm2022/lib/dispedit/flags/flags.component.mjs +141 -0
- package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +319 -0
- package/esm2022/lib/dispedit/richedit/richedit.component.mjs +127 -0
- package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +94 -0
- package/esm2022/lib/messages/message-zone/message-zone.component.mjs +58 -0
- package/esm2022/lib/messages/message.service.mjs +152 -0
- package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +66 -0
- package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +65 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +113 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +30 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +41 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +41 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +22 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +50 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +64 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +47 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +57 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +52 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +41 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +175 -0
- package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +51 -0
- package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +31 -0
- package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +71 -0
- package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +50 -0
- package/esm2022/lib/modellist/model-list.service.mjs +158 -0
- package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +143 -0
- package/esm2022/lib/updates/update/update.component.mjs +18 -0
- package/esm2022/lib/updates/update.service.mjs +59 -0
- package/esm2022/lib/uploader/ng-file-drop.directive.mjs +82 -0
- package/esm2022/lib/uploader/ng-file-select.directive.mjs +52 -0
- package/esm2022/lib/uploader/ngx-uploader.module.mjs +18 -0
- package/esm2022/lib/utils/tab-memory.service.mjs +81 -0
- package/{fesm2020 → fesm2022}/solidev-data.mjs +153 -149
- package/fesm2022/solidev-data.mjs.map +1 -0
- package/lib/dispedit/dispedit/dispedit.component.d.ts +1 -1
- package/lib/dispedit/fkselect/fkselect.component.d.ts +1 -1
- package/lib/dispedit/flags/flags.component.d.ts +1 -1
- package/lib/dispedit/m2mselect/m2mselect.component.d.ts +1 -1
- package/lib/dispedit/richedit/richedit.component.d.ts +1 -1
- package/lib/dispedit/sdelete/sdelete.component.d.ts +1 -1
- package/lib/messages/message-zone/message-zone.component.d.ts +1 -1
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +1 -1
- package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +1 -1
- package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +1 -1
- package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +1 -1
- package/lib/routing/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/uploader/ng-file-drop.directive.d.ts +1 -1
- package/lib/uploader/ng-file-select.directive.d.ts +1 -1
- package/package.json +7 -13
- package/esm2020/lib/auth/auth-interceptor.service.mjs +0 -91
- package/esm2020/lib/data/data-backend.mjs +0 -134
- package/esm2020/lib/data/data-model.mjs +0 -291
- package/esm2020/lib/dispedit/choice.pipe.mjs +0 -79
- package/esm2020/lib/dispedit/factor.pipe.mjs +0 -81
- package/esm2020/lib/dispedit/factorc.pipe.mjs +0 -99
- package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +0 -142
- package/esm2020/lib/dispedit/flags/flags.component.mjs +0 -140
- package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +0 -318
- package/esm2020/lib/dispedit/richedit/richedit.component.mjs +0 -126
- package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +0 -93
- package/esm2020/lib/messages/message-zone/message-zone.component.mjs +0 -57
- package/esm2020/lib/messages/message.service.mjs +0 -151
- package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +0 -65
- package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +0 -64
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +0 -112
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +0 -29
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +0 -40
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +0 -40
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +0 -21
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +0 -49
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +0 -63
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +0 -46
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +0 -56
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +0 -51
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +0 -40
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +0 -174
- package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +0 -50
- package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +0 -30
- package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +0 -70
- package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +0 -49
- package/esm2020/lib/modellist/model-list.service.mjs +0 -157
- package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +0 -142
- package/esm2020/lib/updates/update/update.component.mjs +0 -17
- package/esm2020/lib/updates/update.service.mjs +0 -58
- package/esm2020/lib/uploader/ng-file-drop.directive.mjs +0 -81
- package/esm2020/lib/uploader/ng-file-select.directive.mjs +0 -51
- package/esm2020/lib/uploader/ngx-uploader.module.mjs +0 -17
- package/esm2020/lib/utils/tab-memory.service.mjs +0 -80
- package/fesm2015/solidev-data.mjs +0 -6224
- package/fesm2015/solidev-data.mjs.map +0 -1
- package/fesm2020/solidev-data.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/auth/jwt.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-collection.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-collection.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-parameters.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-query.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-query.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/base.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/boolean.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/computed.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/datetime.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/numbers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/primaryfield.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/relations.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/stringfields.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dispedit/dispedit/dispedit.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-field-header/messages.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-fields.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/filtertypes.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-paginator/model-list-paginator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-sorter/model-list-sorter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/routing/routing.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/uploader/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/uploader/interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/uploader/ngx-uploader.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/slugify.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/template.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/solidev-data.mjs +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { combineLatest, debounceTime } from 'rxjs';
|
|
3
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
class ModelListSelectFilterComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.classes = '';
|
|
11
|
+
this.fc = new FormControl(null);
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.filter.valueChanges.subscribe((val) => {
|
|
15
|
+
this.fc.setValue(val ? val.value : null, {
|
|
16
|
+
emitEvent: false,
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
combineLatest([
|
|
20
|
+
this.filter.choices,
|
|
21
|
+
this.fc.valueChanges.pipe(debounceTime(250)),
|
|
22
|
+
]).subscribe(([choices, val]) => {
|
|
23
|
+
if (val === null) {
|
|
24
|
+
this.filter.clear();
|
|
25
|
+
this.list.filters.update();
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
for (const ch of choices) {
|
|
29
|
+
if (ch.value === val) {
|
|
30
|
+
if (this.filter.set(ch.value, ch.desc)) {
|
|
31
|
+
this.list.filters.update();
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
disable() {
|
|
40
|
+
this.filter.enabled = false;
|
|
41
|
+
this.list.filters.update();
|
|
42
|
+
}
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListSelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListSelectFilterComponent, isStandalone: true, selector: "data-model-list-select-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: 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"] }] }); }
|
|
45
|
+
}
|
|
46
|
+
export { ModelListSelectFilterComponent };
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListSelectFilterComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ selector: 'data-model-list-select-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n</div>" }]
|
|
50
|
+
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], filter: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], classes: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}] } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyL21vZGVsLWxpc3Qtc2VsZWN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3Qtc2VsZWN0LWZpbHRlci9tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUcvQyxNQU9hLDhCQUE4QjtJQVF6QztRQUhnQixZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUN6QyxPQUFFLEdBQUcsSUFBSSxXQUFXLENBQXlCLElBQUksQ0FBQyxDQUFDO0lBRTNDLENBQUM7SUFFVCxRQUFRO1FBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSxHQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO2dCQUM1RCxTQUFTLEVBQUUsS0FBSzthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztZQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQzlCLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsS0FBSyxNQUFNLEVBQUUsSUFBSSxPQUFPLEVBQUU7b0JBQ3hCLElBQUksRUFBRSxDQUFDLEtBQUssS0FBSyxHQUFHLEVBQUU7d0JBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7NEJBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDOzRCQUMzQixNQUFNO3lCQUNQO3FCQUNGO2lCQUNGO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBeENVLDhCQUE4QjtrR0FBOUIsOEJBQThCLHlKQ2hCM0MsdWJBUU0seURETU0sWUFBWSw4U0FBRSxtQkFBbUI7O1NBRWhDLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLCtCQUErQixjQUc3QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7MEVBSzVCLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RlbExpc3QgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9kZWxMaXN0U2VsZWN0RmlsdGVyIH0gZnJvbSAnLi9tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RhdGEvZGF0YS1tb2RlbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSURpc3BFZGl0Q2hvaWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlzcGVkaXQvZGlzcGVkaXQvZGlzcGVkaXQuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyLmNvbXBvbmVudC5zYXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbExpc3RTZWxlY3RGaWx0ZXJDb21wb25lbnQ8VCBleHRlbmRzIERhdGFNb2RlbD5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8VD47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXIhOiBNb2RlbExpc3RTZWxlY3RGaWx0ZXI8VD47XG4gIEBJbnB1dCgpIHB1YmxpYyBjbGFzc2VzOiBzdHJpbmdbXSB8IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgZmMgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZpbHRlci52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgIHRoaXMuZmMuc2V0VmFsdWUodmFsID8gKHZhbCBhcyBJRGlzcEVkaXRDaG9pY2UpLnZhbHVlIDogbnVsbCwge1xuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZmlsdGVyLmNob2ljZXMsXG4gICAgICB0aGlzLmZjLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyNTApKSxcbiAgICBdKS5zdWJzY3JpYmUoKFtjaG9pY2VzLCB2YWxdKSA9PiB7XG4gICAgICBpZiAodmFsID09PSBudWxsKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyLmNsZWFyKCk7XG4gICAgICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBjaCBvZiBjaG9pY2VzKSB7XG4gICAgICAgICAgaWYgKGNoLnZhbHVlID09PSB2YWwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlci5zZXQoY2gudmFsdWUsIGNoLmRlc2MpKSB7XG4gICAgICAgICAgICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIHRoaXMuZmlsdGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgfVxufVxuIiwiXG48ZGl2IGNsYXNzPVwiZmlsdGVyaXRlbVwiIFtuZ0NsYXNzXT1cImZpbHRlci5kaXNwbGF5Q2xhc3NlcyB8fCBjbGFzc2VzXCI+XG4gIDxkaXYgY2xhc3M9XCJ0cmFzaCBmbG9hdC1lbmRcIiAoY2xpY2spPVwiZGlzYWJsZSgpXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT48L2Rpdj5cbiAgPGxhYmVsPnt7ZmlsdGVyLmxhYmVsfX08L2xhYmVsPlxuICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBbZm9ybUNvbnRyb2xdPVwiZmNcIj5cbiAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj4tLSB7e2ZpbHRlci5oZWxwfX0gLS08L29wdGlvbj5cbiAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGZpbHRlci5jaG9pY2VzfGFzeW5jXCIgW25nVmFsdWVdPVwiYy52YWx1ZVwiPnt7Yy5kZXNjfX08L29wdGlvbj5cbiAgPC9zZWxlY3Q+XG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { combineLatest, debounceTime } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
class ModelListSelectMultiFilterComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.classes = '';
|
|
11
|
+
this.fc = new FormControl(null);
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
combineLatest([
|
|
15
|
+
this.filter.choices,
|
|
16
|
+
this.fc.valueChanges.pipe(debounceTime(250)),
|
|
17
|
+
]).subscribe(([choices, val]) => {
|
|
18
|
+
for (const ch of choices) {
|
|
19
|
+
if (ch.value === val) {
|
|
20
|
+
if (this.filter.set(ch.value, ch.desc)) {
|
|
21
|
+
this.list.filters.update();
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
this.fc.setValue(null, { emitEvent: false });
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
unset(value, desc) {
|
|
30
|
+
this.fc.setValue(null);
|
|
31
|
+
this.filter.unset(value, desc);
|
|
32
|
+
this.list.filters.update();
|
|
33
|
+
}
|
|
34
|
+
disable() {
|
|
35
|
+
this.filter.enabled = false;
|
|
36
|
+
this.list.filters.update();
|
|
37
|
+
}
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListSelectMultiFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListSelectMultiFilterComponent, isStandalone: true, selector: "data-model-list-select-multi-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n <div class=\"enabled mt-1\">\n <div *ngFor=\"let e of filter.mcurrent$|async\"><i class=\"bi bi-trash me-2\" (click)=\"unset(e.value, e.desc)\" role=\"button\"></i>{{e.desc}}</div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: 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"] }] }); }
|
|
40
|
+
}
|
|
41
|
+
export { ModelListSelectMultiFilterComponent };
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListSelectMultiFilterComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'data-model-list-select-multi-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n <div class=\"enabled mt-1\">\n <div *ngFor=\"let e of filter.mcurrent$|async\"><i class=\"bi bi-trash me-2\" (click)=\"unset(e.value, e.desc)\" role=\"button\"></i>{{e.desc}}</div>\n </div>\n</div>" }]
|
|
45
|
+
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], filter: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], classes: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}] } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL2ZpbHRlcnMvbW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyL21vZGVsLWxpc3Qtc2VsZWN0LW11bHRpLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3Qtc2VsZWN0LW11bHRpLWZpbHRlci9tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUVuRCxNQU9hLG1DQUFtQztJQVE5QztRQUhnQixZQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUN6QyxPQUFFLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbkIsQ0FBQztJQUVULFFBQVE7UUFDYixhQUFhLENBQUM7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3QyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTtZQUM5QixLQUFLLE1BQU0sRUFBRSxJQUFJLE9BQU8sRUFBRTtnQkFDeEIsSUFBSSxFQUFFLENBQUMsS0FBSyxLQUFLLEdBQUcsRUFBRTtvQkFDcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQzNCLE1BQU07cUJBQ1A7aUJBQ0Y7YUFDRjtZQUNELElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFVLEVBQUUsSUFBWTtRQUNuQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0FwQ1UsbUNBQW1DO2tHQUFuQyxtQ0FBbUMsK0pDZmhELDRuQkFXTSx5RERFTSxZQUFZLDhTQUFFLG1CQUFtQjs7U0FFaEMsbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBUC9DLFNBQVM7K0JBQ0UscUNBQXFDLGNBR25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQzswRUFLNUIsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGVsTGlzdCB9IGZyb20gJy4uLy4uLy4uL21vZGVsLWxpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBNb2RlbExpc3RTZWxlY3RNdWx0aUZpbHRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RhdGEvZGF0YS1tb2RlbCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyLmNvbXBvbmVudC5zYXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbExpc3RTZWxlY3RNdWx0aUZpbHRlckNvbXBvbmVudDxUIGV4dGVuZHMgRGF0YU1vZGVsPlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdCE6IE1vZGVsTGlzdDxUPjtcbiAgQElucHV0KCkgcHVibGljIGZpbHRlciE6IE1vZGVsTGlzdFNlbGVjdE11bHRpRmlsdGVyPFQ+O1xuICBASW5wdXQoKSBwdWJsaWMgY2xhc3Nlczogc3RyaW5nW10gfCBzdHJpbmcgPSAnJztcbiAgcHVibGljIGZjID0gbmV3IEZvcm1Db250cm9sKG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmZpbHRlci5jaG9pY2VzLFxuICAgICAgdGhpcy5mYy52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjUwKSksXG4gICAgXSkuc3Vic2NyaWJlKChbY2hvaWNlcywgdmFsXSkgPT4ge1xuICAgICAgZm9yIChjb25zdCBjaCBvZiBjaG9pY2VzKSB7XG4gICAgICAgIGlmIChjaC52YWx1ZSA9PT0gdmFsKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZmlsdGVyLnNldChjaC52YWx1ZSwgY2guZGVzYykpIHtcbiAgICAgICAgICAgIHRoaXMubGlzdC5maWx0ZXJzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmZjLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1bnNldCh2YWx1ZTogYW55LCBkZXNjOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZjLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuZmlsdGVyLnVuc2V0KHZhbHVlLCBkZXNjKTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIHRoaXMuZmlsdGVyLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxpc3QuZmlsdGVycy51cGRhdGUoKTtcbiAgfVxufVxuIiwiXG48ZGl2IGNsYXNzPVwiZmlsdGVyaXRlbVwiIFtuZ0NsYXNzXT1cImZpbHRlci5kaXNwbGF5Q2xhc3NlcyB8fCBjbGFzc2VzXCI+XG4gIDxkaXYgY2xhc3M9XCJ0cmFzaCBmbG9hdC1lbmRcIiAoY2xpY2spPVwiZGlzYWJsZSgpXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT48L2Rpdj5cbiAgPGxhYmVsPnt7ZmlsdGVyLmxhYmVsfX08L2xhYmVsPlxuICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBbZm9ybUNvbnRyb2xdPVwiZmNcIj5cbiAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj4tLSB7e2ZpbHRlci5oZWxwfX0gLS08L29wdGlvbj5cbiAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGZpbHRlci5jaG9pY2VzfGFzeW5jXCIgW25nVmFsdWVdPVwiYy52YWx1ZVwiPnt7Yy5kZXNjfX08L29wdGlvbj5cbiAgPC9zZWxlY3Q+XG4gIDxkaXYgY2xhc3M9XCJlbmFibGVkIG10LTFcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlIG9mIGZpbHRlci5tY3VycmVudCR8YXN5bmNcIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoIG1lLTJcIiAoY2xpY2spPVwidW5zZXQoZS52YWx1ZSwgZS5kZXNjKVwiIHJvbGU9XCJidXR0b25cIj48L2k+e3tlLmRlc2N9fTwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { debounceTime } from 'rxjs';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
class ModelListTextFilterComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.classes = '';
|
|
11
|
+
this.fc = new FormControl(null);
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
this.filter.valueChanges.subscribe((val) => {
|
|
15
|
+
this.fc.setValue(val.value, { emitEvent: false });
|
|
16
|
+
});
|
|
17
|
+
this.fc.valueChanges.pipe(debounceTime(250)).subscribe((val) => {
|
|
18
|
+
if (this.filter.set(val, val || '')) {
|
|
19
|
+
this.list.filters.update();
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
disable() {
|
|
24
|
+
this.filter.enabled = false;
|
|
25
|
+
this.list.filters.update();
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListTextFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListTextFilterComponent, isStandalone: true, selector: "data-model-list-text-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"text\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
|
29
|
+
}
|
|
30
|
+
export { ModelListTextFilterComponent };
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListTextFilterComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'data-model-list-text-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"text\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>" }]
|
|
34
|
+
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], filter: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], classes: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC10ZXh0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtdGV4dC1maWx0ZXIvbW9kZWwtbGlzdC10ZXh0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtdGV4dC1maWx0ZXIvbW9kZWwtbGlzdC10ZXh0LWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFHL0MsTUFPYSw0QkFBNEI7SUFNdkM7UUFIZ0IsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDekMsT0FBRSxHQUFHLElBQUksV0FBVyxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUVsQyxDQUFDO0lBRVQsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFFLEdBQXVCLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0F0QlUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsdUpDZnpDLHVUQUtNLHlERFFNLFlBQVksNEhBQUUsbUJBQW1COztTQUVoQyw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDRSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDOzBFQUc1QixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb2RlbExpc3RUZXh0RmlsdGVyIH0gZnJvbSAnLi9tb2RlbC1saXN0LXRleHQtZmlsdGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJRGlzcEVkaXRDaG9pY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXNwZWRpdC9kaXNwZWRpdC9kaXNwZWRpdC5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLW1vZGVsLWxpc3QtdGV4dC1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC10ZXh0LWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWxpc3QtdGV4dC1maWx0ZXIuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdFRleHRGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdCE6IE1vZGVsTGlzdDxhbnk+O1xuICBASW5wdXQoKSBwdWJsaWMgZmlsdGVyITogTW9kZWxMaXN0VGV4dEZpbHRlcjtcbiAgQElucHV0KCkgcHVibGljIGNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBmYyA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmlsdGVyLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgdGhpcy5mYy5zZXRWYWx1ZSgodmFsIGFzIElEaXNwRWRpdENob2ljZSkudmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmZjLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyNTApKS5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyLnNldCh2YWwsIHZhbCB8fCAnJykpIHtcbiAgICAgICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmZpbHRlci5lbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gIH1cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImZpbHRlcml0ZW1cIiBbbmdDbGFzc109XCJmaWx0ZXIuZGlzcGxheUNsYXNzZXMgfHwgY2xhc3Nlc1wiPlxuICA8ZGl2IGNsYXNzPVwidHJhc2ggZmxvYXQtZW5kXCIgKGNsaWNrKT1cImRpc2FibGUoKVwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIj48L2k+PC9kaXY+XG4gIDxsYWJlbD57e2ZpbHRlci5sYWJlbH19PC9sYWJlbD5cbiAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xdPVwiZmNcIiBbcGxhY2Vob2xkZXJdPVwiZmlsdGVyLmhlbHBcIj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { debounceTime, firstValueFrom, Subject } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
class Level {
|
|
9
|
+
constructor(tree, level, choices) {
|
|
10
|
+
this.tree = tree;
|
|
11
|
+
this.level = level;
|
|
12
|
+
this.fc = new FormControl('');
|
|
13
|
+
this.choices = choices;
|
|
14
|
+
this.subs = this.fc.valueChanges.subscribe((val) => {
|
|
15
|
+
if (this.selected !== val) {
|
|
16
|
+
this.selected = val;
|
|
17
|
+
this.tree.updated(this);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
close() {
|
|
22
|
+
this.subs.unsubscribe();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
class Tree {
|
|
26
|
+
constructor(qs, maxLevel, display, filter) {
|
|
27
|
+
this.qs = qs;
|
|
28
|
+
this.maxLevel = maxLevel;
|
|
29
|
+
this.display = display;
|
|
30
|
+
this.filter = filter;
|
|
31
|
+
this.levels = [];
|
|
32
|
+
this.changed = new Subject();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Conditionnaly add level to current tree.
|
|
36
|
+
*
|
|
37
|
+
* - if previous level have non-empty selected value
|
|
38
|
+
* - if current level choices are non empty
|
|
39
|
+
*/
|
|
40
|
+
async addLevel(fparent) {
|
|
41
|
+
let values = [];
|
|
42
|
+
if (this.levels.length === 0) {
|
|
43
|
+
values = await firstValueFrom(this.qs
|
|
44
|
+
.filter({ level: this.levels.length, parent: 'null', ...this.filter })
|
|
45
|
+
.get());
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const parent = fparent
|
|
49
|
+
? fparent
|
|
50
|
+
: this.levels[this.levels.length - 1].selected;
|
|
51
|
+
if (parent) {
|
|
52
|
+
values = await firstValueFrom(this.qs
|
|
53
|
+
.filter({
|
|
54
|
+
level: this.levels.length,
|
|
55
|
+
parent: this.levels[this.levels.length - 1].selected || 'null',
|
|
56
|
+
...this.filter,
|
|
57
|
+
})
|
|
58
|
+
.get());
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (values.length > 0) {
|
|
62
|
+
const level = new Level(this, this.levels.length, []);
|
|
63
|
+
for (const v of values) {
|
|
64
|
+
level.choices.push({ value: v.id, desc: this.display(v) });
|
|
65
|
+
}
|
|
66
|
+
this.levels.push(level);
|
|
67
|
+
return level;
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
updated(level) {
|
|
72
|
+
const newLevels = [];
|
|
73
|
+
for (const l of this.levels) {
|
|
74
|
+
if (l.level <= level.level) {
|
|
75
|
+
newLevels.push(l);
|
|
76
|
+
}
|
|
77
|
+
else if (l.level > level.level) {
|
|
78
|
+
l.close();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
this.levels = newLevels;
|
|
82
|
+
this.addLevel();
|
|
83
|
+
if (level.selected) {
|
|
84
|
+
this.changed.next(level.selected);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.changed.next(this.levels[level.level - 1]?.selected || null);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async prepare(value) {
|
|
91
|
+
// console.log('prepare', value);
|
|
92
|
+
const levels = [];
|
|
93
|
+
let cur = (await firstValueFrom(this.qs.filter({ id: value, ...this.filter }).get()))[0];
|
|
94
|
+
levels.push(cur);
|
|
95
|
+
let nlev = 0;
|
|
96
|
+
while (cur.parent !== null) {
|
|
97
|
+
cur = (await firstValueFrom(this.qs
|
|
98
|
+
.filter({
|
|
99
|
+
id: cur.parent,
|
|
100
|
+
...this.filter,
|
|
101
|
+
})
|
|
102
|
+
.get()))[0];
|
|
103
|
+
levels.push(cur);
|
|
104
|
+
nlev++;
|
|
105
|
+
if (nlev > this.maxLevel) {
|
|
106
|
+
throw Error('Max level error, could not find root');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
for (let i = levels.length - 1; i >= 0; i--) {
|
|
110
|
+
const lv = await this.addLevel();
|
|
111
|
+
if (lv !== null) {
|
|
112
|
+
lv.selected = levels[i].id;
|
|
113
|
+
lv.fc.setValue(levels[i].id, { emitEvent: false });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (this.levels.length <= this.maxLevel) {
|
|
117
|
+
await this.addLevel();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
reset() { }
|
|
121
|
+
}
|
|
122
|
+
class ModelListTreeFilterComponent {
|
|
123
|
+
constructor() {
|
|
124
|
+
this.classes = '';
|
|
125
|
+
}
|
|
126
|
+
async ngOnInit() {
|
|
127
|
+
this.tree = new Tree(this.filter.queryset, this.filter.maxLevel, this.filter.display, this.filter.filter);
|
|
128
|
+
if (this.filter.get()) {
|
|
129
|
+
await this.tree.prepare(this.filter.get()?.value);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
await this.tree.addLevel();
|
|
133
|
+
}
|
|
134
|
+
this.tree.changed.pipe(debounceTime(250)).subscribe((val) => {
|
|
135
|
+
// console.log('changed', val);
|
|
136
|
+
if (val === null) {
|
|
137
|
+
this.filter.clear();
|
|
138
|
+
this.list.filters.update();
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
if (this.filter.set(val, '')) {
|
|
142
|
+
this.list.filters.update();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
// this.tree.changed.subscribe((selected) => {
|
|
147
|
+
// console.log('tree changed', selected);
|
|
148
|
+
// this.filter.set(selected, '');
|
|
149
|
+
// });
|
|
150
|
+
// if (this.filter.getValue()) {
|
|
151
|
+
// console.log('filter value', this.filter.getValue());
|
|
152
|
+
// await this.tree.prepare(this.filter.getValue() as number);
|
|
153
|
+
// } else {
|
|
154
|
+
// await this.tree.addLevel();
|
|
155
|
+
// }
|
|
156
|
+
}
|
|
157
|
+
disable() {
|
|
158
|
+
this.filter.enabled = false;
|
|
159
|
+
this.list.filters.update();
|
|
160
|
+
}
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListTreeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListTreeFilterComponent, isStandalone: true, selector: "data-model-list-tree-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <div class=\"levelselect\" *ngFor=\"let l of tree.levels\">\n <select class=\"form-select form-select-sm\" [formControl]=\"l.fc\">\n <option value=\"\">{{filter.help}}</option>\n <option *ngFor=\"let ch of l.choices\" [value]=\"ch.value\">{{ch.desc}}</option>\n </select>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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"] }] }); }
|
|
163
|
+
}
|
|
164
|
+
export { ModelListTreeFilterComponent };
|
|
165
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListTreeFilterComponent, decorators: [{
|
|
166
|
+
type: Component,
|
|
167
|
+
args: [{ selector: 'data-model-list-tree-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <div class=\"levelselect\" *ngFor=\"let l of tree.levels\">\n <select class=\"form-select form-select-sm\" [formControl]=\"l.fc\">\n <option value=\"\">{{filter.help}}</option>\n <option *ngFor=\"let ch of l.choices\" [value]=\"ch.value\">{{ch.desc}}</option>\n </select>\n </div>\n</div>" }]
|
|
168
|
+
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], filter: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], classes: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}] } });
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC10cmVlLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtdHJlZS1maWx0ZXIvbW9kZWwtbGlzdC10cmVlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9maWx0ZXJzL21vZGVsLWxpc3QtdHJlZS1maWx0ZXIvbW9kZWwtbGlzdC10cmVlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7QUFHM0UsTUFBTSxLQUFLO0lBUVQsWUFDRSxJQUFhLEVBQ2IsS0FBYSxFQUNiLE9BQTBDO1FBRTFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxH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QUUsQ0FBQztJQUM3QixDQUFDOzhHQWxEVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qix1SkM1SnpDLGlnQkFVTSx5RERnSk0sWUFBWSx5UEFBRSxtQkFBbUI7O1NBRWhDLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNFLDZCQUE2QixjQUczQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7MEVBSzVCLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RlbExpc3QgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9kZWxMaXN0VHJlZUZpbHRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC10cmVlLWZpbHRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaXJzdFZhbHVlRnJvbSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWx0ZXJEYXRhLCBRdWVyeXNldCB9IGZyb20gJy4uLy4uLy4uLy4uL2RhdGEvZGF0YS1xdWVyeSc7XG5cbmNsYXNzIExldmVsPFQgZXh0ZW5kcyBEYXRhTW9kZWw+IHtcbiAgcHVibGljIGxldmVsOiBudW1iZXI7XG4gIHB1YmxpYyB0cmVlOiBUcmVlPFQ+O1xuICBwdWJsaWMgY2hvaWNlczogeyB2YWx1ZTogbnVtYmVyOyBkZXNjOiBzdHJpbmcgfVtdO1xuICBwdWJsaWMgZmM6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgc2VsZWN0ZWQhOiBudW1iZXI7XG4gIHB1YmxpYyBzdWJzOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdHJlZTogVHJlZTxUPixcbiAgICBsZXZlbDogbnVtYmVyLFxuICAgIGNob2ljZXM6IHsgdmFsdWU6IG51bWJlcjsgZGVzYzogc3RyaW5nIH1bXVxuICApIHtcbiAgICB0aGlzLnRyZWUgPSB0cmVlO1xuICAgIHRoaXMubGV2ZWwgPSBsZXZlbDtcbiAgICB0aGlzLmZjID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgICB0aGlzLmNob2ljZXMgPSBjaG9pY2VzO1xuICAgIHRoaXMuc3VicyA9IHRoaXMuZmMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCAhPT0gdmFsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB2YWw7XG4gICAgICAgIHRoaXMudHJlZS51cGRhdGVkKHRoaXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCkge1xuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xuICB9XG59XG5cbmNsYXNzIFRyZWU8VCBleHRlbmRzIERhdGFNb2RlbD4ge1xuICBsZXZlbHM6IExldmVsPFQ+W10gPSBbXTtcbiAgY2hhbmdlZDogU3ViamVjdDxudW1iZXIgfCBudWxsPiA9IG5ldyBTdWJqZWN0PG51bWJlciB8IG51bGw+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBxczogUXVlcnlzZXQ8VD4sXG4gICAgcHJpdmF0ZSBtYXhMZXZlbDogbnVtYmVyLFxuICAgIHByaXZhdGUgZGlzcGxheTogYW55LFxuICAgIHByaXZhdGUgZmlsdGVyOiBGaWx0ZXJEYXRhXG4gICkge31cblxuICAvKipcbiAgICogQ29uZGl0aW9ubmFseSBhZGQgbGV2ZWwgdG8gY3VycmVudCB0cmVlLlxuICAgKlxuICAgKiAtIGlmIHByZXZpb3VzIGxldmVsIGhhdmUgbm9uLWVtcHR5IHNlbGVjdGVkIHZhbHVlXG4gICAqIC0gaWYgY3VycmVudCBsZXZlbCBjaG9pY2VzIGFyZSBub24gZW1wdHlcbiAgICovXG4gIHB1YmxpYyBhc3luYyBhZGRMZXZlbChmcGFyZW50PzogbnVtYmVyKTogUHJvbWlzZTxMZXZlbDxUPiB8IG51bGw+IHtcbiAgICBsZXQgdmFsdWVzOiBUW10gPSBbXTtcbiAgICBpZiAodGhpcy5sZXZlbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YWx1ZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5xc1xuICAgICAgICAgIC5maWx0ZXIoeyBsZXZlbDogdGhpcy5sZXZlbHMubGVuZ3RoLCBwYXJlbnQ6ICdudWxsJywgLi4udGhpcy5maWx0ZXIgfSlcbiAgICAgICAgICAuZ2V0KClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IGZwYXJlbnRcbiAgICAgICAgPyBmcGFyZW50XG4gICAgICAgIDogdGhpcy5sZXZlbHNbdGhpcy5sZXZlbHMubGVuZ3RoIC0gMV0uc2VsZWN0ZWQ7XG4gICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgIHZhbHVlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMucXNcbiAgICAgICAgICAgIC5maWx0ZXIoe1xuICAgICAgICAgICAgICBsZXZlbDogdGhpcy5sZXZlbHMubGVuZ3RoLFxuICAgICAgICAgICAgICBwYXJlbnQ6IHRoaXMubGV2ZWxzW3RoaXMubGV2ZWxzLmxlbmd0aCAtIDFdLnNlbGVjdGVkIHx8ICdudWxsJyxcbiAgICAgICAgICAgICAgLi4udGhpcy5maWx0ZXIsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmdldCgpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbGV2ZWwgPSBuZXcgTGV2ZWwodGhpcywgdGhpcy5sZXZlbHMubGVuZ3RoLCBbXSk7XG4gICAgICBmb3IgKGNvbnN0IHYgb2YgdmFsdWVzKSB7XG4gICAgICAgIGxldmVsLmNob2ljZXMucHVzaCh7IHZhbHVlOiB2LmlkIGFzIG51bWJlciwgZGVzYzogdGhpcy5kaXNwbGF5KHYpIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5sZXZlbHMucHVzaChsZXZlbCk7XG4gICAgICByZXR1cm4gbGV2ZWw7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZWQobGV2ZWw6IExldmVsPFQ+KSB7XG4gICAgY29uc3QgbmV3TGV2ZWxzOiBMZXZlbDxUPltdID0gW107XG4gICAgZm9yIChjb25zdCBsIG9mIHRoaXMubGV2ZWxzKSB7XG4gICAgICBpZiAobC5sZXZlbCA8PSBsZXZlbC5sZXZlbCkge1xuICAgICAgICBuZXdMZXZlbHMucHVzaChsKTtcbiAgICAgIH0gZWxzZSBpZiAobC5sZXZlbCA+IGxldmVsLmxldmVsKSB7XG4gICAgICAgIGwuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sZXZlbHMgPSBuZXdMZXZlbHM7XG4gICAgdGhpcy5hZGRMZXZlbCgpO1xuICAgIGlmIChsZXZlbC5zZWxlY3RlZCkge1xuICAgICAgdGhpcy5jaGFuZ2VkLm5leHQobGV2ZWwuc2VsZWN0ZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoYW5nZWQubmV4dCh0aGlzLmxldmVsc1tsZXZlbC5sZXZlbCAtIDFdPy5zZWxlY3RlZCB8fCBudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcHJlcGFyZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ3ByZXBhcmUnLCB2YWx1ZSk7XG4gICAgY29uc3QgbGV2ZWxzOiBUW10gPSBbXTtcbiAgICBsZXQgY3VyID0gKFxuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5xcy5maWx0ZXIoeyBpZDogdmFsdWUsIC4uLnRoaXMuZmlsdGVyIH0pLmdldCgpKVxuICAgIClbMF07XG4gICAgbGV2ZWxzLnB1c2goY3VyKTtcbiAgICBsZXQgbmxldiA9IDA7XG4gICAgd2hpbGUgKChjdXIgYXMgYW55KS5wYXJlbnQgIT09IG51bGwpIHtcbiAgICAgIGN1ciA9IChcbiAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy5xc1xuICAgICAgICAgICAgLmZpbHRlcih7XG4gICAgICAgICAgICAgIGlkOiAoY3VyIGFzIGFueSkucGFyZW50LFxuICAgICAgICAgICAgICAuLi50aGlzLmZpbHRlcixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZ2V0KClcbiAgICAgICAgKVxuICAgICAgKVswXTtcbiAgICAgIGxldmVscy5wdXNoKGN1cik7XG4gICAgICBubGV2Kys7XG4gICAgICBpZiAobmxldiA+IHRoaXMubWF4TGV2ZWwpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ01heCBsZXZlbCBlcnJvciwgY291bGQgbm90IGZpbmQgcm9vdCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gbGV2ZWxzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBsdiA9IGF3YWl0IHRoaXMuYWRkTGV2ZWwoKTtcbiAgICAgIGlmIChsdiAhPT0gbnVsbCkge1xuICAgICAgICBsdi5zZWxlY3RlZCA9IGxldmVsc1tpXS5pZCBhcyBudW1iZXI7XG4gICAgICAgIGx2LmZjLnNldFZhbHVlKGxldmVsc1tpXS5pZCBhcyBudW1iZXIsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMubGV2ZWxzLmxlbmd0aCA8PSB0aGlzLm1heExldmVsKSB7XG4gICAgICBhd2FpdCB0aGlzLmFkZExldmVsKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc2V0KCkge31cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1tb2RlbC1saXN0LXRyZWUtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLWxpc3QtdHJlZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LXRyZWUtZmlsdGVyLmNvbXBvbmVudC5zYXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RlbExpc3RUcmVlRmlsdGVyQ29tcG9uZW50PFQgZXh0ZW5kcyBEYXRhTW9kZWw+XG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXIhOiBNb2RlbExpc3RUcmVlRmlsdGVyPFQ+O1xuICBASW5wdXQoKSBwdWJsaWMgY2xhc3Nlczogc3RyaW5nW10gfCBzdHJpbmcgPSAnJztcbiAgcHVibGljIHRyZWUhOiBUcmVlPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50cmVlID0gbmV3IFRyZWUoXG4gICAgICB0aGlzLmZpbHRlci5xdWVyeXNldCxcbiAgICAgIHRoaXMuZmlsdGVyLm1heExldmVsLFxuICAgICAgdGhpcy5maWx0ZXIuZGlzcGxheSxcbiAgICAgIHRoaXMuZmlsdGVyLmZpbHRlclxuICAgICk7XG4gICAgaWYgKHRoaXMuZmlsdGVyLmdldCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnRyZWUucHJlcGFyZSh0aGlzLmZpbHRlci5nZXQoKT8udmFsdWUgYXMgbnVtYmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy50cmVlLmFkZExldmVsKCk7XG4gICAgfVxuXG4gICAgdGhpcy50cmVlLmNoYW5nZWQucGlwZShkZWJvdW5jZVRpbWUoMjUwKSkuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdjaGFuZ2VkJywgdmFsKTtcbiAgICAgIGlmICh2YWwgPT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5maWx0ZXIuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5maWx0ZXIuc2V0KHZhbCwgJycpKSB7XG4gICAgICAgICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIHRoaXMudHJlZS5jaGFuZ2VkLnN1YnNjcmliZSgoc2VsZWN0ZWQpID0+IHtcbiAgICAvLyAgIGNvbnNvbGUubG9nKCd0cmVlIGNoYW5nZWQnLCBzZWxlY3RlZCk7XG4gICAgLy8gICB0aGlzLmZpbHRlci5zZXQoc2VsZWN0ZWQsICcnKTtcbiAgICAvLyB9KTtcbiAgICAvLyBpZiAodGhpcy5maWx0ZXIuZ2V0VmFsdWUoKSkge1xuICAgIC8vICAgY29uc29sZS5sb2coJ2ZpbHRlciB2YWx1ZScsIHRoaXMuZmlsdGVyLmdldFZhbHVlKCkpO1xuICAgIC8vICAgYXdhaXQgdGhpcy50cmVlLnByZXBhcmUodGhpcy5maWx0ZXIuZ2V0VmFsdWUoKSBhcyBudW1iZXIpO1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICBhd2FpdCB0aGlzLnRyZWUuYWRkTGV2ZWwoKTtcbiAgICAvLyB9XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZSgpIHtcbiAgICB0aGlzLmZpbHRlci5lbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gIH1cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImZpbHRlcml0ZW1cIiBbbmdDbGFzc109XCJmaWx0ZXIuZGlzcGxheUNsYXNzZXMgfHwgY2xhc3Nlc1wiPlxuICA8ZGl2IGNsYXNzPVwidHJhc2ggZmxvYXQtZW5kXCIgKGNsaWNrKT1cImRpc2FibGUoKVwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIj48L2k+PC9kaXY+XG4gIDxsYWJlbD57e2ZpbHRlci5sYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBjbGFzcz1cImxldmVsc2VsZWN0XCIgKm5nRm9yPVwibGV0IGwgb2YgdHJlZS5sZXZlbHNcIj5cbiAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgZm9ybS1zZWxlY3Qtc21cIiBbZm9ybUNvbnRyb2xdPVwibC5mY1wiPlxuICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPnt7ZmlsdGVyLmhlbHB9fTwvb3B0aW9uPlxuICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY2ggb2YgbC5jaG9pY2VzXCIgW3ZhbHVlXT1cImNoLnZhbHVlXCI+e3tjaC5kZXNjfX08L29wdGlvbj5cbiAgICA8L3NlbGVjdD5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ModelListTextFilterComponent } from '../filters/model-list-text-filter/model-list-text-filter.component';
|
|
4
|
+
import { ModelListAutocompleteFilterComponent } from '../filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component';
|
|
5
|
+
import { ModelListAutocompleteMultiFilterComponent } from '../filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component';
|
|
6
|
+
import { ModelListDatetimeFilterComponent } from '../filters/model-list-datetime-filter/model-list-datetime-filter.component';
|
|
7
|
+
import { ModelListDatetimeRangeFilterComponent } from '../filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component';
|
|
8
|
+
import { ModelListFlagsFilterComponent } from '../filters/model-list-flags-filter/model-list-flags-filter.component';
|
|
9
|
+
import { ModelListGeodistanceFilterComponent } from '../filters/model-list-geodistance-filter/model-list-geodistance-filter.component';
|
|
10
|
+
import { ModelListSelectFilterComponent } from '../filters/model-list-select-filter/model-list-select-filter.component';
|
|
11
|
+
import { ModelListSelectMultiFilterComponent } from '../filters/model-list-select-multi-filter/model-list-select-multi-filter.component';
|
|
12
|
+
import { ModelListTreeFilterComponent } from '../filters/model-list-tree-filter/model-list-tree-filter.component';
|
|
13
|
+
import { ModelListNumberFilterComponent } from '../filters/model-list-number-filter/model-list-number-filter.component';
|
|
14
|
+
import { ModelListDateFilterComponent } from '../filters/model-list-date-filter/model-list-date-filter.component';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "@angular/common";
|
|
17
|
+
// FIXME: register filter components and load them dynamically to allow user defined filters
|
|
18
|
+
class ModelListFiltersComponent {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.containerClasses = '';
|
|
21
|
+
this.itemClasses = '';
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", 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
|
+
}
|
|
26
|
+
export { ModelListFiltersComponent };
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListFiltersComponent, decorators: [{
|
|
28
|
+
type: Component,
|
|
29
|
+
args: [{ selector: 'data-model-list-filters', standalone: true, imports: [
|
|
30
|
+
CommonModule,
|
|
31
|
+
ModelListTextFilterComponent,
|
|
32
|
+
ModelListNumberFilterComponent,
|
|
33
|
+
ModelListAutocompleteFilterComponent,
|
|
34
|
+
ModelListAutocompleteMultiFilterComponent,
|
|
35
|
+
ModelListDatetimeFilterComponent,
|
|
36
|
+
ModelListDateFilterComponent,
|
|
37
|
+
ModelListDatetimeRangeFilterComponent,
|
|
38
|
+
ModelListFlagsFilterComponent,
|
|
39
|
+
ModelListGeodistanceFilterComponent,
|
|
40
|
+
ModelListSelectFilterComponent,
|
|
41
|
+
ModelListSelectMultiFilterComponent,
|
|
42
|
+
ModelListTreeFilterComponent,
|
|
43
|
+
], 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>" }]
|
|
44
|
+
}], propDecorators: { list: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], containerClasses: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], itemClasses: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWx0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tb2RlbGxpc3QvbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVycy9tb2RlbC1saXN0LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUNMLG9DQUFvQyxFQUNyQyxNQUFNLG9GQUFvRixDQUFDO0FBQzVGLE9BQU8sRUFDTCx5Q0FBeUMsRUFDMUMsTUFBTSxnR0FBZ0csQ0FBQztBQUN4RyxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2pDLE1BQU0sNEVBQTRFLENBQUM7QUFDcEYsT0FBTyxFQUNMLHFDQUFxQyxFQUN0QyxNQUFNLHVGQUF1RixDQUFDO0FBQy9GLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQ25ILE9BQU8sRUFDTCxtQ0FBbUMsRUFDcEMsTUFBTSxrRkFBa0YsQ0FBQztBQUMxRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUN0SCxPQUFPLEVBQ0wsbUNBQW1DLEVBQ3BDLE1BQU0sb0ZBQW9GLENBQUM7QUFDNUYsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sb0VBQW9FLENBQUM7OztBQUVoSCw0RkFBNEY7QUFFNUYsTUFxQmEseUJBQXlCO0lBckJ0QztRQXVCa0IscUJBQWdCLEdBQXNCLEVBQUUsQ0FBQztRQUN6QyxnQkFBVyxHQUFzQixFQUFFLENBQUM7S0FDckQ7OEdBSlkseUJBQXlCO2tHQUF6Qix5QkFBeUIsK0tDbkR0Qyw0cUVBa0JNLHlERGtCRixZQUFZLDJlQUNaLDRCQUE0QiwrR0FDNUIsOEJBQThCLGlIQUM5QixvQ0FBb0MsdUhBQ3BDLHlDQUF5QywwR0FDekMsZ0NBQWdDLG1IQUNoQyw0QkFBNEIsK0dBQzVCLHFDQUFxQyx5SEFDckMsNkJBQTZCLGdIQUM3QixtQ0FBbUMsc0hBQ25DLDhCQUE4QixpSEFDOUIsbUNBQW1DLHVIQUNuQyw0QkFBNEI7O1NBR25CLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQXJCckMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osNEJBQTRCO3dCQUM1Qiw4QkFBOEI7d0JBQzlCLG9DQUFvQzt3QkFDcEMseUNBQXlDO3dCQUN6QyxnQ0FBZ0M7d0JBQ2hDLDRCQUE0Qjt3QkFDNUIscUNBQXFDO3dCQUNyQyw2QkFBNkI7d0JBQzdCLG1DQUFtQzt3QkFDbkMsOEJBQThCO3dCQUM5QixtQ0FBbUM7d0JBQ25DLDRCQUE0QjtxQkFDN0I7OEJBR2UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01vZGVsTGlzdH0gZnJvbSAnLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtNb2RlbExpc3RUZXh0RmlsdGVyQ29tcG9uZW50fSBmcm9tICcuLi9maWx0ZXJzL21vZGVsLWxpc3QtdGV4dC1maWx0ZXIvbW9kZWwtbGlzdC10ZXh0LWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgTW9kZWxMaXN0QXV0b2NvbXBsZXRlRmlsdGVyQ29tcG9uZW50XG59IGZyb20gJy4uL2ZpbHRlcnMvbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtZmlsdGVyL21vZGVsLWxpc3QtYXV0b2NvbXBsZXRlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgTW9kZWxMaXN0QXV0b2NvbXBsZXRlTXVsdGlGaWx0ZXJDb21wb25lbnRcbn0gZnJvbSAnLi4vZmlsdGVycy9tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1tdWx0aS1maWx0ZXIvbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtbXVsdGktZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBNb2RlbExpc3REYXRldGltZUZpbHRlckNvbXBvbmVudFxufSBmcm9tICcuLi9maWx0ZXJzL21vZGVsLWxpc3QtZGF0ZXRpbWUtZmlsdGVyL21vZGVsLWxpc3QtZGF0ZXRpbWUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBNb2RlbExpc3REYXRldGltZVJhbmdlRmlsdGVyQ29tcG9uZW50XG59IGZyb20gJy4uL2ZpbHRlcnMvbW9kZWwtbGlzdC1kYXRldGltZXJhbmdlLWZpbHRlci9tb2RlbC1saXN0LWRhdGV0aW1lLXJhbmdlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtNb2RlbExpc3RGbGFnc0ZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi4vZmlsdGVycy9tb2RlbC1saXN0LWZsYWdzLWZpbHRlci9tb2RlbC1saXN0LWZsYWdzLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgTW9kZWxMaXN0R2VvZGlzdGFuY2VGaWx0ZXJDb21wb25lbnRcbn0gZnJvbSAnLi4vZmlsdGVycy9tb2RlbC1saXN0LWdlb2Rpc3RhbmNlLWZpbHRlci9tb2RlbC1saXN0LWdlb2Rpc3RhbmNlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtNb2RlbExpc3RTZWxlY3RGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4uL2ZpbHRlcnMvbW9kZWwtbGlzdC1zZWxlY3QtZmlsdGVyL21vZGVsLWxpc3Qtc2VsZWN0LWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgTW9kZWxMaXN0U2VsZWN0TXVsdGlGaWx0ZXJDb21wb25lbnRcbn0gZnJvbSAnLi4vZmlsdGVycy9tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXIvbW9kZWwtbGlzdC1zZWxlY3QtbXVsdGktZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge01vZGVsTGlzdFRyZWVGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4uL2ZpbHRlcnMvbW9kZWwtbGlzdC10cmVlLWZpbHRlci9tb2RlbC1saXN0LXRyZWUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge01vZGVsTGlzdE51bWJlckZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi4vZmlsdGVycy9tb2RlbC1saXN0LW51bWJlci1maWx0ZXIvbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge01vZGVsTGlzdERhdGVGaWx0ZXJDb21wb25lbnR9IGZyb20gJy4uL2ZpbHRlcnMvbW9kZWwtbGlzdC1kYXRlLWZpbHRlci9tb2RlbC1saXN0LWRhdGUtZmlsdGVyLmNvbXBvbmVudCc7XG5cbi8vIEZJWE1FOiByZWdpc3RlciBmaWx0ZXIgY29tcG9uZW50cyBhbmQgbG9hZCB0aGVtIGR5bmFtaWNhbGx5IHRvIGFsbG93IHVzZXIgZGVmaW5lZCBmaWx0ZXJzXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC1maWx0ZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLWxpc3QtZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWxpc3QtZmlsdGVycy5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1vZGVsTGlzdFRleHRGaWx0ZXJDb21wb25lbnQsXG4gICAgTW9kZWxMaXN0TnVtYmVyRmlsdGVyQ29tcG9uZW50LFxuICAgIE1vZGVsTGlzdEF1dG9jb21wbGV0ZUZpbHRlckNvbXBvbmVudCxcbiAgICBNb2RlbExpc3RBdXRvY29tcGxldGVNdWx0aUZpbHRlckNvbXBvbmVudCxcbiAgICBNb2RlbExpc3REYXRldGltZUZpbHRlckNvbXBvbmVudCxcbiAgICBNb2RlbExpc3REYXRlRmlsdGVyQ29tcG9uZW50LFxuICAgIE1vZGVsTGlzdERhdGV0aW1lUmFuZ2VGaWx0ZXJDb21wb25lbnQsXG4gICAgTW9kZWxMaXN0RmxhZ3NGaWx0ZXJDb21wb25lbnQsXG4gICAgTW9kZWxMaXN0R2VvZGlzdGFuY2VGaWx0ZXJDb21wb25lbnQsXG4gICAgTW9kZWxMaXN0U2VsZWN0RmlsdGVyQ29tcG9uZW50LFxuICAgIE1vZGVsTGlzdFNlbGVjdE11bHRpRmlsdGVyQ29tcG9uZW50LFxuICAgIE1vZGVsTGlzdFRyZWVGaWx0ZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdEZpbHRlcnNDb21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgbGlzdCE6IE1vZGVsTGlzdDxhbnk+O1xuICBASW5wdXQoKSBwdWJsaWMgY29udGFpbmVyQ2xhc3Nlczogc3RyaW5nW10gfCBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGl0ZW1DbGFzc2VzOiBzdHJpbmdbXSB8IHN0cmluZyA9ICcnO1xufVxuIiwiXG48ZGl2IFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzZXNcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZiBvZiBsaXN0LmZpbHRlcnMuZW5hYmxlZHxhc3luY1wiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImYudHlwZVwiPlxuICAgICAgPGRhdGEtbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInYXV0b2NvbXBsZXRlJ1wiIFtmaWx0ZXJdPVwiJGFueShmKVwiIFtsaXN0XT1cImxpc3RcIiBbbmdDbGFzc109XCJpdGVtQ2xhc3Nlc1wiPjwvZGF0YS1tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1maWx0ZXI+XG4gICAgICA8ZGF0YS1tb2RlbC1saXN0LWF1dG9jb21wbGV0ZS1tdWx0aS1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIidhdXRvY29tcGxldGVtdWx0aSdcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC1hdXRvY29tcGxldGUtbXVsdGktZmlsdGVyPlxuICAgICAgPGRhdGEtbW9kZWwtbGlzdC1kYXRldGltZS1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRldGltZSdcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC1kYXRldGltZS1maWx0ZXI+XG4gICAgICA8ZGF0YS1tb2RlbC1saXN0LWRhdGUtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC1kYXRlLWZpbHRlcj5cbiAgICAgIDxkYXRhLW1vZGVsLWxpc3QtZGF0ZXRpbWUtcmFuZ2UtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZXRpbWVyYW5nZSdcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC1kYXRldGltZS1yYW5nZS1maWx0ZXI+XG4gICAgICA8ZGF0YS1tb2RlbC1saXN0LWZsYWdzLWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ2ZsYWdzJ1wiIFtmaWx0ZXJdPVwiJGFueShmKVwiIFtsaXN0XT1cImxpc3RcIiBbbmdDbGFzc109XCJpdGVtQ2xhc3Nlc1wiPjwvZGF0YS1tb2RlbC1saXN0LWZsYWdzLWZpbHRlcj5cbiAgICAgIDxkYXRhLW1vZGVsLWxpc3QtZ2VvZGlzdGFuY2UtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInZ2VvZGlzdGFuY2UnXCIgW2ZpbHRlcl09XCIkYW55KGYpXCIgW2xpc3RdPVwibGlzdFwiIFtuZ0NsYXNzXT1cIml0ZW1DbGFzc2VzXCI+PC9kYXRhLW1vZGVsLWxpc3QtZ2VvZGlzdGFuY2UtZmlsdGVyPlxuICAgICAgPGRhdGEtbW9kZWwtbGlzdC1udW1iZXItZmlsdGVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiIFtmaWx0ZXJdPVwiJGFueShmKVwiIFtsaXN0XT1cImxpc3RcIiBbbmdDbGFzc109XCJpdGVtQ2xhc3Nlc1wiPjwvZGF0YS1tb2RlbC1saXN0LW51bWJlci1maWx0ZXI+XG4gICAgICA8ZGF0YS1tb2RlbC1saXN0LXNlbGVjdC1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCIgW2ZpbHRlcl09XCIkYW55KGYpXCIgW2xpc3RdPVwibGlzdFwiIFtuZ0NsYXNzXT1cIml0ZW1DbGFzc2VzXCI+PC9kYXRhLW1vZGVsLWxpc3Qtc2VsZWN0LWZpbHRlcj5cbiAgICAgIDxkYXRhLW1vZGVsLWxpc3Qtc2VsZWN0LW11bHRpLWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdG11bHRpJ1wiIFtmaWx0ZXJdPVwiJGFueShmKVwiIFtsaXN0XT1cImxpc3RcIiBbbmdDbGFzc109XCJpdGVtQ2xhc3Nlc1wiPjwvZGF0YS1tb2RlbC1saXN0LXNlbGVjdC1tdWx0aS1maWx0ZXI+XG4gICAgICA8ZGF0YS1tb2RlbC1saXN0LXRleHQtZmlsdGVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIiBbZmlsdGVyXT1cIiRhbnkoZilcIiBbbGlzdF09XCJsaXN0XCIgW25nQ2xhc3NdPVwiaXRlbUNsYXNzZXNcIj48L2RhdGEtbW9kZWwtbGlzdC10ZXh0LWZpbHRlcj5cbiAgICAgIDxkYXRhLW1vZGVsLWxpc3QtdHJlZS1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIid0cmVlJ1wiIFtmaWx0ZXJdPVwiJGFueShmKVwiIFtsaXN0XT1cImxpc3RcIiBbbmdDbGFzc109XCJpdGVtQ2xhc3Nlc1wiPjwvZGF0YS1tb2RlbC1saXN0LXRyZWUtZmlsdGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
class ModelListFiltersSelectComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.containerClasses = '';
|
|
8
|
+
this.itemActiveClasses = 'badge bg-success mx-1';
|
|
9
|
+
this.itemInactiveClasses = 'badge bg-secondary mx-1';
|
|
10
|
+
}
|
|
11
|
+
toggle(f) {
|
|
12
|
+
f.enabled = !f.enabled;
|
|
13
|
+
this.list.filters.update();
|
|
14
|
+
}
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListFiltersSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: ModelListFiltersSelectComponent, isStandalone: true, selector: "data-model-list-filters-select", inputs: { list: "list", containerClasses: "containerClasses", itemActiveClasses: "itemActiveClasses", itemInactiveClasses: "itemInactiveClasses" }, ngImport: i0, 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>", 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" }] }); }
|
|
17
|
+
}
|
|
18
|
+
export { ModelListFiltersSelectComponent };
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ModelListFiltersSelectComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
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>" }]
|
|
22
|
+
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], containerClasses: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], itemActiveClasses: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], itemInactiveClasses: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}] } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWx0ZXJzLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmlsdGVycy9tb2RlbC1saXN0LWZpbHRlcnMtc2VsZWN0L21vZGVsLWxpc3QtZmlsdGVycy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpbHRlcnMvbW9kZWwtbGlzdC1maWx0ZXJzLXNlbGVjdC9tb2RlbC1saXN0LWZpbHRlcnMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRS9DLE1BT2EsK0JBQStCO0lBUTFDO1FBTmdCLHFCQUFnQixHQUFzQixFQUFFLENBQUM7UUFDekMsc0JBQWlCLEdBQy9CLHVCQUF1QixDQUFDO1FBQ1Ysd0JBQW1CLEdBQ2pDLHlCQUF5QixDQUFDO0lBRWIsQ0FBQztJQUVULE1BQU0sQ0FBQyxDQUFrQjtRQUM5QixDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQWJVLCtCQUErQjtrR0FBL0IsK0JBQStCLDhPQ1o1Qyw2YkFBaWEseUREVXJaLFlBQVk7O1NBRVgsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBUDNDLFNBQVM7K0JBQ0UsZ0NBQWdDLGNBRzlCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzswRUFHUCxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxpQkFBaUI7c0JBQWhDLEtBQUs7Z0JBRVUsbUJBQW1CO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpbHRlciB9IGZyb20gJy4uL21vZGVsLWxpc3QtZmlsdGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC1maWx0ZXJzLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LWZpbHRlcnMtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kZWwtbGlzdC1maWx0ZXJzLXNlbGVjdC5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0RmlsdGVyc1NlbGVjdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBsaXN0ITogTW9kZWxMaXN0PGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250YWluZXJDbGFzc2VzOiBzdHJpbmdbXSB8IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgaXRlbUFjdGl2ZUNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID1cbiAgICAnYmFkZ2UgYmctc3VjY2VzcyBteC0xJztcbiAgQElucHV0KCkgcHVibGljIGl0ZW1JbmFjdGl2ZUNsYXNzZXM6IHN0cmluZ1tdIHwgc3RyaW5nID1cbiAgICAnYmFkZ2UgYmctc2Vjb25kYXJ5IG14LTEnO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgdG9nZ2xlKGY6IE1vZGVsTGlzdEZpbHRlcikge1xuICAgIGYuZW5hYmxlZCA9ICFmLmVuYWJsZWQ7XG4gICAgdGhpcy5saXN0LmZpbHRlcnMudXBkYXRlKCk7XG4gIH1cbn1cbiIsIjxzcGFuICpuZ0Zvcj1cImxldCBmIG9mIGxpc3QuZmlsdGVycy5hdmFpbGFibGV8YXN5bmNcIiAoY2xpY2spPVwidG9nZ2xlKGYpXCIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3Nlc1wiPjxzcGFuICpuZ0lmPVwiZi5lbmFibGVkXCIgcm9sZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIml0ZW1BY3RpdmVDbGFzc2VzXCIgW3RpdGxlXT1cImYuZGVzY1wiPjxpIGNsYXNzPVwiYmkgYmktY2hlY2syLXNxdWFyZSBtZS0yXCI+PC9pPjxzcGFuPnt7Zi5sYWJlbH19PC9zcGFuPjwvc3Bhbj48c3BhbiAqbmdJZj1cIiFmLmVuYWJsZWRcIiByb2xlPVwiYnV0dG9uXCIgW25nQ2xhc3NdPVwiaXRlbUluYWN0aXZlQ2xhc3Nlc1wiIFt0aXRsZV09XCJmLmRlc2NcIj48aSBjbGFzcz1cImJpIGJpLXNxdWFyZSBtZS0yXCI+PC9pPjxzcGFuPnt7Zi5sYWJlbH19PC9zcGFuPjwvc3Bhbj48L3NwYW4+Il19
|