@tetacom/ng-components 1.2.1 → 1.2.3
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/assets/icons.svg +3 -0
- package/component/table/head-cell/head-cell.component.d.ts +3 -3
- package/esm2022/component/table/head-cell/head-cell.component.mjs +17 -17
- package/esm2022/observable/animation-frame.mjs +5 -5
- package/esm2022/observable/public-api.mjs +2 -1
- package/esm2022/observable/zone-observable.mjs +15 -0
- package/fesm2022/tetacom-ng-components.mjs +33 -19
- package/fesm2022/tetacom-ng-components.mjs.map +1 -1
- package/observable/animation-frame.d.ts +2 -2
- package/observable/public-api.d.ts +1 -0
- package/observable/zone-observable.d.ts +5 -0
- package/package.json +1 -1
package/assets/icons.svg
CHANGED
|
@@ -740,4 +740,7 @@
|
|
|
740
740
|
<symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="warningFilled">
|
|
741
741
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.13175 2.01949L0.854929 13.0039C0.473983 13.6706 0.95535 14.5001 1.72317 14.5001H14.2768C15.0446 14.5001 15.526 13.6706 15.1451 13.0039L8.86824 2.01949C8.48434 1.34767 7.51564 1.34767 7.13175 2.01949ZM7.99999 9.85695C7.65481 9.85695 7.37499 9.57713 7.37499 9.23195V6.33434C7.37499 5.98916 7.65481 5.70934 7.99999 5.70934C8.34517 5.70934 8.62499 5.98916 8.62499 6.33434L8.62499 9.23195C8.62499 9.57713 8.34517 9.85695 7.99999 9.85695ZM7.99999 12.4558C7.65481 12.4558 7.37499 12.1759 7.37499 11.8308V11.4686C7.37499 11.1234 7.65481 10.8436 7.99999 10.8436C8.34517 10.8436 8.62499 11.1234 8.62499 11.4686V11.8308C8.62499 12.1759 8.34517 12.4558 7.99999 12.4558Z" fill="currentColor" fill-opacity="0.87" />
|
|
742
742
|
</symbol>
|
|
743
|
+
<symbol fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" id="attach">
|
|
744
|
+
<path d="M6.93752 3.7555L2.87166 7.82137C1.40719 9.28583 1.40719 11.6602 2.87166 13.1247V13.1247C4.33612 14.5891 6.71049 14.5891 8.17496 13.1247L14.0086 7.29104C14.9849 6.31473 14.9849 4.73182 14.0086 3.7555V3.7555C13.0323 2.77919 11.4494 2.77919 10.4731 3.7555L4.99298 9.23558C4.50482 9.72374 4.50482 10.5152 4.99298 11.0033V11.0033C5.48113 11.4915 6.27259 11.4915 6.76074 11.0033L10.4731 7.29104" stroke="currentColor" fill-opacity="0.87" stroke-width="1.25" stroke-linecap="round"/>
|
|
745
|
+
</symbol>
|
|
743
746
|
</svg>
|
|
@@ -37,14 +37,14 @@ export declare class HeadCellComponent<T> implements OnInit, OnDestroy {
|
|
|
37
37
|
private observer;
|
|
38
38
|
constructor(_svc: TableService<T>, _app: ApplicationRef, _elementRef: ElementRef, _cdr: ChangeDetectorRef);
|
|
39
39
|
dragstart(event: DragEvent): void;
|
|
40
|
-
dragenter(
|
|
40
|
+
dragenter(): void;
|
|
41
41
|
allowDrop(event: DragEvent): void;
|
|
42
42
|
dragleave(event: DragEvent): void;
|
|
43
|
-
dragend(
|
|
43
|
+
dragend(): void;
|
|
44
44
|
drop(event: DragEvent): void;
|
|
45
45
|
ngOnInit(): void;
|
|
46
46
|
ngOnDestroy(): void;
|
|
47
|
-
resizeStart(
|
|
47
|
+
resizeStart(): void;
|
|
48
48
|
resizeProcess(event: MouseEvent): void;
|
|
49
49
|
resizeEnd(): void;
|
|
50
50
|
static ɵfac: i0.ɵɵFactoryDeclaration<HeadCellComponent<any>, never>;
|
|
@@ -28,17 +28,19 @@ export class HeadCellComponent {
|
|
|
28
28
|
template: this.mainTemplate,
|
|
29
29
|
order: 10,
|
|
30
30
|
showTab: () => true,
|
|
31
|
-
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
32
33
|
icon: 'filter',
|
|
33
34
|
template: this.filterTemplate,
|
|
34
35
|
order: 20,
|
|
35
36
|
showTab: (column) => column.filterable,
|
|
36
|
-
},
|
|
37
|
+
},
|
|
38
|
+
{
|
|
37
39
|
icon: 'eye',
|
|
38
40
|
template: this.columnsTemplate,
|
|
39
41
|
order: 30,
|
|
40
42
|
showTab: () => true,
|
|
41
|
-
}
|
|
43
|
+
},
|
|
42
44
|
];
|
|
43
45
|
}
|
|
44
46
|
get elementRef() {
|
|
@@ -49,8 +51,7 @@ export class HeadCellComponent {
|
|
|
49
51
|
if (this.column.headDropdownConfig.strategy === 'replace') {
|
|
50
52
|
return this.column.headDropdownConfig.tabs;
|
|
51
53
|
}
|
|
52
|
-
return [...this.defaultTemplates, ...this.column.headDropdownConfig.tabs]
|
|
53
|
-
.sort((a, b) => a.order - b.order);
|
|
54
|
+
return [...this.defaultTemplates, ...this.column.headDropdownConfig.tabs].sort((a, b) => a.order - b.order);
|
|
54
55
|
}
|
|
55
56
|
return this.defaultTemplates;
|
|
56
57
|
}
|
|
@@ -71,21 +72,20 @@ export class HeadCellComponent {
|
|
|
71
72
|
}
|
|
72
73
|
this._svc.dragStart(this.column);
|
|
73
74
|
}
|
|
74
|
-
dragenter(
|
|
75
|
+
dragenter() {
|
|
75
76
|
this.rect = this._elementRef.nativeElement.getBoundingClientRect();
|
|
76
77
|
}
|
|
77
78
|
allowDrop(event) {
|
|
78
79
|
event.preventDefault();
|
|
79
80
|
if (this.rect && this._svc.dragSource) {
|
|
80
|
-
this.showDrag =
|
|
81
|
-
event.clientX >= this.rect.x + this.rect.width / 2 ? 'right' : 'left';
|
|
81
|
+
this.showDrag = event.clientX >= this.rect.x + this.rect.width / 2 ? 'right' : 'left';
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
dragleave(event) {
|
|
85
85
|
event.preventDefault();
|
|
86
86
|
this.showDrag = null;
|
|
87
87
|
}
|
|
88
|
-
dragend(
|
|
88
|
+
dragend() {
|
|
89
89
|
this.showDrag = null;
|
|
90
90
|
}
|
|
91
91
|
drop(event) {
|
|
@@ -103,13 +103,13 @@ export class HeadCellComponent {
|
|
|
103
103
|
this.iconName = combineLatest([this.sortParam, this.filtered]).pipe(map((data) => {
|
|
104
104
|
const [sortParam, filtered] = data;
|
|
105
105
|
if (sortParam && filtered) {
|
|
106
|
-
return sortParam.asc ? '
|
|
106
|
+
return sortParam.asc ? 'filterSortUp' : 'filterSortDown';
|
|
107
107
|
}
|
|
108
108
|
if (sortParam) {
|
|
109
|
-
return sortParam.asc ? '
|
|
109
|
+
return sortParam.asc ? 'arrowUp' : 'arrowDown';
|
|
110
110
|
}
|
|
111
111
|
if (filtered) {
|
|
112
|
-
return '
|
|
112
|
+
return 'filter';
|
|
113
113
|
}
|
|
114
114
|
return '';
|
|
115
115
|
}));
|
|
@@ -122,7 +122,7 @@ export class HeadCellComponent {
|
|
|
122
122
|
});
|
|
123
123
|
}, {
|
|
124
124
|
root: this._svc.getTableElement(this._elementRef.nativeElement),
|
|
125
|
-
threshold: [1]
|
|
125
|
+
threshold: [1],
|
|
126
126
|
});
|
|
127
127
|
this.observer.observe(this._elementRef.nativeElement);
|
|
128
128
|
}
|
|
@@ -131,7 +131,7 @@ export class HeadCellComponent {
|
|
|
131
131
|
this.observer.unobserve(this._elementRef.nativeElement);
|
|
132
132
|
this.observer.disconnect();
|
|
133
133
|
}
|
|
134
|
-
resizeStart(
|
|
134
|
+
resizeStart() {
|
|
135
135
|
const rect = this._elementRef.nativeElement.getBoundingClientRect();
|
|
136
136
|
this._startPosition = rect.x;
|
|
137
137
|
this._svc.lockPreviousColumns(this.column, this._elementRef.nativeElement);
|
|
@@ -149,7 +149,7 @@ export class HeadCellComponent {
|
|
|
149
149
|
this._startPosition = null;
|
|
150
150
|
}
|
|
151
151
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HeadCellComponent, deps: [{ token: i1.TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: HeadCellComponent, isStandalone: true, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown
|
|
152
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: HeadCellComponent, isStandalone: true, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close", "headCellElementRef"] }, { kind: "component", type: FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
153
153
|
}
|
|
154
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HeadCellComponent, decorators: [{
|
|
155
155
|
type: Component,
|
|
@@ -166,7 +166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
166
166
|
FilterDropdownTabComponent,
|
|
167
167
|
VisibilityDropdownTabComponent,
|
|
168
168
|
AsyncPipe,
|
|
169
|
-
], template: "<div class=\"row row_auto\">\n <teta-dropdown
|
|
169
|
+
], template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
|
|
170
170
|
}], ctorParameters: () => [{ type: i1.TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { column: [{
|
|
171
171
|
type: Input
|
|
172
172
|
}], showHeadCellMenu: [{
|
|
@@ -201,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
201
201
|
type: HostListener,
|
|
202
202
|
args: ['drop', ['$event']]
|
|
203
203
|
}] } });
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFBRSxpQkFBaUIsRUFDMUMsU0FBUyxFQUNULFVBQVUsRUFBRSxXQUFXLEVBQ3ZCLFlBQVksRUFDWixLQUFLLEVBRUcsV0FBVyxFQUFFLFNBQVMsR0FDL0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRWxFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEQsT0FBTyxFQUFDLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztB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QzFCLDhCQUE4Qjt3QkFDOUIsU0FBUztxQkFDWjt1S0FHTSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFVTixZQUFZO3NCQURYLFdBQVc7dUJBQUMsK0JBQStCO2dCQVFELFlBQVk7c0JBQXRELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDSSxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDRyxlQUFlO3NCQUE1RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkF3REwsU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUMsU0FBUztzQkFBOUMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUUcsU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBS0EsT0FBTztzQkFBM0MsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUQsSUFBSTtzQkFBckMsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICcuLi9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHtDb2x1bW5SZXNpemVFdmVudH0gZnJvbSAnLi4vY29udHJhY3QvY29sdW1uLXJlc2l6ZS1ldmVudCc7XG5pbXBvcnQge0ZpbHRlclN0YXRlfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7VGFibGVTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U29ydFBhcmFtfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3Qvc29ydC1wYXJhbSc7XG5pbXBvcnQge1N0YXRlVXRpbH0gZnJvbSAnLi4vdXRpbC9zdGF0ZS11dGlsJztcbmltcG9ydCB7VmVydGljYWxBbGlnbn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2VudW0vdmVydGljYWwtYWxpZ24uZW51bSc7XG5pbXBvcnQge0FsaWdufSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0hlYWREcm9wZG93blRhYn0gZnJvbSAnLi4vY29udHJhY3QvaGVhZC1kcm9wZG93bi10YWInO1xuaW1wb3J0IHsgVmlzaWJpbGl0eURyb3Bkb3duVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtaGVhZC92aXNpYmlsaXR5LWRyb3Bkb3duLXRhYi92aXNpYmlsaXR5LWRyb3Bkb3duLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyRHJvcGRvd25UYWJDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1oZWFkL2ZpbHRlci1kcm9wZG93bi10YWIvZmlsdGVyLWRyb3Bkb3duLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWFpbkRyb3Bkb3duVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtaGVhZC9tYWluLWRyb3Bkb3duLXRhYi9tYWluLWRyb3Bkb3duLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzaXplRHJhZ0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9yZXNpemUtZHJhZy9yZXNpemUtZHJhZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRHJvcGRvd25Db250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZHJvcGRvd24vZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSGVhZENlbGxEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uL2hlYWQtY2VsbC1kcm9wZG93bi9oZWFkLWNlbGwtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZENlbGxIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZC1jZWxsLWhvc3QvaGVhZC1jZWxsLWhvc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE5nQ2xhc3MsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEcm9wZG93bkhlYWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kcm9wZG93bi9kcm9wZG93bi1oZWFkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGV0YS1oZWFkLWNlbGwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2hlYWQtY2VsbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICAgICAgRHJvcGRvd25IZWFkRGlyZWN0aXZlLFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBIZWFkQ2VsbEhvc3RDb21wb25lbnQsXG4gICAgICAgIEljb25Db21wb25lbnQsXG4gICAgICAgIEhlYWRDZWxsRHJvcGRvd25Db21wb25lbnQsXG4gICAgICAgIERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSxcbiAgICAgICAgUmVzaXplRHJhZ0RpcmVjdGl2ZSxcbiAgICAgICAgTWFpbkRyb3Bkb3duVGFiQ29tcG9uZW50LFxuICAgICAgICBGaWx0ZXJEcm9wZG93blRhYkNvbXBvbmVudCxcbiAgICAgICAgVmlzaWJpbGl0eURyb3Bkb3duVGFiQ29tcG9uZW50LFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZENlbGxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGNvbHVtbjogVGFibGVDb2x1bW47XG4gIEBJbnB1dCgpIHNob3dIZWFkQ2VsbE1lbnU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRhdGE6IFRbXTtcblxuICB2ZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbjtcbiAgYWxpZ24gPSBBbGlnbjtcbiAgc3RhdGU6IE9ic2VydmFibGU8RmlsdGVyU3RhdGU+O1xuICBjb2x1bW5zOiBPYnNlcnZhYmxlPFRhYmxlQ29sdW1uW10+O1xuICBmaWx0ZXJlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgc29ydFBhcmFtOiBPYnNlcnZhYmxlPFNvcnRQYXJhbT47XG4gIGljb25OYW1lOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIEBIb3N0QmluZGluZygnY2xhc3MudGFibGUtaGVhZF9fY2VsbF9hY3RpdmUnKVxuICBkcm9wRG93bk9wZW4gPSBmYWxzZTtcbiAgc2hvd0RyYWc6ICdsZWZ0JyB8ICdyaWdodCcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWN0OiBhbnk7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuICBwcml2YXRlIF9zdGFydFBvc2l0aW9uOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZCgnbWFpblRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIG1haW5UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnZmlsdGVyVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgZmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbnNUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBjb2x1bW5zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGRlZmF1bHRUZW1wbGF0ZXMoKTogSGVhZERyb3Bkb3duVGFiW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGljb246ICdtZW51JyxcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMubWFpblRlbXBsYXRlLFxuICAgICAgICBvcmRlcjogMTAsXG4gICAgICAgIHNob3dUYWI6ICgpID0+IHRydWUsXG4gICAgICB9LCB7XG4gICAgICAgIGljb246ICdmaWx0ZXInLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5maWx0ZXJUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDIwLFxuICAgICAgICBzaG93VGFiOiAoY29sdW1uKSA9PiBjb2x1bW4uZmlsdGVyYWJsZSxcbiAgICAgIH0sIHtcbiAgICAgICAgaWNvbjogJ2V5ZScsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmNvbHVtbnNUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDMwLFxuICAgICAgICBzaG93VGFiOiAoKSA9PiB0cnVlLFxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBnZXQgZWxlbWVudFJlZigpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgfVxuXG4gIGdldCB0YWJUZW1wbGF0ZXMoKSB7XG4gICAgaWYgKHRoaXMuY29sdW1uPy5oZWFkRHJvcGRvd25Db25maWcgJiYgdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcuc3RyYXRlZ3kgPT09ICdyZXBsYWNlJykge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnM7XG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlcywgLi4udGhpcy5jb2x1bW4uaGVhZERyb3Bkb3duQ29uZmlnLnRhYnNdXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRlbXBsYXRlcztcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N2YzogVGFibGVTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgX2FwcDogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICB9XG5cbiAgZHJhZ3N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsICdtb3ZlJyk7XG4gICAgfVxuICAgIHRoaXMuX3N2Yy5kcmFnU3RhcnQodGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSkgZHJhZ2VudGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIGFsbG93RHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAodGhpcy5yZWN0ICYmIHRoaXMuX3N2Yy5kcmFnU291cmNlKSB7XG4gICAgICB0aGlzLnNob3dEcmFnID1cbiAgICAgICAgZXZlbnQuY2xpZW50WCA+PSB0aGlzLnJlY3QueCArIHRoaXMucmVjdC53aWR0aCAvIDIgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pIGRyYWdsZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKSBkcmFnZW5kKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKSBkcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBtb3ZlID0gZXZlbnQuZGF0YVRyYW5zZmVyICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgaWYgKG1vdmUgPT09ICdtb3ZlJykge1xuICAgICAgdGhpcy5fc3ZjLnJlb3JkZXJDb2x1bW4odGhpcy5jb2x1bW4sIHRoaXMuc2hvd0RyYWcgPT09ICdsZWZ0Jyk7XG4gICAgfVxuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zID0gdGhpcy5fc3ZjLmNvbHVtbnM7XG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuX3N2Yy5zdGF0ZTtcbiAgICB0aGlzLnNvcnRQYXJhbSA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG1hcCgoXykgPT4gU3RhdGVVdGlsLmdldFNvcnRTdGF0ZShfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlcmVkID0gdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgbWFwKChfKSA9PiBTdGF0ZVV0aWwuaXNDb2x1bW5GaWx0ZXJlZChfLCB0aGlzLmNvbHVtbikpXG4gICAgKTtcbiAgICB0aGlzLmljb25OYW1lID0gY29tYmluZUxhdGVzdChbdGhpcy5zb3J0UGFyYW0sIHRoaXMuZmlsdGVyZWRdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbU29ydFBhcmFtLCBib29sZWFuXSkgPT4ge1xuICAgICAgICBjb25zdCBbc29ydFBhcmFtLCBmaWx0ZXJlZF0gPSBkYXRhO1xuICAgICAgICBpZiAoc29ydFBhcmFtICYmIGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHNvcnRQYXJhbS5hc2MgPyAnZmlsdGVyU29ydFVwQ29sb3InIDogJ2ZpbHRlclNvcnREb3duQ29sb3InO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3J0UGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gc29ydFBhcmFtLmFzYyA/ICdzb3J0VXBDb2xvcicgOiAnc29ydERvd25Db2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuICdmaWx0ZXJDb2xvcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG4gICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmICghZW50cnkuaXNJbnRlcnNlY3RpbmcgJiYgdGhpcy5kcm9wRG93bk9wZW4pIHtcbiAgICAgICAgICB0aGlzLmRyb3BEb3duT3BlbiA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIHtcbiAgICAgIHJvb3Q6IHRoaXMuX3N2Yy5nZXRUYWJsZUVsZW1lbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSxcbiAgICAgIHRocmVzaG9sZDogWzFdXG4gICAgfSk7XG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICByZXNpemVTdGFydChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IHJlY3QueDtcbiAgICB0aGlzLl9zdmMubG9ja1ByZXZpb3VzQ29sdW1ucyh0aGlzLmNvbHVtbiwgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHJlc2l6ZVByb2Nlc3MoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhcnRQb3NpdGlvbiAmJiBldmVudC5wYWdlWCA+IDApIHtcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fc3RhcnRQb3NpdGlvbjtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N2Yy5yZXNpemVDb2x1bW4oXG4gICAgICAgICAgbmV3IENvbHVtblJlc2l6ZUV2ZW50KHRoaXMuY29sdW1uLCBldmVudC5wYWdlWCAtIHBvc2l0aW9uKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9hcHAudGljaygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVzaXplRW5kKCkge1xuICAgIHRoaXMuX3N0YXJ0UG9zaXRpb24gPSBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93IHJvd19hdXRvXCI+XG4gIDx0ZXRhLWRyb3Bkb3duIFthdXRvQ2xvc2VJZ25vcmVdPVwiWydlbnRlcicsICdpbnNpZGUnXVwiXG4gICAgW3ZlcnRpY2FsQWxpZ25dPVwidmVydGljYWxBbGlnbi5hdXRvXCJcbiAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgIFsob3BlbildPVwiZHJvcERvd25PcGVuXCJcbiAgICBbYWxpZ25dPVwiYWxpZ24uYXV0b1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICBbY2xhc3MudGFibGUtaGVhZF9fY2VsbF9fbWVudV9vcGVuXT1cImRyb3BEb3duT3BlblwiXG4gICAgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG8ganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxkaXYgdGV0YURyb3Bkb3duSGVhZFxuICAgICAgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgICBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3dyYXBwZXJcIlxuICAgICAgKGRyYWdzdGFydCk9XCJkcmFnc3RhcnQoJGV2ZW50KVwiXG4gICAgICBbbmdDbGFzc109XCJjb2x1bW4uaGVhZENlbGxDbGFzc1wiPlxuICAgICAgPHRldGEtaGVhZC1jZWxsLWhvc3QgW2NvbHVtbl09XCJjb2x1bW5cIiBbY29sdW1uc109XCJjb2x1bW5zIHwgYXN5bmNcIiBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWhlYWQtY2VsbC1ob3N0PlxuICAgICAgQGlmIChpY29uTmFtZSB8IGFzeW5jOyBhcyBpY29uKSB7XG4gICAgICAgIDx0ZXRhLWljb25cbiAgICAgICAgICBbcGFsZXR0ZV09XCIndGV4dCdcIlxuICAgICAgICBbbmFtZV09XCJpY29uXCI+PC90ZXRhLWljb24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmIChzaG93SGVhZENlbGxNZW51KSB7XG4gICAgICA8dGV0YS1oZWFkLWNlbGwtZHJvcGRvd24gdGV0YURyb3Bkb3duQ29udGVudFxuICAgICAgICBbdGFiVGVtcGxhdGVzXT1cInRhYlRlbXBsYXRlc1wiXG4gICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiXG4gICAgICAgIFtzdGF0ZV09XCJzdGF0ZSB8IGFzeW5jXCJcbiAgICAgIFsoZHJvcERvd25PcGVuKV09XCJkcm9wRG93bk9wZW5cIj48L3RldGEtaGVhZC1jZWxsLWRyb3Bkb3duPlxuICAgIH1cbiAgPC90ZXRhLWRyb3Bkb3duPlxuICBAaWYgKHNob3dEcmFnKSB7XG4gICAgPGRpdiBjbGFzcz1cImRyb3AtYXJlYVwiXG4gICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICBbY2xhc3MuZHJvcC1hcmVhX2xlZnRdPVwic2hvd0RyYWcgPT09ICdsZWZ0J1wiXG4gICAgICBbY2xhc3MuZHJvcC1hcmVhX3JpZ2h0XT1cInNob3dEcmFnID09PSAncmlnaHQnXCJcbiAgICA+PC9kaXY+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3Jlc2l6ZVwiXG4gIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgKGRyYWdzdGFydCk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAoZHJhZyk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICBbdGV0YVJlc2l6ZURyYWddPVwiJ3ZlcnRpY2FsJ1wiXG4gIChyZXNpemVTdGFydCk9XCJyZXNpemVTdGFydCgkZXZlbnQpXCJcbiAgKHJlc2l6ZVByb2Nlc3MpPVwicmVzaXplUHJvY2VzcygkZXZlbnQpXCJcbiAgKHJlc2l6ZUVuZCk9XCJyZXNpemVFbmQoKVwiPlxuICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fcmVzaXplX2RyYWdcIj48L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNtYWluVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtbWFpbi1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgW2Nsb3NlXT1cImNsb3NlXCJcbiAgW2hlYWRDZWxsRWxlbWVudFJlZl09XCJlbGVtZW50UmVmXCI+PC90ZXRhLW1haW4tZHJvcGRvd24tdGFiPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZmlsdGVyVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtZmlsdGVyLWRyb3Bkb3duLXRhYiBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWZpbHRlci1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNjb2x1bW5zVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgbGV0LWNsb3NlPVwiY2xvc2VcIj5cbiAgPHRldGEtdmlzaWJpbGl0eS1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgW2Nsb3NlXT1cImNsb3NlXCJcbiAgW2RhdGFdPVwiZGF0YVwiPjwvdGV0YS12aXNpYmlsaXR5LWRyb3Bkb3duLXRhYj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvdGFibGUvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3RhYmxlL2hlYWQtY2VsbC9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlFQUF5RSxDQUFDO0FBQ3pILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7QUF1Qi9FLE1BQU0sT0FBTyxpQkFBaUI7SUF3QjVCLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU87WUFDTDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQzNCLEtBQUssRUFBRSxFQUFFO2dCQUNULE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO2FBQ3BCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjO2dCQUM3QixLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVO2FBQ3ZDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUM5QixLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTthQUNwQjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzFELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7WUFDN0MsQ0FBQztZQUNELE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUcsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFJRCxZQUNVLElBQXFCLEVBQ3JCLElBQW9CLEVBQ3BCLFdBQXVCLEVBQ3ZCLElBQXVCO1FBSHZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBL0RqQyxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBT2QsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsYUFBUSxHQUE0QixJQUFJLENBQUM7UUFHakMsV0FBTSxHQUFHLElBQUksQ0FBQztJQW9EbkIsQ0FBQztJQUVKLFNBQVMsQ0FBQyxLQUFnQjtRQUN4QixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVzQyxTQUFTO1FBQzlDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRXFDLFNBQVMsQ0FBQyxLQUFnQjtRQUM5RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDeEYsQ0FBQztJQUNILENBQUM7SUFFc0MsU0FBUyxDQUFDLEtBQWdCO1FBQy9ELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRW9DLE9BQU87UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVpQyxJQUFJLENBQUMsS0FBZ0I7UUFDckQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakUsR0FBRyxDQUFDLENBQUMsSUFBMEIsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ25DLElBQUksU0FBUyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7WUFDM0QsQ0FBQztZQUNELElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG9CQUFvQixDQUN0QyxDQUFDLE9BQW9DLEVBQUUsRUFBRTtZQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7b0JBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzVCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFDRDtZQUNFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUMvRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDZixDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFpQjtRQUM3QixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3JDLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDbkYsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7OEdBeEtVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHN2QkMxRDlCLDJ1RkFpR0EsbU5EckRJLGlCQUFpQixrRkFDakIscUJBQXFCLCtEQUNyQixPQUFPLG9GQUNQLHFCQUFxQix1R0FDckIsYUFBYSxvR0FDYix5QkFBeUIscUxBQ3pCLHdCQUF3QixrRUFDeEIsbUJBQW1CLGlKQUNuQix3QkFBd0Isa0pBQ3hCLDBCQUEwQiw4SEFDMUIsOEJBQThCLDZIQUM5QixTQUFTOzsyRkFHQSxpQkFBaUI7a0JBckI3QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsT0FBTzt3QkFDUCxxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUN4QiwwQkFBMEI7d0JBQzFCLDhCQUE4Qjt3QkFDOUIsU0FBUztxQkFDVjt1S0FHUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFVTixZQUFZO3NCQURYLFdBQVc7dUJBQUMsK0JBQStCO2dCQVFDLFlBQVk7c0JBQXhELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSSxjQUFjO3NCQUE1RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRyxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkF3RFAsU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUMsU0FBUztzQkFBOUMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBT0csU0FBUztzQkFBL0MsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBS0EsT0FBTztzQkFBM0MsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUQsSUFBSTtzQkFBckMsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5pbXBvcnQgeyBDb2x1bW5SZXNpemVFdmVudCB9IGZyb20gJy4uL2NvbnRyYWN0L2NvbHVtbi1yZXNpemUtZXZlbnQnO1xuaW1wb3J0IHsgRmlsdGVyU3RhdGUgfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3QvZmlsdGVyLXN0YXRlJztcbmltcG9ydCB7IFRhYmxlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvdGFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTb3J0UGFyYW0gfSBmcm9tICcuLi8uLi9maWx0ZXIvY29udGFyY3Qvc29ydC1wYXJhbSc7XG5pbXBvcnQgeyBTdGF0ZVV0aWwgfSBmcm9tICcuLi91dGlsL3N0YXRlLXV0aWwnO1xuaW1wb3J0IHsgVmVydGljYWxBbGlnbiB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9lbnVtL3ZlcnRpY2FsLWFsaWduLmVudW0nO1xuaW1wb3J0IHsgQWxpZ24gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhlYWREcm9wZG93blRhYiB9IGZyb20gJy4uL2NvbnRyYWN0L2hlYWQtZHJvcGRvd24tdGFiJztcbmltcG9ydCB7IFZpc2liaWxpdHlEcm9wZG93blRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLWhlYWQvdmlzaWJpbGl0eS1kcm9wZG93bi10YWIvdmlzaWJpbGl0eS1kcm9wZG93bi10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlckRyb3Bkb3duVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtaGVhZC9maWx0ZXItZHJvcGRvd24tdGFiL2ZpbHRlci1kcm9wZG93bi10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IE1haW5Ecm9wZG93blRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLWhlYWQvbWFpbi1kcm9wZG93bi10YWIvbWFpbi1kcm9wZG93bi10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc2l6ZURyYWdEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvcmVzaXplLWRyYWcvcmVzaXplLWRyYWcuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEhlYWRDZWxsRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9oZWFkLWNlbGwtZHJvcGRvd24vaGVhZC1jZWxsLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRDZWxsSG9zdENvbXBvbmVudCB9IGZyb20gJy4uL2hlYWQtY2VsbC1ob3N0L2hlYWQtY2VsbC1ob3N0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRHJvcGRvd25IZWFkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZHJvcGRvd24vZHJvcGRvd24taGVhZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9kcm9wZG93bi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWhlYWQtY2VsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkLWNlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkLWNlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEcm9wZG93bkNvbXBvbmVudCxcbiAgICBEcm9wZG93bkhlYWREaXJlY3RpdmUsXG4gICAgTmdDbGFzcyxcbiAgICBIZWFkQ2VsbEhvc3RDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBIZWFkQ2VsbERyb3Bkb3duQ29tcG9uZW50LFxuICAgIERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSxcbiAgICBSZXNpemVEcmFnRGlyZWN0aXZlLFxuICAgIE1haW5Ecm9wZG93blRhYkNvbXBvbmVudCxcbiAgICBGaWx0ZXJEcm9wZG93blRhYkNvbXBvbmVudCxcbiAgICBWaXNpYmlsaXR5RHJvcGRvd25UYWJDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkQ2VsbENvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgQElucHV0KCkgc2hvd0hlYWRDZWxsTWVudTogYm9vbGVhbjtcbiAgQElucHV0KCkgZGF0YTogVFtdO1xuXG4gIHZlcnRpY2FsQWxpZ24gPSBWZXJ0aWNhbEFsaWduO1xuICBhbGlnbiA9IEFsaWduO1xuICBzdGF0ZTogT2JzZXJ2YWJsZTxGaWx0ZXJTdGF0ZT47XG4gIGNvbHVtbnM6IE9ic2VydmFibGU8VGFibGVDb2x1bW5bXT47XG4gIGZpbHRlcmVkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzb3J0UGFyYW06IE9ic2VydmFibGU8U29ydFBhcmFtPjtcbiAgaWNvbk5hbWU6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50YWJsZS1oZWFkX19jZWxsX2FjdGl2ZScpXG4gIGRyb3BEb3duT3BlbiA9IGZhbHNlO1xuICBzaG93RHJhZzogJ2xlZnQnIHwgJ3JpZ2h0JyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlY3Q6IGFueTtcblxuICBwcml2YXRlIF9hbGl2ZSA9IHRydWU7XG4gIHByaXZhdGUgX3N0YXJ0UG9zaXRpb246IG51bWJlcjtcblxuICBAVmlld0NoaWxkKCdtYWluVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBtYWluVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlclRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgZmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2NvbHVtbnNUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pIGNvbHVtbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBnZXQgZGVmYXVsdFRlbXBsYXRlcygpOiBIZWFkRHJvcGRvd25UYWJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgaWNvbjogJ21lbnUnLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5tYWluVGVtcGxhdGUsXG4gICAgICAgIG9yZGVyOiAxMCxcbiAgICAgICAgc2hvd1RhYjogKCkgPT4gdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdmaWx0ZXInLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5maWx0ZXJUZW1wbGF0ZSxcbiAgICAgICAgb3JkZXI6IDIwLFxuICAgICAgICBzaG93VGFiOiAoY29sdW1uKSA9PiBjb2x1bW4uZmlsdGVyYWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGljb246ICdleWUnLFxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5jb2x1bW5zVGVtcGxhdGUsXG4gICAgICAgIG9yZGVyOiAzMCxcbiAgICAgICAgc2hvd1RhYjogKCkgPT4gdHJ1ZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIGdldCBlbGVtZW50UmVmKCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICB9XG5cbiAgZ2V0IHRhYlRlbXBsYXRlcygpIHtcbiAgICBpZiAodGhpcy5jb2x1bW4/LmhlYWREcm9wZG93bkNvbmZpZyAmJiB0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFicz8ubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuY29sdW1uLmhlYWREcm9wZG93bkNvbmZpZy5zdHJhdGVneSA9PT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFicztcbiAgICAgIH1cbiAgICAgIHJldHVybiBbLi4udGhpcy5kZWZhdWx0VGVtcGxhdGVzLCAuLi50aGlzLmNvbHVtbi5oZWFkRHJvcGRvd25Db25maWcudGFic10uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRlZmF1bHRUZW1wbGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdmM6IFRhYmxlU2VydmljZTxUPixcbiAgICBwcml2YXRlIF9hcHA6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgZHJhZ3N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsICdtb3ZlJyk7XG4gICAgfVxuICAgIHRoaXMuX3N2Yy5kcmFnU3RhcnQodGhpcy5jb2x1bW4pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSkgZHJhZ2VudGVyKCk6IHZvaWQge1xuICAgIHRoaXMucmVjdCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSkgYWxsb3dEcm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLnJlY3QgJiYgdGhpcy5fc3ZjLmRyYWdTb3VyY2UpIHtcbiAgICAgIHRoaXMuc2hvd0RyYWcgPSBldmVudC5jbGllbnRYID49IHRoaXMucmVjdC54ICsgdGhpcy5yZWN0LndpZHRoIC8gMiA/ICdyaWdodCcgOiAnbGVmdCc7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSkgZHJhZ2xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc2hvd0RyYWcgPSBudWxsO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VuZCcsIFsnJGV2ZW50J10pIGRyYWdlbmQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RHJhZyA9IG51bGw7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSkgZHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbW92ZSA9IGV2ZW50LmRhdGFUcmFuc2ZlciAmJiBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgndGV4dCcpO1xuICAgIGlmIChtb3ZlID09PSAnbW92ZScpIHtcbiAgICAgIHRoaXMuX3N2Yy5yZW9yZGVyQ29sdW1uKHRoaXMuY29sdW1uLCB0aGlzLnNob3dEcmFnID09PSAnbGVmdCcpO1xuICAgIH1cbiAgICB0aGlzLnNob3dEcmFnID0gbnVsbDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuX3N2Yy5jb2x1bW5zO1xuICAgIHRoaXMuc3RhdGUgPSB0aGlzLl9zdmMuc3RhdGU7XG4gICAgdGhpcy5zb3J0UGFyYW0gPSB0aGlzLnN0YXRlLnBpcGUobWFwKChfKSA9PiBTdGF0ZVV0aWwuZ2V0U29ydFN0YXRlKF8sIHRoaXMuY29sdW1uKSkpO1xuICAgIHRoaXMuZmlsdGVyZWQgPSB0aGlzLnN0YXRlLnBpcGUobWFwKChfKSA9PiBTdGF0ZVV0aWwuaXNDb2x1bW5GaWx0ZXJlZChfLCB0aGlzLmNvbHVtbikpKTtcbiAgICB0aGlzLmljb25OYW1lID0gY29tYmluZUxhdGVzdChbdGhpcy5zb3J0UGFyYW0sIHRoaXMuZmlsdGVyZWRdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbU29ydFBhcmFtLCBib29sZWFuXSkgPT4ge1xuICAgICAgICBjb25zdCBbc29ydFBhcmFtLCBmaWx0ZXJlZF0gPSBkYXRhO1xuICAgICAgICBpZiAoc29ydFBhcmFtICYmIGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuIHNvcnRQYXJhbS5hc2MgPyAnZmlsdGVyU29ydFVwJyA6ICdmaWx0ZXJTb3J0RG93bic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvcnRQYXJhbSkge1xuICAgICAgICAgIHJldHVybiBzb3J0UGFyYW0uYXNjID8gJ2Fycm93VXAnIDogJ2Fycm93RG93bic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcmVkKSB7XG4gICAgICAgICAgcmV0dXJuICdmaWx0ZXInO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICAoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICBpZiAoIWVudHJ5LmlzSW50ZXJzZWN0aW5nICYmIHRoaXMuZHJvcERvd25PcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3BEb3duT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcm9vdDogdGhpcy5fc3ZjLmdldFRhYmxlRWxlbWVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICB0aHJlc2hvbGQ6IFsxXSxcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWxpdmUgPSBmYWxzZTtcbiAgICB0aGlzLm9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcmVzaXplU3RhcnQoKTogdm9pZCB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gcmVjdC54O1xuICAgIHRoaXMuX3N2Yy5sb2NrUHJldmlvdXNDb2x1bW5zKHRoaXMuY29sdW1uLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcmVzaXplUHJvY2VzcyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGFydFBvc2l0aW9uICYmIGV2ZW50LnBhZ2VYID4gMCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9zdGFydFBvc2l0aW9uO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc3ZjLnJlc2l6ZUNvbHVtbihuZXcgQ29sdW1uUmVzaXplRXZlbnQodGhpcy5jb2x1bW4sIGV2ZW50LnBhZ2VYIC0gcG9zaXRpb24pKTtcbiAgICAgICAgdGhpcy5fYXBwLnRpY2soKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlc2l6ZUVuZCgpIHtcbiAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gbnVsbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJvdyByb3dfYXV0b1wiPlxuICA8dGV0YS1kcm9wZG93blxuICAgIFthdXRvQ2xvc2VJZ25vcmVdPVwiWydlbnRlcicsICdpbnNpZGUnXVwiXG4gICAgW3ZlcnRpY2FsQWxpZ25dPVwidmVydGljYWxBbGlnbi5hdXRvXCJcbiAgICBbYXBwZW5kVG9Cb2R5XT1cInRydWVcIlxuICAgIFsob3BlbildPVwiZHJvcERvd25PcGVuXCJcbiAgICBbYWxpZ25dPVwiYWxpZ24uYXV0b1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICBbY2xhc3MudGFibGUtaGVhZF9fY2VsbF9fbWVudV9vcGVuXT1cImRyb3BEb3duT3BlblwiXG4gICAgY2xhc3M9XCJjb2x1bW4gY29sdW1uX2F1dG8ganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gID5cbiAgICA8ZGl2XG4gICAgICB0ZXRhRHJvcGRvd25IZWFkXG4gICAgICBkcmFnZ2FibGU9XCJ0cnVlXCJcbiAgICAgIGNsYXNzPVwidGFibGUtaGVhZF9fY2VsbF9fd3JhcHBlclwiXG4gICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdzdGFydCgkZXZlbnQpXCJcbiAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi5oZWFkQ2VsbENsYXNzXCJcbiAgICA+XG4gICAgICA8dGV0YS1oZWFkLWNlbGwtaG9zdCBbY29sdW1uXT1cImNvbHVtblwiIFtjb2x1bW5zXT1cImNvbHVtbnMgfCBhc3luY1wiIFtkYXRhXT1cImRhdGFcIj48L3RldGEtaGVhZC1jZWxsLWhvc3Q+XG4gICAgICBAaWYgKGljb25OYW1lIHwgYXN5bmM7IGFzIGljb24pIHtcbiAgICAgIDx0ZXRhLWljb24gW3BhbGV0dGVdPVwiJ3RleHQnXCIgW25hbWVdPVwiaWNvblwiPjwvdGV0YS1pY29uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIEBpZiAoc2hvd0hlYWRDZWxsTWVudSkge1xuICAgIDx0ZXRhLWhlYWQtY2VsbC1kcm9wZG93blxuICAgICAgdGV0YURyb3Bkb3duQ29udGVudFxuICAgICAgW3RhYlRlbXBsYXRlc109XCJ0YWJUZW1wbGF0ZXNcIlxuICAgICAgW2RhdGFdPVwiZGF0YVwiXG4gICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zIHwgYXN5bmNcIlxuICAgICAgW3N0YXRlXT1cInN0YXRlIHwgYXN5bmNcIlxuICAgICAgWyhkcm9wRG93bk9wZW4pXT1cImRyb3BEb3duT3BlblwiXG4gICAgPjwvdGV0YS1oZWFkLWNlbGwtZHJvcGRvd24+XG4gICAgfVxuICA8L3RldGEtZHJvcGRvd24+XG4gIEBpZiAoc2hvd0RyYWcpIHtcbiAgPGRpdlxuICAgIGNsYXNzPVwiZHJvcC1hcmVhXCJcbiAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgW2NsYXNzLmRyb3AtYXJlYV9sZWZ0XT1cInNob3dEcmFnID09PSAnbGVmdCdcIlxuICAgIFtjbGFzcy5kcm9wLWFyZWFfcmlnaHRdPVwic2hvd0RyYWcgPT09ICdyaWdodCdcIlxuICA+PC9kaXY+XG4gIH1cbjwvZGl2PlxuPGRpdlxuICBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3Jlc2l6ZVwiXG4gIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgKGRyYWdzdGFydCk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgKGRyYWcpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gIFt0ZXRhUmVzaXplRHJhZ109XCIndmVydGljYWwnXCJcbiAgKHJlc2l6ZVN0YXJ0KT1cInJlc2l6ZVN0YXJ0KClcIlxuICAocmVzaXplUHJvY2Vzcyk9XCJyZXNpemVQcm9jZXNzKCRldmVudClcIlxuICAocmVzaXplRW5kKT1cInJlc2l6ZUVuZCgpXCJcbj5cbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRfX2NlbGxfX3Jlc2l6ZV9kcmFnXCI+PC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZVxuICAjbWFpblRlbXBsYXRlXG4gIGxldC1jb2x1bW49XCJjb2x1bW5cIlxuICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICBsZXQtZGF0YT1cImRhdGFcIlxuICBsZXQtc3RhdGU9XCJzdGF0ZVwiXG4gIGxldC1jbG9zZT1cImNsb3NlXCJcbj5cbiAgPHRldGEtbWFpbi1kcm9wZG93bi10YWJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICBbY2xvc2VdPVwiY2xvc2VcIlxuICAgIFtoZWFkQ2VsbEVsZW1lbnRSZWZdPVwiZWxlbWVudFJlZlwiXG4gID48L3RldGEtbWFpbi1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlXG4gICNmaWx0ZXJUZW1wbGF0ZVxuICBsZXQtY29sdW1uPVwiY29sdW1uXCJcbiAgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCJcbiAgbGV0LWRhdGE9XCJkYXRhXCJcbiAgbGV0LXN0YXRlPVwic3RhdGVcIlxuICBsZXQtY2xvc2U9XCJjbG9zZVwiXG4+XG4gIDx0ZXRhLWZpbHRlci1kcm9wZG93bi10YWIgW2NvbHVtbl09XCJjb2x1bW5cIiBbc3RhdGVdPVwic3RhdGVcIiBbY2xvc2VdPVwiY2xvc2VcIiBbZGF0YV09XCJkYXRhXCI+PC90ZXRhLWZpbHRlci1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlXG4gICNjb2x1bW5zVGVtcGxhdGVcbiAgbGV0LWNvbHVtbj1cImNvbHVtblwiXG4gIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXG4gIGxldC1kYXRhPVwiZGF0YVwiXG4gIGxldC1zdGF0ZT1cInN0YXRlXCJcbiAgbGV0LWNsb3NlPVwiY2xvc2VcIlxuPlxuICA8dGV0YS12aXNpYmlsaXR5LWRyb3Bkb3duLXRhYlxuICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgIFtjbG9zZV09XCJjbG9zZVwiXG4gICAgW2RhdGFdPVwiZGF0YVwiXG4gID48L3RldGEtdmlzaWJpbGl0eS1kcm9wZG93bi10YWI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { inject, InjectionToken } from
|
|
2
|
-
import { Observable, share } from
|
|
3
|
-
import { DOCUMENT } from
|
|
1
|
+
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
+
import { Observable, share } from 'rxjs';
|
|
3
|
+
import { DOCUMENT } from '@angular/common';
|
|
4
4
|
export const ANIMATION_FRAME = new InjectionToken('Shared Observable based on `window.requestAnimationFrame`', {
|
|
5
5
|
factory: () => {
|
|
6
6
|
const { requestAnimationFrame, cancelAnimationFrame } = inject(WINDOW);
|
|
7
|
-
const animationFrame$ = new Observable(subscriber => {
|
|
7
|
+
const animationFrame$ = new Observable((subscriber) => {
|
|
8
8
|
let id = NaN;
|
|
9
9
|
const callback = (timestamp) => {
|
|
10
10
|
subscriber.next(timestamp);
|
|
@@ -27,4 +27,4 @@ export const WINDOW = new InjectionToken('An abstraction over global window obje
|
|
|
27
27
|
return defaultView;
|
|
28
28
|
},
|
|
29
29
|
});
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWZyYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29ic2VydmFibGUvYW5pbWF0aW9uLWZyYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQy9DLDJEQUEyRCxFQUMzRDtJQUNFLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixNQUFNLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkUsTUFBTSxlQUFlLEdBQUcsSUFBSSxVQUFVLENBQXNCLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDekUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ2IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxTQUE4QixFQUFFLEVBQUU7Z0JBQ2xELFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzNCLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUM7WUFFRixFQUFFLEdBQUcscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFckMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1Ysb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YsQ0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksY0FBYyxDQUFTLDBDQUEwQyxFQUFFO0lBQzNGLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgQU5JTUFUSU9OX0ZSQU1FID0gbmV3IEluamVjdGlvblRva2VuPE9ic2VydmFibGU8RE9NSGlnaFJlc1RpbWVTdGFtcD4+KFxuICAnU2hhcmVkIE9ic2VydmFibGUgYmFzZWQgb24gYHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVgJyxcbiAge1xuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLCBjYW5jZWxBbmltYXRpb25GcmFtZSB9ID0gaW5qZWN0KFdJTkRPVyk7XG4gICAgICBjb25zdCBhbmltYXRpb25GcmFtZSQgPSBuZXcgT2JzZXJ2YWJsZTxET01IaWdoUmVzVGltZVN0YW1wPigoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICBsZXQgaWQgPSBOYU47XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrID0gKHRpbWVzdGFtcDogRE9NSGlnaFJlc1RpbWVTdGFtcCkgPT4ge1xuICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh0aW1lc3RhbXApO1xuICAgICAgICAgIGlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShpZCk7XG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGFuaW1hdGlvbkZyYW1lJC5waXBlKHNoYXJlKCkpO1xuICAgIH0sXG4gIH1cbik7XG5cbmV4cG9ydCBjb25zdCBXSU5ET1cgPSBuZXcgSW5qZWN0aW9uVG9rZW48V2luZG93PignQW4gYWJzdHJhY3Rpb24gb3ZlciBnbG9iYWwgd2luZG93IG9iamVjdCcsIHtcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIGNvbnN0IHsgZGVmYXVsdFZpZXcgfSA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICBpZiAoIWRlZmF1bHRWaWV3KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dpbmRvdyBpcyBub3QgYXZhaWxhYmxlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRWaWV3O1xuICB9LFxufSk7XG4iXX0=
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './animation-frame';
|
|
2
|
-
|
|
2
|
+
export * from './zone-observable';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNlcnZhYmxlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbmltYXRpb24tZnJhbWUnO1xuZXhwb3J0ICogZnJvbSAnLi96b25lLW9ic2VydmFibGUnOyJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Observable, pipe } from 'rxjs';
|
|
2
|
+
export function tetaZoneFull(ngZone) {
|
|
3
|
+
return source => new Observable(subscriber => source.subscribe({
|
|
4
|
+
next: value => ngZone.run(() => subscriber.next(value)),
|
|
5
|
+
error: (error) => ngZone.run(() => subscriber.error(error)),
|
|
6
|
+
complete: () => ngZone.run(() => subscriber.complete()),
|
|
7
|
+
}));
|
|
8
|
+
}
|
|
9
|
+
export function tetaZoneFree(ngZone) {
|
|
10
|
+
return source => new Observable(subscriber => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
|
|
11
|
+
}
|
|
12
|
+
export function tetaZoneOptimized(ngZone) {
|
|
13
|
+
return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS1vYnNlcnZhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29ic2VydmFibGUvem9uZS1vYnNlcnZhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBMkIsVUFBVSxFQUFFLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoRSxNQUFNLFVBQVUsWUFBWSxDQUFJLE1BQWM7SUFDNUMsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUNkLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQzFCLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDZixJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsS0FBSyxFQUFFLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ3hELENBQUMsQ0FDSCxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUksTUFBYztJQUM1QyxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQ2QsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDN0QsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUksTUFBYztJQUNqRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Tmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlLCBwaXBlfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRldGFab25lRnVsbDxUPihuZ1pvbmU6IE5nWm9uZSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBzb3VyY2UgPT5cbiAgICBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+XG4gICAgICBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdmFsdWUgPT4gbmdab25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLm5leHQodmFsdWUpKSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogdW5rbm93bikgPT4gbmdab25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLmVycm9yKGVycm9yKSksXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiBuZ1pvbmUucnVuKCgpID0+IHN1YnNjcmliZXIuY29tcGxldGUoKSksXG4gICAgICB9KSxcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGV0YVpvbmVGcmVlPFQ+KG5nWm9uZTogTmdab25lKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIHNvdXJjZSA9PlxuICAgIG5ldyBPYnNlcnZhYmxlKHN1YnNjcmliZXIgPT5cbiAgICAgIG5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBzb3VyY2Uuc3Vic2NyaWJlKHN1YnNjcmliZXIpKSxcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGV0YVpvbmVPcHRpbWl6ZWQ8VD4obmdab25lOiBOZ1pvbmUpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gcGlwZSh0ZXRhWm9uZUZyZWUobmdab25lKSwgdGV0YVpvbmVGdWxsKG5nWm9uZSkpO1xufVxuIl19
|
|
@@ -9,7 +9,7 @@ import * as i2 from '@angular/forms';
|
|
|
9
9
|
import { NG_VALUE_ACCESSOR, FormsModule, UntypedFormControl, UntypedFormGroup, Validators, ControlContainer, NgForm, NgModelGroup, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
10
10
|
import { maskitoDateTimeOptionsGenerator, maskitoDateOptionsGenerator, maskitoDateRangeOptionsGenerator } from '@maskito/kit';
|
|
11
11
|
import dayjs from 'dayjs';
|
|
12
|
-
import { BehaviorSubject, ReplaySubject, combineLatest, takeWhile, filter, map as map$1, lastValueFrom, take, shareReplay, Subject, animationFrameScheduler, fromEvent, tap, merge, Observable, share } from 'rxjs';
|
|
12
|
+
import { BehaviorSubject, ReplaySubject, combineLatest, takeWhile, filter, map as map$1, lastValueFrom, take, shareReplay, Subject, animationFrameScheduler, fromEvent, tap, merge, Observable, share, pipe } from 'rxjs';
|
|
13
13
|
import * as i4 from '@maskito/angular';
|
|
14
14
|
import { MaskitoModule } from '@maskito/angular';
|
|
15
15
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
@@ -9446,17 +9446,19 @@ class HeadCellComponent {
|
|
|
9446
9446
|
template: this.mainTemplate,
|
|
9447
9447
|
order: 10,
|
|
9448
9448
|
showTab: () => true,
|
|
9449
|
-
},
|
|
9449
|
+
},
|
|
9450
|
+
{
|
|
9450
9451
|
icon: 'filter',
|
|
9451
9452
|
template: this.filterTemplate,
|
|
9452
9453
|
order: 20,
|
|
9453
9454
|
showTab: (column) => column.filterable,
|
|
9454
|
-
},
|
|
9455
|
+
},
|
|
9456
|
+
{
|
|
9455
9457
|
icon: 'eye',
|
|
9456
9458
|
template: this.columnsTemplate,
|
|
9457
9459
|
order: 30,
|
|
9458
9460
|
showTab: () => true,
|
|
9459
|
-
}
|
|
9461
|
+
},
|
|
9460
9462
|
];
|
|
9461
9463
|
}
|
|
9462
9464
|
get elementRef() {
|
|
@@ -9467,8 +9469,7 @@ class HeadCellComponent {
|
|
|
9467
9469
|
if (this.column.headDropdownConfig.strategy === 'replace') {
|
|
9468
9470
|
return this.column.headDropdownConfig.tabs;
|
|
9469
9471
|
}
|
|
9470
|
-
return [...this.defaultTemplates, ...this.column.headDropdownConfig.tabs]
|
|
9471
|
-
.sort((a, b) => a.order - b.order);
|
|
9472
|
+
return [...this.defaultTemplates, ...this.column.headDropdownConfig.tabs].sort((a, b) => a.order - b.order);
|
|
9472
9473
|
}
|
|
9473
9474
|
return this.defaultTemplates;
|
|
9474
9475
|
}
|
|
@@ -9489,21 +9490,20 @@ class HeadCellComponent {
|
|
|
9489
9490
|
}
|
|
9490
9491
|
this._svc.dragStart(this.column);
|
|
9491
9492
|
}
|
|
9492
|
-
dragenter(
|
|
9493
|
+
dragenter() {
|
|
9493
9494
|
this.rect = this._elementRef.nativeElement.getBoundingClientRect();
|
|
9494
9495
|
}
|
|
9495
9496
|
allowDrop(event) {
|
|
9496
9497
|
event.preventDefault();
|
|
9497
9498
|
if (this.rect && this._svc.dragSource) {
|
|
9498
|
-
this.showDrag =
|
|
9499
|
-
event.clientX >= this.rect.x + this.rect.width / 2 ? 'right' : 'left';
|
|
9499
|
+
this.showDrag = event.clientX >= this.rect.x + this.rect.width / 2 ? 'right' : 'left';
|
|
9500
9500
|
}
|
|
9501
9501
|
}
|
|
9502
9502
|
dragleave(event) {
|
|
9503
9503
|
event.preventDefault();
|
|
9504
9504
|
this.showDrag = null;
|
|
9505
9505
|
}
|
|
9506
|
-
dragend(
|
|
9506
|
+
dragend() {
|
|
9507
9507
|
this.showDrag = null;
|
|
9508
9508
|
}
|
|
9509
9509
|
drop(event) {
|
|
@@ -9521,13 +9521,13 @@ class HeadCellComponent {
|
|
|
9521
9521
|
this.iconName = combineLatest([this.sortParam, this.filtered]).pipe(map((data) => {
|
|
9522
9522
|
const [sortParam, filtered] = data;
|
|
9523
9523
|
if (sortParam && filtered) {
|
|
9524
|
-
return sortParam.asc ? '
|
|
9524
|
+
return sortParam.asc ? 'filterSortUp' : 'filterSortDown';
|
|
9525
9525
|
}
|
|
9526
9526
|
if (sortParam) {
|
|
9527
|
-
return sortParam.asc ? '
|
|
9527
|
+
return sortParam.asc ? 'arrowUp' : 'arrowDown';
|
|
9528
9528
|
}
|
|
9529
9529
|
if (filtered) {
|
|
9530
|
-
return '
|
|
9530
|
+
return 'filter';
|
|
9531
9531
|
}
|
|
9532
9532
|
return '';
|
|
9533
9533
|
}));
|
|
@@ -9540,7 +9540,7 @@ class HeadCellComponent {
|
|
|
9540
9540
|
});
|
|
9541
9541
|
}, {
|
|
9542
9542
|
root: this._svc.getTableElement(this._elementRef.nativeElement),
|
|
9543
|
-
threshold: [1]
|
|
9543
|
+
threshold: [1],
|
|
9544
9544
|
});
|
|
9545
9545
|
this.observer.observe(this._elementRef.nativeElement);
|
|
9546
9546
|
}
|
|
@@ -9549,7 +9549,7 @@ class HeadCellComponent {
|
|
|
9549
9549
|
this.observer.unobserve(this._elementRef.nativeElement);
|
|
9550
9550
|
this.observer.disconnect();
|
|
9551
9551
|
}
|
|
9552
|
-
resizeStart(
|
|
9552
|
+
resizeStart() {
|
|
9553
9553
|
const rect = this._elementRef.nativeElement.getBoundingClientRect();
|
|
9554
9554
|
this._startPosition = rect.x;
|
|
9555
9555
|
this._svc.lockPreviousColumns(this.column, this._elementRef.nativeElement);
|
|
@@ -9567,7 +9567,7 @@ class HeadCellComponent {
|
|
|
9567
9567
|
this._startPosition = null;
|
|
9568
9568
|
}
|
|
9569
9569
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HeadCellComponent, deps: [{ token: TableService }, { token: i0.ApplicationRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9570
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: HeadCellComponent, isStandalone: true, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown
|
|
9570
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: HeadCellComponent, isStandalone: true, selector: "teta-head-cell", inputs: { column: "column", showHeadCellMenu: "showHeadCellMenu", data: "data" }, host: { listeners: { "dragenter": "dragenter($event)", "dragover": "allowDrop($event)", "dragleave": "dragleave($event)", "dragend": "dragend($event)", "drop": "drop($event)" }, properties: { "class.table-head__cell_active": "this.dropDownOpen" } }, viewQueries: [{ propertyName: "mainTemplate", first: true, predicate: ["mainTemplate"], descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }, { propertyName: "columnsTemplate", first: true, predicate: ["columnsTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"], dependencies: [{ kind: "component", type: DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: HeadCellHostComponent, selector: "teta-head-cell-host", inputs: ["column", "columns", "data"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: HeadCellDropdownComponent, selector: "teta-head-cell-dropdown", inputs: ["columns", "column", "state", "data", "tabTemplates", "dropDownOpen"], outputs: ["dropDownOpenChange"] }, { kind: "directive", type: DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: ResizeDragDirective, selector: "[tetaResizeDrag]", inputs: ["tetaResizeDrag"], outputs: ["resizeStart", "resizeProcess", "resizeEnd"] }, { kind: "component", type: MainDropdownTabComponent, selector: "teta-main-dropdown-tab", inputs: ["columns", "column", "state", "data", "close", "headCellElementRef"] }, { kind: "component", type: FilterDropdownTabComponent, selector: "teta-filter-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "component", type: VisibilityDropdownTabComponent, selector: "teta-visibility-dropdown-tab", inputs: ["columns", "column", "state", "data", "close"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9571
9571
|
}
|
|
9572
9572
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: HeadCellComponent, decorators: [{
|
|
9573
9573
|
type: Component,
|
|
@@ -9584,7 +9584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
9584
9584
|
FilterDropdownTabComponent,
|
|
9585
9585
|
VisibilityDropdownTabComponent,
|
|
9586
9586
|
AsyncPipe,
|
|
9587
|
-
], template: "<div class=\"row row_auto\">\n <teta-dropdown
|
|
9587
|
+
], template: "<div class=\"row row_auto\">\n <teta-dropdown\n [autoCloseIgnore]=\"['enter', 'inside']\"\n [verticalAlign]=\"verticalAlign.auto\"\n [appendToBody]=\"true\"\n [(open)]=\"dropDownOpen\"\n [align]=\"align.auto\"\n (click)=\"$event.preventDefault()\"\n [class.table-head__cell__menu_open]=\"dropDownOpen\"\n class=\"column column_auto justify-content-center\"\n >\n <div\n tetaDropdownHead\n draggable=\"true\"\n class=\"table-head__cell__wrapper\"\n (dragstart)=\"dragstart($event)\"\n [ngClass]=\"column.headCellClass\"\n >\n <teta-head-cell-host [column]=\"column\" [columns]=\"columns | async\" [data]=\"data\"></teta-head-cell-host>\n @if (iconName | async; as icon) {\n <teta-icon [palette]=\"'text'\" [name]=\"icon\"></teta-icon>\n }\n </div>\n @if (showHeadCellMenu) {\n <teta-head-cell-dropdown\n tetaDropdownContent\n [tabTemplates]=\"tabTemplates\"\n [data]=\"data\"\n [column]=\"column\"\n [columns]=\"columns | async\"\n [state]=\"state | async\"\n [(dropDownOpen)]=\"dropDownOpen\"\n ></teta-head-cell-dropdown>\n }\n </teta-dropdown>\n @if (showDrag) {\n <div\n class=\"drop-area\"\n draggable=\"false\"\n [class.drop-area_left]=\"showDrag === 'left'\"\n [class.drop-area_right]=\"showDrag === 'right'\"\n ></div>\n }\n</div>\n<div\n class=\"table-head__cell__resize\"\n draggable=\"false\"\n (dragstart)=\"$event.preventDefault(); $event.stopPropagation()\"\n (drag)=\"$event.preventDefault(); $event.stopPropagation()\"\n [tetaResizeDrag]=\"'vertical'\"\n (resizeStart)=\"resizeStart()\"\n (resizeProcess)=\"resizeProcess($event)\"\n (resizeEnd)=\"resizeEnd()\"\n>\n <div class=\"table-head__cell__resize_drag\"></div>\n</div>\n<ng-template\n #mainTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-main-dropdown-tab\n [column]=\"column\"\n [state]=\"state\"\n [close]=\"close\"\n [headCellElementRef]=\"elementRef\"\n ></teta-main-dropdown-tab>\n</ng-template>\n<ng-template\n #filterTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-filter-dropdown-tab [column]=\"column\" [state]=\"state\" [close]=\"close\" [data]=\"data\"></teta-filter-dropdown-tab>\n</ng-template>\n<ng-template\n #columnsTemplate\n let-column=\"column\"\n let-columns=\"columns\"\n let-data=\"data\"\n let-state=\"state\"\n let-close=\"close\"\n>\n <teta-visibility-dropdown-tab\n [column]=\"column\"\n [columns]=\"columns\"\n [state]=\"state\"\n [close]=\"close\"\n [data]=\"data\"\n ></teta-visibility-dropdown-tab>\n</ng-template>\n", styles: [".drop-area{position:absolute;width:1px;background:var(--color-text-50);top:0;bottom:0;z-index:10}.drop-area_left{left:-1px}.drop-area_right{right:-1px}\n"] }]
|
|
9588
9588
|
}], ctorParameters: () => [{ type: TableService }, { type: i0.ApplicationRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { column: [{
|
|
9589
9589
|
type: Input
|
|
9590
9590
|
}], showHeadCellMenu: [{
|
|
@@ -11897,7 +11897,7 @@ const ruLocale = {
|
|
|
11897
11897
|
const ANIMATION_FRAME = new InjectionToken('Shared Observable based on `window.requestAnimationFrame`', {
|
|
11898
11898
|
factory: () => {
|
|
11899
11899
|
const { requestAnimationFrame, cancelAnimationFrame } = inject(WINDOW);
|
|
11900
|
-
const animationFrame$ = new Observable(subscriber => {
|
|
11900
|
+
const animationFrame$ = new Observable((subscriber) => {
|
|
11901
11901
|
let id = NaN;
|
|
11902
11902
|
const callback = (timestamp) => {
|
|
11903
11903
|
subscriber.next(timestamp);
|
|
@@ -11921,9 +11921,23 @@ const WINDOW = new InjectionToken('An abstraction over global window object', {
|
|
|
11921
11921
|
},
|
|
11922
11922
|
});
|
|
11923
11923
|
|
|
11924
|
+
function tetaZoneFull(ngZone) {
|
|
11925
|
+
return source => new Observable(subscriber => source.subscribe({
|
|
11926
|
+
next: value => ngZone.run(() => subscriber.next(value)),
|
|
11927
|
+
error: (error) => ngZone.run(() => subscriber.error(error)),
|
|
11928
|
+
complete: () => ngZone.run(() => subscriber.complete()),
|
|
11929
|
+
}));
|
|
11930
|
+
}
|
|
11931
|
+
function tetaZoneFree(ngZone) {
|
|
11932
|
+
return source => new Observable(subscriber => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
|
|
11933
|
+
}
|
|
11934
|
+
function tetaZoneOptimized(ngZone) {
|
|
11935
|
+
return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));
|
|
11936
|
+
}
|
|
11937
|
+
|
|
11924
11938
|
/**
|
|
11925
11939
|
* Generated bundle index. Do not edit.
|
|
11926
11940
|
*/
|
|
11927
11941
|
|
|
11928
|
-
export { ANIMATION_FRAME, AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AggregationType, Align, ArrayUtil, AutoPositionDirective, AutocompleteComponent, AvatarComponent, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, CHECKBOX_CONTROL_VALUE_ACCESSOR, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dOptions, CheckboxComponent, ClickOutsideDirective, ClickService, ColorInputComponent, ColumnReorderEvent, ColumnResizeEvent, ContextMenuDirective, CurrentModal, DATE_PICKER_CONTROL_VALUE_ACCESSOR, DATE_Range_CONTROL_VALUE_ACCESSOR, DateCalendarComponent, DateCellComponent, DateFilter, DateFilterComponent, DateFilterValue, DatePeriod, DatePickerComponent, DatePickerMode, DateRangeComponent, DateTimeCellComponent, DateUtil, DayModel, DelimiterComponent, DetailComponentBase, DialogComponent, DialogService, DisableControlDirective, DividerComponent, DomUtil, DragContainerDirective, DragContainerInstance, DragDirective, DragDropService, DragInstance, DragPlaceholderDirective, DragPreviewDirective, DragSortContainerDirective, DragSortItemDirective, DropdownComponent, DropdownContentDirective, DropdownDirective, DropdownHeadDirective, DynamicComponentService, DynamicContentBaseDirective, DynamicData, EditEvent, EditType, ExpandCardComponent, ExpandItemComponent, ExpandPanelComponent, ExpandPanelContentDirective, ExpandPanelHeadDirective, ExportType, FileItemComponent, FileUploadAreaComponent, FilterBase, FilterComponentBase, FilterHostComponent, FilterItem, FilterState, FilterType, FormGroupTitleComponent, FormsUtil, HeadCellComponentBase, HeadCellHostComponent, HighlightDirective, HintDirective, IconComponent, IconFileComponent, IconService, IconSpriteDirective, InputComponent, LetContext, LetDirective, ListCellComponent, ListFilter, ListFilterComponent, ListFilterType, LoaderDirective, Message, MessageComponent, MessageHostComponent, MessageService, ModalCloseReason, ModalContainerComponent, ModalInstance, ModalModule, ModalService, NoAutofillDirective, NumberPipe, NumericCellComponent, NumericFilter, NumericFilterComponent, NumericFilterValue, OnlyNumberDirective, OverlayContainerService, PagerComponent, PagerState, PagerUtil, PanelComponent, PopupContentComponent, PositionUtil, ProgressBarComponent, PropertyGridComponent, PropertyGridItemDescriptionDirective, PropertyGridModule, RadioButtonComponent, RadioComponent, RangeCalendarComponent, ResizeDragDirective, ResizePanelComponent, SLIDER_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, ScrollIntoViewDirective, ScrollableComponent, ScrollableDirective, SelectComponent, SelectOptionDirective, SelectType, SelectValueDirective, SidebarComponent, SidebarPosition, SortEvent, SortParam, StateUtil, StringCellComponent, StringFilter, StringFilterComponent, StringFilterType, StringUtil, SwitchButtonComponent, SwitchComponent, TOGGLE_CONTROL_VALUE_ACCESSOR, TabComponent, TabContentDirective, TabTitleDirective, TableBodyComponent, TableColumn, TableColumnStore, TableComponent, TableHeadComponent, TableRow, TableService, TableUtil, TabsComponent, TetaConfigService, TetaContentRef, TetaDatePipe, TetaSize, TetaTemplateDirective, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchService, ToggleComponent, ToolbarComponent, TooltipDirective, TreeComponent, TreeItemToggleComponent, TreeService, VerticalAlign, WINDOW, boolOrFuncCallback, enLocale, exportDomToImage, formatNumber, getCellComponent, getPrecision, isFunction, prependZero, ruLocale };
|
|
11942
|
+
export { ANIMATION_FRAME, AccordionComponent, AccordionContentDirective, AccordionHeadComponent, AccordionItemComponent, AggregationType, Align, ArrayUtil, AutoPositionDirective, AutocompleteComponent, AvatarComponent, BooleanCellComponent, BooleanFilter, BooleanFilterComponent, ButtonComponent, CHECKBOX_CONTROL_VALUE_ACCESSOR, CellComponent, CellComponentBase, CellHostComponent, Chart3dComponent, Chart3dOptions, CheckboxComponent, ClickOutsideDirective, ClickService, ColorInputComponent, ColumnReorderEvent, ColumnResizeEvent, ContextMenuDirective, CurrentModal, DATE_PICKER_CONTROL_VALUE_ACCESSOR, DATE_Range_CONTROL_VALUE_ACCESSOR, DateCalendarComponent, DateCellComponent, DateFilter, DateFilterComponent, DateFilterValue, DatePeriod, DatePickerComponent, DatePickerMode, DateRangeComponent, DateTimeCellComponent, DateUtil, DayModel, DelimiterComponent, DetailComponentBase, DialogComponent, DialogService, DisableControlDirective, DividerComponent, DomUtil, DragContainerDirective, DragContainerInstance, DragDirective, DragDropService, DragInstance, DragPlaceholderDirective, DragPreviewDirective, DragSortContainerDirective, DragSortItemDirective, DropdownComponent, DropdownContentDirective, DropdownDirective, DropdownHeadDirective, DynamicComponentService, DynamicContentBaseDirective, DynamicData, EditEvent, EditType, ExpandCardComponent, ExpandItemComponent, ExpandPanelComponent, ExpandPanelContentDirective, ExpandPanelHeadDirective, ExportType, FileItemComponent, FileUploadAreaComponent, FilterBase, FilterComponentBase, FilterHostComponent, FilterItem, FilterState, FilterType, FormGroupTitleComponent, FormsUtil, HeadCellComponentBase, HeadCellHostComponent, HighlightDirective, HintDirective, IconComponent, IconFileComponent, IconService, IconSpriteDirective, InputComponent, LetContext, LetDirective, ListCellComponent, ListFilter, ListFilterComponent, ListFilterType, LoaderDirective, Message, MessageComponent, MessageHostComponent, MessageService, ModalCloseReason, ModalContainerComponent, ModalInstance, ModalModule, ModalService, NoAutofillDirective, NumberPipe, NumericCellComponent, NumericFilter, NumericFilterComponent, NumericFilterValue, OnlyNumberDirective, OverlayContainerService, PagerComponent, PagerState, PagerUtil, PanelComponent, PopupContentComponent, PositionUtil, ProgressBarComponent, PropertyGridComponent, PropertyGridItemDescriptionDirective, PropertyGridModule, RadioButtonComponent, RadioComponent, RangeCalendarComponent, ResizeDragDirective, ResizePanelComponent, SLIDER_CONTROL_VALUE_ACCESSOR, SWITCH_CONTROL_VALUE_ACCESSOR, ScrollIntoViewDirective, ScrollableComponent, ScrollableDirective, SelectComponent, SelectOptionDirective, SelectType, SelectValueDirective, SidebarComponent, SidebarPosition, SortEvent, SortParam, StateUtil, StringCellComponent, StringFilter, StringFilterComponent, StringFilterType, StringUtil, SwitchButtonComponent, SwitchComponent, TOGGLE_CONTROL_VALUE_ACCESSOR, TabComponent, TabContentDirective, TabTitleDirective, TableBodyComponent, TableColumn, TableColumnStore, TableComponent, TableHeadComponent, TableRow, TableService, TableUtil, TabsComponent, TetaConfigService, TetaContentRef, TetaDatePipe, TetaSize, TetaTemplateDirective, TextFieldComponent, ThemeSwitchComponent, ThemeSwitchService, ToggleComponent, ToolbarComponent, TooltipDirective, TreeComponent, TreeItemToggleComponent, TreeService, VerticalAlign, WINDOW, boolOrFuncCallback, enLocale, exportDomToImage, formatNumber, getCellComponent, getPrecision, isFunction, prependZero, ruLocale, tetaZoneFree, tetaZoneFull, tetaZoneOptimized };
|
|
11929
11943
|
//# sourceMappingURL=tetacom-ng-components.mjs.map
|