@handsontable/angular-wrapper 0.0.0-next-c573c90-20260210 → 0.0.0-next-a4c3bb2-20260211
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/esm2022/lib/editor/custom-editor-placeholder.component.mjs +5 -8
- package/esm2022/lib/editor/hot-cell-editor.component.mjs +1 -2
- package/esm2022/lib/hot-table.component.mjs +4 -7
- package/esm2022/lib/hot-table.module.mjs +2 -2
- package/esm2022/lib/models/column-settings.mjs +1 -1
- package/esm2022/lib/renderer/hot-dynamic-renderer-component.service.mjs +10 -62
- package/esm2022/lib/services/hot-settings-resolver.service.mjs +17 -54
- package/esm2022/public-api.mjs +1 -4
- package/fesm2022/handsontable-angular-wrapper.mjs +126 -496
- package/fesm2022/handsontable-angular-wrapper.mjs.map +1 -1
- package/lib/editor/custom-editor-placeholder.component.d.ts +2 -4
- package/lib/editor/hot-cell-editor.component.d.ts +0 -1
- package/lib/hot-table.component.d.ts +2 -3
- package/lib/models/column-settings.d.ts +2 -7
- package/lib/renderer/hot-dynamic-renderer-component.service.d.ts +0 -19
- package/lib/services/hot-settings-resolver.service.d.ts +0 -3
- package/package.json +1 -1
- package/public-api.d.ts +0 -3
- package/esm2022/lib/editor/editor-factory-adapter.mjs +0 -140
- package/esm2022/lib/editor/hot-cell-editor-advanced.component.mjs +0 -92
- package/esm2022/lib/editor/models/factory-editor-properties.mjs +0 -2
- package/esm2022/lib/editor/models/keyboard-shortcut-config.mjs +0 -2
- package/esm2022/lib/renderer/hot-cell-renderer-advanced.component.mjs +0 -55
- package/lib/editor/editor-factory-adapter.d.ts +0 -13
- package/lib/editor/hot-cell-editor-advanced.component.d.ts +0 -74
- package/lib/editor/models/factory-editor-properties.d.ts +0 -24
- package/lib/editor/models/keyboard-shortcut-config.d.ts +0 -13
- package/lib/renderer/hot-cell-renderer-advanced.component.d.ts +0 -33
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewContainerRef } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewContainerRef, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/**
|
|
4
4
|
* Component representing a placeholder for a custom editor in Handsontable.
|
|
@@ -16,7 +16,6 @@ export class CustomEditorPlaceholderComponent {
|
|
|
16
16
|
set isVisible(value) {
|
|
17
17
|
this._isVisible = value;
|
|
18
18
|
}
|
|
19
|
-
placeholderCustomClass = 'handsontableInputHolder ht_clone_master';
|
|
20
19
|
/** The reference to the component instance of the editor. */
|
|
21
20
|
set componentRef(hotEditorComponentRef) {
|
|
22
21
|
if (hotEditorComponentRef) {
|
|
@@ -37,8 +36,8 @@ export class CustomEditorPlaceholderComponent {
|
|
|
37
36
|
this.container.detach();
|
|
38
37
|
}
|
|
39
38
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomEditorPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomEditorPlaceholderComponent, selector: "ng-component", inputs: { top: "top", left: "left", height: "height", width: "width", isVisible: "isVisible",
|
|
41
|
-
|
|
39
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomEditorPlaceholderComponent, selector: "ng-component", inputs: { top: "top", left: "left", height: "height", width: "width", isVisible: "isVisible", componentRef: "componentRef" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["inputPlaceholder"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: ` <div
|
|
40
|
+
class="handsontableInputHolder ht_clone_master"
|
|
42
41
|
[style.display]="display"
|
|
43
42
|
[style.width.px]="width"
|
|
44
43
|
[style.height.px]="height"
|
|
@@ -54,7 +53,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
54
53
|
type: Component,
|
|
55
54
|
args: [{
|
|
56
55
|
template: ` <div
|
|
57
|
-
|
|
56
|
+
class="handsontableInputHolder ht_clone_master"
|
|
58
57
|
[style.display]="display"
|
|
59
58
|
[style.width.px]="width"
|
|
60
59
|
[style.height.px]="height"
|
|
@@ -78,12 +77,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
78
77
|
type: Input
|
|
79
78
|
}], isVisible: [{
|
|
80
79
|
type: Input
|
|
81
|
-
}], placeholderCustomClass: [{
|
|
82
|
-
type: Input
|
|
83
80
|
}], componentRef: [{
|
|
84
81
|
type: Input
|
|
85
82
|
}], container: [{
|
|
86
83
|
type: ViewChild,
|
|
87
84
|
args: ['inputPlaceholder', { read: ViewContainerRef, static: true }]
|
|
88
85
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVkaXRvci1wbGFjZWhvbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ob3QtdGFibGUvc3JjL2xpYi9lZGl0b3IvY3VzdG9tLWVkaXRvci1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7O0FBR3ZCOzs7R0FHRztBQWlCSCxNQUFNLE9BQU8sZ0NBQWdDO0lBQzNDLHNDQUFzQztJQUM3QixHQUFHLENBQVM7SUFFckIsdUNBQXVDO0lBQzlCLElBQUksQ0FBUztJQUV0QixnQ0FBZ0M7SUFDdkIsTUFBTSxDQUFTO0lBRXhCLCtCQUErQjtJQUN0QixLQUFLLENBQVM7SUFFdkIsSUFDSSxTQUFTLENBQUMsS0FBYztRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELElBQWEsWUFBWSxDQUN2QixxQkFBZ0U7UUFFaEUsSUFBSSxxQkFBcUIsRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCx3REFBd0Q7SUFDaUIsU0FBUyxDQUFtQjtJQUVyRyx1Q0FBdUM7SUFDdkMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRU8sVUFBVSxHQUFHLEtBQUssQ0FBQztJQUUzQjs7T0FFRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBMUNVLGdDQUFnQzs0RkFBaEMsZ0NBQWdDLDRRQTRCSixnQkFBZ0IsMkNBM0M3Qzs7Ozs7Ozs7Ozs7U0FXSDs7NEZBSUksZ0NBQWdDO2tCQWhCNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7O1NBV0g7b0JBQ1AsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs4QkFHVSxHQUFHO3NCQUFYLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0YsU0FBUztzQkFEWixLQUFLO2dCQU1PLFlBQVk7c0JBQXhCLEtBQUs7Z0JBU21FLFNBQVM7c0JBQWpGLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIb3RDZWxsRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9ob3QtY2VsbC1lZGl0b3IuY29tcG9uZW50JztcblxuLyoqXG4gKiBDb21wb25lbnQgcmVwcmVzZW50aW5nIGEgcGxhY2Vob2xkZXIgZm9yIGEgY3VzdG9tIGVkaXRvciBpbiBIYW5kc29udGFibGUuXG4gKiBJdCBpcyB1c2VkIG9ubHkgd2l0aGluIHRoZSB3cmFwcGVyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGAgPGRpdlxuICAgIGNsYXNzPVwiaGFuZHNvbnRhYmxlSW5wdXRIb2xkZXIgaHRfY2xvbmVfbWFzdGVyXCJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJkaXNwbGF5XCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0XCJcbiAgICBbc3R5bGUubWF4V2lkdGgucHhdPVwid2lkdGhcIlxuICAgIFtzdHlsZS5tYXhIZWlnaHQucHhdPVwiaGVpZ2h0XCJcbiAgICBbc3R5bGUudG9wLnB4XT1cInRvcFwiXG4gICAgW3N0eWxlLmxlZnQucHhdPVwibGVmdFwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2lucHV0UGxhY2Vob2xkZXI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21FZGl0b3JQbGFjZWhvbGRlckNvbXBvbmVudCB7XG4gIC8qKiBUaGUgdG9wIHBvc2l0aW9uIG9mIHRoZSBlZGl0b3IuICovXG4gIEBJbnB1dCgpIHRvcDogbnVtYmVyO1xuXG4gIC8qKiBUaGUgbGVmdCBwb3NpdGlvbiBvZiB0aGUgZWRpdG9yLiAqL1xuICBASW5wdXQoKSBsZWZ0OiBudW1iZXI7XG5cbiAgLyoqIFRoZSBoZWlnaHQgb2YgdGhlIGVkaXRvci4gKi9cbiAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XG5cbiAgLyoqIFRoZSB3aWR0aCBvZiB0aGUgZWRpdG9yLiAqL1xuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBpc1Zpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc1Zpc2libGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQgaW5zdGFuY2Ugb2YgdGhlIGVkaXRvci4gKi9cbiAgQElucHV0KCkgc2V0IGNvbXBvbmVudFJlZihcbiAgICBob3RFZGl0b3JDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxIb3RDZWxsRWRpdG9yQ29tcG9uZW50PGFueT4+XG4gICkge1xuICAgIGlmIChob3RFZGl0b3JDb21wb25lbnRSZWYpIHtcbiAgICAgIHRoaXMuY29udGFpbmVyLmluc2VydChob3RFZGl0b3JDb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBUaGUgY29udGFpbmVyIGZvciB0aGUgZWRpdG9yJ3MgaW5wdXQgcGxhY2Vob2xkZXIuICovXG4gIEBWaWV3Q2hpbGQoJ2lucHV0UGxhY2Vob2xkZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgLyoqIFRoZSBkaXNwbGF5IHN0eWxlIG9mIHRoZSBlZGl0b3IuICovXG4gIGdldCBkaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2lzVmlzaWJsZSA/ICdibG9jaycgOiAnbm9uZSc7XG4gIH1cblxuICBwcml2YXRlIF9pc1Zpc2libGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGV0YWNoZXMgdGhlIGNvbnRhaW5lciBmcm9tIHRoZSBIYW5kc29udGFibGUuXG4gICAqL1xuICBkZXRhY2hFZGl0b3IoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXIuZGV0YWNoKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,7 +4,6 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* Abstract class representing a Handsontable editor in angular.
|
|
5
5
|
*/
|
|
6
6
|
export class HotCellEditorComponent {
|
|
7
|
-
static EDITOR_MARKER = Symbol('HotCellEditorComponent');
|
|
8
7
|
/** The tabindex attribute for the editor. */
|
|
9
8
|
tabindex = -1;
|
|
10
9
|
/** The data-hot-input attribute for the editor. */
|
|
@@ -92,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
92
91
|
}], cancelEdit: [{
|
|
93
92
|
type: Output
|
|
94
93
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LWNlbGwtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2hvdC10YWJsZS9zcmMvbGliL2VkaXRvci9ob3QtY2VsbC1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdwRjs7R0FFRztBQUVILE1BQU0sT0FBZ0Isc0JBQXNCO0lBQzFDLDZDQUE2QztJQUNMLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUV0RCxtREFBbUQ7SUFDTCxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRWhFLGtEQUFrRDtJQUNBLHNCQUFzQixHQUFHLElBQUksQ0FBQztJQUVoRix3RUFBd0U7SUFDL0Isd0JBQXdCLEdBQUcsR0FBRyxDQUFDO0lBRXhFLHVFQUF1RTtJQUMvQix1QkFBdUIsR0FBRyxHQUFHLENBQUM7SUFFdEUsOENBQThDO0lBQ3JDLEdBQUcsQ0FBUztJQUVyQixpREFBaUQ7SUFDeEMsTUFBTSxDQUFTO0lBRXhCLGtEQUFrRDtJQUN6QyxJQUFJLENBQWtCO0lBRS9CLG1EQUFtRDtJQUMxQyxhQUFhLENBQUk7SUFFMUIsb0RBQW9EO0lBQzNDLGNBQWMsQ0FBaUI7SUFFeEM7O09BRUc7SUFDTyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVoRDs7T0FFRztJQUNPLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWhELHVDQUF1QztJQUMvQixNQUFNLENBQUk7SUFFbEI7OzhEQUUwRDtJQUMxRCxPQUFPLEtBQVUsQ0FBQztJQUVsQjs7OERBRTBEO0lBQzFELE1BQU0sQ0FBQyxLQUFhLElBQVMsQ0FBQztJQW9COUI7OztPQUdHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQVE7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO3dHQXRGbUIsc0JBQXNCOzRGQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRDNDLFNBQVM7OEJBR2dDLFFBQVE7c0JBQS9DLFdBQVc7dUJBQUMsZUFBZTtnQkFHa0IsWUFBWTtzQkFBekQsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBR2dCLHNCQUFzQjtzQkFBdkUsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBR0csd0JBQXdCO3NCQUFoRSxXQUFXO3VCQUFDLGdCQUFnQjtnQkFHVyx1QkFBdUI7c0JBQTlELFdBQVc7dUJBQUMsZUFBZTtnQkFHbkIsR0FBRztzQkFBWCxLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtJLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2VsbFByb3BlcnRpZXMgfSBmcm9tICdoYW5kc29udGFibGUvc2V0dGluZ3MnO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIHJlcHJlc2VudGluZyBhIEhhbmRzb250YWJsZSBlZGl0b3IgaW4gYW5ndWxhci5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSG90Q2VsbEVkaXRvckNvbXBvbmVudDxUIGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4ge1xuICAvKiogVGhlIHRhYmluZGV4IGF0dHJpYnV0ZSBmb3IgdGhlIGVkaXRvci4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgcHJvdGVjdGVkIHRhYmluZGV4ID0gLTE7XG5cbiAgLyoqIFRoZSBkYXRhLWhvdC1pbnB1dCBhdHRyaWJ1dGUgZm9yIHRoZSBlZGl0b3IuICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWhvdC1pbnB1dCcpIHByb3RlY3RlZCBkYXRhSG90SW5wdXQgPSAnJztcblxuICAvKiogVGhlIGhhbmRzb250YWJsZUlucHV0IGNsYXNzIGZvciB0aGUgZWRpdG9yLiAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhhbmRzb250YWJsZUlucHV0JykgcHJvdGVjdGVkIGhhbmRzb250YWJsZUlucHV0Q2xhc3MgPSB0cnVlO1xuXG4gIC8qKiBUaGUgaGVpZ2h0IG9mIHRoZSBlZGl0b3IgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyLiAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodC4lJykgcHJvdGVjdGVkIGhlaWdodEZpdFBhcmVudENvbnRhaW5lciA9IDEwMDtcblxuICAvKiogVGhlIHdpZHRoIG9mIHRoZSBlZGl0b3IgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyLiAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLiUnKSBwcm90ZWN0ZWQgd2lkdGhGaXRQYXJlbnRDb250YWluZXIgPSAxMDA7XG5cbiAgLyoqIFRoZSByb3cgaW5kZXggb2YgdGhlIGNlbGwgYmVpbmcgZWRpdGVkLiAqL1xuICBASW5wdXQoKSByb3c6IG51bWJlcjtcblxuICAvKiogVGhlIGNvbHVtbiBpbmRleCBvZiB0aGUgY2VsbCBiZWluZyBlZGl0ZWQuICovXG4gIEBJbnB1dCgpIGNvbHVtbjogbnVtYmVyO1xuXG4gIC8qKiBUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgY2VsbCBiZWluZyBlZGl0ZWQuICovXG4gIEBJbnB1dCgpIHByb3A6IHN0cmluZyB8IG51bWJlcjtcblxuICAvKiogVGhlIG9yaWdpbmFsIHZhbHVlIG9mIHRoZSBjZWxsIGJlaW5nIGVkaXRlZC4gKi9cbiAgQElucHV0KCkgb3JpZ2luYWxWYWx1ZTogVDtcblxuICAvKiogVGhlIGNlbGwgcHJvcGVydGllcyBvZiB0aGUgY2VsbCBiZWluZyBlZGl0ZWQuICovXG4gIEBJbnB1dCgpIGNlbGxQcm9wZXJ0aWVzOiBDZWxsUHJvcGVydGllcztcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBlZGl0IGlzIGZpbmlzaGVkLlxuICAgKiBUaGUgZGF0YSB3aWxsIGJlIHNhdmVkIHRvIHRoZSBtb2RlbC5cbiAgICovXG4gIEBPdXRwdXQoKSBmaW5pc2hFZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGVkaXQgaXMgY2FuY2VsZWQuXG4gICAqIFRoZSBlbnRlcmVkIGRhdGEgd2lsbCBiZSByZXZlcnRlZCB0byB0aGUgb3JpZ2luYWwgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KCkgY2FuY2VsRWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGVkaXRvci4gKi9cbiAgcHJpdmF0ZSBfdmFsdWU6IFQ7XG5cbiAgLyoqIEV2ZW50IHRyaWdnZXJlZCBieSBIYW5kc29udGFibGUgb24gY2xvc2luZyB0aGUgZWRpdG9yLlxuICAgKiBUaGUgdXNlciBjYW4gZGVmaW5lIHRoZWlyIG93biBhY3Rpb25zIGZvclxuICAgKiB0aGUgY3VzdG9tIGVkaXRvciB0byBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGJhc2UgbG9naWMuICovXG4gIG9uQ2xvc2UoKTogdm9pZCB7fVxuXG4gIC8qKiBFdmVudCB0cmlnZ2VyZWQgYnkgSGFuZHNvbnRhYmxlIG9uIG9wZW4gdGhlIGVkaXRvci5cbiAgICogVGhlIHVzZXIgY2FuIGRlZmluZSB0aGVpciBvd24gYWN0aW9ucyBmb3JcbiAgICogdGhlIGN1c3RvbSBlZGl0b3IgdG8gYmUgY2FsbGVkIGFmdGVyIHRoZSBiYXNlIGxvZ2ljLiAqL1xuICBvbk9wZW4oZXZlbnQ/OiBFdmVudCk6IHZvaWQge31cblxuICAvKiogRXZlbnQgdHJpZ2dlcmVkIGJ5IEhhbmRzb250YWJsZSBvbiBmb2N1cyB0aGUgZWRpdG9yLlxuICAgKiBUaGUgdXNlciBoYXZlIHRvIGRlZmluZSBmb2N1cyBsb2dpYy5cbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb21wb25lbnQoe1xuICAgKiAgdGVtcGxhdGU6IGA8aW5wdXQgI2lucHV0RWxlbWVudD5gXG4gICAqIH0pXG4gICAqIGNsYXNzIEN1c3RvbUVkaXRvciBleHRlbmRzIEhvdEVkaXRvcjxzdHJpbmc+IHtcbiAgICogICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICAgKlxuICAgKiAgIG9uRm9jdXMoKTogdm9pZCB7XG4gICAqICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYWJzdHJhY3Qgb25Gb2N1cygpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBlZGl0b3IuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBlZGl0b3IuXG4gICAqL1xuICBnZXRWYWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZWRpdG9yLlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAgICovXG4gIHNldFZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuIl19
|
|
@@ -9,7 +9,6 @@ export class HotTableComponent {
|
|
|
9
9
|
_hotSettingsResolver;
|
|
10
10
|
_hotConfig;
|
|
11
11
|
ngZone;
|
|
12
|
-
environmentInjector;
|
|
13
12
|
// component inputs
|
|
14
13
|
/** The data for the Handsontable instance. */
|
|
15
14
|
data = null;
|
|
@@ -20,11 +19,10 @@ export class HotTableComponent {
|
|
|
20
19
|
/** The Handsontable instance. */
|
|
21
20
|
__hotInstance = null;
|
|
22
21
|
configSubscription;
|
|
23
|
-
constructor(_hotSettingsResolver, _hotConfig, ngZone
|
|
22
|
+
constructor(_hotSettingsResolver, _hotConfig, ngZone) {
|
|
24
23
|
this._hotSettingsResolver = _hotSettingsResolver;
|
|
25
24
|
this._hotConfig = _hotConfig;
|
|
26
25
|
this.ngZone = ngZone;
|
|
27
|
-
this.environmentInjector = environmentInjector;
|
|
28
26
|
}
|
|
29
27
|
/**
|
|
30
28
|
* Gets the Handsontable instance.
|
|
@@ -57,7 +55,6 @@ export class HotTableComponent {
|
|
|
57
55
|
options = { ...options, ...negotiatedSettings, data: this.data };
|
|
58
56
|
this.ngZone.runOutsideAngular(() => {
|
|
59
57
|
this.hotInstance = new Handsontable.Core(this.container.nativeElement, options);
|
|
60
|
-
this.hotInstance._angularEnvironmentInjector = this.environmentInjector;
|
|
61
58
|
this.hotInstance.init();
|
|
62
59
|
});
|
|
63
60
|
this.configSubscription = this._hotConfig.config$.subscribe((config) => {
|
|
@@ -140,13 +137,13 @@ export class HotTableComponent {
|
|
|
140
137
|
}
|
|
141
138
|
return negotiatedSettings;
|
|
142
139
|
}
|
|
143
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HotTableComponent, deps: [{ token: i1.HotSettingsResolver }, { token: i2.HotGlobalConfigService }, { token: i0.NgZone }
|
|
140
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HotTableComponent, deps: [{ token: i1.HotSettingsResolver }, { token: i2.HotGlobalConfigService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
144
141
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HotTableComponent, selector: "hot-table", inputs: { data: "data", settings: "settings" }, providers: [HotSettingsResolver], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: '<div #container></div>', isInline: true, styles: [":host{display:block}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
145
142
|
}
|
|
146
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HotTableComponent, decorators: [{
|
|
147
144
|
type: Component,
|
|
148
145
|
args: [{ selector: 'hot-table', template: '<div #container></div>', encapsulation: ViewEncapsulation.None, providers: [HotSettingsResolver], styles: [":host{display:block}\n"] }]
|
|
149
|
-
}], ctorParameters: function () { return [{ type: i1.HotSettingsResolver }, { type: i2.HotGlobalConfigService }, { type: i0.NgZone }
|
|
146
|
+
}], ctorParameters: function () { return [{ type: i1.HotSettingsResolver }, { type: i2.HotGlobalConfigService }, { type: i0.NgZone }]; }, propDecorators: { data: [{
|
|
150
147
|
type: Input
|
|
151
148
|
}], settings: [{
|
|
152
149
|
type: Input
|
|
@@ -154,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
154
151
|
type: ViewChild,
|
|
155
152
|
args: ['container', { static: false }]
|
|
156
153
|
}] } });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2hvdC10YWJsZS9zcmMvbGliL2hvdC10YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFHVCxLQUFLLEVBS0wsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUsvRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRywrRUFBK0UsR0FBRyxpQkFBaUIsQ0FBQztBQWV6SSxNQUFNLE9BQU8saUJBQWlCO0lBZ0JsQjtJQUNBO0lBQ0Q7SUFDVTtJQWxCbkIsbUJBQW1CO0lBQ25CLDhDQUE4QztJQUNyQyxJQUFJLEdBQTZDLElBQUksQ0FBQztJQUMvRCxrREFBa0Q7SUFDekMsUUFBUSxHQUFpQixFQUFFLENBQUM7SUFFckMsMkRBQTJEO0lBRXBELFNBQVMsQ0FBNkI7SUFFN0MsaUNBQWlDO0lBQ3pCLGFBQWEsR0FBd0IsSUFBSSxDQUFDO0lBQzFDLGtCQUFrQixDQUFlO0lBRXpDLFlBQ1Usb0JBQXlDLEVBQ3pDLFVBQWtDLEVBQ25DLE1BQWMsRUFDSixtQkFBd0M7UUFIakQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ0osd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtJQUN4RCxDQUFDO0lBRUo7OztPQUdHO0lBQ0gsSUFBVyxXQUFXO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFD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LEVBQUU7WUFDcEIsa0JBQWtCLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUMxQztRQUVELGdGQUFnRjtRQUNoRixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixrQkFBa0IsQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLGVBQWUsSUFBSSxTQUFTLENBQUMsZUFBZSxDQUFDO1NBQzVGO1FBRUQsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO3dHQWhLVSxpQkFBaUI7NEZBQWpCLGlCQUFpQixvRkFUakIsQ0FBQyxtQkFBbUIsQ0FBQyx1SkFGdEIsd0JBQXdCOzs0RkFXdkIsaUJBQWlCO2tCQWI3QixTQUFTOytCQUNFLFdBQVcsWUFDWCx3QkFBd0IsaUJBQ25CLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxtQkFBbUIsQ0FBQztzTUFZdkIsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IEhhbmRzb250YWJsZSBmcm9tICdoYW5kc29udGFibGUvYmFzZSc7XG5pbXBvcnQgeyBIb3RTZXR0aW5nc1Jlc29sdmVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9ob3Qtc2V0dGluZ3MtcmVzb2x2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBIb3RHbG9iYWxDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ob3QtZ2xvYmFsLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWxzL2dyaWQtc2V0dGluZ3MnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBIT1RfREVTVFJPWUVEX1dBUk5JTkcgPSAnVGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZSBib3VuZCB0byB0aGlzIGNvbXBvbmVudCB3YXMgZGVzdHJveWVkIGFuZCBjYW5ub3QgYmUnICsgJyB1c2VkIHByb3Blcmx5Lic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hvdC10YWJsZScsXG4gIHRlbXBsYXRlOiAnPGRpdiAjY29udGFpbmVyPjwvZGl2PicsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW0hvdFNldHRpbmdzUmVzb2x2ZXJdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEhvdFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvLyBjb21wb25lbnQgaW5wdXRzXG4gIC8qKiBUaGUgZGF0YSBmb3IgdGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZS4gKi9cbiAgQElucHV0KCkgZGF0YTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5nc1snZGF0YSddIHwgbnVsbCA9IG51bGw7XG4gIC8qKiBUaGUgc2V0dGluZ3MgZm9yIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UuICovXG4gIEBJbnB1dCgpIHNldHRpbmdzOiBHcmlkU2V0dGluZ3MgPSB7fTtcblxuICAvKiogVGhlIGNvbnRhaW5lciBlbGVtZW50IGZvciB0aGUgSGFuZHNvbnRhYmxlIGluc3RhbmNlLiAqL1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgLyoqIFRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UuICovXG4gIHByaXZhdGUgX19ob3RJbnN0YW5jZTogSGFuZHNvbnRhYmxlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29uZmlnU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaG90U2V0dGluZ3NSZXNvbHZlcjogSG90U2V0dGluZ3NSZXNvbHZlcixcbiAgICBwcml2YXRlIF9ob3RDb25maWc6IEhvdEdsb2JhbENvbmZpZ1NlcnZpY2UsXG4gICAgcHVibGljIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvclxuICApIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZS5cbiAgICogQHJldHVybnMgVGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZSBvciBgbnVsbGAgaWYgaXQncyBub3QgeWV0IGJlZW4gY3JlYXRlZCBvciBoYXMgYmVlbiBkZXN0cm95ZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhvdEluc3RhbmNlKCk6IEhhbmRzb250YWJsZSB8IG51bGwge1xuICAgIGlmICghdGhpcy5fX2hvdEluc3RhbmNlIHx8ICh0aGlzLl9faG90SW5zdGFuY2UgJiYgIXRoaXMuX19ob3RJbnN0YW5jZS5pc0Rlc3Ryb3llZCkpIHtcbiAgICAgIC8vIFdpbGwgcmV0dXJuIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2Ugb3IgYG51bGxgIGlmIGl0J3Mgbm90IHlldCBiZWVuIGNyZWF0ZWQuXG4gICAgICByZXR1cm4gdGhpcy5fX2hvdEluc3RhbmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oSE9UX0RFU1RST1lFRF9XQVJOSU5HKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UuXG4gICAqIEBwYXJhbSBob3RJbnN0YW5jZSBUaGUgSGFuZHNvbnRhYmxlIGluc3RhbmNlIHRvIHNldC5cbiAgICovXG4gIHByaXZhdGUgc2V0IGhvdEluc3RhbmNlKGhvdEluc3RhbmNlKSB7XG4gICAgdGhpcy5fX2hvdEluc3RhbmNlID0gaG90SW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZSBhZnRlciB0aGUgdmlldyBoYXMgYmVlbiBpbml0aWFsaXplZC5cbiAgICogVGhlIGluaXRpYWwgc2V0dGluZ3Mgb2YgdGhlIHRhYmxlIGFyZSBhbHNvIHByZXBhcmVkIGhlcmVcbiAgICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgb3B0aW9uczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyA9IHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIuYXBwbHlDdXN0b21TZXR0aW5ncyh0aGlzLnNldHRpbmdzLCB0aGlzLm5nWm9uZSk7XG5cbiAgICBjb25zdCBuZWdvdGlhdGVkU2V0dGluZ3MgPSB0aGlzLmdldE5lZ290aWF0ZWRTZXR0aW5ncyhvcHRpb25zKTtcbiAgICBvcHRpb25zID0geyAuLi5vcHRpb25zLCAuLi5uZWdvdGlhdGVkU2V0dGluZ3MsIGRhdGE6IHRoaXMuZGF0YSB9O1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5ob3RJbnN0YW5jZSA9IG5ldyBIYW5kc29udGFibGUuQ29yZSh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcblxuICAgICAgKHRoaXMuaG90SW5zdGFuY2UgYXMgYW55KS5fYW5ndWxhckVudmlyb25tZW50SW5qZWN0b3IgPSB0aGlzLmVudmlyb25tZW50SW5qZWN0b3I7XG5cbiAgICAgIHRoaXMuaG90SW5zdGFuY2UuaW5pdCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25maWdTdWJzY3JpcHRpb24gPSB0aGlzLl9ob3RDb25maWcuY29uZmlnJC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgaWYgKHRoaXMuaG90SW5zdGFuY2UpIHtcbiAgICAgICAgY29uc3QgbmVnb3RpYXRlZFNldHRpbmdzID0gdGhpcy5nZXROZWdvdGlhdGVkU2V0dGluZ3ModGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHRoaXMudXBkYXRlSG90VGFibGUobmVnb3RpYXRlZFNldHRpbmdzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ob3RJbnN0YW5jZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnNldHRpbmdzICYmICFjaGFuZ2VzLnNldHRpbmdzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBjb25zdCBuZXdPcHRpb25zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzID0gdGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5hcHBseUN1c3RvbVNldHRpbmdzKFxuICAgICAgICBjaGFuZ2VzLnNldHRpbmdzLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgdGhpcy5uZ1pvbmVcbiAgICAgICk7XG5cbiAgICAgIHRoaXMudXBkYXRlSG90VGFibGUobmV3T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0YSAmJiAhY2hhbmdlcy5kYXRhLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmhvdEluc3RhbmNlPy51cGRhdGVEYXRhKGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGUgSGFuZHNvbnRhYmxlIGluc3RhbmNlIGFuZCBjbGVhcnMgdGhlIGNvbHVtbnMgZnJvbSBjdXN0b20gZWRpdG9ycy5cbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5ob3RJbnN0YW5jZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmhvdEluc3RhbmNlLmdldFNldHRpbmdzKCkuY29sdW1ucztcblxuICAgICAgaWYgKGNvbHVtbnMgJiYgQXJyYXkuaXNBcnJheShjb2x1bW5zKSkge1xuICAgICAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICAgIGlmIChjb2x1bW4uX2VkaXRvckNvbXBvbmVudFJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29sdW1uLl9lZGl0b3JDb21wb25lbnRSZWZlcmVuY2UuZGVzdHJveSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaG90SW5zdGFuY2UuZGVzdHJveSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25maWdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2Ugd2l0aCBuZXcgc2V0dGluZ3MuXG4gICAqIEBwYXJhbSBuZXdTZXR0aW5ncyBUaGUgbmV3IHNldHRpbmdzIHRvIGFwcGx5IHRvIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUhvdFRhYmxlKG5ld1NldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhvdEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5ob3RJbnN0YW5jZT8udXBkYXRlU2V0dGluZ3MobmV3U2V0dGluZ3MsIGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZXMgdGhlIHByb3ZpZGVkIEhhbmRzb250YWJsZSBncmlkIHNldHRpbmdzIHdpdGggdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCByZXRyaWV2ZXMgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uIGZyb20gdGhlIEhvdEdsb2JhbENvbmZpZ1NlcnZpY2UgYW5kIG5lZ290aWF0ZXMgdGhlIGZpbmFsXG4gICAqIEhhbmRzb250YWJsZSBzZXR0aW5ncyBieSBnaXZpbmcgcHJlY2VkZW5jZSB0byB0aGUgcHJvdmlkZWQgc2V0dGluZ3MuXG4gICAqIEFkZGl0aW9uYWxseSwgdGhlIGBsYXlvdXREaXJlY3Rpb25gIGlzIG9ubHkgbWVyZ2VkIGlmIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgaGFzIG5vdCB5ZXQgYmVlbiBpbml0aWFsaXplZC5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIGdyaWQgc2V0dGluZ3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIgb3IgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgZmluYWwgbmVnb3RpYXRlZCBncmlkIHNldHRpbmdzIGFmdGVyIG1lcmdpbmcgd2l0aCBnbG9iYWwgZGVmYXVsdHMuXG4gICAqL1xuICBwcml2YXRlIGdldE5lZ290aWF0ZWRTZXR0aW5ncyhzZXR0aW5nczogR3JpZFNldHRpbmdzKTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyB7XG4gICAgY29uc3QgaG90Q29uZmlnID0gdGhpcy5faG90Q29uZmlnLmdldENvbmZpZygpO1xuICAgIGNvbnN0IG5lZ290aWF0ZWRTZXR0aW5nczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyA9IHt9O1xuXG4gICAgbmVnb3RpYXRlZFNldHRpbmdzLmxpY2Vuc2VLZXkgPSBzZXR0aW5ncy5saWNlbnNlS2V5ID8/IGhvdENvbmZpZy5saWNlbnNlO1xuICAgIG5lZ290aWF0ZWRTZXR0aW5ncy5sYW5ndWFnZSA9IHNldHRpbmdzLmxhbmd1YWdlID8/IGhvdENvbmZpZy5sYW5ndWFnZTtcblxuICAgIGNvbnN0IHRoZW1lID0gc2V0dGluZ3MudGhlbWUgPz8gaG90Q29uZmlnLnRoZW1lO1xuICAgIGNvbnN0IHRoZW1lTmFtZSA9IHNldHRpbmdzLnRoZW1lTmFtZSA/PyBob3RDb25maWcudGhlbWVOYW1lO1xuXG4gICAgaWYgKHRoZW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG5lZ290aWF0ZWRTZXR0aW5ncy50aGVtZSA9IHRoZW1lIGFzIEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3RoZW1lJ107XG4gICAgfSBlbHNlIGlmICh0aGVtZU5hbWUpIHtcbiAgICAgIG5lZ290aWF0ZWRTZXR0aW5ncy50aGVtZU5hbWUgPSB0aGVtZU5hbWU7XG4gICAgfVxuXG4gICAgLy8gc2V0dGluZ3MgdGhhdCBjYW4gYmUgc2V0IG9ubHkgYmVmb3JlIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgaXMgaW5pdGlhbGl6ZWRcbiAgICBpZiAoIXRoaXMuX19ob3RJbnN0YW5jZSkge1xuICAgICAgbmVnb3RpYXRlZFNldHRpbmdzLmxheW91dERpcmVjdGlvbiA9IHNldHRpbmdzLmxheW91dERpcmVjdGlvbiA/PyBob3RDb25maWcubGF5b3V0RGlyZWN0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBuZWdvdGlhdGVkU2V0dGluZ3M7XG4gIH1cbn1cbiJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2hvdC10YWJsZS9zcmMvbGliL2hvdC10YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxLQUFLLEVBS0wsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUsvRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRywrRUFBK0UsR0FBRyxpQkFBaUIsQ0FBQztBQWV6SSxNQUFNLE9BQU8saUJBQWlCO0lBZVI7SUFBbUQ7SUFBMkM7SUFkbEgsbUJBQW1CO0lBQ25CLDhDQUE4QztJQUNyQyxJQUFJLEdBQTZDLElBQUksQ0FBQztJQUMvRCxrREFBa0Q7SUFDekMsUUFBUSxHQUFpQixFQUFFLENBQUM7SUFFckMsMkRBQTJEO0lBRXBELFNBQVMsQ0FBNkI7SUFFN0MsaUNBQWlDO0lBQ3pCLGFBQWEsR0FBd0IsSUFBSSxDQUFDO0lBQzFDLGtCQUFrQixDQUFlO0lBRXpDLFlBQW9CLG9CQUF5QyxFQUFVLFVBQWtDLEVBQVMsTUFBYztRQUE1Ryx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUVwSTs7O09BR0c7SUFDSCxJQUFXLFdBQVc7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNsRixnRkFBZ0Y7WUFDaEYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NB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QUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxlQUFlLElBQUksU0FBUyxDQUFDLGVBQWUsQ0FBQztTQUM1RjtRQUVELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzt3R0F6SlUsaUJBQWlCOzRGQUFqQixpQkFBaUIsb0ZBVGpCLENBQUMsbUJBQW1CLENBQUMsdUpBRnRCLHdCQUF3Qjs7NEZBV3ZCLGlCQUFpQjtrQkFiN0IsU0FBUzsrQkFDRSxXQUFXLFlBQ1gsd0JBQXdCLGlCQUNuQixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsbUJBQW1CLENBQUM7b0tBWXZCLElBQUk7c0JBQVosS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBIYW5kc29udGFibGUgZnJvbSAnaGFuZHNvbnRhYmxlL2Jhc2UnO1xuaW1wb3J0IHsgSG90U2V0dGluZ3NSZXNvbHZlciB9IGZyb20gJy4vc2VydmljZXMvaG90LXNldHRpbmdzLXJlc29sdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSG90R2xvYmFsQ29uZmlnU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaG90LWdsb2JhbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkU2V0dGluZ3MgfSBmcm9tICcuL21vZGVscy9ncmlkLXNldHRpbmdzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgSE9UX0RFU1RST1lFRF9XQVJOSU5HID0gJ1RoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgYm91bmQgdG8gdGhpcyBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBhbmQgY2Fubm90IGJlJyArICcgdXNlZCBwcm9wZXJseS4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdob3QtdGFibGUnLFxuICB0ZW1wbGF0ZTogJzxkaXYgI2NvbnRhaW5lcj48L2Rpdj4nLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtIb3RTZXR0aW5nc1Jlc29sdmVyXSxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBIb3RUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLy8gY29tcG9uZW50IGlucHV0c1xuICAvKiogVGhlIGRhdGEgZm9yIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UuICovXG4gIEBJbnB1dCgpIGRhdGE6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ2RhdGEnXSB8IG51bGwgPSBudWxsO1xuICAvKiogVGhlIHNldHRpbmdzIGZvciB0aGUgSGFuZHNvbnRhYmxlIGluc3RhbmNlLiAqL1xuICBASW5wdXQoKSBzZXR0aW5nczogR3JpZFNldHRpbmdzID0ge307XG5cbiAgLyoqIFRoZSBjb250YWluZXIgZWxlbWVudCBmb3IgdGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZS4gKi9cbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIC8qKiBUaGUgSGFuZHNvbnRhYmxlIGluc3RhbmNlLiAqL1xuICBwcml2YXRlIF9faG90SW5zdGFuY2U6IEhhbmRzb250YWJsZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbmZpZ1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hvdFNldHRpbmdzUmVzb2x2ZXI6IEhvdFNldHRpbmdzUmVzb2x2ZXIsIHByaXZhdGUgX2hvdENvbmZpZzogSG90R2xvYmFsQ29uZmlnU2VydmljZSwgcHVibGljIG5nWm9uZTogTmdab25lKSB7fVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIFRoZSBIYW5kc29udGFibGUgaW5zdGFuY2Ugb3IgYG51bGxgIGlmIGl0J3Mgbm90IHlldCBiZWVuIGNyZWF0ZWQgb3IgaGFzIGJlZW4gZGVzdHJveWVkLlxuICAgKi9cbiAgcHVibGljIGdldCBob3RJbnN0YW5jZSgpOiBIYW5kc29udGFibGUgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuX19ob3RJbnN0YW5jZSB8fCAodGhpcy5fX2hvdEluc3RhbmNlICYmICF0aGlzLl9faG90SW5zdGFuY2UuaXNEZXN0cm95ZWQpKSB7XG4gICAgICAvLyBXaWxsIHJldHVybiB0aGUgSGFuZHNvbnRhYmxlIGluc3RhbmNlIG9yIGBudWxsYCBpZiBpdCdzIG5vdCB5ZXQgYmVlbiBjcmVhdGVkLlxuICAgICAgcmV0dXJuIHRoaXMuX19ob3RJbnN0YW5jZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKEhPVF9ERVNUUk9ZRURfV0FSTklORyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgSGFuZHNvbnRhYmxlIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gaG90SW5zdGFuY2UgVGhlIEhhbmRzb250YWJsZSBpbnN0YW5jZSB0byBzZXQuXG4gICAqL1xuICBwcml2YXRlIHNldCBob3RJbnN0YW5jZShob3RJbnN0YW5jZSkge1xuICAgIHRoaXMuX19ob3RJbnN0YW5jZSA9IGhvdEluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgYWZ0ZXIgdGhlIHZpZXcgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAqIFRoZSBpbml0aWFsIHNldHRpbmdzIG9mIHRoZSB0YWJsZSBhcmUgYWxzbyBwcmVwYXJlZCBoZXJlXG4gICAqL1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgbGV0IG9wdGlvbnM6IEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3MgPSB0aGlzLl9ob3RTZXR0aW5nc1Jlc29sdmVyLmFwcGx5Q3VzdG9tU2V0dGluZ3ModGhpcy5zZXR0aW5ncywgdGhpcy5uZ1pvbmUpO1xuXG4gICAgY29uc3QgbmVnb3RpYXRlZFNldHRpbmdzID0gdGhpcy5nZXROZWdvdGlhdGVkU2V0dGluZ3Mob3B0aW9ucyk7XG4gICAgb3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgLi4ubmVnb3RpYXRlZFNldHRpbmdzLCBkYXRhOiB0aGlzLmRhdGEgfTtcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuaG90SW5zdGFuY2UgPSBuZXcgSGFuZHNvbnRhYmxlLkNvcmUodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG5cbiAgICAgIHRoaXMuaG90SW5zdGFuY2UuaW5pdCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25maWdTdWJzY3JpcHRpb24gPSB0aGlzLl9ob3RDb25maWcuY29uZmlnJC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgaWYgKHRoaXMuaG90SW5zdGFuY2UpIHtcbiAgICAgICAgY29uc3QgbmVnb3RpYXRlZFNldHRpbmdzID0gdGhpcy5nZXROZWdvdGlhdGVkU2V0dGluZ3ModGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHRoaXMudXBkYXRlSG90VGFibGUobmVnb3RpYXRlZFNldHRpbmdzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ob3RJbnN0YW5jZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnNldHRpbmdzICYmICFjaGFuZ2VzLnNldHRpbmdzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBjb25zdCBuZXdPcHRpb25zOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzID0gdGhpcy5faG90U2V0dGluZ3NSZXNvbHZlci5hcHBseUN1c3RvbVNldHRpbmdzKFxuICAgICAgICBjaGFuZ2VzLnNldHRpbmdzLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgdGhpcy5uZ1pvbmVcbiAgICAgICk7XG5cbiAgICAgIHRoaXMudXBkYXRlSG90VGFibGUobmV3T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0YSAmJiAhY2hhbmdlcy5kYXRhLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmhvdEluc3RhbmNlPy51cGRhdGVEYXRhKGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGUgSGFuZHNvbnRhYmxlIGluc3RhbmNlIGFuZCBjbGVhcnMgdGhlIGNvbHVtbnMgZnJvbSBjdXN0b20gZWRpdG9ycy5cbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5ob3RJbnN0YW5jZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmhvdEluc3RhbmNlLmdldFNldHRpbmdzKCkuY29sdW1ucztcblxuICAgICAgaWYgKGNvbHVtbnMgJiYgQXJyYXkuaXNBcnJheShjb2x1bW5zKSkge1xuICAgICAgICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICAgIGlmIChjb2x1bW4uX2VkaXRvckNvbXBvbmVudFJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29sdW1uLl9lZGl0b3JDb21wb25lbnRSZWZlcmVuY2UuZGVzdHJveSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaG90SW5zdGFuY2UuZGVzdHJveSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jb25maWdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2Ugd2l0aCBuZXcgc2V0dGluZ3MuXG4gICAqIEBwYXJhbSBuZXdTZXR0aW5ncyBUaGUgbmV3IHNldHRpbmdzIHRvIGFwcGx5IHRvIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUhvdFRhYmxlKG5ld1NldHRpbmdzOiBIYW5kc29udGFibGUuR3JpZFNldHRpbmdzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhvdEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5ob3RJbnN0YW5jZT8udXBkYXRlU2V0dGluZ3MobmV3U2V0dGluZ3MsIGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZXMgdGhlIHByb3ZpZGVkIEhhbmRzb250YWJsZSBncmlkIHNldHRpbmdzIHdpdGggdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCByZXRyaWV2ZXMgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uIGZyb20gdGhlIEhvdEdsb2JhbENvbmZpZ1NlcnZpY2UgYW5kIG5lZ290aWF0ZXMgdGhlIGZpbmFsXG4gICAqIEhhbmRzb250YWJsZSBzZXR0aW5ncyBieSBnaXZpbmcgcHJlY2VkZW5jZSB0byB0aGUgcHJvdmlkZWQgc2V0dGluZ3MuXG4gICAqIEFkZGl0aW9uYWxseSwgdGhlIGBsYXlvdXREaXJlY3Rpb25gIGlzIG9ubHkgbWVyZ2VkIGlmIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgaGFzIG5vdCB5ZXQgYmVlbiBpbml0aWFsaXplZC5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIGdyaWQgc2V0dGluZ3MgcHJvdmlkZWQgYnkgdGhlIHVzZXIgb3IgY29tcG9uZW50LlxuICAgKiBAcmV0dXJucyBUaGUgZmluYWwgbmVnb3RpYXRlZCBncmlkIHNldHRpbmdzIGFmdGVyIG1lcmdpbmcgd2l0aCBnbG9iYWwgZGVmYXVsdHMuXG4gICAqL1xuICBwcml2YXRlIGdldE5lZ290aWF0ZWRTZXR0aW5ncyhzZXR0aW5nczogR3JpZFNldHRpbmdzKTogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyB7XG4gICAgY29uc3QgaG90Q29uZmlnID0gdGhpcy5faG90Q29uZmlnLmdldENvbmZpZygpO1xuICAgIGNvbnN0IG5lZ290aWF0ZWRTZXR0aW5nczogSGFuZHNvbnRhYmxlLkdyaWRTZXR0aW5ncyA9IHt9O1xuXG4gICAgbmVnb3RpYXRlZFNldHRpbmdzLmxpY2Vuc2VLZXkgPSBzZXR0aW5ncy5saWNlbnNlS2V5ID8/IGhvdENvbmZpZy5saWNlbnNlO1xuICAgIG5lZ290aWF0ZWRTZXR0aW5ncy5sYW5ndWFnZSA9IHNldHRpbmdzLmxhbmd1YWdlID8/IGhvdENvbmZpZy5sYW5ndWFnZTtcblxuICAgIGNvbnN0IHRoZW1lID0gc2V0dGluZ3MudGhlbWUgPz8gaG90Q29uZmlnLnRoZW1lO1xuICAgIGNvbnN0IHRoZW1lTmFtZSA9IHNldHRpbmdzLnRoZW1lTmFtZSA/PyBob3RDb25maWcudGhlbWVOYW1lO1xuXG4gICAgaWYgKHRoZW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG5lZ290aWF0ZWRTZXR0aW5ncy50aGVtZSA9IHRoZW1lIGFzIEhhbmRzb250YWJsZS5HcmlkU2V0dGluZ3NbJ3RoZW1lJ107XG4gICAgfSBlbHNlIGlmICh0aGVtZU5hbWUpIHtcbiAgICAgIG5lZ290aWF0ZWRTZXR0aW5ncy50aGVtZU5hbWUgPSB0aGVtZU5hbWU7XG4gICAgfVxuXG4gICAgLy8gc2V0dGluZ3MgdGhhdCBjYW4gYmUgc2V0IG9ubHkgYmVmb3JlIHRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgaXMgaW5pdGlhbGl6ZWRcbiAgICBpZiAoIXRoaXMuX19ob3RJbnN0YW5jZSkge1xuICAgICAgbmVnb3RpYXRlZFNldHRpbmdzLmxheW91dERpcmVjdGlvbiA9IHNldHRpbmdzLmxheW91dERpcmVjdGlvbiA/PyBob3RDb25maWcubGF5b3V0RGlyZWN0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBuZWdvdGlhdGVkU2V0dGluZ3M7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -7,7 +7,7 @@ export class HotTableModule {
|
|
|
7
7
|
* Placeholder for the library version.
|
|
8
8
|
* Replaced automatically during the pre-build/post-build process.
|
|
9
9
|
*/
|
|
10
|
-
static version = '0.0.0-next-
|
|
10
|
+
static version = '0.0.0-next-a4c3bb2-20260211';
|
|
11
11
|
constructor() { }
|
|
12
12
|
static forRoot() {
|
|
13
13
|
return {
|
|
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26
26
|
exports: [HotTableComponent],
|
|
27
27
|
}]
|
|
28
28
|
}], ctorParameters: function () { return []; } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LXRhYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2hvdC10YWJsZS9zcmMvbGliL2hvdC10YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBT2hHLE1BQU0sT0FBTyxjQUFjO0lBQ3pCOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxPQUFPLEdBQUcsNkJBQTZCLENBQUM7SUFFL0MsZ0JBQWUsQ0FBQztJQUVULE1BQU0sQ0FBQyxPQUFPO1FBQ25CLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztTQUN6QixDQUFDO0lBQ0osQ0FBQzt3R0FiVSxjQUFjO3lHQUFkLGNBQWMsaUJBSlYsaUJBQWlCLEVBQUUsZ0NBQWdDLGFBRXhELGlCQUFpQjt5R0FFaEIsY0FBYzs7NEZBQWQsY0FBYztrQkFMMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxnQ0FBZ0MsQ0FBQztvQkFDbkUsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhvdFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9ob3QtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUVkaXRvclBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9lZGl0b3IvY3VzdG9tLWVkaXRvci1wbGFjZWhvbGRlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtIb3RUYWJsZUNvbXBvbmVudCwgQ3VzdG9tRWRpdG9yUGxhY2Vob2xkZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW0hvdFRhYmxlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgSG90VGFibGVNb2R1bGUge1xuICAvKipcbiAgICogUGxhY2Vob2xkZXIgZm9yIHRoZSBsaWJyYXJ5IHZlcnNpb24uXG4gICAqIFJlcGxhY2VkIGF1dG9tYXRpY2FsbHkgZHVyaW5nIHRoZSBwcmUtYnVpbGQvcG9zdC1idWlsZCBwcm9jZXNzLlxuICAgKi9cbiAgc3RhdGljIHZlcnNpb24gPSAnMC4wLjAtbmV4dC1hNGMzYmIyLTIwMjYwMjExJztcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SG90VGFibGVNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEhvdFRhYmxlTW9kdWxlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaG90LXRhYmxlL3NyYy9saWIvbW9kZWxzL2NvbHVtbi1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFbnZpcm9ubWVudEluamVjdG9yLCBUeXBlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IEhhbmRzb250YWJsZSBmcm9tICdoYW5kc29udGFibGUvYmFzZSc7XG5pbXBvcnQgeyBIb3RDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9yZW5kZXJlci9ob3QtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG90Q2VsbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2VkaXRvci9ob3QtY2VsbC1lZGl0b3IuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQ3VzdG9tVmFsaWRhdG9yRm48VD4gPSAodmFsdWU6IFQpID0+IGJvb2xlYW47XG5cbmV4cG9ydCB0eXBlIENvbHVtblNldHRpbmdzID1cbiAgfCBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NcbiAgfCB7XG4gICAgICBlZGl0b3I/OiBUeXBlPEhvdENlbGxFZGl0b3JDb21wb25lbnQ8YW55Pj4gfCAgSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWydlZGl0b3InXTtcbiAgICAgIHJlbmRlcmVyPzogVHlwZTxIb3RDZWxsUmVuZGVyZXJDb21wb25lbnQ8YW55LCBhbnk+PiB8IFRlbXBsYXRlUmVmPGFueT4gfCBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3NbJ3JlbmRlcmVyJ107XG4gICAgICB2YWxpZGF0b3I/OiBDdXN0b21WYWxpZGF0b3JGbjxhbnk+IHwgSGFuZHNvbnRhYmxlLkNvbHVtblNldHRpbmdzWyd2YWxpZGF0b3InXTtcbiAgICAgIHJlbmRlcmVyUHJvcHM/OiBhbnk7XG4gICAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBFZGl0b3JSZWZlcmVuY2VJbnRlcm5hbCB7XG4gIF9lZGl0b3JDb21wb25lbnRSZWZlcmVuY2U/OiBDb21wb25lbnRSZWY8SG90Q2VsbEVkaXRvckNvbXBvbmVudDxhbnk+PjtcbiAgX2Vudmlyb25tZW50SW5qZWN0b3I/OiBFbnZpcm9ubWVudEluamVjdG9yO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtblNldHRpbmdzSW50ZXJuYWwgZXh0ZW5kcyBIYW5kc29udGFibGUuQ29sdW1uU2V0dGluZ3MsIEVkaXRvclJlZmVyZW5jZUludGVybmFsIHt9XG4iXX0=
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { createComponent, Injectable } from '@angular/core';
|
|
2
|
-
import { baseRenderer
|
|
2
|
+
import { baseRenderer } from 'handsontable/renderers';
|
|
3
3
|
import Handsontable from 'handsontable/base';
|
|
4
4
|
import { HotCellRendererComponent } from './hot-cell-renderer.component';
|
|
5
|
-
import { HotCellRendererAdvancedComponent } from './hot-cell-renderer-advanced.component';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export const INVALID_RENDERER_WARNING = 'The provided renderer component was not recognized as a valid custom renderer. ' +
|
|
8
7
|
'It must either extend HotCellRendererComponent or be a valid TemplateRef. ' +
|
|
9
8
|
'Please ensure that your custom renderer is implemented correctly and imported from the proper source.';
|
|
10
|
-
export const INVALID_ADVANCED_RENDERER_WARNING = 'The provided renderer component was not recognized as a valid custom renderer. ' +
|
|
11
|
-
'It must either extend HotCellRendererAdvancedComponent. ' +
|
|
12
|
-
'Please ensure that your custom renderer is implemented correctly and imported from the proper source.';
|
|
13
9
|
/**
|
|
14
10
|
* Type guard that checks if the given object is a TemplateRef.
|
|
15
11
|
*
|
|
@@ -28,15 +24,6 @@ export function isTemplateRef(obj) {
|
|
|
28
24
|
export function isHotCellRendererComponent(obj) {
|
|
29
25
|
return obj?.RENDERER_MARKER === HotCellRendererComponent.RENDERER_MARKER;
|
|
30
26
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Type guard to check if an object is an instance of HotCellRendererAdvancedComponent.
|
|
33
|
-
*
|
|
34
|
-
* @param obj - The object to check.
|
|
35
|
-
* @returns True if the object is a HotCellRendererAdvancedComponent, false otherwise.
|
|
36
|
-
*/
|
|
37
|
-
export function isAdvancedHotCellRendererComponent(obj) {
|
|
38
|
-
return obj?.RENDERER_MARKER === HotCellRendererAdvancedComponent.RENDERER_MARKER;
|
|
39
|
-
}
|
|
40
27
|
/**
|
|
41
28
|
* Service for dynamically creating Angular components or templates as custom renderers for Handsontable.
|
|
42
29
|
*
|
|
@@ -66,18 +53,14 @@ export class DynamicComponentService {
|
|
|
66
53
|
createRendererFromComponent(component, componentProps = {}, register = false) {
|
|
67
54
|
return (instance, td, row, col, prop, value, cellProperties) => {
|
|
68
55
|
const properties = {
|
|
69
|
-
value,
|
|
70
|
-
instance,
|
|
71
|
-
td,
|
|
72
|
-
row,
|
|
73
|
-
col,
|
|
74
|
-
prop,
|
|
75
|
-
cellProperties,
|
|
56
|
+
value, instance, td, row, col, prop, cellProperties
|
|
76
57
|
};
|
|
77
58
|
if (componentProps) {
|
|
78
59
|
Object.assign(cellProperties, { rendererProps: componentProps });
|
|
79
60
|
}
|
|
80
|
-
const rendererParameters = [
|
|
61
|
+
const rendererParameters = [
|
|
62
|
+
instance, td, row, col, prop, value, cellProperties
|
|
63
|
+
];
|
|
81
64
|
baseRenderer.apply(this, rendererParameters);
|
|
82
65
|
td.innerHTML = '';
|
|
83
66
|
if (isTemplateRef(component)) {
|
|
@@ -96,42 +79,6 @@ export class DynamicComponentService {
|
|
|
96
79
|
return td;
|
|
97
80
|
};
|
|
98
81
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Creates a custom renderer function using rendererFactory from Handsontable.
|
|
101
|
-
* This is an alternative implementation that uses the factory pattern.
|
|
102
|
-
*
|
|
103
|
-
* @param component - The Angular component type to use as renderer.
|
|
104
|
-
* @param componentProps - An object containing additional properties to use by the renderer.
|
|
105
|
-
* @param register - If true, registers the renderer with Handsontable using the component's name.
|
|
106
|
-
* @returns A renderer function that can be used in Handsontable's configuration.
|
|
107
|
-
*/
|
|
108
|
-
createRendererWithFactory(component, componentProps = {}, register = false) {
|
|
109
|
-
return rendererFactory(({ instance, td, row, column, prop, value, cellProperties }) => {
|
|
110
|
-
const properties = {
|
|
111
|
-
value,
|
|
112
|
-
instance,
|
|
113
|
-
td,
|
|
114
|
-
row,
|
|
115
|
-
col: column,
|
|
116
|
-
prop,
|
|
117
|
-
cellProperties,
|
|
118
|
-
};
|
|
119
|
-
if (componentProps) {
|
|
120
|
-
Object.assign(cellProperties, { rendererProps: componentProps });
|
|
121
|
-
}
|
|
122
|
-
td.innerHTML = '';
|
|
123
|
-
if (isAdvancedHotCellRendererComponent(component)) {
|
|
124
|
-
const componentRef = this.createComponent(component, properties);
|
|
125
|
-
this.attachComponentToElement(componentRef, td);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
console.warn(INVALID_ADVANCED_RENDERER_WARNING);
|
|
129
|
-
}
|
|
130
|
-
if (register && isAdvancedHotCellRendererComponent(component)) {
|
|
131
|
-
registerRenderer(component.constructor.name, component);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
82
|
/**
|
|
136
83
|
* Attaches an embedded view created from a TemplateRef to a given DOM element.
|
|
137
84
|
*
|
|
@@ -158,9 +105,9 @@ export class DynamicComponentService {
|
|
|
158
105
|
*/
|
|
159
106
|
createComponent(component, rendererParameters) {
|
|
160
107
|
const componentRef = createComponent(component, {
|
|
161
|
-
environmentInjector: this.environmentInjector
|
|
108
|
+
environmentInjector: this.environmentInjector
|
|
162
109
|
});
|
|
163
|
-
Object.keys(rendererParameters).forEach(
|
|
110
|
+
Object.keys(rendererParameters).forEach(key => {
|
|
164
111
|
if (rendererParameters.hasOwnProperty(key)) {
|
|
165
112
|
componentRef.setInput(key, rendererParameters[key]);
|
|
166
113
|
}
|
|
@@ -179,7 +126,8 @@ export class DynamicComponentService {
|
|
|
179
126
|
* @param container - The target DOM element to which the component's root node will be appended.
|
|
180
127
|
*/
|
|
181
128
|
attachComponentToElement(componentRef, container) {
|
|
182
|
-
const domElem = componentRef.hostView
|
|
129
|
+
const domElem = componentRef.hostView
|
|
130
|
+
.rootNodes[0];
|
|
183
131
|
container.appendChild(domElem);
|
|
184
132
|
}
|
|
185
133
|
/**
|
|
@@ -200,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
200
148
|
providedIn: 'root',
|
|
201
149
|
}]
|
|
202
150
|
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }]; } });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LWR5bmFtaWMtcmVuZGVyZXItY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ob3QtdGFibGUvc3JjL2xpYi9yZW5kZXJlci9ob3QtZHluYW1pYy1yZW5kZXJlci1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsZUFBZSxFQUdmLFVBQVUsRUFHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFnQixnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RyxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7QUFJMUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQ25DLGlGQUFpRjtJQUNqRiw0RUFBNEU7SUFDNUUsdUdBQXVHLENBQUM7QUFFMUcsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQzVDLGlGQUFpRjtJQUNqRiwwREFBMEQ7SUFDMUQsdUdBQXVHLENBQUM7QUFlMUc7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFJLEdBQVE7SUFDdkMsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsa0JBQWtCLEtBQUssVUFBVSxDQUFDO0FBQzdELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxHQUFRO0lBQ2pELE9BQU8sR0FBRyxFQUFFLGVBQWUsS0FBSyx3QkFBd0IsQ0FBQyxlQUFlLENBQUM7QUFDM0UsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGtDQUFrQyxDQUFDLEdBQVE7SUFDekQsT0FBTyxHQUFHLEVBQUUsZUFBZSxLQUFLLGdDQUFn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QUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDckQ7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRywyQ0FBMkMsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUM7YUFDbkc7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssd0JBQXdCLENBQUksWUFBNkIsRUFBRSxTQUFzQjtRQUN2RixNQUFNLE9BQU8sR0FBSSxZQUFZLENBQUMsUUFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQzFGLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBSSxZQUE2QjtRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBdExVLHVCQUF1Qjs0R0FBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjcmVhdGVDb21wb25lbnQsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgSW5qZWN0YWJsZSxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBiYXNlUmVuZGVyZXIsIEJhc2VSZW5kZXJlciwgcmVnaXN0ZXJSZW5kZXJlciwgcmVuZGVyZXJGYWN0b3J5IH0gZnJvbSAnaGFuZHNvbnRhYmxlL3JlbmRlcmVycyc7XG5pbXBvcnQgSGFuZHNvbnRhYmxlIGZyb20gJ2hhbmRzb250YWJsZS9iYXNlJztcbmltcG9ydCB7IEhvdENlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vaG90LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEhvdENlbGxSZW5kZXJlckFkdmFuY2VkQ29tcG9uZW50IH0gZnJvbSAnLi9ob3QtY2VsbC1yZW5kZXJlci1hZHZhbmNlZC5jb21wb25lbnQnO1xuXG50eXBlIEJhc2VSZW5kZXJlclBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJzPEJhc2VSZW5kZXJlcj47XG5cbmV4cG9ydCBjb25zdCBJTlZBTElEX1JFTkRFUkVSX1dBUk5JTkcgPVxuICAnVGhlIHByb3ZpZGVkIHJlbmRlcmVyIGNvbXBvbmVudCB3YXMgbm90IHJlY29nbml6ZWQgYXMgYSB2YWxpZCBjdXN0b20gcmVuZGVyZXIuICcgK1xuICAnSXQgbXVzdCBlaXRoZXIgZXh0ZW5kIEhvdENlbGxSZW5kZXJlckNvbXBvbmVudCBvciBiZSBhIHZhbGlkIFRlbXBsYXRlUmVmLiAnICtcbiAgJ1BsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIGN1c3RvbSByZW5kZXJlciBpcyBpbXBsZW1lbnRlZCBjb3JyZWN0bHkgYW5kIGltcG9ydGVkIGZyb20gdGhlIHByb3BlciBzb3VyY2UuJztcblxuZXhwb3J0IGNvbnN0IElOVkFMSURfQURWQU5DRURfUkVOREVSRVJfV0FSTklORyA9XG4gICdUaGUgcHJvdmlkZWQgcmVuZGVyZXIgY29tcG9uZW50IHdhcyBub3QgcmVjb2duaXplZCBhcyBhIHZhbGlkIGN1c3RvbSByZW5kZXJlci4gJyArXG4gICdJdCBtdXN0IGVpdGhlciBleHRlbmQgSG90Q2VsbFJlbmRlcmVyQWR2YW5jZWRDb21wb25lbnQuICcgK1xuICAnUGxlYXNlIGVuc3VyZSB0aGF0IHlvdXIgY3VzdG9tIHJlbmRlcmVyIGlzIGltcGxlbWVudGVkIGNvcnJlY3RseSBhbmQgaW1wb3J0ZWQgZnJvbSB0aGUgcHJvcGVyIHNvdXJjZS4nO1xuXG4vKipcbiAqIEFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGEgSGFuZHNvbnRhYmxlIHJlbmRlcmVyLlxuICovXG5pbnRlcmZhY2UgQmFzZVJlbmRlcmVyUGFyYW1ldGVyc09iamVjdCB7XG4gIGluc3RhbmNlOiBIYW5kc29udGFibGUuQ29yZTtcbiAgdGQ6IEhUTUxUYWJsZUNlbGxFbGVtZW50O1xuICByb3c6IG51bWJlcjtcbiAgY29sOiBudW1iZXI7XG4gIHByb3A6IHN0cmluZyB8IG51bWJlcjtcbiAgdmFsdWU6IGFueTtcbiAgY2VsbFByb3BlcnRpZXM6IEhhbmRzb250YWJsZS5DZWxsUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRoYXQgY2hlY2tzIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBUZW1wbGF0ZVJlZi5cbiAqXG4gKiBAcGFyYW0gb2JqIC0gVGhlIG9iamVjdCB0byBjaGVjay5cbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIG9iamVjdCBpcyBhIFRlbXBsYXRlUmVmOyBvdGhlcndpc2UsIGZhbHNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUZW1wbGF0ZVJlZjxUPihvYmo6IGFueSk6IG9iaiBpcyBUZW1wbGF0ZVJlZjxUPiB7XG4gIHJldHVybiBvYmogJiYgdHlwZW9mIG9iai5jcmVhdGVFbWJlZGRlZFZpZXcgPT09ICdmdW5jdGlvbic7XG59XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgSG90Q2VsbFJlbmRlcmVyQ29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgSG90Q2VsbFJlbmRlcmVyQ29tcG9uZW50LCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0hvdENlbGxSZW5kZXJlckNvbXBvbmVudChvYmo6IGFueSk6IG9iaiBpcyBUeXBlPEhvdENlbGxSZW5kZXJlckNvbXBvbmVudD4ge1xuICByZXR1cm4gb2JqPy5SRU5ERVJFUl9NQVJLRVIgPT09IEhvdENlbGxSZW5kZXJlckNvbXBvbmVudC5SRU5ERVJFUl9NQVJLRVI7XG59XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhbiBvYmplY3QgaXMgYW4gaW5zdGFuY2Ugb2YgSG90Q2VsbFJlbmRlcmVyQWR2YW5jZWRDb21wb25lbnQuXG4gKlxuICogQHBhcmFtIG9iaiAtIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBvYmplY3QgaXMgYSBIb3RDZWxsUmVuZGVyZXJBZHZhbmNlZENvbXBvbmVudCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBZHZhbmNlZEhvdENlbGxSZW5kZXJlckNvbXBvbmVudChvYmo6IGFueSk6IG9iaiBpcyBUeXBlPEhvdENlbGxSZW5kZXJlckFkdmFuY2VkQ29tcG9uZW50PiB7XG4gIHJldHVybiBvYmo/LlJFTkRFUkVSX01BUktFUiA9PT0gSG90Q2VsbFJlbmRlcmVyQWR2YW5jZWRDb21wb25lbnQuUkVOREVSRVJfTUFSS0VSO1xufVxuXG4vKipcbiAqIFNlcnZpY2UgZm9yIGR5bmFtaWNhbGx5IGNyZWF0aW5nIEFuZ3VsYXIgY29tcG9uZW50cyBvciB0ZW1wbGF0ZXMgYXMgY3VzdG9tIHJlbmRlcmVycyBmb3IgSGFuZHNvbnRhYmxlLlxuICpcbiAqIFRoaXMgc2VydmljZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBhIHJlbmRlcmVyIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYSBnaXZlbiBBbmd1bGFyIGNvbXBvbmVudCBvciBUZW1wbGF0ZVJlZlxuICogc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBhcyBhIEhhbmRzb250YWJsZSByZW5kZXJlci5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgY3VzdG9tUmVuZGVyZXIgPSBkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVSZW5kZXJlckZyb21Db21wb25lbnQoTXlSZW5kZXJlckNvbXBvbmVudCwgeyBzb21lUHJvcDogdmFsdWUgfSk7XG4gKiAvLyBVc2UgY3VzdG9tUmVuZGVyZXIgaW4geW91ciBIYW5kc29udGFibGUgY29uZmlndXJhdGlvblxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsIHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3Rvcikge31cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGN1c3RvbSByZW5kZXJlciBmdW5jdGlvbiBmb3IgSGFuZHNvbnRhYmxlIGZyb20gYW4gQW5ndWxhciBjb21wb25lbnQgb3IgVGVtcGxhdGVSZWYuXG4gICAqIFRoZSBnZW5lcmF0ZWQgcmVuZGVyZXIgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIGJ5IEhhbmRzb250YWJsZSB0byByZW5kZXIgY2VsbCBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIEFuZ3VsYXIgY29tcG9uZW50IHR5cGUgb3IgVGVtcGxhdGVSZWYgdG8gdXNlIGFzIHJlbmRlcmVyLlxuICAgKiBAcGFyYW0gY29tcG9uZW50UHJvcHMgLSBBbiBvYmplY3QgY29udGFpbmluZyBhZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gdXNlIGJ5IHRoZSByZW5kZXJlci5cbiAgICogQHBhcmFtIHJlZ2lzdGVyIC0gSWYgdHJ1ZSwgcmVnaXN0ZXJzIHRoZSByZW5kZXJlciB3aXRoIEhhbmRzb250YWJsZSB1c2luZyB0aGUgY29tcG9uZW50J3MgbmFtZS5cbiAgICogQHJldHVybnMgQSByZW5kZXJlciBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIGluIEhhbmRzb250YWJsZSdzIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBjcmVhdGVSZW5kZXJlckZyb21Db21wb25lbnQoXG4gICAgY29tcG9uZW50OiBUeXBlPEhvdENlbGxSZW5kZXJlckNvbXBvbmVudD4gfCBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGNvbXBvbmVudFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gICAgcmVnaXN0ZXI6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICByZXR1cm4gKFxuICAgICAgaW5zdGFuY2U6IEhhbmRzb250YWJsZS5Db3JlLFxuICAgICAgdGQ6IEhUTUxUYWJsZUNlbGxFbGVtZW50LFxuICAgICAgcm93OiBudW1iZXIsXG4gICAgICBjb2w6IG51bWJlcixcbiAgICAgIHByb3A6IHN0cmluZyB8IG51bWJlcixcbiAgICAgIHZhbHVlOiBhbnksXG4gICAgICBjZWxsUHJvcGVydGllczogSGFuZHNvbnRhYmxlLkNlbGxQcm9wZXJ0aWVzXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzOiBCYXNlUmVuZGVyZXJQYXJhbWV0ZXJzT2JqZWN0ID0ge1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgIHRkLFxuICAgICAgICByb3csXG4gICAgICAgIGNvbCxcbiAgICAgICAgcHJvcCxcbiAgICAgICAgY2VsbFByb3BlcnRpZXMsXG4gICAgICB9O1xuXG4gICAgICBpZiAoY29tcG9uZW50UHJvcHMpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjZWxsUHJvcGVydGllcywgeyByZW5kZXJlclByb3BzOiBjb21wb25lbnRQcm9wcyB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVuZGVyZXJQYXJhbWV0ZXJzOiBCYXNlUmVuZGVyZXJQYXJhbWV0ZXJzID0gW2luc3RhbmNlLCB0ZCwgcm93LCBjb2wsIHByb3AsIHZhbHVlLCBjZWxsUHJvcGVydGllc107XG5cbiAgICAgIGJhc2VSZW5kZXJlci5hcHBseSh0aGlzLCByZW5kZXJlclBhcmFtZXRlcnMpO1xuXG4gICAgICB0ZC5pbm5lckhUTUwgPSAnJztcblxuICAgICAgaWYgKGlzVGVtcGxhdGVSZWYoY29tcG9uZW50KSkge1xuICAgICAgICB0aGlzLmF0dGFjaFRlbXBsYXRlVG9FbGVtZW50KGNvbXBvbmVudCwgdGQsIHByb3BlcnRpZXMpO1xuICAgICAgfSBlbHNlIGlmIChpc0hvdENlbGxSZW5kZXJlckNvbXBvbmVudChjb21wb25lbnQpKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgcHJvcGVydGllcyk7XG4gICAgICAgIHRoaXMuYXR0YWNoQ29tcG9uZW50VG9FbGVtZW50KGNvbXBvbmVudFJlZiwgdGQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKElOVkFMSURfUkVOREVSRVJfV0FSTklORyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZWdpc3RlciAmJiBpc0hvdENlbGxSZW5kZXJlckNvbXBvbmVudChjb21wb25lbnQpKSB7XG4gICAgICAgIEhhbmRzb250YWJsZS5yZW5kZXJlcnMucmVnaXN0ZXJSZW5kZXJlcihjb21wb25lbnQuY29uc3RydWN0b3IubmFtZSwgY29tcG9uZW50IGFzIGFueSBhcyBCYXNlUmVuZGVyZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGQ7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgY3VzdG9tIHJlbmRlcmVyIGZ1bmN0aW9uIHVzaW5nIHJlbmRlcmVyRmFjdG9yeSBmcm9tIEhhbmRzb250YWJsZS5cbiAgICogVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgdGhlIGZhY3RvcnkgcGF0dGVybi5cbiAgICpcbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBBbmd1bGFyIGNvbXBvbmVudCB0eXBlIHRvIHVzZSBhcyByZW5kZXJlci5cbiAgICogQHBhcmFtIGNvbXBvbmVudFByb3BzIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHVzZSBieSB0aGUgcmVuZGVyZXIuXG4gICAqIEBwYXJhbSByZWdpc3RlciAtIElmIHRydWUsIHJlZ2lzdGVycyB0aGUgcmVuZGVyZXIgd2l0aCBIYW5kc29udGFibGUgdXNpbmcgdGhlIGNvbXBvbmVudCdzIG5hbWUuXG4gICAqIEByZXR1cm5zIEEgcmVuZGVyZXIgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBpbiBIYW5kc29udGFibGUncyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgY3JlYXRlUmVuZGVyZXJXaXRoRmFjdG9yeShcbiAgICBjb21wb25lbnQ6IFR5cGU8SG90Q2VsbFJlbmRlcmVyQWR2YW5jZWRDb21wb25lbnQ+LFxuICAgIGNvbXBvbmVudFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gICAgcmVnaXN0ZXI6IGJvb2xlYW4gPSBmYWxzZVxuICApIHtcbiAgICByZXR1cm4gcmVuZGVyZXJGYWN0b3J5KCh7XG4gICAgICBpbnN0YW5jZSxcbiAgICAgIHRkLFxuICAgICAgcm93LFxuICAgICAgY29sdW1uLFxuICAgICAgcHJvcCxcbiAgICAgIHZhbHVlLFxuICAgICAgY2VsbFByb3BlcnRpZXNcbiAgICB9KSA9PiB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzOiBCYXNlUmVuZGVyZXJQYXJhbWV0ZXJzT2JqZWN0ID0ge1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgIHRkLFxuICAgICAgICByb3csXG4gICAgICAgIGNvbDogY29sdW1uLFxuICAgICAgICBwcm9wLFxuICAgICAgICBjZWxsUHJvcGVydGllcyxcbiAgICAgIH07XG5cbiAgICAgIGlmIChjb21wb25lbnRQcm9wcykge1xuICAgICAgICBPYmplY3QuYXNzaWduKGNlbGxQcm9wZXJ0aWVzLCB7IHJlbmRlcmVyUHJvcHM6IGNvbXBvbmVudFByb3BzIH0pO1xuICAgICAgfVxuXG4gICAgICB0ZC5pbm5lckhUTUwgPSAnJztcblxuICAgICAgaWYgKGlzQWR2YW5jZWRIb3RDZWxsUmVuZGVyZXJDb21wb25lbnQoY29tcG9uZW50KSkge1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHByb3BlcnRpZXMpO1xuICAgICAgICB0aGlzLmF0dGFjaENvbXBvbmVudFRvRWxlbWVudChjb21wb25lbnRSZWYsIHRkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihJTlZBTElEX0FEVkFOQ0VEX1JFTkRFUkVSX1dBUk5JTkcpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVnaXN0ZXIgJiYgaXNBZHZhbmNlZEhvdENlbGxSZW5kZXJlckNvbXBvbmVudChjb21wb25lbnQpKSB7XG4gICAgICAgIHJlZ2lzdGVyUmVuZGVyZXIoY29tcG9uZW50LmNvbnN0cnVjdG9yLm5hbWUsIGNvbXBvbmVudCBhcyBhbnkgYXMgQmFzZVJlbmRlcmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhbiBlbWJlZGRlZCB2aWV3IGNyZWF0ZWQgZnJvbSBhIFRlbXBsYXRlUmVmIHRvIGEgZ2l2ZW4gRE9NIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSAtIFRoZSBUZW1wbGF0ZVJlZiB0byBjcmVhdGUgYW4gZW1iZWRkZWQgdmlldyBmcm9tLlxuICAgKiBAcGFyYW0gdGRFbCAtIFRoZSB0YXJnZXQgRE9NIGVsZW1lbnQgKGEgdGFibGUgY2VsbCkgdG8gd2hpY2ggdGhlIHZpZXcgd2lsbCBiZSBhcHBlbmRlZC5cbiAgICogQHBhcmFtIHByb3BlcnRpZXMgLSBDb250ZXh0IG9iamVjdCBwcm92aWRpbmcgcHJvcGVydGllcyB0byBiZSB1c2VkIHdpdGhpbiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBwcml2YXRlIGF0dGFjaFRlbXBsYXRlVG9FbGVtZW50KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LCB0ZEVsOiBIVE1MVGFibGVDZWxsRWxlbWVudCwgcHJvcGVydGllczogQmFzZVJlbmRlcmVyUGFyYW1ldGVyc09iamVjdCkge1xuICAgIGNvbnN0IGVtYmVkZGVkVmlldzogRW1iZWRkZWRWaWV3UmVmPGFueT4gPSB0ZW1wbGF0ZS5jcmVhdGVFbWJlZGRlZFZpZXcoe1xuICAgICAgJGltcGxpY2l0OiBwcm9wZXJ0aWVzLnZhbHVlLFxuICAgICAgLi4ucHJvcGVydGllcyxcbiAgICB9KTtcbiAgICBlbWJlZGRlZFZpZXcuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgZW1iZWRkZWRWaWV3LnJvb3ROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICB0ZEVsLmFwcGVuZENoaWxkKG5vZGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIER5bmFtaWNhbGx5IGNyZWF0ZXMgYW4gQW5ndWxhciBjb21wb25lbnQgb2YgdGhlIGdpdmVuIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgQW5ndWxhciBjb21wb25lbnQgdHlwZSB0byBiZSBjcmVhdGVkLlxuICAgKiBAcGFyYW0gcmVuZGVyZXJQYXJhbWV0ZXJzIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgaW5wdXQgcHJvcGVydGllcyB0byBhc3NpZ24gdG8gdGhlIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgICogQHJldHVybnMgVGhlIENvbXBvbmVudFJlZiBvZiB0aGUgZHluYW1pY2FsbHkgY3JlYXRlZCBjb21wb25lbnQuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvbXBvbmVudDxUIGV4dGVuZHMgSG90Q2VsbFJlbmRlcmVyQ29tcG9uZW50PihcbiAgICBjb21wb25lbnQ6IFR5cGU8VD4sXG4gICAgcmVuZGVyZXJQYXJhbWV0ZXJzOiBCYXNlUmVuZGVyZXJQYXJhbWV0ZXJzT2JqZWN0XG4gICk6IENvbXBvbmVudFJlZjxUPiB7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwge1xuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmtleXMocmVuZGVyZXJQYXJhbWV0ZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmIChyZW5kZXJlclBhcmFtZXRlcnMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoa2V5LCByZW5kZXJlclBhcmFtZXRlcnNba2V5XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oYElucHV0IHByb3BlcnR5IFwiJHtrZXl9XCIgZG9lcyBub3QgZXhpc3Qgb24gY29tcG9uZW50IGluc3RhbmNlOiAke2NvbXBvbmVudD8ubmFtZX0uYCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBkeW5hbWljYWxseSBjcmVhdGVkIGNvbXBvbmVudCdzIHZpZXcgdG8gYSBzcGVjaWZpZWQgRE9NIGNvbnRhaW5lciBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50UmVmIC0gVGhlIHJlZmVyZW5jZSB0byB0aGUgZHluYW1pY2FsbHkgY3JlYXRlZCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBjb250YWluZXIgLSBUaGUgdGFyZ2V0IERPTSBlbGVtZW50IHRvIHdoaWNoIHRoZSBjb21wb25lbnQncyByb290IG5vZGUgd2lsbCBiZSBhcHBlbmRlZC5cbiAgICovXG4gIHByaXZhdGUgYXR0YWNoQ29tcG9uZW50VG9FbGVtZW50PFQ+KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+LCBjb250YWluZXI6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPFQ+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIGEgZHluYW1pY2FsbHkgY3JlYXRlZCBjb21wb25lbnQgYW5kIGRldGFjaGVzIGl0cyB2aWV3IGZyb20gdGhlIEFuZ3VsYXIgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBjb21wb25lbnRSZWYgLSBUaGUgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQgdG8gYmUgZGVzdHJveWVkLlxuICAgKi9cbiAgZGVzdHJveUNvbXBvbmVudDxUPihjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPik6IHZvaWQge1xuICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LWR5bmFtaWMtcmVuZGVyZXItY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ob3QtdGFibGUvc3JjL2xpYi9yZW5kZXJlci9ob3QtZHluYW1pYy1yZW5kZXJlci1jb21wb25lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ3lCLGVBQWUsRUFDUCxVQUFVLEVBRWpELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQWUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7QUFJdkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQ25DLGlGQUFpRjtJQUNqRiw0RUFBNEU7SUFDNUUsdUdBQXVHLENBQUM7QUFlMUc7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFJLEdBQVE7SUFDdkMsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsa0JBQWtCLEtBQUssVUFBVSxDQUFDO0FBQzdELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxHQUFRO0lBQ2pELE9BQU8sR0FBRyxFQUFFLGVBQWUsS0FBSyx3QkFBd0IsQ0FBQyxlQUFlLENBQUM7QUFDM0UsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUlILE1BQU0sT0FBTyx1QkFBdUI7SUFFeEI7SUFDQTtJQUZWLFlBQ1UsTUFBc0IsRUFDdEIsbUJBQXdDO1FBRHhDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFDL0MsQ0FBQztJQUVKOzs7Ozs7OztPQVFHO0lBQ0gsMkJBQTJCLENBQ3pCLFNBQTRELEVBQzVELGlCQUFzQyxFQUFFLEVBQ3hDLFdBQW9C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Q0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssd0JBQXdCLENBQzlCLFlBQTZCLEVBQzdCLFNBQXNCO1FBRXRCLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUErQjthQUMxRCxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQy9CLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBSSxZQUE2QjtRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBNUlVLHVCQUF1Qjs0R0FBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZiwgQ29tcG9uZW50UmVmLCBjcmVhdGVDb21wb25lbnQsXG4gIEVtYmVkZGVkVmlld1JlZiwgRW52aXJvbm1lbnRJbmplY3RvciwgSW5qZWN0YWJsZSxcbiAgVGVtcGxhdGVSZWYsIFR5cGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2Jhc2VSZW5kZXJlciwgQmFzZVJlbmRlcmVyfSBmcm9tICdoYW5kc29udGFibGUvcmVuZGVyZXJzJztcbmltcG9ydCBIYW5kc29udGFibGUgZnJvbSAnaGFuZHNvbnRhYmxlL2Jhc2UnO1xuaW1wb3J0IHtIb3RDZWxsUmVuZGVyZXJDb21wb25lbnR9IGZyb20gJy4vaG90LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxudHlwZSBCYXNlUmVuZGVyZXJQYXJhbWV0ZXJzID0gUGFyYW1ldGVyczxCYXNlUmVuZGVyZXI+O1xuXG5leHBvcnQgY29uc3QgSU5WQUxJRF9SRU5ERVJFUl9XQVJOSU5HID1cbiAgJ1RoZSBwcm92aWRlZCByZW5kZXJlciBjb21wb25lbnQgd2FzIG5vdCByZWNvZ25pemVkIGFzIGEgdmFsaWQgY3VzdG9tIHJlbmRlcmVyLiAnICtcbiAgJ0l0IG11c3QgZWl0aGVyIGV4dGVuZCBIb3RDZWxsUmVuZGVyZXJDb21wb25lbnQgb3IgYmUgYSB2YWxpZCBUZW1wbGF0ZVJlZi4gJyArXG4gICdQbGVhc2UgZW5zdXJlIHRoYXQgeW91ciBjdXN0b20gcmVuZGVyZXIgaXMgaW1wbGVtZW50ZWQgY29ycmVjdGx5IGFuZCBpbXBvcnRlZCBmcm9tIHRoZSBwcm9wZXIgc291cmNlLic7XG5cbi8qKlxuICogQW4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgcGFyYW1ldGVycyBwYXNzZWQgdG8gYSBIYW5kc29udGFibGUgcmVuZGVyZXIuXG4gKi9cbmludGVyZmFjZSBCYXNlUmVuZGVyZXJQYXJhbWV0ZXJzT2JqZWN0IHtcbiAgaW5zdGFuY2U6IEhhbmRzb250YWJsZS5Db3JlO1xuICB0ZDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQ7XG4gIHJvdzogbnVtYmVyO1xuICBjb2w6IG51bWJlcjtcbiAgcHJvcDogc3RyaW5nIHwgbnVtYmVyO1xuICB2YWx1ZTogYW55O1xuICBjZWxsUHJvcGVydGllczogSGFuZHNvbnRhYmxlLkNlbGxQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdGhhdCBjaGVja3MgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBhIFRlbXBsYXRlUmVmLlxuICpcbiAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGEgVGVtcGxhdGVSZWY7IG90aGVyd2lzZSwgZmFsc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RlbXBsYXRlUmVmPFQ+KG9iajogYW55KTogb2JqIGlzIFRlbXBsYXRlUmVmPFQ+IHtcbiAgcmV0dXJuIG9iaiAmJiB0eXBlb2Ygb2JqLmNyZWF0ZUVtYmVkZGVkVmlldyA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGFuIG9iamVjdCBpcyBhbiBpbnN0YW5jZSBvZiBIb3RDZWxsUmVuZGVyZXJDb21wb25lbnQuXG4gKlxuICogQHBhcmFtIG9iaiAtIFRoZSBvYmplY3QgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBvYmplY3QgaXMgYSBIb3RDZWxsUmVuZGVyZXJDb21wb25lbnQsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSG90Q2VsbFJlbmRlcmVyQ29tcG9uZW50KG9iajogYW55KTogb2JqIGlzIFR5cGU8SG90Q2VsbFJlbmRlcmVyQ29tcG9uZW50PiB7XG4gIHJldHVybiBvYmo/LlJFTkRFUkVSX01BUktFUiA9PT0gSG90Q2VsbFJlbmRlcmVyQ29tcG9uZW50LlJFTkRFUkVSX01BUktFUjtcbn1cblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBkeW5hbWljYWxseSBjcmVhdGluZyBBbmd1bGFyIGNvbXBvbmVudHMgb3IgdGVtcGxhdGVzIGFzIGN1c3RvbSByZW5kZXJlcnMgZm9yIEhhbmRzb250YWJsZS5cbiAqXG4gKiBUaGlzIHNlcnZpY2UgYWxsb3dzIHlvdSB0byBjcmVhdGUgYSByZW5kZXJlciBmdW5jdGlvbiB0aGF0IHdyYXBzIGEgZ2l2ZW4gQW5ndWxhciBjb21wb25lbnQgb3IgVGVtcGxhdGVSZWZcbiAqIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYXMgYSBIYW5kc29udGFibGUgcmVuZGVyZXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGN1c3RvbVJlbmRlcmVyID0gZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlUmVuZGVyZXJGcm9tQ29tcG9uZW50KE15UmVuZGVyZXJDb21wb25lbnQsIHsgc29tZVByb3A6IHZhbHVlIH0pO1xuICogLy8gVXNlIGN1c3RvbVJlbmRlcmVyIGluIHlvdXIgSGFuZHNvbnRhYmxlIGNvbmZpZ3VyYXRpb25cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvclxuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBjdXN0b20gcmVuZGVyZXIgZnVuY3Rpb24gZm9yIEhhbmRzb250YWJsZSBmcm9tIGFuIEFuZ3VsYXIgY29tcG9uZW50IG9yIFRlbXBsYXRlUmVmLlxuICAgKiBUaGUgZ2VuZXJhdGVkIHJlbmRlcmVyIGZ1bmN0aW9uIHdpbGwgYmUgdXNlZCBieSBIYW5kc29udGFibGUgdG8gcmVuZGVyIGNlbGwgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBBbmd1bGFyIGNvbXBvbmVudCB0eXBlIG9yIFRlbXBsYXRlUmVmIHRvIHVzZSBhcyByZW5kZXJlci5cbiAgICogQHBhcmFtIGNvbXBvbmVudFByb3BzIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHVzZSBieSB0aGUgcmVuZGVyZXIuXG4gICAqIEBwYXJhbSByZWdpc3RlciAtIElmIHRydWUsIHJlZ2lzdGVycyB0aGUgcmVuZGVyZXIgd2l0aCBIYW5kc29udGFibGUgdXNpbmcgdGhlIGNvbXBvbmVudCdzIG5hbWUuXG4gICAqIEByZXR1cm5zIEEgcmVuZGVyZXIgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBpbiBIYW5kc29udGFibGUncyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgY3JlYXRlUmVuZGVyZXJGcm9tQ29tcG9uZW50KFxuICAgIGNvbXBvbmVudDogVHlwZTxIb3RDZWxsUmVuZGVyZXJDb21wb25lbnQ+IHwgVGVtcGxhdGVSZWY8YW55PixcbiAgICBjb21wb25lbnRQcm9wczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LFxuICAgIHJlZ2lzdGVyOiBib29sZWFuID0gZmFsc2VcbiAgKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGluc3RhbmNlOiBIYW5kc29udGFibGUuQ29yZSxcbiAgICAgIHRkOiBIVE1MVGFibGVDZWxsRWxlbWVudCxcbiAgICAgIHJvdzogbnVtYmVyLFxuICAgICAgY29sOiBudW1iZXIsXG4gICAgICBwcm9wOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgICB2YWx1ZTogYW55LFxuICAgICAgY2VsbFByb3BlcnRpZXM6IEhhbmRzb250YWJsZS5DZWxsUHJvcGVydGllc1xuICAgICkgPT4ge1xuICAgICAgY29uc3QgcHJvcGVydGllczogQmFzZVJlbmRlcmVyUGFyYW1ldGVyc09iamVjdCA9IHtcbiAgICAgICAgdmFsdWUsIGluc3RhbmNlLCB0ZCwgcm93LCBjb2wsIHByb3AsIGNlbGxQcm9wZXJ0aWVzXG4gICAgICB9O1xuXG4gICAgICBpZiAoY29tcG9uZW50UHJvcHMpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjZWxsUHJvcGVydGllcywge3JlbmRlcmVyUHJvcHM6IGNvbXBvbmVudFByb3BzfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlbmRlcmVyUGFyYW1ldGVyczogQmFzZVJlbmRlcmVyUGFyYW1ldGVycyA9IFtcbiAgICAgICAgaW5zdGFuY2UsIHRkLCByb3csIGNvbCwgcHJvcCwgdmFsdWUsIGNlbGxQcm9wZXJ0aWVzXG4gICAgICBdO1xuXG4gICAgICBiYXNlUmVuZGVyZXIuYXBwbHkodGhpcywgcmVuZGVyZXJQYXJhbWV0ZXJzKTtcblxuICAgICAgdGQuaW5uZXJIVE1MID0gJyc7XG5cbiAgICAgIGlmIChpc1RlbXBsYXRlUmVmKGNvbXBvbmVudCkpIHtcbiAgICAgICAgdGhpcy5hdHRhY2hUZW1wbGF0ZVRvRWxlbWVudChjb21wb25lbnQsIHRkLCBwcm9wZXJ0aWVzKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNIb3RDZWxsUmVuZGVyZXJDb21wb25lbnQoY29tcG9uZW50KSl7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgcHJvcGVydGllcyk7XG4gICAgICAgIHRoaXMuYXR0YWNoQ29tcG9uZW50VG9FbGVtZW50KGNvbXBvbmVudFJlZiwgdGQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKElOVkFMSURfUkVOREVSRVJfV0FSTklORylcbiAgICAgIH1cblxuICAgICAgaWYgKHJlZ2lzdGVyICYmIGlzSG90Q2VsbFJlbmRlcmVyQ29tcG9uZW50KGNvbXBvbmVudCkpIHtcbiAgICAgICAgSGFuZHNvbnRhYmxlLnJlbmRlcmVycy5yZWdpc3RlclJlbmRlcmVyKFxuICAgICAgICAgIGNvbXBvbmVudC5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgICAgIGNvbXBvbmVudCBhcyBhbnkgYXMgQmFzZVJlbmRlcmVyXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0ZDtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGFuIGVtYmVkZGVkIHZpZXcgY3JlYXRlZCBmcm9tIGEgVGVtcGxhdGVSZWYgdG8gYSBnaXZlbiBET00gZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIHRlbXBsYXRlIC0gVGhlIFRlbXBsYXRlUmVmIHRvIGNyZWF0ZSBhbiBlbWJlZGRlZCB2aWV3IGZyb20uXG4gICAqIEBwYXJhbSB0ZEVsIC0gVGhlIHRhcmdldCBET00gZWxlbWVudCAoYSB0YWJsZSBjZWxsKSB0byB3aGljaCB0aGUgdmlldyB3aWxsIGJlIGFwcGVuZGVkLlxuICAgKiBAcGFyYW0gcHJvcGVydGllcyAtIENvbnRleHQgb2JqZWN0IHByb3ZpZGluZyBwcm9wZXJ0aWVzIHRvIGJlIHVzZWQgd2l0aGluIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHByaXZhdGUgYXR0YWNoVGVtcGxhdGVUb0VsZW1lbnQoXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgdGRFbDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQsXG4gICAgcHJvcGVydGllczogQmFzZVJlbmRlcmVyUGFyYW1ldGVyc09iamVjdFxuICApIHtcbiAgICBjb25zdCBlbWJlZGRlZFZpZXc6IEVtYmVkZGVkVmlld1JlZjxhbnk+ID0gdGVtcGxhdGUuY3JlYXRlRW1iZWRkZWRWaWV3KHtcbiAgICAgICRpbXBsaWNpdDogcHJvcGVydGllcy52YWx1ZSxcbiAgICAgIC4uLnByb3BlcnRpZXMsXG4gICAgfSk7XG4gICAgZW1iZWRkZWRWaWV3LmRldGVjdENoYW5nZXMoKTtcblxuICAgIGVtYmVkZGVkVmlldy5yb290Tm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgdGRFbC5hcHBlbmRDaGlsZChub2RlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEeW5hbWljYWxseSBjcmVhdGVzIGFuIEFuZ3VsYXIgY29tcG9uZW50IG9mIHRoZSBnaXZlbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIEFuZ3VsYXIgY29tcG9uZW50IHR5cGUgdG8gYmUgY3JlYXRlZC5cbiAgICogQHBhcmFtIHJlbmRlcmVyUGFyYW1ldGVycyAtIEFuIG9iamVjdCBjb250YWluaW5nIGlucHV0IHByb3BlcnRpZXMgdG8gYXNzaWduIHRvIHRoZSBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIFRoZSBDb21wb25lbnRSZWYgb2YgdGhlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnQ8VCBleHRlbmRzIEhvdENlbGxSZW5kZXJlckNvbXBvbmVudD4oXG4gICAgY29tcG9uZW50OiBUeXBlPFQ+LFxuICAgIHJlbmRlcmVyUGFyYW1ldGVyczogQmFzZVJlbmRlcmVyUGFyYW1ldGVyc09iamVjdFxuICApOiBDb21wb25lbnRSZWY8VD4ge1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHtcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuZW52aXJvbm1lbnRJbmplY3RvclxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmtleXMocmVuZGVyZXJQYXJhbWV0ZXJzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAocmVuZGVyZXJQYXJhbWV0ZXJzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgcmVuZGVyZXJQYXJhbWV0ZXJzW2tleV0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oYElucHV0IHByb3BlcnR5IFwiJHtrZXl9XCIgZG9lcyBub3QgZXhpc3Qgb24gY29tcG9uZW50IGluc3RhbmNlOiAke2NvbXBvbmVudD8ubmFtZX0uYCk7XG4gICAgICB9XG4gICAgfSlcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50J3MgdmlldyB0byBhIHNwZWNpZmllZCBET00gY29udGFpbmVyIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBjb21wb25lbnRSZWYgLSBUaGUgcmVmZXJlbmNlIHRvIHRoZSBkeW5hbWljYWxseSBjcmVhdGVkIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIGNvbnRhaW5lciAtIFRoZSB0YXJnZXQgRE9NIGVsZW1lbnQgdG8gd2hpY2ggdGhlIGNvbXBvbmVudCdzIHJvb3Qgbm9kZSB3aWxsIGJlIGFwcGVuZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhdHRhY2hDb21wb25lbnRUb0VsZW1lbnQ8VD4oXG4gICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4sXG4gICAgY29udGFpbmVyOiBIVE1MRWxlbWVudFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBkb21FbGVtID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8VD4pXG4gICAgICAucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyBhIGR5bmFtaWNhbGx5IGNyZWF0ZWQgY29tcG9uZW50IGFuZCBkZXRhY2hlcyBpdHMgdmlldyBmcm9tIHRoZSBBbmd1bGFyIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50UmVmIC0gVGhlIHJlZmVyZW5jZSB0byB0aGUgY29tcG9uZW50IHRvIGJlIGRlc3Ryb3llZC5cbiAgICovXG4gIGRlc3Ryb3lDb21wb25lbnQ8VD4oY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
|