@one-paragon/angular-utilities 0.3.6 → 0.3.7-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +1 -1
  2. package/esm2022/rxjs/rxjs-operators.mjs +7 -6
  3. package/esm2022/table-builder/classes/TableState.mjs +2 -3
  4. package/esm2022/table-builder/classes/filter-info.mjs +1 -1
  5. package/esm2022/table-builder/classes/table-builder.mjs +8 -3
  6. package/esm2022/table-builder/classes/table-store.mjs +40 -21
  7. package/esm2022/table-builder/components/array-column.component.mjs +18 -9
  8. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +12 -5
  9. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +45 -56
  10. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +1 -1
  11. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +1 -1
  12. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +3 -3
  13. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +2 -2
  14. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +2 -0
  15. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +62 -0
  16. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +56 -0
  17. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +36 -0
  18. package/esm2022/table-builder/components/table-container/table-container.mjs +76 -114
  19. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +2 -2
  20. package/esm2022/table-builder/directives/multi-sort.directive.mjs +12 -17
  21. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +4 -11
  22. package/esm2022/table-builder/directives/tb-filter.directive.mjs +2 -2
  23. package/esm2022/table-builder/functions/sort-data-function.mjs +14 -2
  24. package/esm2022/table-builder/interfaces/report-def.mjs +1 -1
  25. package/esm2022/table-builder/pipes/column-total.pipe.mjs +2 -2
  26. package/esm2022/table-builder/services/transform-creator.mjs +7 -4
  27. package/esm2022/utilities/array-helpers.mjs +14 -0
  28. package/esm2022/utilities/directives/conditional-classes.directive.mjs +1 -1
  29. package/esm2022/utilities/directives/styler.mjs +25 -10
  30. package/fesm2022/one-paragon-angular-utilities.mjs +552 -416
  31. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
  32. package/http-request-state/directives/http-success-state-directive.d.ts +4 -4
  33. package/package.json +5 -5
  34. package/rxjs/rxjs-operators.d.ts +3 -2
  35. package/table-builder/classes/TableState.d.ts +5 -2
  36. package/table-builder/classes/filter-info.d.ts +1 -1
  37. package/table-builder/classes/table-store.d.ts +16 -6
  38. package/table-builder/components/array-column.component.d.ts +4 -4
  39. package/table-builder/components/column-builder/column-builder.component.d.ts +7 -3
  40. package/table-builder/components/generic-table/generic-table.component.d.ts +11 -13
  41. package/table-builder/components/generic-table/paginator.component.d.ts +2 -2
  42. package/table-builder/components/table-container/table-container-imports.d.ts +2 -2
  43. package/table-builder/components/table-container/table-container.d.ts +8 -11
  44. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +5 -0
  45. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +15 -0
  46. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +15 -0
  47. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +9 -0
  48. package/table-builder/directives/multi-sort.directive.d.ts +1 -1
  49. package/table-builder/directives/table-wrapper.directive.d.ts +1 -4
  50. package/table-builder/functions/sort-data-function.d.ts +3 -0
  51. package/table-builder/interfaces/report-def.d.ts +9 -8
  52. package/table-builder/services/transform-creator.d.ts +1 -1
  53. package/utilities/array-helpers.d.ts +1 -0
  54. package/utilities/directives/styler.d.ts +11 -4
  55. package/esm2022/table-builder/classes/GenericTableDataSource.mjs +0 -11
  56. package/esm2022/table-builder/classes/data-filter.mjs +0 -26
  57. package/table-builder/classes/GenericTableDataSource.d.ts +0 -5
  58. package/table-builder/classes/data-filter.d.ts +0 -9
@@ -4,48 +4,43 @@ import { combineLatest } from 'rxjs';
4
4
  import { SelectionModel } from '@angular/cdk/collections';
5
5
  import { tap, map, distinctUntilChanged } from 'rxjs/operators';
6
6
  import { ColumnBuilderComponent } from '../column-builder/column-builder.component';
7
- import { GenericTableDataSource } from '../../classes/GenericTableDataSource';
8
7
  import { FieldType } from '../../interfaces/report-def';
9
8
  import { previousAndCurrent } from '../../../rxjs/rxjs-operators';
10
9
  import { CdkDropList, DragDropModule } from '@angular/cdk/drag-drop';
11
10
  import { PaginatorComponent } from './paginator.component';
12
- import { StylerDirective } from '../../../utilities';
11
+ import { FunctionPipe } from '../../../utilities';
13
12
  import { MatCheckboxModule } from '@angular/material/checkbox';
14
13
  import { MatButtonModule } from '@angular/material/button';
15
14
  import { MatIconModule } from '@angular/material/icon';
16
15
  import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
17
16
  import { MatTooltipModule } from '@angular/material/tooltip';
17
+ import { LetDirective } from '@ngrx/component';
18
+ import { MatTableObservableDataSource } from '../../classes/MatTableObservableDataSource';
19
+ import { initIndexSymbol } from '../table-container/table-container.helpers/sort-state.helpers';
18
20
  import * as i0 from "@angular/core";
19
21
  import * as i1 from "@angular/material/sort";
20
22
  import * as i2 from "../../classes/table-store";
