@one-paragon/angular-utilities 1.2.9 → 1.2.10-beta-1

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 (46) hide show
  1. package/action-state/ngrx.d.ts +1 -1
  2. package/esm2022/http-request-state/HttpRequestStateStore.mjs +19 -3
  3. package/esm2022/http-request-state/types.mjs +1 -1
  4. package/esm2022/public-api.mjs +2 -1
  5. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +18 -12
  6. package/esm2022/table-builder/classes/TableState.mjs +5 -3
  7. package/esm2022/table-builder/classes/data-store.mjs +15 -0
  8. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +14 -1
  9. package/esm2022/table-builder/classes/table-builder.mjs +3 -3
  10. package/esm2022/table-builder/classes/table-store.mjs +71 -46
  11. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +2 -2
  12. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +100 -55
  13. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +6 -4
  14. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +4 -2
  15. package/esm2022/table-builder/components/table-container/table-container.mjs +90 -65
  16. package/esm2022/table-builder/components/table-container/tableProps.mjs +2 -1
  17. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +36 -10
  18. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +5 -6
  19. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +9 -11
  20. package/esm2022/table-builder/directives/custom-cell-directive.mjs +12 -13
  21. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +4 -4
  22. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +1 -1
  23. package/esm2022/table-builder/services/export-to-csv.service.mjs +3 -3
  24. package/fesm2022/one-paragon-angular-utilities.mjs +537 -374
  25. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
  26. package/http-request-state/HttpRequestStateStore.d.ts +5 -0
  27. package/http-request-state/types.d.ts +1 -1
  28. package/package.json +1 -1
  29. package/public-api.d.ts +1 -2
  30. package/table-builder/classes/TableBuilderDataSource.d.ts +2 -3
  31. package/table-builder/classes/TableState.d.ts +14 -4
  32. package/table-builder/classes/data-store.d.ts +8 -0
  33. package/table-builder/classes/table-builder-general-settings.d.ts +6 -0
  34. package/table-builder/classes/table-store.d.ts +16 -28
  35. package/table-builder/components/generic-table/generic-table.component.d.ts +20 -10
  36. package/table-builder/components/generic-table/paginator.component.d.ts +1 -0
  37. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +1 -0
  38. package/table-builder/components/table-container/table-container-imports.d.ts +1 -1
  39. package/table-builder/components/table-container/table-container.d.ts +15 -8
  40. package/table-builder/components/table-container/tableProps.d.ts +1 -0
  41. package/table-builder/components/table-container/virtual-scroll-container.d.ts +9 -3
  42. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +2 -3
  43. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +1 -3
  44. package/table-builder/directives/custom-cell-directive.d.ts +6 -4
  45. package/table-builder/directives/table-wrapper.directive.d.ts +1 -1
  46. package/table-builder/interfaces/ColumnInfo.d.ts +1 -1
@@ -1,22 +1,28 @@
1
- import { ChangeDetectionStrategy, Component, effect, forwardRef, untracked, viewChild, inject } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, effect, forwardRef, untracked, viewChild, inject, contentChild } from '@angular/core';
2
2
  import { CdkVirtualScrollViewport, ScrollingModule, VIRTUAL_SCROLL_STRATEGY, } from '@angular/cdk/scrolling';
3
- import { distinctUntilChanged, map } from 'rxjs';
3
+ import { combineLatest, distinctUntilChanged, map } from 'rxjs';
4
4
  import { defaultShareReplay, subscriber } from '../../../rxjs';
5
5
  import { TableStore } from '../../classes/table-store';
6
6
  import { TableVirtualScrollStrategy } from '../scroll-strategy';
7
7
  import { VirtualScrollOptions } from '../../classes/table-builder-general-settings';
8
+ import { DataStore } from '../../classes/data-store';
9
+ import { GenericTableComponent } from '../generic-table/generic-table.component';
8
10
  import * as i0 from "@angular/core";
9
11
  import * as i1 from "@angular/cdk/scrolling";
