@firestitch/filter 18.2.11 → 18.2.13
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/app/components/filter/filter.component.d.ts +40 -64
- package/app/components/filter-chip/filter-chip.component.d.ts +16 -3
- package/app/components/filter-chips/filter-chips.component.d.ts +14 -2
- package/app/components/filter-drawer/filter-drawer.component.d.ts +2 -5
- package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +8 -8
- package/app/components/filters-item/base-item/base-item.component.d.ts +3 -9
- package/app/components/filters-item/checkbox/checkbox.component.d.ts +6 -5
- package/app/components/filters-item/chips/chips.component.d.ts +6 -5
- package/app/components/filters-item/date/date.component.d.ts +4 -4
- package/app/components/filters-item/date-range/date-range.component.d.ts +7 -6
- package/app/components/filters-item/filter-item.component.d.ts +2 -2
- package/app/components/filters-item/range/range.component.d.ts +6 -7
- package/app/components/filters-item/select/select.component.d.ts +17 -20
- package/app/components/filters-item/text/text.component.d.ts +6 -7
- package/app/components/filters-item/week/week.component.d.ts +5 -5
- package/app/components/keyword-input/keyword-input.component.d.ts +29 -0
- package/app/components/saved-filter/saved-filter-autocomplete-chips/saved-filter-autocomplete-chips.component.d.ts +2 -3
- package/app/components/saved-filter/saved-filter-manage/components/saved-filter-chips/saved-filter-chips.component.d.ts +1 -1
- package/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.d.ts +1 -2
- package/app/fs-filter.module.d.ts +20 -24
- package/app/helpers/create-filter-item.d.ts +2 -1
- package/app/interfaces/items/date.interface.d.ts +1 -1
- package/app/models/filter-config.d.ts +2 -2
- package/app/models/items/autocomplete-chips-item.d.ts +11 -8
- package/app/models/items/autocomplete-item.d.ts +7 -5
- package/app/models/items/{autocomplete/base-autocomplete-item.d.ts → base-autocomplete-item.d.ts} +4 -5
- package/app/models/items/base-date-item.d.ts +13 -0
- package/app/models/items/base-date-range-item.d.ts +17 -0
- package/app/models/items/base-item.d.ts +26 -40
- package/app/models/items/checkbox-item.d.ts +10 -9
- package/app/models/items/chips-item.d.ts +12 -9
- package/app/models/items/date-item.d.ts +7 -3
- package/app/models/items/date-range-item.d.ts +1 -1
- package/app/models/items/date-time-item.d.ts +6 -3
- package/app/models/items/date-time-range-item.d.ts +1 -1
- package/app/models/items/index.d.ts +0 -4
- package/app/models/items/range-item.d.ts +19 -8
- package/app/models/items/select-item.d.ts +29 -6
- package/app/models/items/text-item.d.ts +7 -6
- package/app/models/items/week-item.d.ts +7 -7
- package/app/services/filter-controller.service.d.ts +47 -0
- package/app/services/focus-controller.service.d.ts +4 -4
- package/app/services/index.d.ts +4 -2
- package/app/services/keyword-controller.service.d.ts +20 -0
- package/app/services/persistance-controller.service.d.ts +10 -4
- package/app/services/query-param-controller.service.d.ts +10 -12
- package/app/services/root-filter-overlay.service.d.ts +6 -0
- package/app/services/saved-filter-controller.service.d.ts +4 -4
- package/app/services/sort-controller.service.d.ts +21 -0
- package/esm2022/app/components/filter/filter.component.mjs +150 -294
- package/esm2022/app/components/filter-chip/filter-chip.component.mjs +24 -32
- package/esm2022/app/components/filter-chip-content/filter-chip-content.component.mjs +2 -2
- package/esm2022/app/components/filter-chips/filter-chips.component.mjs +22 -8
- package/esm2022/app/components/filter-drawer/filter-drawer.component.mjs +7 -14
- package/esm2022/app/components/filters-item/autocomplete/autocomplete.component.mjs +6 -6
- package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +26 -22
- package/esm2022/app/components/filters-item/base-item/base-item.component.mjs +2 -30
- package/esm2022/app/components/filters-item/checkbox/checkbox.component.mjs +22 -15
- package/esm2022/app/components/filters-item/chips/chips.component.mjs +22 -15
- package/esm2022/app/components/filters-item/date/date.component.mjs +24 -20
- package/esm2022/app/components/filters-item/date-range/date-range.component.mjs +29 -24
- package/esm2022/app/components/filters-item/filter-item.component.mjs +5 -5
- package/esm2022/app/components/filters-item/range/range.component.mjs +31 -35
- package/esm2022/app/components/filters-item/select/select.component.mjs +57 -45
- package/esm2022/app/components/filters-item/text/text.component.mjs +24 -24
- package/esm2022/app/components/filters-item/week/week.component.mjs +22 -16
- package/esm2022/app/components/keyword-input/keyword-input.component.mjs +104 -0
- package/esm2022/app/components/saved-filter/saved-filter-autocomplete-chips/saved-filter-autocomplete-chips.component.mjs +4 -6
- package/esm2022/app/components/saved-filter/saved-filter-manage/components/saved-filter-chips/saved-filter-chips.component.mjs +6 -6
- package/esm2022/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.mjs +5 -6
- package/esm2022/app/fs-filter.module.mjs +1 -16
- package/esm2022/app/helpers/parse-item-value-from-stored.mjs +17 -16
- package/esm2022/app/interfaces/items/date.interface.mjs +1 -1
- package/esm2022/app/models/action.model.mjs +2 -2
- package/esm2022/app/models/filter-config.mjs +2 -3
- package/esm2022/app/models/items/autocomplete-chips-item.mjs +32 -27
- package/esm2022/app/models/items/autocomplete-item.mjs +13 -15
- package/esm2022/app/models/items/base-autocomplete-item.mjs +16 -0
- package/esm2022/app/models/items/base-date-item.mjs +28 -0
- package/esm2022/app/models/items/base-date-range-item.mjs +101 -0
- package/esm2022/app/models/items/base-item.mjs +58 -138
- package/esm2022/app/models/items/checkbox-item.mjs +35 -26
- package/esm2022/app/models/items/chips-item.mjs +50 -59
- package/esm2022/app/models/items/date-item.mjs +21 -8
- package/esm2022/app/models/items/date-range-item.mjs +2 -2
- package/esm2022/app/models/items/date-time-item.mjs +4 -7
- package/esm2022/app/models/items/date-time-range-item.mjs +2 -2
- package/esm2022/app/models/items/index.mjs +1 -5
- package/esm2022/app/models/items/range-item.mjs +48 -44
- package/esm2022/app/models/items/select-item.mjs +104 -9
- package/esm2022/app/models/items/text-item.mjs +17 -15
- package/esm2022/app/models/items/week-item.mjs +22 -38
- package/esm2022/app/pipes/remove-isolate-value.pipe.mjs +1 -1
- package/esm2022/app/services/filter-controller.service.mjs +209 -0
- package/esm2022/app/services/filter-overlay.service.mjs +3 -3
- package/esm2022/app/services/focus-controller.service.mjs +3 -3
- package/esm2022/app/services/index.mjs +5 -3
- package/esm2022/app/services/keyword-controller.service.mjs +49 -0
- package/esm2022/app/services/persistance-controller.service.mjs +24 -6
- package/esm2022/app/services/query-param-controller.service.mjs +44 -34
- package/esm2022/app/services/root-filter-overlay.service.mjs +14 -0
- package/esm2022/app/services/saved-filter-controller.service.mjs +20 -18
- package/esm2022/app/services/sort-controller.service.mjs +60 -0
- package/esm2022/public_api.mjs +1 -2
- package/fesm2022/firestitch-filter.mjs +2593 -3243
- package/fesm2022/firestitch-filter.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +0 -1
- package/app/components/filters-item/select/backdrop/backdrop.component.d.ts +0 -6
- package/app/components/filters-item/select/groups/groups.component.d.ts +0 -13
- package/app/components/filters-item/select/multiple/multiple.component.d.ts +0 -16
- package/app/components/filters-item/select/simple/simple.component.d.ts +0 -15
- package/app/helpers/build-query-params.d.ts +0 -4
- package/app/helpers/compare.d.ts +0 -2
- package/app/helpers/find-value.d.ts +0 -1
- package/app/models/items/autocomplete/index.d.ts +0 -1
- package/app/models/items/date/base-date-item.d.ts +0 -17
- package/app/models/items/date/index.d.ts +0 -1
- package/app/models/items/date-range/base-date-range-item.d.ts +0 -17
- package/app/models/items/date-range/index.d.ts +0 -1
- package/app/models/items/select/base-select-item.d.ts +0 -16
- package/app/models/items/select/index.d.ts +0 -3
- package/app/models/items/select/multiple-select-item.d.ts +0 -14
- package/app/models/items/select/simple-select-item.d.ts +0 -14
- package/app/providers/filter-meta.d.ts +0 -5
- package/app/services/item-store.service.d.ts +0 -63
- package/app/services/param-controller.service.d.ts +0 -30
- package/esm2022/app/components/filters-item/select/backdrop/backdrop.component.mjs +0 -12
- package/esm2022/app/components/filters-item/select/groups/groups.component.mjs +0 -47
- package/esm2022/app/components/filters-item/select/multiple/multiple.component.mjs +0 -76
- package/esm2022/app/components/filters-item/select/simple/simple.component.mjs +0 -56
- package/esm2022/app/helpers/build-query-params.mjs +0 -38
- package/esm2022/app/helpers/compare.mjs +0 -38
- package/esm2022/app/helpers/find-value.mjs +0 -13
- package/esm2022/app/models/items/autocomplete/base-autocomplete-item.mjs +0 -19
- package/esm2022/app/models/items/autocomplete/index.mjs +0 -2
- package/esm2022/app/models/items/date/base-date-item.mjs +0 -55
- package/esm2022/app/models/items/date/index.mjs +0 -2
- package/esm2022/app/models/items/date-range/base-date-range-item.mjs +0 -124
- package/esm2022/app/models/items/date-range/index.mjs +0 -2
- package/esm2022/app/models/items/select/base-select-item.mjs +0 -38
- package/esm2022/app/models/items/select/index.mjs +0 -4
- package/esm2022/app/models/items/select/multiple-select-item.mjs +0 -92
- package/esm2022/app/models/items/select/simple-select-item.mjs +0 -66
- package/esm2022/app/providers/filter-meta.mjs +0 -10
- package/esm2022/app/services/item-store.service.mjs +0 -333
- package/esm2022/app/services/param-controller.service.mjs +0 -151
package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Injector,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Injector, } from '@angular/core';
|
|
2
2
|
import { FormsModule } from '@angular/forms';
|
|
3
3
|
import { FsAutocompleteChipsModule } from '@firestitch/autocomplete-chips';
|
|
4
|
-
import { remove as arrayRemove } from '@firestitch/common';
|
|
5
4
|
import { FsFormModule } from '@firestitch/form';
|
|
5
|
+
import { takeUntil } from 'rxjs';
|
|
6
6
|
import { FocusToItemDirective } from '../../../directives/focus-to-item/focus-to-item.directive';
|
|
7
7
|
import { FilterComponent } from '../../filter/filter.component';
|
|
8
8
|
import { BaseItemComponent } from '../base-item/base-item.component';
|
|
@@ -11,27 +11,31 @@ import * as i1 from "@firestitch/autocomplete-chips";
|
|
|
11
11
|
import * as i2 from "@angular/forms";
|
|
12
12
|
import * as i3 from "@firestitch/form";
|
|
13
13
|
export class AutocompletechipsComponent extends BaseItemComponent {
|
|
14
|
-
|
|
15
|
-
_cd;
|
|
14
|
+
value;
|
|
16
15
|
_injector = inject(Injector);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
|
|
16
|
+
_cdRef = inject(ChangeDetectorRef);
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.item.value$
|
|
19
|
+
.pipe(takeUntil(this.destroy$))
|
|
20
|
+
.subscribe((value) => {
|
|
21
|
+
this.value = value;
|
|
22
|
+
this._cdRef.detectChanges();
|
|
23
|
+
});
|
|
21
24
|
}
|
|
22
|
-
|
|
23
|
-
if (event.data && this.item.
|
|
24
|
-
this.item.
|
|
25
|
-
|
|
25
|
+
selected(event) {
|
|
26
|
+
if (event.data && this.item.value.indexOf(event.data.value) === -1) {
|
|
27
|
+
this.item.value = [
|
|
28
|
+
...this.item.value,
|
|
29
|
+
event.data,
|
|
30
|
+
];
|
|
26
31
|
}
|
|
27
32
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
33
|
+
removed(event) {
|
|
34
|
+
this.item.value = this.item.value
|
|
35
|
+
.filter((item) => item.value !== event.data.value);
|
|
31
36
|
}
|
|
32
|
-
|
|
37
|
+
clear() {
|
|
33
38
|
this.item.clear();
|
|
34
|
-
this.itemChange();
|
|
35
39
|
}
|
|
36
40
|
fetch = (keyword) => {
|
|
37
41
|
return this.item.valuesFn(keyword, this.item.filter);
|
|
@@ -43,8 +47,8 @@ export class AutocompletechipsComponent extends BaseItemComponent {
|
|
|
43
47
|
const filterComponent = this._injector.get(FilterComponent);
|
|
44
48
|
action.click(filterComponent);
|
|
45
49
|
}
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompletechipsComponent, deps:
|
|
47
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AutocompletechipsComponent, isStandalone: true, selector: "filter-item-autocompletechips", usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [ngModel]=\"
|
|
50
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompletechipsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AutocompletechipsComponent, isStandalone: true, selector: "filter-item-autocompletechips", usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [ngModel]=\"value\"\n (selected)=\"selected($event)\"\n (removed)=\"removed($event)\"\n (clear)=\"clear()\"\n [allowText]=\"false\"\n [label]=\"label\"\n [size]=\"'small'\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"item.chipColor\"\n [chipIconColor]=\"item.chipIcon\"\n [chipBackground]=\"item.chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.showClear\"\n [removable]=\"item.showClear\"\n [compareWith]=\"compareItems\"\n [panelWidth]=\"300\"\n name=\"model\">\n <ng-template\n fsAutocompleteObject\n let-object=\"object\">\n {{ object.name }}\n </ng-template>\n @for (action of item.panelActions; track action.label) {\n <ng-template\n fsAutocompleteChipsStatic\n (click)=\"actionClick(action)\">\n {{ action.label }}\n </ng-template>\n }\n</fs-autocomplete-chips>", dependencies: [{ kind: "ngmodule", type: FsAutocompleteChipsModule }, { kind: "component", type: i1.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "appearance", "floatLabel", "readonly", "size", "label", "placeholder", "chipMargin", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "chipPadding", "shape", "hint", "allowText", "allowObject", "delay", "minPanelWidth", "validateText", "removable", "allowClear", "color", "background", "orderable", "padless", "initOnClick", "fetchOnFocus", "multiple", "multipleAdd", "confirm", "disabled", "groupBy", "panelWidth", "panelClass", "compareWith"], outputs: ["selected", "removed", "reordered", "clear"] }, { kind: "directive", type: i1.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }, { kind: "directive", type: i1.FsAutocompleteChipsStaticDirective, selector: "[fsAutocompleteChipsStatic]", inputs: ["show", "disable"], outputs: ["click", "selected"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
48
52
|
}
|
|
49
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompletechipsComponent, decorators: [{
|
|
50
54
|
type: Component,
|
|
@@ -53,6 +57,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
53
57
|
FocusToItemDirective,
|
|
54
58
|
FormsModule,
|
|
55
59
|
FsFormModule,
|
|
56
|
-
], template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [ngModel]=\"
|
|
57
|
-
}]
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
], template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [ngModel]=\"value\"\n (selected)=\"selected($event)\"\n (removed)=\"removed($event)\"\n (clear)=\"clear()\"\n [allowText]=\"false\"\n [label]=\"label\"\n [size]=\"'small'\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"item.chipColor\"\n [chipIconColor]=\"item.chipIcon\"\n [chipBackground]=\"item.chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.showClear\"\n [removable]=\"item.showClear\"\n [compareWith]=\"compareItems\"\n [panelWidth]=\"300\"\n name=\"model\">\n <ng-template\n fsAutocompleteObject\n let-object=\"object\">\n {{ object.name }}\n </ng-template>\n @for (action of item.panelActions; track action.label) {\n <ng-template\n fsAutocompleteChipsStatic\n (click)=\"actionClick(action)\">\n {{ action.label }}\n </ng-template>\n }\n</fs-autocomplete-chips>" }]
|
|
61
|
+
}] });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9hdXRvY29tcGxldGVjaGlwcy9hdXRvY29tcGxldGVjaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL2F1dG9jb21wbGV0ZWNoaXBzL2F1dG9jb21wbGV0ZWNoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUVqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBZXJFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxpQkFBd0M7SUFFL0UsS0FBSyxDQUFRO0lBRVosU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixNQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFcEMsUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTthQUNiLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN6QjthQUNBLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQUs7UUFDbkIsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUc7Z0JBQ2hCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO2dCQUNsQixLQUFLLENBQUMsSUFBSTthQUNYLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUFLO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSzthQUM5QixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDO0lBRUssWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLO1FBQzlCLE9BQU8sS0FBSyxFQUFFLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxXQUFXLENBQUMsTUFBVztRQUM1QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7d0dBL0NVLDBCQUEwQjs0RkFBMUIsMEJBQTBCLGdIQ2pDdkMsay9CQWlDd0IsMkNETnBCLHlCQUF5Qix5OUJBQ3pCLG9CQUFvQix1SEFDcEIsV0FBVyw4VkFDWCxZQUFZOzs0RkFHSCwwQkFBMEI7a0JBWnRDLFNBQVM7K0JBQ0UsK0JBQStCLG1CQUV4Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCx5QkFBeUI7d0JBQ3pCLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCxZQUFZO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgRnNBdXRvY29tcGxldGVDaGlwc01vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2F1dG9jb21wbGV0ZS1jaGlwcyc7XG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcblxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZvY3VzVG9JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9mb2N1cy10by1pdGVtL2ZvY3VzLXRvLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNoaXBzSXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pdGVtcy9hdXRvY29tcGxldGUtY2hpcHMtaXRlbSc7XG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXNlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtaXRlbS9iYXNlLWl0ZW0uY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmaWx0ZXItaXRlbS1hdXRvY29tcGxldGVjaGlwcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGVjaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRnNBdXRvY29tcGxldGVDaGlwc01vZHVsZSxcbiAgICBGb2N1c1RvSXRlbURpcmVjdGl2ZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGc0Zvcm1Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZWNoaXBzQ29tcG9uZW50IGV4dGVuZHMgQmFzZUl0ZW1Db21wb25lbnQ8QXV0b2NvbXBsZXRlQ2hpcHNJdGVtPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHZhbHVlOiBhbnlbXTtcbiAgXG4gIHByaXZhdGUgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSBfY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW0udmFsdWUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RlZChldmVudCkge1xuICAgIGlmIChldmVudC5kYXRhICYmIHRoaXMuaXRlbS52YWx1ZS5pbmRleE9mKGV2ZW50LmRhdGEudmFsdWUpID09PSAtMSkge1xuICAgICAgdGhpcy5pdGVtLnZhbHVlID0gW1xuICAgICAgICAuLi50aGlzLml0ZW0udmFsdWUsIFxuICAgICAgICBldmVudC5kYXRhLFxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlZChldmVudCkge1xuICAgIHRoaXMuaXRlbS52YWx1ZSA9IHRoaXMuaXRlbS52YWx1ZVxuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbS52YWx1ZSAhPT0gZXZlbnQuZGF0YS52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy5pdGVtLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2ggPSAoa2V5d29yZCkgPT4ge1xuICAgIHJldHVybiB0aGlzLml0ZW0udmFsdWVzRm4oa2V5d29yZCwgdGhpcy5pdGVtLmZpbHRlcik7XG4gIH07XG5cbiAgcHVibGljIGNvbXBhcmVJdGVtcyhpdGVtMSwgaXRlbTIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXRlbTE/LnZhbHVlID09PSBpdGVtMj8udmFsdWU7XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uQ2xpY2soYWN0aW9uOiBhbnkpIHtcbiAgICBjb25zdCBmaWx0ZXJDb21wb25lbnQgPSB0aGlzLl9pbmplY3Rvci5nZXQoRmlsdGVyQ29tcG9uZW50KTtcbiAgICBhY3Rpb24uY2xpY2soZmlsdGVyQ29tcG9uZW50KTtcbiAgfVxufVxuIiwiPGZzLWF1dG9jb21wbGV0ZS1jaGlwc1xuICAgIFtmc0ZpbHRlckZvY3VzVHJpZ2dlcl09XCJpdGVtXCJcbiAgICBbZmV0Y2hdPVwiZmV0Y2hcIlxuICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAoc2VsZWN0ZWQpPVwic2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgKHJlbW92ZWQpPVwicmVtb3ZlZCgkZXZlbnQpXCJcbiAgICAoY2xlYXIpPVwiY2xlYXIoKVwiXG4gICAgW2FsbG93VGV4dF09XCJmYWxzZVwiXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICBbY2hpcEltYWdlXT1cIml0ZW0uY2hpcEltYWdlXCJcbiAgICBbY2hpcENvbG9yXT1cIml0ZW0uY2hpcENvbG9yXCJcbiAgICBbY2hpcEljb25Db2xvcl09XCJpdGVtLmNoaXBJY29uXCJcbiAgICBbY2hpcEJhY2tncm91bmRdPVwiaXRlbS5jaGlwQmFja2dyb3VuZFwiXG4gICAgW2NoaXBJY29uXT1cIml0ZW0uY2hpcEljb25cIlxuICAgIFtjaGlwQ2xhc3NdPVwiaXRlbS5jaGlwQ2xhc3NcIlxuICAgIFthbGxvd0NsZWFyXT1cIml0ZW0uc2hvd0NsZWFyXCJcbiAgICBbcmVtb3ZhYmxlXT1cIml0ZW0uc2hvd0NsZWFyXCJcbiAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUl0ZW1zXCJcbiAgICBbcGFuZWxXaWR0aF09XCIzMDBcIlxuICAgIG5hbWU9XCJtb2RlbFwiPlxuICA8bmctdGVtcGxhdGVcbiAgICAgIGZzQXV0b2NvbXBsZXRlT2JqZWN0XG4gICAgICBsZXQtb2JqZWN0PVwib2JqZWN0XCI+XG4gICAge3sgb2JqZWN0Lm5hbWUgfX1cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgQGZvciAoYWN0aW9uIG9mIGl0ZW0ucGFuZWxBY3Rpb25zOyB0cmFjayBhY3Rpb24ubGFiZWwpIHtcbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnNBdXRvY29tcGxldGVDaGlwc1N0YXRpY1xuICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxuICAgICAge3sgYWN0aW9uLmxhYmVsIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgfVxuPC9mcy1hdXRvY29tcGxldGUtY2hpcHM+Il19
|
|
@@ -1,27 +1,17 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, KeyValueDiffers, } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
|
-
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export class BaseItemComponent {
|
|
6
5
|
_kvDiffers;
|
|
7
6
|
_cd;
|
|
8
|
-
|
|
9
|
-
this._item = value;
|
|
10
|
-
}
|
|
11
|
-
get item() {
|
|
12
|
-
return this._item;
|
|
13
|
-
}
|
|
7
|
+
item;
|
|
14
8
|
inline = false;
|
|
15
9
|
label;
|
|
16
|
-
_item;
|
|
17
10
|
_kvDiffer;
|
|
18
11
|
_destroy$ = new Subject();
|
|
19
|
-
_debouncer$ = new Subject();
|
|
20
12
|
constructor(_kvDiffers, _cd) {
|
|
21
13
|
this._kvDiffers = _kvDiffers;
|
|
22
14
|
this._cd = _cd;
|
|
23
|
-
this._kvDiffer = this._kvDiffers.find(this.item || {}).create();
|
|
24
|
-
this.listenWithDebounce();
|
|
25
15
|
}
|
|
26
16
|
get destroy$() {
|
|
27
17
|
return this._destroy$.asObservable();
|
|
@@ -29,14 +19,6 @@ export class BaseItemComponent {
|
|
|
29
19
|
destroy() {
|
|
30
20
|
return this._destroy$.asObservable();
|
|
31
21
|
}
|
|
32
|
-
ngDoCheck() {
|
|
33
|
-
if (this._kvDiffer) {
|
|
34
|
-
const changes = this._kvDiffer.diff(this.item);
|
|
35
|
-
if (changes) {
|
|
36
|
-
this._cd.detectChanges();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
22
|
ngOnChanges(changes) {
|
|
41
23
|
if (changes.item) {
|
|
42
24
|
this.label = Array.isArray(this.item.label) ? this.item.label[0] : this.item.label;
|
|
@@ -46,16 +28,6 @@ export class BaseItemComponent {
|
|
|
46
28
|
this._destroy$.next(null);
|
|
47
29
|
this._destroy$.complete();
|
|
48
30
|
}
|
|
49
|
-
listenWithDebounce() {
|
|
50
|
-
this._debouncer$
|
|
51
|
-
.pipe(debounceTime(150), takeUntil(this._destroy$))
|
|
52
|
-
.subscribe(() => {
|
|
53
|
-
this.item.valueChanged();
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
itemChange() {
|
|
57
|
-
this._debouncer$.next(null);
|
|
58
|
-
}
|
|
59
31
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseItemComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
32
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BaseItemComponent, isStandalone: true, selector: "base-item", inputs: { item: "item", inline: "inline" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
61
33
|
}
|
|
@@ -72,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
72
44
|
}], inline: [{
|
|
73
45
|
type: Input
|
|
74
46
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXJzLWl0ZW0vYmFzZS1pdGVtL2Jhc2UtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFFTCxlQUFlLEdBRWhCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBWTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFlaEI7SUFDQTtJQWJJLElBQUksQ0FBSTtJQUdqQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRWYsS0FBSyxDQUFVO0lBRVosU0FBUyxDQUE4QjtJQUV6QyxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUVsQyxZQUNZLFVBQTJCLEVBQzNCLEdBQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQWlCO1FBQzNCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBRWxDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyRixDQUFDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO3dHQXJDVSxpQkFBaUI7NEZBQWpCLGlCQUFpQixzSUFKbEIsRUFBRTs7NEZBSUQsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO29IQUlpQixJQUFJO3NCQUFuQixLQUFLO2dCQUdDLE1BQU07c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgS2V5VmFsdWVEaWZmZXIsXG4gIEtleVZhbHVlRGlmZmVycywgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElGaWx0ZXJDb25maWdJdGVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhc2VJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2l0ZW1zL2Jhc2UtaXRlbSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS1pdGVtJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQmFzZUl0ZW1Db21wb25lbnQ8VCBleHRlbmRzIEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPj5cbmltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpdGVtOiBUO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmxpbmUgPSBmYWxzZTtcblxuICBwdWJsaWMgbGFiZWwhOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIF9rdkRpZmZlcjogS2V5VmFsdWVEaWZmZXI8c3RyaW5nLCBhbnk+O1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX2t2RGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxuICAgIHByb3RlY3RlZCBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVzdHJveSQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVzdHJveSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVzdHJveSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLml0ZW0pIHtcbiAgICAgIHRoaXMubGFiZWwgPSBBcnJheS5pc0FycmF5KHRoaXMuaXRlbS5sYWJlbCkgPyB0aGlzLml0ZW0ubGFiZWxbMF0gOiB0aGlzLml0ZW0ubGFiZWw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,23 +1,30 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
|
2
|
-
import { BaseItemComponent } from '../base-item/base-item.component';
|
|
3
|
-
import { FsLabelModule } from '@firestitch/label';
|
|
4
|
-
import { MatCheckbox } from '@angular/material/checkbox';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, } from '@angular/core';
|
|
5
2
|
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { MatCheckbox } from '@angular/material/checkbox';
|
|
6
4
|
import { FsFormModule } from '@firestitch/form';
|
|
5
|
+
import { FsLabelModule } from '@firestitch/label';
|
|
6
|
+
import { takeUntil } from 'rxjs/operators';
|
|
7
|
+
import { BaseItemComponent } from '../base-item/base-item.component';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@firestitch/label";
|
|
9
10
|
import * as i2 from "@angular/forms";
|
|
10
11
|
import * as i3 from "@firestitch/form";
|
|
11
12
|
export class CheckboxComponent extends BaseItemComponent {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
value;
|
|
14
|
+
_cdRef = inject(ChangeDetectorRef);
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
this.item.value$
|
|
17
|
+
.pipe(takeUntil(this.destroy$))
|
|
18
|
+
.subscribe((value) => {
|
|
19
|
+
this.value = value;
|
|
20
|
+
this._cdRef.detectChanges();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
change() {
|
|
24
|
+
this.item.value = this.value;
|
|
18
25
|
}
|
|
19
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxComponent, deps:
|
|
20
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckboxComponent, isStandalone: true, selector: "filter-item-checkbox", usesInheritance: true, ngImport: i0, template: "<fs-label-field>\n <mat-checkbox\n [(ngModel)]=\"
|
|
26
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckboxComponent, isStandalone: true, selector: "filter-item-checkbox", usesInheritance: true, ngImport: i0, template: "<fs-label-field>\n <mat-checkbox\n [(ngModel)]=\"value\"\n (ngModelChange)=\"change()\"\n [name]=\"item.name\">\n {{ item.label }}\n </mat-checkbox>\n</fs-label-field>", styles: ["fs-label-field{margin:0 0 -12px -8px}\n"], dependencies: [{ kind: "ngmodule", type: FsLabelModule }, { kind: "component", type: i1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21
28
|
}
|
|
22
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
23
30
|
type: Component,
|
|
@@ -26,6 +33,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
26
33
|
MatCheckbox,
|
|
27
34
|
FormsModule,
|
|
28
35
|
FsFormModule,
|
|
29
|
-
], template: "<fs-label-field>\n <mat-checkbox\n [(ngModel)]=\"
|
|
30
|
-
}]
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
], template: "<fs-label-field>\n <mat-checkbox\n [(ngModel)]=\"value\"\n (ngModelChange)=\"change()\"\n [name]=\"item.name\">\n {{ item.label }}\n </mat-checkbox>\n</fs-label-field>", styles: ["fs-label-field{margin:0 0 -12px -8px}\n"] }]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFnQnJFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxpQkFBK0I7SUFFN0QsS0FBSyxDQUFVO0lBRWQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXBDLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07YUFDYixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekI7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7d0dBbkJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLHVHQ2pDOUIsNkxBT2lCLGdHRG9CYixhQUFhLHdNQUNiLFdBQVcsdVZBQ1gsV0FBVyw4VkFDWCxZQUFZOzs0RkFHSCxpQkFBaUI7a0JBYjdCLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxXQUFXO3dCQUNYLFlBQVk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuXG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IEZzTGFiZWxNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9sYWJlbCc7XG5cbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ2hlY2tib3hJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2l0ZW1zL2NoZWNrYm94LWl0ZW0nO1xuaW1wb3J0IHsgQmFzZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWl0ZW0vYmFzZS1pdGVtLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmlsdGVyLWl0ZW0tY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZzTGFiZWxNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3gsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRnNGb3JtTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBleHRlbmRzIEJhc2VJdGVtQ29tcG9uZW50PENoZWNrYm94SXRlbT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyB2YWx1ZTogYm9vbGVhbjtcblxuICBwcml2YXRlIF9jZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXRlbS52YWx1ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2NkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZSgpIHtcbiAgICB0aGlzLml0ZW0udmFsdWUgPSB0aGlzLnZhbHVlO1xuICB9XG4gIFxufVxuIiwiPGZzLWxhYmVsLWZpZWxkPlxuICA8bWF0LWNoZWNrYm94XG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZSgpXCJcbiAgICAgIFtuYW1lXT1cIml0ZW0ubmFtZVwiPlxuICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgPC9tYXQtY2hlY2tib3g+XG48L2ZzLWxhYmVsLWZpZWxkPiJdfQ==
|
|
@@ -1,27 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { FsLabelModule } from '@firestitch/label';
|
|
4
|
-
import { FsChipModule } from '@firestitch/chip';
|
|
1
|
+
import { AsyncPipe } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, inject, } from '@angular/core';
|
|
5
3
|
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { FsChipModule } from '@firestitch/chip';
|
|
6
5
|
import { FsFormModule } from '@firestitch/form';
|
|
6
|
+
import { FsLabelModule } from '@firestitch/label';
|
|
7
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
|
+
import { BaseItemComponent } from '../base-item/base-item.component';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
10
|
import * as i1 from "@firestitch/label";
|
|
9
11
|
import * as i2 from "@firestitch/chip";
|
|
10
12
|
import * as i3 from "@angular/forms";
|
|
11
13
|
import * as i4 from "@firestitch/form";
|
|
12
14
|
export class ChipsComponent extends BaseItemComponent {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
this.
|
|
18
|
-
|
|
15
|
+
value;
|
|
16
|
+
_destroyRef = inject(DestroyRef);
|
|
17
|
+
_cdRef = inject(ChangeDetectorRef);
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.item.value$
|
|
20
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
21
|
+
.subscribe((value) => {
|
|
22
|
+
this.value = value;
|
|
23
|
+
this._cdRef.detectChanges();
|
|
24
|
+
});
|
|
19
25
|
}
|
|
20
26
|
compareFn = (modelValue, chipValue) => {
|
|
21
27
|
return String(modelValue.value) === String(chipValue.value);
|
|
22
28
|
};
|
|
23
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipsComponent, deps:
|
|
24
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ChipsComponent, isStandalone: true, selector: "filter-item-chips", usesInheritance: true, ngImport: i0, template: "@if (item.values?.length) {\n <fs-label-field>\n <fs-label>\n {{ item.label }}\n </fs-label>\n <fs-chips\n [(ngModel)]=\"
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ChipsComponent, isStandalone: true, selector: "filter-item-chips", usesInheritance: true, ngImport: i0, template: "@if ((item.values$ | async)?.length) {\n <fs-label-field>\n <fs-label>\n {{ item.label }}\n </fs-label>\n <fs-chips\n [(ngModel)]=\"value\"\n [compare]=\"compareFn\"\n (ngModelChange)=\"item.value = value\"\n [multiple]=\"item.multiple\">\n @for (value of item.values; track value) {\n <fs-chip\n [value]=\"value\"\n [selectable]=\"true\">\n {{ value.name }}\n </fs-chip>\n }\n </fs-chips>\n </fs-label-field>\n}", styles: ["fs-chip{line-height:40px}\n"], dependencies: [{ kind: "ngmodule", type: FsLabelModule }, { kind: "component", type: i1.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "ngmodule", type: FsChipModule }, { kind: "component", type: i2.FsChipsComponent, selector: "fs-chips", inputs: ["compare", "multiple", "sortable", "selectable", "orientation", "width"] }, { kind: "component", type: i2.FsChipComponent, selector: "fs-chip", inputs: ["selectable", "removable", "value", "maxWidth", "width", "backgroundColor", "borderColor", "color", "shape", "outlined", "icon", "image", "selected", "padding", "contrastColor", "size"], outputs: ["selectedToggled", "removed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i4.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25
31
|
}
|
|
26
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChipsComponent, decorators: [{
|
|
27
33
|
type: Component,
|
|
@@ -30,6 +36,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30
36
|
FsChipModule,
|
|
31
37
|
FormsModule,
|
|
32
38
|
FsFormModule,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
AsyncPipe,
|
|
40
|
+
], template: "@if ((item.values$ | async)?.length) {\n <fs-label-field>\n <fs-label>\n {{ item.label }}\n </fs-label>\n <fs-chips\n [(ngModel)]=\"value\"\n [compare]=\"compareFn\"\n (ngModelChange)=\"item.value = value\"\n [multiple]=\"item.multiple\">\n @for (value of item.values; track value) {\n <fs-chip\n [value]=\"value\"\n [selectable]=\"true\">\n {{ value.name }}\n </fs-chip>\n }\n </fs-chips>\n </fs-label-field>\n}", styles: ["fs-chip{line-height:40px}\n"] }]
|
|
41
|
+
}] });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9jaGlwcy9jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL2NoaXBzL2NoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQWlCckUsTUFBTSxPQUFPLGNBQWUsU0FBUSxpQkFBNEI7SUFFdkQsS0FBSyxDQUFNO0lBRVYsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxNQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFcEMsUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTthQUNiLElBQUksQ0FDSCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxTQUFTLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLEVBQUU7UUFDM0MsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDO3dHQXBCUyxjQUFjOzRGQUFkLGNBQWMsb0dDbkMzQixvZ0JBbUJDLG9GRFNHLGFBQWEsK1FBQ2IsWUFBWSw0ZUFDWixXQUFXLDhWQUNYLFlBQVkscWdCQUNaLFNBQVM7OzRGQUdBLGNBQWM7a0JBZDFCLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osU0FBUztxQkFDViIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgaW5qZWN0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEZzQ2hpcE1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NoaXAnO1xuaW1wb3J0IHsgRnNGb3JtTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZm9ybSc7XG5pbXBvcnQgeyBGc0xhYmVsTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGFiZWwnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7IENoaXBzSXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pdGVtcy9jaGlwcy1pdGVtJztcbmltcG9ydCB7IEJhc2VJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1pdGVtL2Jhc2UtaXRlbS5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpbHRlci1pdGVtLWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hpcHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGc0xhYmVsTW9kdWxlLFxuICAgIEZzQ2hpcE1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBGc0Zvcm1Nb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGlwc0NvbXBvbmVudCBleHRlbmRzIEJhc2VJdGVtQ29tcG9uZW50PENoaXBzSXRlbT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyB2YWx1ZTogYW55O1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtLnZhbHVlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY29tcGFyZUZuID0gKG1vZGVsVmFsdWUsIGNoaXBWYWx1ZSkgPT4ge1xuICAgIHJldHVybiBTdHJpbmcobW9kZWxWYWx1ZS52YWx1ZSkgPT09IFN0cmluZyhjaGlwVmFsdWUudmFsdWUpO1xuICB9O1xufVxuIiwiQGlmICgoaXRlbS52YWx1ZXMkIHwgYXN5bmMpPy5sZW5ndGgpIHtcbiAgPGZzLWxhYmVsLWZpZWxkPlxuICAgIDxmcy1sYWJlbD5cbiAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICA8L2ZzLWxhYmVsPlxuICAgIDxmcy1jaGlwc1xuICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgW2NvbXBhcmVdPVwiY29tcGFyZUZuXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaXRlbS52YWx1ZSA9IHZhbHVlXCJcbiAgICAgICAgW211bHRpcGxlXT1cIml0ZW0ubXVsdGlwbGVcIj5cbiAgICAgIEBmb3IgKHZhbHVlIG9mIGl0ZW0udmFsdWVzOyB0cmFjayB2YWx1ZSkge1xuICAgICAgICA8ZnMtY2hpcFxuICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtzZWxlY3RhYmxlXT1cInRydWVcIj5cbiAgICAgICAgICB7eyB2YWx1ZS5uYW1lIH19XG4gICAgICAgIDwvZnMtY2hpcD5cbiAgICAgIH1cbiAgICA8L2ZzLWNoaXBzPlxuICA8L2ZzLWxhYmVsLWZpZWxkPlxufSJdfQ==
|
|
@@ -1,39 +1,43 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
|
2
|
-
import {
|
|
3
|
-
import { ItemType } from '../../../enums/item-type.enum';
|
|
4
|
-
import { PickerViewType } from '../../../enums/picker-view-type.enum';
|
|
5
|
-
import { BaseItemComponent } from '../base-item/base-item.component';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, inject, } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
6
3
|
import { MatFormField, MatLabel } from '@angular/material/form-field';
|
|
7
4
|
import { MatInput } from '@angular/material/input';
|
|
8
|
-
import { FormsModule } from '@angular/forms';
|
|
9
5
|
import { FsDatePickerModule } from '@firestitch/datepicker';
|
|
10
|
-
import { FocusToItemDirective } from '../../../directives/focus-to-item/focus-to-item.directive';
|
|
11
6
|
import { FsFormModule } from '@firestitch/form';
|
|
7
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
|
+
import { FocusToItemDirective } from '../../../directives/focus-to-item/focus-to-item.directive';
|
|
9
|
+
import { ItemDateMode } from '../../../enums/item-date-mode.enum';
|
|
10
|
+
import { ItemType } from '../../../enums/item-type.enum';
|
|
11
|
+
import { PickerViewType } from '../../../enums/picker-view-type.enum';
|
|
12
|
+
import { BaseItemComponent } from '../base-item/base-item.component';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "@angular/forms";
|
|
14
15
|
import * as i2 from "@firestitch/datepicker";
|
|
15
16
|
import * as i3 from "@firestitch/form";
|
|
16
17
|
export class DateComponent extends BaseItemComponent {
|
|
17
|
-
_kvDiffers;
|
|
18
|
-
_cd;
|
|
19
18
|
viewType = PickerViewType.Date;
|
|
20
19
|
itemDateMode = ItemDateMode;
|
|
21
20
|
showYear = true;
|
|
22
21
|
showMonth = true;
|
|
23
22
|
showDay = true;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this._cd = _cd;
|
|
28
|
-
}
|
|
23
|
+
value;
|
|
24
|
+
_destroyRef = inject(DestroyRef);
|
|
25
|
+
_cdRef = inject(ChangeDetectorRef);
|
|
29
26
|
ngOnInit() {
|
|
30
|
-
this.viewType = this.item.type === ItemType.DateTime ?
|
|
27
|
+
this.viewType = this.item.type === ItemType.DateTime ?
|
|
28
|
+
PickerViewType.DateTime : PickerViewType.Date;
|
|
31
29
|
if (this.item.mode === ItemDateMode.ScrollMonthYear) {
|
|
32
30
|
this.showDay = false;
|
|
33
31
|
}
|
|
32
|
+
this.item.value$
|
|
33
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
34
|
+
.subscribe((value) => {
|
|
35
|
+
this.value = value;
|
|
36
|
+
this._cdRef.detectChanges();
|
|
37
|
+
});
|
|
34
38
|
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateComponent, deps:
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DateComponent, isStandalone: true, selector: "filter-item-date", usesInheritance: true, ngImport: i0, template: "@if (item.mode === itemDateMode.ScrollMonthDayYear || item.mode === itemDateMode.ScrollMonthYear) {\n <mat-form-field>\n <mat-label>\n {{ item.label }}\n </mat-label>\n <input\n matInput\n fsDateScrollPicker\n [placeholder]=\"item.label\"\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DateComponent, isStandalone: true, selector: "filter-item-date", usesInheritance: true, ngImport: i0, template: "@if (item.mode === itemDateMode.ScrollMonthDayYear || item.mode === itemDateMode.ScrollMonthYear) {\n <mat-form-field>\n <mat-label>\n {{ item.label }}\n </mat-label>\n <input\n matInput\n fsDateScrollPicker\n [placeholder]=\"item.label\"\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"item.value = value\"\n [maxYear]=\"item.maxYear\"\n [showMonth]=\"showMonth\"\n [showDay]=\"showDay\"\n [showYear]=\"showYear\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n </mat-form-field>\n} @else if (item.mode === itemDateMode.Calendar) {\n <mat-form-field>\n <mat-label>\n {{ item.label }}\n </mat-label>\n <input\n matInput\n fsDatePicker\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"item.value = value\"\n [maxYear]=\"item.maxYear\"\n [view]=\"viewType\"\n [placeholder]=\"item.label\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n </mat-form-field>\n}", dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsDatePickerModule }, { kind: "component", type: i2.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes"], outputs: ["change"] }, { kind: "component", type: i2.FsDateScrollPickerComponent, selector: "[fsDateScrollPicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "showMonth", "showYear", "showDay"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
37
41
|
}
|
|
38
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateComponent, decorators: [{
|
|
39
43
|
type: Component,
|
|
@@ -45,6 +49,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
45
49
|
FsDatePickerModule,
|
|
46
50
|
FocusToItemDirective,
|
|
47
51
|
FsFormModule,
|
|
48
|
-
], template: "@if (item.mode === itemDateMode.ScrollMonthDayYear || item.mode === itemDateMode.ScrollMonthYear) {\n <mat-form-field>\n <mat-label>\n {{ item.label }}\n </mat-label>\n <input\n matInput\n fsDateScrollPicker\n [placeholder]=\"item.label\"\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.
|
|
49
|
-
}]
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
], template: "@if (item.mode === itemDateMode.ScrollMonthDayYear || item.mode === itemDateMode.ScrollMonthYear) {\n <mat-form-field>\n <mat-label>\n {{ item.label }}\n </mat-label>\n <input\n matInput\n fsDateScrollPicker\n [placeholder]=\"item.label\"\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"item.value = value\"\n [maxYear]=\"item.maxYear\"\n [showMonth]=\"showMonth\"\n [showDay]=\"showDay\"\n [showYear]=\"showYear\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n </mat-form-field>\n} @else if (item.mode === itemDateMode.Calendar) {\n <mat-form-field>\n <mat-label>\n {{ item.label }}\n </mat-label>\n <input\n matInput\n fsDatePicker\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"item.value = value\"\n [maxYear]=\"item.maxYear\"\n [view]=\"viewType\"\n [placeholder]=\"item.label\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n </mat-form-field>\n}" }]
|
|
53
|
+
}] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL2RhdGUvZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL2RhdGUvZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7OztBQWtCckUsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBMEM7SUFFcEUsUUFBUSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFFL0IsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUM1QixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakIsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNmLEtBQUssQ0FBTTtJQUVWLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXBDLFFBQVE7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwRCxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBRWhELElBQUssSUFBSSxDQUFDLElBQXFCLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO2FBQ2IsSUFBSSxDQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDckM7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3R0E3QlUsYUFBYTs0RkFBYixhQUFhLG1HQzNDMUIsZ2pDQW9DQyw0Q0RGRyxZQUFZLDRMQUNaLFFBQVEsc0RBQ1IsUUFBUSxnVUFDUixXQUFXLDhtQkFDWCxrQkFBa0IsaWFBQ2xCLG9CQUFvQix1SEFDcEIsWUFBWTs7NEZBR0gsYUFBYTtrQkFmekIsU0FBUzsrQkFDRSxrQkFBa0IsbUJBRVgsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsWUFBWTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBpbmplY3QsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5cbmltcG9ydCB7IEZzRGF0ZVBpY2tlck1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRnNGb3JtTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZm9ybSc7XG5cbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHsgRm9jdXNUb0l0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2ZvY3VzLXRvLWl0ZW0vZm9jdXMtdG8taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSXRlbURhdGVNb2RlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvaXRlbS1kYXRlLW1vZGUuZW51bSc7XG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2l0ZW0tdHlwZS5lbnVtJztcbmltcG9ydCB7IFBpY2tlclZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvcGlja2VyLXZpZXctdHlwZS5lbnVtJztcbmltcG9ydCB0eXBlIHsgQmFzZURhdGVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2l0ZW1zL2Jhc2UtZGF0ZS1pdGVtJztcbmltcG9ydCB0eXBlIHsgRGF0ZUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaXRlbXMvZGF0ZS1pdGVtJztcbmltcG9ydCB0eXBlIHsgRGF0ZVRpbWVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2l0ZW1zL2RhdGUtdGltZS1pdGVtJztcbmltcG9ydCB7IEJhc2VJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1pdGVtL2Jhc2UtaXRlbS5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpbHRlci1pdGVtLWRhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Rm9ybUZpZWxkLFxuICAgIE1hdExhYmVsLFxuICAgIE1hdElucHV0LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEZzRGF0ZVBpY2tlck1vZHVsZSxcbiAgICBGb2N1c1RvSXRlbURpcmVjdGl2ZSxcbiAgICBGc0Zvcm1Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlSXRlbUNvbXBvbmVudDxEYXRlSXRlbSB8IERhdGVUaW1lSXRlbT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyB2aWV3VHlwZSA9IFBpY2tlclZpZXdUeXBlLkRhdGU7XG5cbiAgcHVibGljIGl0ZW1EYXRlTW9kZSA9IEl0ZW1EYXRlTW9kZTtcbiAgcHVibGljIHNob3dZZWFyID0gdHJ1ZTtcbiAgcHVibGljIHNob3dNb250aCA9IHRydWU7XG4gIHB1YmxpYyBzaG93RGF5ID0gdHJ1ZTtcbiAgcHVibGljIHZhbHVlOiBhbnk7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSBfY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZpZXdUeXBlID0gdGhpcy5pdGVtLnR5cGUgPT09IEl0ZW1UeXBlLkRhdGVUaW1lID8gXG4gICAgICBQaWNrZXJWaWV3VHlwZS5EYXRlVGltZSA6IFBpY2tlclZpZXdUeXBlLkRhdGU7XG5cbiAgICBpZiAoKHRoaXMuaXRlbSBhcyBCYXNlRGF0ZUl0ZW0pLm1vZGUgPT09IEl0ZW1EYXRlTW9kZS5TY3JvbGxNb250aFllYXIpIHtcbiAgICAgIHRoaXMuc2hvd0RheSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbS52YWx1ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2NkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKGl0ZW0ubW9kZSA9PT0gaXRlbURhdGVNb2RlLlNjcm9sbE1vbnRoRGF5WWVhciB8fCBpdGVtLm1vZGUgPT09IGl0ZW1EYXRlTW9kZS5TY3JvbGxNb250aFllYXIpIHtcbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+XG4gICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgZnNEYXRlU2Nyb2xsUGlja2VyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiaXRlbS5sYWJlbFwiXG4gICAgICBbZnNGaWx0ZXJGb2N1c1RyaWdnZXJdPVwiaXRlbVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIml0ZW0udmFsdWUgPSB2YWx1ZVwiXG4gICAgICBbbWF4WWVhcl09XCJpdGVtLm1heFllYXJcIlxuICAgICAgW3Nob3dNb250aF09XCJzaG93TW9udGhcIlxuICAgICAgW3Nob3dEYXldPVwic2hvd0RheVwiXG4gICAgICBbc2hvd1llYXJdPVwic2hvd1llYXJcIlxuICAgICAgW2NsZWFyXT1cIml0ZW0uc2hvd0NsZWFyXCJcbiAgICAgIFtuYW1lXT1cIml0ZW0ubmFtZVwiPlxuICA8L21hdC1mb3JtLWZpZWxkPlxufSBAZWxzZSBpZiAoaXRlbS5tb2RlID09PSBpdGVtRGF0ZU1vZGUuQ2FsZW5kYXIpIHtcbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+XG4gICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgZnNEYXRlUGlja2VyXG4gICAgICBbZnNGaWx0ZXJGb2N1c1RyaWdnZXJdPVwiaXRlbVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIml0ZW0udmFsdWUgPSB2YWx1ZVwiXG4gICAgICBbbWF4WWVhcl09XCJpdGVtLm1heFllYXJcIlxuICAgICAgW3ZpZXddPVwidmlld1R5cGVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgW2NsZWFyXT1cIml0ZW0uc2hvd0NsZWFyXCJcbiAgICAgIFtuYW1lXT1cIml0ZW0ubmFtZVwiPlxuICA8L21hdC1mb3JtLWZpZWxkPlxufSJdfQ==
|