21
- import * as i3 from "@angular/material/table";
22
- import * as i4 from "@angular/cdk/drag-drop";
23
- import * as i5 from "@angular/material/checkbox";
24
- import * as i6 from "@angular/material/button";
25
- import * as i7 from "@angular/material/icon";
26
- import * as i8 from "@angular/material/tooltip";
23
+ import * as i3 from "../../services/transform-creator";
24
+ import * as i4 from "@angular/material/table";
25
+ import * as i5 from "@angular/cdk/drag-drop";
26
+ import * as i6 from "@angular/material/checkbox";
27
+ import * as i7 from "@angular/material/button";
28
+ import * as i8 from "@angular/material/icon";
29
+ import * as i9 from "@angular/material/tooltip";
27
30
  export class GenericTableComponent {
28
31
  drop(event) {
29
32
  this.state.setUserDefinedOrder({ newOrder: event.currentIndex, oldOrder: event.previousIndex });
30
33
  }
31
- set disableSort(val) {
32
- this._disableSort = val;
33
- if (val) {
34
- if (this.dataSource?.sort) {
35
- this.dataSource.sort = null;
36
- }
37
- }
38
- else {
39
- if (this.dataSource && !this.dataSource.sort) {
40
- this.dataSource.sort = this.sort;
41
- }
34
+ set trackBy(trackBy) {
35
+ if (trackBy) {
36
+ this.trackByFunction = (index, item) => item[trackBy];
42
37
  }
43
38
  }
44
- get disableSort() { return this._disableSort; }
45
- constructor(sort, state, viewContainer, injector) {
39
+ constructor(sort, state, viewContainer, transformCreator, injector) {
46
40
  this.sort = sort;
47
41
  this.state = state;
48
42
  this.viewContainer = viewContainer;
43
+ this.transformCreator = transformCreator;
49
44
  this.indexColumn = false;
50
45
  this.selectionColumn = false;
51
46
  this.isSticky = false;
@@ -53,15 +48,8 @@ export class GenericTableComponent {
53
48
  this.rowDefArr = [];
54
49
  this.columns = [];
55
50
  this.myColumns = {};
56
- this.trackByFunction = (index, item) => {
57
- if (!item) {
58
- return null;
59
- }
60
- if (this.trackBy) {
61
- return item[this.trackBy];
62
- }
63
- return item;
64
- };
51
+ this.defaultTrackBy = (index, item) => item[initIndexSymbol];
52
+ this.trackByFunction = this.defaultTrackBy;
65
53
  this.initializeRowDefs = (defs) => {
66
54
  this.rowDefArr.forEach(r => this.table.removeRowDef(r));
67
55
  this.rowDefArr = defs;
@@ -89,6 +77,16 @@ export class GenericTableComponent {
89
77
  }
90
78
  }));
91
79
  this.collapseFooter$ = this.state.state$.pipe(map(state => state.persistedTableSettings.collapseFooter));
80
+ this.getTransform = (key, val) => {
81
+ if (val == undefined || val === 'null')
82
+ return '';
83
+ try {
84
+ return this.transformCreator.createTransformer(this.myColumns[key].metaData, true)({ [key]: val });
85
+ }
86
+ catch (error) {
87
+ return val;
88
+ }
89
+ };
92
90
  this.injector = Injector.create({
93
91
  providers: [
94
92
  { provide: MatTable, useFactory: () => this.table },
@@ -120,31 +118,22 @@ export class GenericTableComponent {
120
118
  });
121
119
  this.showHeader$ = this.state.tableSettings$.pipe(map(settings => !(settings.hideColumnHeader)));
122
120
  this.showFooterRow$ = combineLatest([
123
- this.data$.pipe(map(d => !!d.length), distinctUntilChanged()),
121
+ this.displayData$.pipe(map(d => !!d.length), distinctUntilChanged()),
124
122
  this.state.metaDataArray$.pipe(map(metaData => metaData.some(md => !!md.additional?.footer)), distinctUntilChanged()),
125
123
  this.columnInfos.pipe(map(columnInfos => columnInfos.some(ci => !!ci.customCell?.columnDef?.footerCell)), distinctUntilChanged()),
126
124
  ]).pipe(map(([hasData, hasFooterDef, hasCustomFooter]) => {
127
- const hasselectionColumn = this.selectionColumn;
128
- return hasCustomFooter || (hasData && (hasFooterDef || hasselectionColumn)) ? 'regular-footer' : hasData ? 'no-footer' : 'small-footer';
125
+ const hasSelectionColumn = this.selectionColumn;
126
+ return hasCustomFooter || (hasData && (hasFooterDef || hasSelectionColumn)) ? 'regular-footer' : hasData ? 'no-footer' : 'small-footer';
129
127
  }));
130
128
  }
131
129
  createDataSource() {
132
- this.dataSource = new GenericTableDataSource(this.data$.pipe(tap((d) => this.selection.clear())));
133
- if (!this.disableSort) {
134
- this.dataSource.sort = this.sort;
135
- }
130
+ this.dataSource = new MatTableObservableDataSource(this.displayData$.pipe(tap((d) => this.selection.clear())));
136
131
  }
137
132
  isGroupHeader(_, row) {
138
133
  return row.isGroupHeader;
139
134
  }
140
- isGroupFooter(_, row) {
141
- return row.isGroupFooter;
142
- }
143
- updateGroup(group) {
144
- this.state.updateGroup({
145
- ...group,
146
- isExpanded: !group.isExpanded
147
- });
135
+ setExpanded(key, groupKey, isExpanded) {
136
+ this.state.updateExpandedGroups({ key, isExpanded, groupKey });
148
137
  }
149
138
  addMetaData(column) {
150
139
  const columnBuilder = this.myColumns[column.metaData.key];
@@ -173,23 +162,25 @@ export class GenericTableComponent {
173
162
  this.selection.clear() :
174
163
  this.selection.select(...this.dataSource.data);
175
164
  }
176
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: GenericTableComponent, deps: [{ token: i1.MatSort }, { token: i2.TableStore }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
177
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: GenericTableComponent, isStandalone: true, selector: "tb-generic-table", inputs: { data$: "data$", indexColumn: "indexColumn", selectionColumn: "selectionColumn", trackBy: "trackBy", rows: "rows", isSticky: "isSticky", columnBuilders: "columnBuilders", columnInfos: "columnInfos", groupHeaderTemplate: "groupHeaderTemplate", disableSort: "disableSort" }, outputs: { selection$: "selection$" }, viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "dropList", first: true, predicate: CdkDropList, descendants: true, static: true }, { propertyName: "tableElRef", first: true, predicate: ["table"], descendants: true, read: ElementRef }, { propertyName: "paginatorComponent", first: true, predicate: PaginatorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-table\r\n cdkDropList\r\n cdkDropListLockAxis='x'\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"table-drag-list\"\r\n [class]=\"(showFooterRow$ | async)\"\r\n #table\r\n [dataSource]=\"dataSource\"\r\n [trackBy]='trackByFunction'\r\n [styler]=\"tableWidth | async\"\r\n>\r\n\r\n <ng-container matColumnDef=\"select\">\r\n\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\">\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"!!(masterToggleChecked$ | async)\"\r\n [indeterminate]=\"masterToggleIndeterminate$ | async\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n\r\n <mat-cell *matCellDef=\"let row\">\r\n @if(!row.isGroupFooter){\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"/>\r\n }\r\n </mat-cell>\r\n\r\n <mat-footer-cell *matFooterCellDef>\r\n {{ selection.selected.length }}\r\n </mat-footer-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"index\">\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\" >#</mat-header-cell>\r\n <mat-cell *matCellDef=\"let i = index;\"> {{ (tbPaginator.paginator.pageIndex * tbPaginator.paginator.pageSize) + i + 1 }} </mat-cell>\r\n <mat-footer-cell *matFooterCellDef></mat-footer-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"groupHeader\">\r\n <mat-cell *matCellDef=\"let row\">\r\n <div [style.paddingLeft]=\"row.padding + 'px !important'\" >\r\n <button mat-icon-button (click)=\"updateGroup(row);\">\r\n @if(!row.isExpanded){\r\n <mat-icon>chevron_right</mat-icon>\r\n } @else {\r\n <mat-icon>expand_more</mat-icon>\r\n }\r\n </button>\r\n {{row.groupHeaderName}}\r\n </div>\r\n <div style=\"flex-grow: 1\">\r\n <ng-container *ngTemplateOutlet=\"groupHeaderTemplate; context: { element: row }\"></ng-container>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n @if(showHeader$ | async){\r\n <mat-header-row *matHeaderRowDef=\"keys; sticky: isSticky\" />\r\n }\r\n <mat-row *matRowDef=\"let row; columns: keys; let i = index\" />\r\n <mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroupHeader\" style=\"background-color: white;\" />\r\n <mat-row *matRowDef=\"let row; columns: keys; when: isGroupFooter\" style=\"background-color: whitesmoke;\" />\r\n <mat-footer-row *matFooterRowDef=\"(showFooterRow$ | async) === 'regular-footer' ? keys : []\" />\r\n\r\n</mat-table>\r\n\r\n<div class=\"flx-row-end sticky\">\r\n <tb-paginator #tbPaginator\r\n [dataSource]=\"dataSource\"\r\n [tableElRef]=\"tableElRef\"\r\n [data$]=\"data$\" />\r\n\r\n <mat-icon [matTooltip]=\"(collapseFooter$ | async) ? 'expand' : 'collapse'\" class=\"collapse-icon footer\" (click)=\"state.toggleCollapseFooter()\">\r\n {{(collapseFooter$ | async) ? 'expand_more' : 'expand_less'}}\r\n </mat-icon>\r\n</div>\r\n", styles: [".mat-mdc-row:nth-child(odd){background-color:#cdeefe}.sticky{bottom:0;position:sticky;border-top:.5px solid rgba(0,0,0,.12)}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}.flx-row-end{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;background-color:#fff}:host::ng-deep .mat-mdc-paginator-container{min-height:initial!important}.group-header{display:flex}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:0 0 0 .2rem;line-height:normal}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}.no-footer mat-footer-row{display:none}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i3.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i3.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: StylerDirective, selector: "[styler]", inputs: ["styler"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PaginatorComponent, selector: "tb-paginator", inputs: ["dataSource", "tableElRef", "data$"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: GenericTableComponent, deps: [{ token: i1.MatSort }, { token: i2.TableStore }, { token: i0.ViewContainerRef }, { token: i3.TransformCreator }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
166
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.3", type: GenericTableComponent, isStandalone: true, selector: "tb-generic-table", inputs: { trackBy: "trackBy", displayData$: "displayData$", data$: "data$", indexColumn: "indexColumn", selectionColumn: "selectionColumn", rows: "rows", isSticky: "isSticky", columnBuilders: "columnBuilders", columnInfos: "columnInfos", groupHeaderTemplate: "groupHeaderTemplate" }, outputs: { selection$: "selection$" }, viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "dropList", first: true, predicate: CdkDropList, descendants: true, static: true }, { propertyName: "tableElRef", first: true, predicate: ["table"], descendants: true, read: ElementRef }, { propertyName: "paginatorComponent", first: true, predicate: PaginatorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-table\r\n cdkDropList\r\n cdkDropListLockAxis='x'\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"table-drag-list\"\r\n [class]=\"(showFooterRow$ | async)\"\r\n #table\r\n [dataSource]=\"dataSource\"\r\n [trackBy]=\"trackByFunction\"\r\n [style]=\"tableWidth | async\"\r\n>\r\n\r\n <!-- select column -->\r\n <ng-container matColumnDef=\"select\">\r\n\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\">\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"!!(masterToggleChecked$ | async)\"\r\n [indeterminate]=\"masterToggleIndeterminate$ | async\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n\r\n <mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"/>\r\n </mat-cell>\r\n\r\n <mat-footer-cell *matFooterCellDef>\r\n {{ selection.selected.length }}\r\n </mat-footer-cell>\r\n </ng-container>\r\n\r\n <!-- index column -->\r\n <ng-container matColumnDef=\"index\">\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\" >#</mat-header-cell>\r\n <mat-cell *matCellDef=\"let i = index;\"> {{ (tbPaginator.paginator.pageIndex * tbPaginator.paginator.pageSize) + i + 1 }} </mat-cell>\r\n <mat-footer-cell *matFooterCellDef></mat-footer-cell>\r\n </ng-container>\r\n\r\n <!-- Grouping -->\r\n <ng-container matColumnDef=\"groupHeader\">\r\n <mat-cell *matCellDef=\"let row\">\r\n <div [style.paddingLeft]=\"row.padding + 'px !important'\" *ngrxLet=\"(state.getIsExpanded | func : row.key : row.groupName ) as expanded\">\r\n <button mat-icon-button (click)=\"setExpanded(row.key, row.groupName, !expanded);\">\r\n @if(!expanded){\r\n <mat-icon>chevron_right</mat-icon>\r\n } @else {\r\n <mat-icon>expand_more</mat-icon> \r\n }\r\n </button>\r\n {{getTransform | func : row.key : row.groupHeaderDisplay}} ({{row.length}})\r\n </div>\r\n <div style=\"flex-grow: 1\">\r\n <ng-container *ngTemplateOutlet=\"groupHeaderTemplate; context: { element: row }\"></ng-container>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n @if(showHeader$ | async){\r\n <mat-header-row *matHeaderRowDef=\"keys; sticky: isSticky\" />\r\n }\r\n <mat-row *matRowDef=\"let row; columns: keys; let i = index\" />\r\n <mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroupHeader\" style=\"background-color: white;\" />\r\n <mat-footer-row *matFooterRowDef=\"(showFooterRow$ | async) === 'regular-footer' ? keys : []\" />\r\n\r\n</mat-table>\r\n\r\n<div class=\"flx-row-end sticky\">\r\n <tb-paginator #tbPaginator\r\n [dataSource]=\"dataSource\"\r\n [tableElRef]=\"tableElRef\"\r\n [data$]=\"data$\" />\r\n\r\n <mat-icon [matTooltip]=\"(collapseFooter$ | async) ? 'expand' : 'collapse'\" class=\"collapse-icon footer\" (click)=\"state.toggleCollapseFooter()\">\r\n {{(collapseFooter$ | async) ? 'expand_more' : 'expand_less'}}\r\n </mat-icon>\r\n</div>\r\n", styles: [".mat-mdc-row:nth-child(odd){background-color:#cdeefe}.sticky{bottom:0;position:sticky;border-top:.5px solid rgba(0,0,0,.12)}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}.flx-row-end{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;background-color:#fff}:host::ng-deep .mat-mdc-paginator-container{min-height:initial!important}.group-header{display:flex}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:0 0 0 .2rem;line-height:normal}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}.no-footer mat-footer-row{display:none}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i4.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i4.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PaginatorComponent, selector: "tb-paginator", inputs: ["dataSource", "tableElRef", "data$"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "pipe", type: FunctionPipe, name: "func" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
178
167
  }
179
168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: GenericTableComponent, decorators: [{
180
169
  type: Component,
181
170
  args: [{ selector: 'tb-generic-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
182
- MatTableModule, DragDropModule, StylerDirective, MatCheckboxModule, MatButtonModule, MatIconModule, NgTemplateOutlet,
183
- PaginatorComponent, MatTooltipModule, AsyncPipe
184
- ], template: "<mat-table\r\n cdkDropList\r\n cdkDropListLockAxis='x'\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"table-drag-list\"\r\n [class]=\"(showFooterRow$ | async)\"\r\n #table\r\n [dataSource]=\"dataSource\"\r\n [trackBy]='trackByFunction'\r\n [styler]=\"tableWidth | async\"\r\n>\r\n\r\n <ng-container matColumnDef=\"select\">\r\n\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\">\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"!!(masterToggleChecked$ | async)\"\r\n [indeterminate]=\"masterToggleIndeterminate$ | async\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n\r\n <mat-cell *matCellDef=\"let row\">\r\n @if(!row.isGroupFooter){\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"/>\r\n }\r\n </mat-cell>\r\n\r\n <mat-footer-cell *matFooterCellDef>\r\n {{ selection.selected.length }}\r\n </mat-footer-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"index\">\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\" >#</mat-header-cell>\r\n <mat-cell *matCellDef=\"let i = index;\"> {{ (tbPaginator.paginator.pageIndex * tbPaginator.paginator.pageSize) + i + 1 }} </mat-cell>\r\n <mat-footer-cell *matFooterCellDef></mat-footer-cell>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"groupHeader\">\r\n <mat-cell *matCellDef=\"let row\">\r\n <div [style.paddingLeft]=\"row.padding + 'px !important'\" >\r\n <button mat-icon-button (click)=\"updateGroup(row);\">\r\n @if(!row.isExpanded){\r\n <mat-icon>chevron_right</mat-icon>\r\n } @else {\r\n <mat-icon>expand_more</mat-icon>\r\n }\r\n </button>\r\n {{row.groupHeaderName}}\r\n </div>\r\n <div style=\"flex-grow: 1\">\r\n <ng-container *ngTemplateOutlet=\"groupHeaderTemplate; context: { element: row }\"></ng-container>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n @if(showHeader$ | async){\r\n <mat-header-row *matHeaderRowDef=\"keys; sticky: isSticky\" />\r\n }\r\n <mat-row *matRowDef=\"let row; columns: keys; let i = index\" />\r\n <mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroupHeader\" style=\"background-color: white;\" />\r\n <mat-row *matRowDef=\"let row; columns: keys; when: isGroupFooter\" style=\"background-color: whitesmoke;\" />\r\n <mat-footer-row *matFooterRowDef=\"(showFooterRow$ | async) === 'regular-footer' ? keys : []\" />\r\n\r\n</mat-table>\r\n\r\n<div class=\"flx-row-end sticky\">\r\n <tb-paginator #tbPaginator\r\n [dataSource]=\"dataSource\"\r\n [tableElRef]=\"tableElRef\"\r\n [data$]=\"data$\" />\r\n\r\n <mat-icon [matTooltip]=\"(collapseFooter$ | async) ? 'expand' : 'collapse'\" class=\"collapse-icon footer\" (click)=\"state.toggleCollapseFooter()\">\r\n {{(collapseFooter$ | async) ? 'expand_more' : 'expand_less'}}\r\n </mat-icon>\r\n</div>\r\n", styles: [".mat-mdc-row:nth-child(odd){background-color:#cdeefe}.sticky{bottom:0;position:sticky;border-top:.5px solid rgba(0,0,0,.12)}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}.flx-row-end{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;background-color:#fff}:host::ng-deep .mat-mdc-paginator-container{min-height:initial!important}.group-header{display:flex}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:0 0 0 .2rem;line-height:normal}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}.no-footer mat-footer-row{display:none}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}\n"] }]
185
- }], ctorParameters: () => [{ type: i1.MatSort }, { type: i2.TableStore }, { type: i0.ViewContainerRef }, { type: i0.Injector }], propDecorators: { data$: [{
171
+ MatTableModule, DragDropModule, MatCheckboxModule, MatButtonModule, MatIconModule, NgTemplateOutlet,
172
+ PaginatorComponent, MatTooltipModule, AsyncPipe, LetDirective, FunctionPipe
173
+ ], template: "<mat-table\r\n cdkDropList\r\n cdkDropListLockAxis='x'\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"table-drag-list\"\r\n [class]=\"(showFooterRow$ | async)\"\r\n #table\r\n [dataSource]=\"dataSource\"\r\n [trackBy]=\"trackByFunction\"\r\n [style]=\"tableWidth | async\"\r\n>\r\n\r\n <!-- select column -->\r\n <ng-container matColumnDef=\"select\">\r\n\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\">\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"!!(masterToggleChecked$ | async)\"\r\n [indeterminate]=\"masterToggleIndeterminate$ | async\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n\r\n <mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"/>\r\n </mat-cell>\r\n\r\n <mat-footer-cell *matFooterCellDef>\r\n {{ selection.selected.length }}\r\n </mat-footer-cell>\r\n </ng-container>\r\n\r\n <!-- index column -->\r\n <ng-container matColumnDef=\"index\">\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\" >#</mat-header-cell>\r\n <mat-cell *matCellDef=\"let i = index;\"> {{ (tbPaginator.paginator.pageIndex * tbPaginator.paginator.pageSize) + i + 1 }} </mat-cell>\r\n <mat-footer-cell *matFooterCellDef></mat-footer-cell>\r\n </ng-container>\r\n\r\n <!-- Grouping -->\r\n <ng-container matColumnDef=\"groupHeader\">\r\n <mat-cell *matCellDef=\"let row\">\r\n <div [style.paddingLeft]=\"row.padding + 'px !important'\" *ngrxLet=\"(state.getIsExpanded | func : row.key : row.groupName ) as expanded\">\r\n <button mat-icon-button (click)=\"setExpanded(row.key, row.groupName, !expanded);\">\r\n @if(!expanded){\r\n <mat-icon>chevron_right</mat-icon>\r\n } @else {\r\n <mat-icon>expand_more</mat-icon> \r\n }\r\n </button>\r\n {{getTransform | func : row.key : row.groupHeaderDisplay}} ({{row.length}})\r\n </div>\r\n <div style=\"flex-grow: 1\">\r\n <ng-container *ngTemplateOutlet=\"groupHeaderTemplate; context: { element: row }\"></ng-container>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n @if(showHeader$ | async){\r\n <mat-header-row *matHeaderRowDef=\"keys; sticky: isSticky\" />\r\n }\r\n <mat-row *matRowDef=\"let row; columns: keys; let i = index\" />\r\n <mat-row *matRowDef=\"let row; columns: ['groupHeader']; when: isGroupHeader\" style=\"background-color: white;\" />\r\n <mat-footer-row *matFooterRowDef=\"(showFooterRow$ | async) === 'regular-footer' ? keys : []\" />\r\n\r\n</mat-table>\r\n\r\n<div class=\"flx-row-end sticky\">\r\n <tb-paginator #tbPaginator\r\n [dataSource]=\"dataSource\"\r\n [tableElRef]=\"tableElRef\"\r\n [data$]=\"data$\" />\r\n\r\n <mat-icon [matTooltip]=\"(collapseFooter$ | async) ? 'expand' : 'collapse'\" class=\"collapse-icon footer\" (click)=\"state.toggleCollapseFooter()\">\r\n {{(collapseFooter$ | async) ? 'expand_more' : 'expand_less'}}\r\n </mat-icon>\r\n</div>\r\n", styles: [".mat-mdc-row:nth-child(odd){background-color:#cdeefe}.sticky{bottom:0;position:sticky;border-top:.5px solid rgba(0,0,0,.12)}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}.flx-row-end{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;background-color:#fff}:host::ng-deep .mat-mdc-paginator-container{min-height:initial!important}.group-header{display:flex}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:0 0 0 .2rem;line-height:normal}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}.no-footer mat-footer-row{display:none}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}\n"] }]
174
+ }], ctorParameters: () => [{ type: i1.MatSort }, { type: i2.TableStore }, { type: i0.ViewContainerRef }, { type: i3.TransformCreator }, { type: i0.Injector }], propDecorators: { trackBy: [{
175
+ type: Input
176
+ }], displayData$: [{
177
+ type: Input
178
+ }], data$: [{
186
179
  type: Input
187
180
  }], indexColumn: [{
188
181
  type: Input
189
182
  }], selectionColumn: [{
190
183
  type: Input
191
- }], trackBy: [{
192
- type: Input
193
184
  }], rows: [{
194
185
  type: Input
195
186
  }], isSticky: [{
@@ -200,8 +191,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
200
191
  type: Input
201
192
  }], groupHeaderTemplate: [{
202
193
  type: Input
203
- }], disableSort: [{
204
- type: Input
205
194
  }], table: [{
206
195
  type: ViewChild,
207
196
  args: [MatTable, { static: true }]
@@ -217,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
217
206
  }], selection$: [{
218
207
  type: Output
219
208
  }] } });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFLTixVQUFVLEVBQ1YsUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUUsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEUsT0FBTyxFQUFlLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUs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QUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR08sV0FBVztzQkFBdkIsS0FBSztnQkFjaUMsS0FBSztzQkFBM0MsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNLLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDQSxVQUFVO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7Z0JBQ1Asa0JBQWtCO3NCQUFoRCxTQUFTO3VCQUFDLGtCQUFrQjtnQkFpSW5CLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0Um93RGVmLCBNYXRUYWJsZSwgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IHRhcCwgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29sdW1uQnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xyXG5pbXBvcnQgeyBHZW5lcmljVGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9HZW5lcmljVGFibGVEYXRhU291cmNlJztcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgcHJldmlvdXNBbmRDdXJyZW50IH0gZnJvbSAnLi4vLi4vLi4vcnhqcy9yeGpzLW9wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbHVtbkluZm8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0NvbHVtbkluZm8nO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QsIERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UYWJsZVN0YXRlJztcclxuaW1wb3J0IHsgUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3R5bGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1nZW5lcmljLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuc2NzcycsJy4uLy4uL3N0eWxlcy9jb2xsYXBzZXIuc3R5bGVzLnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdFRhYmxlTW9kdWxlLCBEcmFnRHJvcE1vZHVsZSwgU3R5bGVyRGlyZWN0aXZlLCBNYXRDaGVja2JveE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgUGFnaW5hdG9yQ29tcG9uZW50LCBNYXRUb29sdGlwTW9kdWxlLCBBc3luY1BpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICB0aGlzLnN0YXRlLnNldFVzZXJEZWZpbmVkT3JkZXIoe25ld09yZGVyOmV2ZW50LmN1cnJlbnRJbmRleCxvbGRPcmRlcjpldmVudC5wcmV2aW91c0luZGV4fSlcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGRhdGEkITogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgQElucHV0KCkgaW5kZXhDb2x1bW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWxlY3Rpb25Db2x1bW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0cmFja0J5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJvd3MhOiBRdWVyeUxpc3Q8TWF0Um93RGVmPGFueT4+O1xyXG4gIEBJbnB1dCgpIGlzU3RpY2t5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY29sdW1uQnVpbGRlcnMhOiBDb2x1bW5CdWlsZGVyQ29tcG9uZW50W107XHJcbiAgQElucHV0KCkgY29sdW1uSW5mb3MhOiBPYnNlcnZhYmxlPENvbHVtbkluZm9bXT47XHJcbiAgQElucHV0KCkgZ3JvdXBIZWFkZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIHByaXZhdGUgX2Rpc2FibGVTb3J0ITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZXQgZGlzYWJsZVNvcnQodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlU29ydCA9IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZT8uc29ydCkge1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0ID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSAmJiAhdGhpcy5kYXRhU291cmNlLnNvcnQpIHtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgZGlzYWJsZVNvcnQoKSB7IHJldHVybiB0aGlzLl9kaXNhYmxlU29ydDsgfVxyXG5cclxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZSE6IE1hdFRhYmxlPGFueT47XHJcbiAgQFZpZXdDaGlsZChDZGtEcm9wTGlzdCwgeyBzdGF0aWM6IHRydWUgfSkgZHJvcExpc3QhOiBDZGtEcm9wTGlzdDtcclxuICBAVmlld0NoaWxkKCd0YWJsZScsIHtyZWFkOiBFbGVtZW50UmVmfSkgdGFibGVFbFJlZiE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChQYWdpbmF0b3JDb21wb25lbnQpIHBhZ2luYXRvckNvbXBvbmVudCE6IFBhZ2luYXRvckNvbXBvbmVudDtcclxuICBjdXJyZW50Q29sdW1ucyE6IHN0cmluZ1tdO1xyXG4gIGRhdGFTb3VyY2UhOiBHZW5lcmljVGFibGVEYXRhU291cmNlPGFueT47XHJcbiAga2V5czogc3RyaW5nIFtdID0gW107XHJcbiAgaW5qZWN0b3I6IEluamVjdG9yO1xyXG4gIHJvd0RlZkFyciA6TWF0Um93RGVmPGFueT5bXT0gW107XHJcbiAgY29sdW1uczpzdHJpbmcgW10gPSBbXTtcclxuICBteUNvbHVtbnM6IERpY3Rpb25hcnk8Q29sdW1uQnVpbGRlckNvbXBvbmVudD4gPSB7fTtcclxuICBzaG93SGVhZGVyJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzb3J0OiBNYXRTb3J0LFxyXG4gICAgcHVibGljIHN0YXRlOiBUYWJsZVN0b3JlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgKSB7XHJcblxyXG4gICAgdGhpcy5pbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtwcm92aWRlOiBNYXRUYWJsZSwgdXNlRmFjdG9yeTogKCk9PiB0aGlzLnRhYmxlIH0sXHJcbiAgICAgICAge3Byb3ZpZGU6IENka0Ryb3BMaXN0LCB1c2VGYWN0b3J5OiAoKT0+IHRoaXMuZHJvcExpc3QgfSxcclxuICAgICAgXSxcclxuICAgICAgcGFyZW50OiBpbmplY3RvclxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5RnVuY3Rpb24gPSAoaW5kZXg6bnVtYmVyLCBpdGVtOiBhbnkpID0+IHtcclxuICAgIGlmICghaXRlbSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRyYWNrQnkpIHtcclxuICAgICAgcmV0dXJuIGl0ZW1bdGhpcy50cmFja0J5XTtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMucm93cyAmJiB0aGlzLnJvd3MgJiYgdGhpcy5teUNvbHVtbnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVJvd0RlZnMoWy4uLnRoaXMucm93c10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Db2x1bW4pIHtcclxuICAgICAgdGhpcy5jb2x1bW5zLnB1c2goJ3NlbGVjdCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmluZGV4Q29sdW1uKSB7XHJcbiAgICAgdGhpcy5jb2x1bW5zLnB1c2goJ2luZGV4Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jcmVhdGVEYXRhU291cmNlKCk7XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLmNvbHVtbkluZm9zLCBjb2x1bW5zID0+IHtcclxuICAgICAgY29sdW1ucy5mb3JFYWNoKGNpID0+IHRoaXMuYWRkTWV0YURhdGEoY2kpKVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplUm93RGVmcyhbLi4udGhpcy5yb3dzXSk7XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLnN0YXRlLmRpc3BsYXllZENvbHVtbnMkLCBrZXlzID0+IHtcclxuICAgICAgdGhpcy5rZXlzID0gWy4uLnRoaXMuY29sdW1ucywgLi4ua2V5c107XHJcbiAgICAgIHRoaXMucm93RGVmQXJyPy5mb3JFYWNoKHJvdyA9PiByb3cuY29sdW1ucyA9IHRoaXMua2V5cylcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2hvd0hlYWRlciQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlcikpKTtcclxuXHJcbiAgICB0aGlzLnNob3dGb290ZXJSb3ckID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuZGF0YSQucGlwZShtYXAoZCA9PiAhIWQubGVuZ3RoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXHJcbiAgICAgIHRoaXMuc3RhdGUubWV0YURhdGFBcnJheSQucGlwZShtYXAobWV0YURhdGEgPT4gbWV0YURhdGEuc29tZShtZCA9PiAhIW1kLmFkZGl0aW9uYWw/LmZvb3RlcikpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcclxuICAgICAgdGhpcy5jb2x1bW5JbmZvcy5waXBlKG1hcChjb2x1bW5JbmZvcyA9PiBjb2x1bW5JbmZvcy5zb21lKGNpID0+ICEhY2kuY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5mb290ZXJDZWxsKSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxyXG4gICAgXSkucGlwZShtYXAoKFtoYXNEYXRhLCBoYXNGb290ZXJEZWYsIGhhc0N1c3RvbUZvb3Rlcl0pID0+IHtcclxuICAgICAgY29uc3QgaGFzc2VsZWN0aW9uQ29sdW1uID0gdGhpcy5zZWxlY3Rpb25Db2x1bW47XHJcbiAgICAgIHJldHVybiBoYXNDdXN0b21Gb290ZXIgfHwgKGhhc0RhdGEgJiYgKGhhc0Zvb3RlckRlZiB8fCBoYXNzZWxlY3Rpb25Db2x1bW4pKSA/ICdyZWd1bGFyLWZvb3RlcicgOiBoYXNEYXRhID8gJ25vLWZvb3RlcicgOiAnc21hbGwtZm9vdGVyJztcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZURhdGFTb3VyY2UoKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgR2VuZXJpY1RhYmxlRGF0YVNvdXJjZShcclxuICAgICAgdGhpcy5kYXRhJC5waXBlKHRhcCgoZCkgPT4gdGhpcy5zZWxlY3Rpb24uY2xlYXIoKSApKVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZVNvcnQpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0dyb3VwSGVhZGVyKF86IG51bWJlciwgcm93OiB7IGlzR3JvdXBIZWFkZXI6IGJvb2xlYW4gfSkge1xyXG4gICAgcmV0dXJuIHJvdy5pc0dyb3VwSGVhZGVyO1xyXG4gIH1cclxuXHJcbiAgaXNHcm91cEZvb3RlcihfOiBudW1iZXIsIHJvdzogeyBpc0dyb3VwRm9vdGVyOiBib29sZWFuIH0pIHtcclxuICAgIHJldHVybiByb3cuaXNHcm91cEZvb3RlcjtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUdyb3VwKGdyb3VwOiBHcm91cCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGVHcm91cCh7XHJcbiAgICAgIC4uLmdyb3VwLFxyXG4gICAgICBpc0V4cGFuZGVkOiAhZ3JvdXAuaXNFeHBhbmRlZFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRNZXRhRGF0YShjb2x1bW46IENvbHVtbkluZm8pIHtcclxuICAgIGNvbnN0IGNvbHVtbkJ1aWxkZXIgPSB0aGlzLm15Q29sdW1uc1tjb2x1bW4ubWV0YURhdGEua2V5XTtcclxuICAgIGlmKGNvbHVtbkJ1aWxkZXIpIHtcclxuICAgICAgY29sdW1uQnVpbGRlci5tZXRhRGF0YSA9IGNvbHVtbi5tZXRhRGF0YTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoQ29sdW1uQnVpbGRlckNvbXBvbmVudCwge1xyXG4gICAgICAgIGluZGV4OiAwLFxyXG4gICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UuY3VzdG9tQ2VsbCA9IGNvbHVtbi5jdXN0b21DZWxsO1xyXG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UubWV0YURhdGEgPSBjb2x1bW4ubWV0YURhdGE7XHJcbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5kYXRhJCA9IHRoaXMuZGF0YSQ7XHJcbiAgICAgIHRoaXMubXlDb2x1bW5zW2NvbHVtbi5tZXRhRGF0YS5rZXldID0gY29tcG9uZW50Lmluc3RhbmNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVJvd0RlZnMgPSAoZGVmczpNYXRSb3dEZWY8YW55PltdKT0+e1xyXG4gICAgdGhpcy5yb3dEZWZBcnIuZm9yRWFjaChyPT50aGlzLnRhYmxlLnJlbW92ZVJvd0RlZihyKSk7XHJcbiAgICB0aGlzLnJvd0RlZkFyciA9IGRlZnM7XHJcbiAgICBkZWZzLmZvckVhY2gociA9PiB7XHJcbiAgICAgIHIuY29sdW1ucyA9IHRoaXMuY29sdW1ucy5jb25jYXQoT2JqZWN0LnZhbHVlcyh0aGlzLm15Q29sdW1ucykuZmlsdGVyKGMgPT4gYy5tZXRhRGF0YS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5IaWRkZW4pLm1hcChjID0+IGMubWV0YURhdGEua2V5KSk7XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlKSB7XHJcbiAgICAgICAgdGhpcy50YWJsZS5hZGRSb3dEZWYocik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0aW9uIDogU2VsZWN0aW9uTW9kZWw8YW55PiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KHRydWUsIFtdKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5zZWxlY3Rpb24uY2hhbmdlZDtcclxuICBtYXN0ZXJUb2dnbGVDaGVja2VkJCA9IHRoaXMuc2VsZWN0aW9uJC5waXBlKG1hcCgoKT0+dGhpcy5zZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiB0aGlzLmlzQWxsU2VsZWN0ZWQoKSkpO1xyXG4gIG1hc3RlclRvZ2dsZUluZGV0ZXJtaW5hdGUkID0gdGhpcy5zZWxlY3Rpb24kLnBpcGUobWFwKCgpPT50aGlzLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICF0aGlzLmlzQWxsU2VsZWN0ZWQoKSkpO1xyXG5cclxuICBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XHJcbiAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xyXG4gICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvbi4gKi9cclxuICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICB0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCkgOlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QoLi4udGhpcy5kYXRhU291cmNlLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdGFibGVXaWR0aCA9IHRoaXMuc3RhdGUuZ2V0VXNlckRlZmluZWRUYWJsZVNpemUkLnBpcGUoXHJcbiAgICBwcmV2aW91c0FuZEN1cnJlbnQ8bnVtYmVyIHwgdW5kZWZpbmVkPigwKSxcclxuICAgIG1hcCgoW3ByZXZpb3VzVXNlckRlZmluZWRXaWR0aCwgY3VycmVudFVzZXJEZWZpbmVkV2lkdGhdKSA9PiB7XHJcbiAgICAgIGlmKCBjdXJyZW50VXNlckRlZmluZWRXaWR0aCl7XHJcbiAgICAgICAgcmV0dXJuICh7d2lkdGg6YCR7Y3VycmVudFVzZXJEZWZpbmVkV2lkdGh9cHhgfSk7XHJcbiAgICAgIH0gaWYoIHdhc1Jlc2V0KCkgKXtcclxuICAgICAgICByZXR1cm4gKHt3aWR0aDonaW5pdGlhbCd9KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKHt9KTtcclxuXHJcbiAgICAgIGZ1bmN0aW9uIHdhc1Jlc2V0KCl7XHJcbiAgICAgICAgcmV0dXJuIChwcmV2aW91c1VzZXJEZWZpbmVkV2lkdGggPz8gMCkgPj0wICYmIGN1cnJlbnRVc2VyRGVmaW5lZFdpZHRoID09IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgKTtcclxuICBcclxuICBzaG93Rm9vdGVyUm93JCE6IE9ic2VydmFibGU8J3JlZ3VsYXItZm9vdGVyJyB8ICduby1mb290ZXInIHwgJ3NtYWxsLWZvb3Rlcic+O1xyXG4gIGNvbGxhcHNlRm9vdGVyJCA9IHRoaXMuc3RhdGUuc3RhdGUkLnBpcGUobWFwKHN0YXRlID0+IHN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3MuY29sbGFwc2VGb290ZXIpKTtcclxufVxyXG4iLCI8bWF0LXRhYmxlXHJcbiAgY2RrRHJvcExpc3RcclxuICBjZGtEcm9wTGlzdExvY2tBeGlzPSd4J1xyXG4gIGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJob3Jpem9udGFsXCJcclxuICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXHJcbiAgY2xhc3M9XCJ0YWJsZS1kcmFnLWxpc3RcIlxyXG4gIFtjbGFzc109XCIoc2hvd0Zvb3RlclJvdyQgfCBhc3luYylcIlxyXG4gICN0YWJsZVxyXG4gIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxyXG4gIFt0cmFja0J5XT0ndHJhY2tCeUZ1bmN0aW9uJ1xyXG4gIFtzdHlsZXJdPVwidGFibGVXaWR0aCB8IGFzeW5jXCJcclxuPlxyXG5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNlbGVjdFwiPlxyXG5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJmLW1hdC1oZWFkZXItY2VsbFwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiJGV2ZW50ID8gbWFzdGVyVG9nZ2xlKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCIhIShtYXN0ZXJUb2dnbGVDaGVja2VkJCB8IGFzeW5jKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwibWFzdGVyVG9nZ2xlSW5kZXRlcm1pbmF0ZSQgfCBhc3luY1wiPlxyXG4gICAgICA8L21hdC1jaGVja2JveD5cclxuICAgIDwvbWF0LWhlYWRlci1jZWxsPlxyXG5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cclxuICAgICAgQGlmKCFyb3cuaXNHcm91cEZvb3Rlcil7XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShyb3cpIDogbnVsbFwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KVwiLz5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtY2VsbD5cclxuXHJcbiAgICA8bWF0LWZvb3Rlci1jZWxsICptYXRGb290ZXJDZWxsRGVmPlxyXG4gICAgICB7eyBzZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoIH19XHJcbiAgICA8L21hdC1mb290ZXItY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxyXG4gICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZi1tYXQtaGVhZGVyLWNlbGxcIiA+IzwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgaSA9IGluZGV4O1wiPiB7eyAodGJQYWdpbmF0b3IucGFnaW5hdG9yLnBhZ2VJbmRleCAqIHRiUGFnaW5hdG9yLnBhZ2luYXRvci5wYWdlU2l6ZSkgKyAgaSArIDEgfX0gPC9tYXQtY2VsbD5cclxuICAgICAgPG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L21hdC1mb290ZXItY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJncm91cEhlYWRlclwiPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxyXG4gICAgICA8ZGl2IFtzdHlsZS5wYWRkaW5nTGVmdF09XCJyb3cucGFkZGluZyArICdweCAhaW1wb3J0YW50J1wiID5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidXBkYXRlR3JvdXAocm93KTtcIj5cclxuICAgICAgICAgIEBpZighcm93LmlzRXhwYW5kZWQpe1xyXG4gICAgICAgICAgICA8bWF0LWljb24+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPG1hdC1pY29uPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB7e3Jvdy5ncm91cEhlYWRlck5hbWV9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJncm91cEhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7IGVsZW1lbnQ6IHJvdyB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtY2VsbD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgQGlmKHNob3dIZWFkZXIkIHwgYXN5bmMpe1xyXG4gICAgPG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJrZXlzOyBzdGlja3k6IGlzU3RpY2t5XCIgLz5cclxuICB9XHJcbiAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGtleXM7IGxldCBpID0gaW5kZXhcIiAvPlxyXG4gIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBbJ2dyb3VwSGVhZGVyJ107IHdoZW46IGlzR3JvdXBIZWFkZXJcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHdoaXRlO1wiIC8+XHJcbiAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGtleXM7IHdoZW46IGlzR3JvdXBGb290ZXJcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHdoaXRlc21va2U7XCIgLz5cclxuICA8bWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cIihzaG93Rm9vdGVyUm93JCB8IGFzeW5jKSA9PT0gJ3JlZ3VsYXItZm9vdGVyJyA/IGtleXMgOiBbXVwiIC8+XHJcblxyXG48L21hdC10YWJsZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbHgtcm93LWVuZCBzdGlja3lcIj5cclxuICA8dGItcGFnaW5hdG9yICN0YlBhZ2luYXRvclxyXG4gICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICBbdGFibGVFbFJlZl09XCJ0YWJsZUVsUmVmXCJcclxuICAgIFtkYXRhJF09XCJkYXRhJFwiIC8+XHJcblxyXG4gIDxtYXQtaWNvbiBbbWF0VG9vbHRpcF09XCIoY29sbGFwc2VGb290ZXIkIHwgYXN5bmMpID8gJ2V4cGFuZCcgOiAnY29sbGFwc2UnXCIgY2xhc3M9XCJjb2xsYXBzZS1pY29uIGZvb3RlclwiIChjbGljayk9XCJzdGF0ZS50b2dnbGVDb2xsYXBzZUZvb3RlcigpXCI+XHJcbiAgICB7eyhjb2xsYXBzZUZvb3RlciQgfCBhc3luYykgPyAnZXhwYW5kX21vcmUnIDogJ2V4cGFuZF9sZXNzJ319XHJcbiAgPC9tYXQtaWNvbj5cclxuPC9kaXY+XHJcbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFLTixVQUFVLEVBQ1YsUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUUsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEUsT0FBTyxFQUFlLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1B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QUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR2lDLEtBQUs7c0JBQTNDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSyxRQUFRO3NCQUFqRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0EsVUFBVTtzQkFBakQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQUNQLGtCQUFrQjtzQkFBaEQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBK0duQixVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IE1hdFJvd0RlZiwgTWF0VGFibGUsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyB0YXAsIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbHVtbkJ1aWxkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kaWN0aW9uYXJ5JztcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgcHJldmlvdXNBbmRDdXJyZW50IH0gZnJvbSAnLi4vLi4vLi4vcnhqcy9yeGpzLW9wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbHVtbkluZm8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0NvbHVtbkluZm8nO1xyXG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QsIERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZ1bmN0aW9uUGlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNmb3JtQ3JlYXRvciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zZm9ybS1jcmVhdG9yJztcclxuaW1wb3J0IHsgTWF0VGFibGVPYnNlcnZhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvTWF0VGFibGVPYnNlcnZhYmxlRGF0YVNvdXJjZSc7XHJcbmltcG9ydCB7IGluaXRJbmRleFN5bWJvbCB9IGZyb20gJy4uL3RhYmxlLWNvbnRhaW5lci90YWJsZS1jb250YWluZXIuaGVscGVycy9zb3J0LXN0YXRlLmhlbHBlcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1nZW5lcmljLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuc2NzcycsJy4uLy4uL3N0eWxlcy9jb2xsYXBzZXIuc3R5bGVzLnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdFRhYmxlTW9kdWxlLCBEcmFnRHJvcE1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIFBhZ2luYXRvckNvbXBvbmVudCwgTWF0VG9vbHRpcE1vZHVsZSwgQXN5bmNQaXBlLCBMZXREaXJlY3RpdmUsIEZ1bmN0aW9uUGlwZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIHRoaXMuc3RhdGUuc2V0VXNlckRlZmluZWRPcmRlcih7bmV3T3JkZXI6ZXZlbnQuY3VycmVudEluZGV4LG9sZE9yZGVyOmV2ZW50LnByZXZpb3VzSW5kZXh9KVxyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdHJhY2tCeSh0cmFja0J5OiBzdHJpbmcpe1xyXG4gICAgaWYodHJhY2tCeSl7XHJcbiAgICAgIHRoaXMudHJhY2tCeUZ1bmN0aW9uID0gKGluZGV4Om51bWJlciwgaXRlbTogYW55KSA9PiBpdGVtW3RyYWNrQnldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZGlzcGxheURhdGEkITogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgQElucHV0KCkgZGF0YSQhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBASW5wdXQoKSBpbmRleENvbHVtbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGlvbkNvbHVtbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHJvd3MhOiBRdWVyeUxpc3Q8TWF0Um93RGVmPGFueT4+O1xyXG4gIEBJbnB1dCgpIGlzU3RpY2t5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY29sdW1uQnVpbGRlcnMhOiBDb2x1bW5CdWlsZGVyQ29tcG9uZW50W107XHJcbiAgQElucHV0KCkgY29sdW1uSW5mb3MhOiBPYnNlcnZhYmxlPENvbHVtbkluZm9bXT47XHJcbiAgQElucHV0KCkgZ3JvdXBIZWFkZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cclxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZSE6IE1hdFRhYmxlPGFueT47XHJcbiAgQFZpZXdDaGlsZChDZGtEcm9wTGlzdCwgeyBzdGF0aWM6IHRydWUgfSkgZHJvcExpc3QhOiBDZGtEcm9wTGlzdDtcclxuICBAVmlld0NoaWxkKCd0YWJsZScsIHtyZWFkOiBFbGVtZW50UmVmfSkgdGFibGVFbFJlZiE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChQYWdpbmF0b3JDb21wb25lbnQpIHBhZ2luYXRvckNvbXBvbmVudCE6IFBhZ2luYXRvckNvbXBvbmVudDtcclxuICBjdXJyZW50Q29sdW1ucyE6IHN0cmluZ1tdO1xyXG4gIGRhdGFTb3VyY2UhOiBNYXRUYWJsZU9ic2VydmFibGVEYXRhU291cmNlPGFueT47XHJcbiAga2V5czogc3RyaW5nIFtdID0gW107XHJcbiAgaW5qZWN0b3I6IEluamVjdG9yO1xyXG4gIHJvd0RlZkFyciA6TWF0Um93RGVmPGFueT5bXT0gW107XHJcbiAgY29sdW1uczpzdHJpbmcgW10gPSBbXTtcclxuICBteUNvbHVtbnM6IERpY3Rpb25hcnk8Q29sdW1uQnVpbGRlckNvbXBvbmVudD4gPSB7fTtcclxuICBzaG93SGVhZGVyJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzb3J0OiBNYXRTb3J0LFxyXG4gICAgcHVibGljIHN0YXRlOiBUYWJsZVN0b3JlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1DcmVhdG9yOiBUcmFuc2Zvcm1DcmVhdG9yLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgKSB7XHJcblxyXG4gICAgdGhpcy5pbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtwcm92aWRlOiBNYXRUYWJsZSwgdXNlRmFjdG9yeTogKCk9PiB0aGlzLnRhYmxlIH0sXHJcbiAgICAgICAge3Byb3ZpZGU6IENka0Ryb3BMaXN0LCB1c2VGYWN0b3J5OiAoKT0+IHRoaXMuZHJvcExpc3QgfSxcclxuICAgICAgXSxcclxuICAgICAgcGFyZW50OiBpbmplY3RvclxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWZhdWx0VHJhY2tCeSA9IChpbmRleDpudW1iZXIsIGl0ZW06IGFueSkgPT4gaXRlbVtpbml0SW5kZXhTeW1ib2xdO1xyXG4gIHRyYWNrQnlGdW5jdGlvbiA9IHRoaXMuZGVmYXVsdFRyYWNrQnk7XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMucm93cyAmJiB0aGlzLnJvd3MgJiYgdGhpcy5teUNvbHVtbnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVJvd0RlZnMoWy4uLnRoaXMucm93c10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Db2x1bW4pIHtcclxuICAgICAgdGhpcy5jb2x1bW5zLnB1c2goJ3NlbGVjdCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmluZGV4Q29sdW1uKSB7XHJcbiAgICAgdGhpcy5jb2x1bW5zLnB1c2goJ2luZGV4Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jcmVhdGVEYXRhU291cmNlKCk7XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLmNvbHVtbkluZm9zLCBjb2x1bW5zID0+IHtcclxuICAgICAgY29sdW1ucy5mb3JFYWNoKGNpID0+IHRoaXMuYWRkTWV0YURhdGEoY2kpKVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplUm93RGVmcyhbLi4udGhpcy5yb3dzXSk7XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLnN0YXRlLmRpc3BsYXllZENvbHVtbnMkLCBrZXlzID0+IHtcclxuICAgICAgdGhpcy5rZXlzID0gWy4uLnRoaXMuY29sdW1ucywgLi4ua2V5c107XHJcbiAgICAgIHRoaXMucm93RGVmQXJyPy5mb3JFYWNoKHJvdyA9PiByb3cuY29sdW1ucyA9IHRoaXMua2V5cylcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2hvd0hlYWRlciQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlcikpKTtcclxuXHJcbiAgICB0aGlzLnNob3dGb290ZXJSb3ckID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuZGlzcGxheURhdGEkLnBpcGUobWFwKGQgPT4gISFkLmxlbmd0aCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxyXG4gICAgICB0aGlzLnN0YXRlLm1ldGFEYXRhQXJyYXkkLnBpcGUobWFwKG1ldGFEYXRhID0+IG1ldGFEYXRhLnNvbWUobWQgPT4gISFtZC5hZGRpdGlvbmFsPy5mb290ZXIpKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXHJcbiAgICAgIHRoaXMuY29sdW1uSW5mb3MucGlwZShtYXAoY29sdW1uSW5mb3MgPT4gY29sdW1uSW5mb3Muc29tZShjaSA9PiAhIWNpLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uZm9vdGVyQ2VsbCkpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcclxuICAgIF0pLnBpcGUobWFwKChbaGFzRGF0YSwgaGFzRm9vdGVyRGVmLCBoYXNDdXN0b21Gb290ZXJdKSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhc1NlbGVjdGlvbkNvbHVtbiA9IHRoaXMuc2VsZWN0aW9uQ29sdW1uO1xyXG4gICAgICByZXR1cm4gaGFzQ3VzdG9tRm9vdGVyIHx8IChoYXNEYXRhICYmIChoYXNGb290ZXJEZWYgfHwgaGFzU2VsZWN0aW9uQ29sdW1uKSkgPyAncmVndWxhci1mb290ZXInIDogaGFzRGF0YSA/ICduby1mb290ZXInIDogJ3NtYWxsLWZvb3Rlcic7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVEYXRhU291cmNlKCkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlT2JzZXJ2YWJsZURhdGFTb3VyY2UoXHJcbiAgICAgIHRoaXMuZGlzcGxheURhdGEkLnBpcGUodGFwKChkKSA9PiB0aGlzLnNlbGVjdGlvbi5jbGVhcigpICkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaXNHcm91cEhlYWRlcihfOiBudW1iZXIsIHJvdzogeyBpc0dyb3VwSGVhZGVyOiBib29sZWFuIH0pIHtcclxuICAgIHJldHVybiByb3cuaXNHcm91cEhlYWRlcjtcclxuICB9XHJcblxyXG4gIHNldEV4cGFuZGVkKGtleTogc3RyaW5nLCBncm91cEtleTogc3RyaW5nLCBpc0V4cGFuZGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZUV4cGFuZGVkR3JvdXBzKHsga2V5ICwgaXNFeHBhbmRlZCwgZ3JvdXBLZXkgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRNZXRhRGF0YShjb2x1bW46IENvbHVtbkluZm8pIHtcclxuICAgIGNvbnN0IGNvbHVtbkJ1aWxkZXIgPSB0aGlzLm15Q29sdW1uc1tjb2x1bW4ubWV0YURhdGEua2V5XTtcclxuICAgIGlmKGNvbHVtbkJ1aWxkZXIpIHtcclxuICAgICAgY29sdW1uQnVpbGRlci5tZXRhRGF0YSA9IGNvbHVtbi5tZXRhRGF0YTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoQ29sdW1uQnVpbGRlckNvbXBvbmVudCwge1xyXG4gICAgICAgIGluZGV4OiAwLFxyXG4gICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yXHJcbiAgICAgIH0pO1xyXG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UuY3VzdG9tQ2VsbCA9IGNvbHVtbi5jdXN0b21DZWxsO1xyXG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UubWV0YURhdGEgPSBjb2x1bW4ubWV0YURhdGE7XHJcbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5kYXRhJCA9IHRoaXMuZGF0YSQ7XHJcbiAgICAgIHRoaXMubXlDb2x1bW5zW2NvbHVtbi5tZXRhRGF0YS5rZXldID0gY29tcG9uZW50Lmluc3RhbmNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVJvd0RlZnMgPSAoZGVmczpNYXRSb3dEZWY8YW55PltdKT0+e1xyXG4gICAgdGhpcy5yb3dEZWZBcnIuZm9yRWFjaChyPT50aGlzLnRhYmxlLnJlbW92ZVJvd0RlZihyKSk7XHJcbiAgICB0aGlzLnJvd0RlZkFyciA9IGRlZnM7XHJcbiAgICBkZWZzLmZvckVhY2gociA9PiB7XHJcbiAgICAgIHIuY29sdW1ucyA9IHRoaXMuY29sdW1ucy5jb25jYXQoT2JqZWN0LnZhbHVlcyh0aGlzLm15Q29sdW1ucykuZmlsdGVyKGMgPT4gYy5tZXRhRGF0YS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5IaWRkZW4pLm1hcChjID0+IGMubWV0YURhdGEua2V5KSk7XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlKSB7XHJcbiAgICAgICAgdGhpcy50YWJsZS5hZGRSb3dEZWYocik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0aW9uIDogU2VsZWN0aW9uTW9kZWw8YW55PiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KHRydWUsIFtdKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5zZWxlY3Rpb24uY2hhbmdlZDtcclxuICBtYXN0ZXJUb2dnbGVDaGVja2VkJCA9IHRoaXMuc2VsZWN0aW9uJC5waXBlKG1hcCgoKT0+dGhpcy5zZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiB0aGlzLmlzQWxsU2VsZWN0ZWQoKSkpO1xyXG4gIG1hc3RlclRvZ2dsZUluZGV0ZXJtaW5hdGUkID0gdGhpcy5zZWxlY3Rpb24kLnBpcGUobWFwKCgpPT50aGlzLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICF0aGlzLmlzQWxsU2VsZWN0ZWQoKSkpO1xyXG5cclxuICBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgY29uc3QgbnVtU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGg7XHJcbiAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xyXG4gICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvbi4gKi9cclxuICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICB0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCkgOlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3QoLi4udGhpcy5kYXRhU291cmNlLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdGFibGVXaWR0aCA9IHRoaXMuc3RhdGUuZ2V0VXNlckRlZmluZWRUYWJsZVNpemUkLnBpcGUoXHJcbiAgICBwcmV2aW91c0FuZEN1cnJlbnQ8bnVtYmVyIHwgdW5kZWZpbmVkPigwKSxcclxuICAgIG1hcCgoW3ByZXZpb3VzVXNlckRlZmluZWRXaWR0aCwgY3VycmVudFVzZXJEZWZpbmVkV2lkdGhdKSA9PiB7XHJcbiAgICAgIGlmKCBjdXJyZW50VXNlckRlZmluZWRXaWR0aCl7XHJcbiAgICAgICAgcmV0dXJuICh7d2lkdGg6YCR7Y3VycmVudFVzZXJEZWZpbmVkV2lkdGh9cHhgfSk7XHJcbiAgICAgIH0gaWYoIHdhc1Jlc2V0KCkgKXtcclxuICAgICAgICByZXR1cm4gKHt3aWR0aDonaW5pdGlhbCd9KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKHt9KTtcclxuXHJcbiAgICAgIGZ1bmN0aW9uIHdhc1Jlc2V0KCl7XHJcbiAgICAgICAgcmV0dXJuIChwcmV2aW91c1VzZXJEZWZpbmVkV2lkdGggPz8gMCkgPj0wICYmIGN1cnJlbnRVc2VyRGVmaW5lZFdpZHRoID09IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgKTtcclxuICBcclxuICBzaG93Rm9vdGVyUm93JCE6IE9ic2VydmFibGU8J3JlZ3VsYXItZm9vdGVyJyB8ICduby1mb290ZXInIHwgJ3NtYWxsLWZvb3Rlcic+O1xyXG4gIGNvbGxhcHNlRm9vdGVyJCA9IHRoaXMuc3RhdGUuc3RhdGUkLnBpcGUobWFwKHN0YXRlID0+IHN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3MuY29sbGFwc2VGb290ZXIpKTtcclxuICBnZXRUcmFuc2Zvcm0gPSAoa2V5OiBzdHJpbmcsIHZhbDogc3RyaW5nKSA9PiB7XHJcbiAgICBpZih2YWwgPT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gJ251bGwnKSByZXR1cm4gJyc7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1DcmVhdG9yLmNyZWF0ZVRyYW5zZm9ybWVyKHRoaXMubXlDb2x1bW5zW2tleV0ubWV0YURhdGEsIHRydWUpKHsgW2tleV06IHZhbH0pO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgcmV0dXJuIHZhbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG1hdC10YWJsZVxyXG4gIGNka0Ryb3BMaXN0XHJcbiAgY2RrRHJvcExpc3RMb2NrQXhpcz0neCdcclxuICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXHJcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxyXG4gIGNsYXNzPVwidGFibGUtZHJhZy1saXN0XCJcclxuICBbY2xhc3NdPVwiKHNob3dGb290ZXJSb3ckIHwgYXN5bmMpXCJcclxuICAjdGFibGVcclxuICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcclxuICBbdHJhY2tCeV09XCJ0cmFja0J5RnVuY3Rpb25cIlxyXG4gIFtzdHlsZV09XCJ0YWJsZVdpZHRoIHwgYXN5bmNcIlxyXG4+XHJcblxyXG4gIDwhLS0gc2VsZWN0IGNvbHVtbiAtLT5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNlbGVjdFwiPlxyXG5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJmLW1hdC1oZWFkZXItY2VsbFwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiJGV2ZW50ID8gbWFzdGVyVG9nZ2xlKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCIhIShtYXN0ZXJUb2dnbGVDaGVja2VkJCB8IGFzeW5jKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwibWFzdGVyVG9nZ2xlSW5kZXRlcm1pbmF0ZSQgfCBhc3luY1wiPlxyXG4gICAgICA8L21hdC1jaGVja2JveD5cclxuICAgIDwvbWF0LWhlYWRlci1jZWxsPlxyXG5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cclxuICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24udG9nZ2xlKHJvdykgOiBudWxsXCJcclxuICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KVwiLz5cclxuICAgIDwvbWF0LWNlbGw+XHJcblxyXG4gICAgPG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj5cclxuICAgICAge3sgc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCB9fVxyXG4gICAgPC9tYXQtZm9vdGVyLWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gaW5kZXggY29sdW1uIC0tPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cclxuICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImYtbWF0LWhlYWRlci1jZWxsXCIgPiM8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGkgPSBpbmRleDtcIj4ge3sgKHRiUGFnaW5hdG9yLnBhZ2luYXRvci5wYWdlSW5kZXggKiB0YlBhZ2luYXRvci5wYWdpbmF0b3IucGFnZVNpemUpICsgIGkgKyAxIH19IDwvbWF0LWNlbGw+XHJcbiAgICAgIDxtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC9tYXQtZm9vdGVyLWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gR3JvdXBpbmcgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJncm91cEhlYWRlclwiPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxyXG4gICAgICA8ZGl2IFtzdHlsZS5wYWRkaW5nTGVmdF09XCJyb3cucGFkZGluZyArICdweCAhaW1wb3J0YW50J1wiICpuZ3J4TGV0PVwiKHN0YXRlLmdldElzRXhwYW5kZWQgfCBmdW5jIDogcm93LmtleSA6IHJvdy5ncm91cE5hbWUgKSBhcyBleHBhbmRlZFwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzZXRFeHBhbmRlZChyb3cua2V5LCByb3cuZ3JvdXBOYW1lLCAhZXhwYW5kZWQpO1wiPlxyXG4gICAgICAgICAgQGlmKCFleHBhbmRlZCl7XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPiBcclxuICAgICAgICAgIH1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB7e2dldFRyYW5zZm9ybSB8IGZ1bmMgOiByb3cua2V5IDogIHJvdy5ncm91cEhlYWRlckRpc3BsYXl9fSAoe3tyb3cubGVuZ3RofX0pXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdyb3VwSGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgZWxlbWVudDogcm93IH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICBAaWYoc2hvd0hlYWRlciQgfCBhc3luYyl7XHJcbiAgICA8bWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImtleXM7IHN0aWNreTogaXNTdGlja3lcIiAvPlxyXG4gIH1cclxuICA8bWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczoga2V5czsgbGV0IGkgPSBpbmRleFwiIC8+XHJcbiAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsnZ3JvdXBIZWFkZXInXTsgd2hlbjogaXNHcm91cEhlYWRlclwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XCIgLz5cclxuICA8bWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cIihzaG93Rm9vdGVyUm93JCB8IGFzeW5jKSA9PT0gJ3JlZ3VsYXItZm9vdGVyJyA/IGtleXMgOiBbXVwiIC8+XHJcblxyXG48L21hdC10YWJsZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbHgtcm93LWVuZCBzdGlja3lcIj5cclxuICA8dGItcGFnaW5hdG9yICN0YlBhZ2luYXRvclxyXG4gICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICBbdGFibGVFbFJlZl09XCJ0YWJsZUVsUmVmXCJcclxuICAgIFtkYXRhJF09XCJkYXRhJFwiIC8+XHJcblxyXG4gIDxtYXQtaWNvbiBbbWF0VG9vbHRpcF09XCIoY29sbGFwc2VGb290ZXIkIHwgYXN5bmMpID8gJ2V4cGFuZCcgOiAnY29sbGFwc2UnXCIgY2xhc3M9XCJjb2xsYXBzZS1pY29uIGZvb3RlclwiIChjbGljayk9XCJzdGF0ZS50b2dnbGVDb2xsYXBzZUZvb3RlcigpXCI+XHJcbiAgICB7eyhjb2xsYXBzZUZvb3RlciQgfCBhc3luYykgPyAnZXhwYW5kX21vcmUnIDogJ2V4cGFuZF9sZXNzJ319XHJcbiAgPC9tYXQtaWNvbj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -75,4 +75,4 @@ const delayToAllowForProperUpdate = delay(0, asyncScheduler);
75
75
  const metaDataPageSizeChange = (state) => state.state$.pipe(map(state => state.userDefined.pageSize || state.pageSize), distinct());
76
76
  const setPaginatorPageSize = (paginator) => (pageSize) => paginator._changePageSize(pageSize);
77
77
  const onPaginatorPageSizeChange = (paginator) => paginator.page.pipe(map(e => e.pageSize), distinct());
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvZ2VuZXJpYy10YWJsZS9wYWdpbmF0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBYSxNQUFNLDZCQUE2QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLEdBQUcsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBR3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFrQnJELE1BQU0sT0FBTyxrQkFBa0I7SUFRN0IsWUFBb0IsS0FBa0I7UUFBbEIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQTBCdEMsaUJBQVksR0FBRyxLQUFLLENBQUM7SUExQm1CLENBQUM7SUFDekMsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FB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LElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFFL0ksTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQzVFLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFdEMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFNBQXVCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkluaXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlLCBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIGRpc3RpbmN0LCBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEdlbmVyaWNUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL0dlbmVyaWNUYWJsZURhdGFTb3VyY2UnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItcGFnaW5hdG9yJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtBc3luY1BpcGUsIE1hdFBhZ2luYXRvck1vZHVsZSwgTmdDbGFzc10sXHJcbiAgdGVtcGxhdGU6IGBcclxuICBAaWYoY3VycmVudFBhZ2VEYXRhJCB8IGFzeW5jOyBhcyBwYWdlRGF0YSl7XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGlkZScgOiAhKGNvbGxhcHNlRm9vdGVyJCB8IGFzeW5jKSwgJ3BhZ2UtYW1vdW50cyc6dHJ1ZX1cIj5cclxuICAgICAge3twYWdlRGF0YS5jdXJyZW50U3RhcnR9fSAtIHt7cGFnZURhdGEuY3VycmVudEVuZH19IG9mIHt7cGFnZURhdGEudG90YWx9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIDxtYXQtcGFnaW5hdG9yIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyMCwgNTAsIDEwMCwgNTAwXVwiIHNob3dGaXJzdExhc3RCdXR0b25zIChwYWdlKT1cInBhZ2luYXRvckNoYW5nZSgpXCJcclxuICAgIFtuZ0NsYXNzXT1cInsnaGlkZScgOiAoY29sbGFwc2VGb290ZXIkIHwgYXN5bmMpfVwiPlxyXG4gIDwvbWF0LXBhZ2luYXRvcj5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogWycuL2dlbmVyaWMtdGFibGUuY29tcG9uZW50LnNjc3MnLCcuLi8uLi9zdHlsZXMvY29sbGFwc2VyLnN0eWxlcy5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXR7XHJcbiAgQElucHV0KCkgZGF0YVNvdXJjZSEgOiBHZW5lcmljVGFibGVEYXRhU291cmNlPGFueT47XHJcbiAgQElucHV0KCkgdGFibGVFbFJlZiEgOiBFbGVtZW50UmVmXHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvciE6IE1hdFBhZ2luYXRvcjtcclxuICBjdXJyZW50UGFnZURhdGEkITogT2JzZXJ2YWJsZTxDdXJyZW50UGFnZURldGFpbHM+O1xyXG4gIGNvbGxhcHNlRm9vdGVyJCE6T2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICBASW5wdXQoKSBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0YXRlIDogVGFibGVTdG9yZSl7fVxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICB0aGlzLm91clBhZ2VFdmVudCA9IHRydWU7XHJcbiAgICB0aGlzLnN0YXRlLm9uKG1ldGFEYXRhUGFnZVNpemVDaGFuZ2UodGhpcy5zdGF0ZSksIHNldFBhZ2luYXRvclBhZ2VTaXplKHRoaXMucGFnaW5hdG9yKSk7XHJcbiAgICB0aGlzLnN0YXRlLnNldFBhZ2VTaXplKG9uUGFnaW5hdG9yUGFnZVNpemVDaGFuZ2UodGhpcy5wYWdpbmF0b3IpKTtcclxuICAgIHRoaXMuY29sbGFwc2VGb290ZXIkID0gdGhpcy5zdGF0ZS5zdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUucGVyc2lzdGVkVGFibGVTZXR0aW5ncy5jb2xsYXBzZUZvb3RlcikpO1xyXG5cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCl7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlRGF0YSQgPSBtZXJnZShcclxuICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZS5waXBlKG1hcChtYXBQYWdpbmF0aW9uRXZlbnRUb0N1cnJlbnRQYWdlRGV0YWlscykpLFxyXG4gICAgICB0aGlzLmRhdGEkLnBpcGUoXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbEtleUNoYW5nZWQoXCJsZW5ndGhcIiksXHJcbiAgICAgICAgZGVsYXlUb0FsbG93Rm9yUHJvcGVyVXBkYXRlLFxyXG4gICAgICAgIG1hcCh1cGRhdGVDdXJyZW50UGFnZURldGFpbHNPbkRhdGFMZW5ndGhDaGFuZ2UodGhpcy5wYWdpbmF0b3IpKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0b3JDaGFuZ2UoKSA6IHZvaWQge1xyXG4gICAgaWYoIXRoaXMub3VyUGFnZUV2ZW50KXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRhYmxlRWxSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnNjcm9sbEludG9WaWV3KCksIDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vdXJQYWdlRXZlbnQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgb3VyUGFnZUV2ZW50ID0gZmFsc2U7XHJcbn1cclxuXHJcbmNvbnN0IG1hcFBhZ2luYXRpb25FdmVudFRvQ3VycmVudFBhZ2VEZXRhaWxzID0gKHBhZ2VEYXRhOiBQYWdlRXZlbnQpOkN1cnJlbnRQYWdlRGV0YWlscyA9PiAoe1xyXG4gIGN1cnJlbnRTdGFydCA6IChwYWdlRGF0YS5wYWdlSW5kZXggKiBwYWdlRGF0YS5wYWdlU2l6ZSkgKyAxLFxyXG4gIGN1cnJlbnRFbmQgOiBNYXRoLm1pbihwYWdlRGF0YS5sZW5ndGggLCAoKHBhZ2VEYXRhLnBhZ2VJbmRleCArIDEpICogcGFnZURhdGEucGFnZVNpemUpKSxcclxuICB0b3RhbCA6IHBhZ2VEYXRhLmxlbmd0aFxyXG59KTtcclxuXHJcbmNvbnN0IHVwZGF0ZUN1cnJlbnRQYWdlRGV0YWlsc09uRGF0YUxlbmd0aENoYW5nZSA9IChwYWdpbmF0b3I6TWF0UGFnaW5hdG9yKSA9PiAoKSA9PiAoe2N1cnJlbnRTdGFydDoocGFnaW5hdG9yLnBhZ2VJbmRleCAqIHBhZ2luYXRvci5wYWdlU2l6ZSkgKyAxLFxyXG4gIGN1cnJlbnRFbmQ6IE1hdGgubWluKHBhZ2luYXRvci5sZW5ndGggLCAoKHBhZ2luYXRvci5wYWdlSW5kZXggKyAxKSAqIHBhZ2luYXRvci5wYWdlU2l6ZSkpLFxyXG4gIHRvdGFsOnBhZ2luYXRvci5sZW5ndGh9KVxyXG5cclxuY29uc3QgZGVsYXlUb0FsbG93Rm9yUHJvcGVyVXBkYXRlID0gZGVsYXk8YW55W10+KDAsYXN5bmNTY2hlZHVsZXIpO1xyXG5cclxuaW50ZXJmYWNlIEN1cnJlbnRQYWdlRGV0YWlscyB7XHJcbiAgY3VycmVudFN0YXJ0Om51bWJlcixcclxuICBjdXJyZW50RW5kOm51bWJlcixcclxuICB0b3RhbDpudW1iZXJcclxufVxyXG5cclxuY29uc3QgbWV0YURhdGFQYWdlU2l6ZUNoYW5nZSA9IChzdGF0ZTpUYWJsZVN0b3JlKSA9PiBzdGF0ZS5zdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUudXNlckRlZmluZWQucGFnZVNpemUgfHwgc3RhdGUucGFnZVNpemUpLCBkaXN0aW5jdCgpKTtcclxuXHJcbmNvbnN0IHNldFBhZ2luYXRvclBhZ2VTaXplID0gKHBhZ2luYXRvcjpNYXRQYWdpbmF0b3IpID0+IChwYWdlU2l6ZTogbnVtYmVyKSA9PlxyXG4gIHBhZ2luYXRvci5fY2hhbmdlUGFnZVNpemUocGFnZVNpemUpO1xyXG5cclxuY29uc3Qgb25QYWdpbmF0b3JQYWdlU2l6ZUNoYW5nZSA9IChwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcikgPT4gcGFnaW5hdG9yLnBhZ2UucGlwZShtYXAoIGUgPT4gZS5wYWdlU2l6ZSApLCBkaXN0aW5jdCgpKTtcclxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvZ2VuZXJpYy10YWJsZS9wYWdpbmF0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBYSxNQUFNLDZCQUE2QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLEdBQUcsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFtQnJELE1BQU0sT0FBTyxrQkFBa0I7SUFRN0IsWUFBb0IsS0FBa0I7UUFBbEIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQTBCdEMsaUJBQVksR0FBRyxLQUFLLENBQUM7SUExQm1CLENBQUM7SUFDekMsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FB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LElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFFL0ksTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQzVFLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFdEMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFNBQXVCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgVmlld0NoaWxkLFxyXG4gIElucHV0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkluaXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlLCBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIGRpc3RpbmN0LCBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0VGFibGVPYnNlcnZhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvTWF0VGFibGVPYnNlcnZhYmxlRGF0YVNvdXJjZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItcGFnaW5hdG9yJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtBc3luY1BpcGUsIE1hdFBhZ2luYXRvck1vZHVsZSwgTmdDbGFzc10sXHJcbiAgdGVtcGxhdGU6IGBcclxuICBAaWYoY3VycmVudFBhZ2VEYXRhJCB8IGFzeW5jOyBhcyBwYWdlRGF0YSl7XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGlkZScgOiAhKGNvbGxhcHNlRm9vdGVyJCB8IGFzeW5jKSwgJ3BhZ2UtYW1vdW50cyc6dHJ1ZX1cIj5cclxuICAgICAge3twYWdlRGF0YS5jdXJyZW50U3RhcnR9fSAtIHt7cGFnZURhdGEuY3VycmVudEVuZH19IG9mIHt7cGFnZURhdGEudG90YWx9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIDxtYXQtcGFnaW5hdG9yIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyMCwgNTAsIDEwMCwgNTAwXVwiIHNob3dGaXJzdExhc3RCdXR0b25zIChwYWdlKT1cInBhZ2luYXRvckNoYW5nZSgpXCJcclxuICAgIFtuZ0NsYXNzXT1cInsnaGlkZScgOiAoY29sbGFwc2VGb290ZXIkIHwgYXN5bmMpfVwiPlxyXG4gIDwvbWF0LXBhZ2luYXRvcj5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogWycuL2dlbmVyaWMtdGFibGUuY29tcG9uZW50LnNjc3MnLCcuLi8uLi9zdHlsZXMvY29sbGFwc2VyLnN0eWxlcy5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXR7XHJcbiAgQElucHV0KCkgZGF0YVNvdXJjZSEgOiBNYXRUYWJsZU9ic2VydmFibGVEYXRhU291cmNlPGFueT47XHJcbiAgQElucHV0KCkgdGFibGVFbFJlZiEgOiBFbGVtZW50UmVmXHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvciE6IE1hdFBhZ2luYXRvcjtcclxuICBjdXJyZW50UGFnZURhdGEkITogT2JzZXJ2YWJsZTxDdXJyZW50UGFnZURldGFpbHM+O1xyXG4gIGNvbGxhcHNlRm9vdGVyJCE6T2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICBASW5wdXQoKSBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0YXRlIDogVGFibGVTdG9yZSl7fVxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICB0aGlzLm91clBhZ2VFdmVudCA9IHRydWU7XHJcbiAgICB0aGlzLnN0YXRlLm9uKG1ldGFEYXRhUGFnZVNpemVDaGFuZ2UodGhpcy5zdGF0ZSksIHNldFBhZ2luYXRvclBhZ2VTaXplKHRoaXMucGFnaW5hdG9yKSk7XHJcbiAgICB0aGlzLnN0YXRlLnNldFBhZ2VTaXplKG9uUGFnaW5hdG9yUGFnZVNpemVDaGFuZ2UodGhpcy5wYWdpbmF0b3IpKTtcclxuICAgIHRoaXMuY29sbGFwc2VGb290ZXIkID0gdGhpcy5zdGF0ZS5zdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUucGVyc2lzdGVkVGFibGVTZXR0aW5ncy5jb2xsYXBzZUZvb3RlcikpO1xyXG5cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCl7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlRGF0YSQgPSBtZXJnZShcclxuICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZS5waXBlKG1hcChtYXBQYWdpbmF0aW9uRXZlbnRUb0N1cnJlbnRQYWdlRGV0YWlscykpLFxyXG4gICAgICB0aGlzLmRhdGEkLnBpcGUoXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbEtleUNoYW5nZWQoXCJsZW5ndGhcIiksXHJcbiAgICAgICAgZGVsYXlUb0FsbG93Rm9yUHJvcGVyVXBkYXRlLFxyXG4gICAgICAgIG1hcCh1cGRhdGVDdXJyZW50UGFnZURldGFpbHNPbkRhdGFMZW5ndGhDaGFuZ2UodGhpcy5wYWdpbmF0b3IpKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0b3JDaGFuZ2UoKSA6IHZvaWQge1xyXG4gICAgaWYoIXRoaXMub3VyUGFnZUV2ZW50KXtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRhYmxlRWxSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnNjcm9sbEludG9WaWV3KCksIDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vdXJQYWdlRXZlbnQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgb3VyUGFnZUV2ZW50ID0gZmFsc2U7XHJcbn1cclxuXHJcbmNvbnN0IG1hcFBhZ2luYXRpb25FdmVudFRvQ3VycmVudFBhZ2VEZXRhaWxzID0gKHBhZ2VEYXRhOiBQYWdlRXZlbnQpOkN1cnJlbnRQYWdlRGV0YWlscyA9PiAoe1xyXG4gIGN1cnJlbnRTdGFydCA6IChwYWdlRGF0YS5wYWdlSW5kZXggKiBwYWdlRGF0YS5wYWdlU2l6ZSkgKyAxLFxyXG4gIGN1cnJlbnRFbmQgOiBNYXRoLm1pbihwYWdlRGF0YS5sZW5ndGggLCAoKHBhZ2VEYXRhLnBhZ2VJbmRleCArIDEpICogcGFnZURhdGEucGFnZVNpemUpKSxcclxuICB0b3RhbCA6IHBhZ2VEYXRhLmxlbmd0aFxyXG59KTtcclxuXHJcbmNvbnN0IHVwZGF0ZUN1cnJlbnRQYWdlRGV0YWlsc09uRGF0YUxlbmd0aENoYW5nZSA9IChwYWdpbmF0b3I6TWF0UGFnaW5hdG9yKSA9PiAoKSA9PiAoe2N1cnJlbnRTdGFydDoocGFnaW5hdG9yLnBhZ2VJbmRleCAqIHBhZ2luYXRvci5wYWdlU2l6ZSkgKyAxLFxyXG4gIGN1cnJlbnRFbmQ6IE1hdGgubWluKHBhZ2luYXRvci5sZW5ndGggLCAoKHBhZ2luYXRvci5wYWdlSW5kZXggKyAxKSAqIHBhZ2luYXRvci5wYWdlU2l6ZSkpLFxyXG4gIHRvdGFsOnBhZ2luYXRvci5sZW5ndGh9KVxyXG5cclxuY29uc3QgZGVsYXlUb0FsbG93Rm9yUHJvcGVyVXBkYXRlID0gZGVsYXk8YW55W10+KDAsYXN5bmNTY2hlZHVsZXIpO1xyXG5cclxuaW50ZXJmYWNlIEN1cnJlbnRQYWdlRGV0YWlscyB7XHJcbiAgY3VycmVudFN0YXJ0Om51bWJlcixcclxuICBjdXJyZW50RW5kOm51bWJlcixcclxuICB0b3RhbDpudW1iZXJcclxufVxyXG5cclxuY29uc3QgbWV0YURhdGFQYWdlU2l6ZUNoYW5nZSA9IChzdGF0ZTpUYWJsZVN0b3JlKSA9PiBzdGF0ZS5zdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUudXNlckRlZmluZWQucGFnZVNpemUgfHwgc3RhdGUucGFnZVNpemUpLCBkaXN0aW5jdCgpKTtcclxuXHJcbmNvbnN0IHNldFBhZ2luYXRvclBhZ2VTaXplID0gKHBhZ2luYXRvcjpNYXRQYWdpbmF0b3IpID0+IChwYWdlU2l6ZTogbnVtYmVyKSA9PlxyXG4gIHBhZ2luYXRvci5fY2hhbmdlUGFnZVNpemUocGFnZVNpemUpO1xyXG5cclxuY29uc3Qgb25QYWdpbmF0b3JQYWdlU2l6ZUNoYW5nZSA9IChwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcikgPT4gcGFnaW5hdG9yLnBhZ2UucGlwZShtYXAoIGUgPT4gZS5wYWdlU2l6ZSApLCBkaXN0aW5jdCgpKTtcclxuIl19
@@ -7,7 +7,7 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/material/icon";
8
8
  export class InitializationComponent {
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: InitializationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: InitializationComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "linkTemplate", first: true, predicate: ["link"], descendants: true, static: true }, { propertyName: "imageUrlTemplate", first: true, predicate: ["imageUrl"], descendants: true, static: true }, { propertyName: "currencyTemplate", first: true, predicate: ["currency"], descendants: true, static: true }, { propertyName: "arrayTemplate", first: true, predicate: ["array"], descendants: true, static: true }, { propertyName: "defaultTemplate", first: true, predicate: ["default"], descendants: true, static: true }, { propertyName: "defaultWithIcon", first: true, predicate: ["defaultWithIcon"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #link let-element='element' let-metaData='metaData' let-transform='transform'>\r\n <tb-link-column [element]=\"element\" [metaData]=\"metaData\" [transform]=\"transform\"></tb-link-column>\r\n</ng-template>\r\n\r\n<ng-template #imageUrl let-element='element' let-metaData='metaData'>\r\n <span>\r\n <img src=\"{{element[metaData.key]}}\" height=\"75px\" width=\"75px\" />\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #array let-element='element' let-metaData='metaData'>\r\n <tb-array-column [array]='element[metaData.key]' [metaData]='metaData'></tb-array-column>\r\n</ng-template>\r\n\r\n<ng-template #default let-element='element' let-metaData='metaData' let-transform='transform' >\r\n <span>{{ transform | func : element }}</span>\r\n</ng-template>\r\n\r\n<ng-template #defaultWithIcon let-element='element' let-metaData='metaData' let-transform='transform' >\r\n <mat-icon>{{ transform | func : element }}</mat-icon>\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: LinkColumnComponent, selector: "tb-link-column", inputs: ["metaData", "element", "transform"] }, { kind: "component", type: ArrayColumnComponent, selector: "tb-array-column", inputs: ["array", "metaData"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: FunctionPipe, name: "func" }] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: InitializationComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "linkTemplate", first: true, predicate: ["link"], descendants: true, static: true }, { propertyName: "imageUrlTemplate", first: true, predicate: ["imageUrl"], descendants: true, static: true }, { propertyName: "currencyTemplate", first: true, predicate: ["currency"], descendants: true, static: true }, { propertyName: "arrayTemplate", first: true, predicate: ["array"], descendants: true, static: true }, { propertyName: "defaultTemplate", first: true, predicate: ["default"], descendants: true, static: true }, { propertyName: "defaultWithIcon", first: true, predicate: ["defaultWithIcon"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #link let-element='element' let-metaData='metaData' let-transform='transform'>\r\n <tb-link-column [element]=\"element\" [metaData]=\"metaData\" [transform]=\"transform\"></tb-link-column>\r\n</ng-template>\r\n\r\n<ng-template #imageUrl let-element='element' let-metaData='metaData'>\r\n <span>\r\n <img src=\"{{element[metaData.key]}}\" height=\"75px\" width=\"75px\" />\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #array let-element='element' let-metaData='metaData'>\r\n <tb-array-column [array]='element[metaData.key]' [metaData]='metaData'></tb-array-column>\r\n</ng-template>\r\n\r\n<ng-template #default let-element='element' let-metaData='metaData' let-transform='transform' >\r\n <span>{{ transform | func : element }}</span>\r\n</ng-template>\r\n\r\n<ng-template #defaultWithIcon let-element='element' let-metaData='metaData' let-transform='transform' >\r\n <mat-icon>{{ transform | func : element }}</mat-icon>\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: LinkColumnComponent, selector: "tb-link-column", inputs: ["metaData", "element", "transform"] }, { kind: "component", type: ArrayColumnComponent, selector: "tb-array-column", inputs: ["metaData", "array"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: FunctionPipe, name: "func" }] }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: InitializationComponent, decorators: [{
13
13
  type: Component,
@@ -21,10 +21,10 @@ export class SortMenuComponentStore extends ComponentStore {
21
21
  return ({ ...state, sorted });
22
22
  });
23
23
  this.reset = () => {
24
- const sorted = this.tableState.sorted$.pipe(mergeMap(sort => this.tableState.metaData$.pipe(notNull(), map(meta => sort.map(s => {
24
+ const sorted = this.tableState.sort$.pipe(mergeMap(sort => this.tableState.metaData$.pipe(notNull(), map(meta => sort.map(s => {
25
25
  return { ...s, displayName: meta[s.active]?.displayName };
26
26
  })))));
27
- const notSorted = this.tableState.metaDataArray$.pipe(mergeMap(metas => this.tableState.sorted$.pipe(map(s => metas
27
+ const notSorted = this.tableState.metaDataArray$.pipe(mergeMap(metas => this.tableState.sort$.pipe(map(s => metas
28
28
  .filter(meta => !s.some(s => s.active === meta.key) && !meta.noSort)
29
29
  .map(meta => ({ active: meta.key, displayName: meta.displayName }))))));
30
30
  this.set(combineLatest([
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
40
40
  }], ctorParameters: () => [{ type: i1.TableStore }] });
41
41
  const equalSortArray = (arr1, arr2) => arr1.length === arr2.length && arr2.every(s1 => arr1.some(s2 => s1.active === s2.active));
42
42
  const distinctSortArray = distinctUntilChanged(equalSortArray);
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1tZW51LmNvbXBvbmVudC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvc29ydC1tZW51L3NvcnQtbWVudS5jb21wb25lbnQtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBR3ZELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxjQUFtQztJQUM3RSxZQUFvQixVQUFzQjtRQUN4QyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBRGhCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFHbEMsUUFBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBeUIsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdFLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQXNCLEVBQUMsRUFBRSxDQUFBLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEYsaUJBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQXlCLEVBQUMsRUFB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QixFQUFFLEVBQUUsQ0FDakUsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUM1RixNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFpQixjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgbm90TnVsbCB9IGZyb20gJy4uLy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU29ydE1lbnVDb21wb25lbnRTdG9yZSBleHRlbmRzIENvbXBvbmVudFN0b3JlPENvbXBvbmVudFN0b3JlU3RhdGU+IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhYmxlU3RhdGU6IFRhYmxlU3RvcmUpe1xyXG4gICAgc3VwZXIoeyBub3RTb3J0ZWQ6W10sIHNvcnRlZDogW119KVxyXG4gIH1cclxuICBwcml2YXRlIHNldCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGRhdGE6IENvbXBvbmVudFN0b3JlU3RhdGUpPT4gKHsuLi5kYXRhfSkpO1xyXG5cclxuICBzZXRTb3J0ZWQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBzb3J0ZWQ6IFNvcnRXaXRoTmFtZVtdKT0+KHsuLi5zdGF0ZSwgc29ydGVkfSkpO1xyXG5cclxuICBzZXROb3RTb3J0ZWQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBub3RTb3J0ZWQ6IFNvcnRXaXRoTmFtZVtdKT0+KHsuLi5zdGF0ZSwgbm90U29ydGVkfSkpO1xyXG4gIHNvcnRlZCQgPSB0aGlzLnNlbGVjdChzdGF0ZT0+c3RhdGUuc29ydGVkKTtcclxuICBub3RTb3J0ZWQkID0gdGhpcy5zZWxlY3Qoc3RhdGU9PnN0YXRlLm5vdFNvcnRlZCk7XHJcblxyXG4gIHNldERpcmVjdGlvbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsc29ydDpTb3J0V2l0aE5hbWUpPT57XHJcbiAgICBjb25zdCBpbmRleCA9IHN0YXRlLnNvcnRlZC5maW5kSW5kZXgocyA9PiBzLmFjdGl2ZSA9PT0gc29ydC5hY3RpdmUpO1xyXG4gICAgY29uc3Qgc29ydGVkID0gWy4uLnN0YXRlLnNvcnRlZF07XHJcbiAgICBzb3J0ZWQuc3BsaWNlKGluZGV4LDEsc29ydCk7XHJcbiAgICByZXR1cm4gKHsuLi5zdGF0ZSxzb3J0ZWR9KTtcclxuICB9KVxyXG5cclxuICByZXNldCA9ICgpID0+IHtcclxuICAgIGNvbnN0IHNvcnRlZCA9IHRoaXMudGFibGVTdGF0ZS5zb3J0ZWQkLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKHNvcnQgPT4gdGhpcy50YWJsZVN0YXRlLm1ldGFEYXRhJC5waXBlKFxyXG4gICAgICAgIG5vdE51bGwoKSxcclxuICAgICAgICBtYXAoXHJcbiAgICAgICAgbWV0YSA9PiBzb3J0Lm1hcChzID0+IHtcclxuICAgICAgICAgIHJldHVybiAoey4uLnMsIGRpc3BsYXlOYW1lOiBtZXRhW3MuYWN0aXZlXT8uZGlzcGxheU5hbWV9IGFzIFNvcnRXaXRoTmFtZSl9KVxyXG4gICAgICApKSlcclxuICAgICk7XHJcbiAgICBjb25zdCBub3RTb3J0ZWQgPSB0aGlzLnRhYmxlU3RhdGUubWV0YURhdGFBcnJheSQucGlwZShtZXJnZU1hcChcclxuICAgICAgbWV0YXMgPT4gdGhpcy50YWJsZVN0YXRlLnNvcnRlZCQucGlwZShcclxuICAgICAgICBtYXAocyA9PiBtZXRhc1xyXG4gICAgICAgICAgLmZpbHRlcihtZXRhID0+ICFzLnNvbWUocz0+cy5hY3RpdmU9PT0gbWV0YS5rZXkpICYmICFtZXRhLm5vU29ydClcclxuICAgICAgICAgIC5tYXAobWV0YT0+KHthY3RpdmU6bWV0YS5rZXksZGlzcGxheU5hbWUgOiBtZXRhLmRpc3BsYXlOYW1lfSBhcyBTb3J0V2l0aE5hbWUpKSlcclxuICAgICAgKVxyXG4gICAgKSk7XHJcbiAgICB0aGlzLnNldChjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgc29ydGVkLnBpcGUoZGlzdGluY3RTb3J0QXJyYXkpLG5vdFNvcnRlZC5waXBlKGRpc3RpbmN0U29ydEFycmF5KVxyXG4gICAgXSkucGlwZShtYXAoKFtzb3J0ZWQsbm90U29ydGVkXSk9Pih7c29ydGVkLG5vdFNvcnRlZH0pKSkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRTdG9yZVN0YXRlIHtcclxuICBzb3J0ZWQgOiBTb3J0V2l0aE5hbWVbXTtcclxuICBub3RTb3J0ZWQ6IFNvcnRXaXRoTmFtZVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRXaXRoTmFtZSBleHRlbmRzIFNvcnR7XHJcbiAgZGlzcGxheU5hbWUgOiBzdHJpbmc7XHJcbn1cclxuXHJcbmNvbnN0IGVxdWFsU29ydEFycmF5ID0gKGFycjE6U29ydFdpdGhOYW1lW10sYXJyMjpTb3J0V2l0aE5hbWVbXSkgPT5cclxuICBhcnIxLmxlbmd0aCA9PT0gYXJyMi5sZW5ndGggJiYgYXJyMi5ldmVyeShzMSA9PiBhcnIxLnNvbWUoczIgPT4gczEuYWN0aXZlID09PSBzMi5hY3RpdmUpKTtcclxuY29uc3QgZGlzdGluY3RTb3J0QXJyYXkgPSBkaXN0aW5jdFVudGlsQ2hhbmdlZDxTb3J0V2l0aE5hbWVbXT4oZXF1YWxTb3J0QXJyYXkpO1xyXG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1tZW51LmNvbXBvbmVudC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvc29ydC1tZW51L3NvcnQtbWVudS5jb21wb25lbnQtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBR3ZELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxjQUFtQztJQUM3RSxZQUFvQixVQUFzQjtRQUN4QyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBRGhCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFHbEMsUUFBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBeUIsRUFBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdFLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQXNCLEVBQUMsRUFBRSxDQUFBLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEYsaUJBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQXlCLEVBQUMsRUFB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QixFQUFFLEVBQUUsQ0FDakUsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUM1RixNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFpQixjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgbm90TnVsbCB9IGZyb20gJy4uLy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU29ydE1lbnVDb21wb25lbnRTdG9yZSBleHRlbmRzIENvbXBvbmVudFN0b3JlPENvbXBvbmVudFN0b3JlU3RhdGU+IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRhYmxlU3RhdGU6IFRhYmxlU3RvcmUpe1xyXG4gICAgc3VwZXIoeyBub3RTb3J0ZWQ6W10sIHNvcnRlZDogW119KVxyXG4gIH1cclxuICBwcml2YXRlIHNldCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGRhdGE6IENvbXBvbmVudFN0b3JlU3RhdGUpPT4gKHsuLi5kYXRhfSkpO1xyXG5cclxuICBzZXRTb3J0ZWQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBzb3J0ZWQ6IFNvcnRXaXRoTmFtZVtdKT0+KHsuLi5zdGF0ZSwgc29ydGVkfSkpO1xyXG5cclxuICBzZXROb3RTb3J0ZWQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBub3RTb3J0ZWQ6IFNvcnRXaXRoTmFtZVtdKT0+KHsuLi5zdGF0ZSwgbm90U29ydGVkfSkpO1xyXG4gIHNvcnRlZCQgPSB0aGlzLnNlbGVjdChzdGF0ZT0+c3RhdGUuc29ydGVkKTtcclxuICBub3RTb3J0ZWQkID0gdGhpcy5zZWxlY3Qoc3RhdGU9PnN0YXRlLm5vdFNvcnRlZCk7XHJcblxyXG4gIHNldERpcmVjdGlvbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsc29ydDpTb3J0V2l0aE5hbWUpPT57XHJcbiAgICBjb25zdCBpbmRleCA9IHN0YXRlLnNvcnRlZC5maW5kSW5kZXgocyA9PiBzLmFjdGl2ZSA9PT0gc29ydC5hY3RpdmUpO1xyXG4gICAgY29uc3Qgc29ydGVkID0gWy4uLnN0YXRlLnNvcnRlZF07XHJcbiAgICBzb3J0ZWQuc3BsaWNlKGluZGV4LDEsc29ydCk7XHJcbiAgICByZXR1cm4gKHsuLi5zdGF0ZSxzb3J0ZWR9KTtcclxuICB9KVxyXG5cclxuICByZXNldCA9ICgpID0+IHtcclxuICAgIGNvbnN0IHNvcnRlZCA9IHRoaXMudGFibGVTdGF0ZS5zb3J0JC5waXBlKFxyXG4gICAgICBtZXJnZU1hcChzb3J0ID0+IHRoaXMudGFibGVTdGF0ZS5tZXRhRGF0YSQucGlwZShcclxuICAgICAgICBub3ROdWxsKCksXHJcbiAgICAgICAgbWFwKFxyXG4gICAgICAgIG1ldGEgPT4gc29ydC5tYXAocyA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKHsuLi5zLCBkaXNwbGF5TmFtZTogbWV0YVtzLmFjdGl2ZV0/LmRpc3BsYXlOYW1lfSBhcyBTb3J0V2l0aE5hbWUpfSlcclxuICAgICAgKSkpXHJcbiAgICApO1xyXG4gICAgY29uc3Qgbm90U29ydGVkID0gdGhpcy50YWJsZVN0YXRlLm1ldGFEYXRhQXJyYXkkLnBpcGUobWVyZ2VNYXAoXHJcbiAgICAgIG1ldGFzID0+IHRoaXMudGFibGVTdGF0ZS5zb3J0JC5waXBlKFxyXG4gICAgICAgIG1hcChzID0+IG1ldGFzXHJcbiAgICAgICAgICAuZmlsdGVyKG1ldGEgPT4gIXMuc29tZShzPT5zLmFjdGl2ZT09PSBtZXRhLmtleSkgJiYgIW1ldGEubm9Tb3J0KVxyXG4gICAgICAgICAgLm1hcChtZXRhPT4oe2FjdGl2ZTptZXRhLmtleSxkaXNwbGF5TmFtZSA6IG1ldGEuZGlzcGxheU5hbWV9IGFzIFNvcnRXaXRoTmFtZSkpKVxyXG4gICAgICApXHJcbiAgICApKTtcclxuICAgIHRoaXMuc2V0KGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICBzb3J0ZWQucGlwZShkaXN0aW5jdFNvcnRBcnJheSksbm90U29ydGVkLnBpcGUoZGlzdGluY3RTb3J0QXJyYXkpXHJcbiAgICBdKS5waXBlKG1hcCgoW3NvcnRlZCxub3RTb3J0ZWRdKT0+KHtzb3J0ZWQsbm90U29ydGVkfSkpKSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFN0b3JlU3RhdGUge1xyXG4gIHNvcnRlZCA6IFNvcnRXaXRoTmFtZVtdO1xyXG4gIG5vdFNvcnRlZDogU29ydFdpdGhOYW1lW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU29ydFdpdGhOYW1lIGV4dGVuZHMgU29ydHtcclxuICBkaXNwbGF5TmFtZSA6IHN0cmluZztcclxufVxyXG5cclxuY29uc3QgZXF1YWxTb3J0QXJyYXkgPSAoYXJyMTpTb3J0V2l0aE5hbWVbXSxhcnIyOlNvcnRXaXRoTmFtZVtdKSA9PlxyXG4gIGFycjEubGVuZ3RoID09PSBhcnIyLmxlbmd0aCAmJiBhcnIyLmV2ZXJ5KHMxID0+IGFycjEuc29tZShzMiA9PiBzMS5hY3RpdmUgPT09IHMyLmFjdGl2ZSkpO1xyXG5jb25zdCBkaXN0aW5jdFNvcnRBcnJheSA9IGRpc3RpbmN0VW50aWxDaGFuZ2VkPFNvcnRXaXRoTmFtZVtdPihlcXVhbFNvcnRBcnJheSk7XHJcbiJdfQ==
@@ -13,11 +13,11 @@ import { GenColDisplayerComponent } from "../gen-col-displayer/gen-col-displayer
13
13
  import { SortMenuComponent } from "../sort-menu/sort-menu.component";
14
14
  import { MatInputModule } from "@angular/material/input";
15
15
  import { ClickEmitterDirective, DialogDirective, StopPropagationDirective } from "../../../utilities";
16
- export const i = [
16
+ export const containerImports = [
17
17
  AsyncPipe, NgTemplateOutlet,
18
18
  LetDirective,
19
19
  MultiSortDirective, GroupByListComponent, FilterChipsComponent, GenFilterDisplayerComponent, GenColDisplayerComponent,
20
20
  SortMenuComponent, GenericTableComponent, StopPropagationDirective, ClickEmitterDirective, DialogDirective,
21
21
  MatButtonModule, MatMenuModule, MatIconModule, MatTooltipModule, MatInputModule
22
22
  ];
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udGFpbmVyLWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL3RhYmxlLWNvbnRhaW5lci90YWJsZS1jb250YWluZXItaW1wb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUM1SCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRztJQUNmLFNBQVMsRUFBRSxnQkFBZ0I7SUFFM0IsWUFBWTtJQUVaLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLDJCQUEyQixFQUFFLHdCQUF3QjtJQUNySCxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxlQUFlO0lBRTFHLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGNBQWM7Q0FFaEYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBMZXREaXJlY3RpdmUgfSBmcm9tIFwiQG5ncngvY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE11bHRpU29ydERpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzXCI7XHJcbmltcG9ydCB7IEdyb3VwQnlMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2dyb3VwLWJ5LWxpc3QvZ3JvdXAtYnktbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRmlsdGVyQ2hpcHNDb21wb25lbnQgfSBmcm9tIFwiLi4vdGFibGUtY29udGFpbmVyLWZpbHRlci9maWx0ZXItbGlzdC9maWx0ZXItbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5pbXBvcnQgeyBHZW5lcmljVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vZ2VuZXJpYy10YWJsZS9nZW5lcmljLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHZW5GaWx0ZXJEaXNwbGF5ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vdGFibGUtY29udGFpbmVyLWZpbHRlci9nZW4tZmlsdGVyLWRpc3BsYXllci9nZW4tZmlsdGVyLWRpc3BsYXllci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR2VuQ29sRGlzcGxheWVyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2dlbi1jb2wtZGlzcGxheWVyL2dlbi1jb2wtZGlzcGxheWVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTb3J0TWVudUNvbXBvbmVudCB9IGZyb20gXCIuLi9zb3J0LW1lbnUvc29ydC1tZW51LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQgeyBDbGlja0VtaXR0ZXJEaXJlY3RpdmUsIERpYWxvZ0RpcmVjdGl2ZSwgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxpdGllc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGkgPSBbXHJcbiAgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0LFxyXG5cclxuICBMZXREaXJlY3RpdmUsXHJcbiAgXHJcbiAgTXVsdGlTb3J0RGlyZWN0aXZlLCBHcm91cEJ5TGlzdENvbXBvbmVudCwgRmlsdGVyQ2hpcHNDb21wb25lbnQsIEdlbkZpbHRlckRpc3BsYXllckNvbXBvbmVudCwgR2VuQ29sRGlzcGxheWVyQ29tcG9uZW50LFxyXG4gIFNvcnRNZW51Q29tcG9uZW50LCBHZW5lcmljVGFibGVDb21wb25lbnQsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgQ2xpY2tFbWl0dGVyRGlyZWN0aXZlLCBEaWFsb2dEaXJlY3RpdmUsXHJcblxyXG4gIE1hdEJ1dHRvbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0SW5wdXRNb2R1bGVcclxuXHJcbl0iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udGFpbmVyLWltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL3RhYmxlLWNvbnRhaW5lci90YWJsZS1jb250YWluZXItaW1wb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBQzVILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEcsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsU0FBUyxFQUFFLGdCQUFnQjtJQUUzQixZQUFZO0lBRVosa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCO0lBQ3JILGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLHFCQUFxQixFQUFFLGVBQWU7SUFFMUcsZUFBZSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYztDQUVoRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBMZXREaXJlY3RpdmUgfSBmcm9tIFwiQG5ncngvY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE11bHRpU29ydERpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzXCI7XHJcbmltcG9ydCB7IEdyb3VwQnlMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2dyb3VwLWJ5LWxpc3QvZ3JvdXAtYnktbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRmlsdGVyQ2hpcHNDb21wb25lbnQgfSBmcm9tIFwiLi4vdGFibGUtY29udGFpbmVyLWZpbHRlci9maWx0ZXItbGlzdC9maWx0ZXItbGlzdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5pbXBvcnQgeyBHZW5lcmljVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi4vZ2VuZXJpYy10YWJsZS9nZW5lcmljLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHZW5GaWx0ZXJEaXNwbGF5ZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vdGFibGUtY29udGFpbmVyLWZpbHRlci9nZW4tZmlsdGVyLWRpc3BsYXllci9nZW4tZmlsdGVyLWRpc3BsYXllci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR2VuQ29sRGlzcGxheWVyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2dlbi1jb2wtZGlzcGxheWVyL2dlbi1jb2wtZGlzcGxheWVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTb3J0TWVudUNvbXBvbmVudCB9IGZyb20gXCIuLi9zb3J0LW1lbnUvc29ydC1tZW51LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQgeyBDbGlja0VtaXR0ZXJEaXJlY3RpdmUsIERpYWxvZ0RpcmVjdGl2ZSwgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxpdGllc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnRhaW5lckltcG9ydHMgPSBbXHJcbiAgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0LFxyXG5cclxuICBMZXREaXJlY3RpdmUsXHJcbiAgXHJcbiAgTXVsdGlTb3J0RGlyZWN0aXZlLCBHcm91cEJ5TGlzdENvbXBvbmVudCwgRmlsdGVyQ2hpcHNDb21wb25lbnQsIEdlbkZpbHRlckRpc3BsYXllckNvbXBvbmVudCwgR2VuQ29sRGlzcGxheWVyQ29tcG9uZW50LFxyXG4gIFNvcnRNZW51Q29tcG9uZW50LCBHZW5lcmljVGFibGVDb21wb25lbnQsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgQ2xpY2tFbWl0dGVyRGlyZWN0aXZlLCBEaWFsb2dEaXJlY3RpdmUsXHJcblxyXG4gIE1hdEJ1dHRvbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0SW5wdXRNb2R1bGVcclxuXHJcbl0iXX0=
@@ -0,0 +1,2 @@
1
+ export const initialDataState = { mappedData: [] };
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdGF0ZS5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy90YWJsZS1jb250YWluZXIvdGFibGUtY29udGFpbmVyLmhlbHBlcnMvZGF0YS1zdGF0ZS5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFjLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIERhdGFTdGF0ZXsgbWFwcGVkRGF0YTogYW55W10gfVxyXG5leHBvcnQgY29uc3QgaW5pdGlhbERhdGFTdGF0ZTogRGF0YVN0YXRlID0geyBtYXBwZWREYXRhOiBbXSB9Il19