@sd-angular/core 0.0.1040 → 0.0.1041

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/bundles/sd-angular-core-chip.umd.js +40 -9
  2. package/bundles/sd-angular-core-chip.umd.js.map +1 -1
  3. package/bundles/sd-angular-core-chip.umd.min.js +2 -2
  4. package/bundles/sd-angular-core-chip.umd.min.js.map +1 -1
  5. package/bundles/sd-angular-core-filter.umd.js +703 -0
  6. package/bundles/sd-angular-core-filter.umd.js.map +1 -0
  7. package/bundles/sd-angular-core-filter.umd.min.js +2 -0
  8. package/bundles/sd-angular-core-filter.umd.min.js.map +1 -0
  9. package/bundles/sd-angular-core-grid-material.umd.js +87 -42
  10. package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
  11. package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
  12. package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
  13. package/bundles/sd-angular-core-setting.umd.js +176 -117
  14. package/bundles/sd-angular-core-setting.umd.js.map +1 -1
  15. package/bundles/sd-angular-core-setting.umd.min.js +1 -1
  16. package/bundles/sd-angular-core-setting.umd.min.js.map +1 -1
  17. package/bundles/sd-angular-core.umd.js +4 -4
  18. package/bundles/sd-angular-core.umd.min.js +1 -1
  19. package/bundles/sd-angular-core.umd.min.js.map +1 -1
  20. package/chip/sd-angular-core-chip.metadata.json +1 -1
  21. package/chip/src/lib/chip.component.d.ts +8 -1
  22. package/esm2015/chip/src/lib/chip.component.js +33 -3
  23. package/esm2015/chip/src/lib/chip.module.js +6 -3
  24. package/esm2015/filter/index.js +2 -0
  25. package/esm2015/filter/sd-angular-core-filter.js +8 -0
  26. package/esm2015/filter/src/lib/directives/sd-filter-def.directive.js +22 -0
  27. package/esm2015/filter/src/lib/filter.component.js +161 -0
  28. package/esm2015/filter/src/lib/filter.model.js +2 -0
  29. package/esm2015/filter/src/lib/filter.module.js +47 -0
  30. package/esm2015/filter/src/lib/filter.service.js +60 -0
  31. package/esm2015/filter/src/lib/pipes/values-local.pipe.js +19 -0
  32. package/esm2015/filter/src/lib/pipes/values-server.pipe.js +18 -0
  33. package/esm2015/filter/src/public-api.js +8 -0
  34. package/esm2015/grid-material/src/lib/components/quick-action/quick-action.component.js +1 -1
  35. package/esm2015/grid-material/src/lib/services/generated-column/generated-column.service.js +28 -12
  36. package/esm2015/grid-material/src/lib/services/grid-configuration.service.js +50 -21
  37. package/esm2015/public-api.js +2 -1
  38. package/esm2015/setting/src/lib/setting.model.js +1 -1
  39. package/esm2015/setting/src/lib/setting.service.js +119 -58
  40. package/fesm2015/sd-angular-core-chip.js +36 -4
  41. package/fesm2015/sd-angular-core-chip.js.map +1 -1
  42. package/fesm2015/sd-angular-core-filter.js +323 -0
  43. package/fesm2015/sd-angular-core-filter.js.map +1 -0
  44. package/fesm2015/sd-angular-core-grid-material.js +77 -32
  45. package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
  46. package/fesm2015/sd-angular-core-setting.js +119 -58
  47. package/fesm2015/sd-angular-core-setting.js.map +1 -1
  48. package/fesm2015/sd-angular-core.js +1 -0
  49. package/fesm2015/sd-angular-core.js.map +1 -1
  50. package/filter/index.d.ts +1 -0
  51. package/filter/package.json +12 -0
  52. package/filter/sd-angular-core-filter.d.ts +7 -0
  53. package/filter/sd-angular-core-filter.metadata.json +1 -0
  54. package/filter/src/lib/directives/sd-filter-def.directive.d.ts +8 -0
  55. package/filter/src/lib/filter.component.d.ts +31 -0
  56. package/filter/src/lib/filter.model.d.ts +105 -0
  57. package/filter/src/lib/filter.module.d.ts +2 -0
  58. package/filter/src/lib/filter.service.d.ts +9 -0
  59. package/filter/src/lib/pipes/values-local.pipe.d.ts +5 -0
  60. package/filter/src/lib/pipes/values-server.pipe.d.ts +5 -0
  61. package/filter/src/public-api.d.ts +4 -0
  62. package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
  63. package/grid-material/src/lib/services/generated-column/generated-column.service.d.ts +3 -2
  64. package/package.json +1 -1
  65. package/public-api.d.ts +1 -0
  66. package/{sd-angular-core-0.0.1040.tgz → sd-angular-core-0.0.1041.tgz} +0 -0
  67. package/setting/sd-angular-core-setting.metadata.json +1 -1
  68. package/setting/src/lib/setting.model.d.ts +20 -6
  69. package/setting/src/lib/setting.service.d.ts +2 -1
