@one-paragon/angular-utilities 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +7 -7
- package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +5 -5
- package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +6 -6
- package/esm2022/action-state/ngrx.mjs +6 -1
- package/esm2022/http-request-state/HttpRequestStateFactory.mjs +6 -7
- package/esm2022/http-request-state/HttpRequestStateStore.mjs +41 -37
- package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +17 -21
- package/esm2022/http-request-state/directives/http-error-state-directive.mjs +12 -18
- package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +12 -18
- package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +12 -18
- package/esm2022/http-request-state/directives/http-success-state-directive.mjs +13 -18
- package/esm2022/http-request-state/directives/request-state-directive.mjs +20 -19
- package/esm2022/http-request-state/http-state-module.mjs +6 -6
- package/esm2022/ngrx/actionable-selector.mjs +12 -14
- package/esm2022/rxjs/subjectifier.mjs +6 -6
- package/esm2022/rxjs/subscriber.directive.mjs +11 -13
- package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +3 -1
- package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +10 -8
- package/esm2022/table-builder/classes/TableState.mjs +13 -15
- package/esm2022/table-builder/classes/table-builder-general-settings.mjs +46 -54
- package/esm2022/table-builder/classes/table-builder.mjs +4 -1
- package/esm2022/table-builder/classes/table-store.mjs +280 -282
- package/esm2022/table-builder/components/array-column.component.mjs +15 -19
- package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +44 -35
- package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +7 -7
- package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +7 -7
- package/esm2022/table-builder/components/filter/filter.component.mjs +24 -24
- package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +19 -18
- package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +15 -15
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +100 -86
- package/esm2022/table-builder/components/generic-table/paginator.component.mjs +20 -18
- package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +5 -7
- package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +24 -21
- package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +14 -13
- package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +11 -4
- package/esm2022/table-builder/components/link-column.component.mjs +19 -23
- package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +8 -8
- package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +26 -28
- package/esm2022/table-builder/components/scroll-strategy.mjs +11 -7
- package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +31 -31
- package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +23 -22
- package/esm2022/table-builder/components/table-container/table-container.mjs +90 -80
- package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +49 -51
- package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +8 -10
- package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +17 -15
- package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +14 -14
- package/esm2022/table-builder/directives/custom-cell-directive.mjs +24 -20
- package/esm2022/table-builder/directives/multi-sort.directive.mjs +10 -10
- package/esm2022/table-builder/directives/resize-column.directive.mjs +13 -14
- package/esm2022/table-builder/directives/table-wrapper.directive.mjs +5 -7
- package/esm2022/table-builder/directives/tb-filter.directive.mjs +105 -110
- package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +124 -124
- package/esm2022/table-builder/pipes/column-total.pipe.mjs +4 -4
- package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +4 -4
- package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +10 -12
- package/esm2022/table-builder/pipes/key-display.mjs +8 -10
- package/esm2022/table-builder/services/export-to-csv.service.mjs +57 -63
- package/esm2022/table-builder/services/table-template-service.mjs +11 -8
- package/esm2022/table-builder/services/transform-creator.mjs +35 -40
- package/esm2022/table-builder/table-builder.module.mjs +7 -7
- package/esm2022/utilities/directives/auto-focus.directive.mjs +8 -10
- package/esm2022/utilities/directives/clickEmitterDirective.mjs +4 -4
- package/esm2022/utilities/directives/clickSubject.mjs +5 -4
- package/esm2022/utilities/directives/conditional-classes.directive.mjs +11 -11
- package/esm2022/utilities/directives/dialog-service.mjs +5 -7
- package/esm2022/utilities/directives/dialog.mjs +38 -39
- package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +7 -8
- package/esm2022/utilities/directives/prevent-enter.directive.mjs +4 -4
- package/esm2022/utilities/directives/stop-propagation.directive.mjs +4 -4
- package/esm2022/utilities/directives/styler.mjs +10 -11
- package/esm2022/utilities/directives/trim-whitespace.directive.mjs +7 -9
- package/esm2022/utilities/module.mjs +7 -7
- package/esm2022/utilities/pipes/function.pipe.mjs +4 -4
- package/esm2022/utilities/pipes/phone.pipe.mjs +4 -4
- package/esm2022/utilities/pipes/space-case.pipes.mjs +4 -4
- package/fesm2022/one-paragon-angular-utilities.mjs +1666 -1678
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
- package/http-request-state/HttpRequestStateStore.d.ts +2 -2
- package/http-request-state/directives/HttpStateDirectiveBase.d.ts +5 -7
- package/http-request-state/directives/http-error-state-directive.d.ts +1 -4
- package/http-request-state/directives/http-inProgress-state-directive.d.ts +3 -6
- package/http-request-state/directives/http-notStarted-state-directive.d.ts +1 -4
- package/http-request-state/directives/http-success-state-directive.d.ts +1 -6
- package/http-request-state/directives/request-state-directive.d.ts +0 -1
- package/package.json +8 -8
- package/rxjs/subjectifier.d.ts +0 -1
- package/table-builder/classes/TableBuilderDataSource.d.ts +0 -1
- package/table-builder/classes/table-store.d.ts +1 -2
- package/table-builder/components/column-builder/column-builder.component.d.ts +2 -6
- package/table-builder/components/filter/filter.component.d.ts +1 -2
- package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +0 -3
- package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +1 -2
- package/table-builder/components/generic-table/generic-table.component.d.ts +4 -4
- package/table-builder/components/generic-table/paginator.component.d.ts +0 -2
- package/table-builder/components/header-menu/header-menu.component.d.ts +1 -2
- package/table-builder/components/in-filter/in-filter.component.d.ts +1 -2
- package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +1 -2
- package/table-builder/components/sort-menu/sort-menu.component.d.ts +2 -3
- package/table-builder/components/table-container/table-container-imports.d.ts +1 -1
- package/table-builder/components/table-container/virtual-scroll-container.d.ts +0 -2
- package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +3 -3
- package/table-builder/directives/custom-cell-directive.d.ts +3 -3
- package/table-builder/directives/multi-sort.directive.d.ts +1 -2
- package/table-builder/directives/resize-column.directive.d.ts +1 -2
- package/table-builder/directives/tb-filter.directive.d.ts +19 -23
- package/table-builder/pipes/format-filter-value.pipe.d.ts +0 -2
- package/table-builder/pipes/key-display.d.ts +0 -1
- package/table-builder/services/export-to-csv.service.d.ts +0 -3
- package/table-builder/services/table-template-service.d.ts +1 -2
- package/table-builder/services/transform-creator.d.ts +0 -5
- package/utilities/directives/auto-focus.directive.d.ts +1 -2
- package/utilities/directives/conditional-classes.directive.d.ts +1 -2
- package/utilities/directives/dialog.d.ts +2 -5
- package/utilities/directives/styler.d.ts +0 -2
- package/utilities/directives/trim-whitespace.directive.d.ts +0 -2
|
@@ -8,16 +8,14 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
import * as i1 from "@angular/material/chips";
|
|
9
9
|
import * as i2 from "@angular/material/icon";
|
|
10
10
|
export class GroupByListComponent {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GroupByListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: GroupByListComponent, isStandalone: true, selector: "group-by-list", ngImport: i0, template: "<mat-chip-set *ngrxLet=\"tableStore.groupByKeys$ as groupByKeys\">\r\n <span class=\"tb-group-label\">Group By:</span>\r\n @for (groupByKey of groupByKeys; track groupByKey) {\r\n @if($index > 0){\r\n <mat-icon class=\"nested-arrow\">arrow_right</mat-icon>\r\n }\r\n <mat-chip (removed)=\"tableStore.removeGroupByKey(groupByKey)\">\r\n {{groupByKey | spaceCase}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n</mat-chip-set>\r\n", styles: [".tb-group-label{padding-right:5px}.nested-arrow{margin-right:-8px;margin-left:-8px}\n"], dependencies: [{ kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i1.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i1.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11
|
+
tableStore = inject(TableStore);
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: GroupByListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: GroupByListComponent, isStandalone: true, selector: "group-by-list", ngImport: i0, template: "<mat-chip-set *ngrxLet=\"tableStore.groupByKeys$ as groupByKeys\">\r\n <span class=\"tb-group-label\">Group By:</span>\r\n @for (groupByKey of groupByKeys; track groupByKey) {\r\n @if($index > 0){\r\n <mat-icon class=\"nested-arrow\">arrow_right</mat-icon>\r\n }\r\n <mat-chip (removed)=\"tableStore.removeGroupByKey(groupByKey)\">\r\n {{groupByKey | spaceCase}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n</mat-chip-set>\r\n", styles: [".tb-group-label{padding-right:5px}.nested-arrow{margin-right:-8px;margin-left:-8px}\n"], dependencies: [{ kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i1.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i1.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
16
14
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: GroupByListComponent, decorators: [{
|
|
18
16
|
type: Component,
|
|
19
17
|
args: [{ selector: 'group-by-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
20
18
|
MatChipsModule, LetDirective, MatIconModule, SpaceCasePipe
|
|
21
19
|
], template: "<mat-chip-set *ngrxLet=\"tableStore.groupByKeys$ as groupByKeys\">\r\n <span class=\"tb-group-label\">Group By:</span>\r\n @for (groupByKey of groupByKeys; track groupByKey) {\r\n @if($index > 0){\r\n <mat-icon class=\"nested-arrow\">arrow_right</mat-icon>\r\n }\r\n <mat-chip (removed)=\"tableStore.removeGroupByKey(groupByKey)\">\r\n {{groupByKey | spaceCase}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n</mat-chip-set>\r\n", styles: [".tb-group-label{padding-right:5px}.nested-arrow{margin-right:-8px;margin-left:-8px}\n"] }]
|
|
22
20
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dyb3VwLWJ5LWxpc3QvZ3JvdXAtYnktbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dyb3VwLWJ5LWxpc3QvZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBWW5ELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzt1R0FGckIsb0JBQW9COzJGQUFwQixvQkFBb0IseUVDakJqQyxxZUFZQSw4SURFSSxjQUFjLHVnQkFBRSxZQUFZLGdHQUFFLGFBQWEsK0tBQUUsYUFBYTs7MkZBR2pELG9CQUFvQjtrQkFWaEMsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGNBQWMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWE7cUJBQzNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcbmltcG9ydCB7IExldERpcmVjdGl2ZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgU3BhY2VDYXNlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dyb3VwLWJ5LWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncm91cC1ieS1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ncm91cC1ieS1saXN0LmNvbXBvbmVudC5jc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdENoaXBzTW9kdWxlLCBMZXREaXJlY3RpdmUsIE1hdEljb25Nb2R1bGUsIFNwYWNlQ2FzZVBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcm91cEJ5TGlzdENvbXBvbmVudCB7XHJcbiAgXHJcbiAgdGFibGVTdG9yZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxufVxyXG4iLCI8bWF0LWNoaXAtc2V0ICpuZ3J4TGV0PVwidGFibGVTdG9yZS5ncm91cEJ5S2V5cyQgYXMgZ3JvdXBCeUtleXNcIj5cclxuICA8c3BhbiBjbGFzcz1cInRiLWdyb3VwLWxhYmVsXCI+R3JvdXAgQnk6PC9zcGFuPlxyXG4gIEBmb3IgKGdyb3VwQnlLZXkgb2YgZ3JvdXBCeUtleXM7IHRyYWNrIGdyb3VwQnlLZXkpIHtcclxuICAgIEBpZigkaW5kZXggPiAwKXtcclxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwibmVzdGVkLWFycm93XCI+YXJyb3dfcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgfVxyXG4gICAgPG1hdC1jaGlwIChyZW1vdmVkKT1cInRhYmxlU3RvcmUucmVtb3ZlR3JvdXBCeUtleShncm91cEJ5S2V5KVwiPlxyXG4gICAgICB7e2dyb3VwQnlLZXkgfCBzcGFjZUNhc2V9fVxyXG4gICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgPC9tYXQtY2hpcD5cclxuICB9XHJcbjwvbWF0LWNoaXAtc2V0PlxyXG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ViewChild, inject } from '@angular/core';
|
|
2
2
|
import { FieldType } from '../../interfaces/report-def';
|
|
3
3
|
import { FilterType } from '../../enums/filterTypes';
|
|
4
|
+
import { TableStore } from '../../classes/table-store';
|
|
4
5
|
import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
|
|
5
6
|
import { MatIconModule } from '@angular/material/icon';
|
|
6
7
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -13,22 +14,24 @@ import { StopPropagationDirective } from '../../../utilities';
|
|
|
13
14
|
import { MatRadioModule } from '@angular/material/radio';
|
|
14
15
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "
|
|
17
|
-
import * as i2 from "@angular/material/
|
|
18
|
-
import * as i3 from "@angular/material/
|
|
19
|
-
import * as i4 from "@angular/
|
|
20
|
-
import * as i5 from "@angular/
|
|
21
|
-
import * as i6 from "@angular/material/
|
|
22
|
-
import * as i7 from "@angular/material/
|
|
23
|
-
import * as i8 from "@angular/material/
|
|
24
|
-
import * as i9 from "@angular/material/
|
|
25
|
-
import * as i10 from "@angular/material/datepicker";
|
|
17
|
+
import * as i1 from "@angular/material/menu";
|
|
18
|
+
import * as i2 from "@angular/material/icon";
|
|
19
|
+
import * as i3 from "@angular/material/button";
|
|
20
|
+
import * as i4 from "@angular/forms";
|
|
21
|
+
import * as i5 from "@angular/material/input";
|
|
22
|
+
import * as i6 from "@angular/material/form-field";
|
|
23
|
+
import * as i7 from "@angular/material/tooltip";
|
|
24
|
+
import * as i8 from "@angular/material/radio";
|
|
25
|
+
import * as i9 from "@angular/material/datepicker";
|
|
26
26
|
export class HeaderMenuComponent {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
tableState = inject(TableStore);
|
|
28
|
+
FieldType = FieldType;
|
|
29
|
+
FilterType = FilterType;
|
|
30
|
+
myFilterType;
|
|
31
|
+
myFilterValue;
|
|
32
|
+
filter;
|
|
33
|
+
metaData;
|
|
34
|
+
trigger;
|
|
32
35
|
hideField(key) {
|
|
33
36
|
this.tableState.hideColumn(key);
|
|
34
37
|
}
|
|
@@ -82,19 +85,19 @@ export class HeaderMenuComponent {
|
|
|
82
85
|
this.trigger.closeMenu();
|
|
83
86
|
}
|
|
84
87
|
}
|
|
85
|
-
static
|
|
86
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: HeaderMenuComponent, isStandalone: true, selector: "tb-header-menu", inputs: { metaData: "metaData" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<button mat-icon-button class=\"open-menu-icon-button\" disableRipple [matMenuTriggerFor]=\"menu\" [matMenuTriggerRestoreFocus]=\"false\">\r\n <mat-icon class=\"menu-icon\">more_vert</mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" >\r\n @if (!(metaData.fieldType === FieldType.NotMapped))\r\n {\r\n <button mat-menu-item (click)=\"tableState.addGroupByKey(metaData.key)\">\r\n <mat-icon color=\"primary\">group</mat-icon>\r\n <span>Group By</span>\r\n </button>\r\n }\r\n <button mat-menu-item (click)=hideField(metaData.key)>\r\n <mat-icon color=\"primary\">visibility_off</mat-icon>\r\n <span>Hide Column</span>\r\n </button>\r\n @if (!(metaData.fieldType === FieldType.NotMapped))\r\n {\r\n <ng-form #myForm=\"ngForm\" (keydown.enter)=\"onEnter(myForm.value)\" class=\"tb-header-filter\">\r\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"'header-column-' + metaData.key\" />\r\n <input type=\"hidden\" name=\"filterType\" [ngModel]=\"myFilterType\" />\r\n <input type=\"hidden\" name=\"key\" [ngModel]=\"metaData.key\" />\r\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"metaData.fieldType\" />\r\n \r\n @if(myFilterType === FilterType.Or || myFilterType === FilterType.In){\r\n <tb-in-list-filter name='filterValue' [key]='metaData.key' [(ngModel)]='myFilterValue'/>\r\n }\r\n @else if(metaData.fieldType === FieldType.Link || metaData.fieldType === FieldType.String || metaData.fieldType === FieldType.Array || metaData.fieldType === FieldType.Unknown || metaData.fieldType === FieldType.PhoneNumber) {\r\n <mat-form-field stop-propagation class=\"font auto-width\">\r\n <mat-icon matPrefix class=\"search-icon\">search</mat-icon>\r\n <mat-label>{{myFilterType === FilterType.StringDoesNotContain ? 'Does Not Contain...' : 'Contains...'}}</mat-label>\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n <span matSuffix [matTooltip]=\"myFilterType === FilterType.StringDoesNotContain ? 'Contains' : 'Does Not Contain'\">\r\n <button mat-icon-button color=\"primary\" (click)=\"setStringFilterType()\" class=\"header-filter-icon-button\">\r\n <mat-icon [ngClass]=\"{'chosen-icon': myFilterType === FilterType.StringDoesNotContain }\">\r\n block\r\n </mat-icon>\r\n </button>\r\n </span>\r\n </mat-form-field>\r\n }\r\n @else if (metaData.fieldType === FieldType.Number || metaData.fieldType === FieldType.Currency) {\r\n <mat-form-field class=\"auto-width\" stop-propagation>\r\n <mat-label>{{myFilterType === FilterType.NumberEquals ? 'Equals...' : myFilterType === FilterType.NumberLessThan ? 'Less Than...' : 'More Than...'}}</mat-label>\r\n <input matInput type='number' name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n <span matPrefix class=\"tb-header-prefix\">\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.NumberLessThan)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.NumberLessThan }\">\r\n <mat-icon class=\"suffix-icons\"\r\n >\r\n arrow_back_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.NumberGreaterThan)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.NumberGreaterThan }\" >\r\n <mat-icon class=\"suffix-icons\">arrow_forward_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.NumberEquals)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.NumberEquals }\">\r\n <span class=\"suffix-icons\">=</span>\r\n </button>\r\n </span>\r\n </mat-form-field>\r\n }\r\n @else if (metaData.fieldType === FieldType.Boolean) {\r\n <div>\r\n <label>\r\n <mat-icon class=\"search-icon\">filter_list</mat-icon>\r\n </label>\r\n <mat-radio-group stop-propagation #ctrl=\"matRadioGroup\" #boolField='ngModel' class=\"font\" name=\"filterValue\" [ngModel]=\"myFilterValue\" >\r\n <mat-radio-button class=\"filter-radio-button\" (click)=\"myFilterValue = true;\" [value]=\"true\">True</mat-radio-button><br/>\r\n <mat-radio-button class=\"filter-radio-button\" (click)=\"myFilterValue = false\" [value]=\"false\">False</mat-radio-button><br/>\r\n </mat-radio-group>\r\n </div>\r\n }\r\n @else if (metaData.fieldType === FieldType.Date || metaData.fieldType === FieldType.DateTime) {\r\n <mat-form-field class=\"font auto-width\" stop-propagation >\r\n <span matPrefix class=\"tb-header-prefix\">\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.DateOnOrAfter)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.DateOnOrAfter }\">\r\n <mat-icon class=\"suffix-icons underline\">arrow_forward_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.DateOnOrBefore)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.DateOnOrBefore }\">\r\n <mat-icon class=\"suffix-icons underline\">arrow_back_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.DateIsOn)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.DateIsOn }\">\r\n <span class=\"suffix-icons underline\"> =</span>\r\n </button>\r\n </span>\r\n <mat-label>{{myFilterType === FilterType.DateIsOn ? 'On...' :\r\n myFilterType === FilterType.DateOnOrBefore ? 'On or Before...' : 'On or After...'}}</mat-label>\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" [matDatepicker]=\"calendar\"\r\n (click)=\"calendar.open()\"/>\r\n <mat-datepicker-toggle class=\"date-toggle header-filter-icon-button\" matSuffix [for]=\"calendar\" preventEnter></mat-datepicker-toggle>\r\n <mat-datepicker #calendar></mat-datepicker>\r\n </mat-form-field>\r\n }\r\n \r\n <button mat-button (click)=\"onEnter(myForm.value)\" [disabled]=\"myForm.value.filterValue == undefined\" disableRipple>\r\n Apply\r\n </button>\r\n </ng-form>\r\n }\r\n</mat-menu>\r\n", styles: [":host{--mdc-text-button-container-height: 24px;--mdc-filled-button-container-height: 24px;--mdc-protected-button-container-height: 24px;--mdc-outlined-button-container-height: 24px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.menu-icon{font-size:16px;line-height:16px;vertical-align:top;height:16px;width:16px}.search-icon{margin-right:16px;vertical-align:middle;height:24px;color:#0000008a;font-size:21px;line-height:1.125}.font{font-size:14px}.filter-radio-button:first-of-type{padding-left:0}.filter-radio-button{padding:10px 40px;min-width:110px}.auto-width{width:260px;margin:5px;display:block;height:55px}.open-menu-icon-button{height:28px;width:28px;padding:6px}.header-filter-icon-button{height:18px;width:18px;font-size:18px;padding:0;margin:0 2px}.header-filter-icon-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.header-filter-icon-button.chosen-icon,.header-filter-icon-button.chosen-icon ::ng-deep *{height:22px;width:22px;font-size:22px;color:green}mat-icon.mat-icon.suffix-icons.underline{height:20px;text-decoration:underline .1px solid}.chosen-icon mat-icon.mat-icon.suffix-icons.underline{height:24px}::ng-deep .mat-mdc-form-field-icon-prefix:has(.tb-header-prefix),.tb-header-prefix{padding:0;flex-basis:36%}.tb-header-filter ::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}.tb-header-filter ::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: InListFilterComponent, selector: "tb-in-list-filter , [tb-in-list-filter]", inputs: ["key"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: StopPropagationDirective, selector: "[stop-propagation]" }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i9.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i9.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i10.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i10.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i10.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
88
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: HeaderMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: HeaderMenuComponent, isStandalone: true, selector: "tb-header-menu", inputs: { metaData: "metaData" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<button mat-icon-button class=\"open-menu-icon-button\" disableRipple [matMenuTriggerFor]=\"menu\" [matMenuTriggerRestoreFocus]=\"false\">\r\n <mat-icon class=\"menu-icon\">more_vert</mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" >\r\n @if (!(metaData.fieldType === FieldType.NotMapped))\r\n {\r\n <button mat-menu-item (click)=\"tableState.addGroupByKey(metaData.key)\">\r\n <mat-icon color=\"primary\">group</mat-icon>\r\n <span>Group By</span>\r\n </button>\r\n }\r\n <button mat-menu-item (click)=hideField(metaData.key)>\r\n <mat-icon color=\"primary\">visibility_off</mat-icon>\r\n <span>Hide Column</span>\r\n </button>\r\n @if (!(metaData.fieldType === FieldType.NotMapped))\r\n {\r\n <ng-form #myForm=\"ngForm\" (keydown.enter)=\"onEnter(myForm.value)\" class=\"tb-header-filter\">\r\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"'header-column-' + metaData.key\" />\r\n <input type=\"hidden\" name=\"filterType\" [ngModel]=\"myFilterType\" />\r\n <input type=\"hidden\" name=\"key\" [ngModel]=\"metaData.key\" />\r\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"metaData.fieldType\" />\r\n \r\n @if(myFilterType === FilterType.Or || myFilterType === FilterType.In){\r\n <tb-in-list-filter name='filterValue' [key]='metaData.key' [(ngModel)]='myFilterValue'/>\r\n }\r\n @else if(metaData.fieldType === FieldType.Link || metaData.fieldType === FieldType.String || metaData.fieldType === FieldType.Array || metaData.fieldType === FieldType.Unknown || metaData.fieldType === FieldType.PhoneNumber) {\r\n <mat-form-field stop-propagation class=\"font auto-width\">\r\n <mat-icon matPrefix class=\"search-icon\">search</mat-icon>\r\n <mat-label>{{myFilterType === FilterType.StringDoesNotContain ? 'Does Not Contain...' : 'Contains...'}}</mat-label>\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n <span matSuffix [matTooltip]=\"myFilterType === FilterType.StringDoesNotContain ? 'Contains' : 'Does Not Contain'\">\r\n <button mat-icon-button color=\"primary\" (click)=\"setStringFilterType()\" class=\"header-filter-icon-button\">\r\n <mat-icon [ngClass]=\"{'chosen-icon': myFilterType === FilterType.StringDoesNotContain }\">\r\n block\r\n </mat-icon>\r\n </button>\r\n </span>\r\n </mat-form-field>\r\n }\r\n @else if (metaData.fieldType === FieldType.Number || metaData.fieldType === FieldType.Currency) {\r\n <mat-form-field class=\"auto-width\" stop-propagation>\r\n <mat-label>{{myFilterType === FilterType.NumberEquals ? 'Equals...' : myFilterType === FilterType.NumberLessThan ? 'Less Than...' : 'More Than...'}}</mat-label>\r\n <input matInput type='number' name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n <span matPrefix class=\"tb-header-prefix\">\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.NumberLessThan)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.NumberLessThan }\">\r\n <mat-icon class=\"suffix-icons\"\r\n >\r\n arrow_back_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.NumberGreaterThan)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.NumberGreaterThan }\" >\r\n <mat-icon class=\"suffix-icons\">arrow_forward_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.NumberEquals)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.NumberEquals }\">\r\n <span class=\"suffix-icons\">=</span>\r\n </button>\r\n </span>\r\n </mat-form-field>\r\n }\r\n @else if (metaData.fieldType === FieldType.Boolean) {\r\n <div>\r\n <label>\r\n <mat-icon class=\"search-icon\">filter_list</mat-icon>\r\n </label>\r\n <mat-radio-group stop-propagation #ctrl=\"matRadioGroup\" #boolField='ngModel' class=\"font\" name=\"filterValue\" [ngModel]=\"myFilterValue\" >\r\n <mat-radio-button class=\"filter-radio-button\" (click)=\"myFilterValue = true;\" [value]=\"true\">True</mat-radio-button><br/>\r\n <mat-radio-button class=\"filter-radio-button\" (click)=\"myFilterValue = false\" [value]=\"false\">False</mat-radio-button><br/>\r\n </mat-radio-group>\r\n </div>\r\n }\r\n @else if (metaData.fieldType === FieldType.Date || metaData.fieldType === FieldType.DateTime) {\r\n <mat-form-field class=\"font auto-width\" stop-propagation >\r\n <span matPrefix class=\"tb-header-prefix\">\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.DateOnOrAfter)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.DateOnOrAfter }\">\r\n <mat-icon class=\"suffix-icons underline\">arrow_forward_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.DateOnOrBefore)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.DateOnOrBefore }\">\r\n <mat-icon class=\"suffix-icons underline\">arrow_back_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.DateIsOn)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.DateIsOn }\">\r\n <span class=\"suffix-icons underline\"> =</span>\r\n </button>\r\n </span>\r\n <mat-label>{{myFilterType === FilterType.DateIsOn ? 'On...' :\r\n myFilterType === FilterType.DateOnOrBefore ? 'On or Before...' : 'On or After...'}}</mat-label>\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" [matDatepicker]=\"calendar\"\r\n (click)=\"calendar.open()\"/>\r\n <mat-datepicker-toggle class=\"date-toggle header-filter-icon-button\" matSuffix [for]=\"calendar\" preventEnter></mat-datepicker-toggle>\r\n <mat-datepicker #calendar></mat-datepicker>\r\n </mat-form-field>\r\n }\r\n \r\n <button mat-button (click)=\"onEnter(myForm.value)\" [disabled]=\"myForm.value.filterValue == undefined\" disableRipple>\r\n Apply\r\n </button>\r\n </ng-form>\r\n }\r\n</mat-menu>\r\n", styles: [":host{--mdc-text-button-container-height: 24px;--mdc-filled-button-container-height: 24px;--mdc-protected-button-container-height: 24px;--mdc-outlined-button-container-height: 24px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.menu-icon{font-size:16px;line-height:16px;vertical-align:top;height:16px;width:16px}.search-icon{margin-right:16px;vertical-align:middle;height:24px;color:#0000008a;font-size:21px;line-height:1.125}.font{font-size:14px}.filter-radio-button:first-of-type{padding-left:0}.filter-radio-button{padding:10px 40px;min-width:110px}.auto-width{width:260px;margin:5px;display:block;height:55px}.open-menu-icon-button{height:28px;width:28px;padding:6px}.header-filter-icon-button{height:18px;width:18px;font-size:18px;padding:0;margin:0 2px}.header-filter-icon-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.header-filter-icon-button.chosen-icon,.header-filter-icon-button.chosen-icon ::ng-deep *{height:22px;width:22px;font-size:22px;color:green}mat-icon.mat-icon.suffix-icons.underline{height:20px;text-decoration:underline .1px solid}.chosen-icon mat-icon.mat-icon.suffix-icons.underline{height:24px}::ng-deep .mat-mdc-form-field-icon-prefix:has(.tb-header-prefix),.tb-header-prefix{padding:0;flex-basis:36%}.tb-header-filter ::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}.tb-header-filter ::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: InListFilterComponent, selector: "tb-in-list-filter , [tb-in-list-filter]", inputs: ["key"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: StopPropagationDirective, selector: "[stop-propagation]" }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i8.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i8.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i9.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i9.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
87
90
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: HeaderMenuComponent, decorators: [{
|
|
89
92
|
type: Component,
|
|
90
93
|
args: [{ selector: 'tb-header-menu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
91
94
|
MatMenuModule, MatIconModule, MatButtonModule, FormsModule, InListFilterComponent,
|
|
92
95
|
MatInputModule, MatTooltipModule, NgClass, StopPropagationDirective, MatRadioModule, MatDatepickerModule
|
|
93
96
|
], template: "<button mat-icon-button class=\"open-menu-icon-button\" disableRipple [matMenuTriggerFor]=\"menu\" [matMenuTriggerRestoreFocus]=\"false\">\r\n <mat-icon class=\"menu-icon\">more_vert</mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" >\r\n @if (!(metaData.fieldType === FieldType.NotMapped))\r\n {\r\n <button mat-menu-item (click)=\"tableState.addGroupByKey(metaData.key)\">\r\n <mat-icon color=\"primary\">group</mat-icon>\r\n <span>Group By</span>\r\n </button>\r\n }\r\n <button mat-menu-item (click)=hideField(metaData.key)>\r\n <mat-icon color=\"primary\">visibility_off</mat-icon>\r\n <span>Hide Column</span>\r\n </button>\r\n @if (!(metaData.fieldType === FieldType.NotMapped))\r\n {\r\n <ng-form #myForm=\"ngForm\" (keydown.enter)=\"onEnter(myForm.value)\" class=\"tb-header-filter\">\r\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"'header-column-' + metaData.key\" />\r\n <input type=\"hidden\" name=\"filterType\" [ngModel]=\"myFilterType\" />\r\n <input type=\"hidden\" name=\"key\" [ngModel]=\"metaData.key\" />\r\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"metaData.fieldType\" />\r\n \r\n @if(myFilterType === FilterType.Or || myFilterType === FilterType.In){\r\n <tb-in-list-filter name='filterValue' [key]='metaData.key' [(ngModel)]='myFilterValue'/>\r\n }\r\n @else if(metaData.fieldType === FieldType.Link || metaData.fieldType === FieldType.String || metaData.fieldType === FieldType.Array || metaData.fieldType === FieldType.Unknown || metaData.fieldType === FieldType.PhoneNumber) {\r\n <mat-form-field stop-propagation class=\"font auto-width\">\r\n <mat-icon matPrefix class=\"search-icon\">search</mat-icon>\r\n <mat-label>{{myFilterType === FilterType.StringDoesNotContain ? 'Does Not Contain...' : 'Contains...'}}</mat-label>\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n <span matSuffix [matTooltip]=\"myFilterType === FilterType.StringDoesNotContain ? 'Contains' : 'Does Not Contain'\">\r\n <button mat-icon-button color=\"primary\" (click)=\"setStringFilterType()\" class=\"header-filter-icon-button\">\r\n <mat-icon [ngClass]=\"{'chosen-icon': myFilterType === FilterType.StringDoesNotContain }\">\r\n block\r\n </mat-icon>\r\n </button>\r\n </span>\r\n </mat-form-field>\r\n }\r\n @else if (metaData.fieldType === FieldType.Number || metaData.fieldType === FieldType.Currency) {\r\n <mat-form-field class=\"auto-width\" stop-propagation>\r\n <mat-label>{{myFilterType === FilterType.NumberEquals ? 'Equals...' : myFilterType === FilterType.NumberLessThan ? 'Less Than...' : 'More Than...'}}</mat-label>\r\n <input matInput type='number' name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n <span matPrefix class=\"tb-header-prefix\">\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.NumberLessThan)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.NumberLessThan }\">\r\n <mat-icon class=\"suffix-icons\"\r\n >\r\n arrow_back_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.NumberGreaterThan)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.NumberGreaterThan }\" >\r\n <mat-icon class=\"suffix-icons\">arrow_forward_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.NumberEquals)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.NumberEquals }\">\r\n <span class=\"suffix-icons\">=</span>\r\n </button>\r\n </span>\r\n </mat-form-field>\r\n }\r\n @else if (metaData.fieldType === FieldType.Boolean) {\r\n <div>\r\n <label>\r\n <mat-icon class=\"search-icon\">filter_list</mat-icon>\r\n </label>\r\n <mat-radio-group stop-propagation #ctrl=\"matRadioGroup\" #boolField='ngModel' class=\"font\" name=\"filterValue\" [ngModel]=\"myFilterValue\" >\r\n <mat-radio-button class=\"filter-radio-button\" (click)=\"myFilterValue = true;\" [value]=\"true\">True</mat-radio-button><br/>\r\n <mat-radio-button class=\"filter-radio-button\" (click)=\"myFilterValue = false\" [value]=\"false\">False</mat-radio-button><br/>\r\n </mat-radio-group>\r\n </div>\r\n }\r\n @else if (metaData.fieldType === FieldType.Date || metaData.fieldType === FieldType.DateTime) {\r\n <mat-form-field class=\"font auto-width\" stop-propagation >\r\n <span matPrefix class=\"tb-header-prefix\">\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.DateOnOrAfter)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.DateOnOrAfter }\">\r\n <mat-icon class=\"suffix-icons underline\">arrow_forward_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.DateOnOrBefore)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.DateOnOrBefore }\">\r\n <mat-icon class=\"suffix-icons underline\">arrow_back_ios</mat-icon>\r\n </button>\r\n <button mat-icon-button disableRipple class=\"header-filter-icon-button\" (click)=\"setFilterType(FilterType.DateIsOn)\"\r\n [ngClass]=\"{'chosen-icon': myFilterType === FilterType.DateIsOn }\">\r\n <span class=\"suffix-icons underline\"> =</span>\r\n </button>\r\n </span>\r\n <mat-label>{{myFilterType === FilterType.DateIsOn ? 'On...' :\r\n myFilterType === FilterType.DateOnOrBefore ? 'On or Before...' : 'On or After...'}}</mat-label>\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" [matDatepicker]=\"calendar\"\r\n (click)=\"calendar.open()\"/>\r\n <mat-datepicker-toggle class=\"date-toggle header-filter-icon-button\" matSuffix [for]=\"calendar\" preventEnter></mat-datepicker-toggle>\r\n <mat-datepicker #calendar></mat-datepicker>\r\n </mat-form-field>\r\n }\r\n \r\n <button mat-button (click)=\"onEnter(myForm.value)\" [disabled]=\"myForm.value.filterValue == undefined\" disableRipple>\r\n Apply\r\n </button>\r\n </ng-form>\r\n }\r\n</mat-menu>\r\n", styles: [":host{--mdc-text-button-container-height: 24px;--mdc-filled-button-container-height: 24px;--mdc-protected-button-container-height: 24px;--mdc-outlined-button-container-height: 24px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.menu-icon{font-size:16px;line-height:16px;vertical-align:top;height:16px;width:16px}.search-icon{margin-right:16px;vertical-align:middle;height:24px;color:#0000008a;font-size:21px;line-height:1.125}.font{font-size:14px}.filter-radio-button:first-of-type{padding-left:0}.filter-radio-button{padding:10px 40px;min-width:110px}.auto-width{width:260px;margin:5px;display:block;height:55px}.open-menu-icon-button{height:28px;width:28px;padding:6px}.header-filter-icon-button{height:18px;width:18px;font-size:18px;padding:0;margin:0 2px}.header-filter-icon-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.header-filter-icon-button.chosen-icon,.header-filter-icon-button.chosen-icon ::ng-deep *{height:22px;width:22px;font-size:22px;color:green}mat-icon.mat-icon.suffix-icons.underline{height:20px;text-decoration:underline .1px solid}.chosen-icon mat-icon.mat-icon.suffix-icons.underline{height:24px}::ng-deep .mat-mdc-form-field-icon-prefix:has(.tb-header-prefix),.tb-header-prefix{padding:0;flex-basis:36%}.tb-header-filter ::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}.tb-header-filter ::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
|
|
94
|
-
}],
|
|
97
|
+
}], propDecorators: { metaData: [{
|
|
95
98
|
type: Input
|
|
96
99
|
}], trigger: [{
|
|
97
100
|
type: ViewChild,
|
|
98
101
|
args: [MatMenuTrigger]
|
|
99
102
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsU0FBUyxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7OztBQWFuRSxNQUFNLE9BQU8sbUJBQW1CO0lBVTlCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFUMUMsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN0QixlQUFVLEdBQUcsVUFBVSxDQUFDO0lBUXFCLENBQUM7SUFFOUMsU0FBUyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBQ0QsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN0QixLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDcEIsS0FBSyxTQUFTLENBQUMsV0FBVyxDQUFDO1lBQzNCLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNyQixLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUM7Z0JBQzlDLE1BQU07WUFDUixLQUFLLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDeEIsS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO2dCQUM1QyxNQUFNO1lBQ1IsS0FBSyxTQUFTLENBQUMsT0FBTztnQkFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO2dCQUM3QyxNQUFNO1lBQ1YsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ3BCLEtBQUssU0FBUyxDQUFDLFFBQVE7Z0JBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDeEMsTUFBTTtZQUNWLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksS0FBSyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7SUFDcEksQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFzQjtRQUNsQyxJQUFJLFVBQVUsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsTUFBa0I7UUFDeEIsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLFNBQVMsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzs4R0FwRVUsbUJBQW1CO2tHQUFuQixtQkFBbUIscUpBU25CLGNBQWMsZ0RDckMzQixtc05Bd0dBLGt6RERoRkksYUFBYSw2dkJBQUUsYUFBYSxtTEFBRSxlQUFlLHdVQUFFLFdBQVcscThCQUFFLHFCQUFxQixvR0FDakYsY0FBYyx3M0JBQUUsZ0JBQWdCLDZUQUFFLE9BQU8sb0ZBQUUsd0JBQXdCLDhEQUFFLGNBQWMsc2lCQUFFLG1CQUFtQjs7MkZBRy9GLG1CQUFtQjtrQkFYL0IsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLHFCQUFxQjt3QkFDakYsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsbUJBQW1CO3FCQUN6RzsrRUFVUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNxQixPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJJbmZvIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluTGlzdEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci9pbi1saXN0L2luLWxpc3QtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWhlYWRlci1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRNZW51TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBJbkxpc3RGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTmdDbGFzcywgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLCBNYXRSYWRpb01vZHVsZSwgTWF0RGF0ZXBpY2tlck1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlck1lbnVDb21wb25lbnQge1xyXG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcclxuICBGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZTtcclxuICBteUZpbHRlclR5cGUhOiBGaWx0ZXJUeXBlO1xyXG4gIG15RmlsdGVyVmFsdWU6IGFueTtcclxuXHJcbiAgZmlsdGVyITogUGFydGlhbDxGaWx0ZXJJbmZvPjtcclxuXHJcbiAgQElucHV0KCkgbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKSB0cmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XHJcbiAgY29uc3RydWN0b3IoIHB1YmxpYyB0YWJsZVN0YXRlOiBUYWJsZVN0b3JlKSB7fVxyXG5cclxuICBoaWRlRmllbGQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGFibGVTdGF0ZS5oaWRlQ29sdW1uKGtleSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZmlsdGVyID0geyBrZXk6IHRoaXMubWV0YURhdGEua2V5LCBmaWVsZFR5cGU6IHRoaXMubWV0YURhdGEuZmllbGRUeXBlIH07XHJcbiAgICB0aGlzLnJlc2V0RmlsdGVyVHlwZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGaWx0ZXJUeXBlKCkge1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsPy5maWx0ZXJPcHRpb25zPy5maWx0ZXJhYmxlVmFsdWVzKSB7XHJcbiAgICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5JbjtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSkge1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5TdHJpbmc6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkxpbms6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLlBob25lTnVtYmVyOlxyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5BcnJheTpcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuVW5rbm93bjpcclxuICAgICAgICB0aGlzLm15RmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuU3RyaW5nQ29udGFpbnM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkN1cnJlbmN5OlxyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLk51bWJlckVxdWFscztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5Cb29sZWFuRXF1YWxzO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxyXG4gICAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRhdGVJc09uO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkVudW06XHJcbiAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkluO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U3RyaW5nRmlsdGVyVHlwZSgpIHtcclxuICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gdGhpcy5teUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuU3RyaW5nQ29udGFpbnMgPyBGaWx0ZXJUeXBlLlN0cmluZ0RvZXNOb3RDb250YWluIDogRmlsdGVyVHlwZS5TdHJpbmdDb250YWlucztcclxuICB9XHJcblxyXG4gIHNldEZpbHRlclR5cGUoZmlsdGVyVHlwZTogRmlsdGVyVHlwZSkge1xyXG4gICAgaWYgKGZpbHRlclR5cGUgPT09IHRoaXMubXlGaWx0ZXJUeXBlKSB7XHJcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXJUeXBlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm15RmlsdGVyVHlwZSA9IGZpbHRlclR5cGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKGZpbHRlcjogRmlsdGVySW5mbykge1xyXG4gICAgaWYgKGZpbHRlci5maWx0ZXJWYWx1ZSAhPSB1bmRlZmluZWQgJiYgZmlsdGVyLmZpbHRlclR5cGUpIHtcclxuICAgICAgdGhpcy50YWJsZVN0YXRlLmFkZEZpbHRlcihmaWx0ZXIpO1xyXG4gICAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwib3Blbi1tZW51LWljb24tYnV0dG9uXCIgZGlzYWJsZVJpcHBsZSBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFttYXRNZW51VHJpZ2dlclJlc3RvcmVGb2N1c109XCJmYWxzZVwiPlxyXG4gIDxtYXQtaWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiPm1vcmVfdmVydDwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgPlxyXG4gIEBpZiAoIShtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5Ob3RNYXBwZWQpKVxyXG4gIHtcclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwidGFibGVTdGF0ZS5hZGRHcm91cEJ5S2V5KG1ldGFEYXRhLmtleSlcIj5cclxuICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmdyb3VwPC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4+R3JvdXAgQnk8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICB9XHJcbiAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9aGlkZUZpZWxkKG1ldGFEYXRhLmtleSk+XHJcbiAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+dmlzaWJpbGl0eV9vZmY8L21hdC1pY29uPlxyXG4gICAgPHNwYW4+SGlkZSBDb2x1bW48L3NwYW4+XHJcbiAgPC9idXR0b24+XHJcbiAgQGlmICghKG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLk5vdE1hcHBlZCkpXHJcbiAge1xyXG4gICAgPG5nLWZvcm0gI215Rm9ybT1cIm5nRm9ybVwiIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXIobXlGb3JtLnZhbHVlKVwiIGNsYXNzPVwidGItaGVhZGVyLWZpbHRlclwiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmaWx0ZXJJZFwiICBbbmdNb2RlbF09XCInaGVhZGVyLWNvbHVtbi0nICsgbWV0YURhdGEua2V5XCIgLz5cclxuICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZmlsdGVyVHlwZVwiICBbbmdNb2RlbF09XCJteUZpbHRlclR5cGVcIiAvPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJrZXlcIiAgW25nTW9kZWxdPVwibWV0YURhdGEua2V5XCIgLz5cclxuICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZmllbGRUeXBlXCIgIFtuZ01vZGVsXT1cIm1ldGFEYXRhLmZpZWxkVHlwZVwiIC8+XHJcbiAgICAgIFxyXG4gICAgICBAaWYobXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLk9yIHx8IG15RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Jbil7XHJcbiAgICAgICAgPHRiLWluLWxpc3QtZmlsdGVyIG5hbWU9J2ZpbHRlclZhbHVlJyBba2V5XT0nbWV0YURhdGEua2V5JyBbKG5nTW9kZWwpXT0nbXlGaWx0ZXJWYWx1ZScvPlxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmKG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkxpbmsgfHwgbWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuU3RyaW5nIHx8IG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkFycmF5IHx8IG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLlVua25vd24gfHwgbWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuUGhvbmVOdW1iZXIpIHtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgc3RvcC1wcm9wYWdhdGlvbiBjbGFzcz1cImZvbnQgYXV0by13aWR0aFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIG1hdFByZWZpeCBjbGFzcz1cInNlYXJjaC1pY29uXCI+c2VhcmNoPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3tteUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuU3RyaW5nRG9lc05vdENvbnRhaW4gPyAnRG9lcyBOb3QgQ29udGFpbi4uLicgOiAnQ29udGFpbnMuLi4nfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJmaWx0ZXIuZmlsdGVyVmFsdWVcIiAvPlxyXG4gICAgICAgICAgPHNwYW4gbWF0U3VmZml4IFttYXRUb29sdGlwXT1cIm15RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5TdHJpbmdEb2VzTm90Q29udGFpbiA/ICdDb250YWlucycgOiAnRG9lcyBOb3QgQ29udGFpbidcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInNldFN0cmluZ0ZpbHRlclR5cGUoKVwiIGNsYXNzPVwiaGVhZGVyLWZpbHRlci1pY29uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBbbmdDbGFzc109XCJ7J2Nob3Nlbi1pY29uJzogbXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLlN0cmluZ0RvZXNOb3RDb250YWluIH1cIj5cclxuICAgICAgICAgICAgICAgIGJsb2NrXHJcbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAobWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTnVtYmVyIHx8IG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkN1cnJlbmN5KSB7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYXV0by13aWR0aFwiIHN0b3AtcHJvcGFnYXRpb24+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7bXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLk51bWJlckVxdWFscyA/ICdFcXVhbHMuLi4nIDogbXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLk51bWJlckxlc3NUaGFuID8gJ0xlc3MgVGhhbi4uLicgOiAnTW9yZSBUaGFuLi4uJ319PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT0nbnVtYmVyJyAgbmFtZT1cImZpbHRlclZhbHVlXCIgW25nTW9kZWxdPVwiZmlsdGVyLmZpbHRlclZhbHVlXCIgLz5cclxuICAgICAgICAgIDxzcGFuIG1hdFByZWZpeCBjbGFzcz1cInRiLWhlYWRlci1wcmVmaXhcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZVJpcHBsZSBjbGFzcz1cImhlYWRlci1maWx0ZXItaWNvbi1idXR0b25cIiAoY2xpY2spPVwic2V0RmlsdGVyVHlwZShGaWx0ZXJUeXBlLk51bWJlckxlc3NUaGFuKVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY2hvc2VuLWljb24nOiBteUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuTnVtYmVyTGVzc1RoYW4gfVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAgY2xhc3M9XCJzdWZmaXgtaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgYXJyb3dfYmFja19pb3M8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZVJpcHBsZSBjbGFzcz1cImhlYWRlci1maWx0ZXItaWNvbi1idXR0b25cIiAoY2xpY2spPVwic2V0RmlsdGVyVHlwZShGaWx0ZXJUeXBlLk51bWJlckdyZWF0ZXJUaGFuKVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY2hvc2VuLWljb24nOiBteUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuTnVtYmVyR3JlYXRlclRoYW4gfVwiID5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gIGNsYXNzPVwic3VmZml4LWljb25zXCI+YXJyb3dfZm9yd2FyZF9pb3M8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZVJpcHBsZSBjbGFzcz1cImhlYWRlci1maWx0ZXItaWNvbi1idXR0b25cIiAoY2xpY2spPVwic2V0RmlsdGVyVHlwZShGaWx0ZXJUeXBlLk51bWJlckVxdWFscylcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Nob3Nlbi1pY29uJzogbXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLk51bWJlckVxdWFscyB9XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWZmaXgtaWNvbnNcIj49PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICB9XHJcbiAgICAgIEBlbHNlIGlmIChtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5Cb29sZWFuKSB7XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VhcmNoLWljb25cIj5maWx0ZXJfbGlzdDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBzdG9wLXByb3BhZ2F0aW9uICNjdHJsPVwibWF0UmFkaW9Hcm91cFwiICNib29sRmllbGQ9J25nTW9kZWwnIGNsYXNzPVwiZm9udFwiIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIFtuZ01vZGVsXT1cIm15RmlsdGVyVmFsdWVcIiA+XHJcbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwiZmlsdGVyLXJhZGlvLWJ1dHRvblwiIChjbGljayk9XCJteUZpbHRlclZhbHVlID0gdHJ1ZTtcIiBbdmFsdWVdPVwidHJ1ZVwiPlRydWU8L21hdC1yYWRpby1idXR0b24+PGJyLz5cclxuICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJmaWx0ZXItcmFkaW8tYnV0dG9uXCIgKGNsaWNrKT1cIm15RmlsdGVyVmFsdWUgPSBmYWxzZVwiIFt2YWx1ZV09XCJmYWxzZVwiPkZhbHNlPC9tYXQtcmFkaW8tYnV0dG9uPjxici8+XHJcbiAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAobWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZSB8fCBtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5EYXRlVGltZSkge1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZvbnQgYXV0by13aWR0aFwiIHN0b3AtcHJvcGFnYXRpb24gPlxyXG4gICAgICAgICAgPHNwYW4gbWF0UHJlZml4IGNsYXNzPVwidGItaGVhZGVyLXByZWZpeFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlUmlwcGxlIGNsYXNzPVwiaGVhZGVyLWZpbHRlci1pY29uLWJ1dHRvblwiIChjbGljayk9XCJzZXRGaWx0ZXJUeXBlKEZpbHRlclR5cGUuRGF0ZU9uT3JBZnRlcilcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY2hvc2VuLWljb24nOiBteUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuRGF0ZU9uT3JBZnRlciB9XCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uICBjbGFzcz1cInN1ZmZpeC1pY29ucyB1bmRlcmxpbmVcIj5hcnJvd19mb3J3YXJkX2lvczwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlUmlwcGxlIGNsYXNzPVwiaGVhZGVyLWZpbHRlci1pY29uLWJ1dHRvblwiIChjbGljayk9XCJzZXRGaWx0ZXJUeXBlKEZpbHRlclR5cGUuRGF0ZU9uT3JCZWZvcmUpXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Nob3Nlbi1pY29uJzogbXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLkRhdGVPbk9yQmVmb3JlICB9XCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uICBjbGFzcz1cInN1ZmZpeC1pY29ucyB1bmRlcmxpbmVcIj5hcnJvd19iYWNrX2lvczwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlUmlwcGxlIGNsYXNzPVwiaGVhZGVyLWZpbHRlci1pY29uLWJ1dHRvblwiIChjbGljayk9XCJzZXRGaWx0ZXJUeXBlKEZpbHRlclR5cGUuRGF0ZUlzT24pXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Nob3Nlbi1pY29uJzogbXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLkRhdGVJc09uIH1cIj5cclxuICAgICAgICAgICAgICA8c3BhbiAgY2xhc3M9XCJzdWZmaXgtaWNvbnMgdW5kZXJsaW5lXCI+ID08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e215RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlSXNPbiA/ICdPbi4uLicgOlxyXG4gICAgICAgICAgICBteUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuRGF0ZU9uT3JCZWZvcmUgPyAnT24gb3IgQmVmb3JlLi4uJyA6ICdPbiBvciBBZnRlci4uLid9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIFtuZ01vZGVsXT1cImZpbHRlci5maWx0ZXJWYWx1ZVwiIFttYXREYXRlcGlja2VyXT1cImNhbGVuZGFyXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNhbGVuZGFyLm9wZW4oKVwiLz5cclxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgY2xhc3M9XCJkYXRlLXRvZ2dsZSBoZWFkZXItZmlsdGVyLWljb24tYnV0dG9uXCIgbWF0U3VmZml4IFtmb3JdPVwiY2FsZW5kYXJcIiBwcmV2ZW50RW50ZXI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2NhbGVuZGFyPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgfVxyXG4gIFxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cIm9uRW50ZXIobXlGb3JtLnZhbHVlKVwiIFtkaXNhYmxlZF09XCJteUZvcm0udmFsdWUuZmlsdGVyVmFsdWUgPT0gdW5kZWZpbmVkXCIgZGlzYWJsZVJpcHBsZT5cclxuICAgICAgICBBcHBseVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctZm9ybT5cclxuICB9XHJcbjwvbWF0LW1lbnU+XHJcbiJdfQ==
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFhbkUsTUFBTSxPQUFPLG1CQUFtQjtJQUNwQixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDdEIsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUN4QixZQUFZLENBQWM7SUFDMUIsYUFBYSxDQUFNO0lBRW5CLE1BQU0sQ0FBdUI7SUFFcEIsUUFBUSxDQUFZO0lBQ0YsT0FBTyxDQUFrQjtJQUVwRCxTQUFTLENBQUMsR0FBVztRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0UsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTztRQUNULENBQUM7UUFDRCxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEMsS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ3RCLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQztZQUNwQixLQUFLLFNBQVMsQ0FBQyxXQUFXLENBQUM7WUFDM0IsS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ3JCLEtBQUssU0FBUyxDQUFDLE9BQU87Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQztnQkFDOUMsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUN4QixLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7Z0JBQzVDLE1BQU07WUFDUixLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7Z0JBQzdDLE1BQU07WUFDVixLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDcEIsS0FBSyxTQUFTLENBQUMsUUFBUTtnQkFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUN4QyxNQUFNO1lBQ1YsS0FBSyxTQUFTLENBQUMsSUFBSTtnQkFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxLQUFLLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQztJQUNwSSxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQXNCO1FBQ2xDLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFrQjtRQUN4QixJQUFJLE1BQU0sQ0FBQyxXQUFXLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO3VHQXJFVSxtQkFBbUI7MkZBQW5CLG1CQUFtQixxSkFXbkIsY0FBYyxnREN2QzNCLG1zTkF3R0Esa3pERGhGSSxhQUFhLDZ2QkFBRSxhQUFhLG1MQUFFLGVBQWUsd1VBQUUsV0FBVyxxOEJBQUUscUJBQXFCLG9HQUNqRixjQUFjLHczQkFBRSxnQkFBZ0IsNlRBQUUsT0FBTyxvRkFBRSx3QkFBd0IsOERBQUUsY0FBYyxvbEJBQUUsbUJBQW1COzsyRkFHL0YsbUJBQW1CO2tCQVgvQixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUscUJBQXFCO3dCQUNqRixjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxtQkFBbUI7cUJBQ3pHOzhCQVlRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ3FCLE9BQU87c0JBQWpDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUsIE1ldGFEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgRmlsdGVySW5mbyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbkxpc3RGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXIvaW4tbGlzdC9pbi1saXN0LWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1oZWFkZXItbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXItbWVudS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0TWVudU1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgSW5MaXN0RmlsdGVyQ29tcG9uZW50LFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE5nQ2xhc3MsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgTWF0UmFkaW9Nb2R1bGUsIE1hdERhdGVwaWNrZXJNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJNZW51Q29tcG9uZW50IHtcclxuICBwcm90ZWN0ZWQgdGFibGVTdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuXHJcbiAgRmllbGRUeXBlID0gRmllbGRUeXBlO1xyXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlO1xyXG4gIG15RmlsdGVyVHlwZSE6IEZpbHRlclR5cGU7XHJcbiAgbXlGaWx0ZXJWYWx1ZTogYW55O1xyXG5cclxuICBmaWx0ZXIhOiBQYXJ0aWFsPEZpbHRlckluZm8+O1xyXG5cclxuICBASW5wdXQoKSBtZXRhRGF0YSE6IE1ldGFEYXRhO1xyXG4gIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpIHRyaWdnZXIhOiBNYXRNZW51VHJpZ2dlcjtcclxuXHJcbiAgaGlkZUZpZWxkKGtleTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRhYmxlU3RhdGUuaGlkZUNvbHVtbihrZXkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmZpbHRlciA9IHsga2V5OiB0aGlzLm1ldGFEYXRhLmtleSwgZmllbGRUeXBlOiB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSB9O1xyXG4gICAgdGhpcy5yZXNldEZpbHRlclR5cGUoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0RmlsdGVyVHlwZSgpIHtcclxuICAgIGlmKHRoaXMubWV0YURhdGEuYWRkaXRpb25hbD8uZmlsdGVyT3B0aW9ucz8uZmlsdGVyYWJsZVZhbHVlcykge1xyXG4gICAgICB0aGlzLm15RmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuSW47XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHN3aXRjaCAodGhpcy5tZXRhRGF0YS5maWVsZFR5cGUpIHtcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuU3RyaW5nOlxyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5MaW5rOlxyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5QaG9uZU51bWJlcjpcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuQXJyYXk6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLlVua25vd246XHJcbiAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlN0cmluZ0NvbnRhaW5zO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5DdXJyZW5jeTpcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuTnVtYmVyOlxyXG4gICAgICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5OdW1iZXJFcXVhbHM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkJvb2xlYW46XHJcbiAgICAgICAgICB0aGlzLm15RmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuQm9vbGVhbkVxdWFscztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlVGltZTpcclxuICAgICAgICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5EYXRlSXNPbjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5FbnVtOlxyXG4gICAgICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5JbjtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFN0cmluZ0ZpbHRlclR5cGUoKSB7XHJcbiAgICB0aGlzLm15RmlsdGVyVHlwZSA9IHRoaXMubXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLlN0cmluZ0NvbnRhaW5zID8gRmlsdGVyVHlwZS5TdHJpbmdEb2VzTm90Q29udGFpbiA6IEZpbHRlclR5cGUuU3RyaW5nQ29udGFpbnM7XHJcbiAgfVxyXG5cclxuICBzZXRGaWx0ZXJUeXBlKGZpbHRlclR5cGU6IEZpbHRlclR5cGUpIHtcclxuICAgIGlmIChmaWx0ZXJUeXBlID09PSB0aGlzLm15RmlsdGVyVHlwZSkge1xyXG4gICAgICB0aGlzLnJlc2V0RmlsdGVyVHlwZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBmaWx0ZXJUeXBlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25FbnRlcihmaWx0ZXI6IEZpbHRlckluZm8pIHtcclxuICAgIGlmIChmaWx0ZXIuZmlsdGVyVmFsdWUgIT0gdW5kZWZpbmVkICYmIGZpbHRlci5maWx0ZXJUeXBlKSB7XHJcbiAgICAgIHRoaXMudGFibGVTdGF0ZS5hZGRGaWx0ZXIoZmlsdGVyKTtcclxuICAgICAgdGhpcy50cmlnZ2VyLmNsb3NlTWVudSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm9wZW4tbWVudS1pY29uLWJ1dHRvblwiIGRpc2FibGVSaXBwbGUgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbbWF0TWVudVRyaWdnZXJSZXN0b3JlRm9jdXNdPVwiZmFsc2VcIj5cclxuICA8bWF0LWljb24gY2xhc3M9XCJtZW51LWljb25cIj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxyXG48L2J1dHRvbj5cclxuPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiID5cclxuICBAaWYgKCEobWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTm90TWFwcGVkKSlcclxuICB7XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInRhYmxlU3RhdGUuYWRkR3JvdXBCeUtleShtZXRhRGF0YS5rZXkpXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5ncm91cDwvbWF0LWljb24+XHJcbiAgICAgIDxzcGFuPkdyb3VwIEJ5PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgfVxyXG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPWhpZGVGaWVsZChtZXRhRGF0YS5rZXkpPlxyXG4gICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPnZpc2liaWxpdHlfb2ZmPC9tYXQtaWNvbj5cclxuICAgIDxzcGFuPkhpZGUgQ29sdW1uPC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG4gIEBpZiAoIShtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5Ob3RNYXBwZWQpKVxyXG4gIHtcclxuICAgIDxuZy1mb3JtICNteUZvcm09XCJuZ0Zvcm1cIiAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyKG15Rm9ybS52YWx1ZSlcIiBjbGFzcz1cInRiLWhlYWRlci1maWx0ZXJcIj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZmlsdGVySWRcIiAgW25nTW9kZWxdPVwiJ2hlYWRlci1jb2x1bW4tJyArIG1ldGFEYXRhLmtleVwiIC8+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImZpbHRlclR5cGVcIiAgW25nTW9kZWxdPVwibXlGaWx0ZXJUeXBlXCIgLz5cclxuICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwia2V5XCIgIFtuZ01vZGVsXT1cIm1ldGFEYXRhLmtleVwiIC8+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImZpZWxkVHlwZVwiICBbbmdNb2RlbF09XCJtZXRhRGF0YS5maWVsZFR5cGVcIiAvPlxyXG4gICAgICBcclxuICAgICAgQGlmKG15RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5PciB8fCBteUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuSW4pe1xyXG4gICAgICAgIDx0Yi1pbi1saXN0LWZpbHRlciBuYW1lPSdmaWx0ZXJWYWx1ZScgW2tleV09J21ldGFEYXRhLmtleScgWyhuZ01vZGVsKV09J215RmlsdGVyVmFsdWUnLz5cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZihtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5MaW5rIHx8IG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLlN0cmluZyB8fCBtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5BcnJheSB8fCBtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5Vbmtub3duIHx8IG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLlBob25lTnVtYmVyKSB7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0b3AtcHJvcGFnYXRpb24gY2xhc3M9XCJmb250IGF1dG8td2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRQcmVmaXggY2xhc3M9XCJzZWFyY2gtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7bXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLlN0cmluZ0RvZXNOb3RDb250YWluID8gJ0RvZXMgTm90IENvbnRhaW4uLi4nIDogJ0NvbnRhaW5zLi4uJ319PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cImZpbHRlclZhbHVlXCIgW25nTW9kZWxdPVwiZmlsdGVyLmZpbHRlclZhbHVlXCIgLz5cclxuICAgICAgICAgIDxzcGFuIG1hdFN1ZmZpeCBbbWF0VG9vbHRpcF09XCJteUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuU3RyaW5nRG9lc05vdENvbnRhaW4gPyAnQ29udGFpbnMnIDogJ0RvZXMgTm90IENvbnRhaW4nXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzZXRTdHJpbmdGaWx0ZXJUeXBlKClcIiBjbGFzcz1cImhlYWRlci1maWx0ZXItaWNvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gW25nQ2xhc3NdPVwieydjaG9zZW4taWNvbic6IG15RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5TdHJpbmdEb2VzTm90Q29udGFpbiB9XCI+XHJcbiAgICAgICAgICAgICAgICBibG9ja1xyXG4gICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2UgaWYgKG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLk51bWJlciB8fCBtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DdXJyZW5jeSkge1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImF1dG8td2lkdGhcIiBzdG9wLXByb3BhZ2F0aW9uPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e215RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5OdW1iZXJFcXVhbHMgPyAnRXF1YWxzLi4uJyA6IG15RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5OdW1iZXJMZXNzVGhhbiA/ICdMZXNzIFRoYW4uLi4nIDogJ01vcmUgVGhhbi4uLid9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9J251bWJlcicgIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIFtuZ01vZGVsXT1cImZpbHRlci5maWx0ZXJWYWx1ZVwiIC8+XHJcbiAgICAgICAgICA8c3BhbiBtYXRQcmVmaXggY2xhc3M9XCJ0Yi1oZWFkZXItcHJlZml4XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRpc2FibGVSaXBwbGUgY2xhc3M9XCJoZWFkZXItZmlsdGVyLWljb24tYnV0dG9uXCIgKGNsaWNrKT1cInNldEZpbHRlclR5cGUoRmlsdGVyVHlwZS5OdW1iZXJMZXNzVGhhbilcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Nob3Nlbi1pY29uJzogbXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLk51bWJlckxlc3NUaGFuIH1cIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gIGNsYXNzPVwic3VmZml4LWljb25zXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIGFycm93X2JhY2tfaW9zPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRpc2FibGVSaXBwbGUgY2xhc3M9XCJoZWFkZXItZmlsdGVyLWljb24tYnV0dG9uXCIgKGNsaWNrKT1cInNldEZpbHRlclR5cGUoRmlsdGVyVHlwZS5OdW1iZXJHcmVhdGVyVGhhbilcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Nob3Nlbi1pY29uJzogbXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLk51bWJlckdyZWF0ZXJUaGFuIH1cIiA+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uICBjbGFzcz1cInN1ZmZpeC1pY29uc1wiPmFycm93X2ZvcndhcmRfaW9zPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRpc2FibGVSaXBwbGUgY2xhc3M9XCJoZWFkZXItZmlsdGVyLWljb24tYnV0dG9uXCIgKGNsaWNrKT1cInNldEZpbHRlclR5cGUoRmlsdGVyVHlwZS5OdW1iZXJFcXVhbHMpXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydjaG9zZW4taWNvbic6IG15RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5OdW1iZXJFcXVhbHMgfVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VmZml4LWljb25zXCI+PTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAobWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQm9vbGVhbikge1xyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNlYXJjaC1pY29uXCI+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgc3RvcC1wcm9wYWdhdGlvbiAjY3RybD1cIm1hdFJhZGlvR3JvdXBcIiAjYm9vbEZpZWxkPSduZ01vZGVsJyBjbGFzcz1cImZvbnRcIiBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJteUZpbHRlclZhbHVlXCIgPlxyXG4gICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cImZpbHRlci1yYWRpby1idXR0b25cIiAoY2xpY2spPVwibXlGaWx0ZXJWYWx1ZSA9IHRydWU7XCIgW3ZhbHVlXT1cInRydWVcIj5UcnVlPC9tYXQtcmFkaW8tYnV0dG9uPjxici8+XHJcbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwiZmlsdGVyLXJhZGlvLWJ1dHRvblwiIChjbGljayk9XCJteUZpbHRlclZhbHVlID0gZmFsc2VcIiBbdmFsdWVdPVwiZmFsc2VcIj5GYWxzZTwvbWF0LXJhZGlvLWJ1dHRvbj48YnIvPlxyXG4gICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2UgaWYgKG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkRhdGUgfHwgbWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZVRpbWUpIHtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmb250IGF1dG8td2lkdGhcIiBzdG9wLXByb3BhZ2F0aW9uID5cclxuICAgICAgICAgIDxzcGFuIG1hdFByZWZpeCBjbGFzcz1cInRiLWhlYWRlci1wcmVmaXhcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZVJpcHBsZSBjbGFzcz1cImhlYWRlci1maWx0ZXItaWNvbi1idXR0b25cIiAoY2xpY2spPVwic2V0RmlsdGVyVHlwZShGaWx0ZXJUeXBlLkRhdGVPbk9yQWZ0ZXIpXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Nob3Nlbi1pY29uJzogbXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLkRhdGVPbk9yQWZ0ZXIgfVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAgY2xhc3M9XCJzdWZmaXgtaWNvbnMgdW5kZXJsaW5lXCI+YXJyb3dfZm9yd2FyZF9pb3M8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZVJpcHBsZSBjbGFzcz1cImhlYWRlci1maWx0ZXItaWNvbi1idXR0b25cIiAoY2xpY2spPVwic2V0RmlsdGVyVHlwZShGaWx0ZXJUeXBlLkRhdGVPbk9yQmVmb3JlKVwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydjaG9zZW4taWNvbic6IG15RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlT25PckJlZm9yZSAgfVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiAgY2xhc3M9XCJzdWZmaXgtaWNvbnMgdW5kZXJsaW5lXCI+YXJyb3dfYmFja19pb3M8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGlzYWJsZVJpcHBsZSBjbGFzcz1cImhlYWRlci1maWx0ZXItaWNvbi1idXR0b25cIiAoY2xpY2spPVwic2V0RmlsdGVyVHlwZShGaWx0ZXJUeXBlLkRhdGVJc09uKVwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydjaG9zZW4taWNvbic6IG15RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlSXNPbiB9XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gIGNsYXNzPVwic3VmZml4LWljb25zIHVuZGVybGluZVwiPiA9PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3tteUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuRGF0ZUlzT24gPyAnT24uLi4nIDpcclxuICAgICAgICAgICAgbXlGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLkRhdGVPbk9yQmVmb3JlID8gJ09uIG9yIEJlZm9yZS4uLicgOiAnT24gb3IgQWZ0ZXIuLi4nfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJmaWx0ZXIuZmlsdGVyVmFsdWVcIiBbbWF0RGF0ZXBpY2tlcl09XCJjYWxlbmRhclwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjYWxlbmRhci5vcGVuKClcIi8+XHJcbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIGNsYXNzPVwiZGF0ZS10b2dnbGUgaGVhZGVyLWZpbHRlci1pY29uLWJ1dHRvblwiIG1hdFN1ZmZpeCBbZm9yXT1cImNhbGVuZGFyXCIgcHJldmVudEVudGVyPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNjYWxlbmRhcj48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJvbkVudGVyKG15Rm9ybS52YWx1ZSlcIiBbZGlzYWJsZWRdPVwibXlGb3JtLnZhbHVlLmZpbHRlclZhbHVlID09IHVuZGVmaW5lZFwiIGRpc2FibGVSaXBwbGU+XHJcbiAgICAgICAgQXBwbHlcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLWZvcm0+XHJcbiAgfVxyXG48L21hdC1tZW51PlxyXG4iXX0=
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ChangeDetectorRef, inject } from '@angular/core';
|
|
2
2
|
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { FieldType } from '../../interfaces/report-def';
|
|
4
4
|
import { AutoFocusDirective } from '../../../utilities';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/forms";
|
|
7
7
|
export class InFilterComponent {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.onTouched = () => { };
|
|
8
|
+
ref = inject(ChangeDetectorRef);
|
|
9
|
+
FieldType = FieldType;
|
|
10
|
+
type;
|
|
11
|
+
value = [undefined];
|
|
12
|
+
constructor() {
|
|
14
13
|
this.value = [undefined];
|
|
15
14
|
}
|
|
16
15
|
writeValue(obj) {
|
|
@@ -19,9 +18,11 @@ export class InFilterComponent {
|
|
|
19
18
|
this.value = obj;
|
|
20
19
|
this.ref.markForCheck();
|
|
21
20
|
}
|
|
21
|
+
onChange = (_) => { };
|
|
22
22
|
registerOnChange(fn) {
|
|
23
23
|
this.onChange = fn;
|
|
24
24
|
}
|
|
25
|
+
onTouched = () => { };
|
|
25
26
|
registerOnTouched(fn) {
|
|
26
27
|
this.onTouched = fn;
|
|
27
28
|
}
|
|
@@ -42,14 +43,14 @@ export class InFilterComponent {
|
|
|
42
43
|
this.ref.markForCheck();
|
|
43
44
|
this.onChange(this.value);
|
|
44
45
|
}
|
|
45
|
-
static
|
|
46
|
-
static
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: InFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: InFilterComponent, isStandalone: true, selector: "lib-in-filter", inputs: { type: "type" }, providers: [{
|
|
47
48
|
provide: NG_VALUE_ACCESSOR,
|
|
48
49
|
useExisting: InFilterComponent,
|
|
49
50
|
multi: true
|
|
50
|
-
}], ngImport: i0, template: "<div class=inline>\r\n @for (val of value; track $index) {\r\n <div>\r\n @if(type === FieldType.Number || type === FieldType.Currency){\r\n <input [ngModel]=\"val\" (ngModelChange)=\"onValueChange($index, $event)\"\r\n [readonly]=\"$index + 1 < value.length\" type=\"number\" [ngModelOptions]=\"{standalone:true}\" [autoFocus]=\"$index === value.length - 1\"/>\r\n }\r\n @else {\r\n <input [ngModel]=\"val\" (ngModelChange)=\"onValueChange($index ,$event)\"\r\n [readonly]=\"$index + 1 < value.length\" type=\"string\" [ngModelOptions]=\"{standalone:true}\"\r\n #input [autoFocus]=\"$index === value.length - 1\" />\r\n }\r\n </div>\r\n <button [disabled]=\"value.length <= 1\" (click)=\"removeInput($index)\">-</button>\r\n @if ($index === value.length - 1) {\r\n <button [disabled]=\"val == undefined || val === ''\" (click)=\"addInput()\">+</button>\r\n }\r\n \r\n }\r\n</div>\r\n", styles: [".inline{display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoFocusDirective, selector: "[autoFocus]", inputs: ["autoFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
51
|
+
}], ngImport: i0, template: "<div class=inline>\r\n @for (val of value; track $index) {\r\n <div>\r\n @if(type === FieldType.Number || type === FieldType.Currency){\r\n <input [ngModel]=\"val\" (ngModelChange)=\"onValueChange($index, $event)\"\r\n [readonly]=\"$index + 1 < value.length\" type=\"number\" [ngModelOptions]=\"{standalone:true}\" [autoFocus]=\"$index === value.length - 1\"/>\r\n }\r\n @else {\r\n <input [ngModel]=\"val\" (ngModelChange)=\"onValueChange($index ,$event)\"\r\n [readonly]=\"$index + 1 < value.length\" type=\"string\" [ngModelOptions]=\"{standalone:true}\"\r\n #input [autoFocus]=\"$index === value.length - 1\" />\r\n }\r\n </div>\r\n <button [disabled]=\"value.length <= 1\" (click)=\"removeInput($index)\">-</button>\r\n @if ($index === value.length - 1) {\r\n <button [disabled]=\"val == undefined || val === ''\" (click)=\"addInput()\">+</button>\r\n }\r\n \r\n }\r\n</div>\r\n", styles: [".inline{display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutoFocusDirective, selector: "[autoFocus]", inputs: ["autoFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
51
52
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: InFilterComponent, decorators: [{
|
|
53
54
|
type: Component,
|
|
54
55
|
args: [{ selector: 'lib-in-filter', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{
|
|
55
56
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -58,7 +59,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
58
59
|
}], standalone: true, imports: [
|
|
59
60
|
FormsModule, AutoFocusDirective
|
|
60
61
|
], template: "<div class=inline>\r\n @for (val of value; track $index) {\r\n <div>\r\n @if(type === FieldType.Number || type === FieldType.Currency){\r\n <input [ngModel]=\"val\" (ngModelChange)=\"onValueChange($index, $event)\"\r\n [readonly]=\"$index + 1 < value.length\" type=\"number\" [ngModelOptions]=\"{standalone:true}\" [autoFocus]=\"$index === value.length - 1\"/>\r\n }\r\n @else {\r\n <input [ngModel]=\"val\" (ngModelChange)=\"onValueChange($index ,$event)\"\r\n [readonly]=\"$index + 1 < value.length\" type=\"string\" [ngModelOptions]=\"{standalone:true}\"\r\n #input [autoFocus]=\"$index === value.length - 1\" />\r\n }\r\n </div>\r\n <button [disabled]=\"value.length <= 1\" (click)=\"removeInput($index)\">-</button>\r\n @if ($index === value.length - 1) {\r\n <button [disabled]=\"val == undefined || val === ''\" (click)=\"addInput()\">+</button>\r\n }\r\n \r\n }\r\n</div>\r\n", styles: [".inline{display:inline-block}\n"] }]
|
|
61
|
-
}], ctorParameters: () => [
|
|
62
|
+
}], ctorParameters: () => [], propDecorators: { type: [{
|
|
62
63
|
type: Input
|
|
63
64
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvaW4tZmlsdGVyL2luLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2luLWZpbHRlci9pbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFpQnhELE1BQU0sT0FBTyxpQkFBaUI7SUFDcEIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXhDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDYixJQUFJLENBQWM7SUFDM0IsS0FBSyxHQUFvQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXJEO1FBQ0UsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBVTtRQUNuQixJQUFHLENBQUMsR0FBRyxFQUFFLE1BQU07WUFBRSxHQUFHLEdBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxRQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUzQixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxTQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYSxDQUFDLENBQVEsRUFBQyxLQUFzQjtRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO3VHQTNDVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixzRkFWakIsQ0FBQztnQkFDVixPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsMEJDZEoscThCQW9CQSx3RkRISSxXQUFXLGl4QkFBRSxrQkFBa0I7OzJGQUd0QixpQkFBaUI7a0JBZjdCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ25DLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxtQkFBbUI7NEJBQzlCLEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMsY0FDVSxJQUFJLFdBQ1A7d0JBQ1AsV0FBVyxFQUFFLGtCQUFrQjtxQkFDaEM7d0RBTVEsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgQXV0b0ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWluLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2luLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW4tZmlsdGVyLmNvbXBvbmVudC5jc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IEluRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvcm1zTW9kdWxlLCBBdXRvRm9jdXNEaXJlY3RpdmVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbkZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBwcml2YXRlIHJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcblxyXG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcclxuICBASW5wdXQoKSB0eXBlISA6IEZpZWxkVHlwZTtcclxuICB2YWx1ZTogKHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZClbXSA9IFt1bmRlZmluZWRdO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMudmFsdWUgPSBbdW5kZWZpbmVkXTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueVtdKTogdm9pZCB7XHJcbiAgICBpZighb2JqPy5sZW5ndGgpIG9iaiAgPSBbdW5kZWZpbmVkXTtcclxuICAgIHRoaXMudmFsdWUgPSBvYmo7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICBvblRvdWNoZWQgPSAoKSA9PiB7IH07XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIGFkZElucHV0KCl7XHJcbiAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIHVuZGVmaW5lZF07XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVJbnB1dChpbmRleDogbnVtYmVyKXtcclxuICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy52YWx1ZV07XHJcbiAgICB0aGlzLnZhbHVlLnNwbGljZShpbmRleCwxKTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoaTpudW1iZXIsdmFsdWU6IG51bWJlciB8IHN0cmluZyl7XHJcbiAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWVdO1xyXG4gICAgdGhpcy52YWx1ZVtpXSA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1pbmxpbmU+XHJcbiAgQGZvciAodmFsIG9mIHZhbHVlOyB0cmFjayAkaW5kZXgpIHtcclxuICAgIDxkaXY+XHJcbiAgICAgIEBpZih0eXBlID09PSBGaWVsZFR5cGUuTnVtYmVyIHx8IHR5cGUgPT09IEZpZWxkVHlwZS5DdXJyZW5jeSl7XHJcbiAgICAgICAgPGlucHV0IFtuZ01vZGVsXT1cInZhbFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGluZGV4LCAkZXZlbnQpXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwiJGluZGV4ICsgMSA8IHZhbHVlLmxlbmd0aFwiIHR5cGU9XCJudW1iZXJcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6dHJ1ZX1cIiBbYXV0b0ZvY3VzXT1cIiRpbmRleCA9PT0gdmFsdWUubGVuZ3RoIC0gMVwiLz5cclxuICAgICAgfVxyXG4gICAgICBAZWxzZSB7XHJcbiAgICAgICAgPGlucHV0IFtuZ01vZGVsXT1cInZhbFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGluZGV4ICwkZXZlbnQpXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwiJGluZGV4ICsgMSA8IHZhbHVlLmxlbmd0aFwiIHR5cGU9XCJzdHJpbmdcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6dHJ1ZX1cIlxyXG4gICAgICAgICNpbnB1dCBbYXV0b0ZvY3VzXT1cIiRpbmRleCA9PT0gdmFsdWUubGVuZ3RoIC0gMVwiIC8+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidmFsdWUubGVuZ3RoIDw9IDFcIiAoY2xpY2spPVwicmVtb3ZlSW5wdXQoJGluZGV4KVwiPi08L2J1dHRvbj5cclxuICAgIEBpZiAoJGluZGV4ID09PSB2YWx1ZS5sZW5ndGggLSAxKSB7XHJcbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInZhbCA9PSB1bmRlZmluZWQgfHwgdmFsID09PSAnJ1wiIChjbGljayk9XCJhZGRJbnB1dCgpXCI+KzwvYnV0dG9uPlxyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
package/esm2022/table-builder/components/initialization-component/initialization-component.mjs
CHANGED
|
@@ -6,10 +6,17 @@ import { FunctionPipe } from "../../../utilities";
|
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/material/icon";
|
|
8
8
|
export class InitializationComponent {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
linkTemplate;
|
|
10
|
+
routerLinkTemplate;
|
|
11
|
+
imageUrlTemplate;
|
|
12
|
+
arrayNewLineTemplate;
|
|
13
|
+
arrayCommaTemplate;
|
|
14
|
+
defaultTemplate;
|
|
15
|
+
defaultWithIcon;
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: InitializationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: InitializationComponent, isStandalone: true, selector: "initialization", viewQueries: [{ propertyName: "linkTemplate", first: true, predicate: ["link"], descendants: true, static: true }, { propertyName: "routerLinkTemplate", first: true, predicate: ["routerLink"], descendants: true, static: true }, { propertyName: "imageUrlTemplate", first: true, predicate: ["imageUrl"], descendants: true, static: true }, { propertyName: "arrayNewLineTemplate", first: true, predicate: ["arrayNewLine"], descendants: true, static: true }, { propertyName: "arrayCommaTemplate", first: true, predicate: ["arrayComma"], 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-value='value' let-element='element' let-additional=\"additional\">\r\n <tb-link-column [element]=\"element\" [value]=\"value\" [additional]=\"additional\" />\r\n</ng-template>\r\n\r\n<ng-template #routerLink let-value='value' let-element='element' let-additional=\"additional\">\r\n <tb-router-link-column [element]=\"element\" [value]=\"value\" [additional]=\"additional\"/>\r\n</ng-template>\r\n\r\n<ng-template #imageUrl let-value='value'>\r\n <span>\r\n <img src=\"{{value}}\" height=\"75px\" width=\"75px\" />\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #arrayNewLine let-value='value' let-element='element' let-additional=\"additional\">\r\n <tb-new-line-array-column [value]='value' [additional]='additional'/>\r\n</ng-template>\r\n\r\n<ng-template #arrayComma let-value='value' let-element='element' let-additional=\"additional\">\r\n <tb-comma-array-column [value]='value' [additional]='additional'/>\r\n</ng-template>\r\n\r\n<ng-template #default let-value='value'>\r\n <span>{{ value }}</span>\r\n</ng-template>\r\n\r\n<ng-template #defaultWithIcon let-value='value'>\r\n <mat-icon>{{ value}}</mat-icon>\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: LinkColumnComponent, selector: "tb-link-column", inputs: ["value", "element", "additional"] }, { kind: "component", type: ArrayCommaColumnComponent, selector: "tb-comma-array-column", inputs: ["value", "additional"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: RouterLinkColumnComponent, selector: "tb-router-link-column", inputs: ["additional", "element", "value"] }, { kind: "component", type: ArrayNewLineColumnComponent, selector: "tb-new-line-array-column", inputs: ["value", "additional"] }] });
|
|
11
18
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: InitializationComponent, decorators: [{
|
|
13
20
|
type: Component,
|
|
14
21
|
args: [{ selector: 'initialization', standalone: true, imports: [
|
|
15
22
|
LinkColumnComponent, ArrayCommaColumnComponent, MatIconModule, FunctionPipe,
|
|
@@ -37,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
37
44
|
type: ViewChild,
|
|
38
45
|
args: ['defaultWithIcon', { static: true }]
|
|
39
46
|
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6YXRpb24tY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9pbml0aWFsaXphdGlvbi1jb21wb25lbnQvaW5pdGlhbGl6YXRpb24tY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9pbml0aWFsaXphdGlvbi1jb21wb25lbnQvaW5pdGlhbGl6YXRpb24tY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBV2xELE1BQU0sT0FBTyx1QkFBdUI7SUFDQyxZQUFZLENBQXFCO0lBQzNCLGtCQUFrQixDQUFxQjtJQUN6QyxnQkFBZ0IsQ0FBcUI7SUFDakMsb0JBQW9CLENBQXFCO0lBQzNDLGtCQUFrQixDQUFxQjtJQUMxQyxlQUFlLENBQXFCO0lBQzVCLGVBQWUsQ0FBcUI7dUdBUHZFLHVCQUF1QjsyRkFBdkIsdUJBQXVCLGcyQkNmcEMsOHBDQTZCQSw0Q0RsQlEsbUJBQW1CLHVHQUFFLHlCQUF5QixrR0FBRSxhQUFhLG9MQUM3RCx5QkFBeUIsOEdBQUUsMkJBQTJCOzsyRkFHakQsdUJBQXVCO2tCQVRuQyxTQUFTOytCQUNJLGdCQUFnQixjQUVkLElBQUksV0FDUDt3QkFDTCxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxhQUFhLEVBQUUsWUFBWTt3QkFDM0UseUJBQXlCLEVBQUUsMkJBQTJCO3FCQUN6RDs4QkFHZ0MsWUFBWTtzQkFBOUMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNRLGtCQUFrQjtzQkFBMUQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNBLGdCQUFnQjtzQkFBdEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNNLG9CQUFvQjtzQkFBOUQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNBLGtCQUFrQjtzQkFBMUQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNELGVBQWU7c0JBQXBELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDVSxlQUFlO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IExpbmtDb2x1bW5Db21wb25lbnQsIFJvdXRlckxpbmtDb2x1bW5Db21wb25lbnQgfSBmcm9tIFwiLi4vbGluay1jb2x1bW4uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFycmF5Q29tbWFDb2x1bW5Db21wb25lbnQsIEFycmF5TmV3TGluZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gXCIuLi9hcnJheS1jb2x1bW4uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQgeyBGdW5jdGlvblBpcGUgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaW5pdGlhbGl6YXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2luaXRpYWxpemF0aW9uLWNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgTGlua0NvbHVtbkNvbXBvbmVudCwgQXJyYXlDb21tYUNvbHVtbkNvbXBvbmVudCwgTWF0SWNvbk1vZHVsZSwgRnVuY3Rpb25QaXBlLFxyXG4gICAgICAgIFJvdXRlckxpbmtDb2x1bW5Db21wb25lbnQsIEFycmF5TmV3TGluZUNvbHVtbkNvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5pdGlhbGl6YXRpb25Db21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2xpbmsnLCB7c3RhdGljOiB0cnVlfSkgbGlua1RlbXBsYXRlISA6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgncm91dGVyTGluaycsIHtzdGF0aWM6IHRydWV9KSByb3V0ZXJMaW5rVGVtcGxhdGUhIDogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdpbWFnZVVybCcsIHtzdGF0aWM6IHRydWV9KSBpbWFnZVVybFRlbXBsYXRlISA6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnYXJyYXlOZXdMaW5lJywge3N0YXRpYzogdHJ1ZX0pIGFycmF5TmV3TGluZVRlbXBsYXRlISA6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnYXJyYXlDb21tYScsIHtzdGF0aWM6IHRydWV9KSBhcnJheUNvbW1hVGVtcGxhdGUhIDogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdkZWZhdWx0Jywge3N0YXRpYzogdHJ1ZX0pIGRlZmF1bHRUZW1wbGF0ZSEgOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2RlZmF1bHRXaXRoSWNvbicsIHtzdGF0aWM6IHRydWV9KSBkZWZhdWx0V2l0aEljb24hIDogVGVtcGxhdGVSZWY8YW55PjtcclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2xpbmsgIGxldC12YWx1ZT0ndmFsdWUnIGxldC1lbGVtZW50PSdlbGVtZW50JyBsZXQtYWRkaXRpb25hbD1cImFkZGl0aW9uYWxcIj5cclxuICA8dGItbGluay1jb2x1bW4gW2VsZW1lbnRdPVwiZWxlbWVudFwiIFt2YWx1ZV09XCJ2YWx1ZVwiIFthZGRpdGlvbmFsXT1cImFkZGl0aW9uYWxcIiAvPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNyb3V0ZXJMaW5rICBsZXQtdmFsdWU9J3ZhbHVlJyBsZXQtZWxlbWVudD0nZWxlbWVudCcgbGV0LWFkZGl0aW9uYWw9XCJhZGRpdGlvbmFsXCI+XHJcbiAgPHRiLXJvdXRlci1saW5rLWNvbHVtbiBbZWxlbWVudF09XCJlbGVtZW50XCIgW3ZhbHVlXT1cInZhbHVlXCIgW2FkZGl0aW9uYWxdPVwiYWRkaXRpb25hbFwiLz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaW1hZ2VVcmwgIGxldC12YWx1ZT0ndmFsdWUnPlxyXG4gIDxzcGFuPlxyXG4gICAgPGltZyBzcmM9XCJ7e3ZhbHVlfX1cIiBoZWlnaHQ9XCI3NXB4XCIgd2lkdGg9XCI3NXB4XCIgLz5cclxuICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2FycmF5TmV3TGluZSBsZXQtdmFsdWU9J3ZhbHVlJyBsZXQtZWxlbWVudD0nZWxlbWVudCcgbGV0LWFkZGl0aW9uYWw9XCJhZGRpdGlvbmFsXCI+XHJcbiAgPHRiLW5ldy1saW5lLWFycmF5LWNvbHVtbiBbdmFsdWVdPSd2YWx1ZScgW2FkZGl0aW9uYWxdPSdhZGRpdGlvbmFsJy8+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2FycmF5Q29tbWEgbGV0LXZhbHVlPSd2YWx1ZScgbGV0LWVsZW1lbnQ9J2VsZW1lbnQnIGxldC1hZGRpdGlvbmFsPVwiYWRkaXRpb25hbFwiPlxyXG4gIDx0Yi1jb21tYS1hcnJheS1jb2x1bW4gW3ZhbHVlXT0ndmFsdWUnIFthZGRpdGlvbmFsXT0nYWRkaXRpb25hbCcvPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0IGxldC12YWx1ZT0ndmFsdWUnPlxyXG4gIDxzcGFuPnt7IHZhbHVlIH19PC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0V2l0aEljb24gIGxldC12YWx1ZT0ndmFsdWUnPlxyXG4gIDxtYXQtaWNvbj57eyB2YWx1ZX19PC9tYXQtaWNvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -3,16 +3,14 @@ import { RouterModule } from "@angular/router";
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/router";
|
|
5
5
|
export class RouterLinkColumnComponent {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RouterLinkColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.2", type: RouterLinkColumnComponent, isStandalone: true, selector: "tb-router-link-column", inputs: { additional: { classPropertyName: "additional", publicName: "additional", isSignal: true, isRequired: true, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
6
|
+
additional = input.required();
|
|
7
|
+
element = input.required();
|
|
8
|
+
value = input.required();
|
|
9
|
+
link = computed(() => this.additional().link(this.element()));
|
|
10
|
+
queryParams = computed(() => this.additional().routerLinkOptions.queryParams(this.element()));
|
|
11
|
+
routerLinkOptions = computed(() => this.additional().routerLinkOptions);
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: RouterLinkColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: RouterLinkColumnComponent, isStandalone: true, selector: "tb-router-link-column", inputs: { additional: { classPropertyName: "additional", publicName: "additional", isSignal: true, isRequired: true, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
16
14
|
<a target="{{additional().target}}"
|
|
17
15
|
[routerLink]=" [link()]"
|
|
18
16
|
[queryParams]="queryParams()"
|
|
@@ -22,9 +20,9 @@ export class RouterLinkColumnComponent {
|
|
|
22
20
|
>
|
|
23
21
|
{{value()}}
|
|
24
22
|
</a>
|
|
25
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
23
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
26
24
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: RouterLinkColumnComponent, decorators: [{
|
|
28
26
|
type: Component,
|
|
29
27
|
args: [{
|
|
30
28
|
selector: "tb-router-link-column",
|
|
@@ -47,21 +45,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
47
45
|
}]
|
|
48
46
|
}] });
|
|
49
47
|
export class LinkColumnComponent {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: LinkColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.2", type: LinkColumnComponent, isStandalone: true, selector: "tb-link-column", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, additional: { classPropertyName: "additional", publicName: "additional", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
48
|
+
value = input.required();
|
|
49
|
+
element = input.required();
|
|
50
|
+
additional = input.required();
|
|
51
|
+
link = computed(() => this.additional().link(this.element()));
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LinkColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: LinkColumnComponent, isStandalone: true, selector: "tb-link-column", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, additional: { classPropertyName: "additional", publicName: "additional", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
58
54
|
<a target="{{additional().target}}"
|
|
59
55
|
href="{{link()}}">
|
|
60
56
|
{{value()}}
|
|
61
57
|
</a>
|
|
62
|
-
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
58
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
63
59
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: LinkColumnComponent, decorators: [{
|
|
65
61
|
type: Component,
|
|
66
62
|
args: [{
|
|
67
63
|
selector: "tb-link-column",
|
|
@@ -75,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
75
71
|
`
|
|
76
72
|
}]
|
|
77
73
|
}] });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9saW5rLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBcUI3QyxNQUFNLE9BQU8seUJBQXlCO0lBQ3RDLFVBQVUsR0FBSSxLQUFLLENBQUMsUUFBUSxFQUFZLENBQUM7SUFDekMsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUNoQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ2pDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlELFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGlCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9GLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsaUJBQWtCLENBQUMsQ0FBQzt1R0FONUQseUJBQXlCOzJGQUF6Qix5QkFBeUIsdWRBWDVCOzs7Ozs7Ozs7O0dBVVQsMkRBWkMsWUFBWTs7MkZBYUQseUJBQXlCO2tCQWxCdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7OztHQVVUO2lCQUNGOztBQW1CQyxNQUFNLE9BQU8sbUJBQW1CO0lBQ2hDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7SUFDakMsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUNoQyxVQUFVLEdBQUksS0FBSyxDQUFDLFFBQVEsRUFBWSxDQUFDO0lBQ3pDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO3VHQUpqRCxtQkFBbUI7MkZBQW5CLG1CQUFtQixnZEFOdEI7Ozs7O0dBS1Q7OzJGQUNZLG1CQUFtQjtrQkFWakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7Ozs7R0FLVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTGlua0luZm8gfSBmcm9tIFwiLi4vc2VydmljZXMvbGluay1jcmVhdG9yLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInRiLXJvdXRlci1saW5rLWNvbHVtblwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgUm91dGVyTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIDxhIHRhcmdldD1cInt7YWRkaXRpb25hbCgpLnRhcmdldH19XCJcclxuICAgIFtyb3V0ZXJMaW5rXT1cIiBbbGluaygpXVwiXHJcbiAgICBbcXVlcnlQYXJhbXNdPVwicXVlcnlQYXJhbXMoKVwiXHJcbiAgICBbZnJhZ21lbnRdPVwicm91dGVyTGlua09wdGlvbnMoKS5mcmFnbWVudFwiXHJcbiAgICBbcHJlc2VydmVGcmFnbWVudF09XCJyb3V0ZXJMaW5rT3B0aW9ucygpLnByZXNlcnZlRnJhZ21lbnRcIlxyXG4gICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwicm91dGVyTGlua09wdGlvbnMoKS5xdWVyeVBhcmFtc0hhbmRsaW5nXCJcclxuICA+XHJcbiAgICB7e3ZhbHVlKCl9fVxyXG4gIDwvYT5cclxuICBgXHJcbn0pZXhwb3J0IGNsYXNzIFJvdXRlckxpbmtDb2x1bW5Db21wb25lbnQge1xyXG4gIGFkZGl0aW9uYWwgPSAgaW5wdXQucmVxdWlyZWQ8TGlua0luZm8+KCk7XHJcbiAgZWxlbWVudCA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcclxuICB2YWx1ZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuICBsaW5rID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hZGRpdGlvbmFsKCkubGluayh0aGlzLmVsZW1lbnQoKSkpO1xyXG4gIHF1ZXJ5UGFyYW1zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hZGRpdGlvbmFsKCkucm91dGVyTGlua09wdGlvbnMhLnF1ZXJ5UGFyYW1zKHRoaXMuZWxlbWVudCgpKSk7XHJcbiAgcm91dGVyTGlua09wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmFkZGl0aW9uYWwoKS5yb3V0ZXJMaW5rT3B0aW9ucyEpO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJ0Yi1saW5rLWNvbHVtblwiLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgdGVtcGxhdGU6IGBcclxuICA8YSB0YXJnZXQ9XCJ7e2FkZGl0aW9uYWwoKS50YXJnZXR9fVwiXHJcbiAgICAgIGhyZWY9XCJ7e2xpbmsoKX19XCI+XHJcbiAgICAgIHt7dmFsdWUoKX19XHJcbiAgPC9hPlxyXG4gIGBcclxufSlleHBvcnQgY2xhc3MgTGlua0NvbHVtbkNvbXBvbmVudCB7XHJcbiAgdmFsdWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgZWxlbWVudCA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcclxuICBhZGRpdGlvbmFsID0gIGlucHV0LnJlcXVpcmVkPExpbmtJbmZvPigpO1xyXG4gIGxpbmsgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmFkZGl0aW9uYWwoKS5saW5rKHRoaXMuZWxlbWVudCgpKSk7XHJcbn0iXX0=
|