@sd-angular/core 1.3.138 → 1.3.139
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/bundles/sd-angular-core-grid-material.umd.js +21 -22
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/esm2015/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.js +21 -17
- package/esm2015/grid-material/src/lib/grid-material.component.js +2 -2
- package/fesm2015/sd-angular-core-grid-material.js +20 -16
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
- package/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.d.ts +4 -4
- package/package.json +1 -1
- package/{sd-angular-core-1.3.138.tgz → sd-angular-core-1.3.139.tgz} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var _valueChanges, _subcription;
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
1
|
+
var _inlineOperator_1, _valueChanges, _subcription;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
4
4
|
import { Subject, Subscription } from 'rxjs';
|
|
5
5
|
import { startWith } from 'rxjs/operators';
|
|
@@ -7,7 +7,9 @@ import { SdFilterOperators } from '../../models/grid-column.model';
|
|
|
7
7
|
export class SdColumnInlineFilter {
|
|
8
8
|
constructor(ref) {
|
|
9
9
|
this.ref = ref;
|
|
10
|
-
this.
|
|
10
|
+
this.inlineSymbol = 'filter_alt';
|
|
11
|
+
_inlineOperator_1.set(this, void 0);
|
|
12
|
+
this.inlineOperatorChange = new EventEmitter();
|
|
11
13
|
this.columnFilter = {};
|
|
12
14
|
this.operators = [];
|
|
13
15
|
this.filterChange = new EventEmitter();
|
|
@@ -16,13 +18,16 @@ export class SdColumnInlineFilter {
|
|
|
16
18
|
this.onFilterChange = () => {
|
|
17
19
|
this.filterChange.emit();
|
|
18
20
|
};
|
|
19
|
-
this.onChangeOperator = (
|
|
20
|
-
if (
|
|
21
|
-
this
|
|
21
|
+
this.onChangeOperator = (event) => {
|
|
22
|
+
if (event) {
|
|
23
|
+
__classPrivateFieldSet(this, _inlineOperator_1, event.value);
|
|
24
|
+
this.inlineSymbol = event.symbol;
|
|
22
25
|
}
|
|
23
26
|
else {
|
|
24
|
-
this
|
|
27
|
+
__classPrivateFieldSet(this, _inlineOperator_1, null);
|
|
28
|
+
this.inlineSymbol = 'filter_alt';
|
|
25
29
|
}
|
|
30
|
+
this.inlineOperatorChange.emit(__classPrivateFieldGet(this, _inlineOperator_1));
|
|
26
31
|
this.ref.markForCheck();
|
|
27
32
|
};
|
|
28
33
|
}
|
|
@@ -30,8 +35,10 @@ export class SdColumnInlineFilter {
|
|
|
30
35
|
this.value = value;
|
|
31
36
|
__classPrivateFieldGet(this, _valueChanges).next();
|
|
32
37
|
}
|
|
33
|
-
set
|
|
34
|
-
|
|
38
|
+
set _inlineOperator(inlineOperator) {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
__classPrivateFieldSet(this, _inlineOperator_1, inlineOperator);
|
|
41
|
+
this.inlineSymbol = (_b = (_a = SdFilterOperators.find(e => e.value === inlineOperator)) === null || _a === void 0 ? void 0 : _a.symbol) !== null && _b !== void 0 ? _b : 'filter_alt';
|
|
35
42
|
}
|
|
36
43
|
set _columnFilter(columnFilter) {
|
|
37
44
|
this.columnFilter = columnFilter || {};
|
|
@@ -63,16 +70,12 @@ export class SdColumnInlineFilter {
|
|
|
63
70
|
ngOnDestroy() {
|
|
64
71
|
__classPrivateFieldGet(this, _subcription).unsubscribe();
|
|
65
72
|
}
|
|
66
|
-
get columnSymbol() {
|
|
67
|
-
var _a;
|
|
68
|
-
return ((_a = SdFilterOperators.find(e => { var _a, _b; return e.value === ((_a = this.columnOperator) === null || _a === void 0 ? void 0 : _a[(_b = this.column) === null || _b === void 0 ? void 0 : _b.field]); })) === null || _a === void 0 ? void 0 : _a.symbol) || 'filter_alt';
|
|
69
|
-
}
|
|
70
73
|
}
|
|
71
|
-
_valueChanges = new WeakMap(), _subcription = new WeakMap();
|
|
74
|
+
_inlineOperator_1 = new WeakMap(), _valueChanges = new WeakMap(), _subcription = new WeakMap();
|
|
72
75
|
SdColumnInlineFilter.decorators = [
|
|
73
76
|
{ type: Component, args: [{
|
|
74
77
|
selector: 'sd-column-inline-filter',
|
|
75
|
-
template: "<div class=\"d-flex c-inline-column align-items-end\">\r\n <ng-container *ngIf=\"\r\n column.type === 'string' ||\r\n column.type === 'number' ||\r\n column.type === 'bool' ||\r\n column.type === 'values' ||\r\n column.type === 'date' ||\r\n column.type === 'datetime' ||\r\n column.type === 'time';\r\n else noFilter\r\n \">\r\n <ng-container *ngIf=\"operators.length\">\r\n <!-- <div style=\"width: 60px; margin-right: 4px\" [matMenuTriggerFor]=\"menu\">\r\n <span>=</span>\r\n </div> -->\r\n <sd-button class=\"mr-2\" fontSet=\"material-symbols-outlined\" [icon]=\"
|
|
78
|
+
template: "<div class=\"d-flex c-inline-column align-items-end\">\r\n <ng-container *ngIf=\"\r\n column.type === 'string' ||\r\n column.type === 'number' ||\r\n column.type === 'bool' ||\r\n column.type === 'values' ||\r\n column.type === 'date' ||\r\n column.type === 'datetime' ||\r\n column.type === 'time';\r\n else noFilter\r\n \">\r\n <ng-container *ngIf=\"operators.length\">\r\n <!-- <div style=\"width: 60px; margin-right: 4px\" [matMenuTriggerFor]=\"menu\">\r\n <span>=</span>\r\n </div> -->\r\n <sd-button class=\"mr-2\" fontSet=\"material-symbols-outlined\" [icon]=\"inlineSymbol\" size=\"sm\"\r\n [matMenuTriggerFor]=\"menu\" type=\"link\"> </sd-button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let operator of operators\" (click)=\"onChangeOperator(operator)\" mat-menu-item type=\"button\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">{{ operator.symbol }}</mat-icon>\r\n <span> {{ operator.display }}</span>\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n <!-- <sd-select\r\n *ngIf=\"operators.length\"\r\n style=\"width: 60px; margin-right: 4px\"\r\n size=\"sm\"\r\n [items]=\"operators\"\r\n valueField=\"value\"\r\n displayField=\"display\"\r\n [(model)]=\"columnOperator[column.field]\"></sd-select> -->\r\n <sd-input *ngIf=\"column.type === 'string'\" style=\"flex: 1\" size=\"sm\" type=\"text\"\r\n [(model)]=\"columnFilter[column.field]\" (keyupEnter)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-input>\r\n <sd-input-number *ngIf=\"column.type === 'number'\" style=\"flex: 1\" size=\"sm\" [(model)]=\"columnFilter[column.field]\"\r\n (keyupEnter)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-input-number>\r\n <sd-select *ngIf=\"column.type === 'bool'\" style=\"flex: 1\" size=\"sm\" [items]=\"[\r\n { value: '1', display: column.option?.displayOnTrue || 'True' },\r\n { value: '0', display: column.option?.displayOnFalse || 'False' }\r\n ]\" valueField=\"value\" displayField=\"display\" [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n <ng-template sdSelectDisplayDef let-item=\"item\">\r\n <sd-badge *ngIf=\"item.value === '1'\" color=\"success\" [title]=\"column.option?.displayOnTrue || 'True'\">\r\n </sd-badge>\r\n <sd-badge *ngIf=\"item.value === '0'\" color=\"danger\" [title]=\"column.option?.displayOnFalse || 'False'\">\r\n </sd-badge>\r\n </ng-template>\r\n </sd-select>\r\n <sd-select *ngIf=\"column.type === 'values' && column?.option?.selection !== 'AUTOCOMPLETE'\" style=\"flex: 1\"\r\n size=\"sm\" [items]=\"column.option.items\" [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\" [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\"\r\n [multiple]=\"column?.option?.selection === 'MULTIPLE' || column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [filtered]=\"column?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"column.type === 'values' && column?.option?.selection === 'AUTOCOMPLETE'\" style=\"flex: 1\"\r\n size=\"sm\" [items]=\"column.option.items\" [valueField]=\"column.option.valueField\"\r\n [displayField]=\"column.option.displayField\" [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-autocomplete>\r\n <ng-container *ngIf=\"column.type === 'date' || column.type === 'datetime' || column.type === 'time'\">\r\n <sd-date-range *ngIf=\"!column.option?.useFilterDate\" style=\"flex: 1\" size=\"sm\"\r\n [(from)]=\"columnFilter[column.field].from\" [(to)]=\"columnFilter[column.field].to\" (sdChange)=\"onFilterChange()\"\r\n [disabled]=\"column.filter?.disabled\">\r\n </sd-date-range>\r\n <sd-date-time *ngIf=\"column.option?.useFilterDate\" style=\"flex: 1\" type=\"date\" size=\"sm\"\r\n [(model)]=\"columnFilter[column.field]\" (sdChange)=\"onFilterChange()\" [disabled]=\"column.filter?.disabled\">\r\n </sd-date-time>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #noFilter>\r\n <sd-input type=\"text\" size=\"sm\" disabled> </sd-input>\r\n </ng-template>\r\n</div>",
|
|
76
79
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
77
80
|
styles: [":host ::ng-deep .c-inline-column .mat-form-field-wrapper{background-color:#fff;border-radius:8px;margin:8px 0 0!important;padding:0!important}"]
|
|
78
81
|
},] }
|
|
@@ -82,9 +85,10 @@ SdColumnInlineFilter.ctorParameters = () => [
|
|
|
82
85
|
];
|
|
83
86
|
SdColumnInlineFilter.propDecorators = {
|
|
84
87
|
_value: [{ type: Input, args: ['value',] }],
|
|
85
|
-
|
|
88
|
+
_inlineOperator: [{ type: Input, args: ['inlineOperator',] }],
|
|
89
|
+
inlineOperatorChange: [{ type: Output }],
|
|
86
90
|
_columnFilter: [{ type: Input, args: ['columnFilter',] }],
|
|
87
91
|
_column: [{ type: Input, args: ['column',] }],
|
|
88
92
|
filterChange: [{ type: Output }]
|
|
89
93
|
};
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWlubGluZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL3VzZXIvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZ3JpZC1tYXRlcmlhbC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY29tcG9uZW50cy9jb2x1bW4taW5saW5lLWZpbHRlci9jb2x1bW4taW5saW5lLWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQW9CLGlCQUFpQixFQUF3QixNQUFNLGdDQUFnQyxDQUFDO0FBUTNHLE1BQU0sT0FBTyxvQkFBb0I7SUFnQy9CLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBMUIxQyxpQkFBWSxHQUFXLFlBQVksQ0FBQztRQUNwQyxvQ0FBa0M7UUFLeEIseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwRCxpQkFBWSxHQUF3QixFQUFFLENBQUM7UUFLdkMsY0FBUyxHQUFvRSxFQUFFLENBQUM7UUFVdEUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVDLHdCQUFnQixJQUFJLE9BQU8sRUFBRSxFQUFDO1FBQzlCLHVCQUFlLElBQUksWUFBWSxFQUFFLEVBQUM7UUFzQmxDLG1CQUFjLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDO1FBR0YscUJBQWdCLEdBQUcsQ0FBQyxL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dUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQVZpQyxpQkFBaUI7OztxQkFhaEQsS0FBSyxTQUFDLE9BQU87OEJBTWIsS0FBSyxTQUFDLGdCQUFnQjttQ0FJdEIsTUFBTTs0QkFHTixLQUFLLFNBQUMsY0FBYztzQkFNcEIsS0FBSyxTQUFDLFFBQVE7MkJBUWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNkRmlsdGVyT3BlcmF0b3IsIFNkRmlsdGVyT3BlcmF0b3JzLCBTZEdyaWRNYXRlcmlhbENvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLWNvbHVtbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWNvbHVtbi1pbmxpbmUtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWlubGluZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbHVtbi1pbmxpbmUtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZENvbHVtbklubGluZUZpbHRlciBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdmFsdWU6IGFueTtcclxuICBASW5wdXQoJ3ZhbHVlJykgX3ZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuI3ZhbHVlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGlubGluZVN5bWJvbDogc3RyaW5nID0gJ2ZpbHRlcl9hbHQnO1xyXG4gICNpbmxpbmVPcGVyYXRvcjogU2RGaWx0ZXJPcGVyYXRvcjtcclxuICBASW5wdXQoJ2lubGluZU9wZXJhdG9yJykgc2V0IF9pbmxpbmVPcGVyYXRvcihpbmxpbmVPcGVyYXRvcjogU2RGaWx0ZXJPcGVyYXRvcikge1xyXG4gICAgdGhpcy4jaW5saW5lT3BlcmF0b3IgPSBpbmxpbmVPcGVyYXRvcjtcclxuICAgIHRoaXMuaW5saW5lU3ltYm9sID0gU2RGaWx0ZXJPcGVyYXRvcnMuZmluZChlID0+IGUudmFsdWUgPT09IGlubGluZU9wZXJhdG9yKT8uc3ltYm9sID8/ICdmaWx0ZXJfYWx0JztcclxuICB9XHJcbiAgQE91dHB1dCgpIGlubGluZU9wZXJhdG9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb2x1bW5GaWx0ZXI6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICBASW5wdXQoJ2NvbHVtbkZpbHRlcicpIHNldCBfY29sdW1uRmlsdGVyKGNvbHVtbkZpbHRlcjogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgdGhpcy5jb2x1bW5GaWx0ZXIgPSBjb2x1bW5GaWx0ZXIgfHwge307XHJcbiAgICB0aGlzLiN2YWx1ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBvcGVyYXRvcnM6IHsgdmFsdWU6IFNkRmlsdGVyT3BlcmF0b3IsIHN5bWJvbD86IHN0cmluZywgZGlzcGxheTogc3RyaW5nIH1bXSA9IFtdO1xyXG4gIGNvbHVtbjogU2RHcmlkTWF0ZXJpYWxDb2x1bW47XHJcbiAgQElucHV0KCdjb2x1bW4nKSBzZXQgX2NvbHVtbihjb2x1bW46IFNkR3JpZE1hdGVyaWFsQ29sdW1uKSB7XHJcbiAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcclxuICAgIGlmICghY29sdW1uPy5maWx0ZXI/LmRpc2FibGVkICYmIGNvbHVtbj8uZmlsdGVyPy5vcGVyYXRvcj8uZW5hYmxlKSB7XHJcbiAgICAgIHRoaXMub3BlcmF0b3JzID0gU2RGaWx0ZXJPcGVyYXRvcnMuZmlsdGVyKGUgPT4gY29sdW1uLmZpbHRlci5vcGVyYXRvci5saXN0Py5pbmNsdWRlcz8uKGUudmFsdWUpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlcmF0b3JzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBmaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgI3ZhbHVlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgI3N1YmNyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jc3ViY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLiN2YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5jb2x1bW5GaWx0ZXIpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi50eXBlID09PSAnZGF0ZScgfHwgdGhpcy5jb2x1bW4udHlwZSA9PT0gJ3RpbWUnIHx8IHRoaXMuY29sdW1uLnR5cGUgPT09ICdkYXRldGltZScpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5jb2x1bW4/Lm9wdGlvbj8udXNlRmlsdGVyRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVtbkZpbHRlclt0aGlzLmNvbHVtbi5maWVsZF0gPSB0aGlzLmNvbHVtbkZpbHRlclt0aGlzLmNvbHVtbi5maWVsZF0gfHwge1xyXG4gICAgICAgICAgICAgIGZyb206IG51bGwsXHJcbiAgICAgICAgICAgICAgdG86IG51bGwsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jc3ViY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG9uRmlsdGVyQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCgpO1xyXG4gIH07XHJcblxyXG5cclxuICBvbkNoYW5nZU9wZXJhdG9yID0gKGV2ZW50OiB7IHZhbHVlOiBTZEZpbHRlck9wZXJhdG9yLCBzeW1ib2w/OiBzdHJpbmcsIGRpc3BsYXk6IHN0cmluZyB9KSA9PiB7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy4jaW5saW5lT3BlcmF0b3IgPSBldmVudC52YWx1ZTtcclxuICAgICAgdGhpcy5pbmxpbmVTeW1ib2wgPSBldmVudC5zeW1ib2w7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLiNpbmxpbmVPcGVyYXRvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5saW5lU3ltYm9sID0gJ2ZpbHRlcl9hbHQnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbmxpbmVPcGVyYXRvckNoYW5nZS5lbWl0KHRoaXMuI2lubGluZU9wZXJhdG9yKTtcclxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|