ngx-aur-mat-table 17.2.2-8 → 18.0.0
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/components/column-value/column-view.component.mjs +4 -4
- package/esm2022/lib/components/icon-view/icon-view.component.mjs +4 -4
- package/esm2022/lib/data-property-getter-pipe/data-property-getter.pipe.mjs +4 -4
- package/esm2022/lib/directive/ngx-aur-table-search-prefix.directive.mjs +4 -4
- package/esm2022/lib/directive/ngx-aur-table-search-suffix.directive.mjs +4 -4
- package/esm2022/lib/directive/ngx-table-sub-footer-row.directive.mjs +4 -4
- package/esm2022/lib/drag-drop/aur-drag-drop.manager.mjs +77 -100
- package/esm2022/lib/drag-drop/can-drop-manager.mjs +29 -0
- package/esm2022/lib/drag-drop/drag-drop-mapping-manager.mjs +29 -0
- package/esm2022/lib/drag-drop/drag-preview-manager.mjs +39 -0
- package/esm2022/lib/drag-drop/model/aur-drag-drop-mapping.mjs +2 -0
- package/esm2022/lib/drag-drop/model/aur-drag-preview-component.mjs +2 -0
- package/esm2022/lib/ngx-aur-mat-table.component.mjs +12 -18
- package/esm2022/lib/ngx-aur-mat-table.module.mjs +5 -5
- package/esm2022/lib/providers/DragDropProvider.mjs +2 -3
- package/esm2022/public-api.mjs +4 -2
- package/fesm2022/ngx-aur-mat-table.mjs +180 -116
- package/fesm2022/ngx-aur-mat-table.mjs.map +1 -1
- package/lib/drag-drop/aur-drag-drop.manager.d.ts +50 -91
- package/lib/drag-drop/can-drop-manager.d.ts +8 -0
- package/lib/drag-drop/drag-drop-mapping-manager.d.ts +9 -0
- package/lib/drag-drop/drag-preview-manager.d.ts +11 -0
- package/lib/drag-drop/model/aur-drag-drop-mapping.d.ts +44 -0
- package/lib/drag-drop/model/aur-drag-preview-component.d.ts +13 -0
- package/lib/ngx-aur-mat-table.component.d.ts +1 -0
- package/lib/providers/DragDropProvider.d.ts +1 -2
- package/package.json +9 -9
- package/public-api.d.ts +3 -1
|
@@ -4,10 +4,10 @@ import * as i1 from "@angular/common";
|
|
|
4
4
|
import * as i2 from "@angular/material/tooltip";
|
|
5
5
|
import * as i3 from "../icon-view/icon-view.component";
|
|
6
6
|
export class ColumnViewComponent {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ColumnViewComponent, selector: "lib-column-view", inputs: { config: "config", value: "value" }, ngImport: i0, template: "<div class=\"align-container\">\r\n\r\n <lib-icon-view [view]=\"config?.icon\">\r\n </lib-icon-view>\r\n\r\n <img *ngIf=\"config?.image?.src\"\r\n [src]=\"config?.image?.src\"\r\n [style.height]=\"config?.image?.height\"\r\n [style.width]=\"config?.image?.width\"\r\n alt=\"img\">\r\n\r\n <span *ngIf=\"config?.text?.show != false\"\r\n [matTooltip]=\"config?.text?.tooltip?.toString() || ''\">\r\n {{ value }}\r\n </span>\r\n</div>\r\n", styles: [".align-container{display:flex;align-items:center}span{margin-left:4px}.circle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3.IconViewComponent, selector: "lib-icon-view", inputs: ["view"] }] }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnViewComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{ selector: 'lib-column-view', template: "<div class=\"align-container\">\r\n\r\n <lib-icon-view [view]=\"config?.icon\">\r\n </lib-icon-view>\r\n\r\n <img *ngIf=\"config?.image?.src\"\r\n [src]=\"config?.image?.src\"\r\n [style.height]=\"config?.image?.height\"\r\n [style.width]=\"config?.image?.width\"\r\n alt=\"img\">\r\n\r\n <span *ngIf=\"config?.text?.show != false\"\r\n [matTooltip]=\"config?.text?.tooltip?.toString() || ''\">\r\n {{ value }}\r\n </span>\r\n</div>\r\n", styles: [".align-container{display:flex;align-items:center}span{margin-left:4px}.circle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%}\n"] }]
|
|
13
13
|
}], propDecorators: { config: [{
|
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
15
15
|
}], value: [{
|
|
16
16
|
type: Input
|
|
17
17
|
}] } });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2NvbHVtbi12YWx1ZS9jb2x1bW4tdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvY29sdW1uLXZhbHVlL2NvbHVtbi12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDOzs7OztBQVF2RCxNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7bUdBQW5CLG1CQUFtQixxR0NSaEMsZ2VBZ0JBOzs0RkRSYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQUtsQixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb2x1bW5WaWV3fSBmcm9tIFwiLi4vLi4vbW9kZWwvQ29sdW1uQ29uZmlnXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb2x1bW4tdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbHVtbi12aWV3LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5WaWV3Q29tcG9uZW50IHtcbiAgQElucHV0KCkgY29uZmlnOiBDb2x1bW5WaWV3PHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWxpZ24tY29udGFpbmVyXCI+XHJcblxyXG4gIDxsaWItaWNvbi12aWV3IFt2aWV3XT1cImNvbmZpZz8uaWNvblwiPlxyXG4gIDwvbGliLWljb24tdmlldz5cclxuXHJcbiAgPGltZyAqbmdJZj1cImNvbmZpZz8uaW1hZ2U/LnNyY1wiXHJcbiAgICAgICBbc3JjXT1cImNvbmZpZz8uaW1hZ2U/LnNyY1wiXHJcbiAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImNvbmZpZz8uaW1hZ2U/LmhlaWdodFwiXHJcbiAgICAgICBbc3R5bGUud2lkdGhdPVwiY29uZmlnPy5pbWFnZT8ud2lkdGhcIlxyXG4gICAgICAgYWx0PVwiaW1nXCI+XHJcblxyXG4gIDxzcGFuICpuZ0lmPVwiY29uZmlnPy50ZXh0Py5zaG93ICE9IGZhbHNlXCJcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCJjb25maWc/LnRleHQ/LnRvb2x0aXA/LnRvU3RyaW5nKCkgfHwgJydcIj5cclxuICAgICAgIHt7IHZhbHVlIH19XHJcbiAgPC9zcGFuPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -4,13 +4,13 @@ import * as i1 from "@angular/common";
|
|
|
4
4
|
import * as i2 from "@angular/material/icon";
|
|
5
5
|
import * as i3 from "@angular/material/tooltip";
|
|
6
6
|
export class IconViewComponent {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: IconViewComponent, selector: "lib-icon-view", inputs: { view: "view" }, ngImport: i0, template: "<div [ngClass]=\"{'circle': view?.wrapper}\"\r\n [style.background-color]=\"view?.wrapper?.color\">\r\n <mat-icon *ngIf=\"view && view?.display !== 'none'\"\r\n [matTooltip]=\"view?.tooltip?.toString() || ''\"\r\n [style.color]=\"view?.color\">\r\n {{ view?.name }}\r\n </mat-icon>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconViewComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{ selector: 'lib-icon-view', template: "<div [ngClass]=\"{'circle': view?.wrapper}\"\r\n [style.background-color]=\"view?.wrapper?.color\">\r\n <mat-icon *ngIf=\"view && view?.display !== 'none'\"\r\n [matTooltip]=\"view?.tooltip?.toString() || ''\"\r\n [style.color]=\"view?.color\">\r\n {{ view?.name }}\r\n </mat-icon>\r\n</div>\r\n" }]
|
|
13
13
|
}], propDecorators: { view: [{
|
|
14
14
|
type: Input
|
|
15
15
|
}] } });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9pY29uLXZpZXcvaWNvbi12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvY29tcG9uZW50cy9pY29uLXZpZXcvaWNvbi12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7OztBQVMvQyxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7bUdBQWpCLGlCQUFpQiwrRUNUOUIsd1VBUUE7OzRGRENhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlOzhCQU1oQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJY29uVmlldyB9IGZyb20gJy4uLy4uL21vZGVsL0NvbHVtbkNvbmZpZyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItaWNvbi12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaWNvbi12aWV3LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJY29uVmlld0NvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIHZpZXc6IEljb25WaWV3PHN0cmluZz4gfCB1bmRlZmluZWQ7XHJcblxyXG59XHJcbiIsIjxkaXYgW25nQ2xhc3NdPVwieydjaXJjbGUnOiB2aWV3Py53cmFwcGVyfVwiXHJcbiAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwidmlldz8ud3JhcHBlcj8uY29sb3JcIj5cclxuICA8bWF0LWljb24gKm5nSWY9XCJ2aWV3ICYmIHZpZXc/LmRpc3BsYXkgIT09ICdub25lJ1wiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInZpZXc/LnRvb2x0aXA/LnRvU3RyaW5nKCkgfHwgJydcIlxyXG4gICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidmlldz8uY29sb3JcIj5cclxuICAgIHt7IHZpZXc/Lm5hbWUgfX1cclxuICA8L21hdC1pY29uPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -4,13 +4,13 @@ export class DataPropertyGetterPipe {
|
|
|
4
4
|
transform(object, keyName, ...args) {
|
|
5
5
|
return object[keyName];
|
|
6
6
|
}
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataPropertyGetterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DataPropertyGetterPipe, name: "dataPropertyGetter" }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DataPropertyGetterPipe, decorators: [{
|
|
11
11
|
type: Pipe,
|
|
12
12
|
args: [{
|
|
13
13
|
name: 'dataPropertyGetter'
|
|
14
14
|
}]
|
|
15
15
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wcm9wZXJ0eS1nZXR0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZGF0YS1wcm9wZXJ0eS1nZXR0ZXItcGlwZS9kYXRhLXByb3BlcnR5LWdldHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUtsRCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFNBQVMsQ0FBQyxNQUFXLEVBQUUsT0FBZSxFQUFFLEdBQUcsSUFBZTtRQUN4RCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDOytHQUpVLHNCQUFzQjs2R0FBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUhsQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxvQkFBb0I7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZGF0YVByb3BlcnR5R2V0dGVyJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVByb3BlcnR5R2V0dGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICB0cmFuc2Zvcm0ob2JqZWN0OiBhbnksIGtleU5hbWU6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdW5rbm93biB7XHJcbiAgICByZXR1cm4gb2JqZWN0W2tleU5hbWVdO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -2,13 +2,13 @@ import { Directive } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class NgxAurTableSearchPrefixDirective {
|
|
4
4
|
constructor() { }
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgxAurTableSearchPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: NgxAurTableSearchPrefixDirective, selector: "[ngxAurTableSearchPrefix]", ngImport: i0 }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgxAurTableSearchPrefixDirective, decorators: [{
|
|
9
9
|
type: Directive,
|
|
10
10
|
args: [{
|
|
11
11
|
selector: '[ngxAurTableSearchPrefix]',
|
|
12
12
|
}]
|
|
13
13
|
}], ctorParameters: () => [] });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ci10YWJsZS1zZWFyY2gtcHJlZml4LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZGlyZWN0aXZlL25neC1hdXItdGFibGUtc2VhcmNoLXByZWZpeC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFPLGdDQUFnQztJQUUzQyxnQkFBZ0IsQ0FBQzsrR0FGTixnQ0FBZ0M7bUdBQWhDLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFINUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbmd4QXVyVGFibGVTZWFyY2hQcmVmaXhdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neEF1clRhYmxlU2VhcmNoUHJlZml4RGlyZWN0aXZlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbn1cclxuIl19
|
|
@@ -2,13 +2,13 @@ import { Directive } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class NgxAurTableSearchSuffixDirective {
|
|
4
4
|
constructor() { }
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgxAurTableSearchSuffixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: NgxAurTableSearchSuffixDirective, selector: "[ngxAurTableSearchSuffix]", ngImport: i0 }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgxAurTableSearchSuffixDirective, decorators: [{
|
|
9
9
|
type: Directive,
|
|
10
10
|
args: [{
|
|
11
11
|
selector: '[ngxAurTableSearchSuffix]',
|
|
12
12
|
}]
|
|
13
13
|
}], ctorParameters: () => [] });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWF1ci10YWJsZS1zZWFyY2gtc3VmZml4LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZGlyZWN0aXZlL25neC1hdXItdGFibGUtc2VhcmNoLXN1ZmZpeC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLMUMsTUFBTSxPQUFPLGdDQUFnQztJQUUzQyxnQkFBZ0IsQ0FBQzsrR0FGTixnQ0FBZ0M7bUdBQWhDLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFINUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbmd4QXVyVGFibGVTZWFyY2hTdWZmaXhdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neEF1clRhYmxlU2VhcmNoU3VmZml4RGlyZWN0aXZlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbn1cclxuIl19
|
|
@@ -2,13 +2,13 @@ import { Directive } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class NgxTableSubFooterRowDirective {
|
|
4
4
|
constructor() { }
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgxTableSubFooterRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: NgxTableSubFooterRowDirective, selector: "[ngxAurTableSubFooterRow]", ngImport: i0 }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NgxTableSubFooterRowDirective, decorators: [{
|
|
9
9
|
type: Directive,
|
|
10
10
|
args: [{
|
|
11
11
|
selector: '[ngxAurTableSubFooterRow]'
|
|
12
12
|
}]
|
|
13
13
|
}], ctorParameters: () => [] });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRhYmxlLXN1Yi1mb290ZXItcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZGlyZWN0aXZlL25neC10YWJsZS1zdWItZm9vdGVyLXJvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLeEMsTUFBTSxPQUFPLDZCQUE2QjtJQUN4QyxnQkFBZSxDQUFDOytHQURMLDZCQUE2QjttR0FBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQUh6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmd4QXVyVGFibGVTdWJGb290ZXJSb3ddJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hUYWJsZVN1YkZvb3RlclJvd0RpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiJdfQ==
|
|
@@ -1,113 +1,90 @@
|
|
|
1
|
-
import { first } from "rxjs";
|
|
1
|
+
import { finalize, first } from "rxjs";
|
|
2
|
+
import { CanDropManager } from "./can-drop-manager";
|
|
3
|
+
import { DragPreviewManager } from "./drag-preview-manager";
|
|
4
|
+
import { DragDropMappingManager } from "./drag-drop-mapping-manager";
|
|
5
|
+
/**
|
|
6
|
+
* Manages the drag-and-drop process, including start, drop, and end events.
|
|
7
|
+
* Handles drag previews, drop validation, and dataset updates after a successful drop.
|
|
8
|
+
*/
|
|
2
9
|
export class AurDragDropManager {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (!this.canDropStorage.has(m.sourceName)) {
|
|
10
|
-
this.canDropStorage.set(m.sourceName, new Set());
|
|
11
|
-
}
|
|
12
|
-
this.canDropStorage.get(m.sourceName).add(m.targetName);
|
|
13
|
-
});
|
|
10
|
+
/**
|
|
11
|
+
* Creates an empty instance of AurDragDropManager.
|
|
12
|
+
* @returns {AurDragDropManager} - An empty manager with no initialized references.
|
|
13
|
+
*/
|
|
14
|
+
static empty() {
|
|
15
|
+
return new AurDragDropManager(undefined, [], []);
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
this.
|
|
17
|
-
this.
|
|
17
|
+
constructor(viewContainerRef, mappings, previewMappings) {
|
|
18
|
+
this.mappings = mappings;
|
|
19
|
+
this.previewMappings = previewMappings;
|
|
20
|
+
this.canDropManager = new CanDropManager(mappings);
|
|
21
|
+
this.previewManager = new DragPreviewManager(viewContainerRef, this.previewMappings);
|
|
22
|
+
this.mappingManager = new DragDropMappingManager(mappings);
|
|
18
23
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
sourceData: this.dragStartCtx.data,
|
|
26
|
-
sourceName: this.dragStartCtx.name,
|
|
27
|
-
sourceDataset: sourceDataset
|
|
28
|
-
});
|
|
29
|
-
return {
|
|
30
|
-
isValidDrop: true,
|
|
31
|
-
startDragContext: this.dragStartCtx,
|
|
32
|
-
endDragContext: this.dragEndCtx,
|
|
33
|
-
beforeDataSet: sourceDataset,
|
|
34
|
-
afterDataSet: afterDataSet,
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
return {
|
|
39
|
-
isValidDrop: false,
|
|
40
|
-
startDragContext: this.dragStartCtx,
|
|
41
|
-
beforeDataSet: sourceDataset,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
24
|
+
/**
|
|
25
|
+
* Returns the list of all available draggable source names.
|
|
26
|
+
* @returns {string[]} - Array of source names.
|
|
27
|
+
*/
|
|
28
|
+
get draggableSourceNames() {
|
|
29
|
+
return this.mappings?.map(mapping => mapping.sourceName) || [];
|
|
44
30
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Initiates a drag operation, saving the context and showing a drag preview.
|
|
33
|
+
* @param {string} sourceName - The name of the drag source.
|
|
34
|
+
* @param {unknown[]} draggedData - The data being dragged.
|
|
35
|
+
* @param {DragEvent} event - The drag event.
|
|
36
|
+
* @throws Error if a drag is already in progress.
|
|
37
|
+
*/
|
|
38
|
+
startDrag(sourceName, draggedData, event) {
|
|
39
|
+
this.startDragEvent = { sourceName, draggedData };
|
|
40
|
+
this.previewManager.showPreview(sourceName, event, draggedData);
|
|
51
41
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Validates whether a drop is allowed on the target element by calling preventDefault.
|
|
44
|
+
* @param {string} targetName - The name of the target element.
|
|
45
|
+
* @param {DragEvent} event - The drag event.
|
|
46
|
+
*/
|
|
47
|
+
canDropPreventDefault(targetName, event) {
|
|
48
|
+
if (!this.startDragEvent) {
|
|
49
|
+
// перетаскивание не начато
|
|
50
|
+
return;
|
|
56
51
|
}
|
|
57
|
-
|
|
52
|
+
this.canDropManager.dropPreventDefault(this.startDragEvent.sourceName, targetName, event);
|
|
58
53
|
}
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Executes the drop operation on the specified target.
|
|
56
|
+
* @param {string} targetName - The name of the target element.
|
|
57
|
+
* @param {any} targetData - The data for the target element.
|
|
58
|
+
*/
|
|
59
|
+
drop(targetName, targetData) {
|
|
60
|
+
this.dropEvent = { targetName, targetData };
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
62
|
+
/**
|
|
63
|
+
* Ends the drag operation and updates the dataset if the drop was successful.
|
|
64
|
+
*/
|
|
65
|
+
endDrag() {
|
|
66
|
+
this.previewManager.removePreview();
|
|
67
|
+
if (!this.dropEvent || !this.startDragEvent) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const mapping = this.getMapping(this.startDragEvent.sourceName, this.dropEvent.targetName);
|
|
71
|
+
const dropContext = this.buildDropContext();
|
|
72
|
+
mapping.afterDropFn(dropContext)?.pipe(first())
|
|
73
|
+
.pipe(finalize(() => {
|
|
74
|
+
this.dropEvent = undefined;
|
|
75
|
+
this.startDragEvent = undefined;
|
|
76
|
+
})).subscribe();
|
|
70
77
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
78
|
+
buildDropContext() {
|
|
79
|
+
return {
|
|
80
|
+
targetName: this.dropEvent.targetName,
|
|
81
|
+
targetData: this.dropEvent.targetData,
|
|
82
|
+
sourceName: this.startDragEvent.sourceName,
|
|
83
|
+
sourceData: this.startDragEvent.draggedData,
|
|
77
84
|
};
|
|
78
|
-
return mappedData;
|
|
79
85
|
}
|
|
80
|
-
|
|
81
|
-
return this.
|
|
82
|
-
}
|
|
83
|
-
getPreviewComponent(name) {
|
|
84
|
-
return this.mappings.find(value => value.sourceName === name)?.preview || undefined;
|
|
85
|
-
}
|
|
86
|
-
static empty() {
|
|
87
|
-
// @ts-ignore
|
|
88
|
-
return new AurDragDropManager(undefined, []);
|
|
89
|
-
}
|
|
90
|
-
showDragPreview(name, event, data) {
|
|
91
|
-
let previewConstructor = this.getPreviewComponent(name);
|
|
92
|
-
if (previewConstructor) {
|
|
93
|
-
// Динамически создаем компонент превью
|
|
94
|
-
this.currentPreviewComponentRef = this.viewContainerRef.createComponent(previewConstructor);
|
|
95
|
-
this.currentPreviewComponentRef.instance.data = data;
|
|
96
|
-
const nativePreview = this.currentPreviewComponentRef.location.nativeElement;
|
|
97
|
-
// Применение необходимых стилей к элементу превью
|
|
98
|
-
nativePreview.style.position = 'absolute';
|
|
99
|
-
nativePreview.style.top = '0';
|
|
100
|
-
nativePreview.style.left = '-9999px'; // Скрыть элемент за пределами экрана
|
|
101
|
-
document.body.appendChild(nativePreview); // Временно добавляем в DOM для отображения
|
|
102
|
-
event.dataTransfer?.setDragImage(nativePreview, 0, 0);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
removeDragPreview() {
|
|
106
|
-
if (this.currentPreviewComponentRef) {
|
|
107
|
-
document.body.removeChild(this.currentPreviewComponentRef.location.nativeElement);
|
|
108
|
-
this.currentPreviewComponentRef.destroy();
|
|
109
|
-
this.currentPreviewComponentRef = undefined;
|
|
110
|
-
}
|
|
86
|
+
getMapping(sourceName, targetName) {
|
|
87
|
+
return this.mappingManager.get(sourceName, targetName);
|
|
111
88
|
}
|
|
112
89
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVyLWRyYWctZHJvcC5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9kcmFnLWRyb3AvYXVyLWRyYWctZHJvcC5tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxLQUFLLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBcUc3QyxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLFlBQW9CLGdCQUFrQyxFQUNsQyxRQUF3QztRQUR4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQWdDO1FBSjVELGdEQUFnRDtRQUN4QyxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1FBSXRELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxVQUFrQixFQUFFLElBQWUsRUFBRSxLQUFnQjtRQUM3RCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUE7UUFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFF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WUFFckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFFN0Usa0RBQWtEO1lBQ2xELGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztZQUMxQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDOUIsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMscUNBQXFDO1lBQzNFLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsMkNBQTJDO1lBRXJGLEtBQUssQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsU0FBUyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudFJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtmaXJzdCwgT2JzZXJ2YWJsZSwgdGFrZX0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8qKlxyXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSBtYXBwaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGRyYWctYW5kLWRyb3AgZnVuY3Rpb25hbGl0eVxyXG4gKiBiZXR3ZWVuIGNvbXBvbmVudHMuIEl0IGRlZmluZXMgdGhlIHNvdXJjZSBjb21wb25lbnQgKGZyb20gd2hlcmUgZGF0YSBpcyBncmFiYmVkKVxyXG4gKiBhbmQgdGhlIHRhcmdldCBjb21wb25lbnQgKHdoZXJlIGRhdGEgaXMgZHJvcHBlZCksIGFzIHdlbGwgYXMgdGhlIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZVxyXG4gKiB0aGUgZ3JhYmJpbmcgYW5kIGRyb3BwaW5nIG9mIGRhdGEuXHJcbiAqXHJcbiAqIEB0ZW1wbGF0ZSBTT1VSQ0UgLSBUaGUgdHlwZSBvZiBkYXRhIHVzZWQgYnkgdGhlIHNvdXJjZSBjb21wb25lbnQuXHJcbiAqIEB0ZW1wbGF0ZSBUQVJHRVQgLSBUaGUgdHlwZSBvZiBkYXRhIHVzZWQgYnkgdGhlIHRhcmdldCBjb21wb25lbnQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEF1ckRyYWdEcm9wTWFwcGluZzxTT1VSQ0UsIFRBUkdFVD4ge1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc291cmNlIGNvbXBvbmVudCBmcm9tIHdoaWNoIGRhdGEgY2FuIGJlIGdyYWJiZWQuXHJcbiAgICogVGhpcyByZXByZXNlbnRzIHRoZSBjb21wb25lbnQgdGhhdCBhbGxvd3MgYSB1c2VyIHRvIGluaXRpYXRlIGEgZ3JhYiBhY3Rpb24uXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc291cmNlTmFtZTogc3RyaW5nLFxyXG5cclxuICAvKipcclxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGFyZ2V0IGNvbXBvbmVudCB3aGVyZSB0aGUgZGF0YSBjYW4gYmUgZHJvcHBlZC5cclxuICAgKiBUaGlzIHJlcHJlc2VudHMgdGhlIGNvbXBvbmVudCB0aGF0IGFjY2VwdHMgdGhlIGRyb3AgYWN0aW9uLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHRhcmdldE5hbWU6IHN0cmluZyxcclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gY2FsbGVkIHRvIGhhbmRsZSBncmFiYmluZyBkYXRhIGZyb20gdGhlIHNvdXJjZSBjb21wb25lbnQuXHJcbiAgICogSXQgaXMgaW52b2tlZCBhZnRlciBhIGRyb3AgaGFzIG9jY3VycmVkLCBhbmQgaXQgZGVzY3JpYmVzIHdoYXQgc2hvdWxkXHJcbiAgICogaGFwcGVuIHRvIHRoZSBkYXRhIGluIHRoZSBzb3VyY2UgdGFibGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY3R4IC0gVGhlIGdyYWIgY29udGV4dCBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzb3VyY2UgYW5kIHRhcmdldC5cclxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkYXRhIGVsZW1lbnRzIG9mIHR5cGUgU09VUkNFLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGdyYWJGbjogKGN0eDogZ3JhYkNvbnRleHQ8U09VUkNFLCBUQVJHRVQ+KSA9PiBPYnNlcnZhYmxlPFNPVVJDRVtdPlxyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiBjYWxsZWQgdG8gaGFuZGxlIHRoZSBkcm9wIGFjdGlvbiBpbiB0aGUgdGFyZ2V0IGNvbXBvbmVudC5cclxuICAgKiBJdCBpcyBpbnZva2VkIHdoZW4gdGhlIGRyb3AgZXZlbnQgb2NjdXJzLCBhbmQgaXQgZGVzY3JpYmVzIGhvdyB0byBwcm9jZXNzXHJcbiAgICogdGhlIGRhdGEgaW50byB0aGUgdGFyZ2V0IGNvbXBvbmVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjdHggLSBUaGUgZHJvcCBjb250ZXh0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0LlxyXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGRhdGEgZWxlbWVudHMgb2YgdHlwZSBUQVJHRVQuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZHJvcEZuOiAoY3R4OiBEcm9wQ29udGV4dDxTT1VSQ0UsIFRBUkdFVD4pID0+IE9ic2VydmFibGU8VEFSR0VUW10+LFxyXG5cclxuICByZWFkb25seSBwcmV2aWV3PzogbmV3ICgpID0+IEF1ckRyYWdQcmV2aWV3Q29tcG9uZW50PFNPVVJDRT47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDQntCx0YnQuNC5INC40L3RgtC10YDRhNC10LnRgSDQtNC70Y8g0LrQvtC80L/QvtC90LXQvdGC0L7Qsiwg0LrQvtGC0L7RgNGL0LUg0LjRgdC/0L7Qu9GM0LfRg9GO0YLRgdGPINCyINC60LDRh9C10YHRgtCy0LUg0L/RgNC10LLRjNGOXHJcbiAqINC00LvRjyDQv9C10YDQtdGC0LDRgdC60LjQstCw0L3QuNGPINC00LDQvdC90YvRhS4g0K3RgtC+INC+0LHQtdGB0L/QtdGH0LjQstCw0LXRgiDRgdGC0LDQvdC00LDRgNGC0L3Ri9C5INGB0L/QvtGB0L7QsSDQv9C10YDQtdC00LDRh9C4XHJcbiAqINC00LDQvdC90YvRhSDQsiDRgtCw0LrQuNC1INC60L7QvNC/0L7QvdC10L3RgtGLLlxyXG4gKlxyXG4gKiBAdGVtcGxhdGUgREFUQSAtINCi0LjQvyDQtNCw0L3QvdGL0YUsINC60L7RgtC+0YDRi9C1INCx0YPQtNGD0YIg0L/QtdGA0LXQtNCw0L3RiyDQsiDQutC+0LzQv9C+0L3QtdC90YIg0LTQu9GPINC/0YDQtdCy0YzRji5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXVyRHJhZ1ByZXZpZXdDb21wb25lbnQ8REFUQT4ge1xyXG4gIC8qKlxyXG4gICAqINCU0LDQvdC90YvQtSwg0LrQvtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQvtGC0L7QsdGA0LDQttCw0YLRjNGB0Y8g0LIg0LrQvtC80L/QvtC90LXQvdGC0LUg0L/RgNC10LLRjNGOLlxyXG4gICAqL1xyXG4gIGRhdGE6IERBVEFbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXJEcmFnU3RhcnRDb250ZXh0IHtcclxuICByZWFkb25seSBuYW1lOiBzdHJpbmcsXHJcbiAgcmVhZG9ubHkgZGF0YTogdW5rbm93bltdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXVyRHJhZ0VuZENvbnRleHQge1xyXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcclxuICByZWFkb25seSBkYXRhOiB1bmtub3duXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXVyRW5kRHJhZ0V2ZW50IHtcclxuICAvKipcclxuICAgKiDQtNGA0L7QvyDQsdGL0Lsg0L3QsCDRgNCw0LfRgNC10YjQtdC90L3QvtC8INGN0LvQtdC80LXQvdGC0LVcclxuICAgKi9cclxuICByZWFkb25seSBpc1ZhbGlkRHJvcDogYm9vbGVhbixcclxuICByZWFkb25seSBzdGFydERyYWdDb250ZXh0OiBBdXJEcmFnU3RhcnRDb250ZXh0LFxyXG4gIHJlYWRvbmx5IGVuZERyYWdDb250ZXh0PzogQXVyRHJhZ0VuZENvbnRleHQsXHJcbiAgcmVhZG9ubHkgYmVmb3JlRGF0YVNldDogdW5rbm93bltdLFxyXG4gIHJlYWRvbmx5IGFmdGVyRGF0YVNldD86IE9ic2VydmFibGU8dW5rbm93bltdPixcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBncmFiQ29udGV4dDxTT1VSQ0UsIFRBUkdFVD4ge1xyXG4gIHJlYWRvbmx5IHNvdXJjZU5hbWU6IHN0cmluZyxcclxuICByZWFkb25seSBzb3VyY2VEYXRhOiBTT1VSQ0VbXSxcclxuICByZWFkb25seSBzb3VyY2VEYXRhc2V0OiBTT1VSQ0VbXSxcclxuXHJcbiAgcmVhZG9ubHkgdGFyZ2V0TmFtZTogc3RyaW5nLFxyXG4gIHJlYWRvbmx5IHRhcmdldERhdGE6IFRBUkdFVCxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEcm9wQ29udGV4dDxTT1VSQ0UsIFRBUkdFVD4ge1xyXG4gIHJlYWRvbmx5IHNvdXJjZU5hbWU6IHN0cmluZyxcclxuICByZWFkb25seSBzb3VyY2VEYXRhOiBTT1VSQ0VbXSxcclxuXHJcbiAgcmVhZG9ubHkgdGFyZ2V0RGF0YXNldDogVEFSR0VUW10sXHJcbiAgcmVhZG9ubHkgdGFyZ2V0TmFtZTogc3RyaW5nLFxyXG4gIHJlYWRvbmx5IHRhcmdldERhdGE6IFRBUkdFVCxcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1ckRyYWdEcm9wTWFuYWdlciB7XHJcblxyXG4gIHByaXZhdGUgZHJhZ1N0YXJ0Q3R4OiBBdXJEcmFnU3RhcnRDb250ZXh0IHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgZHJhZ0VuZEN0eDogQXVyRHJhZ0VuZENvbnRleHQgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBjdXJyZW50UHJldmlld0NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEF1ckRyYWdQcmV2aWV3Q29tcG9uZW50PGFueT4+IHwgdW5kZWZpbmVkO1xyXG5cclxuICAvL2NhbiBkcm9wIFtrZXkgZnJvbSB0YWJsZSwgdmFsdWUgdG8gdGFibGUgbmFtZV1cclxuICBwcml2YXRlIGNhbkRyb3BTdG9yYWdlID0gbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBtYXBwaW5nczogQXVyRHJhZ0Ryb3BNYXBwaW5nPGFueSwgYW55PltdKSB7XHJcbiAgICB0aGlzLm1hcHBpbmdzLmZvckVhY2gobSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5jYW5Ecm9wU3RvcmFnZS5oYXMobS5zb3VyY2VOYW1lKSkge1xyXG4gICAgICAgIHRoaXMuY2FuRHJvcFN0b3JhZ2Uuc2V0KG0uc291cmNlTmFtZSwgbmV3IFNldCgpKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNhbkRyb3BTdG9yYWdlLmdldChtLnNvdXJjZU5hbWUpIS5hZGQobS50YXJnZXROYW1lKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3RhcnREcmFnKHNvdXJjZU5hbWU6IHN0cmluZywgZGF0YTogdW5rbm93bltdLCBldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICB0aGlzLmRyYWdTdGFydEN0eCA9IHtuYW1lOiBzb3VyY2VOYW1lLCBkYXRhOiBkYXRhfVxyXG4gICAgdGhpcy5zaG93RHJhZ1ByZXZpZXcoc291cmNlTmFtZSwgZXZlbnQsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBlbmREcmFnKHNvdXJjZURhdGFzZXQ6IHVua25vd25bXSk6IEF1ckVuZERyYWdFdmVudCB7XHJcbiAgICB0aGlzLnJlbW92ZURyYWdQcmV2aWV3KClcclxuICAgIGlmICh0aGlzLmRyYWdFbmRDdHg/Lm5hbWUgJiYgdGhpcy5jaGVja0NhbkRyb3AodGhpcy5kcmFnRW5kQ3R4IS5uYW1lKSkge1xyXG4gICAgICBjb25zdCBhZnRlckRhdGFTZXQgPSB0aGlzLmNhbGNBZnRlckRhdGFTb3VyY2Uoe1xyXG4gICAgICAgIHRhcmdldERhdGE6IHRoaXMuZHJhZ0VuZEN0eCEuZGF0YSxcclxuICAgICAgICB0YXJnZXROYW1lOiB0aGlzLmRyYWdFbmRDdHghLm5hbWUsXHJcbiAgICAgICAgc291cmNlRGF0YTogdGhpcy5kcmFnU3RhcnRDdHghLmRhdGEsXHJcbiAgICAgICAgc291cmNlTmFtZTogdGhpcy5kcmFnU3RhcnRDdHghLm5hbWUsXHJcbiAgICAgICAgc291cmNlRGF0YXNldDogc291cmNlRGF0YXNldFxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWREcm9wOiB0cnVlLFxyXG4gICAgICAgIHN0YXJ0RHJhZ0NvbnRleHQ6IHRoaXMuZHJhZ1N0YXJ0Q3R4ISxcclxuICAgICAgICBlbmREcmFnQ29udGV4dDogdGhpcy5kcmFnRW5kQ3R4ISxcclxuICAgICAgICBiZWZvcmVEYXRhU2V0OiBzb3VyY2VEYXRhc2V0LFxyXG4gICAgICAgIGFmdGVyRGF0YVNldDogYWZ0ZXJEYXRhU2V0LFxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGlzVmFsaWREcm9wOiBmYWxzZSxcclxuICAgICAgICBzdGFydERyYWdDb250ZXh0OiB0aGlzLmRyYWdTdGFydEN0eCEsXHJcbiAgICAgICAgYmVmb3JlRGF0YVNldDogc291cmNlRGF0YXNldCxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsY0FmdGVyRGF0YVNvdXJjZShncmFiQ3R4OiBncmFiQ29udGV4dDxhbnksIGFueT4pOiBPYnNlcnZhYmxlPHVua25vd25bXT4ge1xyXG4gICAgbGV0IG1hcHBpbmcgPSB0aGlzLm1hcHBpbmdzLmZpbmQobSA9PiBtLnNvdXJjZU5hbWUgPT09IGdyYWJDdHguc291cmNlTmFtZSAmJiBtLnRhcmdldE5hbWUgPT09IGdyYWJDdHgudGFyZ2V0TmFtZSk7XHJcbiAgICBsZXQgbWFwcGVkRGF0YSA9IG1hcHBpbmchLmdyYWJGbihncmFiQ3R4KS5waXBlKGZpcnN0KCkpO1xyXG4gICAgdGhpcy5kcmFnU3RhcnRDdHggPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmRyYWdFbmRDdHggPSB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gbWFwcGVkRGF0YTtcclxuICB9XHJcblxyXG4gIGNhbkRyb3AodGFyZ2V0TmFtZTogc3RyaW5nLCAkZXZlbnQ6IERyYWdFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2FuRHJvcCA9IHRoaXMuY2hlY2tDYW5Ecm9wKHRhcmdldE5hbWUpO1xyXG4gICAgaWYgKGNhbkRyb3ApIHtcclxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2FuRHJvcDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tDYW5Ecm9wKHRhcmdldE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FuRHJvcFN0b3JhZ2UuZ2V0KHRoaXMuZHJhZ1N0YXJ0Q3R4IS5uYW1lKT8uaGFzKHRhcmdldE5hbWUpID8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb25Ecm9wKHRhcmdldERhdGFzZXQ6IHVua25vd25bXSwgdGFyZ2V0TmFtZTogc3RyaW5nLCB0YXJnZXREYXRhOiBhbnkpOiBPYnNlcnZhYmxlPHVua25vd25bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMub25Ecm9wSW50ZXJuYWwoe1xyXG4gICAgICBzb3VyY2VOYW1lOiB0aGlzLmRyYWdTdGFydEN0eCEubmFtZSxcclxuICAgICAgc291cmNlRGF0YTogdGhpcy5kcmFnU3RhcnRDdHghLmRhdGEsXHJcbiAgICAgIHRhcmdldE5hbWU6IHRhcmdldE5hbWUsXHJcbiAgICAgIHRhcmdldERhdGE6IHRhcmdldERhdGEsXHJcbiAgICAgIHRhcmdldERhdGFzZXQ6IHRhcmdldERhdGFzZXRcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvbkRyb3BJbnRlcm5hbChkcm9wQ3R4OiBEcm9wQ29udGV4dDxhbnksIGFueT4pOiBPYnNlcnZhYmxlPHVua25vd25bXT4ge1xyXG4gICAgbGV0IG1hcHBpbmcgPSB0aGlzLm1hcHBpbmdzLmZpbmQobSA9PiBtLnNvdXJjZU5hbWUgPT09IGRyb3BDdHguc291cmNlTmFtZSAmJiBtLnRhcmdldE5hbWUgPT09IGRyb3BDdHgudGFyZ2V0TmFtZSk7XHJcbiAgICBsZXQgbWFwcGVkRGF0YSA9IG1hcHBpbmchLmRyb3BGbihkcm9wQ3R4KS5waXBlKGZpcnN0KCkpO1xyXG4gICAgdGhpcy5kcmFnRW5kQ3R4ID0ge1xyXG4gICAgICBuYW1lOiBkcm9wQ3R4LnRhcmdldE5hbWUsXHJcbiAgICAgIGRhdGE6IGRyb3BDdHgudGFyZ2V0RGF0YVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hcHBlZERhdGE7XHJcbiAgfVxyXG5cclxuICBnZXQgZHJhZ2dhYmxlVGFibGVOYW1lcygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBwaW5ncz8ubWFwKG1hcHBpbmcgPT4gbWFwcGluZy5zb3VyY2VOYW1lKSB8fCBbXTtcclxuICB9XHJcblxyXG4gIGdldFByZXZpZXdDb21wb25lbnQobmFtZTogc3RyaW5nKTogKG5ldyAoKSA9PiBBdXJEcmFnUHJldmlld0NvbXBvbmVudDxhbnk+KSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBwaW5ncy5maW5kKHZhbHVlID0+IHZhbHVlLnNvdXJjZU5hbWUgPT09IG5hbWUpPy5wcmV2aWV3IHx8IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZW1wdHkoKTogQXVyRHJhZ0Ryb3BNYW5hZ2VyIHtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHJldHVybiBuZXcgQXVyRHJhZ0Ryb3BNYW5hZ2VyKHVuZGVmaW5lZCwgW10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93RHJhZ1ByZXZpZXcobmFtZTogc3RyaW5nLCBldmVudDogRHJhZ0V2ZW50LCBkYXRhOiBhbnkpIHtcclxuICAgIGxldCBwcmV2aWV3Q29uc3RydWN0b3IgPSB0aGlzLmdldFByZXZpZXdDb21wb25lbnQobmFtZSk7XHJcbiAgICBpZiAocHJldmlld0NvbnN0cnVjdG9yKSB7XHJcbiAgICAgIC8vINCU0LjQvdCw0LzQuNGH0LXRgdC60Lgg0YHQvtC30LTQsNC10Lwg0LrQvtC80L/QvtC90LXQvdGCINC/0YDQtdCy0YzRjlxyXG4gICAgICB0aGlzLmN1cnJlbnRQcmV2aWV3Q29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChwcmV2aWV3Q29uc3RydWN0b3IpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRQcmV2aWV3Q29tcG9uZW50UmVmLmluc3RhbmNlLmRhdGEgPSBkYXRhO1xyXG5cclxuICAgICAgY29uc3QgbmF0aXZlUHJldmlldyA9IHRoaXMuY3VycmVudFByZXZpZXdDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIC8vINCf0YDQuNC80LXQvdC10L3QuNC1INC90LXQvtCx0YXQvtC00LjQvNGL0YUg0YHRgtC40LvQtdC5INC6INGN0LvQtdC80LXQvdGC0YMg0L/RgNC10LLRjNGOXHJcbiAgICAgIG5hdGl2ZVByZXZpZXcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgICBuYXRpdmVQcmV2aWV3LnN0eWxlLnRvcCA9ICcwJztcclxuICAgICAgbmF0aXZlUHJldmlldy5zdHlsZS5sZWZ0ID0gJy05OTk5cHgnOyAvLyDQodC60YDRi9GC0Ywg0Y3Qu9C10LzQtdC90YIg0LfQsCDQv9GA0LXQtNC10LvQsNC80Lgg0Y3QutGA0LDQvdCwXHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobmF0aXZlUHJldmlldyk7IC8vINCS0YDQtdC80LXQvdC90L4g0LTQvtCx0LDQstC70Y/QtdC8INCyIERPTSDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRj1xyXG5cclxuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyPy5zZXREcmFnSW1hZ2UobmF0aXZlUHJldmlldywgMCwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZURyYWdQcmV2aWV3KCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFByZXZpZXdDb21wb25lbnRSZWYpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmN1cnJlbnRQcmV2aWV3Q29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRQcmV2aWV3Q29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5jdXJyZW50UHJldmlld0NvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVyLWRyYWctZHJvcC5tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9kcmFnLWRyb3AvYXVyLWRyYWctZHJvcC5tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQWtCbkU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQTBCN0I7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEtBQUs7UUFDakIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFNBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQVksZ0JBQWtDLEVBQzFCLFFBQXdDLEVBQ3hDLGVBQThDO1FBRDlDLGFBQVEsR0FBUixRQUFRLENBQWdDO1FBQ3hDLG9CQUFlLEdBQWYsZUFBZSxDQUErQjtRQUNoRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLFVBQWtCLEVBQUUsV0FBc0IsRUFBRSxLQUFnQjtRQUMzRSxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDakUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUIsQ0FBQyxVQUFrQixFQUFFLEtBQWdCO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsMkJBQTJCO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQUMsVUFBa0IsRUFBRSxVQUFlO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFFM0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDNUMsSUFBSSxDQUNILFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBVSxDQUFDLFVBQVU7WUFDdEMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFVLENBQUMsVUFBVTtZQUN0QyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWUsQ0FBQyxVQUFVO1lBQzNDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBZSxDQUFDLFdBQVc7U0FDN0MsQ0FBQTtJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ZpbmFsaXplLCBmaXJzdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtDYW5Ecm9wTWFuYWdlcn0gZnJvbSBcIi4vY2FuLWRyb3AtbWFuYWdlclwiO1xyXG5pbXBvcnQge1ZpZXdDb250YWluZXJSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RHJhZ1ByZXZpZXdNYW5hZ2VyfSBmcm9tIFwiLi9kcmFnLXByZXZpZXctbWFuYWdlclwiO1xyXG5pbXBvcnQge0RyYWdEcm9wTWFwcGluZ01hbmFnZXJ9IGZyb20gXCIuL2RyYWctZHJvcC1tYXBwaW5nLW1hbmFnZXJcIjtcclxuaW1wb3J0IHtcclxuICBBdXJEcmFnRHJvcE1hcHBpbmcsXHJcbiAgQXVyRHJhZ1ByZXZpZXdNYXBwaW5ncyxcclxuICBEcm9wQ29udGV4dCxcclxufSBmcm9tIFwiLi9tb2RlbC9hdXItZHJhZy1kcm9wLW1hcHBpbmdcIjtcclxuXHJcblxyXG5pbnRlcmZhY2UgU3RhcnREcmFnRXZlbnQge1xyXG4gIHNvdXJjZU5hbWU6IHN0cmluZyxcclxuICBkcmFnZ2VkRGF0YTogdW5rbm93bltdLFxyXG59XHJcblxyXG5pbnRlcmZhY2UgRHJvcEV2ZW50IHtcclxuICB0YXJnZXROYW1lOiBzdHJpbmcsXHJcbiAgdGFyZ2V0RGF0YTogdW5rbm93bixcclxufVxyXG5cclxuLyoqXHJcbiAqIE1hbmFnZXMgdGhlIGRyYWctYW5kLWRyb3AgcHJvY2VzcywgaW5jbHVkaW5nIHN0YXJ0LCBkcm9wLCBhbmQgZW5kIGV2ZW50cy5cclxuICogSGFuZGxlcyBkcmFnIHByZXZpZXdzLCBkcm9wIHZhbGlkYXRpb24sIGFuZCBkYXRhc2V0IHVwZGF0ZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIGRyb3AuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQXVyRHJhZ0Ryb3BNYW5hZ2VyIHtcclxuICAvKipcclxuICAgKiAgTWFuYWdlcyBkcm9wIHZhbGlkYXRpb24gbG9naWNcclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGNhbkRyb3BNYW5hZ2VyOiBDYW5Ecm9wTWFuYWdlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFuYWdlcyBkcmFnIHByZXZpZXcgcmVuZGVyaW5nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBwcmV2aWV3TWFuYWdlcjogRHJhZ1ByZXZpZXdNYW5hZ2VyO1xyXG5cclxuICAvKipcclxuICAgKiBNYW5hZ2VzIHNvdXJjZS10YXJnZXQgbWFwcGluZ3NcclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IG1hcHBpbmdNYW5hZ2VyOiBEcmFnRHJvcE1hcHBpbmdNYW5hZ2VyO1xyXG5cclxuICAvKipcclxuICAgKiBIb2xkcyBpbmZvIGFib3V0IHRoZSBjdXJyZW50IGRyYWcgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGFydERyYWdFdmVudD86IFN0YXJ0RHJhZ0V2ZW50O1xyXG5cclxuICAvKipcclxuICAgKiBIb2xkcyBpbmZvIGFib3V0IHRoZSBjdXJyZW50IGRyb3Agb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkcm9wRXZlbnQ/OiBEcm9wRXZlbnQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW4gZW1wdHkgaW5zdGFuY2Ugb2YgQXVyRHJhZ0Ryb3BNYW5hZ2VyLlxyXG4gICAqIEByZXR1cm5zIHtBdXJEcmFnRHJvcE1hbmFnZXJ9IC0gQW4gZW1wdHkgbWFuYWdlciB3aXRoIG5vIGluaXRpYWxpemVkIHJlZmVyZW5jZXMuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBBdXJEcmFnRHJvcE1hbmFnZXIge1xyXG4gICAgcmV0dXJuIG5ldyBBdXJEcmFnRHJvcE1hbmFnZXIodW5kZWZpbmVkISwgW10sIFtdKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBtYXBwaW5nczogQXVyRHJhZ0Ryb3BNYXBwaW5nPGFueSwgYW55PltdLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcHJldmlld01hcHBpbmdzOiBBdXJEcmFnUHJldmlld01hcHBpbmdzPGFueT5bXSkge1xyXG4gICAgdGhpcy5jYW5Ecm9wTWFuYWdlciA9IG5ldyBDYW5Ecm9wTWFuYWdlcihtYXBwaW5ncyk7XHJcbiAgICB0aGlzLnByZXZpZXdNYW5hZ2VyID0gbmV3IERyYWdQcmV2aWV3TWFuYWdlcih2aWV3Q29udGFpbmVyUmVmLCB0aGlzLnByZXZpZXdNYXBwaW5ncyk7XHJcbiAgICB0aGlzLm1hcHBpbmdNYW5hZ2VyID0gbmV3IERyYWdEcm9wTWFwcGluZ01hbmFnZXIobWFwcGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGRyYWdnYWJsZSBzb3VyY2UgbmFtZXMuXHJcbiAgICogQHJldHVybnMge3N0cmluZ1tdfSAtIEFycmF5IG9mIHNvdXJjZSBuYW1lcy5cclxuICAgKi9cclxuICBnZXQgZHJhZ2dhYmxlU291cmNlTmFtZXMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwcGluZ3M/Lm1hcChtYXBwaW5nID0+IG1hcHBpbmcuc291cmNlTmFtZSkgfHwgW107XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWF0ZXMgYSBkcmFnIG9wZXJhdGlvbiwgc2F2aW5nIHRoZSBjb250ZXh0IGFuZCBzaG93aW5nIGEgZHJhZyBwcmV2aWV3LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2VOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGRyYWcgc291cmNlLlxyXG4gICAqIEBwYXJhbSB7dW5rbm93bltdfSBkcmFnZ2VkRGF0YSAtIFRoZSBkYXRhIGJlaW5nIGRyYWdnZWQuXHJcbiAgICogQHBhcmFtIHtEcmFnRXZlbnR9IGV2ZW50IC0gVGhlIGRyYWcgZXZlbnQuXHJcbiAgICogQHRocm93cyBFcnJvciBpZiBhIGRyYWcgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcy5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhcnREcmFnKHNvdXJjZU5hbWU6IHN0cmluZywgZHJhZ2dlZERhdGE6IHVua25vd25bXSwgZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGFydERyYWdFdmVudCA9IHtzb3VyY2VOYW1lLCBkcmFnZ2VkRGF0YX07XHJcbiAgICB0aGlzLnByZXZpZXdNYW5hZ2VyLnNob3dQcmV2aWV3KHNvdXJjZU5hbWUsIGV2ZW50LCBkcmFnZ2VkRGF0YSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgZHJvcCBpcyBhbGxvd2VkIG9uIHRoZSB0YXJnZXQgZWxlbWVudCBieSBjYWxsaW5nIHByZXZlbnREZWZhdWx0LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhcmdldCBlbGVtZW50LlxyXG4gICAqIEBwYXJhbSB7RHJhZ0V2ZW50fSBldmVudCAtIFRoZSBkcmFnIGV2ZW50LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjYW5Ecm9wUHJldmVudERlZmF1bHQodGFyZ2V0TmFtZTogc3RyaW5nLCBldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc3RhcnREcmFnRXZlbnQpIHtcclxuICAgICAgLy8g0L/QtdGA0LXRgtCw0YHQutC40LLQsNC90LjQtSDQvdC1INC90LDRh9Cw0YLQvlxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhbkRyb3BNYW5hZ2VyLmRyb3BQcmV2ZW50RGVmYXVsdCh0aGlzLnN0YXJ0RHJhZ0V2ZW50LnNvdXJjZU5hbWUsIHRhcmdldE5hbWUsIGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGVzIHRoZSBkcm9wIG9wZXJhdGlvbiBvbiB0aGUgc3BlY2lmaWVkIHRhcmdldC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFyZ2V0TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgZWxlbWVudC5cclxuICAgKiBAcGFyYW0ge2FueX0gdGFyZ2V0RGF0YSAtIFRoZSBkYXRhIGZvciB0aGUgdGFyZ2V0IGVsZW1lbnQuXHJcbiAgICovXHJcbiAgcHVibGljIGRyb3AodGFyZ2V0TmFtZTogc3RyaW5nLCB0YXJnZXREYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZHJvcEV2ZW50ID0ge3RhcmdldE5hbWUsIHRhcmdldERhdGF9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmRzIHRoZSBkcmFnIG9wZXJhdGlvbiBhbmQgdXBkYXRlcyB0aGUgZGF0YXNldCBpZiB0aGUgZHJvcCB3YXMgc3VjY2Vzc2Z1bC5cclxuICAgKi9cclxuICBwdWJsaWMgZW5kRHJhZygpOiB2b2lkIHtcclxuICAgIHRoaXMucHJldmlld01hbmFnZXIucmVtb3ZlUHJldmlldygpO1xyXG4gICAgaWYgKCF0aGlzLmRyb3BFdmVudCB8fCAhdGhpcy5zdGFydERyYWdFdmVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWFwcGluZyA9IHRoaXMuZ2V0TWFwcGluZyh0aGlzLnN0YXJ0RHJhZ0V2ZW50IS5zb3VyY2VOYW1lLCB0aGlzLmRyb3BFdmVudC50YXJnZXROYW1lKTtcclxuICAgIGNvbnN0IGRyb3BDb250ZXh0ID0gdGhpcy5idWlsZERyb3BDb250ZXh0KClcclxuXHJcbiAgICBtYXBwaW5nLmFmdGVyRHJvcEZuKGRyb3BDb250ZXh0KT8ucGlwZShmaXJzdCgpKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRyb3BFdmVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIHRoaXMuc3RhcnREcmFnRXZlbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREcm9wQ29udGV4dCgpOiBEcm9wQ29udGV4dDxhbnksIGFueT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGFyZ2V0TmFtZTogdGhpcy5kcm9wRXZlbnQhLnRhcmdldE5hbWUsXHJcbiAgICAgIHRhcmdldERhdGE6IHRoaXMuZHJvcEV2ZW50IS50YXJnZXREYXRhLFxyXG4gICAgICBzb3VyY2VOYW1lOiB0aGlzLnN0YXJ0RHJhZ0V2ZW50IS5zb3VyY2VOYW1lLFxyXG4gICAgICBzb3VyY2VEYXRhOiB0aGlzLnN0YXJ0RHJhZ0V2ZW50IS5kcmFnZ2VkRGF0YSxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TWFwcGluZyhzb3VyY2VOYW1lOiBzdHJpbmcsIHRhcmdldE5hbWU6IHN0cmluZyk6IEF1ckRyYWdEcm9wTWFwcGluZzxhbnksIGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWFwcGluZ01hbmFnZXIuZ2V0KHNvdXJjZU5hbWUsIHRhcmdldE5hbWUpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class CanDropManager {
|
|
2
|
+
constructor(mappings) {
|
|
3
|
+
//can drop [key from table, value to table name]
|
|
4
|
+
this.canDropStorage = new Map();
|
|
5
|
+
this.fillStorage(mappings);
|
|
6
|
+
}
|
|
7
|
+
fillStorage(mappings) {
|
|
8
|
+
mappings.forEach(m => {
|
|
9
|
+
if (!this.canDropStorage.has(m.sourceName)) {
|
|
10
|
+
this.canDropStorage.set(m.sourceName, new Set());
|
|
11
|
+
}
|
|
12
|
+
this.canDropStorage.get(m.sourceName).add(m.targetName);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
canDrop(sourceName, targetName) {
|
|
16
|
+
if (!sourceName || !targetName) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return this.canDropStorage.get(sourceName)?.has(targetName) ?? false;
|
|
20
|
+
}
|
|
21
|
+
dropPreventDefault(sourceName, targetName, $event) {
|
|
22
|
+
const canDrop = this.canDrop(sourceName, targetName);
|
|
23
|
+
if (canDrop) {
|
|
24
|
+
$event.preventDefault();
|
|
25
|
+
}
|
|
26
|
+
return canDrop;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWRyb3AtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZHJhZy1kcm9wL2Nhbi1kcm9wLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFBWSxRQUF3QztRQUhwRCxnREFBZ0Q7UUFDeEMsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztRQUd0RCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTyxXQUFXLENBQUMsUUFBd0M7UUFDMUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPLENBQUMsVUFBOEIsRUFBRSxVQUE4QjtRQUMzRSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxVQUE4QixFQUFFLFVBQWtCLEVBQUUsTUFBaUI7UUFDN0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdXJEcmFnRHJvcE1hcHBpbmd9IGZyb20gXCIuL21vZGVsL2F1ci1kcmFnLWRyb3AtbWFwcGluZ1wiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW5Ecm9wTWFuYWdlciB7XHJcblxyXG4gIC8vY2FuIGRyb3AgW2tleSBmcm9tIHRhYmxlLCB2YWx1ZSB0byB0YWJsZSBuYW1lXVxyXG4gIHByaXZhdGUgY2FuRHJvcFN0b3JhZ2UgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKG1hcHBpbmdzOiBBdXJEcmFnRHJvcE1hcHBpbmc8YW55LCBhbnk+W10pIHtcclxuICAgIHRoaXMuZmlsbFN0b3JhZ2UobWFwcGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWxsU3RvcmFnZShtYXBwaW5nczogQXVyRHJhZ0Ryb3BNYXBwaW5nPGFueSwgYW55PltdKSB7XHJcbiAgICBtYXBwaW5ncy5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuY2FuRHJvcFN0b3JhZ2UuaGFzKG0uc291cmNlTmFtZSkpIHtcclxuICAgICAgICB0aGlzLmNhbkRyb3BTdG9yYWdlLnNldChtLnNvdXJjZU5hbWUsIG5ldyBTZXQoKSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jYW5Ecm9wU3RvcmFnZS5nZXQobS5zb3VyY2VOYW1lKSEuYWRkKG0udGFyZ2V0TmFtZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5Ecm9wKHNvdXJjZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCwgdGFyZ2V0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXNvdXJjZU5hbWUgfHwgIXRhcmdldE5hbWUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY2FuRHJvcFN0b3JhZ2UuZ2V0KHNvdXJjZU5hbWUpPy5oYXModGFyZ2V0TmFtZSkgPz8gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZHJvcFByZXZlbnREZWZhdWx0KHNvdXJjZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCwgdGFyZ2V0TmFtZTogc3RyaW5nLCAkZXZlbnQ6IERyYWdFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2FuRHJvcCA9IHRoaXMuY2FuRHJvcChzb3VyY2VOYW1lLCB0YXJnZXROYW1lKTtcclxuICAgIGlmIChjYW5Ecm9wKSB7XHJcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNhbkRyb3A7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class DragDropMappingManager {
|
|
2
|
+
constructor(mappings) {
|
|
3
|
+
this.mappingsStorage = new Map();
|
|
4
|
+
this.fillStorage(mappings);
|
|
5
|
+
}
|
|
6
|
+
get(sourceName, targetName) {
|
|
7
|
+
const mapping = this.mappingsStorage.get(this.buildKey(sourceName, targetName));
|
|
8
|
+
if (!mapping) {
|
|
9
|
+
throw new Error(`Mapping for ${sourceName} -> ${targetName} was not found`);
|
|
10
|
+
}
|
|
11
|
+
return mapping;
|
|
12
|
+
}
|
|
13
|
+
fillStorage(mappings) {
|
|
14
|
+
mappings.forEach(mapping => {
|
|
15
|
+
const key = this.buildKeyForMapping(mapping);
|
|
16
|
+
if (this.mappingsStorage.has(key)) {
|
|
17
|
+
console.log(`WARN: duplicate drag drop mapping: ${key}`);
|
|
18
|
+
}
|
|
19
|
+
this.mappingsStorage.set(key, mapping);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
buildKeyForMapping(mapping) {
|
|
23
|
+
return this.buildKey(mapping.sourceName, mapping.targetName);
|
|
24
|
+
}
|
|
25
|
+
buildKey(sourceName, targetName) {
|
|
26
|
+
return `${sourceName}->${targetName}`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLW1hcHBpbmctbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1hdXItbWF0LXRhYmxlL3NyYy9saWIvZHJhZy1kcm9wL2RyYWctZHJvcC1tYXBwaW5nLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUFZLFFBQXdDO1FBRm5DLG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXdDLENBQUM7UUFHakYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sR0FBRyxDQUFDLFVBQWtCLEVBQUUsVUFBa0I7UUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsVUFBVSxPQUFPLFVBQVUsZ0JBQWdCLENBQUMsQ0FBQTtRQUM3RSxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUF3QztRQUMxRCxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDM0QsQ0FBQztZQUNELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUFxQztRQUM5RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLFFBQVEsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQ3JELE9BQU8sR0FBRyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7SUFDeEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdXJEcmFnRHJvcE1hcHBpbmd9IGZyb20gXCIuL21vZGVsL2F1ci1kcmFnLWRyb3AtbWFwcGluZ1wiO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBEcmFnRHJvcE1hcHBpbmdNYW5hZ2VyIHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBtYXBwaW5nc1N0b3JhZ2UgPSBuZXcgTWFwPHN0cmluZywgQXVyRHJhZ0Ryb3BNYXBwaW5nPGFueSwgYW55Pj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IobWFwcGluZ3M6IEF1ckRyYWdEcm9wTWFwcGluZzxhbnksIGFueT5bXSkge1xyXG4gICAgdGhpcy5maWxsU3RvcmFnZShtYXBwaW5ncyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0KHNvdXJjZU5hbWU6IHN0cmluZywgdGFyZ2V0TmFtZTogc3RyaW5nKTogQXVyRHJhZ0Ryb3BNYXBwaW5nPGFueSwgYW55PiB7XHJcbiAgICBjb25zdCBtYXBwaW5nID0gdGhpcy5tYXBwaW5nc1N0b3JhZ2UuZ2V0KHRoaXMuYnVpbGRLZXkoc291cmNlTmFtZSwgdGFyZ2V0TmFtZSkpO1xyXG4gICAgaWYgKCFtYXBwaW5nKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWFwcGluZyBmb3IgJHtzb3VyY2VOYW1lfSAtPiAke3RhcmdldE5hbWV9IHdhcyBub3QgZm91bmRgKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hcHBpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGxTdG9yYWdlKG1hcHBpbmdzOiBBdXJEcmFnRHJvcE1hcHBpbmc8YW55LCBhbnk+W10pIHtcclxuICAgIG1hcHBpbmdzLmZvckVhY2gobWFwcGluZyA9PiB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHRoaXMuYnVpbGRLZXlGb3JNYXBwaW5nKG1hcHBpbmcpO1xyXG4gICAgICBpZiAodGhpcy5tYXBwaW5nc1N0b3JhZ2UuaGFzKGtleSkpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhgV0FSTjogZHVwbGljYXRlIGRyYWcgZHJvcCBtYXBwaW5nOiAke2tleX1gKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1hcHBpbmdzU3RvcmFnZS5zZXQoa2V5LCBtYXBwaW5nKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkS2V5Rm9yTWFwcGluZyhtYXBwaW5nOiBBdXJEcmFnRHJvcE1hcHBpbmc8YW55LCBhbnk+KTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmJ1aWxkS2V5KG1hcHBpbmcuc291cmNlTmFtZSwgbWFwcGluZy50YXJnZXROYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRLZXkoc291cmNlTmFtZTogc3RyaW5nLCB0YXJnZXROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3NvdXJjZU5hbWV9LT4ke3RhcmdldE5hbWV9YDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export class DragPreviewManager {
|
|
2
|
+
constructor(viewContainerRef, mappings) {
|
|
3
|
+
this.viewContainerRef = viewContainerRef;
|
|
4
|
+
this.previewStorage = new Map();
|
|
5
|
+
this.fillStorage(mappings);
|
|
6
|
+
}
|
|
7
|
+
fillStorage(mappings) {
|
|
8
|
+
mappings.forEach(m => {
|
|
9
|
+
if (this.previewStorage.has(m.sourceName)) {
|
|
10
|
+
console.log(`WARN: Duplicate drag preview mapping for source ${m.sourceName}`);
|
|
11
|
+
}
|
|
12
|
+
this.previewStorage.set(m.sourceName, m.preview);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
showPreview(sourceName, event, draggedData) {
|
|
16
|
+
this.previewStorage.forEach((k, v) => console.log('key', k, 'value', v));
|
|
17
|
+
let previewConstructor = this.previewStorage.get(sourceName);
|
|
18
|
+
if (previewConstructor) {
|
|
19
|
+
// Динамически создаем компонент превью
|
|
20
|
+
this.currentPreviewComponentRef = this.viewContainerRef.createComponent(previewConstructor);
|
|
21
|
+
this.currentPreviewComponentRef.instance.data = draggedData;
|
|
22
|
+
const nativePreview = this.currentPreviewComponentRef.location.nativeElement;
|
|
23
|
+
// Применение необходимых стилей к элементу превью
|
|
24
|
+
nativePreview.style.position = 'absolute';
|
|
25
|
+
nativePreview.style.top = '0';
|
|
26
|
+
nativePreview.style.left = '-9999px'; // Скрыть элемент за пределами экрана
|
|
27
|
+
document.body.appendChild(nativePreview); // Временно добавляем в DOM для отображения
|
|
28
|
+
event.dataTransfer?.setDragImage(nativePreview, 0, 0);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
removePreview() {
|
|
32
|
+
if (this.currentPreviewComponentRef) {
|
|
33
|
+
document.body.removeChild(this.currentPreviewComponentRef.location.nativeElement);
|
|
34
|
+
this.currentPreviewComponentRef.destroy();
|
|
35
|
+
this.currentPreviewComponentRef = undefined;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1wcmV2aWV3LW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL2RyYWctZHJvcC9kcmFnLXByZXZpZXctbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sa0JBQWtCO0lBSzdCLFlBQW9CLGdCQUFrQyxFQUMxQyxRQUF1QztRQUQvQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBSHJDLG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQWtELENBQUM7UUFLMUYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQXVDO1FBQ3pELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtREFBbUQsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7WUFDaEYsQ0FBQztZQUNELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE9BQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxVQUFrQixFQUFFLEtBQWdCLEVBQUUsV0FBc0I7UUFDN0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDeEUsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDdkIsdUNBQXVDO1lBQ3ZDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDNUYsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO1lBRTVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBRTdFLGtEQUFrRDtZQUNsRCxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7WUFDMUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQzlCLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLHFDQUFxQztZQUMzRSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLDJDQUEyQztZQUVyRixLQUFLLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ3BDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEYsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxTQUFTLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtBdXJEcmFnUHJldmlld01hcHBpbmdzfSBmcm9tIFwiLi9tb2RlbC9hdXItZHJhZy1kcm9wLW1hcHBpbmdcIjtcclxuaW1wb3J0IHtBdXJEcmFnUHJldmlld0NvbXBvbmVudH0gZnJvbSBcIi4vbW9kZWwvYXVyLWRyYWctcHJldmlldy1jb21wb25lbnRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBEcmFnUHJldmlld01hbmFnZXIge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHByZXZpZXdTdG9yYWdlID0gbmV3IE1hcDxzdHJpbmcsIG5ldyAoKSA9PiBBdXJEcmFnUHJldmlld0NvbXBvbmVudDxhbnk+PigpO1xyXG4gIHByaXZhdGUgY3VycmVudFByZXZpZXdDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxBdXJEcmFnUHJldmlld0NvbXBvbmVudDxhbnk+PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICAgIG1hcHBpbmdzOiBBdXJEcmFnUHJldmlld01hcHBpbmdzPGFueT5bXSkge1xyXG4gICAgdGhpcy5maWxsU3RvcmFnZShtYXBwaW5ncyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbGxTdG9yYWdlKG1hcHBpbmdzOiBBdXJEcmFnUHJldmlld01hcHBpbmdzPGFueT5bXSkge1xyXG4gICAgbWFwcGluZ3MuZm9yRWFjaChtID0+IHtcclxuICAgICAgaWYgKHRoaXMucHJldmlld1N0b3JhZ2UuaGFzKG0uc291cmNlTmFtZSkpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhgV0FSTjogRHVwbGljYXRlIGRyYWcgcHJldmlldyBtYXBwaW5nIGZvciBzb3VyY2UgJHttLnNvdXJjZU5hbWV9YClcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnByZXZpZXdTdG9yYWdlLnNldChtLnNvdXJjZU5hbWUsIG0ucHJldmlldyEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1ByZXZpZXcoc291cmNlTmFtZTogc3RyaW5nLCBldmVudDogRHJhZ0V2ZW50LCBkcmFnZ2VkRGF0YTogdW5rbm93bltdKSB7XHJcbiAgICB0aGlzLnByZXZpZXdTdG9yYWdlLmZvckVhY2goKGssIHYpID0+IGNvbnNvbGUubG9nKCdrZXknLCBrLCAndmFsdWUnLCB2KSlcclxuICAgIGxldCBwcmV2aWV3Q29uc3RydWN0b3IgPSB0aGlzLnByZXZpZXdTdG9yYWdlLmdldChzb3VyY2VOYW1lKTtcclxuICAgIGlmIChwcmV2aWV3Q29uc3RydWN0b3IpIHtcclxuICAgICAgLy8g0JTQuNC90LDQvNC40YfQtdGB0LrQuCDRgdC+0LfQtNCw0LXQvCDQutC+0LzQv9C+0L3QtdC90YIg0L/RgNC10LLRjNGOXHJcbiAgICAgIHRoaXMuY3VycmVudFByZXZpZXdDb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHByZXZpZXdDb25zdHJ1Y3Rvcik7XHJcbiAgICAgIHRoaXMuY3VycmVudFByZXZpZXdDb21wb25lbnRSZWYuaW5zdGFuY2UuZGF0YSA9IGRyYWdnZWREYXRhO1xyXG5cclxuICAgICAgY29uc3QgbmF0aXZlUHJldmlldyA9IHRoaXMuY3VycmVudFByZXZpZXdDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIC8vINCf0YDQuNC80LXQvdC10L3QuNC1INC90LXQvtCx0YXQvtC00LjQvNGL0YUg0YHRgtC40LvQtdC5INC6INGN0LvQtdC80LXQvdGC0YMg0L/RgNC10LLRjNGOXHJcbiAgICAgIG5hdGl2ZVByZXZpZXcuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgICBuYXRpdmVQcmV2aWV3LnN0eWxlLnRvcCA9ICcwJztcclxuICAgICAgbmF0aXZlUHJldmlldy5zdHlsZS5sZWZ0ID0gJy05OTk5cHgnOyAvLyDQodC60YDRi9GC0Ywg0Y3Qu9C10LzQtdC90YIg0LfQsCDQv9GA0LXQtNC10LvQsNC80Lgg0Y3QutGA0LDQvdCwXHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobmF0aXZlUHJldmlldyk7IC8vINCS0YDQtdC80LXQvdC90L4g0LTQvtCx0LDQstC70Y/QtdC8INCyIERPTSDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjRj1xyXG5cclxuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyPy5zZXREcmFnSW1hZ2UobmF0aXZlUHJldmlldywgMCwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlUHJldmlldygpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQcmV2aWV3Q29tcG9uZW50UmVmKSB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5jdXJyZW50UHJldmlld0NvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgdGhpcy5jdXJyZW50UHJldmlld0NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudFByZXZpZXdDb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVyLWRyYWctZHJvcC1tYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWF1ci1tYXQtdGFibGUvc3JjL2xpYi9kcmFnLWRyb3AvbW9kZWwvYXVyLWRyYWctZHJvcC1tYXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7QXVyRHJhZ1ByZXZpZXdDb21wb25lbnR9IGZyb20gXCIuL2F1ci1kcmFnLXByZXZpZXctY29tcG9uZW50XCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF1ckRyYWdQcmV2aWV3TWFwcGluZ3M8U09VUkNFPiB7XHJcbiAgc291cmNlTmFtZTogc3RyaW5nLFxyXG4gIHJlYWRvbmx5IHByZXZpZXc/OiBuZXcgKCkgPT4gQXVyRHJhZ1ByZXZpZXdDb21wb25lbnQ8U09VUkNFPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIG1hcHBpbmcgY29uZmlndXJhdGlvbiBmb3IgZHJhZy1hbmQtZHJvcCBmdW5jdGlvbmFsaXR5XHJcbiAqIGJldHdlZW4gY29tcG9uZW50cy4gSXQgZGVmaW5lcyB0aGUgc291cmNlIGNvbXBvbmVudCAoZnJvbSB3aGVyZSBkYXRhIGlzIGdyYWJiZWQpXHJcbiAqIGFuZCB0aGUgdGFyZ2V0IGNvbXBvbmVudCAod2hlcmUgZGF0YSBpcyBkcm9wcGVkKSwgYXMgd2VsbCBhcyB0aGUgZnVuY3Rpb25zIHRoYXQgaGFuZGxlXHJcbiAqIHRoZSBncmFiYmluZyBhbmQgZHJvcHBpbmcgb2YgZGF0YS5cclxuICpcclxuICogQHRlbXBsYXRlIFNPVVJDRSAtIFRoZSB0eXBlIG9mIGRhdGEgdXNlZCBieSB0aGUgc291cmNlIGNvbXBvbmVudC5cclxuICogQHRlbXBsYXRlIFRBUkdFVCAtIFRoZSB0eXBlIG9mIGRhdGEgdXNlZCBieSB0aGUgdGFyZ2V0IGNvbXBvbmVudC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXVyRHJhZ0Ryb3BNYXBwaW5nPFNPVVJDRSwgVEFSR0VUPiB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzb3VyY2UgY29tcG9uZW50IGZyb20gd2hpY2ggZGF0YSBjYW4gYmUgZ3JhYmJlZC5cclxuICAgKiBUaGlzIHJlcHJlc2VudHMgdGhlIGNvbXBvbmVudCB0aGF0IGFsbG93cyBhIHVzZXIgdG8gaW5pdGlhdGUgYSBncmFiIGFjdGlvbi5cclxuICAgKi9cclxuICByZWFkb25seSBzb3VyY2VOYW1lOiBzdHJpbmcsXHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgY29tcG9uZW50IHdoZXJlIHRoZSBkYXRhIGNhbiBiZSBkcm9wcGVkLlxyXG4gICAqIFRoaXMgcmVwcmVzZW50cyB0aGUgY29tcG9uZW50IHRoYXQgYWNjZXB0cyB0aGUgZHJvcCBhY3Rpb24uXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdGFyZ2V0TmFtZTogc3RyaW5nLFxyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiBjYWxsZWQgdG8gaGFuZGxlIHRoZSBkcm9wIGFjdGlvbiBpbiB0aGUgdGFyZ2V0IGNvbXBvbmVudC5cclxuICAgKiBJdCBpcyBpbnZva2VkIHdoZW4gdGhlIGRyb3AgZXZlbnQgb2NjdXJzLCBhbmQgaXQgZGVzY3JpYmVzIGhvdyB0byBwcm9jZXNzXHJcbiAgICogdGhlIGRhdGEgaW50byB0aGUgdGFyZ2V0IGNvbXBvbmVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBjdHggLSBUaGUgZHJvcCBjb250ZXh0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0LlxyXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGRhdGEgZWxlbWVudHMgb2YgdHlwZSBUQVJHRVQuXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgYWZ0ZXJEcm9wRm46IChjdHg6IERyb3BDb250ZXh0PFNPVVJDRSwgVEFSR0VUPikgPT4gT2JzZXJ2YWJsZTxBdXJEcm9wUmVzdWx0PixcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXJEcm9wUmVzdWx0IHtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEcm9wQ29udGV4dDxTT1VSQ0UsIFRBUkdFVD4ge1xyXG4gIHJlYWRvbmx5IHNvdXJjZU5hbWU6IHN0cmluZyxcclxuICByZWFkb25seSBzb3VyY2VEYXRhOiBTT1VSQ0VbXSxcclxuXHJcbiAgcmVhZG9ubHkgdGFyZ2V0TmFtZTogc3RyaW5nLFxyXG4gIHJlYWRvbmx5IHRhcmdldERhdGE6IFRBUkdFVCxcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVyLWRyYWctcHJldmlldy1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYXVyLW1hdC10YWJsZS9zcmMvbGliL2RyYWctZHJvcC9tb2RlbC9hdXItZHJhZy1wcmV2aWV3LWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqINCe0LHRidC40Lkg0LjQvdGC0LXRgNGE0LXQudGBINC00LvRjyDQutC+0LzQv9C+0L3QtdC90YLQvtCyLCDQutC+0YLQvtGA0YvQtSDQuNGB0L/QvtC70YzQt9GD0Y7RgtGB0Y8g0LIg0LrQsNGH0LXRgdGC0LLQtSDQv9GA0LXQstGM0Y5cclxuICog0LTQu9GPINC/0LXRgNC10YLQsNGB0LrQuNCy0LDQvdC40Y8g0LTQsNC90L3Ri9GFLiDQrdGC0L4g0L7QsdC10YHQv9C10YfQuNCy0LDQtdGCINGB0YLQsNC90LTQsNGA0YLQvdGL0Lkg0YHQv9C+0YHQvtCxINC/0LXRgNC10LTQsNGH0LhcclxuICog0LTQsNC90L3Ri9GFINCyINGC0LDQutC40LUg0LrQvtC80L/QvtC90LXQvdGC0YsuXHJcbiAqXHJcbiAqIEB0ZW1wbGF0ZSBEQVRBIC0g0KLQuNC/INC00LDQvdC90YvRhSwg0LrQvtGC0L7RgNGL0LUg0LHRg9C00YPRgiDQv9C10YDQtdC00LDQvdGLINCyINC60L7QvNC/0L7QvdC10L3RgiDQtNC70Y8g0L/RgNC10LLRjNGOLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBdXJEcmFnUHJldmlld0NvbXBvbmVudDxEQVRBPiB7XHJcbiAgLyoqXHJcbiAgICog0JTQsNC90L3Ri9C1LCDQutC+0YLQvtGA0YvQtSDQsdGD0LTRg9GCINC+0YLQvtCx0YDQsNC20LDRgtGM0YHRjyDQsiDQutC+0LzQv9C+0L3QtdC90YLQtSDQv9GA0LXQstGM0Y4uXHJcbiAgICovXHJcbiAgZGF0YTogREFUQVtdO1xyXG59XHJcbiJdfQ==
|