@firestitch/filter 18.2.13 → 18.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/app/components/filter/filter.component.d.ts +2 -5
  2. package/app/components/filter-chips/filter-chips.component.d.ts +1 -0
  3. package/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.d.ts +1 -1
  4. package/app/fs-filter.module.d.ts +8 -10
  5. package/app/helpers/create-filter-item.d.ts +1 -1
  6. package/app/models/items/base-item.d.ts +5 -2
  7. package/app/services/focus-controller.service.d.ts +0 -1
  8. package/esm2022/app/components/filter/filter.component.mjs +5 -14
  9. package/esm2022/app/components/filter-chips/filter-chips.component.mjs +7 -7
  10. package/esm2022/app/components/saved-filter/saved-filter-manage/components/saved-filter-chips/saved-filter-chips.component.mjs +9 -7
  11. package/esm2022/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.mjs +3 -3
  12. package/esm2022/app/fs-filter.module.mjs +1 -8
  13. package/esm2022/app/models/items/base-item.mjs +21 -12
  14. package/esm2022/app/services/filter-controller.service.mjs +2 -2
  15. package/esm2022/app/services/focus-controller.service.mjs +2 -3
  16. package/fesm2022/firestitch-filter.mjs +64 -209
  17. package/fesm2022/firestitch-filter.mjs.map +1 -1
  18. package/package.json +1 -1
  19. package/app/components/filter-chip/filter-chip.component.d.ts +0 -37
  20. package/app/components/filter-chip-content/filter-chip-content.component.d.ts +0 -18
  21. package/esm2022/app/components/filter-chip/filter-chip.component.mjs +0 -84
  22. package/esm2022/app/components/filter-chip-content/filter-chip-content.component.mjs +0 -71
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestitch/filter",
3
- "version": "18.2.13",
3
+ "version": "18.2.14",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Firestitch/ngx-filter"
@@ -1,37 +0,0 @@
1
- import { OnDestroy, OnInit } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { IFilterConfigItem } from '../../interfaces/config.interface';
4
- import { BaseItem } from '../../models/items/base-item';
5
- import * as i0 from "@angular/core";
6
- export declare class FsFilterChipComponent implements OnInit, OnDestroy {
7
- item: BaseItem<IFilterConfigItem>;
8
- removable: boolean;
9
- chips: {
10
- name?: string;
11
- value: string;
12
- label: string;
13
- }[];
14
- clickable: boolean;
15
- rangeItem: boolean;
16
- chipDelayedRender$: Observable<boolean>;
17
- private _chipRenderTimer$;
18
- private _destroy$;
19
- private _cdRef;
20
- private _focusController;
21
- ngOnInit(): void;
22
- ngOnDestroy(): void;
23
- click(chip: {
24
- name?: string;
25
- value: string;
26
- label: string;
27
- }): void;
28
- remove(chip: {
29
- name?: string;
30
- value: string;
31
- label: string;
32
- }): void;
33
- listenValueChangesForRanges(): void;
34
- private _initDelayRender;
35
- static ɵfac: i0.ɵɵFactoryDeclaration<FsFilterChipComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<FsFilterChipComponent, "fs-filter-chip", never, { "item": { "alias": "item"; "required": false; }; "removable": { "alias": "removable"; "required": false; }; "chips": { "alias": "chips"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; }, {}, never, never, true, never>;
37
- }
@@ -1,18 +0,0 @@
1
- import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
- import { IFilterConfigItem } from '../../interfaces/config.interface';
3
- import { BaseItem } from '../../models/items/base-item';
4
- import * as i0 from "@angular/core";
5
- export declare class FsFilterChipContentComponent implements OnInit, OnDestroy {
6
- private _cdRef;
7
- item: BaseItem<IFilterConfigItem>;
8
- type: 'from' | 'to';
9
- content: any;
10
- private _destroy$;
11
- constructor(_cdRef: ChangeDetectorRef);
12
- ngOnInit(): void;
13
- ngOnDestroy(): void;
14
- listenValueChangesForRanges(): void;
15
- private _getContent;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<FsFilterChipContentComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<FsFilterChipContentComponent, "fs-filter-chip-content", never, { "item": { "alias": "item"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
18
- }
@@ -1,84 +0,0 @@
1
- import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, inject, Input, } from '@angular/core';
3
- import { FsChipModule } from '@firestitch/chip';
4
- import { combineLatest, Subject, timer } from 'rxjs';
5
- import { map, mapTo, startWith } from 'rxjs/operators';
6
- import { BaseItem } from '../../models/items/base-item';
7
- import { FocusControllerService } from '../../services/focus-controller.service';
8
- import { FsFilterChipContentComponent } from '../filter-chip-content/filter-chip-content.component';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@firestitch/chip";
11
- export class FsFilterChipComponent {
12
- item;
13
- removable = false;
14
- chips;
15
- clickable = false;
16
- rangeItem;
17
- chipDelayedRender$;
18
- _chipRenderTimer$ = timer(500)
19
- .pipe(mapTo(true));
20
- _destroy$ = new Subject();
21
- _cdRef = inject(ChangeDetectorRef);
22
- _focusController = inject(FocusControllerService);
23
- ngOnInit() {
24
- // this.rangeItem = this.item.isTypeDateRange
25
- // || this.item.isTypeRange
26
- // || this.item.isTypeDateTimeRange;
27
- // this.listenValueChangesForRanges();
28
- // this._initDelayRender();
29
- // }
30
- }
31
- ngOnDestroy() {
32
- this._destroy$.next(null);
33
- this._destroy$.complete();
34
- }
35
- click(chip) {
36
- if (this.clickable) {
37
- this._focusController.click(this.item, chip.name);
38
- }
39
- }
40
- remove(chip) {
41
- this.item.clear(chip.name);
42
- }
43
- listenValueChangesForRanges() {
44
- // this.item.valueChange$
45
- // .pipe(
46
- // takeUntil(this._destroy$),
47
- // )
48
- // .subscribe(() => {
49
- // this._cdRef.markForCheck();
50
- // });
51
- }
52
- _initDelayRender() {
53
- this.chipDelayedRender$ = combineLatest([
54
- this.item.values$,
55
- this._chipRenderTimer$.pipe(startWith(false)),
56
- ])
57
- .pipe(map(([values, timerValue]) => {
58
- return !!values || timerValue;
59
- }));
60
- }
61
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FsFilterChipComponent, isStandalone: true, selector: "fs-filter-chip", inputs: { item: "item", removable: "removable", chips: "chips", clickable: "clickable" }, host: { properties: { "class.clickable": "this.clickable" } }, ngImport: i0, template: "@for (chip of chips; track chip) {\n <fs-chip\n [selectable]=\"false\"\n [removable]=\"item.showClear && removable\"\n size=\"small\"\n (click)=\"click(chip)\"\n (removed)=\"remove(chip)\">\n {{ chip.label }}: {{ chip.value }}\n </fs-chip>\n}\n<!-- {{ item.name }}\n@if ((chipDelayedRender$ | async)) {\n @if (rangeItem) {\n @if (item.value?.min || item.value?.from) {\n <fs-chip\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear\"\n size=\"small\"\n [removable]=\"removable\"\n (click)=\"click('from')\"\n (removed)=\"removeItem($event, 'from')\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item, type: 'from' }\">\n </ng-template>\n </fs-chip>\n }\n @if (item.value?.max || item.value?.to) {\n <fs-chip\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear && removable\"\n size=\"small\"\n (click)=\"click('to')\"\n (removed)=\"removeItem($event, 'to')\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item, type: 'to' }\">\n </ng-template>\n </fs-chip>\n }\n } @else {\n <fs-chip\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear && removable\"\n size=\"small\"\n (click)=\"click()\"\n (removed)=\"removeItem($event)\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n </fs-chip>\n }\n <ng-template\n #chipContent\n let-item=\"item\"\n let-type=\"type\">\n @if (!item.hasPendingValues && !item.loading) {\n <fs-filter-chip-content\n [item]=\"item\"\n [type]=\"type\">\n </fs-filter-chip-content>\n } @else {\n Loading...\n }\n </ng-template>\n} -->", styles: [":host{display:flex;flex-wrap:wrap;gap:5px;max-width:100%}:host.clickable fs-chip{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: FsChipModule }, { kind: "component", type: i1.FsChipComponent, selector: "fs-chip", inputs: ["selectable", "removable", "value", "maxWidth", "width", "backgroundColor", "borderColor", "color", "shape", "outlined", "icon", "image", "selected", "padding", "contrastColor", "size"], outputs: ["selectedToggled", "removed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
- }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterChipComponent, decorators: [{
65
- type: Component,
66
- args: [{ selector: 'fs-filter-chip', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
67
- FsChipModule,
68
- NgTemplateOutlet,
69
- FsFilterChipContentComponent,
70
- AsyncPipe,
71
- ], template: "@for (chip of chips; track chip) {\n <fs-chip\n [selectable]=\"false\"\n [removable]=\"item.showClear && removable\"\n size=\"small\"\n (click)=\"click(chip)\"\n (removed)=\"remove(chip)\">\n {{ chip.label }}: {{ chip.value }}\n </fs-chip>\n}\n<!-- {{ item.name }}\n@if ((chipDelayedRender$ | async)) {\n @if (rangeItem) {\n @if (item.value?.min || item.value?.from) {\n <fs-chip\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear\"\n size=\"small\"\n [removable]=\"removable\"\n (click)=\"click('from')\"\n (removed)=\"removeItem($event, 'from')\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item, type: 'from' }\">\n </ng-template>\n </fs-chip>\n }\n @if (item.value?.max || item.value?.to) {\n <fs-chip\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear && removable\"\n size=\"small\"\n (click)=\"click('to')\"\n (removed)=\"removeItem($event, 'to')\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item, type: 'to' }\">\n </ng-template>\n </fs-chip>\n }\n } @else {\n <fs-chip\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear && removable\"\n size=\"small\"\n (click)=\"click()\"\n (removed)=\"removeItem($event)\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-template>\n </fs-chip>\n }\n <ng-template\n #chipContent\n let-item=\"item\"\n let-type=\"type\">\n @if (!item.hasPendingValues && !item.loading) {\n <fs-filter-chip-content\n [item]=\"item\"\n [type]=\"type\">\n </fs-filter-chip-content>\n } @else {\n Loading...\n }\n </ng-template>\n} -->", styles: [":host{display:flex;flex-wrap:wrap;gap:5px;max-width:100%}:host.clickable fs-chip{cursor:pointer}\n"] }]
72
- }], propDecorators: { item: [{
73
- type: Input
74
- }], removable: [{
75
- type: Input
76
- }], chips: [{
77
- type: Input
78
- }], clickable: [{
79
- type: Input
80
- }, {
81
- type: HostBinding,
82
- args: ['class.clickable']
83
- }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlci1jaGlwL2ZpbHRlci1jaGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXItY2hpcC9maWx0ZXItY2hpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0RBQXNELENBQUM7OztBQWdCcEcsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQixJQUFJLENBQThCO0lBRWxDLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFM0IsS0FBSyxDQUFvRDtJQUlsRSxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTNCLFNBQVMsQ0FBVTtJQUVuQixrQkFBa0IsQ0FBc0I7SUFFdkMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNuQyxJQUFJLENBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUNaLENBQUM7SUFFSSxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQixNQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbkMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFbkQsUUFBUTtRQUNiLDZDQUE2QztRQUM3Qyw2QkFBNkI7UUFDN0Isc0NBQXNDO1FBRXRDLHNDQUFzQztRQUN0Qyw2QkFBNkI7UUFDN0IsSUFBSTtJQUNOLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFxRDtRQUNoRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQXFEO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sMkJBQTJCO1FBQ2hDLHlCQUF5QjtRQUN6QixXQUFXO1FBQ1gsaUNBQWlDO1FBQ2pDLE1BQU07UUFDTix1QkFBdUI7UUFDdkIsa0NBQWtDO1FBQ2xDLFFBQVE7SUFDVixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxhQUFhLENBQUM7WUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ2pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlDLENBQUM7YUFDQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUMzQixPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO3dHQXRFVSxxQkFBcUI7NEZBQXJCLHFCQUFxQixtT0NsQ2xDLDJnRUFxRUssMkpEekNELFlBQVk7OzRGQU1ILHFCQUFxQjtrQkFiakMsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIsU0FBUztxQkFDVjs4QkFJZSxJQUFJO3NCQUFuQixLQUFLO2dCQUVVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBRVUsS0FBSztzQkFBcEIsS0FBSztnQkFJQyxTQUFTO3NCQUZmLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBJbnB1dCwgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGc0NoaXBNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9jaGlwJztcblxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgbWFwVG8sIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0l0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtJztcbmltcG9ydCB7IEZvY3VzQ29udHJvbGxlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb2N1cy1jb250cm9sbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRnNGaWx0ZXJDaGlwQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci1jaGlwLWNvbnRlbnQvZmlsdGVyLWNoaXAtY29udGVudC5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbHRlci1jaGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLWNoaXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGc0NoaXBNb2R1bGUsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBGc0ZpbHRlckNoaXBDb250ZW50Q29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNGaWx0ZXJDaGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpdGVtOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT47XG5cbiAgQElucHV0KCkgcHVibGljIHJlbW92YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGlwczogeyBuYW1lPzogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBsYWJlbDogc3RyaW5nIH1bXTtcblxuICBASW5wdXQoKSBcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jbGlja2FibGUnKSBcbiAgcHVibGljIGNsaWNrYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyByYW5nZUl0ZW06IGJvb2xlYW47XG5cbiAgcHVibGljIGNoaXBEZWxheWVkUmVuZGVyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIF9jaGlwUmVuZGVyVGltZXIkID0gdGltZXIoNTAwKVxuICAgIC5waXBlKFxuICAgICAgbWFwVG8odHJ1ZSksXG4gICAgKTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfZm9jdXNDb250cm9sbGVyID0gaW5qZWN0KEZvY3VzQ29udHJvbGxlclNlcnZpY2UpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAvLyB0aGlzLnJhbmdlSXRlbSA9IHRoaXMuaXRlbS5pc1R5cGVEYXRlUmFuZ2VcbiAgICAvLyAgIHx8IHRoaXMuaXRlbS5pc1R5cGVSYW5nZVxuICAgIC8vICAgfHwgdGhpcy5pdGVtLmlzVHlwZURhdGVUaW1lUmFuZ2U7XG5cbiAgICAvLyB0aGlzLmxpc3RlblZhbHVlQ2hhbmdlc0ZvclJhbmdlcygpO1xuICAgIC8vICAgdGhpcy5faW5pdERlbGF5UmVuZGVyKCk7XG4gICAgLy8gfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGljayhjaGlwOiB7IG5hbWU/OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcgfSkge1xuICAgIGlmICh0aGlzLmNsaWNrYWJsZSkge1xuICAgICAgdGhpcy5fZm9jdXNDb250cm9sbGVyLmNsaWNrKHRoaXMuaXRlbSwgY2hpcC5uYW1lKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlKGNoaXA6IHsgbmFtZT86IHN0cmluZywgdmFsdWU6IHN0cmluZywgbGFiZWw6IHN0cmluZyB9KSB7XG4gICAgdGhpcy5pdGVtLmNsZWFyKGNoaXAubmFtZSk7XG4gIH1cblxuICBwdWJsaWMgbGlzdGVuVmFsdWVDaGFuZ2VzRm9yUmFuZ2VzKCkge1xuICAgIC8vIHRoaXMuaXRlbS52YWx1ZUNoYW5nZSRcbiAgICAvLyAgIC5waXBlKFxuICAgIC8vICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgIC8vICAgKVxuICAgIC8vICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgLy8gICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIC8vICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0RGVsYXlSZW5kZXIoKSB7XG4gICAgdGhpcy5jaGlwRGVsYXllZFJlbmRlciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuaXRlbS52YWx1ZXMkLFxuICAgICAgdGhpcy5fY2hpcFJlbmRlclRpbWVyJC5waXBlKHN0YXJ0V2l0aChmYWxzZSkpLFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbdmFsdWVzLCB0aW1lclZhbHVlXSkgPT4ge1xuICAgICAgICAgIHJldHVybiAhIXZhbHVlcyB8fCB0aW1lclZhbHVlO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbn1cbiIsIkBmb3IgKGNoaXAgb2YgY2hpcHM7IHRyYWNrIGNoaXApIHtcbiAgPGZzLWNoaXBcbiAgICAgIFtzZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICAgIFtyZW1vdmFibGVdPVwiaXRlbS5zaG93Q2xlYXIgJiYgcmVtb3ZhYmxlXCJcbiAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAoY2xpY2spPVwiY2xpY2soY2hpcClcIlxuICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlKGNoaXApXCI+XG4gICAge3sgY2hpcC5sYWJlbCB9fToge3sgY2hpcC52YWx1ZSB9fVxuICA8L2ZzLWNoaXA+XG59XG48IS0tIHt7IGl0ZW0ubmFtZSB9fVxuQGlmICgoY2hpcERlbGF5ZWRSZW5kZXIkIHwgYXN5bmMpKSB7XG4gIEBpZiAocmFuZ2VJdGVtKSB7XG4gICAgQGlmIChpdGVtLnZhbHVlPy5taW4gfHwgaXRlbS52YWx1ZT8uZnJvbSkge1xuICAgICAgPGZzLWNoaXBcbiAgICAgICAgICBbdmFsdWVdPVwiaXRlbVwiXG4gICAgICAgICAgW3NlbGVjdGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgIFtyZW1vdmFibGVdPVwiaXRlbS5zaG93Q2xlYXJcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3JlbW92YWJsZV09XCJyZW1vdmFibGVcIlxuICAgICAgICAgIChjbGljayk9XCJjbGljaygnZnJvbScpXCJcbiAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVJdGVtKCRldmVudCwgJ2Zyb20nKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlwQ29udGVudFwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbSwgdHlwZTogJ2Zyb20nIH1cIj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZnMtY2hpcD5cbiAgICB9XG4gICAgQGlmIChpdGVtLnZhbHVlPy5tYXggfHwgaXRlbS52YWx1ZT8udG8pIHtcbiAgICAgIDxmcy1jaGlwXG4gICAgICAgICAgW3ZhbHVlXT1cIml0ZW1cIlxuICAgICAgICAgIFtzZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICBbcmVtb3ZhYmxlXT1cIml0ZW0uc2hvd0NsZWFyICYmIHJlbW92YWJsZVwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xpY2soJ3RvJylcIlxuICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZUl0ZW0oJGV2ZW50LCAndG8nKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlwQ29udGVudFwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbSwgdHlwZTogJ3RvJyB9XCI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2ZzLWNoaXA+XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICA8ZnMtY2hpcFxuICAgICAgICBbdmFsdWVdPVwiaXRlbVwiXG4gICAgICAgIFtzZWxlY3RhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW3JlbW92YWJsZV09XCJpdGVtLnNob3dDbGVhciAmJiByZW1vdmFibGVcIlxuICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAoY2xpY2spPVwiY2xpY2soKVwiXG4gICAgICAgIChyZW1vdmVkKT1cInJlbW92ZUl0ZW0oJGV2ZW50KVwiPlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoaXBDb250ZW50XCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgaXRlbTogaXRlbSB9XCI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZnMtY2hpcD5cbiAgfVxuICA8bmctdGVtcGxhdGVcbiAgICAgICNjaGlwQ29udGVudFxuICAgICAgbGV0LWl0ZW09XCJpdGVtXCJcbiAgICAgIGxldC10eXBlPVwidHlwZVwiPlxuICAgIEBpZiAoIWl0ZW0uaGFzUGVuZGluZ1ZhbHVlcyAmJiAhaXRlbS5sb2FkaW5nKSB7XG4gICAgICA8ZnMtZmlsdGVyLWNoaXAtY29udGVudFxuICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgW3R5cGVdPVwidHlwZVwiPlxuICAgICAgPC9mcy1maWx0ZXItY2hpcC1jb250ZW50PlxuICAgIH0gQGVsc2Uge1xuICAgICAgTG9hZGluZy4uLlxuICAgIH1cbiAgPC9uZy10ZW1wbGF0ZT5cbn0gLS0+Il19
@@ -1,71 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { takeUntil } from 'rxjs/operators';
4
- import { BaseItem } from '../../models/items/base-item';
5
- import * as i0 from "@angular/core";
6
- export class FsFilterChipContentComponent {
7
- _cdRef;
8
- item;
9
- type;
10
- content;
11
- _destroy$ = new Subject();
12
- constructor(_cdRef) {
13
- this._cdRef = _cdRef;
14
- }
15
- ngOnInit() {
16
- this.listenValueChangesForRanges();
17
- }
18
- ngOnDestroy() {
19
- this._destroy$.next(null);
20
- this._destroy$.complete();
21
- }
22
- listenValueChangesForRanges() {
23
- this.item.value$
24
- .pipe(takeUntil(this._destroy$))
25
- .subscribe(() => {
26
- this.content = this._getContent();
27
- this._cdRef.detectChanges();
28
- });
29
- }
30
- _getContent() {
31
- const result = this.item.chips;
32
- if (this.item.chipLabel !== undefined) {
33
- if (this.item.chipLabel === '') {
34
- return `${result}`;
35
- }
36
- if (Array.isArray(this.item.chipLabel)) {
37
- const label = getLabelFromArray(this.item.chipLabel, this.type);
38
- return `${label}: ${result}`;
39
- }
40
- return `${this.item.chipLabel}: ${result}`;
41
- }
42
- if (Array.isArray(this.item.label)) {
43
- const label = getLabelFromArray(this.item.label, this.type);
44
- return `${label}: ${result}`;
45
- }
46
- if (this.item.isTypeCheckbox) {
47
- return result;
48
- }
49
- return `${this.item.label}: ${result}`;
50
- }
51
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterChipContentComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
52
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FsFilterChipContentComponent, isStandalone: true, selector: "fs-filter-chip-content", inputs: { item: "item", type: "type" }, ngImport: i0, template: "{{ content }}\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
- }
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterChipContentComponent, decorators: [{
55
- type: Component,
56
- args: [{ selector: 'fs-filter-chip-content', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "{{ content }}\n" }]
57
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { item: [{
58
- type: Input
59
- }], type: [{
60
- type: Input
61
- }] } });
62
- function getLabelFromArray(labelArr, type) {
63
- if (type === 'from' && labelArr[0]) {
64
- return `${labelArr[0]}`;
65
- }
66
- else if (type === 'to' && labelArr[1]) {
67
- return `${labelArr[1]}`;
68
- }
69
- return '';
70
- }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNoaXAtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVyLWNoaXAtY29udGVudC9maWx0ZXItY2hpcC1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXItY2hpcC1jb250ZW50L2ZpbHRlci1jaGlwLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBVXhELE1BQU0sT0FBTyw0QkFBNEI7SUFTbkI7SUFQSixJQUFJLENBQThCO0lBQ2xDLElBQUksQ0FBZ0I7SUFFN0IsT0FBTyxDQUFDO0lBRVAsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFbEMsWUFBb0IsTUFBeUI7UUFBekIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7SUFDN0MsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSwyQkFBMkI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO2FBQ2IsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNyQixDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUVoRSxPQUFPLEdBQUcsS0FBSyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFFRCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFLENBQUM7UUFHN0MsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTVELE9BQU8sR0FBRyxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUM3QixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLE1BQU0sRUFBRSxDQUFDO0lBR3pDLENBQUM7d0dBN0RVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLDBIQ3ZCekMsaUJBQ0E7OzRGRHNCYSw0QkFBNEI7a0JBUHhDLFNBQVM7K0JBQ0Usd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUk7c0ZBSUEsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLOztBQTZEUixTQUFTLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxJQUFJO0lBQ3ZDLElBQUksSUFBSSxLQUFLLE1BQU0sSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUIsQ0FBQztTQUFNLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU8sRUFBRSxDQUFDO0FBRVosQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IElGaWx0ZXJDb25maWdJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhc2VJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2l0ZW1zL2Jhc2UtaXRlbSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtZmlsdGVyLWNoaXAtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItY2hpcC1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLWNoaXAtY29udGVudC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRnNGaWx0ZXJDaGlwQ29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBwdWJsaWMgaXRlbTogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+O1xuICBASW5wdXQoKSBwdWJsaWMgdHlwZTogJ2Zyb20nIHwgJ3RvJztcblxuICBwdWJsaWMgY29udGVudDtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0ZW5WYWx1ZUNoYW5nZXNGb3JSYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbGlzdGVuVmFsdWVDaGFuZ2VzRm9yUmFuZ2VzKCkge1xuICAgIHRoaXMuaXRlbS52YWx1ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuX2dldENvbnRlbnQoKTtcbiAgICAgICAgdGhpcy5fY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb250ZW50KCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuaXRlbS5jaGlwcztcblxuICAgIGlmICh0aGlzLml0ZW0uY2hpcExhYmVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLml0ZW0uY2hpcExhYmVsID09PSAnJykge1xuICAgICAgICByZXR1cm4gYCR7cmVzdWx0fWA7XG4gICAgICB9IFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5pdGVtLmNoaXBMYWJlbCkpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBnZXRMYWJlbEZyb21BcnJheSh0aGlzLml0ZW0uY2hpcExhYmVsLCB0aGlzLnR5cGUpO1xuXG4gICAgICAgIHJldHVybiBgJHtsYWJlbH06ICR7cmVzdWx0fWA7XG4gICAgICB9XG4gXG4gICAgICByZXR1cm4gYCR7dGhpcy5pdGVtLmNoaXBMYWJlbH06ICR7cmVzdWx0fWA7XG4gICAgICAgIFxuICAgICAgXG4gICAgfSBcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLml0ZW0ubGFiZWwpKSB7XG4gICAgICBjb25zdCBsYWJlbCA9IGdldExhYmVsRnJvbUFycmF5KHRoaXMuaXRlbS5sYWJlbCwgdGhpcy50eXBlKTtcblxuICAgICAgcmV0dXJuIGAke2xhYmVsfTogJHtyZXN1bHR9YDtcbiAgICB9IFxuICAgIGlmICh0aGlzLml0ZW0uaXNUeXBlQ2hlY2tib3gpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuIFxuICAgIHJldHVybiBgJHt0aGlzLml0ZW0ubGFiZWx9OiAke3Jlc3VsdH1gO1xuICAgICAgXG4gICAgXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TGFiZWxGcm9tQXJyYXkobGFiZWxBcnIsIHR5cGUpIHtcbiAgaWYgKHR5cGUgPT09ICdmcm9tJyAmJiBsYWJlbEFyclswXSkge1xuICAgIHJldHVybiBgJHtsYWJlbEFyclswXX1gO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICd0bycgJiYgbGFiZWxBcnJbMV0pIHtcbiAgICByZXR1cm4gYCR7bGFiZWxBcnJbMV19YDtcbiAgfVxuIFxuICByZXR1cm4gJyc7XG4gIFxufVxuIiwie3sgY29udGVudCB9fVxuIl19