10
12
  export class VirtualScrollContainer {
11
13
  state = inject(TableStore);
14
+ dataStore = inject(DataStore);
15
+ genericTable = contentChild(GenericTableComponent);
16
+ sub;
17
+ footerStyle = 'regular-footer';
12
18
  viewport = viewChild(CdkVirtualScrollViewport);
13
19
  defaultOptions = new VirtualScrollOptions();
14
20
  scrollStrategy = new TableVirtualScrollStrategy(this.computedRowHeight(), this.computedHeaderHeight());
15
- dataLength$ = this.state.state$.pipe(map(s => ({
21
+ dataLength$ = combineLatest([this.state.state$, this.dataStore.state$]).pipe(map(([s, d]) => ({
16
22
  paginated: s.notPersistedTableSettings.usePaginator && !s.showAll,
17
23
  pageSize: s.userDefined?.pageSize || s.pageSize,
18
24
  pageNumber: s.currentPage,
19
- dataLen: s.dataLen
25
+ dataLen: d.dataLen
20
26
  })), distinctUntilChanged((a, b) => a.dataLen === b.dataLen &&
21
27
  a.pageSize === b.pageSize &&
22
28
  a.pageNumber === b.pageNumber &&
@@ -37,7 +43,7 @@ export class VirtualScrollContainer {
37
43
  if (!!viewport) {
38
44
  addEventListener('resize', this.resizeHandler);
39
45
  this.subscriber.on(viewport.renderedRangeStream, (range) => {
40
- this.state.updateState({
46
+ this.dataStore.patchState({
41
47
  virtualEnds: {
42
48
  start: range.start,
43
49
  end: range.end + 25,
@@ -46,15 +52,22 @@ export class VirtualScrollContainer {
46
52
  });
47
53
  var offset$ = viewport.scrolledIndexChange.pipe(map(() => viewport.getOffsetToRenderedContentStart() ?? 0), distinctUntilChanged(), defaultShareReplay());
48
54
  this.subscriber.on(offset$, (offset) => {
49
- this.state.updateState({ virtualScrollOffset: offset });
55
+ this.dataStore.patchState({ virtualScrollOffset: offset });
50
56
  });
51
57
  this.setSize(this.viewport().elementRef);
52
58
  }
53
59
  ;
54
60
  });
55
61
  });
62
+ ngAfterViewInit() {
63
+ const footerRowStyle$ = this.genericTable()?.$footerRowStyle();
64
+ if (footerRowStyle$) {
65
+ this.footerStyle = footerRowStyle$;
66
+ }
67
+ }
56
68
  ngOnDestroy() {
57
69
  removeEventListener('resize', this.resizeHandler);
70
+ this.sub?.unsubscribe();
58
71
  }
59
72
  setSize(el) {
60
73
  const vsViewport = el.nativeElement;
@@ -62,7 +75,20 @@ export class VirtualScrollContainer {
62
75
  const rowHeight = this.computedRowHeight();
63
76
  let amountOfVisibleItems = virtualScrollOptions?.amountOfVisibleItems || this.defaultOptions.amountOfVisibleItems;
64
77
  virtualScrollOptions?.amountOfVisibleItems || this.defaultOptions.amountOfVisibleItems;
65
- let height = (rowHeight * amountOfVisibleItems);
78
+ let height = 0;
79
+ var sub = this.dataLength$.subscribe(dataLength => {
80
+ if (dataLength < amountOfVisibleItems) {
81
+ height = +(this.computedRowHeight() * dataLength);
82
+ }
83
+ else {
84
+ height = (rowHeight * amountOfVisibleItems);
85
+ }
86
+ });
87
+ if (this.footerStyle !== 'no-footer') {
88
+ height += rowHeight;
89
+ console.log(height);
90
+ console.log('regular-footer');
91
+ }
66
92
  if (!this.state.tableSettings().hideHeader) {
67
93
  const headerHeight = this.computedHeaderHeight();
68
94
  height += headerHeight;
@@ -72,7 +98,7 @@ export class VirtualScrollContainer {
72
98
  vsViewport.setAttribute('style', `height: ${height}px !important;`);
73
99
  this.viewport()?.checkViewportSize();
74
100
  const virtualScrollOffset = this.viewport()?.getOffsetToRenderedContentStart() ?? 0;
75
- this.state.updateState({ virtualScrollOffset });
101
+ this.dataStore.patchState({ virtualScrollOffset });
76
102
  }
77
103
  resizeHandler = () => {
78
104
  if (this.viewport()) {
@@ -90,7 +116,7 @@ export class VirtualScrollContainer {
90
116
  return headerHeight;
91
117
  }
92
118
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: VirtualScrollContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
93
- 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: `
119
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: VirtualScrollContainer, isStandalone: true, selector: "tb-virtual-scroll-container", queries: [{ propertyName: "genericTable", first: true, predicate: GenericTableComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], ngImport: i0, template: `
94
120
  <cdk-virtual-scroll-viewport>
95
121
  <ng-content/>
96
122
  </cdk-virtual-scroll-viewport>
@@ -123,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
123
149
  ],
124
150
  }]
125
151
  }] });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdmlydHVhbC1zY3JvbGwtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXlCLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUNMLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsdUJBQXVCLEdBQ3hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBb0JwRixNQUFNLE9BQU8sc0JBQXNCO0lBQ3pCLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFbkMsUUFBUSxHQUFHLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRS9DLGNBQWMsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFDNUMsY0FBYyxHQUFHLElBQUksMEJBQTBCLENBQzdDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUN4QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FDMUIsQ0FBQztJQUdKLFdBQVcsR0FBRyxJQUFJLENBQUMs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QUFDO3VHQS9HVSxzQkFBc0I7MkZBQXRCLHNCQUFzQixpSUFHWix3QkFBd0IsZ0VBbkJuQzs7OztLQUlQLDJEQUdPLGVBQWUsZ01BQ1Y7WUFDYjtnQkFDRSxPQUFPLEVBQUUsdUJBQXVCO2dCQUNoQyxVQUFVLEVBQUUsQ0FBQyxDQUF5QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYztnQkFDM0QsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUM7YUFDakQ7U0FDRjs7MkZBRVUsc0JBQXNCO2tCQWxCbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUU7Ozs7S0FJUDtvQkFDSCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFVBQVUsRUFBRSxDQUFDLENBQXlCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjOzRCQUMzRCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLENBQUM7eUJBQ2pEO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBlZmZlY3QsIGZvcndhcmRSZWYsIHVudHJhY2tlZCwgdmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCxcbiAgU2Nyb2xsaW5nTW9kdWxlLFxuICBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWZhdWx0U2hhcmVSZXBsYXksIHN1YnNjcmliZXIgfSBmcm9tICcuLi8uLi8uLi9yeGpzJztcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcbmltcG9ydCB7IFRhYmxlVmlydHVhbFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi4vc2Nyb2xsLXN0cmF0ZWd5JztcbmltcG9ydCB7IFZpcnR1YWxTY3JvbGxPcHRpb25zIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0Yi12aXJ0dWFsLXNjcm9sbC1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgICA8bmctY29udGVudC8+XG4gICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTY3JvbGxpbmdNb2R1bGVdLFxuICB2aWV3UHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogVklSVFVBTF9TQ1JPTExfU1RSQVRFR1ksXG4gICAgICB1c2VGYWN0b3J5OiAoYzogVmlydHVhbFNjcm9sbENvbnRhaW5lcikgPT4gYy5zY3JvbGxTdHJhdGVneSxcbiAgICAgIGRlcHM6IFtmb3J3YXJkUmVmKCgpID0+IFZpcnR1YWxTY3JvbGxDb250YWluZXIpXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsQ29udGFpbmVyIGltcGxlbWVudHMgIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XG5cbiAgdmlld3BvcnQgPSB2aWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KTtcblxuICBkZWZhdWx0T3B0aW9ucyA9IG5ldyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucygpO1xuICBzY3JvbGxTdHJhdGVneSA9IG5ldyBUYWJsZVZpcnR1YWxTY3JvbGxTdHJhdGVneShcbiAgICB0aGlzLmNvbXB1dGVkUm93SGVpZ2h0KCksXG4gICAgdGhpcy5jb21wdXRlZEhlYWRlckhlaWdodCgpXG4gICAgKTtcblxuXG4gIGRhdGFMZW5ndGgkID0gdGhpcy5zdGF0ZS5zdGF0ZSQucGlwZShcbiAgICBtYXAocyA9PiAoe1xuICAgICAgcGFnaW5hdGVkOiBzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MudXNlUGFnaW5hdG9yICYmICFzLnNob3dBbGwsXG4gICAgICBwYWdlU2l6ZTogcy51c2VyRGVmaW5lZD8ucGFnZVNpemUgfHwgcy5wYWdlU2l6ZSxcbiAgICAgIHBhZ2VOdW1iZXI6IHMuY3VycmVudFBhZ2UsXG4gICAgICBkYXRhTGVuOiBzLmRhdGFMZW5cbiAgICB9KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+XG4gICAgICBhLmRhdGFMZW4gPT09IGIuZGF0YUxlbiAmJlxuICAgICAgYS5wYWdlU2l6ZSA9PT0gYi5wYWdlU2l6ZSAmJlxuICAgICAgYS5wYWdlTnVtYmVyID09PSBiLnBhZ2VOdW1iZXIgJiZcbiAgICAgIGEucGFnaW5hdGVkID09PSBiLnBhZ2luYXRlZCksXG4gICAgbWFwKCh7ZGF0YUxlbiwgcGFnZU51bWJlciwgcGFnZVNpemUsIHBhZ2luYXRlZH0pID0+IHtcbiAgICAgIGlmKHBhZ2luYXRlZCkgcmV0dXJuIE1hdGgubWluKGRhdGFMZW4gLSAocGFnZU51bWJlciAqIHBhZ2VTaXplKSwgcGFnZVNpemUpO1xuICAgICAgcmV0dXJuIGRhdGFMZW47XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG5cbiAgc3Vic2NyaWJlciA9IHN1YnNjcmliZXIodGhpcy5kYXRhTGVuZ3RoJCwgKGRhdGFMZW5ndGgpID0+IHtcbiAgICB0aGlzLnNjcm9sbFN0cmF0ZWd5LnNldERhdGFMZW5ndGgoZGF0YUxlbmd0aCk7XG5cbiAgICBpZih0aGlzLnZpZXdwb3J0KCkpe1xuICAgICAgdGhpcy5zZXRTaXplKHRoaXMudmlld3BvcnQoKSEuZWxlbWVudFJlZik7XG4gICAgfVxuICB9KTtcblxuXG4gIF8gPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydCgpO1xuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICBpZighIXZpZXdwb3J0KXtcbiAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVIYW5kbGVyKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVyLm9uKHZpZXdwb3J0LnJlbmRlcmVkUmFuZ2VTdHJlYW0sIChyYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RhdGUudXBkYXRlU3RhdGUoe1xuICAgICAgICAgICAgdmlydHVhbEVuZHM6IHtcbiAgICAgICAgICAgICAgc3RhcnQ6IHJhbmdlLnN0YXJ0LFxuICAgICAgICAgICAgICBlbmQ6IHJhbmdlLmVuZCArIDI1LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG9mZnNldCQgPSB2aWV3cG9ydC5zY3JvbGxlZEluZGV4Q2hhbmdlLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IHZpZXdwb3J0LmdldE9mZnNldFRvUmVuZGVyZWRDb250ZW50U3RhcnQoKSA/PyAwKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgIGRlZmF1bHRTaGFyZVJlcGxheSgpXG4gICAgICAgICk7XG4gICAgXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlci5vbihvZmZzZXQkLCAob2Zmc2V0KSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0ZS51cGRhdGVTdGF0ZSh7IHZpcnR1YWxTY3JvbGxPZmZzZXQ6IG9mZnNldCB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2V0U2l6ZSh0aGlzLnZpZXdwb3J0KCkhLmVsZW1lbnRSZWYpO1xuICAgICAgfTtcbiAgICB9KVxuXG4gIH0pXG5cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICByZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUhhbmRsZXIpO1xuICB9XG5cbiAgc2V0U2l6ZShlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBjb25zdCB2c1ZpZXdwb3J0ID0gZWwubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB2aXJ0dWFsU2Nyb2xsT3B0aW9ucyA9IHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVZpcnR1YWxTY3JvbGwhIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zO1xuICAgIGNvbnN0IHJvd0hlaWdodCA9IHRoaXMuY29tcHV0ZWRSb3dIZWlnaHQoKTtcbiAgICBsZXQgYW1vdW50T2ZWaXNpYmxlSXRlbXMgPSB2aXJ0dWFsU2Nyb2xsT3B0aW9ucz8uYW1vdW50T2ZWaXNpYmxlSXRlbXMgfHwgdGhpcy5kZWZhdWx0T3B0aW9ucy5hbW91bnRPZlZpc2libGVJdGVtcztcbiAgICAgIHZpcnR1YWxTY3JvbGxPcHRpb25zPy5hbW91bnRPZlZpc2libGVJdGVtcyB8fCB0aGlzLmRlZmF1bHRPcHRpb25zLmFtb3VudE9mVmlzaWJsZUl0ZW1zO1xuICAgIGxldCBoZWlnaHQgPSAocm93SGVpZ2h0ICogYW1vdW50T2ZWaXNpYmxlSXRlbXMpO1xuICAgIGlmKCF0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS5oaWRlSGVhZGVyKXtcbiAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuY29tcHV0ZWRIZWFkZXJIZWlnaHQoKTtcbiAgICAgIGhlaWdodCArPSBoZWFkZXJIZWlnaHQ7XG4gICAgfVxuICAgIGlmKHZpcnR1YWxTY3JvbGxPcHRpb25zPy5tYXhWaWV3UG9ydEhlaWdodCAmJiB2aXJ0dWFsU2Nyb2xsT3B0aW9ucy5tYXhWaWV3UG9ydEhlaWdodCA8IGhlaWdodCkgaGVpZ2h0ID0gdmlydHVhbFNjcm9sbE9wdGlvbnMubWF4Vmlld1BvcnRIZWlnaHQ7XG4gICAgdnNWaWV3cG9ydC5zZXRBdHRyaWJ1dGUoXG4gICAgICAnc3R5bGUnLFxuICAgICAgYGhlaWdodDogJHtoZWlnaHR9cHggIWltcG9ydGFudDtgLFxuICAgICk7XG4gICAgdGhpcy52aWV3cG9ydCgpPy5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xuICAgIGNvbnN0IHZpcnR1YWxTY3JvbGxPZmZzZXQgPSB0aGlzLnZpZXdwb3J0KCk/LmdldE9mZnNldFRvUmVuZGVyZWRDb250ZW50U3RhcnQoKSA/PyAwXG4gICAgdGhpcy5zdGF0ZS51cGRhdGVTdGF0ZSh7IHZpcnR1YWxTY3JvbGxPZmZzZXQgfSk7XG4gIH1cblxuICByZXNpemVIYW5kbGVyID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLnZpZXdwb3J0KCkpIHtcbiAgICAgIHRoaXMuc2V0U2l6ZSh0aGlzLnZpZXdwb3J0KCkhLmVsZW1lbnRSZWYpO1xuICAgIH1cbiAgfTtcblxuICBjb21wdXRlZFJvd0hlaWdodCgpe1xuICAgIGNvbnN0IHZpcnR1YWxTY3JvbGxPcHRpb25zID0gdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkudXNlVmlydHVhbFNjcm9sbCEgYXMgVmlydHVhbFNjcm9sbE9wdGlvbnM7XG4gICAgY29uc3Qgcm93SGVpZ2h0ID0gdmlydHVhbFNjcm9sbE9wdGlvbnM/LnJvd0hlaWdodHx8ICh0eXBlb2YgdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkucm93SGVpZ2h0ID09PSAnbnVtYmVyJyAmJiB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS5yb3dIZWlnaHQgYXMgbnVtYmVyKSB8fCB0aGlzLmRlZmF1bHRPcHRpb25zLnJvd0hlaWdodDtcbiAgICByZXR1cm4gcm93SGVpZ2h0O1xuICB9XG5cbiAgY29tcHV0ZWRIZWFkZXJIZWlnaHQoKXtcbiAgICBjb25zdCB2aXJ0dWFsU2Nyb2xsT3B0aW9ucyA9IHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLnVzZVZpcnR1YWxTY3JvbGwhIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zO1xuICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHZpcnR1YWxTY3JvbGxPcHRpb25zPy5oZWFkZXJIZWlnaHR8fCAodHlwZW9mICB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS5oZWFkZXJIZWlnaHQgPT09ICdudW1iZXInICYmIHRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLmhlYWRlckhlaWdodCBhcyBudW1iZXIpIHx8IHRoaXMuZGVmYXVsdE9wdGlvbnMuaGVhZGVySGVpZ2h0O1xuICAgIHJldHVybiBoZWFkZXJIZWlnaHQ7XG4gIH1cbn1cbiJdfQ==
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1zY3JvbGwtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdmlydHVhbC1zY3JvbGwtY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXlCLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWlCLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZix1QkFBdUIsR0FDeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFvQmpGLE1BQU0sT0FBTyxzQkFBc0I7SUFHekIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQixTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLFlBQVksR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMzRCxH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O1FBQ2xOLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7dUdBMUlVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLGlJQUtHLHFCQUFxQiwwR0FJcEMsd0JBQXdCLGdFQXpCbkM7Ozs7S0FJUCwyREFHTyxlQUFlLGdNQUNWO1lBQ2I7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsVUFBVSxFQUFFLENBQUMsQ0FBeUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWM7Z0JBQzNELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2FBQ2pEO1NBQ0Y7OzJGQUVVLHNCQUFzQjtrQkFsQmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsUUFBUSxFQUFFOzs7O0tBSVA7b0JBQ0gsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLGFBQWEsRUFBRTt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxVQUFVLEVBQUUsQ0FBQyxDQUF5QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYzs0QkFDM0QsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO3lCQUNqRDtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgZWZmZWN0LCBmb3J3YXJkUmVmLCB1bnRyYWNrZWQsIHZpZXdDaGlsZCwgaW5qZWN0LCBBZnRlclZpZXdJbml0LCBjb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCxcbiAgU2Nyb2xsaW5nTW9kdWxlLFxuICBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSwgc3Vic2NyaWJlciB9IGZyb20gJy4uLy4uLy4uL3J4anMnO1xuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xuaW1wb3J0IHsgVGFibGVWaXJ0dWFsU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICcuLi9zY3JvbGwtc3RyYXRlZ3knO1xuaW1wb3J0IHsgVmlydHVhbFNjcm9sbE9wdGlvbnMgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLWJ1aWxkZXItZ2VuZXJhbC1zZXR0aW5ncyc7XG5pbXBvcnQgeyBEYXRhU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2RhdGEtc3RvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBHZW5lcmljVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmljLXRhYmxlL2dlbmVyaWMtdGFibGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGItdmlydHVhbC1zY3JvbGwtY29udGFpbmVyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgICAgPG5nLWNvbnRlbnQvPlxuICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbU2Nyb2xsaW5nTW9kdWxlXSxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFZJUlRVQUxfU0NST0xMX1NUUkFURUdZLFxuICAgICAgdXNlRmFjdG9yeTogKGM6IFZpcnR1YWxTY3JvbGxDb250YWluZXIpID0+IGMuc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICBkZXBzOiBbZm9yd2FyZFJlZigoKSA9PiBWaXJ0dWFsU2Nyb2xsQ29udGFpbmVyKV0sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlydHVhbFNjcm9sbENvbnRhaW5lciBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cblxuICBwcml2YXRlIHN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xuICBwcml2YXRlIGRhdGFTdG9yZSA9IGluamVjdChEYXRhU3RvcmUpO1xuICBwcml2YXRlIGdlbmVyaWNUYWJsZSA9IGNvbnRlbnRDaGlsZChHZW5lcmljVGFibGVDb21wb25lbnQpO1xuICBzdWI6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgZm9vdGVyU3R5bGUgPSAncmVndWxhci1mb290ZXInO1xuXG4gIHZpZXdwb3J0ID0gdmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCk7XG5cbiAgZGVmYXVsdE9wdGlvbnMgPSBuZXcgVmlydHVhbFNjcm9sbE9wdGlvbnMoKTtcbiAgc2Nyb2xsU3RyYXRlZ3kgPSBuZXcgVGFibGVWaXJ0dWFsU2Nyb2xsU3RyYXRlZ3koXG4gICAgdGhpcy5jb21wdXRlZFJvd0hlaWdodCgpLFxuICAgIHRoaXMuY29tcHV0ZWRIZWFkZXJIZWlnaHQoKVxuICApO1xuXG5cbiAgZGF0YUxlbmd0aCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0YXRlLnN0YXRlJCwgdGhpcy5kYXRhU3RvcmUuc3RhdGUkXSkucGlwZShcbiAgICBtYXAoKFtzLCBkXSkgPT4gKHtcbiAgICAgIHBhZ2luYXRlZDogcy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnVzZVBhZ2luYXRvciAmJiAhcy5zaG93QWxsLFxuICAgICAgcGFnZVNpemU6IHMudXNlckRlZmluZWQ/LnBhZ2VTaXplIHx8IHMucGFnZVNpemUsXG4gICAgICBwYWdlTnVtYmVyOiBzLmN1cnJlbnRQYWdlLFxuICAgICAgZGF0YUxlbjogZC5kYXRhTGVuXG4gICAgfSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PlxuICAgICAgYS5kYXRhTGVuID09PSBiLmRhdGFMZW4gJiZcbiAgICAgIGEucGFnZVNpemUgPT09IGIucGFnZVNpemUgJiZcbiAgICAgIGEucGFnZU51bWJlciA9PT0gYi5wYWdlTnVtYmVyICYmXG4gICAgICBhLnBhZ2luYXRlZCA9PT0gYi5wYWdpbmF0ZWQpLFxuICAgIG1hcCgoeyBkYXRhTGVuLCBwYWdlTnVtYmVyLCBwYWdlU2l6ZSwgcGFnaW5hdGVkIH0pID0+IHtcbiAgICAgIGlmIChwYWdpbmF0ZWQpIHJldHVybiBNYXRoLm1pbihkYXRhTGVuIC0gKHBhZ2VOdW1iZXIgKiBwYWdlU2l6ZSksIHBhZ2VTaXplKTtcbiAgICAgIHJldHVybiBkYXRhTGVuO1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcblxuXG4gIHN1YnNjcmliZXIgPSBzdWJzY3JpYmVyKHRoaXMuZGF0YUxlbmd0aCQsIChkYXRhTGVuZ3RoKSA9PiB7XG4gICAgdGhpcy5zY3JvbGxTdHJhdGVneS5zZXREYXRhTGVuZ3RoKGRhdGFMZW5ndGgpO1xuXG4gICAgaWYgKHRoaXMudmlld3BvcnQoKSkge1xuICAgICAgdGhpcy5zZXRTaXplKHRoaXMudmlld3BvcnQoKSEuZWxlbWVudFJlZik7XG4gICAgfVxuICB9KTtcblxuXG4gIF8gPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydCgpO1xuICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICBpZiAoISF2aWV3cG9ydCkge1xuICAgICAgICBhZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUhhbmRsZXIpO1xuICAgICAgICB0aGlzLnN1YnNjcmliZXIub24odmlld3BvcnQucmVuZGVyZWRSYW5nZVN0cmVhbSwgKHJhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhU3RvcmUucGF0Y2hTdGF0ZSh7XG4gICAgICAgICAgICB2aXJ0dWFsRW5kczoge1xuICAgICAgICAgICAgICBzdGFydDogcmFuZ2Uuc3RhcnQsXG4gICAgICAgICAgICAgIGVuZDogcmFuZ2UuZW5kICsgMjUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgb2Zmc2V0JCA9IHZpZXdwb3J0LnNjcm9sbGVkSW5kZXhDaGFuZ2UucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gdmlld3BvcnQuZ2V0T2Zmc2V0VG9SZW5kZXJlZENvbnRlbnRTdGFydCgpID8/IDApLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgZGVmYXVsdFNoYXJlUmVwbGF5KClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnN1YnNjcmliZXIub24ob2Zmc2V0JCwgKG9mZnNldCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YVN0b3JlLnBhdGNoU3RhdGUoeyB2aXJ0dWFsU2Nyb2xsT2Zmc2V0OiBvZmZzZXQgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldFNpemUodGhpcy52aWV3cG9ydCgpIS5lbGVtZW50UmVmKTtcbiAgICAgIH07XG4gICAgfSlcblxuICB9KVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmb290ZXJSb3dTdHlsZSQgPSB0aGlzLmdlbmVyaWNUYWJsZSgpPy4kZm9vdGVyUm93U3R5bGUoKTtcbiAgICBpZiAoZm9vdGVyUm93U3R5bGUkKSB7XG4gICAgICB0aGlzLmZvb3RlclN0eWxlID1mb290ZXJSb3dTdHlsZSQ7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVIYW5kbGVyKTtcbiAgICB0aGlzLnN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHNldFNpemUoZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgY29uc3QgdnNWaWV3cG9ydCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgdmlydHVhbFNjcm9sbE9wdGlvbnMgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS51c2VWaXJ0dWFsU2Nyb2xsISBhcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucztcbiAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLmNvbXB1dGVkUm93SGVpZ2h0KCk7XG4gICAgbGV0IGFtb3VudE9mVmlzaWJsZUl0ZW1zID0gdmlydHVhbFNjcm9sbE9wdGlvbnM/LmFtb3VudE9mVmlzaWJsZUl0ZW1zIHx8IHRoaXMuZGVmYXVsdE9wdGlvbnMuYW1vdW50T2ZWaXNpYmxlSXRlbXM7XG4gICAgdmlydHVhbFNjcm9sbE9wdGlvbnM/LmFtb3VudE9mVmlzaWJsZUl0ZW1zIHx8IHRoaXMuZGVmYXVsdE9wdGlvbnMuYW1vdW50T2ZWaXNpYmxlSXRlbXM7XG5cbiAgICBsZXQgaGVpZ2h0ID0gMDtcbiAgICB2YXIgc3ViID0gdGhpcy5kYXRhTGVuZ3RoJC5zdWJzY3JpYmUoZGF0YUxlbmd0aCA9PiB7XG4gICAgICBpZiAoZGF0YUxlbmd0aCA8IGFtb3VudE9mVmlzaWJsZUl0ZW1zKSB7XG4gICAgICAgIGhlaWdodCA9KyAodGhpcy5jb21wdXRlZFJvd0hlaWdodCgpICogZGF0YUxlbmd0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWlnaHQgPSAocm93SGVpZ2h0ICogYW1vdW50T2ZWaXNpYmxlSXRlbXMpO1xuICAgICAgfVxuICAgIH1cbiAgICApO1xuICAgIGlmICh0aGlzLmZvb3RlclN0eWxlICE9PSAnbm8tZm9vdGVyJykge1xuICAgICAgaGVpZ2h0ICs9IHJvd0hlaWdodDtcbiAgICAgIGNvbnNvbGUubG9nKGhlaWdodClcbiAgICAgIGNvbnNvbGUubG9nKCdyZWd1bGFyLWZvb3RlcicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuc3RhdGUudGFibGVTZXR0aW5ncygpLmhpZGVIZWFkZXIpIHtcbiAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuY29tcHV0ZWRIZWFkZXJIZWlnaHQoKTtcbiAgICAgIGhlaWdodCArPSBoZWFkZXJIZWlnaHQ7XG4gICAgfVxuICAgIGlmICh2aXJ0dWFsU2Nyb2xsT3B0aW9ucz8ubWF4Vmlld1BvcnRIZWlnaHQgJiYgdmlydHVhbFNjcm9sbE9wdGlvbnMubWF4Vmlld1BvcnRIZWlnaHQgPCBoZWlnaHQpIGhlaWdodCA9IHZpcnR1YWxTY3JvbGxPcHRpb25zLm1heFZpZXdQb3J0SGVpZ2h0O1xuICAgIHZzVmlld3BvcnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ3N0eWxlJyxcbiAgICAgIGBoZWlnaHQ6ICR7aGVpZ2h0fXB4ICFpbXBvcnRhbnQ7YCxcbiAgICApO1xuICAgIHRoaXMudmlld3BvcnQoKT8uY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICBjb25zdCB2aXJ0dWFsU2Nyb2xsT2Zmc2V0ID0gdGhpcy52aWV3cG9ydCgpPy5nZXRPZmZzZXRUb1JlbmRlcmVkQ29udGVudFN0YXJ0KCkgPz8gMFxuICAgIHRoaXMuZGF0YVN0b3JlLnBhdGNoU3RhdGUoeyB2aXJ0dWFsU2Nyb2xsT2Zmc2V0IH0pO1xuICB9XG5cbiAgcmVzaXplSGFuZGxlciA9ICgpID0+IHtcbiAgICBpZiAodGhpcy52aWV3cG9ydCgpKSB7XG4gICAgICB0aGlzLnNldFNpemUodGhpcy52aWV3cG9ydCgpIS5lbGVtZW50UmVmKTtcbiAgICB9XG4gIH07XG5cbiAgY29tcHV0ZWRSb3dIZWlnaHQoKSB7XG4gICAgY29uc3QgdmlydHVhbFNjcm9sbE9wdGlvbnMgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS51c2VWaXJ0dWFsU2Nyb2xsISBhcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucztcbiAgICBjb25zdCByb3dIZWlnaHQgPSB2aXJ0dWFsU2Nyb2xsT3B0aW9ucz8ucm93SGVpZ2h0IHx8ICh0eXBlb2YgdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkucm93SGVpZ2h0ID09PSAnbnVtYmVyJyAmJiB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS5yb3dIZWlnaHQgYXMgbnVtYmVyKSB8fCB0aGlzLmRlZmF1bHRPcHRpb25zLnJvd0hlaWdodDtcbiAgICByZXR1cm4gcm93SGVpZ2h0O1xuICB9XG5cbiAgY29tcHV0ZWRIZWFkZXJIZWlnaHQoKSB7XG4gICAgY29uc3QgdmlydHVhbFNjcm9sbE9wdGlvbnMgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS51c2VWaXJ0dWFsU2Nyb2xsISBhcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucztcbiAgICBjb25zdCBoZWFkZXJIZWlnaHQgPSB2aXJ0dWFsU2Nyb2xsT3B0aW9ucz8uaGVhZGVySGVpZ2h0IHx8ICh0eXBlb2YgdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkuaGVhZGVySGVpZ2h0ID09PSAnbnVtYmVyJyAmJiB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS5oZWFkZXJIZWlnaHQgYXMgbnVtYmVyKSB8fCB0aGlzLmRlZmF1bHRPcHRpb25zLmhlYWRlckhlaWdodDtcbiAgICByZXR1cm4gaGVhZGVySGVpZ2h0O1xuICB9XG59XG4iXX0=
@@ -1,7 +1,6 @@
1
- import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
2
2
  import { TableStore } from '../../../classes/table-store';
3
3
  import { isFilterInfo } from '../../../classes/filter-info';
4
- import { map } from 'rxjs/operators';
5
4
  import { WrapperFilterStore } from '../table-wrapper-filter-store';
6
5
  import { LetDirective } from '@ngrx/component';
7
6
  import { AsyncPipe } from '@angular/common';
@@ -21,7 +20,7 @@ import * as i4 from "@angular/material/chips";
21
20
  export class FilterChipsComponent {
22
21
  tableState = inject(TableStore);
23
22
  filterStore = inject(WrapperFilterStore);
24
- filters$ = this.tableState.filters$.pipe(map(filters => Object.values(filters).filter(f => isFilterInfo(f) && !f._isExternallyManaged)));
23
+ $filters = computed(() => Object.values(this.tableState.$filters()).filter(f => isFilterInfo(f) && !f._isExternallyManaged));
25
24
  deleteByIndex(index) {
26
25
  this.filterStore.deleteByIndex(index);
27
26
  }
@@ -33,13 +32,13 @@ export class FilterChipsComponent {
33
32
  }
34
33
  currentFilters$ = this.filterStore.currentFilters$;
35
34
  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\" >\n\n @if (currentFilters.length) {\n <button class=\"cancel-button\" mat-icon-button (click)=\"clearAll()\" matTooltip=\"Close all Filters Cards\">\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\n </button>\n <div class=\"float\">\n @for (filter of currentFilters; track filter.key) {\n <div class=\"filter\">\n <tb-filter [filter]=\"filter\" (close)=\"deleteByIndex($index)\" />\n </div>\n }\n </div>\n }\n\n <mat-chip-set *ngrxLet=\"filters$ as filters\">\n @for (filter of filters; track filter.key) {\n <mat-chip (dblclick)=\"addFilter(filter)\" (removed)=\"tableState.removeFilter(filter.filterId!)\">\n {{ filter.key | keyDisplay | async }} {{filter.filterType | formatFilterType : filter.filterValue}} {{ filter.filterValue | formatFilterValue: filter.key : filter.filterType | async }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n @if (filters.length > 1) {\n <mat-chip (removed)=\"tableState.clearFilters()\">\n Clear All\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n </mat-chip-set>\n\n</div>\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 });
35
+ 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\" >\n\n @if (currentFilters.length) {\n <button class=\"cancel-button\" mat-icon-button (click)=\"clearAll()\" matTooltip=\"Close all Filters Cards\">\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\n </button>\n <div class=\"float\">\n @for (filter of currentFilters; track filter.key) {\n <div class=\"filter\">\n <tb-filter [filter]=\"filter\" (close)=\"deleteByIndex($index)\" />\n </div>\n }\n </div>\n }\n\n <mat-chip-set>\n @for (filter of $filters(); track filter.key) {\n <mat-chip (dblclick)=\"addFilter(filter)\" (removed)=\"tableState.removeFilter(filter.filterId!)\">\n {{ filter.key | keyDisplay | async }} {{filter.filterType | formatFilterType : filter.filterValue}} {{ filter.filterValue | formatFilterValue: filter.key : filter.filterType | async }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n @if ($filters().length > 1) {\n <mat-chip (removed)=\"tableState.clearFilters()\">\n Clear All\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n </mat-chip-set>\n\n</div>\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 });
37
36
  }
38
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FilterChipsComponent, decorators: [{
39
38
  type: Component,
40
39
  args: [{ selector: 'lib-filter-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
41
40
  LetDirective, MatButtonModule, MatTooltipModule, MatIconModule, FilterComponent,
42
41
  MatChipsModule, AsyncPipe, KeyDisplayPipe, FormatFilterTypePipe, FormatFilterValuePipe
43
- ], template: "<div class=\"d-w\" *ngrxLet=\"currentFilters$ as currentFilters\" >\n\n @if (currentFilters.length) {\n <button class=\"cancel-button\" mat-icon-button (click)=\"clearAll()\" matTooltip=\"Close all Filters Cards\">\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\n </button>\n <div class=\"float\">\n @for (filter of currentFilters; track filter.key) {\n <div class=\"filter\">\n <tb-filter [filter]=\"filter\" (close)=\"deleteByIndex($index)\" />\n </div>\n }\n </div>\n }\n\n <mat-chip-set *ngrxLet=\"filters$ as filters\">\n @for (filter of filters; track filter.key) {\n <mat-chip (dblclick)=\"addFilter(filter)\" (removed)=\"tableState.removeFilter(filter.filterId!)\">\n {{ filter.key | keyDisplay | async }} {{filter.filterType | formatFilterType : filter.filterValue}} {{ filter.filterValue | formatFilterValue: filter.key : filter.filterType | async }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n @if (filters.length > 1) {\n <mat-chip (removed)=\"tableState.clearFilters()\">\n Clear All\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n </mat-chip-set>\n\n</div>\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"] }]
42
+ ], template: "<div class=\"d-w\" *ngrxLet=\"currentFilters$ as currentFilters\" >\n\n @if (currentFilters.length) {\n <button class=\"cancel-button\" mat-icon-button (click)=\"clearAll()\" matTooltip=\"Close all Filters Cards\">\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\n </button>\n <div class=\"float\">\n @for (filter of currentFilters; track filter.key) {\n <div class=\"filter\">\n <tb-filter [filter]=\"filter\" (close)=\"deleteByIndex($index)\" />\n </div>\n }\n </div>\n }\n\n <mat-chip-set>\n @for (filter of $filters(); track filter.key) {\n <mat-chip (dblclick)=\"addFilter(filter)\" (removed)=\"tableState.removeFilter(filter.filterId!)\">\n {{ filter.key | keyDisplay | async }} {{filter.filterType | formatFilterType : filter.filterValue}} {{ filter.filterValue | formatFilterValue: filter.key : filter.filterType | async }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n @if ($filters().length > 1) {\n <mat-chip (removed)=\"tableState.clearFilters()\">\n Clear All\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n </mat-chip-set>\n\n</div>\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"] }]
44
43
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXItZmlsdGVyL2ZpbHRlci1saXN0L2ZpbHRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvdGFibGUtY29udGFpbmVyLWZpbHRlci9maWx0ZXItbGlzdC9maWx0ZXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7OztBQWFoRixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXpDLFFBQVEsR0FBa0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyRSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDWixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBc0IsQ0FDcEcsQ0FBQyxDQUFDO0lBRUwsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFzQjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQzt1R0F0QnhDLG9CQUFvQjsyRkFBcEIsb0JBQW9CLDJFQzVCakMsb3VDQStCQSwwZ0JEUEksWUFBWSxnR0FBRSxlQUFlLDJJQUFFLGdCQUFnQiw0VEFBRSxhQUFhLG9MQUFFLGVBQWUsNkZBQy9FLGNBQWMsa2dCQUFFLFNBQVMseUNBQUUsY0FBYyw4Q0FBRSxvQkFBb0Isb0RBQUUscUJBQXFCOzsyRkFHN0Usb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlO3dCQUMvRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUI7cUJBQ3ZGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XG5pbXBvcnQgeyBGaWx0ZXJJbmZvLCBpc0ZpbHRlckluZm8gfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFdyYXBwZXJGaWx0ZXJTdG9yZSB9IGZyb20gJy4uL3RhYmxlLXdyYXBwZXItZmlsdGVyLXN0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExldERpcmVjdGl2ZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgS2V5RGlzcGxheVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9rZXktZGlzcGxheSc7XG5pbXBvcnQgeyBGb3JtYXRGaWx0ZXJUeXBlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2Zvcm1hdC1maWx0ZXItdHlwZS5waXBlJztcbmltcG9ydCB7IEZvcm1hdEZpbHRlclZhbHVlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2Zvcm1hdC1maWx0ZXItdmFsdWUucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWx0ZXItbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi9nZW4tZmlsdGVyLWRpc3BsYXllci9nZW4tZmlsdGVyLWRpc3BsYXllci5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTGV0RGlyZWN0aXZlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEljb25Nb2R1bGUsIEZpbHRlckNvbXBvbmVudCxcbiAgICBNYXRDaGlwc01vZHVsZSwgQXN5bmNQaXBlLCBLZXlEaXNwbGF5UGlwZSwgRm9ybWF0RmlsdGVyVHlwZVBpcGUsIEZvcm1hdEZpbHRlclZhbHVlUGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckNoaXBzQ29tcG9uZW50IHtcblxuICB0YWJsZVN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xuICBmaWx0ZXJTdG9yZSA9IGluamVjdChXcmFwcGVyRmlsdGVyU3RvcmUpO1xuXG4gIGZpbHRlcnMkOiBPYnNlcnZhYmxlPEZpbHRlckluZm88YW55PltdPiA9IHRoaXMudGFibGVTdGF0ZS5maWx0ZXJzJC5waXBlKFxuICAgIG1hcChmaWx0ZXJzID0+XG4gICAgICBPYmplY3QudmFsdWVzKGZpbHRlcnMpLmZpbHRlcihmID0+IGlzRmlsdGVySW5mbyhmKSAmJiAhZi5faXNFeHRlcm5hbGx5TWFuYWdlZCkgYXMgRmlsdGVySW5mbzxhbnk+W11cbiAgICApKTtcblxuICBkZWxldGVCeUluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmZpbHRlclN0b3JlLmRlbGV0ZUJ5SW5kZXgoaW5kZXgpO1xuICB9XG5cbiAgYWRkRmlsdGVyKGZpbHRlcjpGaWx0ZXJJbmZvPGFueT4pe1xuICAgIHRoaXMuZmlsdGVyU3RvcmUuYWRkRmlsdGVyKGZpbHRlcik7XG4gIH1cblxuICBjbGVhckFsbCgpIHtcbiAgICAgIHRoaXMuZmlsdGVyU3RvcmUuY2xlYXJBbGwoKTtcbiAgfVxuXG4gIGN1cnJlbnRGaWx0ZXJzJCA9IHRoaXMuZmlsdGVyU3RvcmUuY3VycmVudEZpbHRlcnMkO1xufVxuIiwiPGRpdiBjbGFzcz1cImQtd1wiICpuZ3J4TGV0PVwiY3VycmVudEZpbHRlcnMkIGFzIGN1cnJlbnRGaWx0ZXJzXCIgPlxuXG4gIEBpZiAoY3VycmVudEZpbHRlcnMubGVuZ3RoKSB7XG4gICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsZWFyQWxsKClcIiBtYXRUb29sdGlwPVwiQ2xvc2UgYWxsIEZpbHRlcnMgQ2FyZHNcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiBjb2xvcj1cInByaW1hcnlcIj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cImZsb2F0XCI+XG4gICAgICBAZm9yIChmaWx0ZXIgb2YgY3VycmVudEZpbHRlcnM7IHRyYWNrIGZpbHRlci5rZXkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlclwiPlxuICAgICAgICAgIDx0Yi1maWx0ZXIgW2ZpbHRlcl09XCJmaWx0ZXJcIiAoY2xvc2UpPVwiZGVsZXRlQnlJbmRleCgkaW5kZXgpXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cblxuICA8bWF0LWNoaXAtc2V0ICpuZ3J4TGV0PVwiZmlsdGVycyQgYXMgZmlsdGVyc1wiPlxuICAgIEBmb3IgKGZpbHRlciBvZiBmaWx0ZXJzOyB0cmFjayBmaWx0ZXIua2V5KSB7XG4gICAgICA8bWF0LWNoaXAgKGRibGNsaWNrKT1cImFkZEZpbHRlcihmaWx0ZXIpXCIgIChyZW1vdmVkKT1cInRhYmxlU3RhdGUucmVtb3ZlRmlsdGVyKGZpbHRlci5maWx0ZXJJZCEpXCI+XG4gICAgICAgIHt7IGZpbHRlci5rZXkgfCBrZXlEaXNwbGF5IHwgYXN5bmMgIH19IHt7ZmlsdGVyLmZpbHRlclR5cGUgfCBmb3JtYXRGaWx0ZXJUeXBlIDogZmlsdGVyLmZpbHRlclZhbHVlfX0ge3sgZmlsdGVyLmZpbHRlclZhbHVlIHwgZm9ybWF0RmlsdGVyVmFsdWU6IGZpbHRlci5rZXkgOiBmaWx0ZXIuZmlsdGVyVHlwZSAgfCBhc3luYyB9fVxuICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgPC9tYXQtY2hpcD5cbiAgICB9XG4gICAgQGlmIChmaWx0ZXJzLmxlbmd0aCA+IDEpIHtcbiAgICAgIDxtYXQtY2hpcCAgKHJlbW92ZWQpPVwidGFibGVTdGF0ZS5jbGVhckZpbHRlcnMoKVwiPlxuICAgICAgICBDbGVhciBBbGxcbiAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXA+XG4gICAgfVxuICA8L21hdC1jaGlwLXNldD5cblxuPC9kaXY+XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXItZmlsdGVyL2ZpbHRlci1saXN0L2ZpbHRlci1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvdGFibGUtY29udGFpbmVyLWZpbHRlci9maWx0ZXItbGlzdC9maWx0ZXItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7OztBQWFoRixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXpDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFpQixDQUFDLENBQUE7SUFDNUksYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFzQjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQzt1R0FsQnhDLG9CQUFvQjsyRkFBcEIsb0JBQW9CLDJFQzFCakMseXNDQStCQSwwZ0JEVEksWUFBWSxnR0FBRSxlQUFlLDJJQUFFLGdCQUFnQiw0VEFBRSxhQUFhLG9MQUFFLGVBQWUsNkZBQy9FLGNBQWMsa2dCQUFFLFNBQVMseUNBQUUsY0FBYyw4Q0FBRSxvQkFBb0Isb0RBQUUscUJBQXFCOzsyRkFHN0Usb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlO3dCQUMvRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUI7cUJBQ3ZGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xuaW1wb3J0IHsgRmlsdGVySW5mbywgaXNGaWx0ZXJJbmZvIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XG5pbXBvcnQgeyBXcmFwcGVyRmlsdGVyU3RvcmUgfSBmcm9tICcuLi90YWJsZS13cmFwcGVyLWZpbHRlci1zdG9yZSc7XG5pbXBvcnQgeyBMZXREaXJlY3RpdmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IEtleURpc3BsYXlQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMva2V5LWRpc3BsYXknO1xuaW1wb3J0IHsgRm9ybWF0RmlsdGVyVHlwZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9mb3JtYXQtZmlsdGVyLXR5cGUucGlwZSc7XG5pbXBvcnQgeyBGb3JtYXRGaWx0ZXJWYWx1ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9mb3JtYXQtZmlsdGVyLXZhbHVlLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZmlsdGVyLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vZ2VuLWZpbHRlci1kaXNwbGF5ZXIvZ2VuLWZpbHRlci1kaXNwbGF5ZXIuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIExldERpcmVjdGl2ZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBGaWx0ZXJDb21wb25lbnQsXG4gICAgTWF0Q2hpcHNNb2R1bGUsIEFzeW5jUGlwZSwgS2V5RGlzcGxheVBpcGUsIEZvcm1hdEZpbHRlclR5cGVQaXBlLCBGb3JtYXRGaWx0ZXJWYWx1ZVBpcGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDaGlwc0NvbXBvbmVudCB7XG5cbiAgdGFibGVTdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcbiAgZmlsdGVyU3RvcmUgPSBpbmplY3QoV3JhcHBlckZpbHRlclN0b3JlKTtcblxuICAkZmlsdGVycyA9IGNvbXB1dGVkKCgpID0+IE9iamVjdC52YWx1ZXModGhpcy50YWJsZVN0YXRlLiRmaWx0ZXJzKCkpLmZpbHRlcihmID0+IGlzRmlsdGVySW5mbyhmKSAmJiAhZi5faXNFeHRlcm5hbGx5TWFuYWdlZCkgYXMgRmlsdGVySW5mb1tdKVxuICBkZWxldGVCeUluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmZpbHRlclN0b3JlLmRlbGV0ZUJ5SW5kZXgoaW5kZXgpO1xuICB9XG5cbiAgYWRkRmlsdGVyKGZpbHRlcjpGaWx0ZXJJbmZvPGFueT4pe1xuICAgIHRoaXMuZmlsdGVyU3RvcmUuYWRkRmlsdGVyKGZpbHRlcik7XG4gIH1cblxuICBjbGVhckFsbCgpIHtcbiAgICAgIHRoaXMuZmlsdGVyU3RvcmUuY2xlYXJBbGwoKTtcbiAgfVxuXG4gIGN1cnJlbnRGaWx0ZXJzJCA9IHRoaXMuZmlsdGVyU3RvcmUuY3VycmVudEZpbHRlcnMkO1xufVxuIiwiPGRpdiBjbGFzcz1cImQtd1wiICpuZ3J4TGV0PVwiY3VycmVudEZpbHRlcnMkIGFzIGN1cnJlbnRGaWx0ZXJzXCIgPlxuXG4gIEBpZiAoY3VycmVudEZpbHRlcnMubGVuZ3RoKSB7XG4gICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImNsZWFyQWxsKClcIiBtYXRUb29sdGlwPVwiQ2xvc2UgYWxsIEZpbHRlcnMgQ2FyZHNcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiBjb2xvcj1cInByaW1hcnlcIj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cImZsb2F0XCI+XG4gICAgICBAZm9yIChmaWx0ZXIgb2YgY3VycmVudEZpbHRlcnM7IHRyYWNrIGZpbHRlci5rZXkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlclwiPlxuICAgICAgICAgIDx0Yi1maWx0ZXIgW2ZpbHRlcl09XCJmaWx0ZXJcIiAoY2xvc2UpPVwiZGVsZXRlQnlJbmRleCgkaW5kZXgpXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cblxuICA8bWF0LWNoaXAtc2V0PlxuICAgIEBmb3IgKGZpbHRlciBvZiAkZmlsdGVycygpOyB0cmFjayBmaWx0ZXIua2V5KSB7XG4gICAgICA8bWF0LWNoaXAgKGRibGNsaWNrKT1cImFkZEZpbHRlcihmaWx0ZXIpXCIgIChyZW1vdmVkKT1cInRhYmxlU3RhdGUucmVtb3ZlRmlsdGVyKGZpbHRlci5maWx0ZXJJZCEpXCI+XG4gICAgICAgIHt7IGZpbHRlci5rZXkgfCBrZXlEaXNwbGF5IHwgYXN5bmMgIH19IHt7ZmlsdGVyLmZpbHRlclR5cGUgfCBmb3JtYXRGaWx0ZXJUeXBlIDogZmlsdGVyLmZpbHRlclZhbHVlfX0ge3sgZmlsdGVyLmZpbHRlclZhbHVlIHwgZm9ybWF0RmlsdGVyVmFsdWU6IGZpbHRlci5rZXkgOiBmaWx0ZXIuZmlsdGVyVHlwZSAgfCBhc3luYyB9fVxuICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgPC9tYXQtY2hpcD5cbiAgICB9XG4gICAgQGlmICgkZmlsdGVycygpLmxlbmd0aCA+IDEpIHtcbiAgICAgIDxtYXQtY2hpcCAgKHJlbW92ZWQpPVwidGFibGVTdGF0ZS5jbGVhckZpbHRlcnMoKVwiPlxuICAgICAgICBDbGVhciBBbGxcbiAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgIDwvbWF0LWNoaXA+XG4gICAgfVxuICA8L21hdC1jaGlwLXNldD5cblxuPC9kaXY+XG4iXX0=
@@ -1,7 +1,6 @@
1
- import { Component, ChangeDetectionStrategy, inject } from '@angular/core';
1
+ import { Component, ChangeDetectionStrategy, inject, computed } from '@angular/core';
2
2
  import { FieldType } from '../../../interfaces/report-def';
3
3
  import { TableStore } from '../../../classes/table-store';
4
- import { map } from 'rxjs/operators';
5
4
  import { WrapperFilterStore } from '../table-wrapper-filter-store';
6
5
  import { MatButtonModule } from '@angular/material/button';
7
6
  import { MatMenuModule } from '@angular/material/menu';
@@ -17,22 +16,21 @@ import * as i4 from "@angular/material/icon";
17
16
  export class GenFilterDisplayerComponent {
18
17
  tableState = inject(TableStore);
19
18
  filterStore = inject(WrapperFilterStore);
20
- constructor() {
21
- const tableState = this.tableState;
22
- this.filterCols$ = tableState.metaDataArray$.pipe(map(md => Object.values(md).filter(m => m.fieldType !== FieldType.Hidden && m.fieldType !== FieldType.NotMapped && !m.noFilter)));
23
- }
24
- filterCols$;
19
+ $filterCols = computed(() => {
20
+ const mds = this.tableState.$metaDataArray();
21
+ return mds.filter(m => m.fieldType !== FieldType.Hidden && m.fieldType !== FieldType.NotMapped && !m.noFilter);
22
+ });
25
23
  addFilter(metaData) {
26
24
  this.filterStore.addFilter({ key: metaData.key, fieldType: metaData.fieldType });
27
25
  }
28
26
  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\">\n <mat-icon class=\"filter-icon\" color=\"primary\">filter_list</mat-icon>\n</button>\n<mat-menu #menu=\"matMenu\">\n @for (md of filterCols$ | async; track md.key) {\n <button (click)=\"addFilter(md)\" mat-menu-item>\n <span class=\"filter-labels\">{{md.displayName || (md.key | spaceCase)}}</span>\n </button>\n }\n</mat-menu>\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 });
27
+ 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\">\n <mat-icon class=\"filter-icon\" color=\"primary\">filter_list</mat-icon>\n</button>\n<mat-menu #menu=\"matMenu\">\n @for (md of $filterCols(); track md.key) {\n <button (click)=\"addFilter(md)\" mat-menu-item>\n <span class=\"filter-labels\">{{md.displayName || (md.key | spaceCase)}}</span>\n </button>\n }\n</mat-menu>\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: SpaceCasePipe, name: "spaceCase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
28
  }
31
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: GenFilterDisplayerComponent, decorators: [{
32
30
  type: Component,
33
31
  args: [{ selector: 'tb-filter-displayer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
34
32
  MatButtonModule, MatMenuModule, MatTooltipModule, StopPropagationDirective, MatIconModule,
35
33
  AsyncPipe, SpaceCasePipe
36
- ], template: "<button stop-propagation class=\"filter-button\" mat-icon-button [matMenuTriggerFor]=\"menu\" matTooltip=\"Add Filter\">\n <mat-icon class=\"filter-icon\" color=\"primary\">filter_list</mat-icon>\n</button>\n<mat-menu #menu=\"matMenu\">\n @for (md of filterCols$ | async; track md.key) {\n <button (click)=\"addFilter(md)\" mat-menu-item>\n <span class=\"filter-labels\">{{md.displayName || (md.key | spaceCase)}}</span>\n </button>\n }\n</mat-menu>\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"] }]
37
- }], ctorParameters: () => [] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuLWZpbHRlci1kaXNwbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXItZmlsdGVyL2dlbi1maWx0ZXItZGlzcGxheWVyL2dlbi1maWx0ZXItZGlzcGxheWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvdGFibGUtY29udGFpbmVyLWZpbHRlci9nZW4tZmlsdGVyLWRpc3BsYXllci9nZW4tZmlsdGVyLWRpc3BsYXllci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFhNUMsTUFBTSxPQUFPLDJCQUEyQjtJQUM1QixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLFdBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUduRDtRQUNFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFbkMsSUFBSSxDQUFDLFdBQVcsR0FBSSxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDaEQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBRSxFQUFFLENBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ25JLENBQUM7SUFDSixDQUFDO0lBRUMsV0FBVyxDQUF5QjtJQUVwQyxTQUFTLENBQUMsUUFBa0I7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7SUFDakYsQ0FBQzt1R0FqQlEsMkJBQTJCOzJGQUEzQiwyQkFBMkIsK0VDeEJ4QyxtZEFVQSx5Z0JEVU0sZUFBZSwySUFBRSxhQUFhLDZ2QkFBRSxnQkFBZ0IsNlRBQUUsd0JBQXdCLDhEQUFFLGFBQWEsK0tBQ3pGLFNBQVMseUNBQUUsYUFBYTs7MkZBR2pCLDJCQUEyQjtrQkFYdkMsU0FBUzsrQkFDSSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxhQUFhO3dCQUN6RixTQUFTLEVBQUUsYUFBYTtxQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGFEYXRhLCBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgV3JhcHBlckZpbHRlclN0b3JlIH0gZnJvbSAnLi4vdGFibGUtd3JhcHBlci1maWx0ZXItc3RvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IFNwYWNlQ2FzZVBpcGUsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RiLWZpbHRlci1kaXNwbGF5ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZW4tZmlsdGVyLWRpc3BsYXllci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZ2VuLWZpbHRlci1kaXNwbGF5ZXIuY29tcG9uZW50LmNzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgTWF0QnV0dG9uTW9kdWxlLCBNYXRNZW51TW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsIE1hdEljb25Nb2R1bGUsXG4gICAgICBBc3luY1BpcGUsIFNwYWNlQ2FzZVBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEdlbkZpbHRlckRpc3BsYXllckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCB0YWJsZVN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xuICBwcm90ZWN0ZWQgZmlsdGVyU3RvcmUgPSBpbmplY3QoV3JhcHBlckZpbHRlclN0b3JlKTtcblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IHRhYmxlU3RhdGUgPSB0aGlzLnRhYmxlU3RhdGU7XG5cbiAgICB0aGlzLmZpbHRlckNvbHMkID0gIHRhYmxlU3RhdGUubWV0YURhdGFBcnJheSQucGlwZShcbiAgICAgIG1hcChtZCA9PiBPYmplY3QudmFsdWVzKCBtZCApLmZpbHRlcihtID0+IG0uZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuSGlkZGVuICYmIG0uZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuTm90TWFwcGVkICYmICFtLm5vRmlsdGVyKSksXG4gICAgKTtcbiAgfVxuXG4gICAgZmlsdGVyQ29scyQ6IE9ic2VydmFibGU8TWV0YURhdGFbXT47XG5cbiAgICBhZGRGaWx0ZXIobWV0YURhdGE6IE1ldGFEYXRhKSB7XG4gICAgICB0aGlzLmZpbHRlclN0b3JlLmFkZEZpbHRlcih7a2V5OiBtZXRhRGF0YS5rZXksIGZpZWxkVHlwZTogbWV0YURhdGEuZmllbGRUeXBlfSk7XG4gICAgfVxufVxuIiwiPGJ1dHRvbiBzdG9wLXByb3BhZ2F0aW9uIGNsYXNzPVwiZmlsdGVyLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIG1hdFRvb2x0aXA9XCJBZGQgRmlsdGVyXCI+XG4gIDxtYXQtaWNvbiBjbGFzcz1cImZpbHRlci1pY29uXCIgY29sb3I9XCJwcmltYXJ5XCI+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPlxuPC9idXR0b24+XG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIEBmb3IgKG1kIG9mIGZpbHRlckNvbHMkIHwgYXN5bmM7IHRyYWNrIG1kLmtleSkge1xuICAgIDxidXR0b24gKGNsaWNrKT1cImFkZEZpbHRlcihtZClcIiBtYXQtbWVudS1pdGVtPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmaWx0ZXItbGFiZWxzXCI+e3ttZC5kaXNwbGF5TmFtZSB8fCAobWQua2V5IHwgc3BhY2VDYXNlKX19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICB9XG48L21hdC1tZW51PlxuIl19
34
+ ], template: "<button stop-propagation class=\"filter-button\" mat-icon-button [matMenuTriggerFor]=\"menu\" matTooltip=\"Add Filter\">\n <mat-icon class=\"filter-icon\" color=\"primary\">filter_list</mat-icon>\n</button>\n<mat-menu #menu=\"matMenu\">\n @for (md of $filterCols(); track md.key) {\n <button (click)=\"addFilter(md)\" mat-menu-item>\n <span class=\"filter-labels\">{{md.displayName || (md.key | spaceCase)}}</span>\n </button>\n }\n</mat-menu>\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
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuLWZpbHRlci1kaXNwbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXItZmlsdGVyL2dlbi1maWx0ZXItZGlzcGxheWVyL2dlbi1maWx0ZXItZGlzcGxheWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvdGFibGUtY29udGFpbmVyLWZpbHRlci9nZW4tZmlsdGVyLWRpc3BsYXllci9nZW4tZmlsdGVyLWRpc3BsYXllci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFZLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFhNUMsTUFBTSxPQUFPLDJCQUEyQjtJQUM1QixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLFdBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNuRCxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzdDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDaEgsQ0FBQyxDQUFDLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBa0I7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7SUFDakYsQ0FBQzt1R0FWUSwyQkFBMkI7MkZBQTNCLDJCQUEyQiwrRUN0QnhDLDZjQVVBLHlnQkRRTSxlQUFlLDJJQUFFLGFBQWEsNnZCQUFFLGdCQUFnQiw2VEFBRSx3QkFBd0IsOERBQUUsYUFBYSwrS0FDOUUsYUFBYTs7MkZBR2pCLDJCQUEyQjtrQkFYdkMsU0FBUzsrQkFDSSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxhQUFhO3dCQUN6RixTQUFTLEVBQUUsYUFBYTtxQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbmplY3QsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhRGF0YSwgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcbmltcG9ydCB7IFdyYXBwZXJGaWx0ZXJTdG9yZSB9IGZyb20gJy4uL3RhYmxlLXdyYXBwZXItZmlsdGVyLXN0b3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBTcGFjZUNhc2VQaXBlLCBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0Yi1maWx0ZXItZGlzcGxheWVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2VuLWZpbHRlci1kaXNwbGF5ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2dlbi1maWx0ZXItZGlzcGxheWVyLmNvbXBvbmVudC5jc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgIE1hdEJ1dHRvbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLCBNYXRJY29uTW9kdWxlLFxuICAgICAgQXN5bmNQaXBlLCBTcGFjZUNhc2VQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBHZW5GaWx0ZXJEaXNwbGF5ZXJDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgdGFibGVTdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcbiAgcHJvdGVjdGVkIGZpbHRlclN0b3JlID0gaW5qZWN0KFdyYXBwZXJGaWx0ZXJTdG9yZSk7XG4gICRmaWx0ZXJDb2xzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1kcyA9IHRoaXMudGFibGVTdGF0ZS4kbWV0YURhdGFBcnJheSgpO1xuICAgIHJldHVybiBtZHMuZmlsdGVyKG0gPT4gbS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5IaWRkZW4gJiYgbS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5Ob3RNYXBwZWQgJiYgIW0ubm9GaWx0ZXIpXG4gIH0pO1xuXG4gICAgYWRkRmlsdGVyKG1ldGFEYXRhOiBNZXRhRGF0YSkge1xuICAgICAgdGhpcy5maWx0ZXJTdG9yZS5hZGRGaWx0ZXIoe2tleTogbWV0YURhdGEua2V5LCBmaWVsZFR5cGU6IG1ldGFEYXRhLmZpZWxkVHlwZX0pO1xuICAgIH1cbn1cbiIsIjxidXR0b24gc3RvcC1wcm9wYWdhdGlvbiBjbGFzcz1cImZpbHRlci1idXR0b25cIiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBtYXRUb29sdGlwPVwiQWRkIEZpbHRlclwiPlxuICA8bWF0LWljb24gY2xhc3M9XCJmaWx0ZXItaWNvblwiIGNvbG9yPVwicHJpbWFyeVwiPmZpbHRlcl9saXN0PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICBAZm9yIChtZCBvZiAkZmlsdGVyQ29scygpOyB0cmFjayBtZC5rZXkpIHtcbiAgICA8YnV0dG9uIChjbGljayk9XCJhZGRGaWx0ZXIobWQpXCIgbWF0LW1lbnUtaXRlbT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZmlsdGVyLWxhYmVsc1wiPnt7bWQuZGlzcGxheU5hbWUgfHwgKG1kLmtleSB8IHNwYWNlQ2FzZSl9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9tYXQtbWVudT5cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { Directive, TemplateRef, Input, inject } from '@angular/core';
2
2
  import { CdkColumnDef } from '@angular/cdk/table';
3
3
  import { FieldType } from '../interfaces/report-def';
4
+ import { ReplaySubject } from 'rxjs';
4
5
  import * as i0 from "@angular/core";
5
6
  // here is how to use it
6
7
  // <generic-table [report]="report">
@@ -25,23 +26,21 @@ export class CustomCellDirective {
25
26
  if (this.templateRef !== null)
26
27
  this.TemplateRef = this.templateRef;
27
28
  }
28
- ngAfterContentInit() {
29
- if (this.TemplateRef === null && this.templateRef !== null) {
30
- this.TemplateRef = this.templateRef;
31
- }
29
+ ngOnInit() {
30
+ this.$metaData.next(this.getMetaData());
32
31
  }
33
- getMetaData(metaData) {
32
+ $metaData = new ReplaySubject();
33
+ getMetaData = () => {
34
34
  return {
35
35
  key: this.customCell,
36
- displayName: this.displayName ?? metaData?.displayName,
37
- preSort: this.preSort ?? metaData?.preSort,
38
- fieldType: metaData?.fieldType ?? (this.customCellNotMapped ? FieldType.NotMapped : FieldType.Unknown),
39
- order: this.customCellOrder ?? metaData?.order,
40
- width: this.customCellWidth ?? metaData?.width,
36
+ displayName: this.displayName,
37
+ preSort: this.preSort,
38
+ fieldType: this.customCellNotMapped ? FieldType.NotMapped : FieldType.Unknown,
39
+ order: this.customCellOrder,
40
+ width: this.customCellWidth,
41
41
  customCell: true,
42
- noExport: !metaData,
43
42
  };
44
- }
43
+ };
45
44
  static ngTemplateContextGuard(dir, ctx) {
46
45
  return true;
47
46
  }
@@ -71,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
71
70
  }], customCellNotMapped: [{
72
71
  type: Input
73
72
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNlbGwtZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvZGlyZWN0aXZlcy9jdXN0b20tY2VsbC1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFvQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBcUIsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBUXhFLHdCQUF3QjtBQUN4QixvQ0FBb0M7QUFDcEMscUhBQXFIO0FBQ3JILDJEQUEyRDtBQUMzRCxtQkFBbUI7QUFLbkIsTUFBTSxPQUFPLG1CQUFtQjtJQUNwQixXQUFXLEdBQUcsTUFBTSxDQUFtQixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELFVBQVUsQ0FBVTtJQUNwQixXQUFXLENBQVU7SUFDckIsT0FBTyxDQUFXO0lBQ2xCLFdBQVcsQ0FBb0I7SUFDL0IsZUFBZSxDQUFVO0lBQ3pCLGVBQWUsQ0FBVTtJQUN6QixrQkFBa0IsQ0FBbUI7SUFDOUM7O09BRUc7SUFDTSxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDckM7UUFDRSxJQUFHLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSTtZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkMsQ0FBQztJQUNELGtCQUFrQjtRQUNqQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQW9CO1FBQzlCLE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDcEIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxFQUFFLFdBQVc7WUFDdEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUSxFQUFFLE9BQU87WUFDMUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDdEcsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksUUFBUSxFQUFFLEtBQUs7WUFDOUMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksUUFBUSxFQUFFLEtBQUs7WUFDOUMsVUFBVSxFQUFFLElBQUk7WUFDaEIsUUFBUSxFQUFFLENBQUMsUUFBUTtTQUNwQixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBSSxHQUEyQixFQUFFLEdBQVE7UUFDcEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3VHQXRDUSxtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3dEQUlZLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUlHLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYsIElucHV0LCBBZnRlckNvbnRlbnRJbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENka0NvbHVtbkRlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBTb3J0RGVmLCBNZXRhRGF0YSwgRmllbGRUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcbmltcG9ydCB7IFRhYmxlQnVpbGRlciB9IGZyb20gJy4uL2NsYXNzZXMvdGFibGUtYnVpbGRlcic7XG5pbXBvcnQge1RhYmxlU3RvcmV9IGZyb20gXCIuLi9jbGFzc2VzL3RhYmxlLXN0b3JlXCI7XG5cbmludGVyZmFjZSBDdXN0b21DZWxsQ29udGV4dDxUPiB7XG4gICRpbXBsaWNpdDogVCxcbiAgZWxlbWVudDogVCxcbn1cbi8vIGhlcmUgaXMgaG93IHRvIHVzZSBpdFxuLy8gPGdlbmVyaWMtdGFibGUgW3JlcG9ydF09XCJyZXBvcnRcIj5cbi8vICAgICA8cCAqY3VzdG9tQ2VsbD1cIidjb2x1bW4xJzsgbGV0IGVsZW1lbnQgPSBlbGVtZW50XCIgW2NsYXNzLm1ha2VNZVJlZF09XCJlbGVtZW50Py5wb3J0XCI+SWYgUG9ydCwgaSB3aWxsIGJlIHJlZDwvcD5cbi8vICAgICA8cCAqY3VzdG9tQ2VsbD1cIidjb2x1bW4yJ1wiPkkgYW0gY3VzdG9tIGNlbGwgdHdvIDwvcD5cbi8vIDwvZ2VuZXJpYy10YWJsZT5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2N1c3RvbUNlbGxdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUNlbGxEaXJlY3RpdmU8VCA9IGFueT4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmID0gaW5qZWN0PFRlbXBsYXRlUmVmPGFueT4+KFRlbXBsYXRlUmVmLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIHB1YmxpYyBjb2x1bW5EZWYgPSBpbmplY3QoQ2RrQ29sdW1uRGVmLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIEBJbnB1dCgpIGN1c3RvbUNlbGwhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHJlU29ydD86IFNvcnREZWY7XG4gICAgQElucHV0KCkgVGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIGN1c3RvbUNlbGxPcmRlcj86IG51bWJlcjtcbiAgICBASW5wdXQoKSBjdXN0b21DZWxsV2lkdGg/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgY3VzdG9tQ2VsbFRhYmxlUmVmPzogVGFibGVCdWlsZGVyPFQ+O1xuICAgIC8qKlxuICAgICAqIHRydWUgaWYgY29sdW1uIG5vdCBtYXBwZWQgdG8gYSBwcm9wZXJ0eSBpbiB0aGUgZGF0YSBzb3VyY2UuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAgICovXG4gICAgQElucHV0KCkgY3VzdG9tQ2VsbE5vdE1hcHBlZCA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgaWYodGhpcy50ZW1wbGF0ZVJlZiAhPT0gbnVsbClcbiAgICAgICAgdGhpcy5UZW1wbGF0ZVJlZiA9IHRoaXMudGVtcGxhdGVSZWY7XG4gICAgIH1cbiAgICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgaWYgKHRoaXMuVGVtcGxhdGVSZWYgPT09IG51bGwgJiYgdGhpcy50ZW1wbGF0ZVJlZiAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLlRlbXBsYXRlUmVmID0gdGhpcy50ZW1wbGF0ZVJlZjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRNZXRhRGF0YShtZXRhRGF0YT8gOiBNZXRhRGF0YSk6IE1ldGFEYXRhIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtleTogdGhpcy5jdXN0b21DZWxsLFxuICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy5kaXNwbGF5TmFtZSA/PyBtZXRhRGF0YT8uZGlzcGxheU5hbWUsXG4gICAgICAgIHByZVNvcnQ6IHRoaXMucHJlU29ydCA/PyBtZXRhRGF0YT8ucHJlU29ydCxcbiAgICAgICAgZmllbGRUeXBlOiBtZXRhRGF0YT8uZmllbGRUeXBlID8/ICh0aGlzLmN1c3RvbUNlbGxOb3RNYXBwZWQgPyBGaWVsZFR5cGUuTm90TWFwcGVkIDogRmllbGRUeXBlLlVua25vd24pLFxuICAgICAgICBvcmRlcjogdGhpcy5jdXN0b21DZWxsT3JkZXIgPz8gbWV0YURhdGE/Lm9yZGVyLFxuICAgICAgICB3aWR0aDogdGhpcy5jdXN0b21DZWxsV2lkdGggPz8gbWV0YURhdGE/LndpZHRoLFxuICAgICAgICBjdXN0b21DZWxsOiB0cnVlLFxuICAgICAgICBub0V4cG9ydDogIW1ldGFEYXRhLFxuICAgICAgfTtcbiAgICB9XG4gICAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8VD4oZGlyOiBDdXN0b21DZWxsRGlyZWN0aXZlPFQ+LCBjdHg6IGFueSk6IGN0eCBpcyBDdXN0b21DZWxsQ29udGV4dDxUPiB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNlbGwtZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvZGlyZWN0aXZlcy9jdXN0b20tY2VsbC1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFxQixTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU1yQyx3QkFBd0I7QUFDeEIsb0NBQW9DO0FBQ3BDLHFIQUFxSDtBQUNySCwyREFBMkQ7QUFDM0QsbUJBQW1CO0FBS25CLE1BQU0sT0FBTyxtQkFBbUI7SUFDcEIsV0FBVyxHQUFHLE1BQU0sQ0FBbUIsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekUsU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxVQUFVLENBQVU7SUFDcEIsV0FBVyxDQUFVO0lBQ3JCLE9BQU8sQ0FBVztJQUNsQixXQUFXLENBQW9CO0lBQy9CLGVBQWUsQ0FBVTtJQUN6QixlQUFlLENBQVU7SUFDekIsa0JBQWtCLENBQW1CO0lBQzlDOztPQUVHO0lBQ00sbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ3JDO1FBQ0UsSUFBRyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUk7WUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUNELFNBQVMsR0FBRyxJQUFJLGFBQWEsRUFBWSxDQUFDO0lBQzFDLFdBQVcsR0FBRyxHQUFhLEVBQUU7UUFDM0IsT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNwQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQzdFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDM0IsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQztJQUNKLENBQUMsQ0FBQTtJQUdELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBSSxHQUEyQixFQUFFLEdBQVE7UUFDcEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3VHQXJDUSxtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3dEQUlZLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUlHLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYsIElucHV0LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrQ29sdW1uRGVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7IFNvcnREZWYsIE1ldGFEYXRhLCBGaWVsZFR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xuaW1wb3J0IHsgVGFibGVCdWlsZGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1idWlsZGVyJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW50ZXJmYWNlIEN1c3RvbUNlbGxDb250ZXh0PFQ+IHtcbiAgJGltcGxpY2l0OiBULFxuICBlbGVtZW50OiBULFxufVxuLy8gaGVyZSBpcyBob3cgdG8gdXNlIGl0XG4vLyA8Z2VuZXJpYy10YWJsZSBbcmVwb3J0XT1cInJlcG9ydFwiPlxuLy8gICAgIDxwICpjdXN0b21DZWxsPVwiJ2NvbHVtbjEnOyBsZXQgZWxlbWVudCA9IGVsZW1lbnRcIiBbY2xhc3MubWFrZU1lUmVkXT1cImVsZW1lbnQ/LnBvcnRcIj5JZiBQb3J0LCBpIHdpbGwgYmUgcmVkPC9wPlxuLy8gICAgIDxwICpjdXN0b21DZWxsPVwiJ2NvbHVtbjInXCI+SSBhbSBjdXN0b20gY2VsbCB0d28gPC9wPlxuLy8gPC9nZW5lcmljLXRhYmxlPlxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbY3VzdG9tQ2VsbF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ2VsbERpcmVjdGl2ZTxUID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZiA9IGluamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihUZW1wbGF0ZVJlZiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwdWJsaWMgY29sdW1uRGVmID0gaW5qZWN0KENka0NvbHVtbkRlZiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBASW5wdXQoKSBjdXN0b21DZWxsITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHByZVNvcnQ/OiBTb3J0RGVmO1xuICAgIEBJbnB1dCgpIFRlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBjdXN0b21DZWxsT3JkZXI/OiBudW1iZXI7XG4gICAgQElucHV0KCkgY3VzdG9tQ2VsbFdpZHRoPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGN1c3RvbUNlbGxUYWJsZVJlZj86IFRhYmxlQnVpbGRlcjxUPjtcbiAgICAvKipcbiAgICAgKiB0cnVlIGlmIGNvbHVtbiBub3QgbWFwcGVkIHRvIGEgcHJvcGVydHkgaW4gdGhlIGRhdGEgc291cmNlLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGN1c3RvbUNlbGxOb3RNYXBwZWQgPSBmYWxzZTtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIGlmKHRoaXMudGVtcGxhdGVSZWYgIT09IG51bGwpXG4gICAgICAgIHRoaXMuVGVtcGxhdGVSZWYgPSB0aGlzLnRlbXBsYXRlUmVmO1xuICAgICB9XG4gICAgIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy4kbWV0YURhdGEubmV4dCh0aGlzLmdldE1ldGFEYXRhKCkpXG4gICAgfVxuICAgICRtZXRhRGF0YSA9IG5ldyBSZXBsYXlTdWJqZWN0PE1ldGFEYXRhPigpO1xuICAgIGdldE1ldGFEYXRhID0gKCk6IE1ldGFEYXRhID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtleTogdGhpcy5jdXN0b21DZWxsLFxuICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy5kaXNwbGF5TmFtZSxcbiAgICAgICAgcHJlU29ydDogdGhpcy5wcmVTb3J0LFxuICAgICAgICBmaWVsZFR5cGU6IHRoaXMuY3VzdG9tQ2VsbE5vdE1hcHBlZCA/IEZpZWxkVHlwZS5Ob3RNYXBwZWQgOiBGaWVsZFR5cGUuVW5rbm93bixcbiAgICAgICAgb3JkZXI6IHRoaXMuY3VzdG9tQ2VsbE9yZGVyLFxuICAgICAgICB3aWR0aDogdGhpcy5jdXN0b21DZWxsV2lkdGgsXG4gICAgICAgIGN1c3RvbUNlbGw6IHRydWUsXG4gICAgICB9O1xuICAgIH1cbiAgICBcblxuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KGRpcjogQ3VzdG9tQ2VsbERpcmVjdGl2ZTxUPiwgY3R4OiBhbnkpOiBjdHggaXMgQ3VzdG9tQ2VsbENvbnRleHQ8VD4ge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19
@@ -1,9 +1,9 @@
1
- import { Directive } from "@angular/core";
1
+ import { Directive, signal } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class TableWrapperDirective {
4
- registrations = [];
4
+ $registrations = signal([]);
5
5
  register(filter) {
6
- this.registrations.push(filter);
6
+ this.$registrations.update(registrations => [...registrations, filter]);
7
7
  }
8
8
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableWrapperDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
9
9
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: TableWrapperDirective, isStandalone: true, selector: "[tbWrapper]", ngImport: i0 });
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
15
15
  standalone: true,
16
16
  }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtd3JhcHBlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9kaXJlY3RpdmVzL3RhYmxlLXdyYXBwZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQU90RSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLGFBQWEsR0FBNEQsRUFBRSxDQUFDO0lBRTVFLFFBQVEsQ0FBQyxNQUF5RDtRQUNoRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO3VHQUxVLHFCQUFxQjsyRkFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgUXVlcnlMaXN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlLCBUYWJsZUZpbHRlckRpcmVjdGl2ZSB9IGZyb20gXCIuL3RiLWZpbHRlci5kaXJlY3RpdmVcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RiV3JhcHBlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVdyYXBwZXJEaXJlY3RpdmUge1xuICByZWdpc3RyYXRpb25zIDogKFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlIHwgVGFibGVGaWx0ZXJEaXJlY3RpdmUpIFtdID0gW107XG5cbiAgcmVnaXN0ZXIoZmlsdGVyOiBUYWJsZUN1c3RvbUZpbHRlckRpcmVjdGl2ZSB8IFRhYmxlRmlsdGVyRGlyZWN0aXZlKSB7XG4gICAgdGhpcy5yZWdpc3RyYXRpb25zLnB1c2goZmlsdGVyKTtcbiAgfVxufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtd3JhcHBlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9kaXJlY3RpdmVzL3RhYmxlLXdyYXBwZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9sRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLGNBQWMsR0FBRyxNQUFNLENBQUMsRUFBMkQsQ0FBQyxDQUFDO0lBRXJGLFFBQVEsQ0FBQyxNQUF5RDtRQUNoRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBRSxhQUFhLENBQUMsRUFBRSxDQUFFLENBQUMsR0FBRyxhQUFhLEVBQUMsTUFBTSxDQUFDLENBQUUsQ0FBQztJQUM1RSxDQUFDO3VHQUxVLHFCQUFxQjsyRkFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUYWJsZUN1c3RvbUZpbHRlckRpcmVjdGl2ZSwgVGFibGVGaWx0ZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi90Yi1maWx0ZXIuZGlyZWN0aXZlXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0YldyYXBwZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVXcmFwcGVyRGlyZWN0aXZlIHtcbiAgJHJlZ2lzdHJhdGlvbnMgPSBzaWduYWwoW10gYXMgKFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlIHwgVGFibGVGaWx0ZXJEaXJlY3RpdmUpW10pO1xuXG4gIHJlZ2lzdGVyKGZpbHRlcjogVGFibGVDdXN0b21GaWx0ZXJEaXJlY3RpdmUgfCBUYWJsZUZpbHRlckRpcmVjdGl2ZSkge1xuICAgIHRoaXMuJHJlZ2lzdHJhdGlvbnMudXBkYXRlKCByZWdpc3RyYXRpb25zID0+ICBbLi4ucmVnaXN0cmF0aW9ucyxmaWx0ZXJdICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uSW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2ludGVyZmFjZXMvQ29sdW1uSW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL2N1c3RvbS1jZWxsLWRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgTWV0YURhdGEgfSBmcm9tIFwiLi9yZXBvcnQtZGVmXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uSW5mbyB7XG4gIG1ldGFEYXRhOiBNZXRhRGF0YTtcbiAgY3VzdG9tQ2VsbDogQ3VzdG9tQ2VsbERpcmVjdGl2ZTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uSW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2ludGVyZmFjZXMvQ29sdW1uSW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL2N1c3RvbS1jZWxsLWRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgTWV0YURhdGEgfSBmcm9tIFwiLi9yZXBvcnQtZGVmXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uSW5mbyB7XG4gIG1ldGFEYXRhOiBNZXRhRGF0YTtcbiAgY3VzdG9tQ2VsbD86IEN1c3RvbUNlbGxEaXJlY3RpdmU7XG59XG4iXX0=
