@one-paragon/angular-utilities 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +7 -7
- package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +5 -5
- package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +6 -6
- package/esm2022/action-state/ngrx.mjs +6 -1
- package/esm2022/http-request-state/HttpRequestStateFactory.mjs +6 -7
- package/esm2022/http-request-state/HttpRequestStateStore.mjs +41 -37
- package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +17 -21
- package/esm2022/http-request-state/directives/http-error-state-directive.mjs +12 -18
- package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +12 -18
- package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +12 -18
- package/esm2022/http-request-state/directives/http-success-state-directive.mjs +13 -18
- package/esm2022/http-request-state/directives/request-state-directive.mjs +20 -19
- package/esm2022/http-request-state/http-state-module.mjs +6 -6
- package/esm2022/ngrx/actionable-selector.mjs +12 -14
- package/esm2022/rxjs/subjectifier.mjs +6 -6
- package/esm2022/rxjs/subscriber.directive.mjs +11 -13
- package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +3 -1
- package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +10 -8
- package/esm2022/table-builder/classes/TableState.mjs +13 -15
- package/esm2022/table-builder/classes/table-builder-general-settings.mjs +46 -54
- package/esm2022/table-builder/classes/table-builder.mjs +4 -1
- package/esm2022/table-builder/classes/table-store.mjs +280 -282
- package/esm2022/table-builder/components/array-column.component.mjs +15 -19
- package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +44 -35
- package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +7 -7
- package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +7 -7
- package/esm2022/table-builder/components/filter/filter.component.mjs +24 -24
- package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +19 -18
- package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +15 -15
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +100 -86
- package/esm2022/table-builder/components/generic-table/paginator.component.mjs +20 -18
- package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +5 -7
- package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +24 -21
- package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +14 -13
- package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +11 -4
- package/esm2022/table-builder/components/link-column.component.mjs +19 -23
- package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +8 -8
- package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +26 -28
- package/esm2022/table-builder/components/scroll-strategy.mjs +11 -7
- package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +31 -31
- package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +23 -22
- package/esm2022/table-builder/components/table-container/table-container.mjs +90 -80
- package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +49 -51
- package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +8 -10
- package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +17 -15
- package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +14 -14
- package/esm2022/table-builder/directives/custom-cell-directive.mjs +24 -20
- package/esm2022/table-builder/directives/multi-sort.directive.mjs +10 -10
- package/esm2022/table-builder/directives/resize-column.directive.mjs +13 -14
- package/esm2022/table-builder/directives/table-wrapper.directive.mjs +5 -7
- package/esm2022/table-builder/directives/tb-filter.directive.mjs +105 -110
- package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +124 -124
- package/esm2022/table-builder/pipes/column-total.pipe.mjs +4 -4
- package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +4 -4
- package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +10 -12
- package/esm2022/table-builder/pipes/key-display.mjs +8 -10
- package/esm2022/table-builder/services/export-to-csv.service.mjs +57 -63
- package/esm2022/table-builder/services/table-template-service.mjs +11 -8
- package/esm2022/table-builder/services/transform-creator.mjs +35 -40
- package/esm2022/table-builder/table-builder.module.mjs +7 -7
- package/esm2022/utilities/directives/auto-focus.directive.mjs +8 -10
- package/esm2022/utilities/directives/clickEmitterDirective.mjs +4 -4
- package/esm2022/utilities/directives/clickSubject.mjs +5 -4
- package/esm2022/utilities/directives/conditional-classes.directive.mjs +11 -11
- package/esm2022/utilities/directives/dialog-service.mjs +5 -7
- package/esm2022/utilities/directives/dialog.mjs +38 -39
- package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +7 -8
- package/esm2022/utilities/directives/prevent-enter.directive.mjs +4 -4
- package/esm2022/utilities/directives/stop-propagation.directive.mjs +4 -4
- package/esm2022/utilities/directives/styler.mjs +10 -11
- package/esm2022/utilities/directives/trim-whitespace.directive.mjs +7 -9
- package/esm2022/utilities/module.mjs +7 -7
- package/esm2022/utilities/pipes/function.pipe.mjs +4 -4
- package/esm2022/utilities/pipes/phone.pipe.mjs +4 -4
- package/esm2022/utilities/pipes/space-case.pipes.mjs +4 -4
- package/fesm2022/one-paragon-angular-utilities.mjs +1666 -1678
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
- package/http-request-state/HttpRequestStateStore.d.ts +2 -2
- package/http-request-state/directives/HttpStateDirectiveBase.d.ts +5 -7
- package/http-request-state/directives/http-error-state-directive.d.ts +1 -4
- package/http-request-state/directives/http-inProgress-state-directive.d.ts +3 -6
- package/http-request-state/directives/http-notStarted-state-directive.d.ts +1 -4
- package/http-request-state/directives/http-success-state-directive.d.ts +1 -6
- package/http-request-state/directives/request-state-directive.d.ts +0 -1
- package/package.json +8 -8
- package/rxjs/subjectifier.d.ts +0 -1
- package/table-builder/classes/TableBuilderDataSource.d.ts +0 -1
- package/table-builder/classes/table-store.d.ts +1 -2
- package/table-builder/components/column-builder/column-builder.component.d.ts +2 -6
- package/table-builder/components/filter/filter.component.d.ts +1 -2
- package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +0 -3
- package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +1 -2
- package/table-builder/components/generic-table/generic-table.component.d.ts +4 -4
- package/table-builder/components/generic-table/paginator.component.d.ts +0 -2
- package/table-builder/components/header-menu/header-menu.component.d.ts +1 -2
- package/table-builder/components/in-filter/in-filter.component.d.ts +1 -2
- package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +1 -2
- package/table-builder/components/sort-menu/sort-menu.component.d.ts +2 -3
- package/table-builder/components/table-container/table-container-imports.d.ts +1 -1
- package/table-builder/components/table-container/virtual-scroll-container.d.ts +0 -2
- package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +3 -3
- package/table-builder/directives/custom-cell-directive.d.ts +3 -3
- package/table-builder/directives/multi-sort.directive.d.ts +1 -2
- package/table-builder/directives/resize-column.directive.d.ts +1 -2
- package/table-builder/directives/tb-filter.directive.d.ts +19 -23
- package/table-builder/pipes/format-filter-value.pipe.d.ts +0 -2
- package/table-builder/pipes/key-display.d.ts +0 -1
- package/table-builder/services/export-to-csv.service.d.ts +0 -3
- package/table-builder/services/table-template-service.d.ts +1 -2
- package/table-builder/services/transform-creator.d.ts +0 -5
- package/utilities/directives/auto-focus.directive.d.ts +1 -2
- package/utilities/directives/conditional-classes.directive.d.ts +1 -2
- package/utilities/directives/dialog.d.ts +2 -5
- package/utilities/directives/styler.d.ts +0 -2
- package/utilities/directives/trim-whitespace.directive.d.ts +0 -2
|
@@ -1,56 +1,49 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, effect, forwardRef, untracked, viewChild, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, effect, forwardRef, untracked, viewChild, inject } from '@angular/core';
|
|
2
2
|
import { CdkVirtualScrollViewport, ScrollingModule, VIRTUAL_SCROLL_STRATEGY, } from '@angular/cdk/scrolling';
|
|
3
3
|
import { distinctUntilChanged, map } from 'rxjs';
|
|
4
4
|
import { defaultShareReplay, subscriber } from '../../../rxjs';
|
|
5
|
+
import { TableStore } from '../../classes/table-store';
|
|
5
6
|
import { TableVirtualScrollStrategy } from '../scroll-strategy';
|
|
6
7
|
import { VirtualScrollOptions } from '../../classes/table-builder-general-settings';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "
|
|
9
|
-
import * as i2 from "@angular/cdk/scrolling";
|
|
9
|
+
import * as i1 from "@angular/cdk/scrolling";
|
|
10
10
|
export class VirtualScrollContainer {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
this.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
var offset$ = viewport.scrolledIndexChange.pipe(map(() => viewport.getOffsetToRenderedContentStart() ?? 0), distinctUntilChanged(), defaultShareReplay());
|
|
41
|
-
this.subscriber.on(offset$, (offset) => {
|
|
42
|
-
this.state.updateState({ virtualScrollOffset: offset });
|
|
11
|
+
state = inject(TableStore);
|
|
12
|
+
viewport = viewChild(CdkVirtualScrollViewport);
|
|
13
|
+
defaultOptions = new VirtualScrollOptions();
|
|
14
|
+
scrollStrategy = new TableVirtualScrollStrategy(this.computedRowHeight(), this.computedHeaderHeight());
|
|
15
|
+
dataLength$ = this.state.state$.pipe(map(s => {
|
|
16
|
+
const paginated = s.notPersistedTableSettings.usePaginator && !s.showAll;
|
|
17
|
+
return paginated ? (s.userDefined.pageSize || s.pageSize) : s.dataLen;
|
|
18
|
+
}), distinctUntilChanged());
|
|
19
|
+
subscriber = subscriber(this.dataLength$, (dataLength) => {
|
|
20
|
+
this.scrollStrategy.setDataLength(dataLength);
|
|
21
|
+
if (this.viewport()) {
|
|
22
|
+
this.setSize(this.viewport().elementRef);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
_ = effect(() => {
|
|
26
|
+
const viewport = this.viewport();
|
|
27
|
+
untracked(() => {
|
|
28
|
+
if (!!viewport) {
|
|
29
|
+
addEventListener('resize', this.resizeHandler);
|
|
30
|
+
this.setSize(viewport.elementRef);
|
|
31
|
+
this.subscriber.on(viewport.renderedRangeStream, (range) => {
|
|
32
|
+
this.state.updateState({
|
|
33
|
+
virtualEnds: {
|
|
34
|
+
start: range.start,
|
|
35
|
+
end: range.end + 25,
|
|
36
|
+
}
|
|
43
37
|
});
|
|
44
|
-
}
|
|
45
|
-
;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (this.viewport()) {
|
|
50
|
-
this.setSize(this.viewport().elementRef);
|
|
38
|
+
});
|
|
39
|
+
var offset$ = viewport.scrolledIndexChange.pipe(map(() => viewport.getOffsetToRenderedContentStart() ?? 0), distinctUntilChanged(), defaultShareReplay());
|
|
40
|
+
this.subscriber.on(offset$, (offset) => {
|
|
41
|
+
this.state.updateState({ virtualScrollOffset: offset });
|
|
42
|
+
});
|
|
51
43
|
}
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
;
|
|
45
|
+
});
|
|
46
|
+
});
|
|
54
47
|
ngOnDestroy() {
|
|
55
48
|
removeEventListener('resize', this.resizeHandler);
|
|
56
49
|
}
|
|
@@ -72,6 +65,11 @@ export class VirtualScrollContainer {
|
|
|
72
65
|
const virtualScrollOffset = this.viewport()?.getOffsetToRenderedContentStart() ?? 0;
|
|
73
66
|
this.state.updateState({ virtualScrollOffset });
|
|
74
67
|
}
|
|
68
|
+
resizeHandler = () => {
|
|
69
|
+
if (this.viewport()) {
|
|
70
|
+
this.setSize(this.viewport().elementRef);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
75
73
|
computedRowHeight() {
|
|
76
74
|
const virtualScrollOptions = this.state.tableSettings().useVirtualScroll;
|
|
77
75
|
const rowHeight = virtualScrollOptions?.rowHeight || (typeof this.state.tableSettings().rowHeight === 'number' && this.state.tableSettings().rowHeight) || this.defaultOptions.rowHeight;
|
|
@@ -82,20 +80,20 @@ export class VirtualScrollContainer {
|
|
|
82
80
|
const headerHeight = virtualScrollOptions?.headerHeight || (typeof this.state.tableSettings().headerHeight === 'number' && this.state.tableSettings().headerHeight) || this.defaultOptions.headerHeight;
|
|
83
81
|
return headerHeight;
|
|
84
82
|
}
|
|
85
|
-
static
|
|
86
|
-
static
|
|
83
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: VirtualScrollContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: VirtualScrollContainer, isStandalone: true, selector: "tb-virtual-scroll-container", viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
87
85
|
<cdk-virtual-scroll-viewport>
|
|
88
86
|
<ng-content/>
|
|
89
87
|
</cdk-virtual-scroll-viewport>
|
|
90
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ScrollingModule }, { kind: "component", type:
|
|
88
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ScrollingModule }, { kind: "component", type: i1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], viewProviders: [
|
|
91
89
|
{
|
|
92
90
|
provide: VIRTUAL_SCROLL_STRATEGY,
|
|
93
91
|
useFactory: (c) => c.scrollStrategy,
|
|
94
92
|
deps: [forwardRef(() => VirtualScrollContainer)],
|
|
95
93
|
},
|
|
96
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
94
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
97
95
|
}
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: VirtualScrollContainer, decorators: [{
|
|
99
97
|
type: Component,
|
|
100
98
|
args: [{
|
|
101
99
|
selector: 'tb-virtual-scroll-container',
|
|
@@ -115,5 +113,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
115
113
|
},
|
|
116
114
|
],
|
|
117
115
|
}]
|
|
118
|
-
}]
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdmlydHVhbC1zY3JvbGwtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUdULE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZix1QkFBdUIsR0FDeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7QUFvQnBGLE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFDVSxLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBSDNCLGFBQVEsR0FBRyxTQUFTLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQU0vQyxtQkFBYyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUM1QyxtQkFBYyxHQUFHLElBQUksMEJBQTBCLENBQzdDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUN4QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FDMUIsQ0FBQztRQUVKLGdCQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsQ0FBQyxD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Ozs7S0FJUDtvQkFDSCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFVBQVUsRUFBRSxDQUFDLENBQXlCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjOzRCQUMzRCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLENBQUM7eUJBQ2pEO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkRlc3Ryb3ksXHJcbiAgZWZmZWN0LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgdW50cmFja2VkLFxyXG4gIHZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsXHJcbiAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gIFZJUlRVQUxfU0NST0xMX1NUUkFURUdZLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSwgc3Vic2NyaWJlciB9IGZyb20gJy4uLy4uLy4uL3J4anMnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IFRhYmxlVmlydHVhbFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi4vc2Nyb2xsLXN0cmF0ZWd5JztcclxuaW1wb3J0IHsgVmlydHVhbFNjcm9sbE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLWJ1aWxkZXItZ2VuZXJhbC1zZXR0aW5ncyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLXZpcnR1YWwtc2Nyb2xsLWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XHJcbiAgICAgIDxuZy1jb250ZW50Lz5cclxuICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG4gICAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtTY3JvbGxpbmdNb2R1bGVdLFxyXG4gIHZpZXdQcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVklSVFVBTF9TQ1JPTExfU1RSQVRFR1ksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChjOiBWaXJ0dWFsU2Nyb2xsQ29udGFpbmVyKSA9PiBjLnNjcm9sbFN0cmF0ZWd5LFxyXG4gICAgICBkZXBzOiBbZm9yd2FyZFJlZigoKSA9PiBWaXJ0dWFsU2Nyb2xsQ29udGFpbmVyKV0sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsQ29udGFpbmVyIGltcGxlbWVudHMgIE9uRGVzdHJveSB7XHJcbiAgdmlld3BvcnQgPSB2aWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHN0YXRlOiBUYWJsZVN0b3JlXHJcbiAgKSB7fVxyXG5cclxuICBkZWZhdWx0T3B0aW9ucyA9IG5ldyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucygpO1xyXG4gIHNjcm9sbFN0cmF0ZWd5ID0gbmV3IFRhYmxlVmlydHVhbFNjcm9sbFN0cmF0ZWd5KFxyXG4gICAgdGhpcy5jb21wdXRlZFJvd0hlaWdodCgpLFxyXG4gICAgdGhpcy5jb21wdXRlZEhlYWRlckhlaWdodCgpXHJcbiAgICApO1xyXG5cclxuICBkYXRhTGVuZ3RoJCA9IHRoaXMuc3RhdGUuc3RhdGUkLnBpcGUoXHJcbiAgICBtYXAocyA9PiB7XHJcbiAgICAgIGNvbnN0IHBhZ2luYXRlZCA9IHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy51c2VQYWdpbmF0b3IgJiYgIXMuc2hvd0FsbDtcclxuICAgICAgcmV0dXJuIHBhZ2luYXRlZCA/IChzLnVzZXJEZWZpbmVkLnBhZ2VTaXplIHx8IHMucGFnZVNpemUpIDogcy5kYXRhTGVuO1xyXG4gICAgfSksXHJcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXHJcbiAgKTtcclxuXHJcbiAgc3Vic2NyaWJlciA9IHN1YnNjcmliZXIodGhpcy5kYXRhTGVuZ3RoJCwgKGRhdGFMZW5ndGgpID0+IHtcclxuICAgIHRoaXMuc2Nyb2xsU3RyYXRlZ3kuc2V0RGF0YUxlbmd0aChkYXRhTGVuZ3RoKTtcclxuXHJcbiAgICBpZih0aGlzLnZpZXdwb3J0KCkpe1xyXG4gICAgICB0aGlzLnNldFNpemUodGhpcy52aWV3cG9ydCgpIS5lbGVtZW50UmVmKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gIF8gPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLnZpZXdwb3J0KCk7XHJcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xyXG4gICAgICBpZighIXZpZXdwb3J0KXtcclxuICAgICAgICBhZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUhhbmRsZXIpO1xyXG4gICAgICAgIHRoaXMuc2V0U2l6ZSh2aWV3cG9ydC5lbGVtZW50UmVmKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmliZXIub24odmlld3BvcnQucmVuZGVyZWRSYW5nZVN0cmVhbSwgKHJhbmdlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN0YXRlLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgICAgICAgdmlydHVhbEVuZHM6IHtcclxuICAgICAgICAgICAgICBzdGFydDogcmFuZ2Uuc3RhcnQsXHJcbiAgICAgICAgICAgICAgZW5kOiByYW5nZS5lbmQsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBvZmZzZXQkID0gdmlld3BvcnQuc2Nyb2xsZWRJbmRleENoYW5nZS5waXBlKFxyXG4gICAgICAgICAgbWFwKCgpID0+IHZpZXdwb3J0LmdldE9mZnNldFRvUmVuZGVyZWRDb250ZW50U3RhcnQoKSA/PyAwKSxcclxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKVxyXG4gICAgICAgICk7XHJcbiAgICBcclxuICAgICAgICB0aGlzLnN1YnNjcmliZXIub24ob2Zmc2V0JCwgKG9mZnNldCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGVTdGF0ZSh7IHZpcnR1YWxTY3JvbGxPZmZzZXQ6IG9mZnNldCB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuICAgIH0pXHJcblxyXG4gIH0pXHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVzaXplSGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICBzZXRTaXplKGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xyXG4gICAgY29uc3QgdnNWaWV3cG9ydCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCB2aXJ0dWFsU2Nyb2xsT3B0aW9ucyA9IHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVZpcnR1YWxTY3JvbGwhIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zO1xyXG4gICAgY29uc3Qgcm93SGVpZ2h0ID0gdGhpcy5jb21wdXRlZFJvd0hlaWdodCgpO1xyXG4gICAgbGV0IGFtb3VudE9mVmlzaWJsZUl0ZW1zID0gKHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVBhZ2luYXRvciAmJiAhdGhpcy5zdGF0ZS5zdGF0ZSgpLnNob3dBbGwpID8gKHRoaXMuc3RhdGUuc3RhdGUoKS51c2VyRGVmaW5lZD8ucGFnZVNpemUgfHwgdGhpcy5zdGF0ZS5zdGF0ZSgpLnBhZ2VTaXplKSA6XHJcbiAgICAgIHZpcnR1YWxTY3JvbGxPcHRpb25zPy5hbW91bnRPZlZpc2libGVJdGVtc3x8IHRoaXMuZGVmYXVsdE9wdGlvbnMuYW1vdW50T2ZWaXNpYmxlSXRlbXM7XHJcbiAgICBsZXQgaGVpZ2h0ID0gKHJvd0hlaWdodCAqIGFtb3VudE9mVmlzaWJsZUl0ZW1zKTtcclxuICAgIGlmKCF0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS5oaWRlSGVhZGVyKXtcclxuICAgICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdGhpcy5jb21wdXRlZEhlYWRlckhlaWdodCgpO1xyXG4gICAgICBoZWlnaHQgKz0gaGVhZGVySGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgaWYodmlydHVhbFNjcm9sbE9wdGlvbnM/Lm1heFZpZXdQb3J0SGVpZ2h0ICYmIHZpcnR1YWxTY3JvbGxPcHRpb25zLm1heFZpZXdQb3J0SGVpZ2h0IDwgaGVpZ2h0KSBoZWlnaHQgPSB2aXJ0dWFsU2Nyb2xsT3B0aW9ucy5tYXhWaWV3UG9ydEhlaWdodDtcclxuICAgIHZzVmlld3BvcnQuc2V0QXR0cmlidXRlKFxyXG4gICAgICAnc3R5bGUnLFxyXG4gICAgICBgaGVpZ2h0OiAke2hlaWdodH1weCAhaW1wb3J0YW50O2AsXHJcbiAgICApO1xyXG4gICAgdGhpcy52aWV3cG9ydCgpPy5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xyXG4gICAgY29uc3QgdmlydHVhbFNjcm9sbE9mZnNldCA9IHRoaXMudmlld3BvcnQoKT8uZ2V0T2Zmc2V0VG9SZW5kZXJlZENvbnRlbnRTdGFydCgpID8/IDBcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlU3RhdGUoeyB2aXJ0dWFsU2Nyb2xsT2Zmc2V0IH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzaXplSGFuZGxlciA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnZpZXdwb3J0KCkpIHtcclxuICAgICAgdGhpcy5zZXRTaXplKHRoaXMudmlld3BvcnQoKSEuZWxlbWVudFJlZik7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29tcHV0ZWRSb3dIZWlnaHQoKXtcclxuICAgIGNvbnN0IHZpcnR1YWxTY3JvbGxPcHRpb25zID0gdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkudXNlVmlydHVhbFNjcm9sbCEgYXMgVmlydHVhbFNjcm9sbE9wdGlvbnM7XHJcbiAgICBjb25zdCByb3dIZWlnaHQgPSB2aXJ0dWFsU2Nyb2xsT3B0aW9ucz8ucm93SGVpZ2h0fHwgKHR5cGVvZiB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS5yb3dIZWlnaHQgPT09ICdudW1iZXInICYmIHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnJvd0hlaWdodCBhcyBudW1iZXIpIHx8IHRoaXMuZGVmYXVsdE9wdGlvbnMucm93SGVpZ2h0O1xyXG4gICAgcmV0dXJuIHJvd0hlaWdodDtcclxuICB9XHJcblxyXG4gIGNvbXB1dGVkSGVhZGVySGVpZ2h0KCl7XHJcbiAgICBjb25zdCB2aXJ0dWFsU2Nyb2xsT3B0aW9ucyA9IHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVZpcnR1YWxTY3JvbGwhIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zO1xyXG4gICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdmlydHVhbFNjcm9sbE9wdGlvbnM/LmhlYWRlckhlaWdodHx8ICh0eXBlb2YgIHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLmhlYWRlckhlaWdodCA9PT0gJ251bWJlcicgJiYgdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkuaGVhZGVySGVpZ2h0IGFzIG51bWJlcikgfHwgdGhpcy5kZWZhdWx0T3B0aW9ucy5oZWFkZXJIZWlnaHQ7XHJcbiAgICByZXR1cm4gaGVhZGVySGVpZ2h0O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
116
|
+
}] });
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdmlydHVhbC1zY3JvbGwtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXlCLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUNMLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsdUJBQXVCLEdBQ3hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBb0JwRixNQUFNLE9BQU8sc0JBQXNCO0lBQ3pCLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFbkMsUUFBUSxHQUFHLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRS9DLGNBQWMsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFDNUMsY0FBYyxHQUFHLElBQUksMEJBQTBCLENBQzdDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUN4QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FDMUIsQ0FBQztJQUVKLFdBQVcsR0FBRyxJQUFJLENBQUMs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QkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUU7Ozs7S0FJUDtvQkFDSCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFVBQVUsRUFBRSxDQUFDLENBQXlCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjOzRCQUMzRCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLENBQUM7eUJBQ2pEO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBlZmZlY3QsIGZvcndhcmRSZWYsIHVudHJhY2tlZCwgdmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsXHJcbiAgU2Nyb2xsaW5nTW9kdWxlLFxyXG4gIFZJUlRVQUxfU0NST0xMX1NUUkFURUdZLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSwgc3Vic2NyaWJlciB9IGZyb20gJy4uLy4uLy4uL3J4anMnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IFRhYmxlVmlydHVhbFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi4vc2Nyb2xsLXN0cmF0ZWd5JztcclxuaW1wb3J0IHsgVmlydHVhbFNjcm9sbE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLWJ1aWxkZXItZ2VuZXJhbC1zZXR0aW5ncyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLXZpcnR1YWwtc2Nyb2xsLWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XHJcbiAgICAgIDxuZy1jb250ZW50Lz5cclxuICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxyXG4gICAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtTY3JvbGxpbmdNb2R1bGVdLFxyXG4gIHZpZXdQcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVklSVFVBTF9TQ1JPTExfU1RSQVRFR1ksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IChjOiBWaXJ0dWFsU2Nyb2xsQ29udGFpbmVyKSA9PiBjLnNjcm9sbFN0cmF0ZWd5LFxyXG4gICAgICBkZXBzOiBbZm9yd2FyZFJlZigoKSA9PiBWaXJ0dWFsU2Nyb2xsQ29udGFpbmVyKV0sXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsQ29udGFpbmVyIGltcGxlbWVudHMgIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuXHJcbiAgdmlld3BvcnQgPSB2aWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KTtcclxuXHJcbiAgZGVmYXVsdE9wdGlvbnMgPSBuZXcgVmlydHVhbFNjcm9sbE9wdGlvbnMoKTtcclxuICBzY3JvbGxTdHJhdGVneSA9IG5ldyBUYWJsZVZpcnR1YWxTY3JvbGxTdHJhdGVneShcclxuICAgIHRoaXMuY29tcHV0ZWRSb3dIZWlnaHQoKSxcclxuICAgIHRoaXMuY29tcHV0ZWRIZWFkZXJIZWlnaHQoKVxyXG4gICAgKTtcclxuXHJcbiAgZGF0YUxlbmd0aCQgPSB0aGlzLnN0YXRlLnN0YXRlJC5waXBlKFxyXG4gICAgbWFwKHMgPT4ge1xyXG4gICAgICBjb25zdCBwYWdpbmF0ZWQgPSBzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MudXNlUGFnaW5hdG9yICYmICFzLnNob3dBbGw7XHJcbiAgICAgIHJldHVybiBwYWdpbmF0ZWQgPyAocy51c2VyRGVmaW5lZC5wYWdlU2l6ZSB8fCBzLnBhZ2VTaXplKSA6IHMuZGF0YUxlbjtcclxuICAgIH0pLFxyXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICk7XHJcblxyXG4gIHN1YnNjcmliZXIgPSBzdWJzY3JpYmVyKHRoaXMuZGF0YUxlbmd0aCQsIChkYXRhTGVuZ3RoKSA9PiB7XHJcbiAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnNldERhdGFMZW5ndGgoZGF0YUxlbmd0aCk7XHJcblxyXG4gICAgaWYodGhpcy52aWV3cG9ydCgpKXtcclxuICAgICAgdGhpcy5zZXRTaXplKHRoaXMudmlld3BvcnQoKSEuZWxlbWVudFJlZik7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICBfID0gZWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydCgpO1xyXG4gICAgdW50cmFja2VkKCgpID0+IHtcclxuICAgICAgaWYoISF2aWV3cG9ydCl7XHJcbiAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVIYW5kbGVyKTtcclxuICAgICAgICB0aGlzLnNldFNpemUodmlld3BvcnQuZWxlbWVudFJlZik7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVyLm9uKHZpZXdwb3J0LnJlbmRlcmVkUmFuZ2VTdHJlYW0sIChyYW5nZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGVTdGF0ZSh7XHJcbiAgICAgICAgICAgIHZpcnR1YWxFbmRzOiB7XHJcbiAgICAgICAgICAgICAgc3RhcnQ6IHJhbmdlLnN0YXJ0LFxyXG4gICAgICAgICAgICAgIGVuZDogcmFuZ2UuZW5kICsgMjUsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBvZmZzZXQkID0gdmlld3BvcnQuc2Nyb2xsZWRJbmRleENoYW5nZS5waXBlKFxyXG4gICAgICAgICAgbWFwKCgpID0+IHZpZXdwb3J0LmdldE9mZnNldFRvUmVuZGVyZWRDb250ZW50U3RhcnQoKSA/PyAwKSxcclxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKVxyXG4gICAgICAgICk7XHJcbiAgICBcclxuICAgICAgICB0aGlzLnN1YnNjcmliZXIub24ob2Zmc2V0JCwgKG9mZnNldCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGVTdGF0ZSh7IHZpcnR1YWxTY3JvbGxPZmZzZXQ6IG9mZnNldCB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuICAgIH0pXHJcblxyXG4gIH0pXHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVzaXplSGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICBzZXRTaXplKGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xyXG4gICAgY29uc3QgdnNWaWV3cG9ydCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCB2aXJ0dWFsU2Nyb2xsT3B0aW9ucyA9IHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVZpcnR1YWxTY3JvbGwhIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zO1xyXG4gICAgY29uc3Qgcm93SGVpZ2h0ID0gdGhpcy5jb21wdXRlZFJvd0hlaWdodCgpO1xyXG4gICAgbGV0IGFtb3VudE9mVmlzaWJsZUl0ZW1zID0gKHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVBhZ2luYXRvciAmJiAhdGhpcy5zdGF0ZS5zdGF0ZSgpLnNob3dBbGwpID8gKHRoaXMuc3RhdGUuc3RhdGUoKS51c2VyRGVmaW5lZD8ucGFnZVNpemUgfHwgdGhpcy5zdGF0ZS5zdGF0ZSgpLnBhZ2VTaXplKSA6XHJcbiAgICAgIHZpcnR1YWxTY3JvbGxPcHRpb25zPy5hbW91bnRPZlZpc2libGVJdGVtc3x8IHRoaXMuZGVmYXVsdE9wdGlvbnMuYW1vdW50T2ZWaXNpYmxlSXRlbXM7XHJcbiAgICBsZXQgaGVpZ2h0ID0gKHJvd0hlaWdodCAqIGFtb3VudE9mVmlzaWJsZUl0ZW1zKTtcclxuICAgIGlmKCF0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS5oaWRlSGVhZGVyKXtcclxuICAgICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdGhpcy5jb21wdXRlZEhlYWRlckhlaWdodCgpO1xyXG4gICAgICBoZWlnaHQgKz0gaGVhZGVySGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgaWYodmlydHVhbFNjcm9sbE9wdGlvbnM/Lm1heFZpZXdQb3J0SGVpZ2h0ICYmIHZpcnR1YWxTY3JvbGxPcHRpb25zLm1heFZpZXdQb3J0SGVpZ2h0IDwgaGVpZ2h0KSBoZWlnaHQgPSB2aXJ0dWFsU2Nyb2xsT3B0aW9ucy5tYXhWaWV3UG9ydEhlaWdodDtcclxuICAgIHZzVmlld3BvcnQuc2V0QXR0cmlidXRlKFxyXG4gICAgICAnc3R5bGUnLFxyXG4gICAgICBgaGVpZ2h0OiAke2hlaWdodH1weCAhaW1wb3J0YW50O2AsXHJcbiAgICApO1xyXG4gICAgdGhpcy52aWV3cG9ydCgpPy5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xyXG4gICAgY29uc3QgdmlydHVhbFNjcm9sbE9mZnNldCA9IHRoaXMudmlld3BvcnQoKT8uZ2V0T2Zmc2V0VG9SZW5kZXJlZENvbnRlbnRTdGFydCgpID8/IDBcclxuICAgIHRoaXMuc3RhdGUudXBkYXRlU3RhdGUoeyB2aXJ0dWFsU2Nyb2xsT2Zmc2V0IH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzaXplSGFuZGxlciA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnZpZXdwb3J0KCkpIHtcclxuICAgICAgdGhpcy5zZXRTaXplKHRoaXMudmlld3BvcnQoKSEuZWxlbWVudFJlZik7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29tcHV0ZWRSb3dIZWlnaHQoKXtcclxuICAgIGNvbnN0IHZpcnR1YWxTY3JvbGxPcHRpb25zID0gdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkudXNlVmlydHVhbFNjcm9sbCEgYXMgVmlydHVhbFNjcm9sbE9wdGlvbnM7XHJcbiAgICBjb25zdCByb3dIZWlnaHQgPSB2aXJ0dWFsU2Nyb2xsT3B0aW9ucz8ucm93SGVpZ2h0fHwgKHR5cGVvZiB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS5yb3dIZWlnaHQgPT09ICdudW1iZXInICYmIHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnJvd0hlaWdodCBhcyBudW1iZXIpIHx8IHRoaXMuZGVmYXVsdE9wdGlvbnMucm93SGVpZ2h0O1xyXG4gICAgcmV0dXJuIHJvd0hlaWdodDtcclxuICB9XHJcblxyXG4gIGNvbXB1dGVkSGVhZGVySGVpZ2h0KCl7XHJcbiAgICBjb25zdCB2aXJ0dWFsU2Nyb2xsT3B0aW9ucyA9IHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVZpcnR1YWxTY3JvbGwhIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zO1xyXG4gICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdmlydHVhbFNjcm9sbE9wdGlvbnM/LmhlYWRlckhlaWdodHx8ICh0eXBlb2YgIHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLmhlYWRlckhlaWdodCA9PT0gJ251bWJlcicgJiYgdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkuaGVhZGVySGVpZ2h0IGFzIG51bWJlcikgfHwgdGhpcy5kZWZhdWx0T3B0aW9ucy5oZWFkZXJIZWlnaHQ7XHJcbiAgICByZXR1cm4gaGVhZGVySGVpZ2h0O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -19,12 +19,9 @@ import * as i2 from "@angular/material/tooltip";
|
|
|
19
19
|
import * as i3 from "@angular/material/icon";
|
|
20
20
|
import * as i4 from "@angular/material/chips";
|
|
21
21
|
export class FilterChipsComponent {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
this.filters$ = this.tableState.filters$.pipe(map(filters => Object.values(filters).filter(f => isFilterInfo(f) && !f._isExternallyManaged)));
|
|
26
|
-
this.currentFilters$ = this.filterStore.currentFilters$;
|
|
27
|
-
}
|
|
22
|
+
tableState = inject(TableStore);
|
|
23
|
+
filterStore = inject(WrapperFilterStore);
|
|
24
|
+
filters$ = this.tableState.filters$.pipe(map(filters => Object.values(filters).filter(f => isFilterInfo(f) && !f._isExternallyManaged)));
|
|
28
25
|
deleteByIndex(index) {
|
|
29
26
|
this.filterStore.deleteByIndex(index);
|
|
30
27
|
}
|
|
@@ -34,14 +31,15 @@ export class FilterChipsComponent {
|
|
|
34
31
|
clearAll() {
|
|
35
32
|
this.filterStore.clearAll();
|
|
36
33
|
}
|
|
37
|
-
|
|
38
|
-
static
|
|
34
|
+
currentFilters$ = this.filterStore.currentFilters$;
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FilterChipsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: FilterChipsComponent, isStandalone: true, selector: "lib-filter-list", ngImport: i0, template: "<div class=\"d-w\" *ngrxLet=\"currentFilters$ as currentFilters\" >\r\n\r\n @if (currentFilters.length) {\r\n <button class=\"cancel-button\" mat-icon-button (click)=\"clearAll()\" matTooltip=\"Close all Filters Cards\">\r\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\r\n </button>\r\n <div class=\"float\">\r\n @for (filter of currentFilters; track filter.key) {\r\n <div class=\"filter\">\r\n <tb-filter [filter]=\"filter\" (close)=\"deleteByIndex($index)\" />\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <mat-chip-set *ngrxLet=\"filters$ as filters\">\r\n @for (filter of filters; track filter.key) {\r\n <mat-chip (dblclick)=\"addFilter(filter)\" (removed)=\"tableState.removeFilter(filter.filterId!)\">\r\n {{ filter.key | keyDisplay | async }} {{filter.filterType | formatFilterType : filter.filterValue}} {{ filter.filterValue | formatFilterValue: filter.key : filter.filterType | async }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n @if (filters.length > 1) {\r\n <mat-chip (removed)=\"tableState.clearFilters()\">\r\n Clear All\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-set>\r\n\r\n</div>\r\n", styles: [".filter{margin:15px;display:inline-block}.filter-button{color:#6495ed;font-size:22px;font-weight:700}.cancel-button{margin-right:30px;font-weight:700}.filter-wrapper{margin-top:1em;margin-bottom:1em;float:right}.menu{margin-bottom:10px;width:109.1%}.filter-labels{color:#6495ed;font-size:17px;font-weight:600}.float{position:absolute;width:fit-content;z-index:101;top:10px;right:180px;max-width:90vw}.d-w{display:flex;flex-direction:row;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FilterComponent, selector: "tb-filter", inputs: ["filter"], outputs: ["close"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyDisplayPipe, name: "keyDisplay" }, { kind: "pipe", type: FormatFilterTypePipe, name: "formatFilterType" }, { kind: "pipe", type: FormatFilterValuePipe, name: "formatFilterValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
39
37
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FilterChipsComponent, decorators: [{
|
|
41
39
|
type: Component,
|
|
42
40
|
args: [{ selector: 'lib-filter-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
43
41
|
LetDirective, MatButtonModule, MatTooltipModule, MatIconModule, FilterComponent,
|
|
44
42
|
MatChipsModule, AsyncPipe, KeyDisplayPipe, FormatFilterTypePipe, FormatFilterValuePipe
|
|
45
43
|
], template: "<div class=\"d-w\" *ngrxLet=\"currentFilters$ as currentFilters\" >\r\n\r\n @if (currentFilters.length) {\r\n <button class=\"cancel-button\" mat-icon-button (click)=\"clearAll()\" matTooltip=\"Close all Filters Cards\">\r\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\r\n </button>\r\n <div class=\"float\">\r\n @for (filter of currentFilters; track filter.key) {\r\n <div class=\"filter\">\r\n <tb-filter [filter]=\"filter\" (close)=\"deleteByIndex($index)\" />\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <mat-chip-set *ngrxLet=\"filters$ as filters\">\r\n @for (filter of filters; track filter.key) {\r\n <mat-chip (dblclick)=\"addFilter(filter)\" (removed)=\"tableState.removeFilter(filter.filterId!)\">\r\n {{ filter.key | keyDisplay | async }} {{filter.filterType | formatFilterType : filter.filterValue}} {{ filter.filterValue | formatFilterValue: filter.key : filter.filterType | async }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n @if (filters.length > 1) {\r\n <mat-chip (removed)=\"tableState.clearFilters()\">\r\n Clear All\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-set>\r\n\r\n</div>\r\n", styles: [".filter{margin:15px;display:inline-block}.filter-button{color:#6495ed;font-size:22px;font-weight:700}.cancel-button{margin-right:30px;font-weight:700}.filter-wrapper{margin-top:1em;margin-bottom:1em;float:right}.menu{margin-bottom:10px;width:109.1%}.filter-labels{color:#6495ed;font-size:17px;font-weight:600}.float{position:absolute;width:fit-content;z-index:101;top:10px;right:180px;max-width:90vw}.d-w{display:flex;flex-direction:row;justify-content:flex-end}\n"] }]
|
|
46
44
|
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXItZmlsdGVyL2ZpbHRlci1saXN0L2ZpbHRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvdGFibGUtY29udGFpbmVyLWZpbHRlci9maWx0ZXItbGlzdC9maWx0ZXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7OztBQWFoRixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXpDLFFBQVEsR0FBa0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyRSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDWixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBc0IsQ0FDcEcsQ0FBQyxDQUFDO0lBRUwsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFzQjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQzt1R0F0QnhDLG9CQUFvQjsyRkFBcEIsb0JBQW9CLDJFQzVCakMsa3lDQStCQSwwZ0JEUEksWUFBWSxnR0FBRSxlQUFlLDJJQUFFLGdCQUFnQiw0VEFBRSxhQUFhLG9MQUFFLGVBQWUsNkZBQy9FLGNBQWMsa2dCQUFFLFNBQVMseUNBQUUsY0FBYyw4Q0FBRSxvQkFBb0Isb0RBQUUscUJBQXFCOzsyRkFHN0Usb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlO3dCQUMvRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUI7cUJBQ3ZGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgRmlsdGVySW5mbywgaXNGaWx0ZXJJbmZvIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgV3JhcHBlckZpbHRlclN0b3JlIH0gZnJvbSAnLi4vdGFibGUtd3JhcHBlci1maWx0ZXItc3RvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExldERpcmVjdGl2ZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBLZXlEaXNwbGF5UGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2tleS1kaXNwbGF5JztcclxuaW1wb3J0IHsgRm9ybWF0RmlsdGVyVHlwZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9mb3JtYXQtZmlsdGVyLXR5cGUucGlwZSc7XHJcbmltcG9ydCB7IEZvcm1hdEZpbHRlclZhbHVlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2Zvcm1hdC1maWx0ZXItdmFsdWUucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1maWx0ZXItbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi4vZ2VuLWZpbHRlci1kaXNwbGF5ZXIvZ2VuLWZpbHRlci1kaXNwbGF5ZXIuY29tcG9uZW50LmNzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTGV0RGlyZWN0aXZlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEljb25Nb2R1bGUsIEZpbHRlckNvbXBvbmVudCxcclxuICAgIE1hdENoaXBzTW9kdWxlLCBBc3luY1BpcGUsIEtleURpc3BsYXlQaXBlLCBGb3JtYXRGaWx0ZXJUeXBlUGlwZSwgRm9ybWF0RmlsdGVyVmFsdWVQaXBlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ2hpcHNDb21wb25lbnQge1xyXG5cclxuICB0YWJsZVN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xyXG4gIGZpbHRlclN0b3JlID0gaW5qZWN0KFdyYXBwZXJGaWx0ZXJTdG9yZSk7XHJcblxyXG4gIGZpbHRlcnMkOiBPYnNlcnZhYmxlPEZpbHRlckluZm88YW55PltdPiA9IHRoaXMudGFibGVTdGF0ZS5maWx0ZXJzJC5waXBlKFxyXG4gICAgbWFwKGZpbHRlcnMgPT5cclxuICAgICAgT2JqZWN0LnZhbHVlcyhmaWx0ZXJzKS5maWx0ZXIoZiA9PiBpc0ZpbHRlckluZm8oZikgJiYgIWYuX2lzRXh0ZXJuYWxseU1hbmFnZWQpIGFzIEZpbHRlckluZm88YW55PltdXHJcbiAgICApKTtcclxuXHJcbiAgZGVsZXRlQnlJbmRleChpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmZpbHRlclN0b3JlLmRlbGV0ZUJ5SW5kZXgoaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgYWRkRmlsdGVyKGZpbHRlcjpGaWx0ZXJJbmZvPGFueT4pe1xyXG4gICAgdGhpcy5maWx0ZXJTdG9yZS5hZGRGaWx0ZXIoZmlsdGVyKTtcclxuICB9XHJcblxyXG4gIGNsZWFyQWxsKCkge1xyXG4gICAgICB0aGlzLmZpbHRlclN0b3JlLmNsZWFyQWxsKCk7XHJcbiAgfVxyXG5cclxuICBjdXJyZW50RmlsdGVycyQgPSB0aGlzLmZpbHRlclN0b3JlLmN1cnJlbnRGaWx0ZXJzJDtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZC13XCIgKm5ncnhMZXQ9XCJjdXJyZW50RmlsdGVycyQgYXMgY3VycmVudEZpbHRlcnNcIiA+XHJcblxyXG4gIEBpZiAoY3VycmVudEZpbHRlcnMubGVuZ3RoKSB7XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xlYXJBbGwoKVwiIG1hdFRvb2x0aXA9XCJDbG9zZSBhbGwgRmlsdGVycyBDYXJkc1wiPlxyXG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCIgY29sb3I9XCJwcmltYXJ5XCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxvYXRcIj5cclxuICAgICAgQGZvciAoZmlsdGVyIG9mIGN1cnJlbnRGaWx0ZXJzOyB0cmFjayBmaWx0ZXIua2V5KSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlclwiPlxyXG4gICAgICAgICAgPHRiLWZpbHRlciBbZmlsdGVyXT1cImZpbHRlclwiIChjbG9zZSk9XCJkZWxldGVCeUluZGV4KCRpbmRleClcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIDxtYXQtY2hpcC1zZXQgKm5ncnhMZXQ9XCJmaWx0ZXJzJCBhcyBmaWx0ZXJzXCI+XHJcbiAgICBAZm9yIChmaWx0ZXIgb2YgZmlsdGVyczsgdHJhY2sgZmlsdGVyLmtleSkge1xyXG4gICAgICA8bWF0LWNoaXAgKGRibGNsaWNrKT1cImFkZEZpbHRlcihmaWx0ZXIpXCIgIChyZW1vdmVkKT1cInRhYmxlU3RhdGUucmVtb3ZlRmlsdGVyKGZpbHRlci5maWx0ZXJJZCEpXCI+XHJcbiAgICAgICAge3sgZmlsdGVyLmtleSB8IGtleURpc3BsYXkgfCBhc3luYyAgfX0ge3tmaWx0ZXIuZmlsdGVyVHlwZSB8IGZvcm1hdEZpbHRlclR5cGUgOiBmaWx0ZXIuZmlsdGVyVmFsdWV9fSB7eyBmaWx0ZXIuZmlsdGVyVmFsdWUgfCBmb3JtYXRGaWx0ZXJWYWx1ZTogZmlsdGVyLmtleSA6IGZpbHRlci5maWx0ZXJUeXBlICB8IGFzeW5jIH19XHJcbiAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgPC9tYXQtY2hpcD5cclxuICAgIH1cclxuICAgIEBpZiAoZmlsdGVycy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIDxtYXQtY2hpcCAgKHJlbW92ZWQpPVwidGFibGVTdGF0ZS5jbGVhckZpbHRlcnMoKVwiPlxyXG4gICAgICAgIENsZWFyIEFsbFxyXG4gICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgIDwvbWF0LWNoaXA+XHJcbiAgICB9XHJcbiAgPC9tYXQtY2hpcC1zZXQ+XHJcblxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
1
|
+
import { Component, ChangeDetectionStrategy, inject } from '@angular/core';
|
|
2
2
|
import { FieldType } from '../../../interfaces/report-def';
|
|
3
|
+
import { TableStore } from '../../../classes/table-store';
|
|
3
4
|
import { map } from 'rxjs/operators';
|
|
5
|
+
import { WrapperFilterStore } from '../table-wrapper-filter-store';
|
|
4
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
7
|
import { MatMenuModule } from '@angular/material/menu';
|
|
6
8
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
@@ -8,29 +10,29 @@ import { SpaceCasePipe, StopPropagationDirective } from '../../../../utilities';
|
|
|
8
10
|
import { MatIconModule } from '@angular/material/icon';
|
|
9
11
|
import { AsyncPipe } from '@angular/common';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "
|
|
12
|
-
import * as i2 from "
|
|
13
|
-
import * as i3 from "@angular/material/
|
|
14
|
-
import * as i4 from "@angular/material/
|
|
15
|
-
import * as i5 from "@angular/material/tooltip";
|
|
16
|
-
import * as i6 from "@angular/material/icon";
|
|
13
|
+
import * as i1 from "@angular/material/button";
|
|
14
|
+
import * as i2 from "@angular/material/menu";
|
|
15
|
+
import * as i3 from "@angular/material/tooltip";
|
|
16
|
+
import * as i4 from "@angular/material/icon";
|
|
17
17
|
export class GenFilterDisplayerComponent {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
tableState = inject(TableStore);
|
|
19
|
+
filterStore = inject(WrapperFilterStore);
|
|
20
|
+
constructor() {
|
|
21
|
+
const tableState = this.tableState;
|
|
21
22
|
this.filterCols$ = tableState.metaDataArray$.pipe(map(md => Object.values(md).filter(m => m.fieldType !== FieldType.Hidden && m.fieldType !== FieldType.NotMapped && !m.noFilter)));
|
|
22
23
|
}
|
|
24
|
+
filterCols$;
|
|
23
25
|
addFilter(metaData) {
|
|
24
26
|
this.filterStore.addFilter({ key: metaData.key, fieldType: metaData.fieldType });
|
|
25
27
|
}
|
|
26
|
-
static
|
|
27
|
-
static
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: GenFilterDisplayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: GenFilterDisplayerComponent, isStandalone: true, selector: "tb-filter-displayer", ngImport: i0, template: "<button stop-propagation class=\"filter-button\" mat-icon-button [matMenuTriggerFor]=\"menu\" matTooltip=\"Add Filter\">\r\n <mat-icon class=\"filter-icon\" color=\"primary\">filter_list</mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\">\r\n @for (md of filterCols$ | async; track md.key) {\r\n <button (click)=\"addFilter(md)\" mat-menu-item>\r\n <span class=\"filter-labels\">{{md.displayName || (md.key | spaceCase)}}</span>\r\n </button>\r\n }\r\n</mat-menu>\r\n", styles: [".filter{margin:15px;display:inline-block}.filter-button{color:#6495ed;font-size:22px;font-weight:700}.cancel-button{margin-right:30px;font-weight:700}.filter-wrapper{margin-top:1em;margin-bottom:1em;float:right}.menu{margin-bottom:10px;width:109.1%}.filter-labels{color:#6495ed;font-size:17px;font-weight:600}.float{position:absolute;width:fit-content;z-index:101;top:10px;right:180px;max-width:90vw}.d-w{display:flex;flex-direction:row;justify-content:flex-end}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: StopPropagationDirective, selector: "[stop-propagation]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
28
30
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: GenFilterDisplayerComponent, decorators: [{
|
|
30
32
|
type: Component,
|
|
31
33
|
args: [{ selector: 'tb-filter-displayer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
32
34
|
MatButtonModule, MatMenuModule, MatTooltipModule, StopPropagationDirective, MatIconModule,
|
|
33
35
|
AsyncPipe, SpaceCasePipe
|
|
34
36
|
], template: "<button stop-propagation class=\"filter-button\" mat-icon-button [matMenuTriggerFor]=\"menu\" matTooltip=\"Add Filter\">\r\n <mat-icon class=\"filter-icon\" color=\"primary\">filter_list</mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\">\r\n @for (md of filterCols$ | async; track md.key) {\r\n <button (click)=\"addFilter(md)\" mat-menu-item>\r\n <span class=\"filter-labels\">{{md.displayName || (md.key | spaceCase)}}</span>\r\n </button>\r\n }\r\n</mat-menu>\r\n", styles: [".filter{margin:15px;display:inline-block}.filter-button{color:#6495ed;font-size:22px;font-weight:700}.cancel-button{margin-right:30px;font-weight:700}.filter-wrapper{margin-top:1em;margin-bottom:1em;float:right}.menu{margin-bottom:10px;width:109.1%}.filter-labels{color:#6495ed;font-size:17px;font-weight:600}.float{position:absolute;width:fit-content;z-index:101;top:10px;right:180px;max-width:90vw}.d-w{display:flex;flex-direction:row;justify-content:flex-end}\n"] }]
|
|
35
|
-
}], ctorParameters: () => [
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
}], ctorParameters: () => [] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuLWZpbHRlci1kaXNwbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXItZmlsdGVyL2dlbi1maWx0ZXItZGlzcGxheWVyL2dlbi1maWx0ZXItZGlzcGxheWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvdGFibGUtY29udGFpbmVyLWZpbHRlci9nZW4tZmlsdGVyLWRpc3BsYXllci9nZW4tZmlsdGVyLWRpc3BsYXllci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFhNUMsTUFBTSxPQUFPLDJCQUEyQjtJQUM1QixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLFdBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUduRDtRQUNFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFbkMsSUFBSSxDQUFDLFdBQVcsR0FBSSxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDaEQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBRSxFQUFFLENBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ25JLENBQUM7SUFDSixDQUFDO0lBRUMsV0FBVyxDQUF5QjtJQUVwQyxTQUFTLENBQUMsUUFBa0I7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7SUFDakYsQ0FBQzt1R0FqQlEsMkJBQTJCOzJGQUEzQiwyQkFBMkIsK0VDeEJ4Qyx1ZUFVQSx5Z0JEVU0sZUFBZSwySUFBRSxhQUFhLDZ2QkFBRSxnQkFBZ0IsNlRBQUUsd0JBQXdCLDhEQUFFLGFBQWEsK0tBQ3pGLFNBQVMseUNBQUUsYUFBYTs7MkZBR2pCLDJCQUEyQjtrQkFYdkMsU0FBUzsrQkFDSSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxhQUFhO3dCQUN6RixTQUFTLEVBQUUsYUFBYTtxQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWV0YURhdGEsIEZpZWxkVHlwZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFdyYXBwZXJGaWx0ZXJTdG9yZSB9IGZyb20gJy4uL3RhYmxlLXdyYXBwZXItZmlsdGVyLXN0b3JlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFNwYWNlQ2FzZVBpcGUsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd0Yi1maWx0ZXItZGlzcGxheWVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZW4tZmlsdGVyLWRpc3BsYXllci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9nZW4tZmlsdGVyLWRpc3BsYXllci5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgIE1hdEJ1dHRvbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLCBNYXRJY29uTW9kdWxlLFxyXG4gICAgICBBc3luY1BpcGUsIFNwYWNlQ2FzZVBpcGVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbkZpbHRlckRpc3BsYXllckNvbXBvbmVudCB7XHJcbiAgcHJvdGVjdGVkIHRhYmxlU3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XHJcbiAgcHJvdGVjdGVkIGZpbHRlclN0b3JlID0gaW5qZWN0KFdyYXBwZXJGaWx0ZXJTdG9yZSk7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGNvbnN0IHRhYmxlU3RhdGUgPSB0aGlzLnRhYmxlU3RhdGU7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJDb2xzJCA9ICB0YWJsZVN0YXRlLm1ldGFEYXRhQXJyYXkkLnBpcGUoXHJcbiAgICAgIG1hcChtZCA9PiBPYmplY3QudmFsdWVzKCBtZCApLmZpbHRlcihtID0+IG0uZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuSGlkZGVuICYmIG0uZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuTm90TWFwcGVkICYmICFtLm5vRmlsdGVyKSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgICBmaWx0ZXJDb2xzJDogT2JzZXJ2YWJsZTxNZXRhRGF0YVtdPjtcclxuXHJcbiAgICBhZGRGaWx0ZXIobWV0YURhdGE6IE1ldGFEYXRhKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyU3RvcmUuYWRkRmlsdGVyKHtrZXk6IG1ldGFEYXRhLmtleSwgZmllbGRUeXBlOiBtZXRhRGF0YS5maWVsZFR5cGV9KTtcclxuICAgIH1cclxufVxyXG4iLCI8YnV0dG9uIHN0b3AtcHJvcGFnYXRpb24gY2xhc3M9XCJmaWx0ZXItYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgbWF0VG9vbHRpcD1cIkFkZCBGaWx0ZXJcIj5cclxuICA8bWF0LWljb24gY2xhc3M9XCJmaWx0ZXItaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiPmZpbHRlcl9saXN0PC9tYXQtaWNvbj5cclxuPC9idXR0b24+XHJcbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICBAZm9yIChtZCBvZiBmaWx0ZXJDb2xzJCB8IGFzeW5jOyB0cmFjayBtZC5rZXkpIHtcclxuICAgIDxidXR0b24gKGNsaWNrKT1cImFkZEZpbHRlcihtZClcIiBtYXQtbWVudS1pdGVtPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImZpbHRlci1sYWJlbHNcIj57e21kLmRpc3BsYXlOYW1lIHx8IChtZC5rZXkgfCBzcGFjZUNhc2UpfX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICB9XHJcbjwvbWF0LW1lbnU+XHJcbiJdfQ==
|
package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs
CHANGED
|
@@ -5,21 +5,21 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
export class WrapperFilterStore extends ComponentStore {
|
|
6
6
|
constructor() {
|
|
7
7
|
super({ filterInfo: [] });
|
|
8
|
-
this.clearAll = this.updater(() => ({ filterInfo: [] }));
|
|
9
|
-
this.deleteByIndex = this.updater((state, index) => {
|
|
10
|
-
const arr = [...state.filterInfo];
|
|
11
|
-
arr.splice(index, 1);
|
|
12
|
-
return { filterInfo: arr };
|
|
13
|
-
});
|
|
14
|
-
this.currentFilters$ = this.state$.pipe(map(state => state.filterInfo));
|
|
15
|
-
this.addFilter = this.updater((state, filter) => {
|
|
16
|
-
return ({ ...state, filterInfo: [...state.filterInfo, filter] });
|
|
17
|
-
});
|
|
18
8
|
}
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
clearAll = this.updater(() => ({ filterInfo: [] }));
|
|
10
|
+
deleteByIndex = this.updater((state, index) => {
|
|
11
|
+
const arr = [...state.filterInfo];
|
|
12
|
+
arr.splice(index, 1);
|
|
13
|
+
return { filterInfo: arr };
|
|
14
|
+
});
|
|
15
|
+
currentFilters$ = this.state$.pipe(map(state => state.filterInfo));
|
|
16
|
+
addFilter = this.updater((state, filter) => {
|
|
17
|
+
return ({ ...state, filterInfo: [...state.filterInfo, filter] });
|
|
18
|
+
});
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WrapperFilterStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WrapperFilterStore });
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WrapperFilterStore, decorators: [{
|
|
23
23
|
type: Injectable
|
|
24
24
|
}], ctorParameters: () => [] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtd3JhcHBlci1maWx0ZXItc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL3RhYmxlLWNvbnRhaW5lci1maWx0ZXIvdGFibGUtd3JhcHBlci1maWx0ZXItc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUdyQyxNQUFNLE9BQU8sa0JBQW9CLFNBQVEsY0FBNEM7SUFDbkY7UUFDRSxLQUFLLENBQUMsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRSxFQUFFLENBQUEsQ0FBQyxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUMsS0FBWSxFQUFDLEVBQUU7UUFDakQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyQixPQUFPLEVBQUMsVUFBVSxFQUFDLEdBQUcsRUFBQyxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0lBRUgsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRW5FLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFDLE1BQW9CLEVBQUMsRUFBRTtRQUNyRCxPQUFPLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBQyxVQUFVLEVBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUMsTUFBTSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQyxDQUFBO3VHQWhCUyxrQkFBa0I7MkdBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gXCJAbmdyeC9jb21wb25lbnQtc3RvcmVcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFBhcnRpYWxGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mb1wiO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBXcmFwcGVyRmlsdGVyU3RvcmUgIGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8e2ZpbHRlckluZm86UGFydGlhbEZpbHRlcltdfT57XHJcbiAgY29uc3RydWN0b3IoKXtcclxuICAgIHN1cGVyKHtmaWx0ZXJJbmZvOltdfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckFsbCA9IHRoaXMudXBkYXRlcigoKT0+KHtmaWx0ZXJJbmZvOltdfSkpO1xyXG4gIGRlbGV0ZUJ5SW5kZXggPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLGluZGV4Om51bWJlcik9PntcclxuICAgIGNvbnN0IGFyciA9IFsuLi5zdGF0ZS5maWx0ZXJJbmZvXTtcclxuICAgIGFyci5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgcmV0dXJuIHtmaWx0ZXJJbmZvOmFycn07XHJcbiAgfSk7XHJcblxyXG4gIGN1cnJlbnRGaWx0ZXJzJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKHN0YXRlID0+IHN0YXRlLmZpbHRlckluZm8pKTtcclxuXHJcbiAgYWRkRmlsdGVyID0gdGhpcy51cGRhdGVyKChzdGF0ZSxmaWx0ZXI6UGFydGlhbEZpbHRlcik9PntcclxuICAgIHJldHVybiAoey4uLnN0YXRlLGZpbHRlckluZm86Wy4uLnN0YXRlLmZpbHRlckluZm8sZmlsdGVyXX0pO1xyXG4gIH0pXHJcbn1cclxuIl19
|
|
@@ -1,24 +1,32 @@
|
|
|
1
|
-
import { Directive, Input,
|
|
1
|
+
import { Directive, TemplateRef, Input, inject } from '@angular/core';
|
|
2
|
+
import { CdkColumnDef } from '@angular/cdk/table';
|
|
2
3
|
import { FieldType } from '../interfaces/report-def';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/cdk/table";
|
|
5
5
|
// here is how to use it
|
|
6
6
|
// <generic-table [report]="report">
|
|
7
7
|
// <p *customCell="'column1'; let element = element" [class.makeMeRed]="element?.port">If Port, i will be red</p>
|
|
8
8
|
// <p *customCell="'column2'">I am custom cell two </p>
|
|
9
9
|
// </generic-table>
|
|
10
10
|
export class CustomCellDirective {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
templateRef = inject(TemplateRef, { optional: true });
|
|
12
|
+
columnDef = inject(CdkColumnDef, { optional: true });
|
|
13
|
+
customCell;
|
|
14
|
+
displayName;
|
|
15
|
+
preSort;
|
|
16
|
+
TemplateRef;
|
|
17
|
+
customCellOrder;
|
|
18
|
+
customCellWidth;
|
|
19
|
+
customCellTableRef;
|
|
20
|
+
/**
|
|
21
|
+
* true if column not mapped to a property in the data source. Default is false.
|
|
22
|
+
*/
|
|
23
|
+
customCellNotMapped = false;
|
|
24
|
+
constructor() {
|
|
25
|
+
if (this.templateRef !== null)
|
|
26
|
+
this.TemplateRef = this.templateRef;
|
|
19
27
|
}
|
|
20
28
|
ngAfterContentInit() {
|
|
21
|
-
if (this.TemplateRef === null) {
|
|
29
|
+
if (this.TemplateRef === null && this.templateRef !== null) {
|
|
22
30
|
this.TemplateRef = this.templateRef;
|
|
23
31
|
}
|
|
24
32
|
}
|
|
@@ -37,20 +45,16 @@ export class CustomCellDirective {
|
|
|
37
45
|
static ngTemplateContextGuard(dir, ctx) {
|
|
38
46
|
return true;
|
|
39
47
|
}
|
|
40
|
-
static
|
|
41
|
-
static
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CustomCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
49
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: CustomCellDirective, isStandalone: true, selector: "[customCell]", inputs: { customCell: "customCell", displayName: "displayName", preSort: "preSort", TemplateRef: "TemplateRef", customCellOrder: "customCellOrder", customCellWidth: "customCellWidth", customCellTableRef: "customCellTableRef", customCellNotMapped: "customCellNotMapped" }, ngImport: i0 });
|
|
42
50
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: CustomCellDirective, decorators: [{
|
|
44
52
|
type: Directive,
|
|
45
53
|
args: [{
|
|
46
54
|
selector: '[customCell]',
|
|
47
55
|
standalone: true
|
|
48
56
|
}]
|
|
49
|
-
}], ctorParameters: () => [
|
|
50
|
-
type: Optional
|
|
51
|
-
}] }, { type: i1.CdkColumnDef, decorators: [{
|
|
52
|
-
type: Optional
|
|
53
|
-
}] }], propDecorators: { customCell: [{
|
|
57
|
+
}], ctorParameters: () => [], propDecorators: { customCell: [{
|
|
54
58
|
type: Input
|
|
55
59
|
}], displayName: [{
|
|
56
60
|
type: Input
|
|
@@ -67,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
67
71
|
}], customCellNotMapped: [{
|
|
68
72
|
type: Input
|
|
69
73
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNlbGwtZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvZGlyZWN0aXZlcy9jdXN0b20tY2VsbC1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFvQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBcUIsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBT3hFLHdCQUF3QjtBQUN4QixvQ0FBb0M7QUFDcEMscUhBQXFIO0FBQ3JILDJEQUEyRDtBQUMzRCxtQkFBbUI7QUFLbkIsTUFBTSxPQUFPLG1CQUFtQjtJQUNwQixXQUFXLEdBQUcsTUFBTSxDQUFtQixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRW5ELFVBQVUsQ0FBVTtJQUNwQixXQUFXLENBQVU7SUFDckIsT0FBTyxDQUFXO0lBQ2xCLFdBQVcsQ0FBb0I7SUFDL0IsZUFBZSxDQUFVO0lBQ3pCLGVBQWUsQ0FBVTtJQUN6QixrQkFBa0IsQ0FBbUI7SUFDOUM7O09BRUc7SUFDTSxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDckM7UUFDRSxJQUFHLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSTtZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkMsQ0FBQztJQUNELGtCQUFrQjtRQUNqQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQW9CO1FBQzlCLE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDcEIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxFQUFFLFdBQVc7WUFDdEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUSxFQUFFLE9BQU87WUFDMUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDdEcsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksUUFBUSxFQUFFLEtBQUs7WUFDOUMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksUUFBUSxFQUFFLEtBQUs7WUFDOUMsVUFBVSxFQUFFLElBQUk7WUFDaEIsUUFBUSxFQUFFLENBQUMsUUFBUTtTQUNwQixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBSSxHQUEyQixFQUFFLEdBQVE7UUFDcEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3VHQXZDUSxtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3dEQUtZLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUlHLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYsIElucHV0LCBBZnRlckNvbnRlbnRJbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2RrQ29sdW1uRGVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcclxuaW1wb3J0IHsgU29ydERlZiwgTWV0YURhdGEsIEZpZWxkVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlciB9IGZyb20gJy4uL2NsYXNzZXMvdGFibGUtYnVpbGRlcic7XHJcblxyXG5pbnRlcmZhY2UgQ3VzdG9tQ2VsbENvbnRleHQ8VD4ge1xyXG4gICRpbXBsaWNpdDogVCxcclxuICBlbGVtZW50OiBULFxyXG59XHJcbi8vIGhlcmUgaXMgaG93IHRvIHVzZSBpdFxyXG4vLyA8Z2VuZXJpYy10YWJsZSBbcmVwb3J0XT1cInJlcG9ydFwiPlxyXG4vLyAgICAgPHAgKmN1c3RvbUNlbGw9XCInY29sdW1uMSc7IGxldCBlbGVtZW50ID0gZWxlbWVudFwiIFtjbGFzcy5tYWtlTWVSZWRdPVwiZWxlbWVudD8ucG9ydFwiPklmIFBvcnQsIGkgd2lsbCBiZSByZWQ8L3A+XHJcbi8vICAgICA8cCAqY3VzdG9tQ2VsbD1cIidjb2x1bW4yJ1wiPkkgYW0gY3VzdG9tIGNlbGwgdHdvIDwvcD5cclxuLy8gPC9nZW5lcmljLXRhYmxlPlxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2N1c3RvbUNlbGxdJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbUNlbGxEaXJlY3RpdmU8VCA9IGFueT4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcclxuICAgIHByaXZhdGUgdGVtcGxhdGVSZWYgPSBpbmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4oVGVtcGxhdGVSZWYsIHsgb3B0aW9uYWw6IHRydWUgfSk7XHJcbiAgICBwdWJsaWMgY29sdW1uRGVmID0gaW5qZWN0KENka0NvbHVtbkRlZiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcclxuXHJcbiAgICBASW5wdXQoKSBjdXN0b21DZWxsITogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwcmVTb3J0PzogU29ydERlZjtcclxuICAgIEBJbnB1dCgpIFRlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBJbnB1dCgpIGN1c3RvbUNlbGxPcmRlcj86IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIGN1c3RvbUNlbGxXaWR0aD86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGN1c3RvbUNlbGxUYWJsZVJlZj86IFRhYmxlQnVpbGRlcjxUPjtcclxuICAgIC8qKlxyXG4gICAgICogdHJ1ZSBpZiBjb2x1bW4gbm90IG1hcHBlZCB0byBhIHByb3BlcnR5IGluIHRoZSBkYXRhIHNvdXJjZS4gRGVmYXVsdCBpcyBmYWxzZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgY3VzdG9tQ2VsbE5vdE1hcHBlZCA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgIGlmKHRoaXMudGVtcGxhdGVSZWYgIT09IG51bGwpXHJcbiAgICAgICAgdGhpcy5UZW1wbGF0ZVJlZiA9IHRoaXMudGVtcGxhdGVSZWY7XHJcbiAgICAgfVxyXG4gICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgICAgaWYgKHRoaXMuVGVtcGxhdGVSZWYgPT09IG51bGwgJiYgdGhpcy50ZW1wbGF0ZVJlZiAhPT0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuVGVtcGxhdGVSZWYgPSB0aGlzLnRlbXBsYXRlUmVmO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TWV0YURhdGEobWV0YURhdGE/IDogTWV0YURhdGEpOiBNZXRhRGF0YSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAga2V5OiB0aGlzLmN1c3RvbUNlbGwsXHJcbiAgICAgICAgZGlzcGxheU5hbWU6IHRoaXMuZGlzcGxheU5hbWUgPz8gbWV0YURhdGE/LmRpc3BsYXlOYW1lLFxyXG4gICAgICAgIHByZVNvcnQ6IHRoaXMucHJlU29ydCA/PyBtZXRhRGF0YT8ucHJlU29ydCxcclxuICAgICAgICBmaWVsZFR5cGU6IG1ldGFEYXRhPy5maWVsZFR5cGUgPz8gKHRoaXMuY3VzdG9tQ2VsbE5vdE1hcHBlZCA/IEZpZWxkVHlwZS5Ob3RNYXBwZWQgOiBGaWVsZFR5cGUuVW5rbm93biksXHJcbiAgICAgICAgb3JkZXI6IHRoaXMuY3VzdG9tQ2VsbE9yZGVyID8/IG1ldGFEYXRhPy5vcmRlcixcclxuICAgICAgICB3aWR0aDogdGhpcy5jdXN0b21DZWxsV2lkdGggPz8gbWV0YURhdGE/LndpZHRoLFxyXG4gICAgICAgIGN1c3RvbUNlbGw6IHRydWUsXHJcbiAgICAgICAgbm9FeHBvcnQ6ICFtZXRhRGF0YSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KGRpcjogQ3VzdG9tQ2VsbERpcmVjdGl2ZTxUPiwgY3R4OiBhbnkpOiBjdHggaXMgQ3VzdG9tQ2VsbENvbnRleHQ8VD4ge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxufVxyXG4iXX0=
|