@@ -0,0 +1,161 @@
1
+ var _prefix, _filterOptionChanges, _subscription, _format, _firstLoad;
2
+ import { __classPrivateFieldGet } from "tslib";
3
+ import { Component, Input, ContentChildren, QueryList } from '@angular/core';
4
+ import { BehaviorSubject, Subscription } from 'rxjs';
5
+ import { startWith } from 'rxjs/operators';
6
+ import * as uuid from 'uuid';
7
+ import { DeviceDetectorService } from 'ngx-device-detector';
8
+ import { SdFilterDefDirective } from './directives/sd-filter-def.directive';
9
+ import { SdFilterService } from './filter.service';
10
+ import { SdSettingService } from '@sd-angular/core/setting';
11
+ export class SdFilter {
12
+ constructor(deviceService, settingService, filterService) {
13
+ this.deviceService = deviceService;
14
+ this.settingService = settingService;
15
+ this.filterService = filterService;
16
+ _prefix.set(this, '61d22e8e-eee8-4aad-8e1c-044a532fea91');
17
+ _filterOptionChanges.set(this, new BehaviorSubject(null));
18
+ _subscription.set(this, new Subscription());
19
+ this.sdFilterDefs = new QueryList();
20
+ this.isMobileOrTablet = false;
21
+ this.filterChanges = new BehaviorSubject({});
22
+ this.onFilter = (filter) => {
23
+ this.filterChanges.next({
24
+ filter: Object.assign({}, this.information.filter),
25
+ filterDef: Object.assign({}, this.information.filterDef),
26
+ });
27
+ this.setting.set(this.information);
28
+ };
29
+ this.onClear = () => {
30
+ this.information.filter = {};
31
+ this.information.filterDef = {};
32
+ this.onFilter();
33
+ };
34
+ _format.set(this, (filters, information) => {
35
+ var _a, _b, _c, _d, _e;
36
+ for (const filter of filters) {
37
+ if (filter.type === 'daterange') {
38
+ information.filter[filter.field] = {
39
+ from: (_b = (_a = information.filter[filter.field]) === null || _a === void 0 ? void 0 : _a.from) !== null && _b !== void 0 ? _b : undefined,
40
+ to: (_d = (_c = information.filter[filter.field]) === null || _c === void 0 ? void 0 : _c.to) !== null && _d !== void 0 ? _d : undefined
41
+ };
42
+ }
43
+ else {
44
+ information.filter[filter.field] = (_e = information.filter[filter.field]) !== null && _e !== void 0 ? _e : undefined;
45
+ }
46
+ }
47
+ });
48
+ _firstLoad.set(this, (filters, information) => {
49
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
50
+ if (information.selectedQuickFilter && information.quickFilters.some(e => e.code === information.selectedQuickFilter)) {
51
+ const selected = information.quickFilters.find(e => e.code === information.selectedQuickFilter);
52
+ information.filter = Object.assign({}, selected.filter);
53
+ information.filterDef = Object.assign({}, selected.filterDef);
54
+ __classPrivateFieldGet(this, _format).call(this, filters, information);
55
+ }
56
+ else {
57
+ for (const filter of filters) {
58
+ if (filter.type === 'daterange') {
59
+ information.filter[filter.field] = {
60
+ from: (_d = (_b = (_a = information.filter[filter.field]) === null || _a === void 0 ? void 0 : _a.from) !== null && _b !== void 0 ? _b : (_c = filter.default) === null || _c === void 0 ? void 0 : _c.from) !== null && _d !== void 0 ? _d : undefined,
61
+ to: (_h = (_f = (_e = information.filter[filter.field]) === null || _e === void 0 ? void 0 : _e.to) !== null && _f !== void 0 ? _f : (_g = filter.default) === null || _g === void 0 ? void 0 : _g.to) !== null && _h !== void 0 ? _h : undefined
62
+ };
63
+ }
64
+ else {
65
+ information.filter[filter.field] = (_k = (_j = information.filter[filter.field]) !== null && _j !== void 0 ? _j : filter.default) !== null && _k !== void 0 ? _k : undefined;
66
+ }
67
+ }
68
+ }
69
+ });
70
+ this.setFilter = (args) => {
71
+ const { filter, filterDef } = args;
72
+ this.information = Object.assign(Object.assign({}, this.information), { filter: Object.assign({}, filter), filterDef: Object.assign({}, filterDef) });
73
+ };
74
+ this.isMobileOrTablet = !this.deviceService.isDesktop();
75
+ }
76
+ set _filterOption(option) {
77
+ console.log(option);
78
+ if (option) {
79
+ this.filterOption = option;
80
+ __classPrivateFieldGet(this, _filterOptionChanges).next(option);
81
+ }
82
+ }
83
+ ngOnInit() {
84
+ // if (!this.#key) {
85
+ // this.setting = this.settingService.create<SdFilterInformation>(uuid.v4(), {
86
+ // type: 'session',
87
+ // default: {
88
+ // filter: {},
89
+ // visible: {},
90
+ // quickFilters: [],
91
+ // selectedQuickFilter: null
92
+ // }
93
+ // });
94
+ // } else {
95
+ // this.setting = this.settingService.create<SdFilterInformation>(this.#key, {
96
+ // default: {
97
+ // filter: {},
98
+ // visible: {},
99
+ // quickFilters: [],
100
+ // selectedQuickFilter: null
101
+ // }
102
+ // });
103
+ // }
104
+ }
105
+ ngAfterViewInit() {
106
+ __classPrivateFieldGet(this, _subscription).add(__classPrivateFieldGet(this, _filterOptionChanges).pipe(startWith(this.filterOption)).subscribe((filterOption) => {
107
+ var _a, _b;
108
+ console.log(filterOption);
109
+ if (!filterOption) {
110
+ return;
111
+ }
112
+ const defaultInformation = {
113
+ filter: {},
114
+ visible: {},
115
+ quickFilters: ((_a = filterOption === null || filterOption === void 0 ? void 0 : filterOption.quickFilter) === null || _a === void 0 ? void 0 : _a.defaults) || [],
116
+ selectedQuickFilter: (_b = filterOption === null || filterOption === void 0 ? void 0 : filterOption.quickFilter) === null || _b === void 0 ? void 0 : _b.selectedDefault
117
+ };
118
+ if (!filterOption.key) {
119
+ this.setting = this.settingService.create(uuid.v4(), {
120
+ type: 'session',
121
+ default: defaultInformation
122
+ });
123
+ }
124
+ else {
125
+ this.setting = this.settingService.create({
126
+ prefix: __classPrivateFieldGet(this, _prefix),
127
+ key: filterOption.key
128
+ }, {
129
+ default: defaultInformation
130
+ });
131
+ }
132
+ this.information = this.setting.get();
133
+ console.log(this.information);
134
+ __classPrivateFieldGet(this, _subscription).add(this.setting.observer.subscribe(filterInformation => {
135
+ this.information = filterInformation;
136
+ __classPrivateFieldGet(this, _format).call(this, filterOption === null || filterOption === void 0 ? void 0 : filterOption.filters, this.information);
137
+ }));
138
+ }));
139
+ }
140
+ ngOnDestroy() {
141
+ __classPrivateFieldGet(this, _subscription).unsubscribe();
142
+ }
143
+ }
144
+ _prefix = new WeakMap(), _filterOptionChanges = new WeakMap(), _subscription = new WeakMap(), _format = new WeakMap(), _firstLoad = new WeakMap();
145
+ SdFilter.decorators = [
146
+ { type: Component, args: [{
147
+ selector: 'sd-filter',
148
+ template: "<div *ngIf=\"information\" class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">filter_alt</mat-icon>\r\n </button>\r\n <span>Hi\u1EC3n th\u1ECB</span>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">add</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">settings</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">download</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"c-body row mx-0\">\r\n <ng-container *ngFor=\"let item of filterOption?.filters\">\r\n <div *ngIf=\"information.visible[item.field] !== false\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input *ngIf=\"item.type === 'string'\" [label]=\"item.title\" type=\"text\"\r\n [(model)]=\"information.filter[item.field]\" (keyupEnter)=\"onFilter(item)\">\r\n </sd-input>\r\n <sd-input *ngIf=\"item.type === 'number'\" [label]=\"item.title\" type=\"number\"\r\n [(model)]=\"information.filter[item.field]\" (keyupEnter)=\"onFilter(item)\">\r\n </sd-input>\r\n <sd-select *ngIf=\"item.type === 'bool'\" [label]=\"item.title\" [items]=\"[{value:true,display:item.option?.displayOnTrue || 'True' },\r\n {value:false,display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values-local'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\" multiple=\"true\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"item.type === 'values-server'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n </ng-container>\r\n <sd-date-time *ngIf=\"item.type ==='date' || item.type ==='datetime'\" [label]=\"item.title\"\r\n [(model)]=\"information.filter[item.field]\" [type]=\"item.type\" [min]=\"item?.option?.min\"\r\n [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-time>\r\n <sd-date-range *ngIf=\"item.type ==='daterange'\" [label]=\"item.title\"\r\n [(from)]=\"information.filter[item.field].from\" [(to)]=\"information.filter[item.field].to\"\r\n [min]=\"item?.option?.min\" [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-range>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<!-- <sd-popup-filter [columns]=\"columns\" [externalFilters]=\"externalFilters\" (changeFilter)=\"onChangeFilter($event)\"\r\n (clearFilter)=\"onReset()\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter> -->",
149
+ styles: [".c-container .c-header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 20px}.c-container mat-icon.c-icon{color:rgba(0,0,0,.54)!important}.c-container button:focus{outline:none}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:0}"]
150
+ },] }
151
+ ];
152
+ SdFilter.ctorParameters = () => [
153
+ { type: DeviceDetectorService },
154
+ { type: SdSettingService },
155
+ { type: SdFilterService }
156
+ ];
157
+ SdFilter.propDecorators = {
158
+ _filterOption: [{ type: Input, args: ['option',] }],
159
+ sdFilterDefs: [{ type: ContentChildren, args: [SdFilterDefDirective,] }]
160
+ };
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2ZpbHRlci8iLCJzb3VyY2VzIjpbInNyYy9saWIvZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE2RCxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQU8sU0FBUyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBYSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBUXZFLE1BQU0sT0FBTyxRQUFRO0lBa0JuQixZQUNVLGFBQW9DLEVBQ3BDLGNBQWdDLEVBQ2hDLGFBQThCO1FBRjlCLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBcEJ4QyxrQkFBVSxzQ0FBc0MsRUFBQztRQVVqRCwrQkFBdUIsSUFBSSxlQUFlLENBQWlCLElBQUksQ0FBQyxFQUFDO1FBQ2pFLHdCQUFnQixJQUFJLFlBQVksRUFBRSxFQUFDO1FBQ0ksaUJBQVksR0FBRyxJQUFJLFNBQVMsRUFBd0IsQ0FBQztRQUM1RixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIs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QUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsRUFBRTtnQkFDekUsSUFBSSxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztnQkFDckMsMkNBQUEsSUFBSSxFQUFTLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQWlERCxXQUFXO1FBQ1QsNENBQW1CLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7Ozs7WUF4SUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixtd0tBQXNDOzthQUV2Qzs7O1lBWFEscUJBQXFCO1lBSVYsZ0JBQWdCO1lBRDNCLGVBQWU7Ozs0QkFhckIsS0FBSyxTQUFDLFFBQVE7MkJBU2QsZUFBZSxTQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0ICogYXMgaGFzaCBmcm9tICdvYmplY3QtaGFzaCc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xyXG5pbXBvcnQgeyBTZEZpbHRlckRlZkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zZC1maWx0ZXItZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZpbHRlciwgU2RGaWx0ZXJJbmZvcm1hdGlvbiwgRmlsdGVyT2JqZWN0LCBTZEZpbHRlck9wdGlvbiwgU2RRdWlja0ZpbHRlciB9IGZyb20gJy4vZmlsdGVyLm1vZGVsJztcclxuaW1wb3J0IHsgU2RGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9maWx0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNkU2V0dGluZywgU2RTZXR0aW5nU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvc2V0dGluZyc7XHJcbmltcG9ydCB7IFNkQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jYWNoZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkRmlsdGVyIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAjcHJlZml4ID0gJzYxZDIyZThlLWVlZTgtNGFhZC04ZTFjLTA0NGE1MzJmZWE5MSc7XHJcbiAgc2V0dGluZzogU2RTZXR0aW5nPFNkRmlsdGVySW5mb3JtYXRpb24+O1xyXG4gIGZpbHRlck9wdGlvbjogU2RGaWx0ZXJPcHRpb247XHJcbiAgQElucHV0KCdvcHRpb24nKSBzZXQgX2ZpbHRlck9wdGlvbihvcHRpb246IFNkRmlsdGVyT3B0aW9uKSB7XHJcbiAgICBjb25zb2xlLmxvZyhvcHRpb24pO1xyXG4gICAgaWYgKG9wdGlvbikge1xyXG4gICAgICB0aGlzLmZpbHRlck9wdGlvbiA9IG9wdGlvbjtcclxuICAgICAgdGhpcy4jZmlsdGVyT3B0aW9uQ2hhbmdlcy5uZXh0KG9wdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG4gICNmaWx0ZXJPcHRpb25DaGFuZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZEZpbHRlck9wdGlvbj4obnVsbCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAQ29udGVudENoaWxkcmVuKFNkRmlsdGVyRGVmRGlyZWN0aXZlKSBzZEZpbHRlckRlZnMgPSBuZXcgUXVlcnlMaXN0PFNkRmlsdGVyRGVmRGlyZWN0aXZlPigpO1xyXG4gIGlzTW9iaWxlT3JUYWJsZXQgPSBmYWxzZTtcclxuICBmaWx0ZXJDaGFuZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJPYmplY3Q+KHt9KTtcclxuICBmaWx0ZXJJbmZvcm1hdGlvbjogT2JzZXJ2YWJsZTxTZEZpbHRlckluZm9ybWF0aW9uPjtcclxuICBpbmZvcm1hdGlvbjogU2RGaWx0ZXJJbmZvcm1hdGlvbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZTogU2RTZXR0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgZmlsdGVyU2VydmljZTogU2RGaWx0ZXJTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmlzTW9iaWxlT3JUYWJsZXQgPSAhdGhpcy5kZXZpY2VTZXJ2aWNlLmlzRGVza3RvcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBpZiAoIXRoaXMuI2tleSkge1xyXG4gICAgLy8gICB0aGlzLnNldHRpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEZpbHRlckluZm9ybWF0aW9uPih1dWlkLnY0KCksIHtcclxuICAgIC8vICAgICB0eXBlOiAnc2Vzc2lvbicsXHJcbiAgICAvLyAgICAgZGVmYXVsdDoge1xyXG4gICAgLy8gICAgICAgZmlsdGVyOiB7fSxcclxuICAgIC8vICAgICAgIHZpc2libGU6IHt9LFxyXG4gICAgLy8gICAgICAgcXVpY2tGaWx0ZXJzOiBbXSxcclxuICAgIC8vICAgICAgIHNlbGVjdGVkUXVpY2tGaWx0ZXI6IG51bGxcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH0pO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5zZXR0aW5nID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RGaWx0ZXJJbmZvcm1hdGlvbj4odGhpcy4ja2V5LCB7XHJcbiAgICAvLyAgICAgZGVmYXVsdDoge1xyXG4gICAgLy8gICAgICAgZmlsdGVyOiB7fSxcclxuICAgIC8vICAgICAgIHZpc2libGU6IHt9LFxyXG4gICAgLy8gICAgICAgcXVpY2tGaWx0ZXJzOiBbXSxcclxuICAgIC8vICAgICAgIHNlbGVjdGVkUXVpY2tGaWx0ZXI6IG51bGxcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLiNmaWx0ZXJPcHRpb25DaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZmlsdGVyT3B0aW9uKSkuc3Vic2NyaWJlKChmaWx0ZXJPcHRpb24pID0+IHtcclxuICAgICAgY29uc29sZS5sb2coZmlsdGVyT3B0aW9uKTtcclxuICAgICAgaWYgKCFmaWx0ZXJPcHRpb24pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGVmYXVsdEluZm9ybWF0aW9uOiBTZEZpbHRlckluZm9ybWF0aW9uID0ge1xyXG4gICAgICAgIGZpbHRlcjoge30sXHJcbiAgICAgICAgdmlzaWJsZToge30sXHJcbiAgICAgICAgcXVpY2tGaWx0ZXJzOiBmaWx0ZXJPcHRpb24/LnF1aWNrRmlsdGVyPy5kZWZhdWx0cyB8fCBbXSxcclxuICAgICAgICBzZWxlY3RlZFF1aWNrRmlsdGVyOiBmaWx0ZXJPcHRpb24/LnF1aWNrRmlsdGVyPy5zZWxlY3RlZERlZmF1bHRcclxuICAgICAgfTtcclxuICAgICAgaWYgKCFmaWx0ZXJPcHRpb24ua2V5KSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RGaWx0ZXJJbmZvcm1hdGlvbj4odXVpZC52NCgpLCB7XHJcbiAgICAgICAgICB0eXBlOiAnc2Vzc2lvbicsXHJcbiAgICAgICAgICBkZWZhdWx0OiBkZWZhdWx0SW5mb3JtYXRpb25cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldHRpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEZpbHRlckluZm9ybWF0aW9uPih7XHJcbiAgICAgICAgICBwcmVmaXg6IHRoaXMuI3ByZWZpeCxcclxuICAgICAgICAgIGtleTogZmlsdGVyT3B0aW9uLmtleVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIGRlZmF1bHQ6IGRlZmF1bHRJbmZvcm1hdGlvblxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5mb3JtYXRpb24gPSB0aGlzLnNldHRpbmcuZ2V0KCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuaW5mb3JtYXRpb24pO1xyXG4gICAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuc2V0dGluZy5vYnNlcnZlci5zdWJzY3JpYmUoZmlsdGVySW5mb3JtYXRpb24gPT4ge1xyXG4gICAgICAgIHRoaXMuaW5mb3JtYXRpb24gPSBmaWx0ZXJJbmZvcm1hdGlvbjtcclxuICAgICAgICB0aGlzLiNmb3JtYXQoZmlsdGVyT3B0aW9uPy5maWx0ZXJzLCB0aGlzLmluZm9ybWF0aW9uKTtcclxuICAgICAgfSkpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgb25GaWx0ZXIgPSAoZmlsdGVyPzogRmlsdGVyKSA9PiB7XHJcbiAgICB0aGlzLmZpbHRlckNoYW5nZXMubmV4dCh7XHJcbiAgICAgIGZpbHRlcjogeyAuLi50aGlzLmluZm9ybWF0aW9uLmZpbHRlciB9LFxyXG4gICAgICBmaWx0ZXJEZWY6IHsgLi4udGhpcy5pbmZvcm1hdGlvbi5maWx0ZXJEZWYgfSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXR0aW5nLnNldCh0aGlzLmluZm9ybWF0aW9uKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmluZm9ybWF0aW9uLmZpbHRlciA9IHt9O1xyXG4gICAgdGhpcy5pbmZvcm1hdGlvbi5maWx0ZXJEZWYgPSB7fTtcclxuICAgIHRoaXMub25GaWx0ZXIoKTtcclxuICB9XHJcblxyXG4gICNmb3JtYXQgPSAoZmlsdGVyczogRmlsdGVyW10sIGluZm9ybWF0aW9uOiBTZEZpbHRlckluZm9ybWF0aW9uKSA9PiB7XHJcbiAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBmaWx0ZXJzKSB7XHJcbiAgICAgIGlmIChmaWx0ZXIudHlwZSA9PT0gJ2RhdGVyYW5nZScpIHtcclxuICAgICAgICBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXSA9IHtcclxuICAgICAgICAgIGZyb206IGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdPy5mcm9tID8/IHVuZGVmaW5lZCxcclxuICAgICAgICAgIHRvOiBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXT8udG8gPz8gdW5kZWZpbmVkXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXSA9IGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdID8/IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI2ZpcnN0TG9hZCA9IChmaWx0ZXJzOiBGaWx0ZXJbXSwgaW5mb3JtYXRpb246IFNkRmlsdGVySW5mb3JtYXRpb24pID0+IHtcclxuICAgIGlmIChpbmZvcm1hdGlvbi5zZWxlY3RlZFF1aWNrRmlsdGVyICYmIGluZm9ybWF0aW9uLnF1aWNrRmlsdGVycy5zb21lKGUgPT4gZS5jb2RlID09PSBpbmZvcm1hdGlvbi5zZWxlY3RlZFF1aWNrRmlsdGVyKSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IGluZm9ybWF0aW9uLnF1aWNrRmlsdGVycy5maW5kKGUgPT4gZS5jb2RlID09PSBpbmZvcm1hdGlvbi5zZWxlY3RlZFF1aWNrRmlsdGVyKTtcclxuICAgICAgaW5mb3JtYXRpb24uZmlsdGVyID0geyAuLi5zZWxlY3RlZC5maWx0ZXIgfTtcclxuICAgICAgaW5mb3JtYXRpb24uZmlsdGVyRGVmID0geyAuLi5zZWxlY3RlZC5maWx0ZXJEZWYgfTtcclxuICAgICAgdGhpcy4jZm9ybWF0KGZpbHRlcnMsIGluZm9ybWF0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMpIHtcclxuICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09ICdkYXRlcmFuZ2UnKSB7XHJcbiAgICAgICAgICBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXSA9IHtcclxuICAgICAgICAgICAgZnJvbTogaW5mb3JtYXRpb24uZmlsdGVyW2ZpbHRlci5maWVsZF0/LmZyb20gPz8gZmlsdGVyLmRlZmF1bHQ/LmZyb20gPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB0bzogaW5mb3JtYXRpb24uZmlsdGVyW2ZpbHRlci5maWVsZF0/LnRvID8/IGZpbHRlci5kZWZhdWx0Py50byA/PyB1bmRlZmluZWRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdID0gaW5mb3JtYXRpb24uZmlsdGVyW2ZpbHRlci5maWVsZF0gPz8gZmlsdGVyLmRlZmF1bHQgPz8gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldEZpbHRlciA9IChhcmdzOiB7XHJcbiAgICBmaWx0ZXI6IGFueSxcclxuICAgIGZpbHRlckRlZjogYW55XHJcbiAgfSkgPT4ge1xyXG4gICAgY29uc3QgeyBmaWx0ZXIsIGZpbHRlckRlZiB9ID0gYXJncztcclxuICAgIHRoaXMuaW5mb3JtYXRpb24gPSB7XHJcbiAgICAgIC4uLnRoaXMuaW5mb3JtYXRpb24sXHJcbiAgICAgIGZpbHRlcjogeyAuLi5maWx0ZXIgfSxcclxuICAgICAgZmlsdGVyRGVmOiB7IC4uLmZpbHRlckRlZiB9XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNS9EZXNrdG9wL1dvcmtpbmcvMU1HL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZmlsdGVyLyIsInNvdXJjZXMiOlsic3JjL2xpYi9maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2RGaWx0ZXJPcHRpb24ge1xyXG4gIGtleT86IHN0cmluZztcclxuICBxdWlja0ZpbHRlcj86IHtcclxuICAgIGVuYWJsZT86IGJvb2xlYW47XHJcbiAgICBzZWxlY3RlZERlZmF1bHQ/OiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0cz86IFNkUXVpY2tGaWx0ZXJbXTtcclxuICB9LFxyXG4gIGZpbHRlcnM6IEZpbHRlcltdO1xyXG4gIG9uQ2hhbmdlPzogKGZpbHRlcjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZFF1aWNrRmlsdGVyIHtcclxuICBjb2RlOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGZpbHRlcj86IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueVxyXG4gIH07XHJcbiAgZmlsdGVyRGVmPzoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55XHJcbiAgfTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNkRmlsdGVySW5mb3JtYXRpb24ge1xyXG4gIGZpbHRlcjoge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55XHJcbiAgfTtcclxuICBmaWx0ZXJEZWY/OiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcclxuICB9O1xyXG4gIHZpc2libGU/OiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBib29sZWFuXHJcbiAgfTtcclxuICBxdWlja0ZpbHRlcnM/OiBTZFF1aWNrRmlsdGVyW107XHJcbiAgc2VsZWN0ZWRRdWlja0ZpbHRlcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRmlsdGVyID0gU3RyaW5nRmlsdGVyIHwgTnVtYmVyRmlsdGVyIHwgVmFsdWVzTG9jYWxGaWx0ZXIgfCBWYWx1ZXNTZXJ2ZXJGaWx0ZXIgfCBEYXRlRmlsdGVyIHwgRGF0ZVJhZ2VGaWx0ZXIgfCBCb29sRmlsdGVyXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VGaWx0ZXIge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZ1xyXG4gIGdyb3VwPzogc3RyaW5nO1xyXG4gIHNob3dpbmc/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nRmlsdGVyIGV4dGVuZHMgQmFzZUZpbHRlciB7XHJcbiAgdHlwZTogJ3N0cmluZyc7XHJcbiAgZGVmYXVsdD86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOdW1iZXJGaWx0ZXIgZXh0ZW5kcyBCYXNlRmlsdGVyIHtcclxuICB0eXBlOiAnbnVtYmVyJztcclxuICBkZWZhdWx0PzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZhbHVlc0xvY2FsRmlsdGVyIGV4dGVuZHMgQmFzZUZpbHRlciB7XHJcbiAgdHlwZTogJ3ZhbHVlcy1sb2NhbCc7XHJcbiAgb3B0aW9uOiB7XHJcbiAgICBpdGVtczogYW55W10gfCAoKCkgPT4gUHJvbWlzZTxhbnlbXT4pO1xyXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gICAgZGlzcGxheUZpZWxkOiBzdHJpbmc7XHJcbiAgICBodG1sVGVtcGxhdGU/OiAoaXRlbTogYW55KSA9PiBzdHJpbmc7XHJcbiAgICBzZWxlY3Rpb24/OiAnQVVUT0NPTVBMRVRFJyB8ICdNVUxUSVBMRScgfCAnTVVMVElQTEVBVVRPQ09NUExFVEUnO1xyXG4gIH07XHJcbiAgZGVmYXVsdD86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZXNTZXJ2ZXJGaWx0ZXIgZXh0ZW5kcyBCYXNlRmlsdGVyIHtcclxuICB0eXBlOiAndmFsdWVzLXNlcnZlcic7XHJcbiAgb3B0aW9uOiB7XHJcbiAgICBpdGVtczogKHNlYXJjaFRleHQ6IHN0cmluZyB8IHN0cmluZ1tdLCBpc0Zvcm1WYWx1ZT86IGJvb2xlYW4pID0+IFByb21pc2U8YW55W10+O1xyXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gICAgZGlzcGxheUZpZWxkOiBzdHJpbmc7XHJcbiAgICBodG1sVGVtcGxhdGU/OiAoaXRlbTogYW55KSA9PiBzdHJpbmc7XHJcbiAgICBzZWxlY3Rpb24/OiB8ICdNVUxUSVBMRSc7XHJcbiAgfTtcclxuICBkZWZhdWx0PzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERhdGVGaWx0ZXIgZXh0ZW5kcyBCYXNlRmlsdGVyIHtcclxuICB0eXBlOiAnZGF0ZScgfCAnZGF0ZXRpbWUnO1xyXG4gIG9wdGlvbj86IHtcclxuICAgIG1heD86IHN0cmluZztcclxuICAgIG1pbj86IHN0cmluZztcclxuICB9O1xyXG4gIGRlZmF1bHQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhZ2VGaWx0ZXIgZXh0ZW5kcyBCYXNlRmlsdGVyIHtcclxuICB0eXBlOiAnZGF0ZXJhbmdlJztcclxuICBvcHRpb24/OiB7XHJcbiAgICBtYXg/OiBzdHJpbmc7XHJcbiAgICBtaW4/OiBzdHJpbmc7XHJcbiAgfTtcclxuICBkZWZhdWx0Pzoge1xyXG4gICAgZnJvbT86IHN0cmluZztcclxuICAgIHRvPzogc3RyaW5nO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCb29sRmlsdGVyIGV4dGVuZHMgQmFzZUZpbHRlciB7XHJcbiAgdHlwZTogJ2Jvb2wnO1xyXG4gIG9wdGlvbjoge1xyXG4gICAgZGlzcGxheU9uVHJ1ZTogc3RyaW5nO1xyXG4gICAgZGlzcGxheU9uRmFsc2U6IHN0cmluZztcclxuICB9O1xyXG4gIGRlZmF1bHQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlck9iamVjdCB7XHJcbiAgW2tleTogc3RyaW5nXTogYW55IHwge1xyXG4gICAgZnJvbTogc3RyaW5nO1xyXG4gICAgdG86IHN0cmluZztcclxuICB9O1xyXG59Il19
@@ -0,0 +1,47 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import { MatTooltipModule } from '@angular/material/tooltip';
5
+ import { MatInputModule } from '@angular/material/input';
6
+ import { MatFormFieldModule } from '@angular/material/form-field';
7
+ import { SdTranslateModule } from '@sd-angular/core/translate';
8
+ import { SdCommonModule } from '@sd-angular/core/common';
9
+ import { SdFilterDefDirective } from './directives/sd-filter-def.directive';
10
+ import { SdFilter } from './filter.component';
11
+ import { SdFormModule } from '@sd-angular/core/form';
12
+ import { SdValuesLocalPipe } from './pipes/values-local.pipe';
13
+ import { SdValuesServerPipe } from './pipes/values-server.pipe';
14
+ import { SdFilterService } from './filter.service';
15
+ import { MatButtonModule } from '@angular/material/button';
16
+ export class SdFilterModule {
17
+ }
18
+ SdFilterModule.decorators = [
19
+ { type: NgModule, args: [{
20
+ imports: [
21
+ CommonModule,
22
+ MatFormFieldModule,
23
+ MatInputModule,
24
+ MatIconModule,
25
+ MatTooltipModule,
26
+ MatButtonModule,
27
+ SdTranslateModule,
28
+ SdCommonModule,
29
+ SdFormModule
30
+ ],
31
+ declarations: [
32
+ SdFilter,
33
+ SdFilterDefDirective,
34
+ SdValuesLocalPipe,
35
+ SdValuesServerPipe
36
+ ],
37
+ providers: [
38
+ SdFilterService
39
+ ],
40
+ exports: [
41
+ SdCommonModule,
42
+ SdFilterDefDirective,
43
+ SdFilter
44
+ ]
45
+ },] }
46
+ ];
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2ZpbHRlci8iLCJzb3VyY2VzIjpbInNyYy9saWIvZmlsdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUE2QjNELE1BQU0sT0FBTyxjQUFjOzs7WUEzQjFCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixrQkFBa0I7b0JBQ2xCLGNBQWM7b0JBQ2QsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQixjQUFjO29CQUNkLFlBQVk7aUJBQ2I7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLFFBQVE7b0JBQ1Isb0JBQW9CO29CQUNwQixpQkFBaUI7b0JBQ2pCLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGVBQWU7aUJBQ2hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxjQUFjO29CQUNkLG9CQUFvQjtvQkFDcEIsUUFBUTtpQkFDVDthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgU2RUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3RyYW5zbGF0ZSc7XHJcbmltcG9ydCB7IFNkQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZEZpbHRlckRlZkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zZC1maWx0ZXItZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNkRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RGb3JtTW9kdWxlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9mb3JtJztcclxuaW1wb3J0IHsgU2RWYWx1ZXNMb2NhbFBpcGUgfSBmcm9tICcuL3BpcGVzL3ZhbHVlcy1sb2NhbC5waXBlJztcclxuaW1wb3J0IHsgU2RWYWx1ZXNTZXJ2ZXJQaXBlIH0gZnJvbSAnLi9waXBlcy92YWx1ZXMtc2VydmVyLnBpcGUnO1xyXG5pbXBvcnQgeyBTZEZpbHRlclNlcnZpY2UgfSBmcm9tICcuL2ZpbHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIFNkVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgU2RDb21tb25Nb2R1bGUsXHJcbiAgICBTZEZvcm1Nb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgU2RGaWx0ZXIsXHJcbiAgICBTZEZpbHRlckRlZkRpcmVjdGl2ZSxcclxuICAgIFNkVmFsdWVzTG9jYWxQaXBlLFxyXG4gICAgU2RWYWx1ZXNTZXJ2ZXJQaXBlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFNkRmlsdGVyU2VydmljZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2RDb21tb25Nb2R1bGUsXHJcbiAgICBTZEZpbHRlckRlZkRpcmVjdGl2ZSxcclxuICAgIFNkRmlsdGVyXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RGaWx0ZXJNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,60 @@
1
+ var _prefix;
2
+ import { __awaiter, __classPrivateFieldGet } from "tslib";
3
+ import { Injectable } from '@angular/core';
4
+ import hash from 'object-hash';
5
+ import { SdSettingService } from '@sd-angular/core/setting';
6
+ export class SdFilterService {
7
+ constructor(settingService) {
8
+ this.settingService = settingService;
9
+ _prefix.set(this, '61d22e8e-eee8-4aad-8e1c-044a532fea91');
10
+ this.get = (key) => __awaiter(this, void 0, void 0, function* () {
11
+ var _a;
12
+ if (!key) {
13
+ return {
14
+ selectedQuickFilter: null,
15
+ quickFilters: [],
16
+ filter: {}
17
+ };
18
+ }
19
+ const { get } = this.settingService.create({
20
+ prefix: __classPrivateFieldGet(this, _prefix),
21
+ key
22
+ });
23
+ const configuration = yield get();
24
+ return {
25
+ selectedQuickFilter: (_a = configuration === null || configuration === void 0 ? void 0 : configuration.selectedQuickFilter) !== null && _a !== void 0 ? _a : null,
26
+ quickFilters: (configuration === null || configuration === void 0 ? void 0 : configuration.quickFilters) || [],
27
+ filter: (configuration === null || configuration === void 0 ? void 0 : configuration.filter) || {}
28
+ };
29
+ });
30
+ this.set = (key, configuration) => __awaiter(this, void 0, void 0, function* () {
31
+ var _b;
32
+ configuration = {
33
+ selectedQuickFilter: (_b = configuration === null || configuration === void 0 ? void 0 : configuration.selectedQuickFilter) !== null && _b !== void 0 ? _b : null,
34
+ quickFilters: (configuration === null || configuration === void 0 ? void 0 : configuration.quickFilters) || [],
35
+ filter: (configuration === null || configuration === void 0 ? void 0 : configuration.filter) || {}
36
+ };
37
+ if (!key) {
38
+ return configuration;
39
+ }
40
+ const { set } = this.settingService.create({
41
+ prefix: __classPrivateFieldGet(this, _prefix),
42
+ key
43
+ });
44
+ key = hash({
45
+ prefix: __classPrivateFieldGet(this, _prefix),
46
+ key
47
+ });
48
+ yield set(configuration);
49
+ return configuration;
50
+ });
51
+ }
52
+ }
53
+ _prefix = new WeakMap();
54
+ SdFilterService.decorators = [
55
+ { type: Injectable }
56
+ ];
57
+ SdFilterService.ctorParameters = () => [
58
+ { type: SdSettingService }
59
+ ];
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9maWx0ZXIvIiwic291cmNlcyI6WyJzcmMvbGliL2ZpbHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJNUQsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IsY0FBZ0M7UUFBaEMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBRHBELGtCQUFVLHNDQUFzQyxFQUFDO1FBR2pELFFBQUcsR0FBRyxDQUFPLEdBQVcsRUFBZ0MsRUFBRTs7WUFDeEQsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixPQUFPO29CQUNMLG1CQUFtQixFQUFFLElBQUk7b0JBQ3pCLFlBQVksRUFBRSxFQUFFO29CQUNoQixNQUFNLEVBQUUsRUFBRTtpQkFDWCxDQUFBO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQXNCO2dCQUM5RCxNQUFNLHVDQUFjO2dCQUNwQixHQUFHO2FBQ0osQ0FBQyxDQUFDO1lBQ0gsTUFBTSxhQUFhLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNsQyxPQUFPO2dCQUNMLG1CQUFtQixRQUFFLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxtQkFBbUIsbUNBQUksSUFBSTtnQkFDL0QsWUFBWSxFQUFFLENBQUEsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLFlBQVksS0FBSSxFQUFFO2dCQUMvQyxNQUFNLEVBQUUsQ0FBQSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsTUFBTSxLQUFJLEVBQUU7YUFDcEMsQ0FBQztRQUNKLENBQUMsQ0FBQSxDQUFBO1FBRUQsUUFBRyxHQUFHLENBQU8sR0FBVyxFQUFFLGFBQWtDLEVBQWdDLEVBQUU7O1lBQzVGLGFBQWEsR0FBRztnQkFDZCxtQkFBbUIsUUFBRSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsbUJBQW1CLG1DQUFJLElBQUk7Z0JBQy9ELFlBQVksRUFBRSxDQUFBLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxZQUFZLEtBQUksRUFBRTtnQkFDL0MsTUFBTSxFQUFFLENBQUEsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLE1BQU0sS0FBSSxFQUFFO2FBQ3BDLENBQUM7WUFDRixJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNSLE9BQU8sYUFBYSxDQUFDO2FBQ3RCO1lBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFzQjtnQkFDOUQsTUFBTSx1Q0FBYztnQkFDcEIsR0FBRzthQUNKLENBQUMsQ0FBQztZQUNILEdBQUcsR0FBRyxJQUFJLENBQUM7Z0JBQ1QsTUFBTSx1Q0FBYztnQkFDcEIsR0FBRzthQUNKLENBQUMsQ0FBQztZQUNILE1BQU0sR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQSxDQUFBO0lBeENELENBQUM7Ozs7WUFKRixVQUFVOzs7WUFIRixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBoYXNoIGZyb20gJ29iamVjdC1oYXNoJztcclxuaW1wb3J0IHsgU2RTZXR0aW5nU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvc2V0dGluZyc7XHJcbmltcG9ydCB7IFNkRmlsdGVySW5mb3JtYXRpb24gfSBmcm9tICcuL2ZpbHRlci5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTZEZpbHRlclNlcnZpY2Uge1xyXG4gICNwcmVmaXggPSAnNjFkMjJlOGUtZWVlOC00YWFkLThlMWMtMDQ0YTUzMmZlYTkxJztcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNldHRpbmdTZXJ2aWNlOiBTZFNldHRpbmdTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIGdldCA9IGFzeW5jIChrZXk6IHN0cmluZyk6IFByb21pc2U8U2RGaWx0ZXJJbmZvcm1hdGlvbj4gPT4ge1xyXG4gICAgaWYgKCFrZXkpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzZWxlY3RlZFF1aWNrRmlsdGVyOiBudWxsLFxyXG4gICAgICAgIHF1aWNrRmlsdGVyczogW10sXHJcbiAgICAgICAgZmlsdGVyOiB7fVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGdldCB9ID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RGaWx0ZXJJbmZvcm1hdGlvbj4oe1xyXG4gICAgICBwcmVmaXg6IHRoaXMuI3ByZWZpeCxcclxuICAgICAga2V5XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBnZXQoKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNlbGVjdGVkUXVpY2tGaWx0ZXI6IGNvbmZpZ3VyYXRpb24/LnNlbGVjdGVkUXVpY2tGaWx0ZXIgPz8gbnVsbCxcclxuICAgICAgcXVpY2tGaWx0ZXJzOiBjb25maWd1cmF0aW9uPy5xdWlja0ZpbHRlcnMgfHwgW10sXHJcbiAgICAgIGZpbHRlcjogY29uZmlndXJhdGlvbj8uZmlsdGVyIHx8IHt9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0ID0gYXN5bmMgKGtleTogc3RyaW5nLCBjb25maWd1cmF0aW9uOiBTZEZpbHRlckluZm9ybWF0aW9uKTogUHJvbWlzZTxTZEZpbHRlckluZm9ybWF0aW9uPiA9PiB7XHJcbiAgICBjb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBzZWxlY3RlZFF1aWNrRmlsdGVyOiBjb25maWd1cmF0aW9uPy5zZWxlY3RlZFF1aWNrRmlsdGVyID8/IG51bGwsXHJcbiAgICAgIHF1aWNrRmlsdGVyczogY29uZmlndXJhdGlvbj8ucXVpY2tGaWx0ZXJzIHx8IFtdLFxyXG4gICAgICBmaWx0ZXI6IGNvbmZpZ3VyYXRpb24/LmZpbHRlciB8fCB7fVxyXG4gICAgfTtcclxuICAgIGlmICgha2V5KSB7XHJcbiAgICAgIHJldHVybiBjb25maWd1cmF0aW9uO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBzZXQgfSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkRmlsdGVySW5mb3JtYXRpb24+KHtcclxuICAgICAgcHJlZml4OiB0aGlzLiNwcmVmaXgsXHJcbiAgICAgIGtleVxyXG4gICAgfSk7XHJcbiAgICBrZXkgPSBoYXNoKHtcclxuICAgICAgcHJlZml4OiB0aGlzLiNwcmVmaXgsXHJcbiAgICAgIGtleVxyXG4gICAgfSk7XHJcbiAgICBhd2FpdCBzZXQoY29uZmlndXJhdGlvbik7XHJcbiAgICByZXR1cm4gY29uZmlndXJhdGlvbjtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,19 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Pipe } from '@angular/core';
3
+ export class SdValuesLocalPipe {
4
+ constructor() {
5
+ this.transform = (filterValues) => __awaiter(this, void 0, void 0, function* () {
6
+ var _a, _b, _c;
7
+ if (typeof ((_a = filterValues === null || filterValues === void 0 ? void 0 : filterValues.option) === null || _a === void 0 ? void 0 : _a.items) === 'function') {
8
+ return yield ((_b = filterValues === null || filterValues === void 0 ? void 0 : filterValues.option) === null || _b === void 0 ? void 0 : _b.items());
9
+ }
10
+ return ((_c = filterValues === null || filterValues === void 0 ? void 0 : filterValues.option) === null || _c === void 0 ? void 0 : _c.items) || [];
11
+ });
12
+ }
13
+ }
14
+ SdValuesLocalPipe.decorators = [
15
+ { type: Pipe, args: [{
16
+ name: 'sdValuesLocal'
17
+ },] }
18
+ ];
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVzLWxvY2FsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1L0Rlc2t0b3AvV29ya2luZy8xTUcvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9maWx0ZXIvIiwic291cmNlcyI6WyJzcmMvbGliL3BpcGVzL3ZhbHVlcy1sb2NhbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQU1wRCxNQUFNLE9BQU8saUJBQWlCO0lBSDlCO1FBSUUsY0FBUyxHQUFHLENBQU8sWUFBK0IsRUFBa0IsRUFBRTs7WUFDcEUsSUFBRyxPQUFNLE9BQUMsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLE1BQU0sMENBQUUsS0FBSyxDQUFDLEtBQUssVUFBVSxFQUFFO2dCQUNyRCxPQUFPLGFBQU0sWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLE1BQU0sMENBQUUsS0FBSyxHQUFFLENBQUM7YUFDNUM7WUFDRCxPQUFPLE9BQUEsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLE1BQU0sMENBQUUsS0FBSyxLQUFJLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUEsQ0FBQTtJQUNILENBQUM7OztZQVZBLElBQUksU0FBQztnQkFDSixJQUFJLEVBQUUsZUFBZTthQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsdWVzTG9jYWxGaWx0ZXIgfSBmcm9tICcuLi9maWx0ZXIubW9kZWwnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdzZFZhbHVlc0xvY2FsJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RWYWx1ZXNMb2NhbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0gPSBhc3luYyAoZmlsdGVyVmFsdWVzOiBWYWx1ZXNMb2NhbEZpbHRlcik6IFByb21pc2U8YW55W10+ID0+IHtcclxuICAgIGlmKHR5cGVvZihmaWx0ZXJWYWx1ZXM/Lm9wdGlvbj8uaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiBhd2FpdCBmaWx0ZXJWYWx1ZXM/Lm9wdGlvbj8uaXRlbXMoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXJWYWx1ZXM/Lm9wdGlvbj8uaXRlbXMgfHwgW107XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Pipe } from '@angular/core';
2
+ export class SdValuesServerPipe {
3
+ constructor() {
4
+ this.transform = (filterValues) => {
5
+ var _a, _b, _c;
6
+ if (typeof ((_a = filterValues === null || filterValues === void 0 ? void 0 : filterValues.option) === null || _a === void 0 ? void 0 : _a.items) === 'function') {
7
+ return (_b = filterValues === null || filterValues === void 0 ? void 0 : filterValues.option) === null || _b === void 0 ? void 0 : _b.items;
8
+ }
9
+ return ((_c = filterValues === null || filterValues === void 0 ? void 0 : filterValues.option) === null || _c === void 0 ? void 0 : _c.items) || [];
10
+ };
11
+ }
12
+ }
13
+ SdValuesServerPipe.decorators = [
14
+ { type: Pipe, args: [{
15
+ name: 'sdValuesServer'
16
+ },] }
17
+ ];
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVzLXNlcnZlci5waXBlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNS9EZXNrdG9wL1dvcmtpbmcvMU1HL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZmlsdGVyLyIsInNvdXJjZXMiOlsic3JjL2xpYi9waXBlcy92YWx1ZXMtc2VydmVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFNcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUgvQjtRQUlFLGNBQVMsR0FBRyxDQUFDLFlBQWdDLEVBQXNGLEVBQUU7O1lBQ25JLElBQUcsT0FBTSxPQUFDLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLDBDQUFFLEtBQUssQ0FBQyxLQUFLLFVBQVUsRUFBRTtnQkFDckQsYUFBTyxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsTUFBTSwwQ0FBRSxLQUFLLENBQUM7YUFDcEM7WUFDRCxPQUFPLE9BQUEsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLE1BQU0sMENBQUUsS0FBSyxLQUFJLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUE7SUFDSCxDQUFDOzs7WUFWQSxJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLGdCQUFnQjthQUN2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsdWVzTG9jYWxGaWx0ZXIsIFZhbHVlc1NlcnZlckZpbHRlciB9IGZyb20gJy4uL2ZpbHRlci5tb2RlbCc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3NkVmFsdWVzU2VydmVyJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RWYWx1ZXNTZXJ2ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtID0gKGZpbHRlclZhbHVlczogVmFsdWVzU2VydmVyRmlsdGVyKTogYW55W10gfCAoKHNlYXJjaFRleHQ6IHN0cmluZyB8IHN0cmluZ1tdLCBpc0Zvcm1WYWx1ZT86IGJvb2xlYW4pID0+IFByb21pc2U8YW55W10+KSA9PiB7XHJcbiAgICBpZih0eXBlb2YoZmlsdGVyVmFsdWVzPy5vcHRpb24/Lml0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gZmlsdGVyVmFsdWVzPy5vcHRpb24/Lml0ZW1zO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlclZhbHVlcz8ub3B0aW9uPy5pdGVtcyB8fCBbXTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Public API Surface of superdev-angular-core
3
+ */
4
+ export * from './lib/filter.module';
5
+ export * from './lib/directives/sd-filter-def.directive';
6
+ export * from './lib/filter.model';
7
+ export * from './lib/filter.component';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTUvRGVza3RvcC9Xb3JraW5nLzFNRy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2ZpbHRlci8iLCJzb3VyY2VzIjpbInNyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzdXBlcmRldi1hbmd1bGFyLWNvcmVcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWx0ZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zZC1maWx0ZXItZGVmLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlci5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpbHRlci5jb21wb25lbnQnOyJdfQ==
@@ -12,7 +12,7 @@ SdGridQuickAction.decorators = [
12
12
  selector: 'sd-grid-quick-action',
13
13
  template: "<sd-quick-action *ngIf=\"selectedItems | selectionActionFilter: gridOption?.selection?.actions as actions\"\r\n [isOpened]=\"actions?.length\">\r\n <div class=\"d-flex align-items-center\" sdMessage>\r\n <div class=\"c-bg-length\">\r\n <span class=\"c-length\">{{ selectedItems.length }}</span>\r\n </div>\r\n <div class=\"c-message\">{{ gridOption?.selection?.message || (\"selected items\" | sdTranslate) }}</div>\r\n </div>\r\n <div class=\"d-flex align-items-center mr-8\" sdAction>\r\n <ng-container *ngFor=\"let action of actions\">\r\n <sd-button *ngIf=\"action.click\" class=\"ml-5\" [tooltip]=\"action.tooltip\" [icon]=\"action.icon\"\r\n [color]=\"action.color || 'secondary'\" [type]=\"action.type || 'light'\" [fontSet]=\"action.fontSet\"\r\n [title]=\"action.title\" size=\"sm\" (action)=\"action.click(selectedItems)\"></sd-button>\r\n <ng-container *ngIf=\"action.children?.length\">\r\n <sd-button class=\"ml-5\" [tooltip]=\"action.tooltip\" [icon]=\"action.icon || 'more_vert'\"\r\n [color]=\"action.color || 'secondary'\" [type]=\"action.type || 'light'\" [fontSet]=\"action.fontSet\"\r\n [title]=\"action.title\" size=\"sm\" [matMenuTriggerFor]=\"menu\">\r\n </sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <span>\r\n <button *ngFor=\"let childAction of action.children\" mat-menu-item (click)=\"childAction.click(selectedItems)\"\r\n [disabled]=\"childAction.disabled\">\r\n <mat-icon [fontSet]=\"childAction.fontSet\" class=\"c-icon\">{{ childAction.icon }}\r\n </mat-icon>\r\n <span> {{ childAction.title }}</span>\r\n </button>\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n </ng-container>\r\n <sd-button class=\"ml-5\" icon=\"close\" color=\"secondary\" type=\"outline\" size=\"sm\"\r\n (action)=\"onClear()\" width=\"35px\"></sd-button>\r\n </div>\r\n</sd-quick-action>",
14
14
  changeDetection: ChangeDetectionStrategy.OnPush,
15
- styles: [".c-bg-length{align-items:flex-start;background:#2962ff;border-radius:4px 0 0 4px;display:flex;flex-direction:column;height:48px;left:0;padding:12px 8px;position:static;top:0;width:48px}.c-bg-length .c-length{color:#fff;font-size:16px;font-weight:500;height:24px;left:8px;line-height:24px;text-align:center;top:12px;width:32px}.c-bg-length .c-length,.c-message{font-family:Roboto;font-style:normal;position:static}.c-message{color:#000;font-size:14px;font-weight:400;height:20px;left:0;line-height:20px;margin:0 0 0 16px;min-width:200px;top:6px}"]
15
+ styles: [".c-bg-length{align-items:flex-start;background:#2962ff;border-radius:4px 0 0 4px;display:flex;flex-direction:column;height:48px;left:0;min-width:48px;padding:12px 8px;position:static;top:0;width:auto}.c-bg-length .c-length{color:#fff;font-size:16px;font-weight:500;height:24px;left:8px;line-height:24px;min-width:32px;text-align:center;top:12px;width:auto}.c-bg-length .c-length,.c-message{font-family:Roboto;font-style:normal;position:static}.c-message{color:#000;font-size:14px;font-weight:400;height:20px;left:0;line-height:20px;margin:0 0 0 16px;min-width:200px;top:6px}"]
16
16
  },] }