@@ -2,7 +2,7 @@ import { DatePipe } from '@angular/common';
2
2
  import { Injectable, inject } from '@angular/core';
3
3
  import { first, map } from 'rxjs/operators';
4
4
  import { combineLatest } from 'rxjs';
5
- import { orderMetaData, TableStore } from '../classes/table-store';
5
+ import { orderStateMetaData, TableStore } from '../classes/table-store';
6
6
  import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
7
7
  import { downloadData } from '../functions/download-data';
8
8
  import { ArrayStyle, FieldType } from '../interfaces/report-def';
@@ -72,7 +72,7 @@ export class ExportToCsvService {
72
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportToCsvService, decorators: [{
73
73
  type: Injectable
74
74
  }] });
75
- export const removeFromMetaData = (state, keysToRemove) => orderMetaData(state)
75
+ export const removeFromMetaData = (state, keysToRemove) => orderStateMetaData(state)
76
76
  .filter(meta => !keysToRemove.includes(meta.key));
77
77
  export const nonExportableFields = (state) => Object.values(state.metaData)
78
78
  .filter(md => md.noExport)
@@ -82,4 +82,4 @@ export const mapExportableFields = (state) => {
82
82
  .concat(state.hiddenKeys);
83
83
  return removeFromMetaData(state, fieldsToRemove);
84
84
  };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvc2VydmljZXMvZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRyxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFtQixVQUFVLEVBQUUsU0FBUyxFQUFZLE1BQU0sMEJBQTBCLENBQUM7QUFFNUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBRzdCLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQixNQUFNLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDekMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUdwQyxXQUFXLEdBQUcsQ0FBQyxJQUFxQixFQUFFLEVBQUU7UUFDdEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJ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WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAgIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBvcmRlck1ldGFEYXRhLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXJDb25maWdUb2tlbiB9IGZyb20gJy4uL2NsYXNzZXMvVGFibGVCdWlsZGVyQ29uZmlnJztcbmltcG9ydCB7IGRvd25sb2FkRGF0YSB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kb3dubG9hZC1kYXRhJztcbmltcG9ydCB7IEFycmF5QWRkaXRpb25hbCwgQXJyYXlTdHlsZSwgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XG5pbXBvcnQgeyBUYWJsZVN0YXRlIH0gZnJvbSAnLi4vY2xhc3Nlcy9UYWJsZVN0YXRlJztcbmltcG9ydCB7IGlzUGlwZSB9IGZyb20gJy4vdHJhbnNmb3JtLWNyZWF0b3InO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV4cG9ydFRvQ3N2U2VydmljZTxUPiB7XG4gIHN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChUYWJsZUJ1aWxkZXJDb25maWdUb2tlbik7XG4gIHByaXZhdGUgZGF0ZVBpcGUgPSBpbmplY3QoRGF0ZVBpcGUpO1xuXG5cbiAgZXhwb3J0VG9Dc3YgPSAoZGF0YTogT2JzZXJ2YWJsZTxUW10+KSA9PiB7XG4gICAgY29uc3QgZXhwb3J0YWJsZUZpZWxkcyQgPSB0aGlzLnN0YXRlLnN0YXRlJC5waXBlKFxuICAgICAgbWFwKG1hcEV4cG9ydGFibGVGaWVsZHMpXG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW2RhdGEsZXhwb3J0YWJsZUZpZWxkcyRdKS5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIG1hcCgoW2RhdGEsZmllbGRzXSkgPT4gdGhpcy5jc3ZEYXRhKGRhdGEsZmllbGRzKSksXG4gICAgKS5zdWJzY3JpYmUoY3N2ID0+IGRvd25sb2FkRGF0YShjc3YsJ2V4cG9ydC5jc3YnLCd0ZXh0L2NzdicpICk7XG4gIH1cblxuICBjc3ZEYXRhID0gKGRhdGE6QXJyYXk8VD4sIG1ldGFEYXRhOiBNZXRhRGF0YTxUPltdKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZGF0YS5tYXAocm93ID0+IG1ldGFEYXRhLm1hcChtZXRhID0+IHRoaXMubWV0YVRvRmllbGQobWV0YSwgcm93KSkuam9pbignLCcpKTtcbiAgICByZXMudW5zaGlmdChtZXRhRGF0YS5tYXAobWV0YSA9PiBtZXRhLmRpc3BsYXlOYW1lIHx8IG1ldGEua2V5KS5qb2luKCcsJykpO1xuICAgIHJldHVybiByZXMuam9pbignXFxuJyk7XG4gIH1cblxuICBtZXRhVG9GaWVsZCA9IChtZXRhOiBNZXRhRGF0YTxUPiwgcm93OiBUKSA9PiB7XG4gICAgbGV0IHZhbDogYW55ID0gZ2V0KCByb3csbWV0YS5rZXkpO1xuICAgIGlmICh2YWwgPT0gbnVsbCAmJiAhbWV0YS50cmFuc2Zvcm0pIHJldHVybiB2YWxcbiAgICBpZihtZXRhLnRyYW5zZm9ybSAmJiBtZXRhLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLkV4cHJlc3Npb24pe1xuICAgICAgY29uc3QgdHJhbnNmb3JtID0gbWV0YS50cmFuc2Zvcm0gYXMgYW55O1xuICAgICAgcmV0dXJuICBpc1BpcGUodHJhbnNmb3JtKSA/IHRyYW5zZm9ybS50cmFuc2Zvcm0odmFsKSA6IHRyYW5zZm9ybSh2YWwpO1xuICAgIH1cbiAgICBpZihtZXRhLm1hcCl7XG4gICAgICByZXR1cm4gbWV0YS5tYXAocm93KTtcbiAgICB9XG4gICAgc3dpdGNoIChtZXRhLmZpZWxkVHlwZSkge1xuICAgICAgY2FzZSBGaWVsZFR5cGUuRGF0ZTpcbiAgICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5kYXRlRm9ybWF0IHx8IHRoaXMuY29uZmlnPy5leHBvcnQ/LmRhdGVGb3JtYXQgfHwgbWV0YS5hZGRpdGlvbmFsPy5kYXRlRm9ybWF0O1xuICAgICAgICB2YWwgPSB0aGlzLnRyYW5zZm9ybSh2YWwsIGRhdGVGb3JtYXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxuICAgICAgICBjb25zdCBkYXRlVGltZUZvcm1hdCA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5kYXRlVGltZUZvcm1hdCB8fCB0aGlzLmNvbmZpZz8uZXhwb3J0Py5kYXRlVGltZUZvcm1hdCB8fCBtZXRhLmFkZGl0aW9uYWw/LmRhdGVUaW1lT3B0aW9ucz8uZm9ybWF0O1xuICAgICAgICB2YWwgPSB0aGlzLnRyYW5zZm9ybSh2YWwsIGRhdGVUaW1lRm9ybWF0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5TdHJpbmc6XG4gICAgICAgIGNvbnN0IHByZXBlbmQ6IHN0cmluZyA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5wcmVwZW5kIHx8IHRoaXMuY29uZmlnPy5leHBvcnQ/LnByZXBlbmQgfHwgJyc7XG4gICAgICAgIHZhbCA9IHByZXBlbmQgKyB2YWw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuQXJyYXk6XG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWwgPSBtZXRhLmFkZGl0aW9uYWwgYXMgQXJyYXlBZGRpdGlvbmFsO1xuICAgICAgICB2YWwgPSAodmFsIGFzIEFycmF5PHN0cmluZz4pLnNsaWNlKDAsYWRkaXRpb25hbC5saW1pdCkuam9pbihhZGRpdGlvbmFsLmFycmF5U3R5bGUgPT09IEFycmF5U3R5bGUuTmV3TGluZSA/ICdcXG4nIDogJywgJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuRXhwcmVzc2lvbjpcbiAgICAgICAgdmFsID0gKG1ldGEudHJhbnNmb3JtIGFzIGFueSkocm93KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiAodmFsLmluY2x1ZGVzKCcsJykgfHwgdmFsLmluY2x1ZGVzKCdcIicpIHx8IHZhbC5pbmNsdWRlcygnXFxuJykpKSB7XG4gICAgICB2YWwgPSB2YWwucmVwbGFjZUFsbCgnXCInLCAnXCJcIicpO1xuICAgICAgdmFsID0gJ1wiJyArIHZhbCArICdcIic7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybSh2YWw6IGFueSwgZGF0ZUZvcm1hdDogYW55KSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnRyYW5zZm9ybWVycyAmJiB0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnNbRmllbGRUeXBlLkRhdGVdKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW0ZpZWxkVHlwZS5EYXRlXSEodmFsKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbCwgZGF0ZUZvcm1hdCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZyb21NZXRhRGF0YSA9IChzdGF0ZTogVGFibGVTdGF0ZSwga2V5c1RvUmVtb3ZlOiBzdHJpbmdbXSkgPT5cbiAgICBvcmRlck1ldGFEYXRhKHN0YXRlKVxuICAuZmlsdGVyKCBtZXRhID0+ICFrZXlzVG9SZW1vdmUuaW5jbHVkZXMobWV0YS5rZXkpKTtcblxuXG5leHBvcnQgY29uc3Qgbm9uRXhwb3J0YWJsZUZpZWxkcyA9IChzdGF0ZTogVGFibGVTdGF0ZSkgPT4gT2JqZWN0LnZhbHVlcyggc3RhdGUubWV0YURhdGEpXG4gIC5maWx0ZXIobWQgPT4gbWQubm9FeHBvcnQgKVxuICAubWFwKCBtZCA9PiBtZC5rZXkgKTtcblxuZXhwb3J0IGNvbnN0IG1hcEV4cG9ydGFibGVGaWVsZHMgPSAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IHtcbiAgY29uc3QgZmllbGRzVG9SZW1vdmUgPSBub25FeHBvcnRhYmxlRmllbGRzKHN0YXRlKVxuICAgIC5jb25jYXQoc3RhdGUuaGlkZGVuS2V5cyk7XG4gICByZXR1cm4gcmVtb3ZlRnJvbU1ldGFEYXRhKHN0YXRlLCBmaWVsZHNUb1JlbW92ZSk7XG59XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvc2VydmljZXMvZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRyxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLFVBQVUsRUFBRSxTQUFTLEVBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUU1RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFHN0IsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN6QyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBR3BDLFdBQVcsR0FBRyxDQUFDLElBQXFCLEVBQUUsRUFBRTtRQUN0QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFD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bnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwICB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgb3JkZXJTdGF0ZU1ldGFEYXRhLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXJDb25maWdUb2tlbiB9IGZyb20gJy4uL2NsYXNzZXMvVGFibGVCdWlsZGVyQ29uZmlnJztcbmltcG9ydCB7IGRvd25sb2FkRGF0YSB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kb3dubG9hZC1kYXRhJztcbmltcG9ydCB7IEFycmF5QWRkaXRpb25hbCwgQXJyYXlTdHlsZSwgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XG5pbXBvcnQgeyBUYWJsZVN0YXRlIH0gZnJvbSAnLi4vY2xhc3Nlcy9UYWJsZVN0YXRlJztcbmltcG9ydCB7IGlzUGlwZSB9IGZyb20gJy4vdHJhbnNmb3JtLWNyZWF0b3InO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV4cG9ydFRvQ3N2U2VydmljZTxUPiB7XG4gIHN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChUYWJsZUJ1aWxkZXJDb25maWdUb2tlbik7XG4gIHByaXZhdGUgZGF0ZVBpcGUgPSBpbmplY3QoRGF0ZVBpcGUpO1xuXG5cbiAgZXhwb3J0VG9Dc3YgPSAoZGF0YTogT2JzZXJ2YWJsZTxUW10+KSA9PiB7XG4gICAgY29uc3QgZXhwb3J0YWJsZUZpZWxkcyQgPSB0aGlzLnN0YXRlLnN0YXRlJC5waXBlKFxuICAgICAgbWFwKG1hcEV4cG9ydGFibGVGaWVsZHMpXG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW2RhdGEsZXhwb3J0YWJsZUZpZWxkcyRdKS5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIG1hcCgoW2RhdGEsZmllbGRzXSkgPT4gdGhpcy5jc3ZEYXRhKGRhdGEsZmllbGRzKSksXG4gICAgKS5zdWJzY3JpYmUoY3N2ID0+IGRvd25sb2FkRGF0YShjc3YsJ2V4cG9ydC5jc3YnLCd0ZXh0L2NzdicpICk7XG4gIH1cblxuICBjc3ZEYXRhID0gKGRhdGE6QXJyYXk8VD4sIG1ldGFEYXRhOiBNZXRhRGF0YTxUPltdKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZGF0YS5tYXAocm93ID0+IG1ldGFEYXRhLm1hcChtZXRhID0+IHRoaXMubWV0YVRvRmllbGQobWV0YSwgcm93KSkuam9pbignLCcpKTtcbiAgICByZXMudW5zaGlmdChtZXRhRGF0YS5tYXAobWV0YSA9PiBtZXRhLmRpc3BsYXlOYW1lIHx8IG1ldGEua2V5KS5qb2luKCcsJykpO1xuICAgIHJldHVybiByZXMuam9pbignXFxuJyk7XG4gIH1cblxuICBtZXRhVG9GaWVsZCA9IChtZXRhOiBNZXRhRGF0YTxUPiwgcm93OiBUKSA9PiB7XG4gICAgbGV0IHZhbDogYW55ID0gZ2V0KCByb3csbWV0YS5rZXkpO1xuICAgIGlmICh2YWwgPT0gbnVsbCAmJiAhbWV0YS50cmFuc2Zvcm0pIHJldHVybiB2YWxcbiAgICBpZihtZXRhLnRyYW5zZm9ybSAmJiBtZXRhLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLkV4cHJlc3Npb24pe1xuICAgICAgY29uc3QgdHJhbnNmb3JtID0gbWV0YS50cmFuc2Zvcm0gYXMgYW55O1xuICAgICAgcmV0dXJuICBpc1BpcGUodHJhbnNmb3JtKSA/IHRyYW5zZm9ybS50cmFuc2Zvcm0odmFsKSA6IHRyYW5zZm9ybSh2YWwpO1xuICAgIH1cbiAgICBpZihtZXRhLm1hcCl7XG4gICAgICByZXR1cm4gbWV0YS5tYXAocm93KTtcbiAgICB9XG4gICAgc3dpdGNoIChtZXRhLmZpZWxkVHlwZSkge1xuICAgICAgY2FzZSBGaWVsZFR5cGUuRGF0ZTpcbiAgICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5kYXRlRm9ybWF0IHx8IHRoaXMuY29uZmlnPy5leHBvcnQ/LmRhdGVGb3JtYXQgfHwgbWV0YS5hZGRpdGlvbmFsPy5kYXRlRm9ybWF0O1xuICAgICAgICB2YWwgPSB0aGlzLnRyYW5zZm9ybSh2YWwsIGRhdGVGb3JtYXQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxuICAgICAgICBjb25zdCBkYXRlVGltZUZvcm1hdCA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5kYXRlVGltZUZvcm1hdCB8fCB0aGlzLmNvbmZpZz8uZXhwb3J0Py5kYXRlVGltZUZvcm1hdCB8fCBtZXRhLmFkZGl0aW9uYWw/LmRhdGVUaW1lT3B0aW9ucz8uZm9ybWF0O1xuICAgICAgICB2YWwgPSB0aGlzLnRyYW5zZm9ybSh2YWwsIGRhdGVUaW1lRm9ybWF0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5TdHJpbmc6XG4gICAgICAgIGNvbnN0IHByZXBlbmQ6IHN0cmluZyA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5wcmVwZW5kIHx8IHRoaXMuY29uZmlnPy5leHBvcnQ/LnByZXBlbmQgfHwgJyc7XG4gICAgICAgIHZhbCA9IHByZXBlbmQgKyB2YWw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuQXJyYXk6XG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWwgPSBtZXRhLmFkZGl0aW9uYWwgYXMgQXJyYXlBZGRpdGlvbmFsO1xuICAgICAgICB2YWwgPSAodmFsIGFzIEFycmF5PHN0cmluZz4pLnNsaWNlKDAsYWRkaXRpb25hbC5saW1pdCkuam9pbihhZGRpdGlvbmFsLmFycmF5U3R5bGUgPT09IEFycmF5U3R5bGUuTmV3TGluZSA/ICdcXG4nIDogJywgJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuRXhwcmVzc2lvbjpcbiAgICAgICAgdmFsID0gKG1ldGEudHJhbnNmb3JtIGFzIGFueSkocm93KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiAodmFsLmluY2x1ZGVzKCcsJykgfHwgdmFsLmluY2x1ZGVzKCdcIicpIHx8IHZhbC5pbmNsdWRlcygnXFxuJykpKSB7XG4gICAgICB2YWwgPSB2YWwucmVwbGFjZUFsbCgnXCInLCAnXCJcIicpO1xuICAgICAgdmFsID0gJ1wiJyArIHZhbCArICdcIic7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybSh2YWw6IGFueSwgZGF0ZUZvcm1hdDogYW55KSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnRyYW5zZm9ybWVycyAmJiB0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnNbRmllbGRUeXBlLkRhdGVdKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW0ZpZWxkVHlwZS5EYXRlXSEodmFsKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbCwgZGF0ZUZvcm1hdCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZyb21NZXRhRGF0YSA9IChzdGF0ZTogVGFibGVTdGF0ZSwga2V5c1RvUmVtb3ZlOiBzdHJpbmdbXSkgPT5cbiAgICBvcmRlclN0YXRlTWV0YURhdGEoc3RhdGUpXG4gIC5maWx0ZXIoIG1ldGEgPT4gIWtleXNUb1JlbW92ZS5pbmNsdWRlcyhtZXRhLmtleSkpO1xuXG5cbmV4cG9ydCBjb25zdCBub25FeHBvcnRhYmxlRmllbGRzID0gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiBPYmplY3QudmFsdWVzKCBzdGF0ZS5tZXRhRGF0YSlcbiAgLmZpbHRlcihtZCA9PiBtZC5ub0V4cG9ydCApXG4gIC5tYXAoIG1kID0+IG1kLmtleSApO1xuXG5leHBvcnQgY29uc3QgbWFwRXhwb3J0YWJsZUZpZWxkcyA9IChzdGF0ZTogVGFibGVTdGF0ZSkgPT4ge1xuICBjb25zdCBmaWVsZHNUb1JlbW92ZSA9IG5vbkV4cG9ydGFibGVGaWVsZHMoc3RhdGUpXG4gICAgLmNvbmNhdChzdGF0ZS5oaWRkZW5LZXlzKTtcbiAgIHJldHVybiByZW1vdmVGcm9tTWV0YURhdGEoc3RhdGUsIGZpZWxkc1RvUmVtb3ZlKTtcbn1cbiJdfQ==