@one-paragon/angular-utilities 0.1.39 → 0.1.50-b
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/action-state/ngrx.d.ts +1 -1
- package/fesm2022/one-paragon-angular-utilities.mjs +599 -469
- 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/ngrx/actionable-selector.d.ts +1 -2
- package/package.json +10 -12
- package/table-builder/classes/GenericTableDataSource.d.ts +8 -1
- package/table-builder/classes/MatTableObservableDataSource.d.ts +8 -0
- package/table-builder/classes/TableState.d.ts +3 -3
- package/table-builder/classes/table-builder-general-settings.d.ts +3 -3
- package/table-builder/classes/table-store.d.ts +9 -9
- package/table-builder/components/generic-table/generic-table.component.d.ts +13 -6
- package/table-builder/components/generic-table/paginator.component.d.ts +3 -2
- package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +2 -2
- package/table-builder/components/table-container/table-container.d.ts +5 -1
- package/table-builder/directives/resize-column.directive.d.ts +3 -3
- package/table-builder/directives/tb-filter.directive.d.ts +1 -1
- package/table-builder/interfaces/report-def.d.ts +0 -5
- package/table-builder/ngrx/actions.d.ts +5 -5
- package/table-builder/ngrx/effects.d.ts +3 -3
- package/table-builder/table-builder.module.d.ts +3 -1
- package/utilities/directives/dialog.d.ts +2 -2
- 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 -29
- package/esm2022/action-state/index.mjs +0 -8
- package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +0 -24
- package/esm2022/action-state/ngrx.mjs +0 -42
- package/esm2022/http-request-state/HttpRequestStateFactory.mjs +0 -28
- package/esm2022/http-request-state/HttpRequestStateStore.mjs +0 -98
- package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +0 -35
- package/esm2022/http-request-state/directives/http-error-state-directive.mjs +0 -30
- package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +0 -30
- package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +0 -30
- package/esm2022/http-request-state/directives/http-success-state-directive.mjs +0 -35
- 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 -42
- 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 -77
- package/esm2022/ngrx/index.mjs +0 -2
- package/esm2022/one-paragon-angular-utilities.mjs +0 -5
- package/esm2022/public-api.mjs +0 -19
- package/esm2022/rxjs/defaultShareReplay.mjs +0 -7
- package/esm2022/rxjs/index.mjs +0 -5
- package/esm2022/rxjs/mapError.mjs +0 -8
- package/esm2022/rxjs/rxjs-operators.mjs +0 -91
- package/esm2022/rxjs/subjectifier.mjs +0 -15
- package/esm2022/table-builder/classes/DefaultSettings.mjs +0 -6
- package/esm2022/table-builder/classes/GenericTableDataSource.mjs +0 -11
- package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +0 -21
- package/esm2022/table-builder/classes/TableBuilderConfig.mjs +0 -3
- package/esm2022/table-builder/classes/TableState.mjs +0 -32
- package/esm2022/table-builder/classes/data-filter.mjs +0 -26
- package/esm2022/table-builder/classes/display-col.mjs +0 -2
- package/esm2022/table-builder/classes/filter-info.mjs +0 -73
- package/esm2022/table-builder/classes/table-builder-general-settings.mjs +0 -68
- package/esm2022/table-builder/classes/table-builder.mjs +0 -76
- package/esm2022/table-builder/classes/table-store.mjs +0 -298
- package/esm2022/table-builder/components/array-column.component.mjs +0 -58
- package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +0 -113
- package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +0 -26
- package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +0 -23
- package/esm2022/table-builder/components/filter/filter.component.mjs +0 -55
- package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +0 -92
- package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +0 -46
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +0 -212
- package/esm2022/table-builder/components/generic-table/paginator.component.mjs +0 -75
- package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +0 -23
- package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +0 -92
- package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +0 -64
- package/esm2022/table-builder/components/index.mjs +0 -10
- package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +0 -34
- package/esm2022/table-builder/components/link-column.component.mjs +0 -67
- package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +0 -28
- package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +0 -44
- package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +0 -76
- package/esm2022/table-builder/components/table-container/table-container.mjs +0 -323
- package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +0 -43
- package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +0 -31
- package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +0 -26
- package/esm2022/table-builder/directives/custom-cell-directive.mjs +0 -60
- package/esm2022/table-builder/directives/index.mjs +0 -6
- package/esm2022/table-builder/directives/multi-sort.directive.mjs +0 -55
- package/esm2022/table-builder/directives/resize-column.directive.mjs +0 -87
- package/esm2022/table-builder/directives/table-wrapper.directive.mjs +0 -27
- package/esm2022/table-builder/directives/tb-filter.directive.mjs +0 -413
- package/esm2022/table-builder/enums/filterTypes.mjs +0 -72
- 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 -5
- 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 -35
- package/esm2022/table-builder/material.module.mjs +0 -208
- package/esm2022/table-builder/ngrx/actions.mjs +0 -5
- package/esm2022/table-builder/ngrx/effects.mjs +0 -49
- package/esm2022/table-builder/ngrx/reducer.mjs +0 -52
- package/esm2022/table-builder/ngrx/selectors.mjs +0 -24
- package/esm2022/table-builder/pipes/column-total.pipe.mjs +0 -21
- package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +0 -19
- package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +0 -46
- package/esm2022/table-builder/pipes/key-display.mjs +0 -21
- package/esm2022/table-builder/services/export-to-csv.service.mjs +0 -89
- package/esm2022/table-builder/services/link-creator.service.mjs +0 -42
- package/esm2022/table-builder/services/table-template-service.mjs +0 -45
- package/esm2022/table-builder/services/transform-creator.mjs +0 -76
- package/esm2022/table-builder/table-builder.module.mjs +0 -208
- package/esm2022/utilities/directives/auto-focus.directive.mjs +0 -27
- package/esm2022/utilities/directives/clickEmitterDirective.mjs +0 -22
- package/esm2022/utilities/directives/clickSubject.mjs +0 -28
- package/esm2022/utilities/directives/conditional-classes.directive.mjs +0 -36
- package/esm2022/utilities/directives/dialog-service.mjs +0 -26
- package/esm2022/utilities/directives/dialog.mjs +0 -139
- package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +0 -60
- 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 -27
- package/esm2022/utilities/directives/trim-whitespace.directive.mjs +0 -30
- package/esm2022/utilities/index.mjs +0 -16
- package/esm2022/utilities/module.mjs +0 -92
- package/esm2022/utilities/pipes/function.pipe.mjs +0 -22
- package/esm2022/utilities/pipes/phone.pipe.mjs +0 -21
- package/esm2022/utilities/pipes/space-case.pipes.mjs +0 -29
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { FieldType } from '../../interfaces/report-def';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "@angular/forms";
|
|
7
|
-
import * as i3 from "../../../utilities/directives/auto-focus.directive";
|
|
8
|
-
class InFilterComponent {
|
|
9
|
-
constructor(ref) {
|
|
10
|
-
this.ref = ref;
|
|
11
|
-
this.FieldType = FieldType;
|
|
12
|
-
this.value = [undefined];
|
|
13
|
-
this.onChange = (_) => { };
|
|
14
|
-
this.onTouched = () => { };
|
|
15
|
-
this.value = [undefined];
|
|
16
|
-
}
|
|
17
|
-
writeValue(obj) {
|
|
18
|
-
if (!obj?.length)
|
|
19
|
-
obj = [undefined];
|
|
20
|
-
this.value = obj;
|
|
21
|
-
this.ref.markForCheck();
|
|
22
|
-
}
|
|
23
|
-
registerOnChange(fn) {
|
|
24
|
-
this.onChange = fn;
|
|
25
|
-
}
|
|
26
|
-
registerOnTouched(fn) {
|
|
27
|
-
this.onTouched = fn;
|
|
28
|
-
}
|
|
29
|
-
addInput() {
|
|
30
|
-
this.value = [...this.value, undefined];
|
|
31
|
-
this.ref.markForCheck();
|
|
32
|
-
this.onChange(this.value);
|
|
33
|
-
}
|
|
34
|
-
removeInput(index) {
|
|
35
|
-
this.value = [...this.value];
|
|
36
|
-
this.value.splice(index, 1);
|
|
37
|
-
this.ref.markForCheck();
|
|
38
|
-
this.onChange(this.value);
|
|
39
|
-
}
|
|
40
|
-
onValueChange(i, value) {
|
|
41
|
-
this.value = [...this.value];
|
|
42
|
-
this.value[i] = value;
|
|
43
|
-
this.ref.markForCheck();
|
|
44
|
-
this.onChange(this.value);
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: InFilterComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: InFilterComponent, selector: "lib-in-filter", inputs: { type: "type" }, providers: [{
|
|
48
|
-
provide: NG_VALUE_ACCESSOR,
|
|
49
|
-
useExisting: InFilterComponent,
|
|
50
|
-
multi: true
|
|
51
|
-
}], ngImport: i0, template: "<div class=inline>\n <div *ngFor=\"let val of value; index as i\">\n <input *ngIf=\"type === FieldType.Number || type === FieldType.Currency\"\n [ngModel]=\"val\" (ngModelChange)=\"onValueChange(i,$event)\"\n [readonly]=\"i+1 < value.length\" type=\"number\" [ngModelOptions]=\"{standalone:true}\" [autoFocus]=\"i === value.length - 1\"/>\n <input *ngIf=\"type !== FieldType.Number && type !== FieldType.Currency\"\n [ngModel]=\"val\" (ngModelChange)=\"onValueChange(i,$event)\"\n [readonly]=\"i+1 < value.length\" type=\"string\" [ngModelOptions]=\"{standalone:true}\"\n #input [autoFocus]=\"i === value.length - 1\" />\n <button [disabled]=\"value.length <= 1\" (click)=\"removeInput(i)\">-</button>\n <button *ngIf=\"i === value.length - 1\" [disabled]=\"val == undefined || val === ''\" (click)=\"addInput()\">+</button>\n </div>\n</div>\n", styles: [".inline{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.AutoFocusDirective, selector: "[autoFocus]", inputs: ["autoFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
52
|
-
}
|
|
53
|
-
export { InFilterComponent };
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: InFilterComponent, decorators: [{
|
|
55
|
-
type: Component,
|
|
56
|
-
args: [{ selector: 'lib-in-filter', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{
|
|
57
|
-
provide: NG_VALUE_ACCESSOR,
|
|
58
|
-
useExisting: InFilterComponent,
|
|
59
|
-
multi: true
|
|
60
|
-
}], template: "<div class=inline>\n <div *ngFor=\"let val of value; index as i\">\n <input *ngIf=\"type === FieldType.Number || type === FieldType.Currency\"\n [ngModel]=\"val\" (ngModelChange)=\"onValueChange(i,$event)\"\n [readonly]=\"i+1 < value.length\" type=\"number\" [ngModelOptions]=\"{standalone:true}\" [autoFocus]=\"i === value.length - 1\"/>\n <input *ngIf=\"type !== FieldType.Number && type !== FieldType.Currency\"\n [ngModel]=\"val\" (ngModelChange)=\"onValueChange(i,$event)\"\n [readonly]=\"i+1 < value.length\" type=\"string\" [ngModelOptions]=\"{standalone:true}\"\n #input [autoFocus]=\"i === value.length - 1\" />\n <button [disabled]=\"value.length <= 1\" (click)=\"removeInput(i)\">-</button>\n <button *ngIf=\"i === value.length - 1\" [disabled]=\"val == undefined || val === ''\" (click)=\"addInput()\">+</button>\n </div>\n</div>\n", styles: [".inline{display:inline-block}\n"] }]
|
|
61
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvaW4tZmlsdGVyL2luLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2luLWZpbHRlci9pbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBRXhELE1BV2EsaUJBQWlCO0lBSzVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBSjFDLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFFdEIsVUFBSyxHQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFVM0IsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFLM0IsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQVpwQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELFVBQVUsQ0FBQyxHQUFVO1FBQ25CLElBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTTtZQUFFLEdBQUcsR0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUdELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYSxDQUFDLENBQVEsRUFBQyxLQUFzQjtRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQXpDVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrRUFOakIsQ0FBQztnQkFDVixPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsMEJDZEosMDRCQWFBOztTREdhLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQVg3QixTQUFTOytCQUNFLGVBQWUsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxhQUNuQyxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUJBQW1COzRCQUM5QixLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDO3dHQUlPLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbHRlckluZm8gfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWluLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2luLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW4tZmlsdGVyLmNvbXBvbmVudC5jc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IEluRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEluRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcclxuICBASW5wdXQoKSB0eXBlISA6IEZpZWxkVHlwZTtcclxuICB2YWx1ZTogYW55W10gPSBbdW5kZWZpbmVkXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gW3VuZGVmaW5lZF07XHJcbiAgfVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgaWYoIW9iaj8ubGVuZ3RoKSBvYmogID0gW3VuZGVmaW5lZF07XHJcbiAgICB0aGlzLnZhbHVlID0gb2JqO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBhZGRJbnB1dCgpe1xyXG4gICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlLCB1bmRlZmluZWRdO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSW5wdXQoaW5kZXg6IG51bWJlcil7XHJcbiAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWVdO1xyXG4gICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsMSk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGk6bnVtYmVyLHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpe1xyXG4gICAgdGhpcy52YWx1ZSA9IFsuLi50aGlzLnZhbHVlXTtcclxuICAgIHRoaXMudmFsdWVbaV0gPSB2YWx1ZTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9aW5saW5lPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbCBvZiB2YWx1ZTsgaW5kZXggYXMgaVwiPlxuICAgICAgPGlucHV0ICpuZ0lmPVwidHlwZSA9PT0gRmllbGRUeXBlLk51bWJlciB8fCB0eXBlID09PSBGaWVsZFR5cGUuQ3VycmVuY3lcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWxcIiAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKGksJGV2ZW50KVwiXG4gICAgICAgIFtyZWFkb25seV09XCJpKzEgPCB2YWx1ZS5sZW5ndGhcIiB0eXBlPVwibnVtYmVyXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOnRydWV9XCIgW2F1dG9Gb2N1c109XCJpID09PSB2YWx1ZS5sZW5ndGggLSAxXCIvPlxuICAgICAgPGlucHV0ICpuZ0lmPVwidHlwZSAhPT0gRmllbGRUeXBlLk51bWJlciAmJiB0eXBlICE9PSBGaWVsZFR5cGUuQ3VycmVuY3lcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWxcIiAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKGksJGV2ZW50KVwiXG4gICAgICAgIFtyZWFkb25seV09XCJpKzEgPCB2YWx1ZS5sZW5ndGhcIiB0eXBlPVwic3RyaW5nXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOnRydWV9XCJcbiAgICAgICAgI2lucHV0IFthdXRvRm9jdXNdPVwiaSA9PT0gdmFsdWUubGVuZ3RoIC0gMVwiIC8+XG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ2YWx1ZS5sZW5ndGggPD0gMVwiIChjbGljayk9XCJyZW1vdmVJbnB1dChpKVwiPi08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJpID09PSB2YWx1ZS5sZW5ndGggLSAxXCIgW2Rpc2FibGVkXT1cInZhbCA9PSB1bmRlZmluZWQgfHwgdmFsID09PSAnJ1wiIChjbGljayk9XCJhZGRJbnB1dCgpXCI+KzwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './date-filter/date-filter.component';
|
|
2
|
-
export * from './filter/filter.component';
|
|
3
|
-
export * from './gen-col-displayer/gen-col-displayer.component';
|
|
4
|
-
export * from './table-container-filter/gen-filter-displayer/gen-filter-displayer.component';
|
|
5
|
-
export * from './table-container-filter/filter-list/filter-list.component';
|
|
6
|
-
export * from './generic-table/generic-table.component';
|
|
7
|
-
export * from './table-container/table-container';
|
|
8
|
-
export * from './generic-table/paginator.component';
|
|
9
|
-
export * from './group-by-list/group-by-list.component';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRlLWZpbHRlci9kYXRlLWZpbHRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW4tY29sLWRpc3BsYXllci9nZW4tY29sLWRpc3BsYXllci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLWNvbnRhaW5lci1maWx0ZXIvZ2VuLWZpbHRlci1kaXNwbGF5ZXIvZ2VuLWZpbHRlci1kaXNwbGF5ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1jb250YWluZXItZmlsdGVyL2ZpbHRlci1saXN0L2ZpbHRlci1saXN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJpYy10YWJsZS9nZW5lcmljLXRhYmxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtY29udGFpbmVyL3RhYmxlLWNvbnRhaW5lcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJpYy10YWJsZS9wYWdpbmF0b3IuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9ncm91cC1ieS1saXN0L2dyb3VwLWJ5LWxpc3QuY29tcG9uZW50JztcclxuIl19
|
package/esm2022/table-builder/components/initialization-component/initialization-component.mjs
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/material/icon";
|
|
4
|
-
import * as i2 from "../array-column.component";
|
|
5
|
-
import * as i3 from "../link-column.component";
|
|
6
|
-
import * as i4 from "../../../utilities/pipes/function.pipe";
|
|
7
|
-
class InitializationComponent {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: InitializationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: InitializationComponent, selector: "ng-component", viewQueries: [{ propertyName: "linkTemplate", first: true, predicate: ["link"], descendants: true, static: true }, { propertyName: "imageUrlTemplate", first: true, predicate: ["imageUrl"], descendants: true, static: true }, { propertyName: "currencyTemplate", first: true, predicate: ["currency"], descendants: true, static: true }, { propertyName: "arrayTemplate", first: true, predicate: ["array"], descendants: true, static: true }, { propertyName: "defaultTemplate", first: true, predicate: ["default"], descendants: true, static: true }, { propertyName: "defaultWithIcon", first: true, predicate: ["defaultWithIcon"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #link let-element='element' let-metaData='metaData' let-transform='transform'>\r\n <tb-link-column [element]=\"element\" [metaData]=\"metaData\" [transform]=\"transform\"></tb-link-column>\r\n</ng-template>\r\n\r\n<ng-template #imageUrl let-element='element' let-metaData='metaData'>\r\n <span>\r\n <img src=\"{{element[metaData.key]}}\" height=\"75px\" width=\"75px\" />\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #array let-element='element' let-metaData='metaData'>\r\n <tb-array-column [array]='element[metaData.key]' [metaData]='metaData'></tb-array-column>\r\n</ng-template>\r\n\r\n<ng-template #default let-element='element' let-metaData='metaData' let-transform='transform' >\r\n <span>{{ transform | func : element }}</span>\r\n</ng-template>\r\n\r\n<ng-template #defaultWithIcon let-element='element' let-metaData='metaData' let-transform='transform' >\r\n <mat-icon>{{ transform | func : element }}</mat-icon>\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.ArrayColumnComponent, selector: "tb-array-column", inputs: ["array", "metaData"] }, { kind: "component", type: i3.LinkColumnComponent, selector: "tb-link-column", inputs: ["metaData", "element", "transform"] }, { kind: "pipe", type: i4.FunctionPipe, name: "func" }] }); }
|
|
10
|
-
}
|
|
11
|
-
export { InitializationComponent };
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: InitializationComponent, decorators: [{
|
|
13
|
-
type: Component,
|
|
14
|
-
args: [{ template: "<ng-template #link let-element='element' let-metaData='metaData' let-transform='transform'>\r\n <tb-link-column [element]=\"element\" [metaData]=\"metaData\" [transform]=\"transform\"></tb-link-column>\r\n</ng-template>\r\n\r\n<ng-template #imageUrl let-element='element' let-metaData='metaData'>\r\n <span>\r\n <img src=\"{{element[metaData.key]}}\" height=\"75px\" width=\"75px\" />\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #array let-element='element' let-metaData='metaData'>\r\n <tb-array-column [array]='element[metaData.key]' [metaData]='metaData'></tb-array-column>\r\n</ng-template>\r\n\r\n<ng-template #default let-element='element' let-metaData='metaData' let-transform='transform' >\r\n <span>{{ transform | func : element }}</span>\r\n</ng-template>\r\n\r\n<ng-template #defaultWithIcon let-element='element' let-metaData='metaData' let-transform='transform' >\r\n <mat-icon>{{ transform | func : element }}</mat-icon>\r\n</ng-template>\r\n" }]
|
|
15
|
-
}], propDecorators: { linkTemplate: [{
|
|
16
|
-
type: ViewChild,
|
|
17
|
-
args: ['link', { static: true }]
|
|
18
|
-
}], imageUrlTemplate: [{
|
|
19
|
-
type: ViewChild,
|
|
20
|
-
args: ['imageUrl', { static: true }]
|
|
21
|
-
}], currencyTemplate: [{
|
|
22
|
-
type: ViewChild,
|
|
23
|
-
args: ['currency', { static: true }]
|
|
24
|
-
}], arrayTemplate: [{
|
|
25
|
-
type: ViewChild,
|
|
26
|
-
args: ['array', { static: true }]
|
|
27
|
-
}], defaultTemplate: [{
|
|
28
|
-
type: ViewChild,
|
|
29
|
-
args: ['default', { static: true }]
|
|
30
|
-
}], defaultWithIcon: [{
|
|
31
|
-
type: ViewChild,
|
|
32
|
-
args: ['defaultWithIcon', { static: true }]
|
|
33
|
-
}] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6YXRpb24tY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9pbml0aWFsaXphdGlvbi1jb21wb25lbnQvaW5pdGlhbGl6YXRpb24tY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9pbml0aWFsaXphdGlvbi1jb21wb25lbnQvaW5pdGlhbGl6YXRpb24tY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUVsRSxNQUdhLHVCQUF1Qjs4R0FBdkIsdUJBQXVCO2tHQUF2Qix1QkFBdUIsdXNCQ0xwQywrOEJBcUJBOztTRGhCYSx1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzs7OEJBSTJCLFlBQVk7c0JBQTlDLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDTSxnQkFBZ0I7c0JBQXRELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDRSxnQkFBZ0I7c0JBQXRELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDRCxhQUFhO3NCQUFoRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ0ksZUFBZTtzQkFBcEQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNVLGVBQWU7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbml0aWFsaXphdGlvbi1jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbml0aWFsaXphdGlvbkNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnbGluaycsIHtzdGF0aWM6IHRydWV9KSBsaW5rVGVtcGxhdGUhIDogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdpbWFnZVVybCcsIHtzdGF0aWM6IHRydWV9KSBpbWFnZVVybFRlbXBsYXRlISA6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnY3VycmVuY3knLCB7c3RhdGljOiB0cnVlfSkgY3VycmVuY3lUZW1wbGF0ZSEgOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2FycmF5Jywge3N0YXRpYzogdHJ1ZX0pIGFycmF5VGVtcGxhdGUhIDogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdkZWZhdWx0Jywge3N0YXRpYzogdHJ1ZX0pIGRlZmF1bHRUZW1wbGF0ZSEgOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2RlZmF1bHRXaXRoSWNvbicsIHtzdGF0aWM6IHRydWV9KSBkZWZhdWx0V2l0aEljb24hIDogVGVtcGxhdGVSZWY8YW55PjtcclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2xpbmsgIGxldC1lbGVtZW50PSdlbGVtZW50JyBsZXQtbWV0YURhdGE9J21ldGFEYXRhJyBsZXQtdHJhbnNmb3JtPSd0cmFuc2Zvcm0nPlxyXG4gIDx0Yi1saW5rLWNvbHVtbiBbZWxlbWVudF09XCJlbGVtZW50XCIgW21ldGFEYXRhXT1cIm1ldGFEYXRhXCIgW3RyYW5zZm9ybV09XCJ0cmFuc2Zvcm1cIj48L3RiLWxpbmstY29sdW1uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpbWFnZVVybCAgbGV0LWVsZW1lbnQ9J2VsZW1lbnQnIGxldC1tZXRhRGF0YT0nbWV0YURhdGEnPlxyXG4gIDxzcGFuPlxyXG4gICAgPGltZyBzcmM9XCJ7e2VsZW1lbnRbbWV0YURhdGEua2V5XX19XCIgaGVpZ2h0PVwiNzVweFwiIHdpZHRoPVwiNzVweFwiIC8+XHJcbiAgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhcnJheSBsZXQtZWxlbWVudD0nZWxlbWVudCcgbGV0LW1ldGFEYXRhPSdtZXRhRGF0YSc+XHJcbiAgPHRiLWFycmF5LWNvbHVtbiBbYXJyYXldPSdlbGVtZW50W21ldGFEYXRhLmtleV0nIFttZXRhRGF0YV09J21ldGFEYXRhJz48L3RiLWFycmF5LWNvbHVtbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdCBsZXQtZWxlbWVudD0nZWxlbWVudCcgbGV0LW1ldGFEYXRhPSdtZXRhRGF0YScgbGV0LXRyYW5zZm9ybT0ndHJhbnNmb3JtJyA+XHJcbiAgPHNwYW4+e3sgdHJhbnNmb3JtIHwgZnVuYyA6IGVsZW1lbnQgfX08L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRXaXRoSWNvbiBsZXQtZWxlbWVudD0nZWxlbWVudCcgbGV0LW1ldGFEYXRhPSdtZXRhRGF0YScgbGV0LXRyYW5zZm9ybT0ndHJhbnNmb3JtJyA+XHJcbiAgPG1hdC1pY29uPnt7IHRyYW5zZm9ybSB8IGZ1bmMgOiBlbGVtZW50IH19PC9tYXQtaWNvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../classes/table-store";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
import * as i3 from "@angular/router";
|
|
6
|
-
import * as i4 from "@ngrx/component";
|
|
7
|
-
import * as i5 from "../../utilities/pipes/function.pipe";
|
|
8
|
-
class LinkColumnComponent {
|
|
9
|
-
constructor(store) {
|
|
10
|
-
this.store = store;
|
|
11
|
-
this.transform = (a) => a;
|
|
12
|
-
this.link = (metaData) => this.store.getLinkMap(metaData);
|
|
13
|
-
}
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LinkColumnComponent, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: LinkColumnComponent, selector: "tb-link-column", inputs: { metaData: "metaData", element: "element", transform: "transform" }, ngImport: i0, template: `
|
|
16
|
-
<ng-container *ngrxLet="(link | func : (metaData)) as linkInfo">
|
|
17
|
-
<a *ngIf="$any(linkInfo).useRouterLink; else hrefLink" target="{{$any(linkInfo).target}}"
|
|
18
|
-
[routerLink]=" [($any(linkInfo).link | func : element)]"
|
|
19
|
-
[queryParams]="$any(linkInfo).routerLinkOptions.queryParams | func : element"
|
|
20
|
-
[fragment]="$any(linkInfo).routerLinkOptions.fragment"
|
|
21
|
-
[preserveFragment]="$any(linkInfo).routerLinkOptions.preserveFragment"
|
|
22
|
-
[queryParamsHandling]="$any(linkInfo).routerLinkOptions.queryParamsHandling"
|
|
23
|
-
>
|
|
24
|
-
{{transform | func : element}}
|
|
25
|
-
</a>
|
|
26
|
-
<ng-template #hrefLink>
|
|
27
|
-
<a target="{{$any(linkInfo).target}}"
|
|
28
|
-
href="{{($any(linkInfo).link | func : element)}}">
|
|
29
|
-
{{transform | func : element}}
|
|
30
|
-
</a>
|
|
31
|
-
</ng-template>
|
|
32
|
-
</ng-container>
|
|
33
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "pipe", type: i5.FunctionPipe, name: "func" }] }); }
|
|
34
|
-
}
|
|
35
|
-
export { LinkColumnComponent };
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LinkColumnComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{
|
|
39
|
-
selector: "tb-link-column",
|
|
40
|
-
template: `
|
|
41
|
-
<ng-container *ngrxLet="(link | func : (metaData)) as linkInfo">
|
|
42
|
-
<a *ngIf="$any(linkInfo).useRouterLink; else hrefLink" target="{{$any(linkInfo).target}}"
|
|
43
|
-
[routerLink]=" [($any(linkInfo).link | func : element)]"
|
|
44
|
-
[queryParams]="$any(linkInfo).routerLinkOptions.queryParams | func : element"
|
|
45
|
-
[fragment]="$any(linkInfo).routerLinkOptions.fragment"
|
|
46
|
-
[preserveFragment]="$any(linkInfo).routerLinkOptions.preserveFragment"
|
|
47
|
-
[queryParamsHandling]="$any(linkInfo).routerLinkOptions.queryParamsHandling"
|
|
48
|
-
>
|
|
49
|
-
{{transform | func : element}}
|
|
50
|
-
</a>
|
|
51
|
-
<ng-template #hrefLink>
|
|
52
|
-
<a target="{{$any(linkInfo).target}}"
|
|
53
|
-
href="{{($any(linkInfo).link | func : element)}}">
|
|
54
|
-
{{transform | func : element}}
|
|
55
|
-
</a>
|
|
56
|
-
</ng-template>
|
|
57
|
-
</ng-container>
|
|
58
|
-
`
|
|
59
|
-
}]
|
|
60
|
-
}], ctorParameters: function () { return [{ type: i1.TableStore }]; }, propDecorators: { metaData: [{
|
|
61
|
-
type: Input
|
|
62
|
-
}], element: [{
|
|
63
|
-
type: Input
|
|
64
|
-
}], transform: [{
|
|
65
|
-
type: Input
|
|
66
|
-
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9saW5rLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFJakQsTUFxQmUsbUJBQW1CO0lBSWhDLFlBQXNCLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFEOUIsY0FBUyxHQUFHLENBQUMsQ0FBSyxFQUFDLEVBQUUsQ0FBQSxDQUFDLENBQUM7UUFFaEMsU0FBSSxHQUFJLENBQUMsUUFBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFEckIsQ0FBQzs4R0FKaEMsbUJBQW1CO2tHQUFuQixtQkFBbUIsb0lBbkJ0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JUOztTQUNZLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQXJCakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDtpQkFDRjtpR0FDVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tIFwiLi4vY2xhc3Nlcy90YWJsZS1zdG9yZVwiO1xyXG5pbXBvcnQgeyBNZXRhRGF0YSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWZcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInRiLWxpbmstY29sdW1uXCIsXHJcbiAgdGVtcGxhdGU6IGBcbiAgPG5nLWNvbnRhaW5lciAqbmdyeExldD1cIihsaW5rIHwgZnVuYyA6IChtZXRhRGF0YSkpIGFzIGxpbmtJbmZvXCI+XG4gICAgPGEgKm5nSWY9XCIkYW55KGxpbmtJbmZvKS51c2VSb3V0ZXJMaW5rOyBlbHNlIGhyZWZMaW5rXCIgdGFyZ2V0PVwie3skYW55KGxpbmtJbmZvKS50YXJnZXR9fVwiXG4gICAgICBbcm91dGVyTGlua109XCIgWygkYW55KGxpbmtJbmZvKS5saW5rIHwgZnVuYyA6IGVsZW1lbnQpXVwiXG4gICAgICBbcXVlcnlQYXJhbXNdPVwiJGFueShsaW5rSW5mbykucm91dGVyTGlua09wdGlvbnMucXVlcnlQYXJhbXMgfCBmdW5jIDogZWxlbWVudFwiXG4gICAgICBbZnJhZ21lbnRdPVwiJGFueShsaW5rSW5mbykucm91dGVyTGlua09wdGlvbnMuZnJhZ21lbnRcIlxuICAgICAgW3ByZXNlcnZlRnJhZ21lbnRdPVwiJGFueShsaW5rSW5mbykucm91dGVyTGlua09wdGlvbnMucHJlc2VydmVGcmFnbWVudFwiXG4gICAgICBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCIkYW55KGxpbmtJbmZvKS5yb3V0ZXJMaW5rT3B0aW9ucy5xdWVyeVBhcmFtc0hhbmRsaW5nXCJcbiAgICA+XG4gICAgICB7e3RyYW5zZm9ybSB8IGZ1bmMgOiBlbGVtZW50fX1cbiAgICA8L2E+XG4gICAgPG5nLXRlbXBsYXRlICNocmVmTGluaz5cbiAgICAgIDxhIHRhcmdldD1cInt7JGFueShsaW5rSW5mbykudGFyZ2V0fX1cIlxuICAgICAgICBocmVmPVwie3soJGFueShsaW5rSW5mbykubGluayB8IGZ1bmMgOiBlbGVtZW50KX19XCI+XG4gICAgICAgIHt7dHJhbnNmb3JtIHwgZnVuYyA6IGVsZW1lbnR9fVxuICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICBgXHJcbn0pZXhwb3J0IGNsYXNzIExpbmtDb2x1bW5Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpIG1ldGFEYXRhITogTWV0YURhdGE7XHJcbiAgQElucHV0KCkgZWxlbWVudCE6IGFueTtcclxuICBASW5wdXQoKSB0cmFuc2Zvcm0gPSAoYTphbnkpPT5hO1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdG9yZTogVGFibGVTdG9yZSkgeyAgfVxyXG4gIGxpbmsgPSAgKG1ldGFEYXRhIDogTWV0YURhdGEpID0+IHRoaXMuc3RvcmUuZ2V0TGlua01hcChtZXRhRGF0YSk7XHJcblxyXG59Il19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
-
import { FilterType } from '../../enums/filterTypes';
|
|
3
|
-
import { ControlContainer, NgForm } from '@angular/forms';
|
|
4
|
-
import { FieldType } from '../../interfaces/report-def';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/material/form-field";
|
|
8
|
-
import * as i3 from "@angular/material/input";
|
|
9
|
-
import * as i4 from "@angular/forms";
|
|
10
|
-
import * as i5 from "../in-filter/in-filter.component";
|
|
11
|
-
class NumberFilterComponent {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.FilterType = FilterType;
|
|
14
|
-
this.FieldType = FieldType;
|
|
15
|
-
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: NumberFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: NumberFilterComponent, selector: "tb-number-filter", inputs: { CurrentFilterType: "CurrentFilterType", info: "info" }, ngImport: i0, template: "<ng-container *ngIf=\"CurrentFilterType !== FilterType.NumberBetween && CurrentFilterType !== FilterType.IsNull && CurrentFilterType !== FilterType.In\">\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" type=\"number\"/>\n </mat-form-field>\n</ng-container>\n\n\n<ng-container *ngIf=\"CurrentFilterType === FilterType.NumberBetween\">\n <ng-container ngModelGroup=\"filterValue\" >\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"Start\" type=\"number\"/>\n </mat-form-field>\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"End\" type=\"number\"/>\n </mat-form-field>\n </ng-container>\n</ng-container>\n\n<div class=\"inline\" *ngIf=\"CurrentFilterType === FilterType.In\">\n <lib-in-filter name='filterValue' [type]=\"FieldType.Number\" [(ngModel)]='info.filterValue' ></lib-in-filter>\n</div>\n", styles: [".switch{display:inline-block}.my-filter{margin-right:15px}.inline{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.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: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "component", type: i5.InFilterComponent, selector: "lib-in-filter", inputs: ["type"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
|
-
}
|
|
19
|
-
export { NumberFilterComponent };
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: NumberFilterComponent, decorators: [{
|
|
21
|
-
type: Component,
|
|
22
|
-
args: [{ selector: 'tb-number-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<ng-container *ngIf=\"CurrentFilterType !== FilterType.NumberBetween && CurrentFilterType !== FilterType.IsNull && CurrentFilterType !== FilterType.In\">\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" type=\"number\"/>\n </mat-form-field>\n</ng-container>\n\n\n<ng-container *ngIf=\"CurrentFilterType === FilterType.NumberBetween\">\n <ng-container ngModelGroup=\"filterValue\" >\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"Start\" type=\"number\"/>\n </mat-form-field>\n <mat-form-field class=\"my-filter\">\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"End\" type=\"number\"/>\n </mat-form-field>\n </ng-container>\n</ng-container>\n\n<div class=\"inline\" *ngIf=\"CurrentFilterType === FilterType.In\">\n <lib-in-filter name='filterValue' [type]=\"FieldType.Number\" [(ngModel)]='info.filterValue' ></lib-in-filter>\n</div>\n", styles: [".switch{display:inline-block}.my-filter{margin-right:15px}.inline{display:inline-block}\n"] }]
|
|
23
|
-
}], propDecorators: { CurrentFilterType: [{
|
|
24
|
-
type: Input
|
|
25
|
-
}], info: [{
|
|
26
|
-
type: Input
|
|
27
|
-
}] } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL251bWJlci1maWx0ZXIvbnVtYmVyLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL251bWJlci1maWx0ZXIvbnVtYmVyLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7OztBQUd4RCxNQU9hLHFCQUFxQjtJQVBsQztRQVFFLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFBQyxjQUFTLEdBQUcsU0FBUyxDQUFDO0tBR2hEOzhHQUpZLHFCQUFxQjtrR0FBckIscUJBQXFCLDBIQ2RsQywrZ0NBcUJBLGkzRERUaUIsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUM7O1NBRXRELHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxDQUFDLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQzs4QkFJeEQsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGFydGlhbEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0Yi1udW1iZXItZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9udW1iZXItZmlsdGVyLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHZpZXdQcm92aWRlcnM6IFt7cHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybX1dXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlckZpbHRlckNvbXBvbmVudCB7XG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlOyBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XG4gIEBJbnB1dCgpIEN1cnJlbnRGaWx0ZXJUeXBlITogRmlsdGVyVHlwZTtcbiAgQElucHV0KCkgaW5mbyE6UGFydGlhbEZpbHRlcjtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJDdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5OdW1iZXJCZXR3ZWVuICYmIEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLklzTnVsbCAmJiBDdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5JblwiPlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJteS1maWx0ZXJcIj5cbiAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cImZpbHRlclZhbHVlXCIgW25nTW9kZWxdPVwiaW5mby5maWx0ZXJWYWx1ZVwiIHR5cGU9XCJudW1iZXJcIi8+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L25nLWNvbnRhaW5lcj5cblxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiQ3VycmVudEZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuTnVtYmVyQmV0d2VlblwiPlxuICA8bmctY29udGFpbmVyIG5nTW9kZWxHcm91cD1cImZpbHRlclZhbHVlXCIgID5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJteS1maWx0ZXJcIj5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiU3RhcnRcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5TdGFydFwiIHBsYWNlaG9sZGVyPVwiU3RhcnRcIiB0eXBlPVwibnVtYmVyXCIvPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibXktZmlsdGVyXCI+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cIkVuZFwiIFtuZ01vZGVsXT1cImluZm8uZmlsdGVyVmFsdWU/LkVuZFwiIHBsYWNlaG9sZGVyPVwiRW5kXCIgdHlwZT1cIm51bWJlclwiLz5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwiaW5saW5lXCIgKm5nSWY9XCJDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5JblwiPlxuICA8bGliLWluLWZpbHRlciBuYW1lPSdmaWx0ZXJWYWx1ZScgW3R5cGVdPVwiRmllbGRUeXBlLk51bWJlclwiIFsobmdNb2RlbCldPSdpbmZvLmZpbHRlclZhbHVlJyAgPjwvbGliLWluLWZpbHRlcj5cbjwvZGl2PlxuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { ComponentStore } from '@ngrx/component-store';
|
|
3
|
-
import { combineLatest } from 'rxjs';
|
|
4
|
-
import { distinctUntilChanged, map, mergeMap } from 'rxjs/operators';
|
|
5
|
-
import { notNull } from '../../../rxjs/rxjs-operators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../classes/table-store";
|
|
8
|
-
class SortMenuComponentStore extends ComponentStore {
|
|
9
|
-
constructor(tableState) {
|
|
10
|
-
super({ notSorted: [], sorted: [] });
|
|
11
|
-
this.tableState = tableState;
|
|
12
|
-
this.set = this.updater((state, data) => ({ ...data }));
|
|
13
|
-
this.setSorted = this.updater((state, sorted) => ({ ...state, sorted }));
|
|
14
|
-
this.setNotSorted = this.updater((state, notSorted) => ({ ...state, notSorted }));
|
|
15
|
-
this.sorted$ = this.select(state => state.sorted);
|
|
16
|
-
this.notSorted$ = this.select(state => state.notSorted);
|
|
17
|
-
this.setDirection = this.updater((state, sort) => {
|
|
18
|
-
const index = state.sorted.findIndex(s => s.active === sort.active);
|
|
19
|
-
const sorted = [...state.sorted];
|
|
20
|
-
sorted.splice(index, 1, sort);
|
|
21
|
-
return ({ ...state, sorted });
|
|
22
|
-
});
|
|
23
|
-
this.reset = () => {
|
|
24
|
-
const sorted = this.tableState.sorted$.pipe(mergeMap(sort => this.tableState.metaData$.pipe(notNull(), map(meta => sort.map(s => {
|
|
25
|
-
return { ...s, displayName: meta[s.active]?.displayName };
|
|
26
|
-
})))));
|
|
27
|
-
const notSorted = this.tableState.metaDataArray$.pipe(mergeMap(metas => this.tableState.sorted$.pipe(map(s => metas
|
|
28
|
-
.filter(meta => !s.some(s => s.active === meta.key) && !meta.noSort)
|
|
29
|
-
.map(meta => ({ active: meta.key, displayName: meta.displayName }))))));
|
|
30
|
-
this.set(combineLatest([
|
|
31
|
-
sorted.pipe(distinctSortArray), notSorted.pipe(distinctSortArray)
|
|
32
|
-
]).pipe(map(([sorted, notSorted]) => ({ sorted, notSorted }))));
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SortMenuComponentStore, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SortMenuComponentStore }); }
|
|
37
|
-
}
|
|
38
|
-
export { SortMenuComponentStore };
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SortMenuComponentStore, decorators: [{
|
|
40
|
-
type: Injectable
|
|
41
|
-
}], ctorParameters: function () { return [{ type: i1.TableStore }]; } });
|
|
42
|
-
const equalSortArray = (arr1, arr2) => arr1.length === arr2.length && arr2.every(s1 => arr1.some(s2 => s1.active === s2.active));
|
|
43
|
-
const distinctSortArray = distinctUntilChanged(equalSortArray);
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1tZW51LmNvbXBvbmVudC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvc29ydC1tZW51L3NvcnQtbWVudS5jb21wb25lbnQtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBRXZELE1BQ2Esc0JBQXVCLFNBQVEsY0FBbUM7SUFDN0UsWUFBb0IsVUFBc0I7UUFDeEMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQTtRQURoQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBR2xDLFFBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQXlCLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUU3RSxjQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFzQixFQUFDLEVBQUUsQ0FBQSxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWhGLGlCQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUF5QixFQUFDLEVBQUUsQ0FB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QUFDLElBQW1CLEVBQUUsRUFBRSxDQUNqRSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzVGLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQWlCLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJztcclxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBub3ROdWxsIH0gZnJvbSAnLi4vLi4vLi4vcnhqcy9yeGpzLW9wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTb3J0TWVudUNvbXBvbmVudFN0b3JlIGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8Q29tcG9uZW50U3RvcmVTdGF0ZT4ge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFibGVTdGF0ZTogVGFibGVTdG9yZSl7XHJcbiAgICBzdXBlcih7IG5vdFNvcnRlZDpbXSwgc29ydGVkOiBbXX0pXHJcbiAgfVxyXG4gIHByaXZhdGUgc2V0ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGF0YTogQ29tcG9uZW50U3RvcmVTdGF0ZSk9PiAoey4uLmRhdGF9KSk7XHJcblxyXG4gIHNldFNvcnRlZCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNvcnRlZDogU29ydFdpdGhOYW1lW10pPT4oey4uLnN0YXRlLCBzb3J0ZWR9KSk7XHJcblxyXG4gIHNldE5vdFNvcnRlZCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIG5vdFNvcnRlZDogU29ydFdpdGhOYW1lW10pPT4oey4uLnN0YXRlLCBub3RTb3J0ZWR9KSk7XHJcbiAgc29ydGVkJCA9IHRoaXMuc2VsZWN0KHN0YXRlPT5zdGF0ZS5zb3J0ZWQpO1xyXG4gIG5vdFNvcnRlZCQgPSB0aGlzLnNlbGVjdChzdGF0ZT0+c3RhdGUubm90U29ydGVkKTtcclxuXHJcbiAgc2V0RGlyZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSxzb3J0OlNvcnRXaXRoTmFtZSk9PntcclxuICAgIGNvbnN0IGluZGV4ID0gc3RhdGUuc29ydGVkLmZpbmRJbmRleChzID0+IHMuYWN0aXZlID09PSBzb3J0LmFjdGl2ZSk7XHJcbiAgICBjb25zdCBzb3J0ZWQgPSBbLi4uc3RhdGUuc29ydGVkXTtcclxuICAgIHNvcnRlZC5zcGxpY2UoaW5kZXgsMSxzb3J0KTtcclxuICAgIHJldHVybiAoey4uLnN0YXRlLHNvcnRlZH0pO1xyXG4gIH0pXHJcblxyXG4gIHJlc2V0ID0gKCkgPT4ge1xyXG4gICAgY29uc3Qgc29ydGVkID0gdGhpcy50YWJsZVN0YXRlLnNvcnRlZCQucGlwZShcclxuICAgICAgbWVyZ2VNYXAoc29ydCA9PiB0aGlzLnRhYmxlU3RhdGUubWV0YURhdGEkLnBpcGUoXHJcbiAgICAgICAgbm90TnVsbCgpLFxyXG4gICAgICAgIG1hcChcclxuICAgICAgICBtZXRhID0+IHNvcnQubWFwKHMgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuICh7Li4ucywgZGlzcGxheU5hbWU6IG1ldGFbcy5hY3RpdmVdPy5kaXNwbGF5TmFtZX0gYXMgU29ydFdpdGhOYW1lKX0pXHJcbiAgICAgICkpKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IG5vdFNvcnRlZCA9IHRoaXMudGFibGVTdGF0ZS5tZXRhRGF0YUFycmF5JC5waXBlKG1lcmdlTWFwKFxyXG4gICAgICBtZXRhcyA9PiB0aGlzLnRhYmxlU3RhdGUuc29ydGVkJC5waXBlKFxyXG4gICAgICAgIG1hcChzID0+IG1ldGFzXHJcbiAgICAgICAgICAuZmlsdGVyKG1ldGEgPT4gIXMuc29tZShzPT5zLmFjdGl2ZT09PSBtZXRhLmtleSkgJiYgIW1ldGEubm9Tb3J0KVxyXG4gICAgICAgICAgLm1hcChtZXRhPT4oe2FjdGl2ZTptZXRhLmtleSxkaXNwbGF5TmFtZSA6IG1ldGEuZGlzcGxheU5hbWV9IGFzIFNvcnRXaXRoTmFtZSkpKVxyXG4gICAgICApXHJcbiAgICApKTtcclxuICAgIHRoaXMuc2V0KGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICBzb3J0ZWQucGlwZShkaXN0aW5jdFNvcnRBcnJheSksbm90U29ydGVkLnBpcGUoZGlzdGluY3RTb3J0QXJyYXkpXHJcbiAgICBdKS5waXBlKG1hcCgoW3NvcnRlZCxub3RTb3J0ZWRdKT0+KHtzb3J0ZWQsbm90U29ydGVkfSkpKSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFN0b3JlU3RhdGUge1xyXG4gIHNvcnRlZCA6IFNvcnRXaXRoTmFtZVtdO1xyXG4gIG5vdFNvcnRlZDogU29ydFdpdGhOYW1lW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU29ydFdpdGhOYW1lIGV4dGVuZHMgU29ydHtcclxuICBkaXNwbGF5TmFtZSA6IHN0cmluZztcclxufVxyXG5cclxuY29uc3QgZXF1YWxTb3J0QXJyYXkgPSAoYXJyMTpTb3J0V2l0aE5hbWVbXSxhcnIyOlNvcnRXaXRoTmFtZVtdKSA9PlxyXG4gIGFycjEubGVuZ3RoID09PSBhcnIyLmxlbmd0aCAmJiBhcnIyLmV2ZXJ5KHMxID0+IGFycjEuc29tZShzMiA9PiBzMS5hY3RpdmUgPT09IHMyLmFjdGl2ZSkpO1xyXG5jb25zdCBkaXN0aW5jdFNvcnRBcnJheSA9IGRpc3RpbmN0VW50aWxDaGFuZ2VkPFNvcnRXaXRoTmFtZVtdPihlcXVhbFNvcnRBcnJheSk7XHJcbiJdfQ==
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { first, map, tap } from 'rxjs/operators';
|
|
5
|
-
import { SortDirection } from '../../interfaces/report-def';
|
|
6
|
-
import { SortMenuComponentStore } from './sort-menu.component-store';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../classes/table-store";
|
|
9
|
-
import * as i2 from "./sort-menu.component-store";
|
|
10
|
-
import * as i3 from "@angular/common";
|
|
11
|
-
import * as i4 from "@angular/material/button";
|
|
12
|
-
import * as i5 from "@angular/material/tooltip";
|
|
13
|
-
import * as i6 from "@angular/material/menu";
|
|
14
|
-
import * as i7 from "@angular/material/icon";
|
|
15
|
-
import * as i8 from "@ngrx/component";
|
|
16
|
-
import * as i9 from "@angular/cdk/drag-drop";
|
|
17
|
-
import * as i10 from "../../../utilities/directives/stop-propagation.directive";
|
|
18
|
-
import * as i11 from "../../../utilities/pipes/space-case.pipes";
|
|
19
|
-
class SortMenuComponent {
|
|
20
|
-
constructor(tableState, store) {
|
|
21
|
-
this.tableState = tableState;
|
|
22
|
-
this.store = store;
|
|
23
|
-
this.SortDirection = SortDirection;
|
|
24
|
-
this.dirty$ = new BehaviorSubject(false);
|
|
25
|
-
this.apply = this.store.effect((obs) => obs.pipe(tap(() => {
|
|
26
|
-
this.dirty$.next(false);
|
|
27
|
-
this.tableState.setAllSort(this.store.sorted$.pipe(first()));
|
|
28
|
-
})));
|
|
29
|
-
this.sorted$ = this.store.sorted$.pipe(map(data => [...data]));
|
|
30
|
-
this.notSorted$ = this.store.notSorted$.pipe(map(data => [...data]));
|
|
31
|
-
}
|
|
32
|
-
reset() {
|
|
33
|
-
this.dirty$.next(false);
|
|
34
|
-
this.store.reset();
|
|
35
|
-
}
|
|
36
|
-
ngOnInit() {
|
|
37
|
-
this.store.reset();
|
|
38
|
-
}
|
|
39
|
-
dropIntoSorted(event) {
|
|
40
|
-
this.dirty$.next(true);
|
|
41
|
-
if (event.previousContainer === event.container) {
|
|
42
|
-
moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
|
|
43
|
-
this.store.setSorted(event.container.data);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
|
|
47
|
-
event.container.data[event.currentIndex] = { ...event.container.data[event.currentIndex], direction: SortDirection.asc };
|
|
48
|
-
this.store.setSorted(event.container.data);
|
|
49
|
-
this.store.setNotSorted(event.previousContainer.data);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
dropIntoNotSorted(event) {
|
|
53
|
-
if (event.previousContainer === event.container) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
this.dirty$.next(true);
|
|
58
|
-
transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
|
|
59
|
-
event.container.data[event.currentIndex] = { ...event.container.data[event.currentIndex] };
|
|
60
|
-
this.store.setNotSorted(event.container.data);
|
|
61
|
-
this.store.setSorted(event.previousContainer.data);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
setDirection(sort) {
|
|
65
|
-
this.dirty$.next(true);
|
|
66
|
-
this.store.setDirection(sort);
|
|
67
|
-
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SortMenuComponent, deps: [{ token: i1.TableStore }, { token: i2.SortMenuComponentStore }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: SortMenuComponent, selector: "tb-sort-menu", providers: [SortMenuComponentStore], ngImport: i0, template: "<ng-container *ngrxLet=\"dirty$ as dirty\">\n<ng-container *ngIf=\"sorted$ | async as sorted\">\n <ng-container *ngIf=\"notSorted$ | async as notSorted\">\n <!-- Menu Trigger -->\n <span matTooltip=\"Sort\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n <mat-icon color=\"primary\">swap_vert</mat-icon>\n </button>\n </span>\n\n <!-- Menu -->\n <mat-menu #menu=\"matMenu\" class=\"my-mat-menu\" (closed)=\"reset()\">\n <div mat-menu-item class=\"menu-button\">\n <div class=\"close-button-wrapper\">\n <span matTooltip=\"Close\">\n <mat-icon>close</mat-icon>\n </span>\n <span *ngIf=\"dirty\" matTooltip=\"Undo\" stop-propagation (click)=\"reset()\">\n <mat-icon>undo</mat-icon>\n </span>\n </div>\n </div>\n\n <!-- Apply Button -->\n <div class=\"apply-button-wrapper\">\n <button mat-button color=\"primary\" (click)=\"apply(null)\"\n stop-propagation [class.apply-border]=\"dirty\"\n [disabled]=\"!dirty\">\n Apply\n <ng-container *ngIf=\"dirty\">Unsaved Changes</ng-container>\n </button>\n </div>\n\n <!-- Default Sorting Text -->\n <div *ngIf=\"!sorted.length\" class=\"tip\" >\n Sorting List\n </div>\n\n <!-- Sorted Menu List -->\n <div class=\"list\"\n cdkDropList\n #sortedGroup=\"cdkDropList\"\n [cdkDropListConnectedTo]=\"[notSortedGroup]\"\n [cdkDropListData]=\"sorted\"\n (cdkDropListDropped)=\"dropIntoSorted($event)\">\n\n <!-- Menu Item Wrapper -->\n <ng-container *ngFor=\"let sort of sorted;let i=index\">\n\n <!-- Menu Item Headers -->\n <span *ngIf=\"sorted.length > 1 && i === 0 \" class=\"description\" class=\"sort-header\">First By</span>\n <span *ngIf=\"sorted.length > 1 && i !== 0 \" class=\"description\" class=\"sort-header\">Then By</span>\n\n <!-- Menu Item -->\n <div mat-menu-item cdkDrag class=\"menu-item\">\n <div class=\"sort-item\">\n <span class=\"sorted-name\">\n {{sort.displayName || (sort.active | spaceCase)}}\n <span class=\"direction-text\">{{sort.direction}}</span>\n </span>\n\n <!-- Sort Direction Buttons -->\n <div class=\"up-down-buttons-wrapper\">\n <button class=\"up-down-button up-button\" stop-propagation\n (click)=\"setDirection({active:sort.active,direction:SortDirection.asc,displayName:sort.displayName})\">\n <mat-icon [ngClass]=\"sort.direction !== SortDirection.asc ? 'light-arrow' : 'dark-arrow'\" class=\"up-down-icon\">\n arrow_upward\n </mat-icon>\n </button>\n\n <button class=\"up-down-button\" stop-propagation\n (click)=\"setDirection({active:sort.active,direction:SortDirection.desc,displayName:sort.displayName})\">\n <mat-icon [ngClass]=\"sort.direction === SortDirection.asc ? 'light-arrow' : 'dark-arrow'\" class=\"up-down-icon\">\n arrow_downward\n </mat-icon>\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n\n <!-- Default Not Sorted Text -->\n <div *ngIf=\"!notSorted.length\" class=\"tip\" >\n Not Sorted List\n </div>\n <!-- Not Sorted Menu List -->\n <div class=\"list\"\n cdkDropList\n #notSortedGroup=\"cdkDropList\"\n [cdkDropListConnectedTo]=\"[sortedGroup]\"\n [cdkDropListData]=\"notSorted\"\n (cdkDropListDropped)=\"dropIntoNotSorted($event)\">\n <div mat-menu-item *ngFor=\"let sort of notSorted\" class=\"menu-item\" cdkDrag>\n <span class=\"not-sorted-name\">{{sort.displayName || (sort.active | spaceCase)}}</span>\n </div>\n </div>\n </mat-menu>\n </ng-container>\n</ng-container>\n</ng-container>\n", styles: [".cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.list{padding:5px 2px;border-bottom:solid 1px #ccc;color:#000000de;background:white}.light-arrow{color:#93b1ea78}.dark-arrow{color:#224e9c}.up-down-button{background-color:#fff;border-radius:30%;border-color:#0ff;padding:1px 1px 0;border-width:.5px;cursor:pointer;height:27px}.mat-icon.up-down-icon{margin-right:0;font-size:20px;font-weight:lighter}.sort-item{display:flex;align-items:center;justify-content:space-between}.up-down-buttons-wrapper{margin-left:2rem}.up-button{margin-right:.3rem}.mat-mdc-menu-item.menu-item,.mat-mdc-menu-item.menu-button{min-height:initial;padding:0 3px;line-height:25px;height:30px}.mat-mdc-menu-item.menu-item{cursor:move}.sorted-name{color:#224e9c;font-size:17px;font-weight:700}.not-sorted-name{color:#93b1ea;font-size:17px;font-weight:700}.apply-border{border:#224e9c solid .5px}.apply-border:hover{background-color:#faebd7}.apply-button-wrapper{display:grid;justify-content:center}.sort-header{font-size:10px;font-style:italic}.tip{padding:0 3px;color:#d3d3d3}.direction-text{font-size:small;font-weight:400}.close-button-wrapper{display:flex;flex-direction:row-reverse}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "directive", type: i9.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i9.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i10.StopPropagationDirective, selector: "[stop-propagation]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.SpaceCasePipe, name: "spaceCase" }] }); }
|
|
70
|
-
}
|
|
71
|
-
export { SortMenuComponent };
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SortMenuComponent, decorators: [{
|
|
73
|
-
type: Component,
|
|
74
|
-
args: [{ selector: 'tb-sort-menu', providers: [SortMenuComponentStore], template: "<ng-container *ngrxLet=\"dirty$ as dirty\">\n<ng-container *ngIf=\"sorted$ | async as sorted\">\n <ng-container *ngIf=\"notSorted$ | async as notSorted\">\n <!-- Menu Trigger -->\n <span matTooltip=\"Sort\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n <mat-icon color=\"primary\">swap_vert</mat-icon>\n </button>\n </span>\n\n <!-- Menu -->\n <mat-menu #menu=\"matMenu\" class=\"my-mat-menu\" (closed)=\"reset()\">\n <div mat-menu-item class=\"menu-button\">\n <div class=\"close-button-wrapper\">\n <span matTooltip=\"Close\">\n <mat-icon>close</mat-icon>\n </span>\n <span *ngIf=\"dirty\" matTooltip=\"Undo\" stop-propagation (click)=\"reset()\">\n <mat-icon>undo</mat-icon>\n </span>\n </div>\n </div>\n\n <!-- Apply Button -->\n <div class=\"apply-button-wrapper\">\n <button mat-button color=\"primary\" (click)=\"apply(null)\"\n stop-propagation [class.apply-border]=\"dirty\"\n [disabled]=\"!dirty\">\n Apply\n <ng-container *ngIf=\"dirty\">Unsaved Changes</ng-container>\n </button>\n </div>\n\n <!-- Default Sorting Text -->\n <div *ngIf=\"!sorted.length\" class=\"tip\" >\n Sorting List\n </div>\n\n <!-- Sorted Menu List -->\n <div class=\"list\"\n cdkDropList\n #sortedGroup=\"cdkDropList\"\n [cdkDropListConnectedTo]=\"[notSortedGroup]\"\n [cdkDropListData]=\"sorted\"\n (cdkDropListDropped)=\"dropIntoSorted($event)\">\n\n <!-- Menu Item Wrapper -->\n <ng-container *ngFor=\"let sort of sorted;let i=index\">\n\n <!-- Menu Item Headers -->\n <span *ngIf=\"sorted.length > 1 && i === 0 \" class=\"description\" class=\"sort-header\">First By</span>\n <span *ngIf=\"sorted.length > 1 && i !== 0 \" class=\"description\" class=\"sort-header\">Then By</span>\n\n <!-- Menu Item -->\n <div mat-menu-item cdkDrag class=\"menu-item\">\n <div class=\"sort-item\">\n <span class=\"sorted-name\">\n {{sort.displayName || (sort.active | spaceCase)}}\n <span class=\"direction-text\">{{sort.direction}}</span>\n </span>\n\n <!-- Sort Direction Buttons -->\n <div class=\"up-down-buttons-wrapper\">\n <button class=\"up-down-button up-button\" stop-propagation\n (click)=\"setDirection({active:sort.active,direction:SortDirection.asc,displayName:sort.displayName})\">\n <mat-icon [ngClass]=\"sort.direction !== SortDirection.asc ? 'light-arrow' : 'dark-arrow'\" class=\"up-down-icon\">\n arrow_upward\n </mat-icon>\n </button>\n\n <button class=\"up-down-button\" stop-propagation\n (click)=\"setDirection({active:sort.active,direction:SortDirection.desc,displayName:sort.displayName})\">\n <mat-icon [ngClass]=\"sort.direction === SortDirection.asc ? 'light-arrow' : 'dark-arrow'\" class=\"up-down-icon\">\n arrow_downward\n </mat-icon>\n </button>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n\n <!-- Default Not Sorted Text -->\n <div *ngIf=\"!notSorted.length\" class=\"tip\" >\n Not Sorted List\n </div>\n <!-- Not Sorted Menu List -->\n <div class=\"list\"\n cdkDropList\n #notSortedGroup=\"cdkDropList\"\n [cdkDropListConnectedTo]=\"[sortedGroup]\"\n [cdkDropListData]=\"notSorted\"\n (cdkDropListDropped)=\"dropIntoNotSorted($event)\">\n <div mat-menu-item *ngFor=\"let sort of notSorted\" class=\"menu-item\" cdkDrag>\n <span class=\"not-sorted-name\">{{sort.displayName || (sort.active | spaceCase)}}</span>\n </div>\n </div>\n </mat-menu>\n </ng-container>\n</ng-container>\n</ng-container>\n", styles: [".cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.list{padding:5px 2px;border-bottom:solid 1px #ccc;color:#000000de;background:white}.light-arrow{color:#93b1ea78}.dark-arrow{color:#224e9c}.up-down-button{background-color:#fff;border-radius:30%;border-color:#0ff;padding:1px 1px 0;border-width:.5px;cursor:pointer;height:27px}.mat-icon.up-down-icon{margin-right:0;font-size:20px;font-weight:lighter}.sort-item{display:flex;align-items:center;justify-content:space-between}.up-down-buttons-wrapper{margin-left:2rem}.up-button{margin-right:.3rem}.mat-mdc-menu-item.menu-item,.mat-mdc-menu-item.menu-button{min-height:initial;padding:0 3px;line-height:25px;height:30px}.mat-mdc-menu-item.menu-item{cursor:move}.sorted-name{color:#224e9c;font-size:17px;font-weight:700}.not-sorted-name{color:#93b1ea;font-size:17px;font-weight:700}.apply-border{border:#224e9c solid .5px}.apply-border:hover{background-color:#faebd7}.apply-button-wrapper{display:grid;justify-content:center}.sort-header{font-size:10px;font-style:italic}.tip{padding:0 3px;color:#d3d3d3}.direction-text{font-size:small;font-weight:400}.close-button-wrapper{display:flex;flex-direction:row-reverse}\n"] }]
|
|
75
|
-
}], ctorParameters: function () { return [{ type: i1.TableStore }, { type: i2.SortMenuComponentStore }]; } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvc29ydC1tZW51L3NvcnQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL3NvcnQtbWVudS9zb3J0LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFnQixNQUFNLDZCQUE2QixDQUFBOzs7Ozs7Ozs7Ozs7O0FBRWxGLE1BTWEsaUJBQWlCO0lBTTVCLFlBQW9CLFVBQXNCLEVBQVMsS0FBNkI7UUFBNUQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQXdCO1FBRmhGLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQWdEcEMsVUFBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBb0IsRUFBQyxFQUFFLENBQ2hELEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDaEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBbERILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUEsRUFBRSxDQUFBLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQSxFQUFFLENBQUEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBa0M7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEtBQUssS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUMvQyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBRUwsaUJBQWlCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFDNUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQ3BCLEtBQUssQ0FBQyxhQUFhLEVBQ25CLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0QyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBQyxTQUFTLEVBQUMsYUFBYSxDQUFDLEdBQUcsRUFBQyxDQUFDO1lBQ3JILElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWtDO1FBQ2xELElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDL0MsT0FBTztTQUNSO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixpQkFBaUIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUM1QixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFDcEIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFDLENBQUM7WUFFekYsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBUUQsWUFBWSxDQUFDLElBQWlCO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBOURVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHVDQUZsQixDQUFDLHNCQUFzQixDQUFDLDBCQ2JwQyw4K0hBcUdBOztTRHRGYSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxjQUFjLGFBR2QsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXksIHRyYW5zZmVyQXJyYXlJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpcnN0LCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgU29ydE1lbnVDb21wb25lbnRTdG9yZSwgU29ydFdpdGhOYW1lIH0gZnJvbSAnLi9zb3J0LW1lbnUuY29tcG9uZW50LXN0b3JlJ1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1zb3J0LW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zb3J0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NvcnQtbWVudS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczpbU29ydE1lbnVDb21wb25lbnRTdG9yZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNvcnRNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG5cclxuICBzb3J0ZWQkOk9ic2VydmFibGU8U29ydFdpdGhOYW1lW10+O1xyXG4gIG5vdFNvcnRlZCQ6T2JzZXJ2YWJsZTxTb3J0V2l0aE5hbWVbXT47XHJcbiAgU29ydERpcmVjdGlvbiA9IFNvcnREaXJlY3Rpb247XHJcbiAgZGlydHkkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0YWJsZVN0YXRlOiBUYWJsZVN0b3JlLCBwdWJsaWMgc3RvcmU6IFNvcnRNZW51Q29tcG9uZW50U3RvcmUpIHtcclxuICAgIHRoaXMuc29ydGVkJCA9IHRoaXMuc3RvcmUuc29ydGVkJC5waXBlKG1hcChkYXRhPT5bLi4uZGF0YV0pKTtcclxuICAgIHRoaXMubm90U29ydGVkJCA9IHRoaXMuc3RvcmUubm90U29ydGVkJC5waXBlKG1hcChkYXRhPT5bLi4uZGF0YV0pKTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCl7XHJcbiAgICB0aGlzLmRpcnR5JC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuc3RvcmUucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLnN0b3JlLnJlc2V0KCk7XHJcbiAgfVxyXG5cclxuICBkcm9wSW50b1NvcnRlZChldmVudDogQ2RrRHJhZ0Ryb3A8U29ydFdpdGhOYW1lW10+KSB7XHJcbiAgICB0aGlzLmRpcnR5JC5uZXh0KHRydWUpO1xyXG4gICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcclxuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gICAgICB0aGlzLnN0b3JlLnNldFNvcnRlZChldmVudC5jb250YWluZXIuZGF0YSk7XHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhW2V2ZW50LmN1cnJlbnRJbmRleF0gPSB7Li4uZXZlbnQuY29udGFpbmVyLmRhdGFbZXZlbnQuY3VycmVudEluZGV4XSxkaXJlY3Rpb246U29ydERpcmVjdGlvbi5hc2N9O1xyXG4gICAgICB0aGlzLnN0b3JlLnNldFNvcnRlZChldmVudC5jb250YWluZXIuZGF0YSk7XHJcbiAgICAgIHRoaXMuc3RvcmUuc2V0Tm90U29ydGVkKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJvcEludG9Ob3RTb3J0ZWQoZXZlbnQ6IENka0RyYWdEcm9wPFNvcnRXaXRoTmFtZVtdPil7XHJcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpcnR5JC5uZXh0KHRydWUpO1xyXG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jb250YWluZXIuZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmlvdXNJbmRleCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGFbZXZlbnQuY3VycmVudEluZGV4XSA9IHsuLi5ldmVudC5jb250YWluZXIuZGF0YVtldmVudC5jdXJyZW50SW5kZXhdfTtcclxuXHJcbiAgICAgIHRoaXMuc3RvcmUuc2V0Tm90U29ydGVkKGV2ZW50LmNvbnRhaW5lci5kYXRhKTtcclxuICAgICAgdGhpcy5zdG9yZS5zZXRTb3J0ZWQoZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhcHBseSA9IHRoaXMuc3RvcmUuZWZmZWN0KChvYnM6T2JzZXJ2YWJsZTxudWxsPik9PlxyXG4gICAgb2JzLnBpcGUodGFwKCgpPT57XHJcbiAgICAgIHRoaXMuZGlydHkkLm5leHQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnRhYmxlU3RhdGUuc2V0QWxsU29ydCh0aGlzLnN0b3JlLnNvcnRlZCQucGlwZShmaXJzdCgpKSlcclxuICB9KSkpO1xyXG5cclxuICBzZXREaXJlY3Rpb24oc29ydDpTb3J0V2l0aE5hbWUpe1xyXG4gICAgdGhpcy5kaXJ0eSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuc3RvcmUuc2V0RGlyZWN0aW9uKHNvcnQpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iLCI8bmctY29udGFpbmVyICpuZ3J4TGV0PVwiZGlydHkkIGFzIGRpcnR5XCI+XG48bmctY29udGFpbmVyICAqbmdJZj1cInNvcnRlZCQgfCBhc3luYyBhcyBzb3J0ZWRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vdFNvcnRlZCQgfCBhc3luYyBhcyBub3RTb3J0ZWRcIj5cbiAgICA8IS0tIE1lbnUgVHJpZ2dlciAtLT5cbiAgICA8c3BhbiBtYXRUb29sdGlwPVwiU29ydFwiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cbiAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPnN3YXBfdmVydDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG5cbiAgICA8IS0tIE1lbnUgLS0+XG4gICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiICBjbGFzcz1cIm15LW1hdC1tZW51XCIgKGNsb3NlZCk9XCJyZXNldCgpXCI+XG4gICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJtZW51LWJ1dHRvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYnV0dG9uLXdyYXBwZXJcIj5cbiAgICAgICAgICA8c3BhbiBtYXRUb29sdGlwPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGlydHlcIiBtYXRUb29sdGlwPVwiVW5kb1wiIHN0b3AtcHJvcGFnYXRpb24gKGNsaWNrKT1cInJlc2V0KClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj51bmRvPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQXBwbHkgQnV0dG9uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFwcGx5LWJ1dHRvbi13cmFwcGVyXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYXBwbHkobnVsbClcIlxuICAgICAgICAgIHN0b3AtcHJvcGFnYXRpb24gW2NsYXNzLmFwcGx5LWJvcmRlcl09XCJkaXJ0eVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFkaXJ0eVwiPlxuICAgICAgICAgICAgQXBwbHlcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXJ0eVwiPlVuc2F2ZWQgQ2hhbmdlczwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIERlZmF1bHQgU29ydGluZyBUZXh0IC0tPlxuICAgICAgPGRpdiAqbmdJZj1cIiFzb3J0ZWQubGVuZ3RoXCIgY2xhc3M9XCJ0aXBcIiA+XG4gICAgICAgIFNvcnRpbmcgTGlzdFxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gU29ydGVkIE1lbnUgTGlzdCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0XCJcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgI3NvcnRlZEdyb3VwPVwiY2RrRHJvcExpc3RcIlxuICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbbm90U29ydGVkR3JvdXBdXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJzb3J0ZWRcIlxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJbnRvU29ydGVkKCRldmVudClcIj5cblxuICAgICAgICA8IS0tIE1lbnUgSXRlbSBXcmFwcGVyIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzb3J0IG9mIHNvcnRlZDtsZXQgaT1pbmRleFwiPlxuXG4gICAgICAgICAgPCEtLSBNZW51IEl0ZW0gSGVhZGVycyAtLT5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRlZC5sZW5ndGggPiAxICYmIGkgPT09IDAgXCIgY2xhc3M9XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwic29ydC1oZWFkZXJcIj5GaXJzdCBCeTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRlZC5sZW5ndGggPiAxICYmIGkgIT09IDAgXCIgY2xhc3M9XCJkZXNjcmlwdGlvblwiICBjbGFzcz1cInNvcnQtaGVhZGVyXCI+VGhlbiBCeTwvc3Bhbj5cblxuICAgICAgICAgIDwhLS0gTWVudSBJdGVtIC0tPlxuICAgICAgICAgIDxkaXYgbWF0LW1lbnUtaXRlbSAgIGNka0RyYWcgY2xhc3M9XCJtZW51LWl0ZW1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzb3J0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzb3J0ZWQtbmFtZVwiPlxuICAgICAgICAgICAgICAgIHt7c29ydC5kaXNwbGF5TmFtZSB8fCAoc29ydC5hY3RpdmUgfCBzcGFjZUNhc2UpfX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpcmVjdGlvbi10ZXh0XCI+e3tzb3J0LmRpcmVjdGlvbn19PC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPCEtLSBTb3J0IERpcmVjdGlvbiBCdXR0b25zIC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXAtZG93bi1idXR0b25zLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICBjbGFzcz1cInVwLWRvd24tYnV0dG9uIHVwLWJ1dHRvblwiIHN0b3AtcHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RGlyZWN0aW9uKHthY3RpdmU6c29ydC5hY3RpdmUsZGlyZWN0aW9uOlNvcnREaXJlY3Rpb24uYXNjLGRpc3BsYXlOYW1lOnNvcnQuZGlzcGxheU5hbWV9KVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtuZ0NsYXNzXT1cInNvcnQuZGlyZWN0aW9uICE9PSBTb3J0RGlyZWN0aW9uLmFzYyA/ICdsaWdodC1hcnJvdycgOiAnZGFyay1hcnJvdydcIiBjbGFzcz1cInVwLWRvd24taWNvblwiPlxuICAgICAgICAgICAgICAgICAgYXJyb3dfdXB3YXJkXG4gICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInVwLWRvd24tYnV0dG9uXCIgc3RvcC1wcm9wYWdhdGlvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXREaXJlY3Rpb24oe2FjdGl2ZTpzb3J0LmFjdGl2ZSxkaXJlY3Rpb246U29ydERpcmVjdGlvbi5kZXNjLGRpc3BsYXlOYW1lOnNvcnQuZGlzcGxheU5hbWV9KVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtuZ0NsYXNzXT1cInNvcnQuZGlyZWN0aW9uID09PSBTb3J0RGlyZWN0aW9uLmFzYyA/ICdsaWdodC1hcnJvdycgOiAnZGFyay1hcnJvdydcIiBjbGFzcz1cInVwLWRvd24taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICBhcnJvd19kb3dud2FyZFxuICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBEZWZhdWx0IE5vdCBTb3J0ZWQgVGV4dCAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhbm90U29ydGVkLmxlbmd0aFwiIGNsYXNzPVwidGlwXCIgPlxuICAgICAgICBOb3QgU29ydGVkIExpc3RcbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBOb3QgU29ydGVkIE1lbnUgTGlzdCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0XCJcbiAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgI25vdFNvcnRlZEdyb3VwPVwiY2RrRHJvcExpc3RcIlxuICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbc29ydGVkR3JvdXBdXCJcbiAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJub3RTb3J0ZWRcIlxuICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BJbnRvTm90U29ydGVkKCRldmVudClcIj5cbiAgICAgICAgPGRpdiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBzb3J0IG9mIG5vdFNvcnRlZFwiICBjbGFzcz1cIm1lbnUtaXRlbVwiIGNka0RyYWc+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJub3Qtc29ydGVkLW5hbWVcIj57e3NvcnQuZGlzcGxheU5hbWUgfHwgKHNvcnQuYWN0aXZlIHwgc3BhY2VDYXNlKX19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LW1lbnU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|