17
17
  ];
18
18
  SdGridQuickAction.ctorParameters = () => [];
@@ -16,16 +16,24 @@ export class SdGeneratedColumnService {
16
16
  key: configuration.key
17
17
  });
18
18
  if (!__classPrivateFieldGet(this, _cache)[key]) {
19
- __classPrivateFieldGet(this, _cache)[key] = this.settingService.create(key, {
20
- type: configuration === null || configuration === void 0 ? void 0 : configuration.storage,
21
- args: configuration === null || configuration === void 0 ? void 0 : configuration.args,
22
- default: []
23
- });
19
+ if ((configuration === null || configuration === void 0 ? void 0 : configuration.storage) === 'server') {
20
+ __classPrivateFieldGet(this, _cache)[key] = this.settingService.createServer(key, {
21
+ args: configuration === null || configuration === void 0 ? void 0 : configuration.args,
22
+ default: []
23
+ });
24
+ }
25
+ else {
26
+ __classPrivateFieldGet(this, _cache)[key] = this.settingService.create(key, {
27
+ type: configuration === null || configuration === void 0 ? void 0 : configuration.storage,
28
+ args: configuration === null || configuration === void 0 ? void 0 : configuration.args,
29
+ default: []
30
+ });
31
+ }
24
32
  }
25
33
  return __classPrivateFieldGet(this, _cache)[key];
