@one-paragon/angular-utilities 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +3 -3
- package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +4 -4
- package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +4 -4
- package/esm2022/http-request-state/HttpRequestStateFactory.mjs +3 -3
- package/esm2022/http-request-state/HttpRequestStateStore.mjs +3 -3
- package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +3 -3
- package/esm2022/http-request-state/directives/http-error-state-directive.mjs +3 -3
- package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +3 -3
- package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +3 -3
- package/esm2022/http-request-state/directives/http-success-state-directive.mjs +3 -3
- package/esm2022/http-request-state/directives/request-state-directive.mjs +3 -3
- package/esm2022/http-request-state/http-state-module.mjs +4 -4
- package/esm2022/rxjs/subscriber.directive.mjs +3 -3
- package/esm2022/table-builder/classes/table-store.mjs +3 -3
- package/esm2022/table-builder/components/array-column.component.mjs +6 -6
- package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +5 -5
- package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/filter/filter.component.mjs +4 -4
- package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +5 -5
- package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +4 -4
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +4 -4
- package/esm2022/table-builder/components/generic-table/paginator.component.mjs +3 -3
- package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +4 -4
- package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +4 -4
- package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +3 -3
- package/esm2022/table-builder/components/link-column.component.mjs +6 -6
- package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +4 -4
- package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +3 -3
- package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +4 -4
- package/esm2022/table-builder/components/table-container/table-container.mjs +3 -3
- package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +3 -3
- package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +4 -4
- package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +3 -3
- package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +3 -3
- package/esm2022/table-builder/directives/custom-cell-directive.mjs +3 -3
- package/esm2022/table-builder/directives/multi-sort.directive.mjs +3 -3
- package/esm2022/table-builder/directives/resize-column.directive.mjs +3 -3
- package/esm2022/table-builder/directives/table-wrapper.directive.mjs +3 -3
- package/esm2022/table-builder/directives/tb-filter.directive.mjs +30 -30
- package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +3 -3
- package/esm2022/table-builder/pipes/column-total.pipe.mjs +3 -3
- package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +3 -3
- package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +3 -3
- package/esm2022/table-builder/pipes/key-display.mjs +3 -3
- package/esm2022/table-builder/services/export-to-csv.service.mjs +3 -3
- package/esm2022/table-builder/services/table-template-service.mjs +3 -3
- package/esm2022/table-builder/services/transform-creator.mjs +3 -3
- package/esm2022/table-builder/table-builder.module.mjs +4 -4
- package/esm2022/utilities/directives/auto-focus.directive.mjs +3 -3
- package/esm2022/utilities/directives/clickEmitterDirective.mjs +3 -3
- package/esm2022/utilities/directives/clickSubject.mjs +3 -3
- package/esm2022/utilities/directives/conditional-classes.directive.mjs +3 -3
- package/esm2022/utilities/directives/dialog-service.mjs +3 -3
- package/esm2022/utilities/directives/dialog.mjs +6 -6
- package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +3 -3
- package/esm2022/utilities/directives/prevent-enter.directive.mjs +3 -3
- package/esm2022/utilities/directives/stop-propagation.directive.mjs +3 -3
- package/esm2022/utilities/directives/styler.mjs +3 -3
- package/esm2022/utilities/directives/trim-whitespace.directive.mjs +3 -3
- package/esm2022/utilities/module.mjs +4 -4
- package/esm2022/utilities/pipes/function.pipe.mjs +3 -3
- package/esm2022/utilities/pipes/phone.pipe.mjs +3 -3
- package/esm2022/utilities/pipes/space-case.pipes.mjs +3 -3
- package/fesm2022/one-paragon-angular-utilities.mjs +241 -241
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
- package/package.json +1 -1
- package/table-builder/components/table-container/table-container-imports.d.ts +1 -1
|
@@ -11,13 +11,13 @@ export class GroupByListComponent {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
this.tableStore = inject(TableStore);
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GroupByListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GroupByListComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'group-by-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
20
20
|
MatChipsModule, LetDirective, MatIconModule, SpaceCasePipe
|
|
21
21
|
], 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
22
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dyb3VwLWJ5LWxpc3QvZ3JvdXAtYnktbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dyb3VwLWJ5LWxpc3QvZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBWW5ELE1BQU0sT0FBTyxvQkFBb0I7SUFWakM7UUFZRSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ2pDOzhHQUhZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHlFQ2pCakMscWVBWUEsOElERUksY0FBYyx1Z0JBQUUsWUFBWSxnR0FBRSxhQUFhLCtLQUFFLGFBQWE7OzJGQUdqRCxvQkFBb0I7a0JBVmhDLFNBQVM7K0JBQ0UsZUFBZSxjQUdiLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxjQUFjLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhO3FCQUMzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBMZXREaXJlY3RpdmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFNwYWNlQ2FzZVBpcGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdncm91cC1ieS1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRDaGlwc01vZHVsZSwgTGV0RGlyZWN0aXZlLCBNYXRJY29uTW9kdWxlLCBTcGFjZUNhc2VQaXBlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JvdXBCeUxpc3RDb21wb25lbnQge1xyXG4gIFxyXG4gIHRhYmxlU3RvcmUgPSBpbmplY3QoVGFibGVTdG9yZSk7XHJcbn1cclxuIiwiPG1hdC1jaGlwLXNldCAqbmdyeExldD1cInRhYmxlU3RvcmUuZ3JvdXBCeUtleXMkIGFzIGdyb3VwQnlLZXlzXCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJ0Yi1ncm91cC1sYWJlbFwiPkdyb3VwIEJ5Ojwvc3Bhbj5cclxuICBAZm9yIChncm91cEJ5S2V5IG9mIGdyb3VwQnlLZXlzOyB0cmFjayBncm91cEJ5S2V5KSB7XHJcbiAgICBAaWYoJGluZGV4ID4gMCl7XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm5lc3RlZC1hcnJvd1wiPmFycm93X3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgIH1cclxuICAgIDxtYXQtY2hpcCAocmVtb3ZlZCk9XCJ0YWJsZVN0b3JlLnJlbW92ZUdyb3VwQnlLZXkoZ3JvdXBCeUtleSlcIj5cclxuICAgICAge3tncm91cEJ5S2V5IHwgc3BhY2VDYXNlfX1cclxuICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgIDwvbWF0LWNoaXA+XHJcbiAgfVxyXG48L21hdC1jaGlwLXNldD5cclxuIl19
|
|
@@ -82,10 +82,10 @@ export class HeaderMenuComponent {
|
|
|
82
82
|
this.trigger.closeMenu();
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
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 }); }
|
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HeaderMenuComponent, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
86
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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", "disabledInteractive"], 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", "disabledInteractive"], 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 }); }
|
|
87
87
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HeaderMenuComponent, decorators: [{
|
|
89
89
|
type: Component,
|
|
90
90
|
args: [{ selector: 'tb-header-menu', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
91
91
|
MatMenuModule, MatIconModule, MatButtonModule, FormsModule, InListFilterComponent,
|
|
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
97
97
|
type: ViewChild,
|
|
98
98
|
args: [MatMenuTrigger]
|
|
99
99
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsU0FBUyxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVB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Q0gsQ0FBQzs4R0FwRVUsbUJBQW1CO2tHQUFuQixtQkFBbUIscUpBU25CLGNBQWMsZ0RDckMzQixtc05Bd0dBLGt6RERoRkksYUFBYSw2dkJBQUUsYUFBYSxtTEFBRSxlQUFlLHdVQUFFLFdBQVcscThCQUFFLHFCQUFxQixvR0FDakYsY0FBYyx3M0JBQUUsZ0JBQWdCLDZUQUFFLE9BQU8sb0ZBQUUsd0JBQXdCLDhEQUFFLGNBQWMsc2lCQUFFLG1CQUFtQjs7MkZBRy9GLG1CQUFtQjtrQkFYL0IsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLHFCQUFxQjt3QkFDakYsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsbUJBQW1CO3FCQUN6RzsrRUFVUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNxQixPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJJbmZvIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluTGlzdEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci9pbi1saXN0L2luLWxpc3QtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWhlYWRlci1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRNZW51TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBJbkxpc3RGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTmdDbGFzcywgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLCBNYXRSYWRpb01vZHVsZSwgTWF0RGF0ZXBpY2tlck1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlck1lbnVDb21wb25lbnQge1xyXG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcclxuICBGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZTtcclxuICBteUZpbHRlclR5cGUhOiBGaWx0ZXJUeXBlO1xyXG4gIG15RmlsdGVyVmFsdWU6IGFueTtcclxuXHJcbiAgZmlsdGVyITogUGFydGlhbDxGaWx0ZXJJbmZvPjtcclxuXHJcbiAgQElucHV0KCkgbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKSB0cmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XHJcbiAgY29uc3RydWN0b3IoIHB1YmxpYyB0YWJsZVN0YXRlOiBUYWJsZVN0b3JlKSB7fVxyXG5cclxuICBoaWRlRmllbGQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGFibGVTdGF0ZS5oaWRlQ29sdW1uKGtleSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZmlsdGVyID0geyBrZXk6IHRoaXMubWV0YURhdGEua2V5LCBmaWVsZFR5cGU6IHRoaXMubWV0YURhdGEuZmllbGRUeXBlIH07XHJcbiAgICB0aGlzLnJlc2V0RmlsdGVyVHlwZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGaWx0ZXJUeXBlKCkge1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsPy5maWx0ZXJPcHRpb25zPy5maWx0ZXJhYmxlVmFsdWVzKSB7XHJcbiAgICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5JbjtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSkge1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5TdHJpbmc6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkxpbms6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLlBob25lTnVtYmVyOlxyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5BcnJheTpcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuVW5rbm93bjpcclxuICAgICAgICB0aGlzLm15RmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuU3RyaW5nQ29udGFpbnM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkN1cnJlbmN5OlxyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLk51bWJlckVxdWFscztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5Cb29sZWFuRXF1YWxzO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxyXG4gICAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRhdGVJc09uO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkVudW06XHJcbiAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkluO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U3RyaW5nRmlsdGVyVHlwZSgpIHtcclxuICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gdGhpcy5teUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuU3RyaW5nQ29udGFpbnMgPyBGaWx0ZXJUeXBlLlN0cmluZ0RvZXNOb3RDb250YWluIDogRmlsdGVyVHlwZS5TdHJpbmdDb250YWlucztcclxuICB9XHJcblxyXG4gIHNldEZpbHRlclR5cGUoZmlsdGVyVHlwZTogRmlsdGVyVHlwZSkge1xyXG4gICAgaWYgKGZpbHRlclR5cGUgPT09IHRoaXMubXlGaWx0ZXJUeXBlKSB7XHJcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXJUeXBlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm15RmlsdGVyVHlwZSA9IGZpbHRlclR5cGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKGZpbHRlcjogRmlsdGVySW5mbykge1xyXG4gICAgaWYgKGZpbHRlci5maWx0ZXJWYWx1ZSAhPSB1bmRlZmluZWQgJiYgZmlsdGVyLmZpbHRlclR5cGUpIHtcclxuICAgICAgdGhpcy50YWJsZVN0YXRlLmFkZEZpbHRlcihmaWx0ZXIpO1xyXG4gICAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwib3Blbi1tZW51LWljb24tYnV0dG9uXCIgZGlzYWJsZVJpcHBsZSBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFttYXRNZW51VHJpZ2dlclJlc3RvcmVGb2N1c109XCJmYWxzZVwiPlxyXG4gIDxtYXQtaWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiPm1vcmVfdmVydDwvbWF0LWljb24+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==
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsU0FBUyxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVB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Q0gsQ0FBQzs4R0FwRVUsbUJBQW1CO2tHQUFuQixtQkFBbUIscUpBU25CLGNBQWMsZ0RDckMzQixtc05Bd0dBLGt6RERoRkksYUFBYSw2dkJBQUUsYUFBYSxtTEFBRSxlQUFlLHdVQUFFLFdBQVcscThCQUFFLHFCQUFxQixvR0FDakYsY0FBYyx3M0JBQUUsZ0JBQWdCLDZUQUFFLE9BQU8sb0ZBQUUsd0JBQXdCLDhEQUFFLGNBQWMsb2xCQUFFLG1CQUFtQjs7MkZBRy9GLG1CQUFtQjtrQkFYL0IsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLHFCQUFxQjt3QkFDakYsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxjQUFjLEVBQUUsbUJBQW1CO3FCQUN6RzsrRUFVUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNxQixPQUFPO3NCQUFqQyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJJbmZvIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSwgTWF0TWVudVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluTGlzdEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci9pbi1saXN0L2luLWxpc3QtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWhlYWRlci1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRNZW51TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBJbkxpc3RGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTmdDbGFzcywgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLCBNYXRSYWRpb01vZHVsZSwgTWF0RGF0ZXBpY2tlck1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlck1lbnVDb21wb25lbnQge1xyXG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcclxuICBGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZTtcclxuICBteUZpbHRlclR5cGUhOiBGaWx0ZXJUeXBlO1xyXG4gIG15RmlsdGVyVmFsdWU6IGFueTtcclxuXHJcbiAgZmlsdGVyITogUGFydGlhbDxGaWx0ZXJJbmZvPjtcclxuXHJcbiAgQElucHV0KCkgbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuICBAVmlld0NoaWxkKE1hdE1lbnVUcmlnZ2VyKSB0cmlnZ2VyITogTWF0TWVudVRyaWdnZXI7XHJcbiAgY29uc3RydWN0b3IoIHB1YmxpYyB0YWJsZVN0YXRlOiBUYWJsZVN0b3JlKSB7fVxyXG5cclxuICBoaWRlRmllbGQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGFibGVTdGF0ZS5oaWRlQ29sdW1uKGtleSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZmlsdGVyID0geyBrZXk6IHRoaXMubWV0YURhdGEua2V5LCBmaWVsZFR5cGU6IHRoaXMubWV0YURhdGEuZmllbGRUeXBlIH07XHJcbiAgICB0aGlzLnJlc2V0RmlsdGVyVHlwZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGaWx0ZXJUeXBlKCkge1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsPy5maWx0ZXJPcHRpb25zPy5maWx0ZXJhYmxlVmFsdWVzKSB7XHJcbiAgICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5JbjtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSkge1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5TdHJpbmc6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkxpbms6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLlBob25lTnVtYmVyOlxyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5BcnJheTpcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuVW5rbm93bjpcclxuICAgICAgICB0aGlzLm15RmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuU3RyaW5nQ29udGFpbnM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkN1cnJlbmN5OlxyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5OdW1iZXI6XHJcbiAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLk51bWJlckVxdWFscztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuQm9vbGVhbjpcclxuICAgICAgICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5Cb29sZWFuRXF1YWxzO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGVUaW1lOlxyXG4gICAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkRhdGVJc09uO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkVudW06XHJcbiAgICAgICAgdGhpcy5teUZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLkluO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U3RyaW5nRmlsdGVyVHlwZSgpIHtcclxuICAgIHRoaXMubXlGaWx0ZXJUeXBlID0gdGhpcy5teUZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuU3RyaW5nQ29udGFpbnMgPyBGaWx0ZXJUeXBlLlN0cmluZ0RvZXNOb3RDb250YWluIDogRmlsdGVyVHlwZS5TdHJpbmdDb250YWlucztcclxuICB9XHJcblxyXG4gIHNldEZpbHRlclR5cGUoZmlsdGVyVHlwZTogRmlsdGVyVHlwZSkge1xyXG4gICAgaWYgKGZpbHRlclR5cGUgPT09IHRoaXMubXlGaWx0ZXJUeXBlKSB7XHJcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXJUeXBlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm15RmlsdGVyVHlwZSA9IGZpbHRlclR5cGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKGZpbHRlcjogRmlsdGVySW5mbykge1xyXG4gICAgaWYgKGZpbHRlci5maWx0ZXJWYWx1ZSAhPSB1bmRlZmluZWQgJiYgZmlsdGVyLmZpbHRlclR5cGUpIHtcclxuICAgICAgdGhpcy50YWJsZVN0YXRlLmFkZEZpbHRlcihmaWx0ZXIpO1xyXG4gICAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwib3Blbi1tZW51LWljb24tYnV0dG9uXCIgZGlzYWJsZVJpcHBsZSBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFttYXRNZW51VHJpZ2dlclJlc3RvcmVGb2N1c109XCJmYWxzZVwiPlxyXG4gIDxtYXQtaWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiPm1vcmVfdmVydDwvbWF0LWljb24+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==
|
|
@@ -42,14 +42,14 @@ export class InFilterComponent {
|
|
|
42
42
|
this.ref.markForCheck();
|
|
43
43
|
this.onChange(this.value);
|
|
44
44
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InFilterComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: InFilterComponent, isStandalone: true, selector: "lib-in-filter", inputs: { type: "type" }, providers: [{
|
|
47
47
|
provide: NG_VALUE_ACCESSOR,
|
|
48
48
|
useExisting: InFilterComponent,
|
|
49
49
|
multi: true
|
|
50
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
51
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InFilterComponent, decorators: [{
|
|
53
53
|
type: Component,
|
|
54
54
|
args: [{ selector: 'lib-in-filter', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{
|
|
55
55
|
provide: NG_VALUE_ACCESSOR,
|
package/esm2022/table-builder/components/initialization-component/initialization-component.mjs
CHANGED
|
@@ -6,10 +6,10 @@ 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
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InitializationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", 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
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InitializationComponent, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{ selector: 'initialization', standalone: true, imports: [
|
|
15
15
|
LinkColumnComponent, ArrayCommaColumnComponent, MatIconModule, FunctionPipe,
|
|
@@ -11,8 +11,8 @@ export class RouterLinkColumnComponent {
|
|
|
11
11
|
this.queryParams = computed(() => this.additional().routerLinkOptions.queryParams(this.element()));
|
|
12
12
|
this.routerLinkOptions = computed(() => this.additional().routerLinkOptions);
|
|
13
13
|
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RouterLinkColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", 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
16
|
<a target="{{additional().target}}"
|
|
17
17
|
[routerLink]=" [link()]"
|
|
18
18
|
[queryParams]="queryParams()"
|
|
@@ -24,7 +24,7 @@ export class RouterLinkColumnComponent {
|
|
|
24
24
|
</a>
|
|
25
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 }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RouterLinkColumnComponent, decorators: [{
|
|
28
28
|
type: Component,
|
|
29
29
|
args: [{
|
|
30
30
|
selector: "tb-router-link-column",
|
|
@@ -53,15 +53,15 @@ export class LinkColumnComponent {
|
|
|
53
53
|
this.additional = input.required();
|
|
54
54
|
this.link = computed(() => this.additional().link(this.element()));
|
|
55
55
|
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: LinkColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", 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
58
|
<a target="{{additional().target}}"
|
|
59
59
|
href="{{link()}}">
|
|
60
60
|
{{value()}}
|
|
61
61
|
</a>
|
|
62
62
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: LinkColumnComponent, decorators: [{
|
|
65
65
|
type: Component,
|
|
66
66
|
args: [{
|
|
67
67
|
selector: "tb-link-column",
|
|
@@ -13,10 +13,10 @@ export class NumberFilterComponent {
|
|
|
13
13
|
this.FilterType = FilterType;
|
|
14
14
|
this.FieldType = FieldType;
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NumberFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: NumberFilterComponent, isStandalone: true, selector: "tb-number-filter", inputs: { CurrentFilterType: "CurrentFilterType", info: "info" }, ngImport: i0, template: "@if(CurrentFilterType !== FilterType.NumberBetween && CurrentFilterType !== FilterType.IsNull && CurrentFilterType !== FilterType.In){\r\n <mat-form-field class=\"my-filter\">\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" type=\"number\"/>\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.NumberBetween){\r\n <ng-container ngModelGroup=\"filterValue\" >\r\n <mat-form-field class=\"my-filter\">\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"Start\" type=\"number\"/>\r\n </mat-form-field>\r\n <mat-form-field class=\"my-filter\">\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"End\" type=\"number\"/>\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n@if (CurrentFilterType === FilterType.In) {\r\n <lib-in-filter name='filterValue' [type]=\"FieldType.Number\" [(ngModel)]='info.filterValue' />\r\n}\r\n", styles: [".switch{display:inline-block}.my-filter{margin-right:15px}.inline{display:inline-block}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.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: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "component", type: InFilterComponent, selector: "lib-in-filter", inputs: ["type"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NumberFilterComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'tb-number-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [
|
|
22
22
|
MatInputModule, FormsModule, InFilterComponent
|
|
@@ -54,13 +54,13 @@ export class ProfilesMenuComponent {
|
|
|
54
54
|
unsetDefault() {
|
|
55
55
|
this.stateService.unsetDefaultFromLocalAndStorage(this.$tableId());
|
|
56
56
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProfilesMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ProfilesMenuComponent, isStandalone: true, selector: "tb-profiles-menu", inputs: { $tableId: { classPropertyName: "$tableId", publicName: "$tableId", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onSaveState: "onSaveState" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], ngImport: i0, template: "<button mat-icon-button [matMenuTriggerFor]=\"menu\" #trigger=\"matMenuTrigger\" [matTooltip]=\"'Profiles'\">\r\n <mat-icon color=\"primary\">people</mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" (closed)=\"addedKey.value = null; allProfilesPanelOpened.set(false); newProfilePanelOpened.set(false)\">\r\n @if(!!$currentProfile())\r\n {\r\n <div mat-menu-item [matTooltip]=\"'Save Profile'\" mat-stroked-button (click)=\"saveState($currentProfile()!)\">\r\n <mat-icon color=\"primary\">save</mat-icon>\r\n <span>{{$currentProfile()}}</span>\r\n </div>\r\n }\r\n @else\r\n {\r\n <div class=\"profile-line\">\r\n <button class=\"first-in-line first-button\" mat-stroked-button (click)=\"addState(defaultName, m.checked);\">\r\n <mat-icon class=\"save-for-default-icon button-save-icon\" color=\"primary\">save</mat-icon>\r\n <span>Save as <span class=\"current-name\">{{defaultName}}</span> </span>\r\n </button>\r\n <button [matTooltip]=\"'Toggle Profile Being Created As Default'\" stop-propagation mat-icon-button (click)=\"m.toggle()\" >\r\n <mat-icon style=\"color: green;\">{{m.checked ? 'star' : 'star_border'}}</mat-icon>\r\n </button>\r\n <mat-checkbox class=\"display-none\" [checked]=\"true\" #m />\r\n </div>\r\n }\r\n @if (allProfilesPanelOpened()) {<hr class=\"divider\"/>}\r\n <div [class]=\"{ hide: !$keys().length }\" mat-menu-item stop-propagation (click)=\"allProfilesPanelOpened.set(!allProfilesPanelOpened())\">All Profiles</div>\r\n <div [class]=\"{ hide: !allProfilesPanelOpened(), panel: true }\">\r\n @for (key of $keys() ; track key) {\r\n <div class=\"profile-line\" [class.current-in-list]=\"key === $currentProfile()\">\r\n <button [matTooltip]=\"'Select Profile'\" class=\"menu-item first-in-line\" mat-stroked-button (click)='stateService.setLocalCurrentState({ tableId: $tableId(), currentStateKey: key})'>\r\n <span>{{key}}</span>\r\n </button>\r\n @if(key !== $defaultProfile())\r\n {\r\n <button [matTooltip]=\"'Toggle Profile Being Default'\" stop-propagation mat-icon-button (click)=\"setDefault(key)\">\r\n <mat-icon style=\"color: green;\">star_border</mat-icon>\r\n </button>\r\n }\r\n @else\r\n {\r\n <button [matTooltip]=\"'Toggle Profile Being Default'\" stop-propagation mat-icon-button (click)=\"unsetDefault()\">\r\n <mat-icon style=\"color: green;\">star</mat-icon>\r\n </button>\r\n }\r\n <button [matTooltip]=\"'Delete Profile'\" class=\"last-in-line\" stop-propagation mat-icon-button (click)='stateService.deleteProfileFromLocalAndStorage($tableId(), key)'>\r\n <mat-icon color='warn'>delete_forever</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <hr class=\"divider\"/>\r\n </div>\r\n @if (newProfilePanelOpened() && !allProfilesPanelOpened()){<hr class=\"divider\"/>}\r\n <div mat-menu-item stop-propagation (click)=\"newProfilePanelOpened.set(!newProfilePanelOpened()); addedKey.focus()\">Add New Profile</div>\r\n <div [class]=\"{ hide: !newProfilePanelOpened(), panel: true }\" >\r\n <div class=\"profile-line\" stop-propagation>\r\n <div class=\"new-name-input\">\r\n <i class=\"input-hint\">Enter New Name</i>\r\n <input matInput #addedKey=\"matInput\" [name]=\"'key'\" />\r\n </div>\r\n <button [matTooltip]=\"'Toggle Profile Being Created As Default'\" stop-propagation mat-icon-button (click)=\"m2.toggle()\" >\r\n <mat-icon style=\"color: green;\">{{m2.checked ? 'star' : 'star_border'}}</mat-icon>\r\n </button>\r\n <mat-checkbox class=\"display-none\" [ngModel]=\"!$defaultProfile()\" #m2 />\r\n </div>\r\n <button class=\"add-button\" color=\"primary\" [matTooltip]=\"'Create New Profile'\" mat-raised-button (click)=\"addState(addedKey.value, m2.checked); addedKey.value = null\" [disabled]=\"!addedKey.value\">\r\n Add\r\n </button>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-template #line let-key>\r\n\r\n\r\n</ng-template>\r\n", styles: [":host ::ng-deep .mat-expansion-panel-header{padding:0}.current-name{color:#00f}.menu-item{display:inline-flex;width:initial;flex-grow:1}.profile-line{display:flex;justify-content:space-between;align-items:center}.first-in-line{--f-b: 2rem;margin-left:var(--mat-menu-item-with-icon-leading-spacing)}.first-in-line.first-button{height:var(--f-b);margin:.2rem}.first-in-line .button-save-icon{height:var(--f-b);width:var(--f-b);font-size:var(--f-b)}.main-save-button{height:4rem;width:4rem;padding:.5rem}.main-save-button mat-icon{height:3rem;width:3rem;font-size:3rem}.save-for-default-icon{margin:0}.display-none{display:none}.last-in-line{padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}.default-cursor{cursor:default}.as-def{padding-left:var(--mat-menu-item-with-icon-leading-spacing)}.divider{margin:.2px 0}.add-key{max-width:8.5rem;margin-left:2px}.add-key ::ng-deep .mdc-text-field{padding:0}.panel{transition:height .1s}.hide{height:0;min-height:0;overflow:hidden}.open-panel-button{width:100%;height:2.5rem}.current-in-list{border-left:3px solid blue;background-color:#0000ff0d}.new-name-input{margin-left:3px;display:flex;flex-direction:column}.new-name-input .input-hint{font-size:smaller;font-weight:200;color:gray}.add-button{height:20px;line-height:20px;margin:3px 0 0 3px}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { 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: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: 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: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: StopPropagationDirective, selector: "[stop-propagation]" }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProfilesMenuComponent, decorators: [{
|
|
61
61
|
type: Component,
|
|
62
62
|
args: [{ selector: 'tb-profiles-menu', standalone: true, imports: [MatIcon, MatTooltip, MatIconButton, MatMenuModule, MatButton, MatInput, DialogDirective, ClickEmitterDirective, NgTemplateOutlet,
|
|
63
63
|
MatCheckbox, StopPropagationDirective, FunctionPipe, MatInputModule, AsyncPipe, FormsModule
|
|
64
64
|
], template: "<button mat-icon-button [matMenuTriggerFor]=\"menu\" #trigger=\"matMenuTrigger\" [matTooltip]=\"'Profiles'\">\r\n <mat-icon color=\"primary\">people</mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" (closed)=\"addedKey.value = null; allProfilesPanelOpened.set(false); newProfilePanelOpened.set(false)\">\r\n @if(!!$currentProfile())\r\n {\r\n <div mat-menu-item [matTooltip]=\"'Save Profile'\" mat-stroked-button (click)=\"saveState($currentProfile()!)\">\r\n <mat-icon color=\"primary\">save</mat-icon>\r\n <span>{{$currentProfile()}}</span>\r\n </div>\r\n }\r\n @else\r\n {\r\n <div class=\"profile-line\">\r\n <button class=\"first-in-line first-button\" mat-stroked-button (click)=\"addState(defaultName, m.checked);\">\r\n <mat-icon class=\"save-for-default-icon button-save-icon\" color=\"primary\">save</mat-icon>\r\n <span>Save as <span class=\"current-name\">{{defaultName}}</span> </span>\r\n </button>\r\n <button [matTooltip]=\"'Toggle Profile Being Created As Default'\" stop-propagation mat-icon-button (click)=\"m.toggle()\" >\r\n <mat-icon style=\"color: green;\">{{m.checked ? 'star' : 'star_border'}}</mat-icon>\r\n </button>\r\n <mat-checkbox class=\"display-none\" [checked]=\"true\" #m />\r\n </div>\r\n }\r\n @if (allProfilesPanelOpened()) {<hr class=\"divider\"/>}\r\n <div [class]=\"{ hide: !$keys().length }\" mat-menu-item stop-propagation (click)=\"allProfilesPanelOpened.set(!allProfilesPanelOpened())\">All Profiles</div>\r\n <div [class]=\"{ hide: !allProfilesPanelOpened(), panel: true }\">\r\n @for (key of $keys() ; track key) {\r\n <div class=\"profile-line\" [class.current-in-list]=\"key === $currentProfile()\">\r\n <button [matTooltip]=\"'Select Profile'\" class=\"menu-item first-in-line\" mat-stroked-button (click)='stateService.setLocalCurrentState({ tableId: $tableId(), currentStateKey: key})'>\r\n <span>{{key}}</span>\r\n </button>\r\n @if(key !== $defaultProfile())\r\n {\r\n <button [matTooltip]=\"'Toggle Profile Being Default'\" stop-propagation mat-icon-button (click)=\"setDefault(key)\">\r\n <mat-icon style=\"color: green;\">star_border</mat-icon>\r\n </button>\r\n }\r\n @else\r\n {\r\n <button [matTooltip]=\"'Toggle Profile Being Default'\" stop-propagation mat-icon-button (click)=\"unsetDefault()\">\r\n <mat-icon style=\"color: green;\">star</mat-icon>\r\n </button>\r\n }\r\n <button [matTooltip]=\"'Delete Profile'\" class=\"last-in-line\" stop-propagation mat-icon-button (click)='stateService.deleteProfileFromLocalAndStorage($tableId(), key)'>\r\n <mat-icon color='warn'>delete_forever</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <hr class=\"divider\"/>\r\n </div>\r\n @if (newProfilePanelOpened() && !allProfilesPanelOpened()){<hr class=\"divider\"/>}\r\n <div mat-menu-item stop-propagation (click)=\"newProfilePanelOpened.set(!newProfilePanelOpened()); addedKey.focus()\">Add New Profile</div>\r\n <div [class]=\"{ hide: !newProfilePanelOpened(), panel: true }\" >\r\n <div class=\"profile-line\" stop-propagation>\r\n <div class=\"new-name-input\">\r\n <i class=\"input-hint\">Enter New Name</i>\r\n <input matInput #addedKey=\"matInput\" [name]=\"'key'\" />\r\n </div>\r\n <button [matTooltip]=\"'Toggle Profile Being Created As Default'\" stop-propagation mat-icon-button (click)=\"m2.toggle()\" >\r\n <mat-icon style=\"color: green;\">{{m2.checked ? 'star' : 'star_border'}}</mat-icon>\r\n </button>\r\n <mat-checkbox class=\"display-none\" [ngModel]=\"!$defaultProfile()\" #m2 />\r\n </div>\r\n <button class=\"add-button\" color=\"primary\" [matTooltip]=\"'Create New Profile'\" mat-raised-button (click)=\"addState(addedKey.value, m2.checked); addedKey.value = null\" [disabled]=\"!addedKey.value\">\r\n Add\r\n </button>\r\n </div>\r\n</mat-menu>\r\n\r\n<ng-template #line let-key>\r\n\r\n\r\n</ng-template>\r\n", styles: [":host ::ng-deep .mat-expansion-panel-header{padding:0}.current-name{color:#00f}.menu-item{display:inline-flex;width:initial;flex-grow:1}.profile-line{display:flex;justify-content:space-between;align-items:center}.first-in-line{--f-b: 2rem;margin-left:var(--mat-menu-item-with-icon-leading-spacing)}.first-in-line.first-button{height:var(--f-b);margin:.2rem}.first-in-line .button-save-icon{height:var(--f-b);width:var(--f-b);font-size:var(--f-b)}.main-save-button{height:4rem;width:4rem;padding:.5rem}.main-save-button mat-icon{height:3rem;width:3rem;font-size:3rem}.save-for-default-icon{margin:0}.display-none{display:none}.last-in-line{padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}.default-cursor{cursor:default}.as-def{padding-left:var(--mat-menu-item-with-icon-leading-spacing)}.divider{margin:.2px 0}.add-key{max-width:8.5rem;margin-left:2px}.add-key ::ng-deep .mdc-text-field{padding:0}.panel{transition:height .1s}.hide{height:0;min-height:0;overflow:hidden}.open-panel-button{width:100%;height:2.5rem}.current-in-list{border-left:3px solid blue;background-color:#0000ff0d}.new-name-input{margin-left:3px;display:flex;flex-direction:column}.new-name-input .input-hint{font-size:smaller;font-weight:200;color:gray}.add-button{height:20px;line-height:20px;margin:3px 0 0 3px}\n"] }]
|
|
65
65
|
}] });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZXMtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL3Byb2ZpbGVzLW1lbnUvcHJvZmlsZXMtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL3Byb2ZpbGVzLW1lbnUvcHJvZmlsZXMtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9B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QXJCLHFCQUFxQixxWEN2QmxDLDJnSUEwRUEsODBDRHpEWSxPQUFPLDJJQUFFLFVBQVUsaVJBQUUsYUFBYSw0RkFBRSxhQUFhLDh2QkFBRSxTQUFTLGlMQUFFLFFBQVEsaVVBQzlFLFdBQVcsaVVBQUUsd0JBQXdCLDhEQUFnQixjQUFjLDhCQUFhLFdBQVc7OzJGQUtsRixxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0I7d0JBQ3hJLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxXQUFXO3FCQUM1RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGFibGVCdWlsZGVyU3RhdGVTdG9yZSB9IGZyb20gJy4uLy4uL25ncngvdGFibGVCdWlsZGVyU3RhdGVTdG9yZSc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbiwgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IENsaWNrRW1pdHRlckRpcmVjdGl2ZSwgRGlhbG9nRGlyZWN0aXZlLCBGdW5jdGlvblBpcGUsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdElucHV0LCBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3ggfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLXByb2ZpbGVzLW1lbnUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEljb24sIE1hdFRvb2x0aXAsIE1hdEljb25CdXR0b24sIE1hdE1lbnVNb2R1bGUsIE1hdEJ1dHRvbiwgTWF0SW5wdXQsIERpYWxvZ0RpcmVjdGl2ZSwgQ2xpY2tFbWl0dGVyRGlyZWN0aXZlLCBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTWF0Q2hlY2tib3gsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgRnVuY3Rpb25QaXBlLCBNYXRJbnB1dE1vZHVsZSwgQXN5bmNQaXBlLCBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGVzLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcm9maWxlcy1tZW51LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZmlsZXNNZW51Q29tcG9uZW50IHtcclxuICBzdGF0ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVCdWlsZGVyU3RhdGVTdG9yZSk7XHJcbiAgdGFibGVTdG9yZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuICAkdGFibGVJZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuICBvblNhdmVTdGF0ZSA9IG91dHB1dDxudWxsPigpO1xyXG4gIHRyaWdnZXIgPSB2aWV3Q2hpbGQ8TWF0TWVudVRyaWdnZXI+KCd0cmlnZ2VyJyk7XHJcbiAgYWxsUHJvZmlsZXNQYW5lbE9wZW5lZCA9IHNpZ25hbChmYWxzZSk7XHJcbiAgbmV3UHJvZmlsZVBhbmVsT3BlbmVkID0gc2lnbmFsKGZhbHNlKTtcclxuICAkY3VycmVudFByb2ZpbGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXRlU2VydmljZS4kc2VsZWN0TG9jYWxQcm9maWxlQ3VycmVudEtleSh0aGlzLiR0YWJsZUlkKCkpKCkpO1xyXG4gICRkZWZhdWx0UHJvZmlsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdGVTZXJ2aWNlLiRzZWxlY3RMb2NhbFByb2ZpbGVEZWZhdWx0S2V5KHRoaXMuJHRhYmxlSWQoKSkoKSk7XHJcbiAgJGtleXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXRlU2VydmljZS4kc2VsZWN0TG9jYWxQcm9maWxlS2V5cyh0aGlzLiR0YWJsZUlkKCkpKCkpO1xyXG4gIHNhdmVTdGF0ZShrZXk6IHN0cmluZykge1xyXG4gICAgY29uc3QgdGFibGVTdGF0ZSA9IHRoaXMudGFibGVTdG9yZS5nZXRTYXZhYmxlU3RhdGVTaWduYWwoKTtcclxuICAgIHRoaXMub25TYXZlU3RhdGUuZW1pdChudWxsKTtcclxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UodGhpcy4kdGFibGVJZCgpLCBrZXksIHRhYmxlU3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgYWRkU3RhdGUoa2V5OiBzdHJpbmcsIGFzRGVmYXVsdDogYm9vbGVhbil7XHJcbiAgICBjb25zdCB0YWJsZVN0YXRlID0gdGhpcy50YWJsZVN0b3JlLmdldFNhdmFibGVTdGF0ZVNpZ25hbCgpO1xyXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuYWRkTmV3U3RhdGVUb0xvY2FsQW5kU3RvcmFnZSh0aGlzLiR0YWJsZUlkKCksIGtleSwgdGFibGVTdGF0ZSwgYXNEZWZhdWx0KTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHQoa2V5OiBzdHJpbmcpe1xyXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdEluTG9jYWxBbmRTdG9yYWdlKHRoaXMuJHRhYmxlSWQoKSwga2V5KTtcclxuICB9XHJcblxyXG4gIHVuc2V0RGVmYXVsdCgpe1xyXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UudW5zZXREZWZhdWx0RnJvbUxvY2FsQW5kU3RvcmFnZSh0aGlzLiR0YWJsZUlkKCkpO1xyXG4gIH1cclxuXHJcbiAgZGVmYXVsdE5hbWUgPSAnTXkgUHJvZmlsZSc7XHJcbiAgcG9zaXRpb24kID0gbmV3IFN1YmplY3Q8eyB0b3A6IHN0cmluZywgcmlnaHQ6IHN0cmluZ30gfCB1bmRlZmluZWQ+KCk7XHJcbiAgc2V0UG9zaXRpb24gPSAoZTogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IHJlY3QgPSBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYocmVjdC50b3AgPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IGEgPSB7XHJcbiAgICAgIHJpZ2h0OiBgJHsod2luZG93LmlubmVyV2lkdGggLSByZWN0LnJpZ2h0KX1weGAsXHJcbiAgICAgIHRvcDogYCR7cmVjdC50b3B9cHhgLFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGE7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgI3RyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiIFttYXRUb29sdGlwXT1cIidQcm9maWxlcydcIj5cclxuICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+cGVvcGxlPC9tYXQtaWNvbj5cclxuPC9idXR0b24+XHJcbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiAoY2xvc2VkKT1cImFkZGVkS2V5LnZhbHVlID0gbnVsbDsgYWxsUHJvZmlsZXNQYW5lbE9wZW5lZC5zZXQoZmFsc2UpOyBuZXdQcm9maWxlUGFuZWxPcGVuZWQuc2V0KGZhbHNlKVwiPlxyXG4gIEBpZighISRjdXJyZW50UHJvZmlsZSgpKVxyXG4gIHtcclxuICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBbbWF0VG9vbHRpcF09XCInU2F2ZSBQcm9maWxlJ1wiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwic2F2ZVN0YXRlKCRjdXJyZW50UHJvZmlsZSgpISlcIj5cclxuICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPnNhdmU8L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj57eyRjdXJyZW50UHJvZmlsZSgpfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgQGVsc2VcclxuICB7XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1saW5lXCI+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaXJzdC1pbi1saW5lIGZpcnN0LWJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkU3RhdGUoZGVmYXVsdE5hbWUsIG0uY2hlY2tlZCk7XCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2F2ZS1mb3ItZGVmYXVsdC1pY29uIGJ1dHRvbi1zYXZlLWljb25cIiBjb2xvcj1cInByaW1hcnlcIj5zYXZlPC9tYXQtaWNvbj5cclxuICAgICAgICA8c3Bhbj5TYXZlIGFzIDxzcGFuIGNsYXNzPVwiY3VycmVudC1uYW1lXCI+e3tkZWZhdWx0TmFtZX19PC9zcGFuPiA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFttYXRUb29sdGlwXT1cIidUb2dnbGUgUHJvZmlsZSBCZWluZyBDcmVhdGVkIEFzIERlZmF1bHQnXCIgc3RvcC1wcm9wYWdhdGlvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm0udG9nZ2xlKClcIiA+XHJcbiAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiY29sb3I6IGdyZWVuO1wiPnt7bS5jaGVja2VkID8gJ3N0YXInIDogJ3N0YXJfYm9yZGVyJ319PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJkaXNwbGF5LW5vbmVcIiBbY2hlY2tlZF09XCJ0cnVlXCIgI20gLz5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGFsbFByb2ZpbGVzUGFuZWxPcGVuZWQoKSkgezxociBjbGFzcz1cImRpdmlkZXJcIi8+fVxyXG4gIDxkaXYgW2NsYXNzXT1cInsgaGlkZTogISRrZXlzKCkubGVuZ3RoIH1cIiBtYXQtbWVudS1pdGVtIHN0b3AtcHJvcGFnYXRpb24gKGNsaWNrKT1cImFsbFByb2ZpbGVzUGFuZWxPcGVuZWQuc2V0KCFhbGxQcm9maWxlc1BhbmVsT3BlbmVkKCkpXCI+QWxsIFByb2ZpbGVzPC9kaXY+XHJcbiAgPGRpdiBbY2xhc3NdPVwieyBoaWRlOiAhYWxsUHJvZmlsZXNQYW5lbE9wZW5lZCgpLCBwYW5lbDogdHJ1ZSB9XCI+XHJcbiAgICBAZm9yIChrZXkgb2YgJGtleXMoKSA7IHRyYWNrIGtleSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1saW5lXCIgW2NsYXNzLmN1cnJlbnQtaW4tbGlzdF09XCJrZXkgPT09ICRjdXJyZW50UHJvZmlsZSgpXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBbbWF0VG9vbHRpcF09XCInU2VsZWN0IFByb2ZpbGUnXCIgY2xhc3M9XCJtZW51LWl0ZW0gZmlyc3QtaW4tbGluZVwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPSdzdGF0ZVNlcnZpY2Uuc2V0TG9jYWxDdXJyZW50U3RhdGUoeyB0YWJsZUlkOiAkdGFibGVJZCgpLCBjdXJyZW50U3RhdGVLZXk6IGtleX0pJz5cclxuICAgICAgICAgIDxzcGFuPnt7a2V5fX08L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgQGlmKGtleSAhPT0gJGRlZmF1bHRQcm9maWxlKCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgPGJ1dHRvbiBbbWF0VG9vbHRpcF09XCInVG9nZ2xlIFByb2ZpbGUgQmVpbmcgRGVmYXVsdCdcIiBzdG9wLXByb3BhZ2F0aW9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2V0RGVmYXVsdChrZXkpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImNvbG9yOiBncmVlbjtcIj5zdGFyX2JvcmRlcjwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICA8YnV0dG9uIFttYXRUb29sdGlwXT1cIidUb2dnbGUgUHJvZmlsZSBCZWluZyBEZWZhdWx0J1wiIHN0b3AtcHJvcGFnYXRpb24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ1bnNldERlZmF1bHQoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJjb2xvcjogZ3JlZW47XCI+c3RhcjwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGJ1dHRvbiBbbWF0VG9vbHRpcF09XCInRGVsZXRlIFByb2ZpbGUnXCIgY2xhc3M9XCJsYXN0LWluLWxpbmVcIiBzdG9wLXByb3BhZ2F0aW9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPSdzdGF0ZVNlcnZpY2UuZGVsZXRlUHJvZmlsZUZyb21Mb2NhbEFuZFN0b3JhZ2UoJHRhYmxlSWQoKSwga2V5KSc+XHJcbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9J3dhcm4nPmRlbGV0ZV9mb3JldmVyPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8aHIgY2xhc3M9XCJkaXZpZGVyXCIvPlxyXG4gIDwvZGl2PlxyXG4gIEBpZiAobmV3UHJvZmlsZVBhbmVsT3BlbmVkKCkgJiYgIWFsbFByb2ZpbGVzUGFuZWxPcGVuZWQoKSl7PGhyIGNsYXNzPVwiZGl2aWRlclwiLz59XHJcbiAgPGRpdiBtYXQtbWVudS1pdGVtIHN0b3AtcHJvcGFnYXRpb24gKGNsaWNrKT1cIm5ld1Byb2ZpbGVQYW5lbE9wZW5lZC5zZXQoIW5ld1Byb2ZpbGVQYW5lbE9wZW5lZCgpKTsgYWRkZWRLZXkuZm9jdXMoKVwiPkFkZCBOZXcgUHJvZmlsZTwvZGl2PlxyXG4gIDxkaXYgW2NsYXNzXT1cInsgaGlkZTogIW5ld1Byb2ZpbGVQYW5lbE9wZW5lZCgpLCBwYW5lbDogdHJ1ZSB9XCIgPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2ZpbGUtbGluZVwiIHN0b3AtcHJvcGFnYXRpb24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJuZXctbmFtZS1pbnB1dFwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaGludFwiPkVudGVyIE5ldyBOYW1lPC9pPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCAjYWRkZWRLZXk9XCJtYXRJbnB1dFwiIFtuYW1lXT1cIidrZXknXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b24gW21hdFRvb2x0aXBdPVwiJ1RvZ2dsZSBQcm9maWxlIEJlaW5nIENyZWF0ZWQgQXMgRGVmYXVsdCdcIiBzdG9wLXByb3BhZ2F0aW9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibTIudG9nZ2xlKClcIiA+XHJcbiAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiY29sb3I6IGdyZWVuO1wiPnt7bTIuY2hlY2tlZCA/ICdzdGFyJyA6ICdzdGFyX2JvcmRlcid9fTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwiZGlzcGxheS1ub25lXCIgW25nTW9kZWxdPVwiISRkZWZhdWx0UHJvZmlsZSgpXCIgI20yIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJhZGQtYnV0dG9uXCIgY29sb3I9XCJwcmltYXJ5XCIgW21hdFRvb2x0aXBdPVwiJ0NyZWF0ZSBOZXcgUHJvZmlsZSdcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkU3RhdGUoYWRkZWRLZXkudmFsdWUsIG0yLmNoZWNrZWQpOyBhZGRlZEtleS52YWx1ZSA9IG51bGxcIiBbZGlzYWJsZWRdPVwiIWFkZGVkS2V5LnZhbHVlXCI+XHJcbiAgICAgIEFkZFxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LW1lbnU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xpbmUgbGV0LWtleT5cclxuXHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZXMtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL3Byb2ZpbGVzLW1lbnUvcHJvZmlsZXMtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL3Byb2ZpbGVzLW1lbnUvcHJvZmlsZXMtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVc3QyxNQUFNLE9BQU8scUJBQXFCO0lBVGxDO1FBVUUsaUJBQVksR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUM3QixZQUFPLEdBQUcsU0FBUyxDQUFpQixTQUFTLENBQUMsQ0FBQztRQUMvQywyQkFBc0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsMEJBQXFCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JHLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JHLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFvQnJGLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBQzNCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBNkMsQ0FBQztRQUNyRSxnQkFBVyxHQUFHLENBQUMsQ0FBYyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDdkMsSUFBRyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQUUsT0FBTztZQUMxQixNQUFNLENBQUMsR0FBRztnQkFDUixLQUFLLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO2dCQUM5QyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJO2FBQ3JCLENBQUE7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQTtLQUNGO0lBOUJDLFNBQVMsQ0FBQyxHQUFXO1FBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXLEVBQUUsU0FBa0I7UUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDOzhHQTVCVSxxQkFBcUI7a0dBQXJCLHFCQUFxQixxWEN2QmxDLDJnSUEwRUEsODBDRHpEWSxPQUFPLDJJQUFFLFVBQVUsaVJBQUUsYUFBYSw0RkFBRSxhQUFhLDh2QkFBRSxTQUFTLGlMQUFFLFFBQVEsaVVBQzlFLFdBQVcsd1ZBQUUsd0JBQXdCLDhEQUFnQixjQUFjLDhCQUFhLFdBQVc7OzJGQUtsRixxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0I7d0JBQ3hJLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxXQUFXO3FCQUM1RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGFibGVCdWlsZGVyU3RhdGVTdG9yZSB9IGZyb20gJy4uLy4uL25ncngvdGFibGVCdWlsZGVyU3RhdGVTdG9yZSc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbiwgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IENsaWNrRW1pdHRlckRpcmVjdGl2ZSwgRGlhbG9nRGlyZWN0aXZlLCBGdW5jdGlvblBpcGUsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdElucHV0LCBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3ggfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLXByb2ZpbGVzLW1lbnUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEljb24sIE1hdFRvb2x0aXAsIE1hdEljb25CdXR0b24sIE1hdE1lbnVNb2R1bGUsIE1hdEJ1dHRvbiwgTWF0SW5wdXQsIERpYWxvZ0RpcmVjdGl2ZSwgQ2xpY2tFbWl0dGVyRGlyZWN0aXZlLCBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgTWF0Q2hlY2tib3gsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgRnVuY3Rpb25QaXBlLCBNYXRJbnB1dE1vZHVsZSwgQXN5bmNQaXBlLCBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGVzLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcm9maWxlcy1tZW51LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZmlsZXNNZW51Q29tcG9uZW50IHtcclxuICBzdGF0ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVCdWlsZGVyU3RhdGVTdG9yZSk7XHJcbiAgdGFibGVTdG9yZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuICAkdGFibGVJZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuICBvblNhdmVTdGF0ZSA9IG91dHB1dDxudWxsPigpO1xyXG4gIHRyaWdnZXIgPSB2aWV3Q2hpbGQ8TWF0TWVudVRyaWdnZXI+KCd0cmlnZ2VyJyk7XHJcbiAgYWxsUHJvZmlsZXNQYW5lbE9wZW5lZCA9IHNpZ25hbChmYWxzZSk7XHJcbiAgbmV3UHJvZmlsZVBhbmVsT3BlbmVkID0gc2lnbmFsKGZhbHNlKTtcclxuICAkY3VycmVudFByb2ZpbGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXRlU2VydmljZS4kc2VsZWN0TG9jYWxQcm9maWxlQ3VycmVudEtleSh0aGlzLiR0YWJsZUlkKCkpKCkpO1xyXG4gICRkZWZhdWx0UHJvZmlsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdGVTZXJ2aWNlLiRzZWxlY3RMb2NhbFByb2ZpbGVEZWZhdWx0S2V5KHRoaXMuJHRhYmxlSWQoKSkoKSk7XHJcbiAgJGtleXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXRlU2VydmljZS4kc2VsZWN0TG9jYWxQcm9maWxlS2V5cyh0aGlzLiR0YWJsZUlkKCkpKCkpO1xyXG4gIHNhdmVTdGF0ZShrZXk6IHN0cmluZykge1xyXG4gICAgY29uc3QgdGFibGVTdGF0ZSA9IHRoaXMudGFibGVTdG9yZS5nZXRTYXZhYmxlU3RhdGVTaWduYWwoKTtcclxuICAgIHRoaXMub25TYXZlU3RhdGUuZW1pdChudWxsKTtcclxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UodGhpcy4kdGFibGVJZCgpLCBrZXksIHRhYmxlU3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgYWRkU3RhdGUoa2V5OiBzdHJpbmcsIGFzRGVmYXVsdDogYm9vbGVhbil7XHJcbiAgICBjb25zdCB0YWJsZVN0YXRlID0gdGhpcy50YWJsZVN0b3JlLmdldFNhdmFibGVTdGF0ZVNpZ25hbCgpO1xyXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UuYWRkTmV3U3RhdGVUb0xvY2FsQW5kU3RvcmFnZSh0aGlzLiR0YWJsZUlkKCksIGtleSwgdGFibGVTdGF0ZSwgYXNEZWZhdWx0KTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHQoa2V5OiBzdHJpbmcpe1xyXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdEluTG9jYWxBbmRTdG9yYWdlKHRoaXMuJHRhYmxlSWQoKSwga2V5KTtcclxuICB9XHJcblxyXG4gIHVuc2V0RGVmYXVsdCgpe1xyXG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UudW5zZXREZWZhdWx0RnJvbUxvY2FsQW5kU3RvcmFnZSh0aGlzLiR0YWJsZUlkKCkpO1xyXG4gIH1cclxuXHJcbiAgZGVmYXVsdE5hbWUgPSAnTXkgUHJvZmlsZSc7XHJcbiAgcG9zaXRpb24kID0gbmV3IFN1YmplY3Q8eyB0b3A6IHN0cmluZywgcmlnaHQ6IHN0cmluZ30gfCB1bmRlZmluZWQ+KCk7XHJcbiAgc2V0UG9zaXRpb24gPSAoZTogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IHJlY3QgPSBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYocmVjdC50b3AgPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IGEgPSB7XHJcbiAgICAgIHJpZ2h0OiBgJHsod2luZG93LmlubmVyV2lkdGggLSByZWN0LnJpZ2h0KX1weGAsXHJcbiAgICAgIHRvcDogYCR7cmVjdC50b3B9cHhgLFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGE7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgI3RyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiIFttYXRUb29sdGlwXT1cIidQcm9maWxlcydcIj5cclxuICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+cGVvcGxlPC9tYXQtaWNvbj5cclxuPC9idXR0b24+XHJcbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiAoY2xvc2VkKT1cImFkZGVkS2V5LnZhbHVlID0gbnVsbDsgYWxsUHJvZmlsZXNQYW5lbE9wZW5lZC5zZXQoZmFsc2UpOyBuZXdQcm9maWxlUGFuZWxPcGVuZWQuc2V0KGZhbHNlKVwiPlxyXG4gIEBpZighISRjdXJyZW50UHJvZmlsZSgpKVxyXG4gIHtcclxuICAgIDxkaXYgbWF0LW1lbnUtaXRlbSBbbWF0VG9vbHRpcF09XCInU2F2ZSBQcm9maWxlJ1wiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwic2F2ZVN0YXRlKCRjdXJyZW50UHJvZmlsZSgpISlcIj5cclxuICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPnNhdmU8L21hdC1pY29uPlxyXG4gICAgICA8c3Bhbj57eyRjdXJyZW50UHJvZmlsZSgpfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgQGVsc2VcclxuICB7XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1saW5lXCI+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJmaXJzdC1pbi1saW5lIGZpcnN0LWJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkU3RhdGUoZGVmYXVsdE5hbWUsIG0uY2hlY2tlZCk7XCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2F2ZS1mb3ItZGVmYXVsdC1pY29uIGJ1dHRvbi1zYXZlLWljb25cIiBjb2xvcj1cInByaW1hcnlcIj5zYXZlPC9tYXQtaWNvbj5cclxuICAgICAgICA8c3Bhbj5TYXZlIGFzIDxzcGFuIGNsYXNzPVwiY3VycmVudC1uYW1lXCI+e3tkZWZhdWx0TmFtZX19PC9zcGFuPiA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFttYXRUb29sdGlwXT1cIidUb2dnbGUgUHJvZmlsZSBCZWluZyBDcmVhdGVkIEFzIERlZmF1bHQnXCIgc3RvcC1wcm9wYWdhdGlvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm0udG9nZ2xlKClcIiA+XHJcbiAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiY29sb3I6IGdyZWVuO1wiPnt7bS5jaGVja2VkID8gJ3N0YXInIDogJ3N0YXJfYm9yZGVyJ319PC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJkaXNwbGF5LW5vbmVcIiBbY2hlY2tlZF09XCJ0cnVlXCIgI20gLz5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGFsbFByb2ZpbGVzUGFuZWxPcGVuZWQoKSkgezxociBjbGFzcz1cImRpdmlkZXJcIi8+fVxyXG4gIDxkaXYgW2NsYXNzXT1cInsgaGlkZTogISRrZXlzKCkubGVuZ3RoIH1cIiBtYXQtbWVudS1pdGVtIHN0b3AtcHJvcGFnYXRpb24gKGNsaWNrKT1cImFsbFByb2ZpbGVzUGFuZWxPcGVuZWQuc2V0KCFhbGxQcm9maWxlc1BhbmVsT3BlbmVkKCkpXCI+QWxsIFByb2ZpbGVzPC9kaXY+XHJcbiAgPGRpdiBbY2xhc3NdPVwieyBoaWRlOiAhYWxsUHJvZmlsZXNQYW5lbE9wZW5lZCgpLCBwYW5lbDogdHJ1ZSB9XCI+XHJcbiAgICBAZm9yIChrZXkgb2YgJGtleXMoKSA7IHRyYWNrIGtleSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1saW5lXCIgW2NsYXNzLmN1cnJlbnQtaW4tbGlzdF09XCJrZXkgPT09ICRjdXJyZW50UHJvZmlsZSgpXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBbbWF0VG9vbHRpcF09XCInU2VsZWN0IFByb2ZpbGUnXCIgY2xhc3M9XCJtZW51LWl0ZW0gZmlyc3QtaW4tbGluZVwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPSdzdGF0ZVNlcnZpY2Uuc2V0TG9jYWxDdXJyZW50U3RhdGUoeyB0YWJsZUlkOiAkdGFibGVJZCgpLCBjdXJyZW50U3RhdGVLZXk6IGtleX0pJz5cclxuICAgICAgICAgIDxzcGFuPnt7a2V5fX08L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgQGlmKGtleSAhPT0gJGRlZmF1bHRQcm9maWxlKCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgPGJ1dHRvbiBbbWF0VG9vbHRpcF09XCInVG9nZ2xlIFByb2ZpbGUgQmVpbmcgRGVmYXVsdCdcIiBzdG9wLXByb3BhZ2F0aW9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2V0RGVmYXVsdChrZXkpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImNvbG9yOiBncmVlbjtcIj5zdGFyX2JvcmRlcjwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICA8YnV0dG9uIFttYXRUb29sdGlwXT1cIidUb2dnbGUgUHJvZmlsZSBCZWluZyBEZWZhdWx0J1wiIHN0b3AtcHJvcGFnYXRpb24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ1bnNldERlZmF1bHQoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJjb2xvcjogZ3JlZW47XCI+c3RhcjwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPGJ1dHRvbiBbbWF0VG9vbHRpcF09XCInRGVsZXRlIFByb2ZpbGUnXCIgY2xhc3M9XCJsYXN0LWluLWxpbmVcIiBzdG9wLXByb3BhZ2F0aW9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPSdzdGF0ZVNlcnZpY2UuZGVsZXRlUHJvZmlsZUZyb21Mb2NhbEFuZFN0b3JhZ2UoJHRhYmxlSWQoKSwga2V5KSc+XHJcbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9J3dhcm4nPmRlbGV0ZV9mb3JldmVyPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8aHIgY2xhc3M9XCJkaXZpZGVyXCIvPlxyXG4gIDwvZGl2PlxyXG4gIEBpZiAobmV3UHJvZmlsZVBhbmVsT3BlbmVkKCkgJiYgIWFsbFByb2ZpbGVzUGFuZWxPcGVuZWQoKSl7PGhyIGNsYXNzPVwiZGl2aWRlclwiLz59XHJcbiAgPGRpdiBtYXQtbWVudS1pdGVtIHN0b3AtcHJvcGFnYXRpb24gKGNsaWNrKT1cIm5ld1Byb2ZpbGVQYW5lbE9wZW5lZC5zZXQoIW5ld1Byb2ZpbGVQYW5lbE9wZW5lZCgpKTsgYWRkZWRLZXkuZm9jdXMoKVwiPkFkZCBOZXcgUHJvZmlsZTwvZGl2PlxyXG4gIDxkaXYgW2NsYXNzXT1cInsgaGlkZTogIW5ld1Byb2ZpbGVQYW5lbE9wZW5lZCgpLCBwYW5lbDogdHJ1ZSB9XCIgPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2ZpbGUtbGluZVwiIHN0b3AtcHJvcGFnYXRpb24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJuZXctbmFtZS1pbnB1dFwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaGludFwiPkVudGVyIE5ldyBOYW1lPC9pPlxyXG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCAjYWRkZWRLZXk9XCJtYXRJbnB1dFwiIFtuYW1lXT1cIidrZXknXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b24gW21hdFRvb2x0aXBdPVwiJ1RvZ2dsZSBQcm9maWxlIEJlaW5nIENyZWF0ZWQgQXMgRGVmYXVsdCdcIiBzdG9wLXByb3BhZ2F0aW9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibTIudG9nZ2xlKClcIiA+XHJcbiAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiY29sb3I6IGdyZWVuO1wiPnt7bTIuY2hlY2tlZCA/ICdzdGFyJyA6ICdzdGFyX2JvcmRlcid9fTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwiZGlzcGxheS1ub25lXCIgW25nTW9kZWxdPVwiISRkZWZhdWx0UHJvZmlsZSgpXCIgI20yIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJhZGQtYnV0dG9uXCIgY29sb3I9XCJwcmltYXJ5XCIgW21hdFRvb2x0aXBdPVwiJ0NyZWF0ZSBOZXcgUHJvZmlsZSdcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkU3RhdGUoYWRkZWRLZXkudmFsdWUsIG0yLmNoZWNrZWQpOyBhZGRlZEtleS52YWx1ZSA9IG51bGxcIiBbZGlzYWJsZWRdPVwiIWFkZGVkS2V5LnZhbHVlXCI+XHJcbiAgICAgIEFkZFxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbWF0LW1lbnU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xpbmUgbGV0LWtleT5cclxuXHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -33,10 +33,10 @@ export class SortMenuComponentStore extends ComponentStore {
|
|
|
33
33
|
]).pipe(map(([sorted, notSorted]) => ({ sorted, notSorted }))));
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
37
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SortMenuComponentStore, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SortMenuComponentStore }); }
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: SortMenuComponentStore, decorators: [{
|
|
40
40
|
type: Injectable
|
|
41
41
|
}], ctorParameters: () => [{ type: i1.TableStore }] });
|
|
42
42
|
const equalSortArray = (arr1, arr2) => arr1.length === arr2.length && arr2.every(s1 => arr1.some(s2 => s1.active === s2.active));
|