@one-paragon/angular-utilities 1.3.0 → 1.3.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/fesm2022/one-paragon-angular-utilities.mjs +251 -252
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
- package/http-request-state/HttpRequestStateStore.d.ts +1 -1
- package/http-request-state/directives/HttpStateDirectiveBase.d.ts +1 -1
- package/package.json +1 -3
- package/rxjs/subscriber.directive.d.ts +1 -1
- package/table-builder/classes/table-store.d.ts +3 -3
- package/table-builder/components/link-column.component.d.ts +3 -3
- package/table-builder/components/table-container/table-container-imports.d.ts +1 -1
- package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +1 -1
- package/table-builder/directives/tb-filter.directive.d.ts +3 -3
- package/table-builder/ngrx/tableBuilderStateStore.d.ts +4 -4
- package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +0 -24
- package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +0 -20
- package/esm2022/action-state/index.mjs +0 -8
- package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +0 -23
- package/esm2022/action-state/ngrx.mjs +0 -47
- package/esm2022/http-request-state/HttpRequestStateFactory.mjs +0 -51
- package/esm2022/http-request-state/HttpRequestStateStore.mjs +0 -135
- package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +0 -30
- package/esm2022/http-request-state/directives/http-error-state-directive.mjs +0 -23
- package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +0 -23
- package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +0 -23
- package/esm2022/http-request-state/directives/http-success-state-directive.mjs +0 -29
- package/esm2022/http-request-state/directives/index.mjs +0 -6
- package/esm2022/http-request-state/directives/request-state-directive.mjs +0 -61
- package/esm2022/http-request-state/helpers.mjs +0 -22
- package/esm2022/http-request-state/http-request-state.mjs +0 -39
- package/esm2022/http-request-state/http-state-module.mjs +0 -40
- package/esm2022/http-request-state/index.mjs +0 -7
- package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +0 -4
- package/esm2022/http-request-state/rxjs/getRequestorState.mjs +0 -3
- package/esm2022/http-request-state/rxjs/index.mjs +0 -5
- package/esm2022/http-request-state/rxjs/tapError.mjs +0 -12
- package/esm2022/http-request-state/rxjs/tapSuccess.mjs +0 -12
- package/esm2022/http-request-state/types.mjs +0 -16
- package/esm2022/ngrx/actionable-selector.mjs +0 -107
- package/esm2022/ngrx/index.mjs +0 -2
- package/esm2022/one-paragon-angular-utilities.mjs +0 -5
- package/esm2022/public-api.mjs +0 -20
- package/esm2022/rxjs/defaultShareReplay.mjs +0 -7
- package/esm2022/rxjs/index.mjs +0 -6
- package/esm2022/rxjs/mapError.mjs +0 -8
- package/esm2022/rxjs/rxjs-operators.mjs +0 -92
- package/esm2022/rxjs/subjectifier.mjs +0 -15
- package/esm2022/rxjs/subscriber.directive.mjs +0 -50
- package/esm2022/table-builder/classes/DefaultSettings.mjs +0 -6
- package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +0 -23
- package/esm2022/table-builder/classes/TableBuilderConfig.mjs +0 -18
- package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +0 -48
- package/esm2022/table-builder/classes/TableState.mjs +0 -48
- package/esm2022/table-builder/classes/data-store.mjs +0 -15
- package/esm2022/table-builder/classes/display-col.mjs +0 -2
- package/esm2022/table-builder/classes/filter-info.mjs +0 -61
- package/esm2022/table-builder/classes/table-builder-general-settings.mjs +0 -116
- package/esm2022/table-builder/classes/table-builder.mjs +0 -77
- package/esm2022/table-builder/classes/table-store.mjs +0 -388
- package/esm2022/table-builder/components/array-column.component.mjs +0 -53
- package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +0 -145
- package/esm2022/table-builder/components/column-builder/column-helpers.mjs +0 -45
- package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +0 -29
- package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +0 -24
- package/esm2022/table-builder/components/filter/filter.component.mjs +0 -64
- package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +0 -102
- package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +0 -47
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +0 -306
- package/esm2022/table-builder/components/generic-table/paginator.component.mjs +0 -104
- package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +0 -21
- package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +0 -103
- package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +0 -65
- package/esm2022/table-builder/components/index.mjs +0 -10
- package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +0 -47
- package/esm2022/table-builder/components/link-column.component.mjs +0 -74
- package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +0 -29
- package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +0 -64
- package/esm2022/table-builder/components/scroll-strategy.mjs +0 -60
- package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +0 -46
- package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +0 -82
- package/esm2022/table-builder/components/table-container/table-container-imports.mjs +0 -26
- package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +0 -135
- package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +0 -83
- package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +0 -71
- package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +0 -36
- package/esm2022/table-builder/components/table-container/table-container.mjs +0 -334
- package/esm2022/table-builder/components/table-container/tableProps.mjs +0 -8
- package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +0 -155
- package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +0 -44
- package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +0 -35
- package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +0 -25
- package/esm2022/table-builder/directives/custom-cell-directive.mjs +0 -73
- package/esm2022/table-builder/directives/index.mjs +0 -6
- package/esm2022/table-builder/directives/multi-sort.directive.mjs +0 -50
- package/esm2022/table-builder/directives/resize-column.directive.mjs +0 -87
- package/esm2022/table-builder/directives/table-wrapper.directive.mjs +0 -18
- package/esm2022/table-builder/directives/tb-filter.directive.mjs +0 -396
- package/esm2022/table-builder/enums/filterTypes.mjs +0 -29
- package/esm2022/table-builder/functions/boolean-filter-function.mjs +0 -10
- package/esm2022/table-builder/functions/date-filter-function.mjs +0 -58
- package/esm2022/table-builder/functions/download-data.mjs +0 -12
- package/esm2022/table-builder/functions/null-filter-function.mjs +0 -8
- package/esm2022/table-builder/functions/number-filter-function.mjs +0 -32
- package/esm2022/table-builder/functions/sort-data-function.mjs +0 -17
- package/esm2022/table-builder/functions/string-filter-function.mjs +0 -41
- package/esm2022/table-builder/interfaces/ColumnInfo.mjs +0 -2
- package/esm2022/table-builder/interfaces/dictionary.mjs +0 -2
- package/esm2022/table-builder/interfaces/report-def.mjs +0 -50
- package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +0 -154
- package/esm2022/table-builder/pipes/column-total.pipe.mjs +0 -22
- package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +0 -18
- package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +0 -43
- package/esm2022/table-builder/pipes/key-display.mjs +0 -18
- package/esm2022/table-builder/services/export-to-csv.service.mjs +0 -75
- package/esm2022/table-builder/services/link-creator.service.mjs +0 -50
- package/esm2022/table-builder/services/table-template-service.mjs +0 -60
- package/esm2022/table-builder/services/transform-creator.mjs +0 -100
- package/esm2022/table-builder/table-builder.module.mjs +0 -124
- package/esm2022/utilities/array-helpers.mjs +0 -14
- package/esm2022/utilities/directives/auto-focus.directive.mjs +0 -25
- package/esm2022/utilities/directives/clickEmitterDirective.mjs +0 -22
- package/esm2022/utilities/directives/clickSubject.mjs +0 -29
- package/esm2022/utilities/directives/conditional-classes.directive.mjs +0 -36
- package/esm2022/utilities/directives/dialog-service.mjs +0 -21
- package/esm2022/utilities/directives/dialog.mjs +0 -145
- package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +0 -59
- package/esm2022/utilities/directives/prevent-enter.directive.mjs +0 -20
- package/esm2022/utilities/directives/stop-propagation.directive.mjs +0 -26
- package/esm2022/utilities/directives/styler.mjs +0 -41
- package/esm2022/utilities/directives/trim-whitespace.directive.mjs +0 -28
- package/esm2022/utilities/index.mjs +0 -16
- package/esm2022/utilities/module.mjs +0 -90
- package/esm2022/utilities/pipes/function.pipe.mjs +0 -22
- package/esm2022/utilities/pipes/phone.pipe.mjs +0 -20
- package/esm2022/utilities/pipes/space-case.pipes.mjs +0 -28
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, input, computed } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ArrayCommaColumnComponent {
|
|
4
|
-
value = input.required();
|
|
5
|
-
additional = input(3);
|
|
6
|
-
displayArray = computed(() => (this.value() || []).slice(0, this.additional()));
|
|
7
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ArrayCommaColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ArrayCommaColumnComponent, isStandalone: true, selector: "tb-comma-array-column", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, additional: { classPropertyName: "additional", publicName: "additional", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
9
|
-
@for(val of displayArray(); track $index){
|
|
10
|
-
{{val + (!$last ? ',' : '')}}
|
|
11
|
-
}
|
|
12
|
-
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ArrayCommaColumnComponent, decorators: [{
|
|
15
|
-
type: Component,
|
|
16
|
-
args: [{
|
|
17
|
-
selector: 'tb-comma-array-column',
|
|
18
|
-
standalone: true,
|
|
19
|
-
template: `
|
|
20
|
-
@for(val of displayArray(); track $index){
|
|
21
|
-
{{val + (!$last ? ',' : '')}}
|
|
22
|
-
}
|
|
23
|
-
`,
|
|
24
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
27
|
-
export class ArrayNewLineColumnComponent {
|
|
28
|
-
value = input.required();
|
|
29
|
-
additional = input(3);
|
|
30
|
-
displayArray = computed(() => (this.value() || []).slice(0, this.additional()));
|
|
31
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ArrayNewLineColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ArrayNewLineColumnComponent, isStandalone: true, selector: "tb-new-line-array-column", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, additional: { classPropertyName: "additional", publicName: "additional", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
33
|
-
@for(val of displayArray(); track $index){
|
|
34
|
-
{{val}}
|
|
35
|
-
@if(!$last){ <br/> }
|
|
36
|
-
}
|
|
37
|
-
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ArrayNewLineColumnComponent, decorators: [{
|
|
40
|
-
type: Component,
|
|
41
|
-
args: [{
|
|
42
|
-
selector: 'tb-new-line-array-column',
|
|
43
|
-
standalone: true,
|
|
44
|
-
template: `
|
|
45
|
-
@for(val of displayArray(); track $index){
|
|
46
|
-
{{val}}
|
|
47
|
-
@if(!$last){ <br/> }
|
|
48
|
-
}
|
|
49
|
-
`,
|
|
50
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
51
|
-
}]
|
|
52
|
-
}] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvYXJyYXktY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWXBGLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXVCLENBQUM7SUFDOUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQTt1R0FKcEUseUJBQXlCOzJGQUF6Qix5QkFBeUIsMlZBUDFCOzs7O0dBSVQ7OzJGQUdVLHlCQUF5QjtrQkFWckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOztBQW9CRCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF1QixDQUFDO0lBQzlDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7dUdBSHJFLDJCQUEyQjsyRkFBM0IsMkJBQTJCLDhWQVI1Qjs7Ozs7R0FLVDs7MkZBR1UsMkJBQTJCO2tCQVh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7O0dBS1Q7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWNvbW1hLWFycmF5LWNvbHVtbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIEBmb3IodmFsIG9mIGRpc3BsYXlBcnJheSgpOyB0cmFjayAkaW5kZXgpe1xyXG4gICAgICAgICAge3t2YWwgKyAoISRsYXN0ID8gJywnIDogJycpfX1cclxuICAgICAgICB9XHJcbiAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJyYXlDb21tYUNvbHVtbkNvbXBvbmVudCB7XHJcblxyXG4gIHZhbHVlID0gaW5wdXQucmVxdWlyZWQ8KHN0cmluZyB8IG51bWJlcilbXT4oKTtcclxuICBhZGRpdGlvbmFsID0gaW5wdXQoMyk7XHJcbiAgZGlzcGxheUFycmF5ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMudmFsdWUoKSB8fCBbXSkuc2xpY2UoMCwgdGhpcy5hZGRpdGlvbmFsKCkpKVxyXG59XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1uZXctbGluZS1hcnJheS1jb2x1bW4nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgdGVtcGxhdGU6IGBcclxuICBAZm9yKHZhbCBvZiBkaXNwbGF5QXJyYXkoKTsgdHJhY2sgJGluZGV4KXtcclxuICAgICAgICAgIHt7dmFsfX1cclxuICAgICAgICAgIEBpZighJGxhc3QpeyA8YnIvPiB9XHJcbiAgICAgICAgfVxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFycmF5TmV3TGluZUNvbHVtbkNvbXBvbmVudCB7XHJcbiAgdmFsdWUgPSBpbnB1dC5yZXF1aXJlZDwoc3RyaW5nIHwgbnVtYmVyKVtdPigpO1xyXG4gIGFkZGl0aW9uYWwgPSBpbnB1dCgzKTtcclxuICBkaXNwbGF5QXJyYXkgPSBjb21wdXRlZCgoKSA9PiAodGhpcy52YWx1ZSgpIHx8IFtdKS5zbGljZSgwLCB0aGlzLmFkZGl0aW9uYWwoKSkpO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, ViewChild, Injector, computed, inject } from '@angular/core';
|
|
2
|
-
import { FieldType } from '../../interfaces/report-def';
|
|
3
|
-
import { MatColumnDef, MatTable, MatTableModule } from '@angular/material/table';
|
|
4
|
-
import { ResizeColumnDirective } from '../../directives';
|
|
5
|
-
import { TransformCreator } from '../../services/transform-creator';
|
|
6
|
-
import { TableStore } from '../../classes/table-store';
|
|
7
|
-
import { map } from 'rxjs/operators';
|
|
8
|
-
import { TableTemplateService } from '../../services/table-template-service';
|
|
9
|
-
import { CdkDropList, CDK_DROP_LIST, DragDropModule } from '@angular/cdk/drag-drop';
|
|
10
|
-
import { AsyncPipe, CurrencyPipe, DecimalPipe, NgTemplateOutlet } from '@angular/common';
|
|
11
|
-
import { ConditionalClassesDirective, FunctionPipe, SpaceCasePipe } from '../../../utilities';
|
|
12
|
-
import { MatSortModule } from '@angular/material/sort';
|
|
13
|
-
import { HeaderMenuComponent } from '../header-menu/header-menu.component';
|
|
14
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
15
|
-
import { LetDirective } from '@ngrx/component';
|
|
16
|
-
import { ColumnTotalPipe } from '../../pipes/column-total.pipe';
|
|
17
|
-
import { StylerDirective } from '../../../utilities/directives/styler';
|
|
18
|
-
import { columnStyles } from './column-helpers';
|
|
19
|
-
import { TableBuilderConfigToken } from '../../classes/TableBuilderConfig';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/material/table";
|
|
22
|
-
import * as i2 from "@angular/cdk/drag-drop";
|
|
23
|
-
import * as i3 from "@angular/material/sort";
|
|
24
|
-
import * as i4 from "@angular/material/tooltip";
|
|
25
|
-
export class ColumnBuilderComponent {
|
|
26
|
-
transformCreator = inject(TransformCreator);
|
|
27
|
-
table = inject(MatTable);
|
|
28
|
-
state = inject(TableStore);
|
|
29
|
-
templateService = inject(TableTemplateService);
|
|
30
|
-
injector = inject(Injector);
|
|
31
|
-
columnDef;
|
|
32
|
-
bodyTemplate;
|
|
33
|
-
tableConfig = inject(TableBuilderConfigToken);
|
|
34
|
-
FieldType = FieldType;
|
|
35
|
-
filter;
|
|
36
|
-
_metaData;
|
|
37
|
-
get metaData() {
|
|
38
|
-
return this._metaData;
|
|
39
|
-
}
|
|
40
|
-
set metaData(md) {
|
|
41
|
-
if (this.metaData && this.metaData.fieldType !== md.fieldType) {
|
|
42
|
-
this._metaData = md;
|
|
43
|
-
this.initialSetUp();
|
|
44
|
-
this.furtherSetUp();
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this._metaData = md;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
customCell = undefined;
|
|
51
|
-
data$;
|
|
52
|
-
outerTemplate;
|
|
53
|
-
innerTemplate;
|
|
54
|
-
transform;
|
|
55
|
-
getInnerTemplate() {
|
|
56
|
-
if (this.metaData.template)
|
|
57
|
-
return this.metaData.template;
|
|
58
|
-
if (this.customCell?.TemplateRef)
|
|
59
|
-
return this.customCell.TemplateRef;
|
|
60
|
-
return this.templateService.getTemplate(this.metaData);
|
|
61
|
-
}
|
|
62
|
-
showFilters$;
|
|
63
|
-
getOuterTemplate() {
|
|
64
|
-
return this.customCell?.columnDef?.cell?.template ?? this.bodyTemplate;
|
|
65
|
-
}
|
|
66
|
-
classes;
|
|
67
|
-
styles = computed(() => {
|
|
68
|
-
return columnStyles(this.metaData, this.state.$getUserDefinedWidth(this.metaData.key)(), this.state.tableSettingsMinWidth());
|
|
69
|
-
});
|
|
70
|
-
ngOnInit() {
|
|
71
|
-
this.initialSetUp();
|
|
72
|
-
}
|
|
73
|
-
viewInited = false;
|
|
74
|
-
ngAfterViewInit() {
|
|
75
|
-
this.furtherSetUp();
|
|
76
|
-
this.table.addColumnDef(this.columnDef);
|
|
77
|
-
this.onViewInit();
|
|
78
|
-
this.viewInited = true;
|
|
79
|
-
}
|
|
80
|
-
onViewInit = () => { };
|
|
81
|
-
whenViewInited = (callback) => {
|
|
82
|
-
if (this.viewInited) {
|
|
83
|
-
callback();
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
this.onViewInit = callback;
|
|
87
|
-
};
|
|
88
|
-
initialSetUp() {
|
|
89
|
-
if (this.metaData.fieldType === FieldType.Currency) {
|
|
90
|
-
this.classes = {
|
|
91
|
-
['negative-currency']: (element) => element[this.metaData.key] < 0,
|
|
92
|
-
...this.metaData.classes
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
this.classes = this.metaData.classes;
|
|
97
|
-
}
|
|
98
|
-
this.filter = { key: this.metaData.key, fieldType: this.metaData.fieldType };
|
|
99
|
-
this.showFilters$ = this.state.tableSettings$.pipe(map(settings => !(settings.hideColumnHeaderFilters || this.metaData.noFilter)));
|
|
100
|
-
this.additional = this.metaData.fieldType === FieldType.Link
|
|
101
|
-
? this.state.getLinkInfo(this.metaData)()
|
|
102
|
-
:
|
|
103
|
-
this.metaData.fieldType === FieldType.Array
|
|
104
|
-
? this.metaData.additional?.limit || this.tableConfig?.arrayDefaults?.arrayStyle
|
|
105
|
-
: undefined;
|
|
106
|
-
}
|
|
107
|
-
furtherSetUp() {
|
|
108
|
-
this.outerTemplate = this.getOuterTemplate();
|
|
109
|
-
this.innerTemplate = this.getInnerTemplate();
|
|
110
|
-
this.transform = this.transformCreator.createTransformer(this.metaData);
|
|
111
|
-
}
|
|
112
|
-
cellClicked(element, key) {
|
|
113
|
-
if (this.metaData.click) {
|
|
114
|
-
this.metaData.click(element, key);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
getTooltip = (element) => {
|
|
118
|
-
if (typeof this.metaData.toolTip === 'string') {
|
|
119
|
-
return this.metaData.toolTip;
|
|
120
|
-
}
|
|
121
|
-
return this.metaData.toolTip(element);
|
|
122
|
-
};
|
|
123
|
-
additional;
|
|
124
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ColumnBuilderComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles() as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n <mat-header-cell cdkDrag [style]='styles.header' resizeColumn [key]=\"metaData.key\" class=\"column-head\"\r\n [class]='metaData.additional?.columnPartClasses?.header'>\r\n <div class=\"header-container\" cdkDragHandle>\r\n @if(!customCell?.columnDef?.headerCell)\r\n {\r\n @if(metaData.fieldType !== FieldType.NotMapped){\r\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n } @else if(metaData.fieldType === FieldType.NotMapped){\r\n <div style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n }\r\n @if((showFilters$ | async)){\r\n <tb-header-menu #menu [metaData]='metaData' />\r\n }\r\n }\r\n @else\r\n {\r\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef!.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\r\n </ng-container>\r\n }\r\n </div>\r\n </mat-header-cell>\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: { metaData: metaData, element: element , styles: styles.body, $implicit: element }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ? (getTooltip | func : element) : ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate; context: { value: (transform | func : element), element: element, additional: additional, $implicit: element }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n\r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n @if(customCell?.columnDef?.footerCell){\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell!.columnDef!.footerCell.template; context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n } @else {\r\n <mat-footer-cell [style]='styles.footer' *ngrxLet=\"data$ as data\" [class]='metaData.additional?.columnPartClasses?.footer'>\r\n @if(!!data?.length && metaData.additional?.footer){\r\n <span class=\"bold\">\r\n @switch (metaData.fieldType) {\r\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\r\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\r\n }\r\n </span>\r\n }\r\n\r\n </mat-footer-cell>\r\n }\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:#fff;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "directive", type: i1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i1.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { kind: "pipe", type: FunctionPipe, name: "func" }, { kind: "directive", type: StylerDirective, selector: "[styler]", inputs: ["element", "styler"] }, { kind: "directive", type: ConditionalClassesDirective, selector: "[conditionalClasses]", inputs: ["element", "conditionalClasses"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "component", type: i3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }, { kind: "component", type: HeaderMenuComponent, selector: "tb-header-menu", inputs: ["metaData"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "pipe", type: ColumnTotalPipe, name: "columnTotal" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DecimalPipe, name: "number" }], viewProviders: [
|
|
126
|
-
{ provide: CDK_DROP_LIST, useExisting: CdkDropList },
|
|
127
|
-
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
128
|
-
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnBuilderComponent, decorators: [{
|
|
130
|
-
type: Component,
|
|
131
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [
|
|
132
|
-
{ provide: CDK_DROP_LIST, useExisting: CdkDropList },
|
|
133
|
-
], standalone: true, imports: [
|
|
134
|
-
MatTableModule, NgTemplateOutlet, ResizeColumnDirective, FunctionPipe, StylerDirective,
|
|
135
|
-
ConditionalClassesDirective, DragDropModule, MatSortModule, SpaceCasePipe, HeaderMenuComponent,
|
|
136
|
-
AsyncPipe, MatTooltipModule, LetDirective, ColumnTotalPipe, CurrencyPipe, DecimalPipe
|
|
137
|
-
], template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles() as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n <mat-header-cell cdkDrag [style]='styles.header' resizeColumn [key]=\"metaData.key\" class=\"column-head\"\r\n [class]='metaData.additional?.columnPartClasses?.header'>\r\n <div class=\"header-container\" cdkDragHandle>\r\n @if(!customCell?.columnDef?.headerCell)\r\n {\r\n @if(metaData.fieldType !== FieldType.NotMapped){\r\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n } @else if(metaData.fieldType === FieldType.NotMapped){\r\n <div style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n }\r\n @if((showFilters$ | async)){\r\n <tb-header-menu #menu [metaData]='metaData' />\r\n }\r\n }\r\n @else\r\n {\r\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef!.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\r\n </ng-container>\r\n }\r\n </div>\r\n </mat-header-cell>\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: { metaData: metaData, element: element , styles: styles.body, $implicit: element }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ? (getTooltip | func : element) : ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate; context: { value: (transform | func : element), element: element, additional: additional, $implicit: element }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n\r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n @if(customCell?.columnDef?.footerCell){\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell!.columnDef!.footerCell.template; context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n } @else {\r\n <mat-footer-cell [style]='styles.footer' *ngrxLet=\"data$ as data\" [class]='metaData.additional?.columnPartClasses?.footer'>\r\n @if(!!data?.length && metaData.additional?.footer){\r\n <span class=\"bold\">\r\n @switch (metaData.fieldType) {\r\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\r\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\r\n }\r\n </span>\r\n }\r\n\r\n </mat-footer-cell>\r\n }\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:#fff;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"] }]
|
|
138
|
-
}], propDecorators: { columnDef: [{
|
|
139
|
-
type: ViewChild,
|
|
140
|
-
args: [MatColumnDef]
|
|
141
|
-
}], bodyTemplate: [{
|
|
142
|
-
type: ViewChild,
|
|
143
|
-
args: ['body']
|
|
144
|
-
}] } });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQWUsU0FBUyxFQUFxQixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQW1CLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpGLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFD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WTtnQkFDSixZQUFZO3NCQUE5QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBPbkluaXQsIFByZWRpY2F0ZSwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXJyYXlBZGRpdGlvbmFsLCBGaWVsZFR5cGUsIE1ldGFEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgTWF0Q29sdW1uRGVmLCBNYXRUYWJsZSwgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSwgUmVzaXplQ29sdW1uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IEZpbHRlckluZm8gfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgVHJhbnNmb3JtQ3JlYXRvciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zZm9ybS1jcmVhdG9yJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhYmxlVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFibGUtdGVtcGxhdGUtc2VydmljZSc7XHJcbmltcG9ydCB7IENka0Ryb3BMaXN0LCBDREtfRFJPUF9MSVNULCBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnQG5ncngvZW50aXR5JztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBDdXJyZW5jeVBpcGUsIERlY2ltYWxQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29uZGl0aW9uYWxDbGFzc2VzRGlyZWN0aXZlLCBGdW5jdGlvblBpcGUsIFNwYWNlQ2FzZVBpcGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IEhlYWRlck1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IExldERpcmVjdGl2ZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtblRvdGFsUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NvbHVtbi10b3RhbC5waXBlJztcclxuaW1wb3J0IHsgU3R5bGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2RpcmVjdGl2ZXMvc3R5bGVyJztcclxuaW1wb3J0IHsgY29sdW1uU3R5bGVzIH0gZnJvbSAnLi9jb2x1bW4taGVscGVycyc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UYWJsZUJ1aWxkZXJDb25maWcnO1xyXG5pbXBvcnQgeyBMaW5rSW5mbyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmstY3JlYXRvci5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAgeyBwcm92aWRlOiBDREtfRFJPUF9MSVNULCB1c2VFeGlzdGluZzogQ2RrRHJvcExpc3QgfSxcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0VGFibGVNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXQsIFJlc2l6ZUNvbHVtbkRpcmVjdGl2ZSwgRnVuY3Rpb25QaXBlLCBTdHlsZXJEaXJlY3RpdmUsXHJcbiAgICBDb25kaXRpb25hbENsYXNzZXNEaXJlY3RpdmUsIERyYWdEcm9wTW9kdWxlLCBNYXRTb3J0TW9kdWxlLCBTcGFjZUNhc2VQaXBlLCBIZWFkZXJNZW51Q29tcG9uZW50LFxyXG4gICAgQXN5bmNQaXBlLCBNYXRUb29sdGlwTW9kdWxlLCBMZXREaXJlY3RpdmUsIENvbHVtblRvdGFsUGlwZSwgQ3VycmVuY3lQaXBlLCBEZWNpbWFsUGlwZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbHVtbkJ1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgdHJhbnNmb3JtQ3JlYXRvciA9IGluamVjdChUcmFuc2Zvcm1DcmVhdG9yKTtcclxuICBwcml2YXRlIHRhYmxlID0gaW5qZWN0PE1hdFRhYmxlPGFueT4+KE1hdFRhYmxlKTtcclxuICBwcml2YXRlIHN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xyXG4gIHByaXZhdGUgdGVtcGxhdGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlVGVtcGxhdGVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdENvbHVtbkRlZikgY29sdW1uRGVmITogTWF0Q29sdW1uRGVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2JvZHknKSBib2R5VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHRhYmxlQ29uZmlnID0gaW5qZWN0KFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuKTtcclxuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XHJcbiAgZmlsdGVyITogUGFydGlhbDxGaWx0ZXJJbmZvPjtcclxuICBfbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuICBnZXQgbWV0YURhdGEoKXtcclxuICAgIHJldHVybiB0aGlzLl9tZXRhRGF0YTtcclxuICB9XHJcbiAgc2V0IG1ldGFEYXRhKG1kOiBNZXRhRGF0YSl7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhICYmIHRoaXMubWV0YURhdGEuZmllbGRUeXBlICE9PSBtZC5maWVsZFR5cGUpe1xyXG4gICAgICB0aGlzLl9tZXRhRGF0YSA9IG1kO1xyXG4gICAgICB0aGlzLmluaXRpYWxTZXRVcCgpO1xyXG4gICAgICB0aGlzLmZ1cnRoZXJTZXRVcCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbWV0YURhdGEgPSBtZDtcclxuICAgIH1cclxuICB9XHJcbiAgY3VzdG9tQ2VsbD86IEN1c3RvbUNlbGxEaXJlY3RpdmUgPSB1bmRlZmluZWQ7XHJcbiAgZGF0YSQhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHJcbiAgb3V0ZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgaW5uZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgdHJhbnNmb3JtITogKG86IGFueSwgLi4uYXJnczogYW55W10pPT4gYW55IDtcclxuXHJcbiAgZ2V0SW5uZXJUZW1wbGF0ZSgpIDpUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIGlmKHRoaXMubWV0YURhdGEudGVtcGxhdGUpIHJldHVybiB0aGlzLm1ldGFEYXRhLnRlbXBsYXRlO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tQ2VsbD8uVGVtcGxhdGVSZWYpICByZXR1cm4gdGhpcy5jdXN0b21DZWxsLlRlbXBsYXRlUmVmO1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmdldFRlbXBsYXRlKHRoaXMubWV0YURhdGEpO1xyXG4gIH1cclxuICBzaG93RmlsdGVycyQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIGdldE91dGVyVGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXN0b21DZWxsPy5jb2x1bW5EZWY/LmNlbGw/LnRlbXBsYXRlID8/IHRoaXMuYm9keVRlbXBsYXRlO1xyXG4gIH1cclxuICBjbGFzc2VzPzogRGljdGlvbmFyeTxQcmVkaWNhdGU8YW55Pj47XHJcbiAgc3R5bGVzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIGNvbHVtblN0eWxlcyh0aGlzLm1ldGFEYXRhLCB0aGlzLnN0YXRlLiRnZXRVc2VyRGVmaW5lZFdpZHRoKHRoaXMubWV0YURhdGEua2V5KSgpLCB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3NNaW5XaWR0aCgpKTtcclxuICB9KVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0aWFsU2V0VXAoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmlld0luaXRlZCA9IGZhbHNlO1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZnVydGhlclNldFVwKCk7XHJcbiAgICB0aGlzLnRhYmxlLmFkZENvbHVtbkRlZih0aGlzLmNvbHVtbkRlZik7XHJcbiAgICB0aGlzLm9uVmlld0luaXQoKTtcclxuICAgIHRoaXMudmlld0luaXRlZCA9IHRydWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgb25WaWV3SW5pdDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHdoZW5WaWV3SW5pdGVkID0gKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSA9PiB7XHJcbiAgICBpZih0aGlzLnZpZXdJbml0ZWQpIHtcclxuICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblZpZXdJbml0ID0gY2FsbGJhY2s7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsU2V0VXAoKXtcclxuICAgIGlmKHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ3VycmVuY3kpIHtcclxuICAgICAgdGhpcy5jbGFzc2VzID0ge1xyXG4gICAgICAgIFsnbmVnYXRpdmUtY3VycmVuY3knXTogKGVsZW1lbnQpID0+IGVsZW1lbnRbdGhpcy5tZXRhRGF0YS5rZXldIDwgMCxcclxuICAgICAgICAuLi50aGlzLm1ldGFEYXRhLmNsYXNzZXNcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xhc3NlcyA9IHRoaXMubWV0YURhdGEuY2xhc3NlcztcclxuICAgIH1cclxuICAgIHRoaXMuZmlsdGVyID0ge2tleTogdGhpcy5tZXRhRGF0YS5rZXksIGZpZWxkVHlwZTogdGhpcy5tZXRhRGF0YS5maWVsZFR5cGV9O1xyXG5cclxuICAgIHRoaXMuc2hvd0ZpbHRlcnMkID0gdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzJC5waXBlKG1hcChzZXR0aW5ncyA9PiAhKHNldHRpbmdzLmhpZGVDb2x1bW5IZWFkZXJGaWx0ZXJzIHx8IHRoaXMubWV0YURhdGEubm9GaWx0ZXIpKSk7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWwgPSB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkxpbmtcclxuICAgICAgPyB0aGlzLnN0YXRlLmdldExpbmtJbmZvKHRoaXMubWV0YURhdGEpKClcclxuICAgICAgOlxyXG4gICAgICB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkFycmF5XHJcbiAgICAgID8gKHRoaXMubWV0YURhdGEuYWRkaXRpb25hbCBhcyBBcnJheUFkZGl0aW9uYWwpPy5saW1pdCB8fCB0aGlzLnRhYmxlQ29uZmlnPy5hcnJheURlZmF1bHRzPy5hcnJheVN0eWxlXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZnVydGhlclNldFVwKCl7XHJcbiAgICB0aGlzLm91dGVyVGVtcGxhdGUgPSB0aGlzLmdldE91dGVyVGVtcGxhdGUoKTtcclxuICAgIHRoaXMuaW5uZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0SW5uZXJUZW1wbGF0ZSgpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybUNyZWF0b3IuY3JlYXRlVHJhbnNmb3JtZXIodGhpcy5tZXRhRGF0YSk7XHJcbiAgfVxyXG5cclxuICBjZWxsQ2xpY2tlZChlbGVtZW50OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhLmNsaWNrKSB7XHJcbiAgICAgIHRoaXMubWV0YURhdGEuY2xpY2soZWxlbWVudCxrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VG9vbHRpcCA9IChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgIGlmKHR5cGVvZiB0aGlzLm1ldGFEYXRhLnRvb2xUaXAgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1ldGFEYXRhLnRvb2xUaXA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5tZXRhRGF0YS50b29sVGlwIShlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGFkZGl0aW9uYWw6IExpbmtJbmZvIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJtZXRhRGF0YS5rZXlcIiAqbmdyeExldD1cInN0eWxlcygpIGFzIHN0eWxlc1wiID5cclxuXHJcbiAgPCEtLSBoZWFkZXIgLS0+XHJcbiAgPG5nLXRlbXBsYXRlIG1hdEhlYWRlckNlbGxEZWYgI215SGVhZGVyPlxyXG4gICAgPG1hdC1oZWFkZXItY2VsbCBjZGtEcmFnIFtzdHlsZV09J3N0eWxlcy5oZWFkZXInIHJlc2l6ZUNvbHVtbiBba2V5XT1cIm1ldGFEYXRhLmtleVwiIGNsYXNzPVwiY29sdW1uLWhlYWRcIlxyXG4gICAgICBbY2xhc3NdPSdtZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0Q2xhc3Nlcz8uaGVhZGVyJz5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgIEBpZighY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5oZWFkZXJDZWxsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgQGlmKG1ldGFEYXRhLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLk5vdE1hcHBlZCl7XHJcbiAgICAgICAgICAgICAgPGRpdiBtYXQtc29ydC1oZWFkZXIgW2Rpc2FibGVkXT1cIm1ldGFEYXRhLm5vU29ydFwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICAgICAgICAgIHt7IG1ldGFEYXRhLmRpc3BsYXlOYW1lID8gIG1ldGFEYXRhLmRpc3BsYXlOYW1lIDogKCBtZXRhRGF0YS5rZXkgfCBzcGFjZUNhc2UgKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIGlmKG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLk5vdE1hcHBlZCl7XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBtZXRhRGF0YS5kaXNwbGF5TmFtZSA/ICBtZXRhRGF0YS5kaXNwbGF5TmFtZSA6ICggbWV0YURhdGEua2V5IHwgc3BhY2VDYXNlICkgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYoKHNob3dGaWx0ZXJzJCB8IGFzeW5jKSl7XHJcbiAgICAgICAgICAgICAgPHRiLWhlYWRlci1tZW51ICNtZW51IFttZXRhRGF0YV09J21ldGFEYXRhJyAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNlbGwhLmNvbHVtbkRlZiEuaGVhZGVyQ2VsbC50ZW1wbGF0ZTsgY29udGV4dDoge21ldGFEYXRhOiBtZXRhRGF0YSwgc3R5bGVzOiAgc3R5bGVzLmhlYWRlcn0gXCI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPCEtLSBib2R5IC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvdXRlclRlbXBsYXRlOyBjb250ZXh0OiB7IG1ldGFEYXRhOiBtZXRhRGF0YSwgZWxlbWVudDogZWxlbWVudCAsIHN0eWxlczogc3R5bGVzLmJvZHksICRpbXBsaWNpdDogZWxlbWVudCB9XCIvPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYm9keSBsZXQtZWxlbWVudD0nZWxlbWVudCcgPlxyXG4gICAgPG1hdC1jZWxsICBbbWF0VG9vbHRpcF09XCJtZXRhRGF0YS50b29sVGlwID8gKGdldFRvb2x0aXAgfCBmdW5jIDogZWxlbWVudCkgOiAnJ1wiICBbY29uZGl0aW9uYWxDbGFzc2VzXT0nbWV0YURhdGEuY2xhc3NlcycgW2VsZW1lbnRdPSdlbGVtZW50JyBbc3R5bGVyXT0nc3R5bGVzLmJvZHknIChjbGljayk9J2NlbGxDbGlja2VkKGVsZW1lbnQsIG1ldGFEYXRhLmtleSknID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgdmFsdWU6ICh0cmFuc2Zvcm0gfCBmdW5jIDogZWxlbWVudCksIGVsZW1lbnQ6IGVsZW1lbnQsIGFkZGl0aW9uYWw6IGFkZGl0aW9uYWwsICRpbXBsaWNpdDogZWxlbWVudCB9OyBJbmplY3RvcjogaW5qZWN0b3JcIiAvPlxyXG4gICAgPC9tYXQtY2VsbD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIGZvb3RlciAtLT5cclxuICA8bmctdGVtcGxhdGUgbWF0Rm9vdGVyQ2VsbERlZj5cclxuICAgIEBpZihjdXN0b21DZWxsPy5jb2x1bW5EZWY/LmZvb3RlckNlbGwpe1xyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ2VsbCEuY29sdW1uRGVmIS5mb290ZXJDZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBkYXRhOiBkYXRhJCwgc3R5bGVzIDogc3R5bGVzLmZvb3RlciB9XCIvPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxtYXQtZm9vdGVyLWNlbGwgIFtzdHlsZV09J3N0eWxlcy5mb290ZXInICpuZ3J4TGV0PVwiZGF0YSQgYXMgZGF0YVwiIFtjbGFzc109J21ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRDbGFzc2VzPy5mb290ZXInPlxyXG4gICAgICAgIEBpZighIWRhdGE/Lmxlbmd0aCAmJiBtZXRhRGF0YS5hZGRpdGlvbmFsPy5mb290ZXIpe1xyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2xkXCI+XHJcbiAgICAgICAgICAgIEBzd2l0Y2ggKG1ldGFEYXRhLmZpZWxkVHlwZSkge1xyXG4gICAgICAgICAgICAgIEBjYXNlIChGaWVsZFR5cGUuQ3VycmVuY3kpIHsge3sgZGF0YSB8IGNvbHVtblRvdGFsOiBtZXRhRGF0YSB8IGN1cnJlbmN5IH19IH1cclxuICAgICAgICAgICAgICBAY2FzZSAoRmllbGRUeXBlLk51bWJlcikgeyB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgbnVtYmVyIH19IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIDwvbWF0LWZvb3Rlci1jZWxsPlxyXG4gICAgfVxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { metaDataArrToDict } from "../../interfaces/report-def";
|
|
2
|
-
export const calculateWidths = (metaData, userDefinedWidth) => {
|
|
3
|
-
const definedWidth = (userDefinedWidth && `${userDefinedWidth}px`) || metaData.width;
|
|
4
|
-
return definedWidth;
|
|
5
|
-
};
|
|
6
|
-
export function calculateUserDefinedWidth(userDefinedWidth) {
|
|
7
|
-
if (userDefinedWidth)
|
|
8
|
-
return { flex: `0 0 ${userDefinedWidth}px`, maxWidth: 'none' };
|
|
9
|
-
return undefined;
|
|
10
|
-
}
|
|
11
|
-
export function calculateTableDefinedWidth(metaData, tableSettingsMinWidth) {
|
|
12
|
-
if (metaData.width)
|
|
13
|
-
return ({ flex: `0 0 ${metaData.width}`, maxWidth: 'none' });
|
|
14
|
-
const style = { flex: `${1}` };
|
|
15
|
-
if (tableSettingsMinWidth)
|
|
16
|
-
style['minWidth'] = `${tableSettingsMinWidth}px`;
|
|
17
|
-
return style;
|
|
18
|
-
}
|
|
19
|
-
export const calculateFlexWidth = (metaData, userDefinedWidth, tableSettingsMinWidth) => {
|
|
20
|
-
const definedWidth = calculateWidths(metaData, userDefinedWidth);
|
|
21
|
-
if (definedWidth)
|
|
22
|
-
return ({ flex: `0 0 ${definedWidth}`, maxWidth: 'none' });
|
|
23
|
-
const style = { flex: `${1}` };
|
|
24
|
-
if (tableSettingsMinWidth)
|
|
25
|
-
style['minWidth'] = `${tableSettingsMinWidth}px`;
|
|
26
|
-
return style;
|
|
27
|
-
};
|
|
28
|
-
export const columnStyles = (metaData, userDefinedWidth, tableSettingsMinWidth) => {
|
|
29
|
-
const fullMetaStyles = metaData.additional?.styles ?? {};
|
|
30
|
-
const userWidth = calculateUserDefinedWidth(userDefinedWidth) ?? {};
|
|
31
|
-
const tableWidth = userDefinedWidth ? {} : calculateTableDefinedWidth(metaData, tableSettingsMinWidth);
|
|
32
|
-
const styles = {
|
|
33
|
-
header: { ...tableWidth, ...fullMetaStyles, ...metaData.additional?.columnPartStyles?.header, ...userWidth },
|
|
34
|
-
footer: { ...tableWidth, ...fullMetaStyles, ...metaData.additional?.columnPartStyles?.footer, ...userWidth },
|
|
35
|
-
body: { ...tableWidth, ...fullMetaStyles, ...metaData.additional?.columnPartStyles?.body, ...userWidth },
|
|
36
|
-
};
|
|
37
|
-
return styles;
|
|
38
|
-
};
|
|
39
|
-
export const calculateFlexWidths = (metaDatas, userDefinedWidths, tableSettingsMinWidth) => {
|
|
40
|
-
return metaDataArrToDict(metaDatas, md => calculateFlexWidth(md, userDefinedWidths[md.key], tableSettingsMinWidth));
|
|
41
|
-
};
|
|
42
|
-
export const columnsStyles = (metaDatas, userDefinedWidths) => {
|
|
43
|
-
return metaDataArrToDict(metaDatas, md => columnStyles(md, userDefinedWidths[md.key]));
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3hFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWtCLEVBQUUsZ0JBQW9DLEVBQUUsRUFBRTtJQUMxRixNQUFNLFlBQVksR0FBRyxDQUFDLGdCQUFnQixJQUFJLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDckYsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGdCQUFvQztJQUM1RSxJQUFHLGdCQUFnQjtRQUFFLE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxnQkFBZ0IsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLFFBQWtCLEVBQUUscUJBQXlDO0lBQ3RHLElBQUcsUUFBUSxDQUFDLEtBQUs7UUFBRSxPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDOUUsTUFBTSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDO0lBQzlCLElBQUcscUJBQXFCO1FBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcscUJBQXFCLElBQUksQ0FBQztJQUMzRSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFFBQWtCLEVBQUUsZ0JBQW9DLEVBQUUscUJBQXlDLEVBQUUsRUFBRTtJQUN4SSxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDakUsSUFBRyxZQUFZO1FBQUUsT0FBTyxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0UsTUFBTSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDO0lBQzlCLElBQUcscUJBQXFCO1FBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcscUJBQXFCLElBQUksQ0FBQztJQUMzRSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQWtCLEVBQUUsZ0JBQW9DLEVBQUUscUJBQTBDLEVBQUUsRUFBRTtJQUNuSSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDekQsTUFBTSxTQUFTLEdBQUcseUJBQXlCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEUsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDdkcsTUFBTSxNQUFNLEdBSVI7UUFDRixNQUFNLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxFQUFDO1FBQzNHLE1BQU0sRUFBRSxFQUFFLEdBQUcsVUFBVSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUM7UUFDM0csSUFBSSxFQUFFLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxHQUFHLFNBQVMsRUFBQztLQUN4RyxDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxTQUFxQixFQUFFLGlCQUFxQyxFQUFFLHFCQUF5QyxFQUFFLEVBQUU7SUFDN0ksT0FBTyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQztBQUN0SCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFxQixFQUFFLGlCQUFxQyxFQUFFLEVBQUU7SUFDNUYsT0FBTyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekYsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaWN0aW9uYXJ5fSBmcm9tIFwiQG5ncngvZW50aXR5XCI7XHJcbmltcG9ydCB7TWV0YURhdGEsIG1ldGFEYXRhQXJyVG9EaWN0fSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmXCI7XHJcbmltcG9ydCB7U3R5bGVyU3R5bGV9IGZyb20gXCIuLi8uLi8uLi91dGlsaXRpZXMvZGlyZWN0aXZlcy9zdHlsZXJcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVXaWR0aHMgPSAobWV0YURhdGE6IE1ldGFEYXRhLCB1c2VyRGVmaW5lZFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcclxuICBjb25zdCBkZWZpbmVkV2lkdGggPSAodXNlckRlZmluZWRXaWR0aCAmJiBgJHt1c2VyRGVmaW5lZFdpZHRofXB4YCkgfHwgbWV0YURhdGEud2lkdGg7XHJcbiAgcmV0dXJuIGRlZmluZWRXaWR0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVVzZXJEZWZpbmVkV2lkdGgodXNlckRlZmluZWRXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkKXtcclxuICBpZih1c2VyRGVmaW5lZFdpZHRoKSByZXR1cm4ge2ZsZXg6IGAwIDAgJHt1c2VyRGVmaW5lZFdpZHRofXB4YCwgbWF4V2lkdGg6ICdub25lJyB9O1xyXG4gIHJldHVybiB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVUYWJsZURlZmluZWRXaWR0aChtZXRhRGF0YTogTWV0YURhdGEsIHRhYmxlU2V0dGluZ3NNaW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkKXtcclxuICBpZihtZXRhRGF0YS53aWR0aCkgcmV0dXJuICh7ZmxleDogYDAgMCAke21ldGFEYXRhLndpZHRofWAsIG1heFdpZHRoOiAnbm9uZSd9KTtcclxuICBjb25zdCBzdHlsZSA9IHsgZmxleDogYCR7MX1gfTtcclxuICBpZih0YWJsZVNldHRpbmdzTWluV2lkdGgpIHN0eWxlWydtaW5XaWR0aCddID0gYCR7dGFibGVTZXR0aW5nc01pbldpZHRofXB4YDtcclxuICByZXR1cm4gc3R5bGU7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVGbGV4V2lkdGggPSAobWV0YURhdGE6IE1ldGFEYXRhLCB1c2VyRGVmaW5lZFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQsIHRhYmxlU2V0dGluZ3NNaW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgY29uc3QgZGVmaW5lZFdpZHRoID0gY2FsY3VsYXRlV2lkdGhzKG1ldGFEYXRhLCB1c2VyRGVmaW5lZFdpZHRoKTtcclxuICBpZihkZWZpbmVkV2lkdGgpIHJldHVybiAoe2ZsZXg6IGAwIDAgJHtkZWZpbmVkV2lkdGh9YCwgbWF4V2lkdGg6ICdub25lJyB9KTtcclxuICBjb25zdCBzdHlsZSA9IHsgZmxleDogYCR7MX1gfTtcclxuICBpZih0YWJsZVNldHRpbmdzTWluV2lkdGgpIHN0eWxlWydtaW5XaWR0aCddID0gYCR7dGFibGVTZXR0aW5nc01pbldpZHRofXB4YDtcclxuICByZXR1cm4gc3R5bGU7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjb2x1bW5TdHlsZXMgPSAobWV0YURhdGE6IE1ldGFEYXRhLCB1c2VyRGVmaW5lZFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQsIHRhYmxlU2V0dGluZ3NNaW5XaWR0aD86IG51bWJlciB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gIGNvbnN0IGZ1bGxNZXRhU3R5bGVzID0gbWV0YURhdGEuYWRkaXRpb25hbD8uc3R5bGVzID8/IHt9O1xyXG4gIGNvbnN0IHVzZXJXaWR0aCA9IGNhbGN1bGF0ZVVzZXJEZWZpbmVkV2lkdGgodXNlckRlZmluZWRXaWR0aCkgPz8ge307XHJcbiAgY29uc3QgdGFibGVXaWR0aCA9IHVzZXJEZWZpbmVkV2lkdGggPyB7fSA6IGNhbGN1bGF0ZVRhYmxlRGVmaW5lZFdpZHRoKG1ldGFEYXRhLCB0YWJsZVNldHRpbmdzTWluV2lkdGgpO1xyXG4gIGNvbnN0IHN0eWxlczoge1xyXG4gICAgaGVhZGVyOiBEaWN0aW9uYXJ5PHN0cmluZz47XHJcbiAgICBib2R5OiBTdHlsZXJTdHlsZTtcclxuICAgIGZvb3RlcjogRGljdGlvbmFyeTxzdHJpbmc+O1xyXG4gIH0gPSB7XHJcbiAgICBoZWFkZXI6IHsgLi4udGFibGVXaWR0aCwgLi4uZnVsbE1ldGFTdHlsZXMsIC4uLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmhlYWRlciwgLi4udXNlcldpZHRofSxcclxuICAgIGZvb3RlcjogeyAuLi50YWJsZVdpZHRoLCAuLi5mdWxsTWV0YVN0eWxlcywgLi4ubWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydFN0eWxlcz8uZm9vdGVyLCAuLi51c2VyV2lkdGh9LFxyXG4gICAgYm9keTogeyAuLi50YWJsZVdpZHRoLCAuLi5mdWxsTWV0YVN0eWxlcywgLi4ubWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydFN0eWxlcz8uYm9keSwgLi4udXNlcldpZHRofSxcclxuICB9O1xyXG4gIHJldHVybiBzdHlsZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVGbGV4V2lkdGhzID0gKG1ldGFEYXRhczogTWV0YURhdGFbXSwgdXNlckRlZmluZWRXaWR0aHM6IERpY3Rpb25hcnk8bnVtYmVyPiwgdGFibGVTZXR0aW5nc01pbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcclxuICByZXR1cm4gbWV0YURhdGFBcnJUb0RpY3QobWV0YURhdGFzLCBtZCA9PiBjYWxjdWxhdGVGbGV4V2lkdGgobWQsIHVzZXJEZWZpbmVkV2lkdGhzW21kLmtleV0sIHRhYmxlU2V0dGluZ3NNaW5XaWR0aCkpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY29sdW1uc1N0eWxlcyA9IChtZXRhRGF0YXM6IE1ldGFEYXRhW10sIHVzZXJEZWZpbmVkV2lkdGhzOiBEaWN0aW9uYXJ5PG51bWJlcj4pID0+IHtcclxuICByZXR1cm4gbWV0YURhdGFBcnJUb0RpY3QobWV0YURhdGFzLCBtZCA9PiBjb2x1bW5TdHlsZXMobWQsIHVzZXJEZWZpbmVkV2lkdGhzW21kLmtleV0pKTtcclxufVxyXG4iXX0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
2
|
-
import { FilterTypes } from '../../enums/filterTypes';
|
|
3
|
-
import { ControlContainer, FormsModule, NgForm } from '@angular/forms';
|
|
4
|
-
import { MatInputModule } from '@angular/material/input';
|
|
5
|
-
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
6
|
-
import { PreventEnterDirective } from '../../../utilities';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/material/input";
|
|
9
|
-
import * as i2 from "@angular/material/form-field";
|
|
10
|
-
import * as i3 from "@angular/forms";
|
|
11
|
-
import * as i4 from "@angular/material/datepicker";
|
|
12
|
-
export class DateFilterComponent {
|
|
13
|
-
FilterType = FilterTypes;
|
|
14
|
-
info;
|
|
15
|
-
CurrentFilterType;
|
|
16
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: DateFilterComponent, isStandalone: true, selector: "tb-date-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\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=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\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: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { 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.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: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateFilterComponent, decorators: [{
|
|
20
|
-
type: Component,
|
|
21
|
-
args: [{ selector: 'tb-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [
|
|
22
|
-
MatInputModule, FormsModule, MatDatepickerModule, PreventEnterDirective
|
|
23
|
-
], template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\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=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
|
|
24
|
-
}], propDecorators: { info: [{
|
|
25
|
-
type: Input
|
|
26
|
-
}], CurrentFilterType: [{
|
|
27
|
-
type: Input
|
|
28
|
-
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9kYXRlLWZpbHRlci9kYXRlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtZmlsdGVyL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBYTNELE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUNoQixJQUFJLENBQWlCO0lBQ3JCLGlCQUFpQixDQUFjO3VHQUgvQixtQkFBbUI7MkZBQW5CLG1CQUFtQiw0SUNuQmhDLGd2Q0F1QkEsK3pCRFBRLGNBQWMsc3JCQUFFLFdBQVcsMDRCQUFFLG1CQUFtQix1ZkFIckMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUM7OzJGQU14RCxtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU0saUJBRWhDLENBQUMsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLGNBQ3JELElBQUksV0FDUDt3QkFDTCxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQjtxQkFDMUU7OEJBSVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcnRpYWxGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSwgRmlsdGVyVHlwZXMgfSBmcm9tICcuLi8uLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IFByZXZlbnRFbnRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGItZGF0ZS1maWx0ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4uL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7cHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybX1dLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBNYXRJbnB1dE1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdERhdGVwaWNrZXJNb2R1bGUsIFByZXZlbnRFbnRlckRpcmVjdGl2ZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZUZpbHRlckNvbXBvbmVudCB7XHJcbiAgICBGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZXM7XHJcbiAgICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICAgIEBJbnB1dCgpIEN1cnJlbnRGaWx0ZXJUeXBlITogRmlsdGVyVHlwZTtcclxufVxyXG4iLCJAaWYgKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVCZXR3ZWVuICYmIEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLklzTnVsbCkge1xyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgW21hdERhdGVwaWNrZXJdPVwiY2FsXCIvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBjbGFzcz1cInNtYWxsLWJ1dHRvbiBkYXRlLXRvZ2dsZVwiIG1hdFN1ZmZpeCBbZm9yXT1cImNhbFwiIHByZXZlbnRFbnRlciAvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyICNjYWwgLz5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlQmV0d2Vlbil7XHJcbiAgPG5nLWNvbnRhaW5lciBuZ01vZGVsR3JvdXA9XCJmaWx0ZXJWYWx1ZVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibXktZmlsdGVyXCIgPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cIlN0YXJ0XCIgW25nTW9kZWxdPVwiaW5mby5maWx0ZXJWYWx1ZT8uU3RhcnRcIiAgcGxhY2Vob2xkZXI9XCJGcm9tXCIgW21hdERhdGVwaWNrZXJdPVwiZnJvbVZhbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZnJvbVZhbC5vcGVuKClcIi8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IGNsYXNzPVwic21hbGwtYnV0dG9uIGRhdGUtdG9nZ2xlXCIgW2Zvcl09XCJmcm9tVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZnJvbVZhbD48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IG5hbWU9XCJFbmRcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiAgcGxhY2Vob2xkZXI9XCJUb1wiIFttYXREYXRlcGlja2VyXT1cInRvVmFsXCIgKGNsaWNrKT1cInRvVmFsLm9wZW4oKVwiLz5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggY2xhc3M9XCJzbWFsbC1idXR0b24gZGF0ZS10b2dnbGVcIiBbZm9yXT1cInRvVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdG9WYWwgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
2
|
-
import { FilterTypes } from '../../enums/filterTypes';
|
|
3
|
-
import { ControlContainer, FormsModule, NgForm } from '@angular/forms';
|
|
4
|
-
import { PreventEnterDirective } from '../../../utilities';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/forms";
|
|
7
|
-
export class DateTimeFilterComponent {
|
|
8
|
-
FilterType = FilterTypes;
|
|
9
|
-
info;
|
|
10
|
-
CurrentFilterType;
|
|
11
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateTimeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: DateTimeFilterComponent, isStandalone: true, selector: "tb-date-time-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateTimeFilterComponent, decorators: [{
|
|
15
|
-
type: Component,
|
|
16
|
-
args: [{ selector: 'tb-date-time-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [
|
|
17
|
-
FormsModule, PreventEnterDirective
|
|
18
|
-
], template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
|
|
19
|
-
}], propDecorators: { info: [{
|
|
20
|
-
type: Input
|
|
21
|
-
}], CurrentFilterType: [{
|
|
22
|
-
type: Input
|
|
23
|
-
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBYTNELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUNoQixJQUFJLENBQWlCO0lBQ3JCLGlCQUFpQixDQUFjO3VHQUg3Qix1QkFBdUI7MkZBQXZCLHVCQUF1QixpSkNqQnBDLDJuQkFRQywrekJETUcsV0FBVyxnNEJBSEUsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUM7OzJGQU10RCx1QkFBdUI7a0JBWG5DLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU0saUJBRWhDLENBQUMsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLGNBQ3JELElBQUksV0FDUDt3QkFDUCxXQUFXLEVBQUUscUJBQXFCO3FCQUNuQzs4QkFJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFydGlhbEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlLCBGaWx0ZXJUeXBlcyB9IGZyb20gJy4uLy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybXNNb2R1bGUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUHJldmVudEVudGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItZGF0ZS10aW1lLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtdGltZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0eWxlVXJsczogWycuLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgdmlld1Byb3ZpZGVyczogW3twcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtfV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSwgUHJldmVudEVudGVyRGlyZWN0aXZlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVGaWx0ZXJDb21wb25lbnQge1xyXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlcztcclxuICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICBASW5wdXQoKSBDdXJyZW50RmlsdGVyVHlwZSE6IEZpbHRlclR5cGU7XHJcbn1cclxuIiwiQGlmKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVUaW1lQmV0d2VlbiAmJiBDdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5Jc051bGwpe1xyXG4gIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgcHJldmVudEVudGVyIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlVGltZUJldHdlZW4pe1xyXG4gIDxuZy1jb250YWluZXIgbmdNb2RlbEdyb3VwPVwiZmlsdGVyVmFsdWVcIj5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5TdGFydFwiIHByZXZlbnRFbnRlciBuYW1lPVwiU3RhcnRcIiBjbGFzcz1cIm9wLWRhdGUtdGltZS1pbnB1dFwiLz5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiBwcmV2ZW50RW50ZXIgbmFtZT1cIkVuZFwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG59Il19
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, inject, input, computed, output, signal } from '@angular/core';
|
|
2
|
-
import { filterTypeMap } from '../../classes/filter-info';
|
|
3
|
-
import { TableStore } from '../../classes/table-store';
|
|
4
|
-
import { FilterTypes } from '../../enums/filterTypes';
|
|
5
|
-
import { FieldType } from '../../interfaces/report-def';
|
|
6
|
-
import { MatCardModule } from '@angular/material/card';
|
|
7
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
8
|
-
import { FormsModule } from '@angular/forms';
|
|
9
|
-
import { SpaceCasePipe } from '../../../utilities';
|
|
10
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
11
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
12
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
13
|
-
import { MatInputModule } from '@angular/material/input';
|
|
14
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
15
|
-
import { NumberFilterComponent } from '../number-filter/number-filter.component';
|
|
16
|
-
import { DateFilterComponent } from '../date-filter/date-filter.component';
|
|
17
|
-
import { DateTimeFilterComponent } from '../date-time-filter/date-time-filter.component';
|
|
18
|
-
import { MatRadioModule } from '@angular/material/radio';
|
|
19
|
-
import { InFilterComponent } from '../in-filter/in-filter.component';
|
|
20
|
-
import { InListFilterComponent } from './in-list/in-list-filter.component';
|
|
21
|
-
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "@angular/material/card";
|
|
23
|
-
import * as i2 from "@angular/forms";
|
|
24
|
-
import * as i3 from "@angular/material/button";
|
|
25
|
-
import * as i4 from "@angular/material/tooltip";
|
|
26
|
-
import * as i5 from "@angular/material/icon";
|
|
27
|
-
import * as i6 from "@angular/material/input";
|
|
28
|
-
import * as i7 from "@angular/material/form-field";
|
|
29
|
-
import * as i8 from "@angular/material/select";
|
|
30
|
-
import * as i9 from "@angular/material/core";
|
|
31
|
-
import * as i10 from "@angular/material/radio";
|
|
32
|
-
export class FilterComponent {
|
|
33
|
-
state = inject(TableStore);
|
|
34
|
-
filterTypes = filterTypeMap;
|
|
35
|
-
FilterType = FilterTypes;
|
|
36
|
-
FieldType = FieldType;
|
|
37
|
-
$filter = input.required({
|
|
38
|
-
alias: 'filter',
|
|
39
|
-
transform: (f) => ({ ...f })
|
|
40
|
-
});
|
|
41
|
-
close = output();
|
|
42
|
-
$enteredFilterType = signal(undefined);
|
|
43
|
-
$currentFilterType = computed(() => this.$enteredFilterType() || this.$filter()?.filterType);
|
|
44
|
-
$availableFilterTypes = computed(() => this.filterTypes[this.$filter()?.fieldType]);
|
|
45
|
-
onEnter(filter, event) {
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
if (filter.filterValue != null && filter.filterType) {
|
|
48
|
-
this.state.addFilter(filter);
|
|
49
|
-
this.close.emit();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: FilterComponent, isStandalone: true, selector: "tb-filter", inputs: { $filter: { classPropertyName: "$filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { close: "close" }, ngImport: i0, template: "@let filter = $filter();\r\n@let currentFilterType = $currentFilterType();\r\n\r\n@if (filter) {\r\n<mat-card appearance=\"outlined\" class=\"filter-card\">\r\n <mat-card-content>\r\n <form #form=\"ngForm\" (keydown.enter)=\"onEnter(form.value,$event)\" (keydown.escape)=\"close.emit()\">\r\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"filter.filterId\" />\r\n <input type=\"hidden\" name=\"key\" [ngModel]=\"filter.key\" />\r\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"filter.fieldType\" />\r\n <div class=\"head-row\" >\r\n <h4 class=\"filter-name\">{{(filter.key | spaceCase)}} Filter</h4>\r\n <button class=\"cancel-button small-button\" color=\"primary\" mat-icon-button (click)=\"close.emit();\" type=\"button\"\r\n [matTooltip]=\"'Close'\">\r\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"filter-row\">\r\n <div class=\"inline\">\r\n <mat-form-field class=\"my-filter\" >\r\n <mat-select placeholder=\"Select Filter Type\" name=\"filterType\" [ngModel]=\"$currentFilterType()\" (ngModelChange)=\"$enteredFilterType.set($event)\" [panelWidth]=\"null\">\r\n @for (kvp of filterTypes[filter.fieldType]; track kvp) {\r\n <mat-option [value]=\"kvp\">\r\n {{ kvp }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n @if(filter.fieldType === FieldType.String || filter.fieldType === FieldType.Array || filter.fieldType === FieldType.Link ||\r\n filter.fieldType === FieldType.Unknown || filter.fieldType === FieldType.PhoneNumber) {\r\n <ng-container *ngTemplateOutlet=\"String\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Number || filter.fieldType === FieldType.Currency){\r\n <tb-number-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Boolean){\r\n <ng-container *ngTemplateOutlet=\"Boolean\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Date){\r\n <tb-date-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.DateTime){\r\n <tb-date-time-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Enum){\r\n <ng-container *ngTemplateOutlet=\"Enum\" />\r\n }\r\n\r\n @if(currentFilterType === FilterType.IsNull){\r\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\">\r\n <mat-radio-button [value]=\"true\">True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">False</mat-radio-button>\r\n </mat-radio-group>\r\n }\r\n </div>\r\n <button mat-button (click)=\"state.addFilter(form.value)\" disableRipple [disabled]=\"form.value.filterValue==undefined || !form.value.filterType\">\r\n Apply\r\n </button>\r\n \r\n \r\n <ng-template #String>\r\n @if(currentFilterType !== FilterType.IsNull && currentFilterType !== FilterType.In){\r\n <mat-form-field class=\"my-filter\">\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n </mat-form-field>\r\n } @else if(currentFilterType === FilterType.In) {\r\n <lib-in-filter [type]=\"FieldType.String\" name='filterValue' [(ngModel)]=\"filter.filterValue\" />\r\n }\r\n </ng-template>\r\n \r\n <ng-template #Boolean >\r\n @if(currentFilterType === FilterType.BooleanEquals){\r\n <div class=\"switch\">\r\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" >\r\n <mat-radio-button [value]=\"true\" preventEnter>True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\" preventEnter>False</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n }\r\n </ng-template>\r\n <ng-template #Enum>\r\n @if(currentFilterType === FilterType.In){\r\n <tb-in-list-filter [key]='filter.key' name='filterValue' [(ngModel)]='filter.filterValue' ></tb-in-list-filter>\r\n\r\n }\r\n </ng-template>\r\n </form>\r\n </mat-card-content>\r\n</mat-card>\r\n}\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: NumberFilterComponent, selector: "tb-number-filter", inputs: ["CurrentFilterType", "info"] }, { kind: "component", type: DateFilterComponent, selector: "tb-date-filter", inputs: ["info", "CurrentFilterType"] }, { kind: "component", type: DateTimeFilterComponent, selector: "tb-date-time-filter", inputs: ["info", "CurrentFilterType"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i10.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i10.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: "component", type: InFilterComponent, selector: "lib-in-filter", inputs: ["type"] }, { kind: "component", type: InListFilterComponent, selector: "tb-in-list-filter , [tb-in-list-filter]", inputs: ["key"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
54
|
-
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FilterComponent, decorators: [{
|
|
56
|
-
type: Component,
|
|
57
|
-
args: [{ selector: 'tb-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
58
|
-
MatCardModule, FormsModule, SpaceCasePipe, MatButtonModule, MatTooltipModule, MatIconModule,
|
|
59
|
-
MatInputModule, MatSelectModule, NumberFilterComponent,
|
|
60
|
-
DateFilterComponent, DateTimeFilterComponent, MatRadioModule, InFilterComponent, InListFilterComponent,
|
|
61
|
-
NgTemplateOutlet
|
|
62
|
-
], template: "@let filter = $filter();\r\n@let currentFilterType = $currentFilterType();\r\n\r\n@if (filter) {\r\n<mat-card appearance=\"outlined\" class=\"filter-card\">\r\n <mat-card-content>\r\n <form #form=\"ngForm\" (keydown.enter)=\"onEnter(form.value,$event)\" (keydown.escape)=\"close.emit()\">\r\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"filter.filterId\" />\r\n <input type=\"hidden\" name=\"key\" [ngModel]=\"filter.key\" />\r\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"filter.fieldType\" />\r\n <div class=\"head-row\" >\r\n <h4 class=\"filter-name\">{{(filter.key | spaceCase)}} Filter</h4>\r\n <button class=\"cancel-button small-button\" color=\"primary\" mat-icon-button (click)=\"close.emit();\" type=\"button\"\r\n [matTooltip]=\"'Close'\">\r\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"filter-row\">\r\n <div class=\"inline\">\r\n <mat-form-field class=\"my-filter\" >\r\n <mat-select placeholder=\"Select Filter Type\" name=\"filterType\" [ngModel]=\"$currentFilterType()\" (ngModelChange)=\"$enteredFilterType.set($event)\" [panelWidth]=\"null\">\r\n @for (kvp of filterTypes[filter.fieldType]; track kvp) {\r\n <mat-option [value]=\"kvp\">\r\n {{ kvp }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n @if(filter.fieldType === FieldType.String || filter.fieldType === FieldType.Array || filter.fieldType === FieldType.Link ||\r\n filter.fieldType === FieldType.Unknown || filter.fieldType === FieldType.PhoneNumber) {\r\n <ng-container *ngTemplateOutlet=\"String\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Number || filter.fieldType === FieldType.Currency){\r\n <tb-number-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Boolean){\r\n <ng-container *ngTemplateOutlet=\"Boolean\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Date){\r\n <tb-date-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.DateTime){\r\n <tb-date-time-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Enum){\r\n <ng-container *ngTemplateOutlet=\"Enum\" />\r\n }\r\n\r\n @if(currentFilterType === FilterType.IsNull){\r\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\">\r\n <mat-radio-button [value]=\"true\">True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">False</mat-radio-button>\r\n </mat-radio-group>\r\n }\r\n </div>\r\n <button mat-button (click)=\"state.addFilter(form.value)\" disableRipple [disabled]=\"form.value.filterValue==undefined || !form.value.filterType\">\r\n Apply\r\n </button>\r\n \r\n \r\n <ng-template #String>\r\n @if(currentFilterType !== FilterType.IsNull && currentFilterType !== FilterType.In){\r\n <mat-form-field class=\"my-filter\">\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n </mat-form-field>\r\n } @else if(currentFilterType === FilterType.In) {\r\n <lib-in-filter [type]=\"FieldType.String\" name='filterValue' [(ngModel)]=\"filter.filterValue\" />\r\n }\r\n </ng-template>\r\n \r\n <ng-template #Boolean >\r\n @if(currentFilterType === FilterType.BooleanEquals){\r\n <div class=\"switch\">\r\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" >\r\n <mat-radio-button [value]=\"true\" preventEnter>True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\" preventEnter>False</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n }\r\n </ng-template>\r\n <ng-template #Enum>\r\n @if(currentFilterType === FilterType.In){\r\n <tb-in-list-filter [key]='filter.key' name='filterValue' [(ngModel)]='filter.filterValue' ></tb-in-list-filter>\r\n\r\n }\r\n </ng-template>\r\n </form>\r\n </mat-card-content>\r\n</mat-card>\r\n}\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
|
|
63
|
-
}] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxhQUFhLEVBQTZCLE1BQU0sMkJBQTJCLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBZTNFLE1BQU0sT0FBTyxlQUFlO0lBQ2hCLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFckMsV0FBVyxHQUFHLGFBQWEsQ0FBQztJQUM1QixVQUFVLEdBQUcsV0FBVyxDQUFDO0lBQ3pCLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFFdEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQStCO1FBQ3JELEtBQUssRUFBRSxRQUFRO1FBQ2YsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztLQUM3QixDQUFDLENBQUM7SUFFSCxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFakIsa0JBQWtCLEdBQUcsTUFBTSxDQUF5QixTQUFTLENBQUMsQ0FBQztJQUMvRCxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlGLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXBGLE9BQU8sQ0FBQyxNQUFrQixFQUFFLEtBQVU7UUFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7dUdBeEJVLGVBQWU7MkZBQWYsZUFBZSwwT0NsQzVCLGsrSUEyRkEsK3pCRC9ETSxhQUFhLDBOQUFFLFdBQVcsbWlDQUFFLGFBQWEsaURBQUUsZUFBZSx3VUFBRSxnQkFBZ0IsNFRBQUUsYUFBYSxtTEFDM0YsY0FBYyxxakJBQUUsZUFBZSxvckJBQUUscUJBQXFCLG9HQUN0RCxtQkFBbUIsa0dBQUUsdUJBQXVCLHNHQUFFLGNBQWMsdWxCQUFFLGlCQUFpQiw0RUFBRSxxQkFBcUIscUdBQ3RHLGdCQUFnQjs7MkZBR1QsZUFBZTtrQkFiM0IsU0FBUzsrQkFDSSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhO3dCQUMzRixjQUFjLEVBQUUsZUFBZSxFQUFFLHFCQUFxQjt3QkFDdEQsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQjt3QkFDdEcsZ0JBQWdCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIGluamVjdCwgaW5wdXQsIGNvbXB1dGVkLCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmaWx0ZXJUeXBlTWFwLCBGaWx0ZXJJbmZvLCBQYXJ0aWFsRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSwgRmlsdGVyVHlwZXMgfSBmcm9tICcuLi8uLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcclxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTcGFjZUNhc2VQaXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBOdW1iZXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9udW1iZXItZmlsdGVyL251bWJlci1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGUtZmlsdGVyL2RhdGUtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVUaW1lRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS10aW1lLWZpbHRlci9kYXRlLXRpbWUtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBJbkZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2luLWZpbHRlci9pbi1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5MaXN0RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9pbi1saXN0L2luLWxpc3QtZmlsdGVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGItZmlsdGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgIE1hdENhcmRNb2R1bGUsIEZvcm1zTW9kdWxlLCBTcGFjZUNhc2VQaXBlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEljb25Nb2R1bGUsXHJcbiAgICAgIE1hdElucHV0TW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsIE51bWJlckZpbHRlckNvbXBvbmVudCxcclxuICAgICAgRGF0ZUZpbHRlckNvbXBvbmVudCwgRGF0ZVRpbWVGaWx0ZXJDb21wb25lbnQsIE1hdFJhZGlvTW9kdWxlLCBJbkZpbHRlckNvbXBvbmVudCwgSW5MaXN0RmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICBOZ1RlbXBsYXRlT3V0bGV0XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQ8VCBleHRlbmRzIEZpZWxkVHlwZT4ge1xyXG4gIHByb3RlY3RlZCBzdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuXHJcbiAgZmlsdGVyVHlwZXMgPSBmaWx0ZXJUeXBlTWFwO1xyXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlcztcclxuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XHJcblxyXG4gICRmaWx0ZXIgPSBpbnB1dC5yZXF1aXJlZDxQYXJ0aWFsRmlsdGVyLCBQYXJ0aWFsRmlsdGVyPih7IFxyXG4gICAgYWxpYXM6ICdmaWx0ZXInLFxyXG4gICAgdHJhbnNmb3JtOiAoZikgPT4gKHsgLi4uZiB9KVxyXG4gIH0pO1xyXG5cclxuICBjbG9zZSA9IG91dHB1dCgpO1xyXG5cclxuICAkZW50ZXJlZEZpbHRlclR5cGUgPSBzaWduYWw8RmlsdGVyVHlwZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAkY3VycmVudEZpbHRlclR5cGUgPSBjb21wdXRlZCgoKSA9PiAgdGhpcy4kZW50ZXJlZEZpbHRlclR5cGUoKSB8fCB0aGlzLiRmaWx0ZXIoKT8uZmlsdGVyVHlwZSk7XHJcbiAgJGF2YWlsYWJsZUZpbHRlclR5cGVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5maWx0ZXJUeXBlc1t0aGlzLiRmaWx0ZXIoKT8uZmllbGRUeXBlXSk7XHJcblxyXG4gIG9uRW50ZXIoZmlsdGVyOiBGaWx0ZXJJbmZvLCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKGZpbHRlci5maWx0ZXJWYWx1ZSAhPSBudWxsICYmIGZpbHRlci5maWx0ZXJUeXBlKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUuYWRkRmlsdGVyKGZpbHRlcik7XHJcbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbGV0IGZpbHRlciA9ICRmaWx0ZXIoKTtcclxuQGxldCBjdXJyZW50RmlsdGVyVHlwZSA9ICRjdXJyZW50RmlsdGVyVHlwZSgpO1xyXG5cclxuQGlmIChmaWx0ZXIpIHtcclxuPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiZmlsdGVyLWNhcmRcIj5cclxuICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgIDxmb3JtICNmb3JtPVwibmdGb3JtXCIgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXIoZm9ybS52YWx1ZSwkZXZlbnQpXCIgKGtleWRvd24uZXNjYXBlKT1cImNsb3NlLmVtaXQoKVwiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmaWx0ZXJJZFwiIFtuZ01vZGVsXT1cImZpbHRlci5maWx0ZXJJZFwiIC8+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImtleVwiIFtuZ01vZGVsXT1cImZpbHRlci5rZXlcIiAvPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmaWVsZFR5cGVcIiBbbmdNb2RlbF09XCJmaWx0ZXIuZmllbGRUeXBlXCIgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWQtcm93XCIgPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cImZpbHRlci1uYW1lXCI+e3soZmlsdGVyLmtleSB8IHNwYWNlQ2FzZSl9fSBGaWx0ZXI8L2g0PlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uIHNtYWxsLWJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UuZW1pdCgpO1wiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInQ2xvc2UnXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCIgY29sb3I9XCJwcmltYXJ5XCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1yb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmxpbmVcIj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibXktZmlsdGVyXCIgPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IEZpbHRlciBUeXBlXCIgbmFtZT1cImZpbHRlclR5cGVcIiAgW25nTW9kZWxdPVwiJGN1cnJlbnRGaWx0ZXJUeXBlKClcIiAobmdNb2RlbENoYW5nZSk9XCIkZW50ZXJlZEZpbHRlclR5cGUuc2V0KCRldmVudClcIiBbcGFuZWxXaWR0aF09XCJudWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgIEBmb3IgKGt2cCBvZiBmaWx0ZXJUeXBlc1tmaWx0ZXIuZmllbGRUeXBlXTsgdHJhY2sga3ZwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImt2cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sga3ZwIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIEBpZihmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuU3RyaW5nIHx8IGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5BcnJheSB8fCBmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTGluayB8fFxyXG4gICAgICAgICAgZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLlVua25vd24gfHwgZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLlBob25lTnVtYmVyKSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJTdHJpbmdcIiAvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2UgaWYoZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLk51bWJlciB8fCBmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ3VycmVuY3kpe1xyXG4gICAgICAgICAgICA8dGItbnVtYmVyLWZpbHRlciBbaW5mb109XCJmaWx0ZXJcIiBbQ3VycmVudEZpbHRlclR5cGVdPVwiY3VycmVudEZpbHRlclR5cGUhXCIgLz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBlbHNlIGlmKGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5Cb29sZWFuKXtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkJvb2xlYW5cIiAvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2UgaWYoZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkRhdGUpe1xyXG4gICAgICAgICAgICA8dGItZGF0ZS1maWx0ZXIgW2luZm9dPVwiZmlsdGVyXCIgW0N1cnJlbnRGaWx0ZXJUeXBlXT1cImN1cnJlbnRGaWx0ZXJUeXBlIVwiIC8+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAZWxzZSBpZihmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZVRpbWUpe1xyXG4gICAgICAgICAgICA8dGItZGF0ZS10aW1lLWZpbHRlciBbaW5mb109XCJmaWx0ZXJcIiBbQ3VycmVudEZpbHRlclR5cGVdPVwiY3VycmVudEZpbHRlclR5cGUhXCIgLz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBlbHNlIGlmKGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5FbnVtKXtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkVudW1cIiAvPlxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBpZihjdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Jc051bGwpe1xyXG4gICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIFtuZ01vZGVsXT1cImZpbHRlci5maWx0ZXJWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJ0cnVlXCI+VHJ1ZTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwiZmFsc2VcIj5GYWxzZTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInN0YXRlLmFkZEZpbHRlcihmb3JtLnZhbHVlKVwiIGRpc2FibGVSaXBwbGUgW2Rpc2FibGVkXT1cImZvcm0udmFsdWUuZmlsdGVyVmFsdWU9PXVuZGVmaW5lZCB8fCAhZm9ybS52YWx1ZS5maWx0ZXJUeXBlXCI+XHJcbiAgICAgICAgQXBwbHlcclxuICAgICAgPC9idXR0b24+XHJcbiAgICBcclxuICAgIFxyXG4gICAgPG5nLXRlbXBsYXRlICNTdHJpbmc+XHJcbiAgICAgIEBpZihjdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5Jc051bGwgJiYgY3VycmVudEZpbHRlclR5cGUgIT09IEZpbHRlclR5cGUuSW4pe1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm15LWZpbHRlclwiPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIFtuZ01vZGVsXT1cImZpbHRlci5maWx0ZXJWYWx1ZVwiIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgfSBAZWxzZSBpZihjdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Jbikge1xyXG4gICAgICAgIDxsaWItaW4tZmlsdGVyIFt0eXBlXT1cIkZpZWxkVHlwZS5TdHJpbmdcIiBuYW1lPSdmaWx0ZXJWYWx1ZScgWyhuZ01vZGVsKV09XCJmaWx0ZXIuZmlsdGVyVmFsdWVcIiAvPlxyXG4gICAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgXHJcbiAgICA8bmctdGVtcGxhdGUgI0Jvb2xlYW4gPlxyXG4gICAgICBAaWYoY3VycmVudEZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuQm9vbGVhbkVxdWFscyl7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaFwiPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJmaWx0ZXIuZmlsdGVyVmFsdWVcIiA+XHJcbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJ0cnVlXCIgcHJldmVudEVudGVyPlRydWU8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJmYWxzZVwiIHByZXZlbnRFbnRlcj5GYWxzZTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNFbnVtPlxyXG4gICAgICBAaWYoY3VycmVudEZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuSW4pe1xyXG4gICAgICAgIDx0Yi1pbi1saXN0LWZpbHRlciBba2V5XT0nZmlsdGVyLmtleScgbmFtZT0nZmlsdGVyVmFsdWUnIFsobmdNb2RlbCldPSdmaWx0ZXIuZmlsdGVyVmFsdWUnID48L3RiLWluLWxpc3QtZmlsdGVyPlxyXG5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZm9ybT5cclxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbjwvbWF0LWNhcmQ+XHJcbn1cclxuIl19
|