26
34
  };
27
35
  this.loadSystem = (configuration) => {
28
- var _a;
36
+ var _a, _b;
29
37
  if (!(configuration === null || configuration === void 0 ? void 0 : configuration.key)) {
30
38
  return null;
31
39
  }
@@ -37,11 +45,19 @@ export class SdGeneratedColumnService {
37
45
  key: configuration.key
38
46
  });
39
47
  if (!__classPrivateFieldGet(this, _cache)[key]) {
40
- __classPrivateFieldGet(this, _cache)[key] = this.settingService.create(key, {
41
- type: 'server',
42
- args: (_a = configuration === null || configuration === void 0 ? void 0 : configuration.systemColumn) === null || _a === void 0 ? void 0 : _a.args,
43
- default: []
44
- });
48
+ if ((configuration === null || configuration === void 0 ? void 0 : configuration.storage) === 'server') {
49
+ __classPrivateFieldGet(this, _cache)[key] = this.settingService.createServer(key, {
50
+ args: (_a = configuration === null || configuration === void 0 ? void 0 : configuration.systemColumn) === null || _a === void 0 ? void 0 : _a.args,
51
+ default: []
52
+ });
53
+ }
54
+ else {
55
+ __classPrivateFieldGet(this, _cache)[key] = this.settingService.create(key, {
56
+ type: configuration === null || configuration === void 0 ? void 0 : configuration.storage,
57
+ args: (_b = configuration === null || configuration === void 0 ? void 0 : configuration.systemColumn) === null || _b === void 0 ? void 0 : _b.args,
58
+ default: []
59
+ });
60
+ }
45
61
  }
46
62
  return __classPrivateFieldGet(this, _cache)[key];
47
63
  };
@@ -54,4 +70,4 @@ SdGeneratedColumnService.decorators = [
54
70
  SdGeneratedColumnService.ctorParameters = () => [
55
71
  { type: SdSettingService }
56
72
  ];
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVkLWNvbHVtbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNS9EZXNrdG9wL1dvcmtpbmcvMU1HL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZ3JpZC1tYXRlcmlhbC8iLCJzb3VyY2VzIjpbInNyYy9saWIvc2VydmljZXMvZ2VuZXJhdGVkLWNvbHVtbi9nZW5lcmF0ZWQtY29sdW1uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQVUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUt2RSxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DLFlBQ1UsY0FBZ0M7UUFBaEMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBSjFDLGlCQUVJLEVBQUUsRUFBQztRQUtQLFNBQUksR0FBRyxDQUFDLGFBQXlDLEVBQUUsRUFBRTtZQUNuRCxJQUFJLEVBQUMsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLEdBQUcsQ0FBQSxFQUFFO2dCQUN2QixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDO2dCQUNmLE1BQU0sRUFBRSxzQ0FBc0M7Z0JBQzlDLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRzthQUN2QixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMscUNBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLHFDQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFzQixHQUFHLEVBQUU7b0JBQ3RFLElBQUksRUFBRSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsT0FBTztvQkFDNUIsSUFBSSxFQUFFLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxJQUFJO29CQUN6QixPQUFPLEVBQUUsRUFBRTtpQkFDWixDQUFDLENBQUM7YUFDSjtZQUNELE9BQU8scUNBQVksR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFBO1FBRUQsZUFBVSxHQUFHLENBQUMsYUFBeUMsRUFBRSxFQUFFOztZQUN6RCxJQUFJLEVBQUMsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLEdBQUcsQ0FBQSxFQUFFO2dCQUN2QixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsSUFBSSxFQUFDLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxZQUFZLENBQUEsRUFBRTtnQkFDaEMsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQztnQkFDZixNQUFNLEVBQUUsc0NBQXNDO2dCQUM5QyxHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUc7YUFDdkIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLHFDQUFZLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixxQ0FBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBc0IsR0FBRyxFQUFFO29CQUN0RSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLFFBQUUsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLFlBQVksMENBQUUsSUFBSTtvQkFDdkMsT0FBTyxFQUFFLEVBQUU7aUJBQ1osQ0FBQyxDQUFDO2FBQ0o7WUFDRCxPQUFPLHFDQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQTtJQXpDRCxDQUFDOzs7O1lBUEYsVUFBVTs7O1lBSlMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgaGFzaCBmcm9tICdvYmplY3QtaGFzaCc7XHJcbmltcG9ydCB7IFNkU2V0dGluZywgU2RTZXR0aW5nU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvc2V0dGluZyc7XHJcbmltcG9ydCB7IFNkR3JpZE1hdGVyaWFsQ29uZmlnT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgU2RHZW5lcmF0ZWRDb2x1bW4gfSBmcm9tICcuL2dlbmVyYXRlZC1jb2x1bW4ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2RHZW5lcmF0ZWRDb2x1bW5TZXJ2aWNlIHtcclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IFNkU2V0dGluZzxTZEdlbmVyYXRlZENvbHVtbltdPlxyXG4gIH0gPSB7fTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2V0dGluZ1NlcnZpY2U6IFNkU2V0dGluZ1NlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGxvYWQgPSAoY29uZmlndXJhdGlvbjogU2RHcmlkTWF0ZXJpYWxDb25maWdPcHRpb24pID0+IHtcclxuICAgIGlmICghY29uZmlndXJhdGlvbj8ua2V5KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3Qga2V5ID0gaGFzaCh7XHJcbiAgICAgIHByZWZpeDogJzI2MGY1ZTk0LTU4NjUtNDQyNS04Y2VkLWI5YzA4M2MzOTBkZCcsXHJcbiAgICAgIGtleTogY29uZmlndXJhdGlvbi5rZXlcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghdGhpcy4jY2FjaGVba2V5XSkge1xyXG4gICAgICB0aGlzLiNjYWNoZVtrZXldID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RHZW5lcmF0ZWRDb2x1bW5bXT4oa2V5LCB7XHJcbiAgICAgICAgdHlwZTogY29uZmlndXJhdGlvbj8uc3RvcmFnZSxcclxuICAgICAgICBhcmdzOiBjb25maWd1cmF0aW9uPy5hcmdzLFxyXG4gICAgICAgIGRlZmF1bHQ6IFtdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2tleV07XHJcbiAgfVxyXG5cclxuICBsb2FkU3lzdGVtID0gKGNvbmZpZ3VyYXRpb246IFNkR3JpZE1hdGVyaWFsQ29uZmlnT3B0aW9uKSA9PiB7XHJcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb24/LmtleSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICghY29uZmlndXJhdGlvbj8uc3lzdGVtQ29sdW1uKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3Qga2V5ID0gaGFzaCh7XHJcbiAgICAgIHByZWZpeDogJzhiODA1MGNhLTFmNDQtNDg2MC1iYWQzLTIwZTY0NmMwZDY4ZicsXHJcbiAgICAgIGtleTogY29uZmlndXJhdGlvbi5rZXlcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghdGhpcy4jY2FjaGVba2V5XSkge1xyXG4gICAgICB0aGlzLiNjYWNoZVtrZXldID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RHZW5lcmF0ZWRDb2x1bW5bXT4oa2V5LCB7XHJcbiAgICAgICAgdHlwZTogJ3NlcnZlcicsXHJcbiAgICAgICAgYXJnczogY29uZmlndXJhdGlvbj8uc3lzdGVtQ29sdW1uPy5hcmdzLFxyXG4gICAgICAgIGRlZmF1bHQ6IFtdXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2tleV07XHJcbiAgfVxyXG59XHJcbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVkLWNvbHVtbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNS9EZXNrdG9wL1dvcmtpbmcvMU1HL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZ3JpZC1tYXRlcmlhbC8iLCJzb3VyY2VzIjpbInNyYy9saWIvc2VydmljZXMvZ2VuZXJhdGVkLWNvbHVtbi9nZW5lcmF0ZWQtY29sdW1uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQVUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU12RSxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DLFlBQ1UsY0FBZ0M7UUFBaEMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBSjFDLGlCQUVJLEVBQUUsRUFBQztRQUtQLFNBQUksR0FBRyxDQUFDLGFBQXlDLEVBQUUsRUFBRTtZQUNuRCxJQUFJLEVBQUMsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLEdBQUcsQ0FBQSxFQUFFO2dCQUN2QixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDO2dCQUNmLE1BQU0sRUFBRSxzQ0FBc0M7Z0JBQzlDLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRzthQUN2QixDQUFDLENBQUM7WUFDSCxJQUFHLENBQUMscUNBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUcsQ0FBQSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsT0FBTyxNQUFLLFFBQVEsRUFBRTtvQkFDdEMscUNBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQXNCLEdBQUcsRUFBRTt3QkFDNUUsSUFBSSxFQUFFLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxJQUFJO3dCQUN6QixPQUFPLEVBQUUsRUFBRTtxQkFDWixDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wscUNBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQXNCLEdBQUcsRUFBRTt3QkFDdEUsSUFBSSxFQUFFLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxPQUFPO3dCQUM1QixJQUFJLEVBQUUsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLElBQUk7d0JBQ3pCLE9BQU8sRUFBRSxFQUFFO3FCQUNaLENBQUMsQ0FBQztpQkFDSjthQUNGO1lBQ0QsT0FBTyxxQ0FBWSxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUE7UUFFRCxlQUFVLEdBQUcsQ0FBQyxhQUF5QyxFQUFFLEVBQUU7O1lBQ3pELElBQUksRUFBQyxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsR0FBRyxDQUFBLEVBQUU7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLEVBQUMsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLFlBQVksQ0FBQSxFQUFFO2dCQUNoQyxPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDO2dCQUNmLE1BQU0sRUFBRSxzQ0FBc0M7Z0JBQzlDLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRzthQUN2QixDQUFDLENBQUM7WUFDSCxJQUFHLENBQUMscUNBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUcsQ0FBQSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsT0FBTyxNQUFLLFFBQVEsRUFBRTtvQkFDdEMscUNBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQXNCLEdBQUcsRUFBRTt3QkFDNUUsSUFBSSxRQUFFLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxZQUFZLDBDQUFFLElBQUk7d0JBQ3ZDLE9BQU8sRUFBRSxFQUFFO3FCQUNaLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxxQ0FBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBc0IsR0FBRyxFQUFFO3dCQUN0RSxJQUFJLEVBQUUsYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLE9BQU87d0JBQzVCLElBQUksUUFBRSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsWUFBWSwwQ0FBRSxJQUFJO3dCQUN2QyxPQUFPLEVBQUUsRUFBRTtxQkFDWixDQUFDLENBQUM7aUJBQ0o7YUFDRjtZQUNELE9BQU8scUNBQVksR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFBO0lBckRELENBQUM7Ozs7WUFQRixVQUFVOzs7WUFMUyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBoYXNoIGZyb20gJ29iamVjdC1oYXNoJztcclxuaW1wb3J0IHsgU2RTZXR0aW5nLCBTZFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9zZXR0aW5nJztcclxuaW1wb3J0IHsgU2RHcmlkTWF0ZXJpYWxDb25maWdPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JpZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBTZEdlbmVyYXRlZENvbHVtbiB9IGZyb20gJy4vZ2VuZXJhdGVkLWNvbHVtbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNkU2V0dGluZ1NlcnZlciB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvc2V0dGluZyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTZEdlbmVyYXRlZENvbHVtblNlcnZpY2Uge1xyXG4gICNjYWNoZToge1xyXG4gICAgW2tleTogc3RyaW5nXTogU2RTZXR0aW5nPFNkR2VuZXJhdGVkQ29sdW1uW10+IHwgU2RTZXR0aW5nU2VydmVyPFNkR2VuZXJhdGVkQ29sdW1uW10+XHJcbiAgfSA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZTogU2RTZXR0aW5nU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbG9hZCA9IChjb25maWd1cmF0aW9uOiBTZEdyaWRNYXRlcmlhbENvbmZpZ09wdGlvbikgPT4ge1xyXG4gICAgaWYgKCFjb25maWd1cmF0aW9uPy5rZXkpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBrZXkgPSBoYXNoKHtcclxuICAgICAgcHJlZml4OiAnMjYwZjVlOTQtNTg2NS00NDI1LThjZWQtYjljMDgzYzM5MGRkJyxcclxuICAgICAga2V5OiBjb25maWd1cmF0aW9uLmtleVxyXG4gICAgfSk7XHJcbiAgICBpZighdGhpcy4jY2FjaGVba2V5XSkge1xyXG4gICAgICBpZihjb25maWd1cmF0aW9uPy5zdG9yYWdlID09PSAnc2VydmVyJykge1xyXG4gICAgICAgIHRoaXMuI2NhY2hlW2tleV0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZVNlcnZlcjxTZEdlbmVyYXRlZENvbHVtbltdPihrZXksIHtcclxuICAgICAgICAgIGFyZ3M6IGNvbmZpZ3VyYXRpb24/LmFyZ3MsXHJcbiAgICAgICAgICBkZWZhdWx0OiBbXVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2NhY2hlW2tleV0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEdlbmVyYXRlZENvbHVtbltdPihrZXksIHtcclxuICAgICAgICAgIHR5cGU6IGNvbmZpZ3VyYXRpb24/LnN0b3JhZ2UsXHJcbiAgICAgICAgICBhcmdzOiBjb25maWd1cmF0aW9uPy5hcmdzLFxyXG4gICAgICAgICAgZGVmYXVsdDogW11cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2tleV07XHJcbiAgfVxyXG5cclxuICBsb2FkU3lzdGVtID0gKGNvbmZpZ3VyYXRpb246IFNkR3JpZE1hdGVyaWFsQ29uZmlnT3B0aW9uKSA9PiB7XHJcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb24/LmtleSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICghY29uZmlndXJhdGlvbj8uc3lzdGVtQ29sdW1uKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3Qga2V5ID0gaGFzaCh7XHJcbiAgICAgIHByZWZpeDogJzhiODA1MGNhLTFmNDQtNDg2MC1iYWQzLTIwZTY0NmMwZDY4ZicsXHJcbiAgICAgIGtleTogY29uZmlndXJhdGlvbi5rZXlcclxuICAgIH0pO1xyXG4gICAgaWYoIXRoaXMuI2NhY2hlW2tleV0pIHtcclxuICAgICAgaWYoY29uZmlndXJhdGlvbj8uc3RvcmFnZSA9PT0gJ3NlcnZlcicpIHtcclxuICAgICAgICB0aGlzLiNjYWNoZVtrZXldID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGVTZXJ2ZXI8U2RHZW5lcmF0ZWRDb2x1bW5bXT4oa2V5LCB7XHJcbiAgICAgICAgICBhcmdzOiBjb25maWd1cmF0aW9uPy5zeXN0ZW1Db2x1bW4/LmFyZ3MsXHJcbiAgICAgICAgICBkZWZhdWx0OiBbXVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2NhY2hlW2tleV0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEdlbmVyYXRlZENvbHVtbltdPihrZXksIHtcclxuICAgICAgICAgIHR5cGU6IGNvbmZpZ3VyYXRpb24/LnN0b3JhZ2UsXHJcbiAgICAgICAgICBhcmdzOiBjb25maWd1cmF0aW9uPy5zeXN0ZW1Db2x1bW4/LmFyZ3MsXHJcbiAgICAgICAgICBkZWZhdWx0OiBbXVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVba2V5XTtcclxuICB9XHJcbn1cclxuIl19