@limble/limble-tree 0.12.4 → 0.13.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/README.md +149 -149
- package/{esm2015/lib/classes/Branch.js → esm2020/lib/classes/Branch.mjs} +1 -1
- package/{esm2015/lib/classes/DropZone.js → esm2020/lib/classes/DropZone.mjs} +1 -1
- package/{esm2015/lib/classes/DropZoneLocation.js → esm2020/lib/classes/DropZoneLocation.mjs} +1 -1
- package/{esm2015/lib/custom-event-bindings/dragleave-no-change-detect.directive.js → esm2020/lib/custom-event-bindings/dragleave-no-change-detect.directive.mjs} +0 -0
- package/{esm2015/lib/custom-event-bindings/dragover-no-change-detect.directive.js → esm2020/lib/custom-event-bindings/dragover-no-change-detect.directive.mjs} +1 -1
- package/esm2020/lib/drop-zone/drop-zone.component.mjs +75 -0
- package/esm2020/lib/limble-tree-branch/limble-tree-branch.component.mjs +110 -0
- package/esm2020/lib/limble-tree-node/limble-tree-node.component.mjs +467 -0
- package/{esm2015/lib/limble-tree-placeholder/limble-tree-placeholder.component.js → esm2020/lib/limble-tree-placeholder/limble-tree-placeholder.component.mjs} +3 -8
- package/esm2020/lib/limble-tree-root/drop-zone.service.mjs +376 -0
- package/esm2020/lib/limble-tree-root/limble-tree-root.component.mjs +172 -0
- package/{esm2015/lib/limble-tree-root/tree-construction-status.service.js → esm2020/lib/limble-tree-root/tree-construction-status.service.mjs} +1 -1
- package/esm2020/lib/limble-tree-root/tree.service.mjs +297 -0
- package/{esm2015/lib/limble-tree.module.js → esm2020/lib/limble-tree.module.mjs} +5 -5
- package/{esm2015/lib/singletons/component-creator.service.js → esm2020/lib/singletons/component-creator.service.mjs} +1 -1
- package/esm2020/lib/singletons/drag-state.service.mjs +63 -0
- package/esm2020/lib/singletons/global-events.service.mjs +136 -0
- package/{esm2015/lib/util.js → esm2020/lib/util.mjs} +1 -1
- package/{esm2015/limble-limble-tree.js → esm2020/limble-limble-tree.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
- package/fesm2015/limble-limble-tree.mjs +2256 -0
- package/fesm2015/limble-limble-tree.mjs.map +1 -0
- package/{fesm2015/limble-limble-tree.js → fesm2020/limble-limble-tree.mjs} +89 -136
- package/fesm2020/limble-limble-tree.mjs.map +1 -0
- package/{limble-limble-tree.d.ts → index.d.ts} +0 -0
- package/lib/custom-event-bindings/dragleave-no-change-detect.directive.d.ts +1 -1
- package/lib/custom-event-bindings/dragover-no-change-detect.directive.d.ts +1 -1
- package/lib/drop-zone/drop-zone.component.d.ts +1 -1
- package/lib/limble-tree-branch/limble-tree-branch.component.d.ts +1 -1
- package/lib/limble-tree-node/limble-tree-node.component.d.ts +1 -1
- package/lib/limble-tree-placeholder/limble-tree-placeholder.component.d.ts +1 -1
- package/lib/limble-tree-root/limble-tree-root.component.d.ts +1 -1
- package/package.json +22 -9
- package/bundles/limble-limble-tree.umd.js +0 -2910
- package/bundles/limble-limble-tree.umd.js.map +0 -1
- package/esm2015/lib/drop-zone/drop-zone.component.js +0 -81
- package/esm2015/lib/limble-tree-branch/limble-tree-branch.component.js +0 -116
- package/esm2015/lib/limble-tree-node/limble-tree-node.component.js +0 -484
- package/esm2015/lib/limble-tree-root/drop-zone.service.js +0 -377
- package/esm2015/lib/limble-tree-root/limble-tree-root.component.js +0 -178
- package/esm2015/lib/limble-tree-root/tree.service.js +0 -301
- package/esm2015/lib/singletons/drag-state.service.js +0 -64
- package/esm2015/lib/singletons/global-events.service.js +0 -137
- package/fesm2015/limble-limble-tree.js.map +0 -1
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild, ViewContainerRef } from "@angular/core";
|
|
2
|
-
import { DropZone } from "../classes/DropZone";
|
|
3
|
-
import { filter } from "rxjs/operators";
|
|
4
|
-
import { isNestingAllowed } from "../util";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../limble-tree-root/tree.service";
|
|
7
|
-
import * as i2 from "../limble-tree-root/drop-zone.service";
|
|
8
|
-
import * as i3 from "../limble-tree-root/tree-construction-status.service";
|
|
9
|
-
import * as i4 from "@angular/common";
|
|
10
|
-
import * as i5 from "../drop-zone/drop-zone.component";
|
|
11
|
-
const _c0 = ["children"];
|
|
12
|
-
function LimbleTreeBranchComponent_drop_zone_1_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
-
i0.ɵɵelement(0, "drop-zone", 3);
|
|
14
|
-
} if (rf & 2) {
|
|
15
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
16
|
-
i0.ɵɵproperty("dropZone", ctx_r0.dropZoneInside);
|
|
17
|
-
} }
|
|
18
|
-
function LimbleTreeBranchComponent_ng_template_3_Template(rf, ctx) { }
|
|
19
|
-
export class LimbleTreeBranchComponent {
|
|
20
|
-
constructor(treeService, changeDetectorRef, dropZoneService, treeConstructionStatus, ngZone) {
|
|
21
|
-
var _a;
|
|
22
|
-
this.treeService = treeService;
|
|
23
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
24
|
-
this.dropZoneService = dropZoneService;
|
|
25
|
-
this.treeConstructionStatus = treeConstructionStatus;
|
|
26
|
-
this.ngZone = ngZone;
|
|
27
|
-
this.treeConstructionStatus.constructing();
|
|
28
|
-
this.indent = (_a = this.treeService.treeOptions) === null || _a === void 0 ? void 0 : _a.indent;
|
|
29
|
-
this.renderDropZoneInside = false;
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
this.addDropZoneInside();
|
|
33
|
-
this.ngZone.runOutsideAngular(() => {
|
|
34
|
-
if (this.dropZoneInside === undefined) {
|
|
35
|
-
throw new Error("drop zone inside is not defined");
|
|
36
|
-
}
|
|
37
|
-
this.dropZoneInside
|
|
38
|
-
.getCommChannel()
|
|
39
|
-
.pipe(filter((message) => message === "checkRendered"))
|
|
40
|
-
.subscribe(() => {
|
|
41
|
-
if (this.dropZoneInside === undefined ||
|
|
42
|
-
this.branch === undefined) {
|
|
43
|
-
throw new Error("Zones not registered");
|
|
44
|
-
}
|
|
45
|
-
if (isNestingAllowed(this.treeService.treeOptions, this.branch.data)) {
|
|
46
|
-
this.renderDropZoneInside = this.dropZoneInside.isRendered();
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
ngAfterViewInit() {
|
|
52
|
-
this.reRender();
|
|
53
|
-
this.setDropZoneHost();
|
|
54
|
-
this.treeConstructionStatus.doneConstructing();
|
|
55
|
-
this.changeDetectorRef.detectChanges();
|
|
56
|
-
}
|
|
57
|
-
ngOnDestroy() {
|
|
58
|
-
if (this.dropZoneInside !== undefined) {
|
|
59
|
-
this.dropZoneService.removeDropZone(this.dropZoneInside);
|
|
60
|
-
}
|
|
61
|
-
this.treeService.cleanupSignal$.next(true);
|
|
62
|
-
}
|
|
63
|
-
addDropZoneInside() {
|
|
64
|
-
if (this.branch === undefined) {
|
|
65
|
-
throw new Error("failed to register drop zone inside");
|
|
66
|
-
}
|
|
67
|
-
this.dropZoneInside = new DropZone([...this.branch.getCoordinates()], 0);
|
|
68
|
-
this.dropZoneService.addDropZone(this.dropZoneInside);
|
|
69
|
-
}
|
|
70
|
-
reRender() {
|
|
71
|
-
if (this.children === undefined || this.branch === undefined) {
|
|
72
|
-
throw new Error("Failed to render limble tree branch");
|
|
73
|
-
}
|
|
74
|
-
this.treeService.renderBranch(this.children, this.branch);
|
|
75
|
-
}
|
|
76
|
-
setDropZoneHost() {
|
|
77
|
-
if (this.children === undefined || this.dropZoneInside === undefined) {
|
|
78
|
-
throw new Error("Failed to add drop zone host");
|
|
79
|
-
}
|
|
80
|
-
this.dropZoneInside.setHost(this.children);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
LimbleTreeBranchComponent.ɵfac = function LimbleTreeBranchComponent_Factory(t) { return new (t || LimbleTreeBranchComponent)(i0.ɵɵdirectiveInject(i1.TreeService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.DropZoneService), i0.ɵɵdirectiveInject(i3.TreeConstructionStatus), i0.ɵɵdirectiveInject(i0.NgZone)); };
|
|
84
|
-
LimbleTreeBranchComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LimbleTreeBranchComponent, selectors: [["limble-tree-branch"]], viewQuery: function LimbleTreeBranchComponent_Query(rf, ctx) { if (rf & 1) {
|
|
85
|
-
i0.ɵɵviewQuery(_c0, 5, ViewContainerRef);
|
|
86
|
-
} if (rf & 2) {
|
|
87
|
-
let _t;
|
|
88
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.children = _t.first);
|
|
89
|
-
} }, inputs: { branch: "branch" }, decls: 5, vars: 4, consts: [[3, "dropZone", 4, "ngIf"], [1, "limble-child-nodes", 3, "hidden"], ["children", ""], [3, "dropZone"]], template: function LimbleTreeBranchComponent_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
-
i0.ɵɵelementStart(0, "div");
|
|
91
|
-
i0.ɵɵtemplate(1, LimbleTreeBranchComponent_drop_zone_1_Template, 1, 1, "drop-zone", 0);
|
|
92
|
-
i0.ɵɵelementStart(2, "span", 1);
|
|
93
|
-
i0.ɵɵtemplate(3, LimbleTreeBranchComponent_ng_template_3_Template, 0, 0, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
|
|
94
|
-
i0.ɵɵelementEnd();
|
|
95
|
-
i0.ɵɵelementEnd();
|
|
96
|
-
} if (rf & 2) {
|
|
97
|
-
i0.ɵɵstyleProp("margin-left", ctx.indent, "px");
|
|
98
|
-
i0.ɵɵadvance(1);
|
|
99
|
-
i0.ɵɵproperty("ngIf", ctx.renderDropZoneInside);
|
|
100
|
-
i0.ɵɵadvance(1);
|
|
101
|
-
i0.ɵɵproperty("hidden", ctx.branch && ctx.branch.data.collapsed);
|
|
102
|
-
} }, directives: [i4.NgIf, i5.DropZoneComponent], styles: [""] });
|
|
103
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LimbleTreeBranchComponent, [{
|
|
104
|
-
type: Component,
|
|
105
|
-
args: [{
|
|
106
|
-
selector: "limble-tree-branch",
|
|
107
|
-
templateUrl: "./limble-tree-branch.component.html",
|
|
108
|
-
styleUrls: ["./limble-tree-branch.component.scss"]
|
|
109
|
-
}]
|
|
110
|
-
}], function () { return [{ type: i1.TreeService }, { type: i0.ChangeDetectorRef }, { type: i2.DropZoneService }, { type: i3.TreeConstructionStatus }, { type: i0.NgZone }]; }, { branch: [{
|
|
111
|
-
type: Input
|
|
112
|
-
}], children: [{
|
|
113
|
-
type: ViewChild,
|
|
114
|
-
args: ["children", { read: ViewContainerRef }]
|
|
115
|
-
}] }); })();
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtYnJhbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvbGltYmxlLXRyZWUtYnJhbmNoL2xpbWJsZS10cmVlLWJyYW5jaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLWJyYW5jaC9saW1ibGUtdHJlZS1icmFuY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdKLFNBQVMsRUFDVCxLQUFLLEVBSUwsU0FBUyxFQUNULGdCQUFnQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7O0lDZHhDLCtCQUdhOzs7SUFEVixnREFBMkI7OztBRHFCakMsTUFBTSxPQUFPLHlCQUF5QjtJQWFuQyxZQUNXLFdBQXdCLEVBQ2YsaUJBQW9DLEVBQ3BDLGVBQWdDLEVBQ2hDLHNCQUE4QyxFQUM5QyxNQUFjOztRQUp2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNmLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUUvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVywwQ0FBRSxNQUFNLENBQUM7UUFDbkQsSUFBSSxD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QmxELDJCQUFvQztRQUNqQyxzRkFHYTtRQUNiLCtCQUE0RTtRQUN6RSwySEFBcUM7UUFDeEMsaUJBQU87UUFDVixpQkFBTTs7UUFSRCwrQ0FBOEI7UUFFNUIsZUFBMEI7UUFBMUIsK0NBQTBCO1FBR3hCLGVBQTBDO1FBQTFDLGdFQUEwQzs7dUZEbUJ0Qyx5QkFBeUI7Y0FMckMsU0FBUztlQUFDO2dCQUNSLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFdBQVcsRUFBRSxxQ0FBcUM7Z0JBQ2xELFNBQVMsRUFBRSxDQUFDLHFDQUFxQyxDQUFDO2FBQ3BEO3NMQUdXLE1BQU07a0JBQWQsS0FBSztZQUU2QyxRQUFRO2tCQUExRCxTQUFTO21CQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgIEFmdGVyVmlld0luaXQsXHJcbiAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICBDb21wb25lbnQsXHJcbiAgIElucHV0LFxyXG4gICBOZ1pvbmUsXHJcbiAgIE9uRGVzdHJveSxcclxuICAgT25Jbml0LFxyXG4gICBWaWV3Q2hpbGQsXHJcbiAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcmVlU2VydmljZSB9IGZyb20gXCIuLi9saW1ibGUtdHJlZS1yb290L3RyZWUuc2VydmljZVwiO1xyXG5pbXBvcnQgdHlwZSB7IEJyYW5jaCB9IGZyb20gXCIuLi9jbGFzc2VzL0JyYW5jaFwiO1xyXG5pbXBvcnQgeyBEcm9wWm9uZSB9IGZyb20gXCIuLi9jbGFzc2VzL0Ryb3Bab25lXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBpc05lc3RpbmdBbGxvd2VkIH0gZnJvbSBcIi4uL3V0aWxcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvZHJvcC16b25lLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJlZUNvbnN0cnVjdGlvblN0YXR1cyB9IGZyb20gXCIuLi9saW1ibGUtdHJlZS1yb290L3RyZWUtY29uc3RydWN0aW9uLXN0YXR1cy5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgc2VsZWN0b3I6IFwibGltYmxlLXRyZWUtYnJhbmNoXCIsXHJcbiAgIHRlbXBsYXRlVXJsOiBcIi4vbGltYmxlLXRyZWUtYnJhbmNoLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgIHN0eWxlVXJsczogW1wiLi9saW1ibGUtdHJlZS1icmFuY2guY29tcG9uZW50LnNjc3NcIl1cclxufSlcclxuZXhwb3J0IGNsYXNzIExpbWJsZVRyZWVCcmFuY2hDb21wb25lbnRcclxuICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgIEBJbnB1dCgpIGJyYW5jaDogQnJhbmNoPGFueT4gfCB1bmRlZmluZWQ7XHJcblxyXG4gICBAVmlld0NoaWxkKFwiY2hpbGRyZW5cIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNoaWxkcmVuOlxyXG4gICAgICB8IFZpZXdDb250YWluZXJSZWZcclxuICAgICAgfCB1bmRlZmluZWQ7XHJcblxyXG4gICBwdWJsaWMgZHJvcFpvbmVJbnNpZGU6IERyb3Bab25lIHwgdW5kZWZpbmVkO1xyXG4gICBwdWJsaWMgcmVuZGVyRHJvcFpvbmVJbnNpZGU6IGJvb2xlYW47XHJcblxyXG4gICBwdWJsaWMgcmVhZG9ubHkgaW5kZW50O1xyXG5cclxuICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgdHJlZVNlcnZpY2U6IFRyZWVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZVNlcnZpY2U6IERyb3Bab25lU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmVlQ29uc3RydWN0aW9uU3RhdHVzOiBUcmVlQ29uc3RydWN0aW9uU3RhdHVzLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lXHJcbiAgICkge1xyXG4gICAgICB0aGlzLnRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMuY29uc3RydWN0aW5nKCk7XHJcbiAgICAgIHRoaXMuaW5kZW50ID0gdGhpcy50cmVlU2VydmljZS50cmVlT3B0aW9ucz8uaW5kZW50O1xyXG4gICAgICB0aGlzLnJlbmRlckRyb3Bab25lSW5zaWRlID0gZmFsc2U7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgdGhpcy5hZGREcm9wWm9uZUluc2lkZSgpO1xyXG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgIGlmICh0aGlzLmRyb3Bab25lSW5zaWRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZHJvcCB6b25lIGluc2lkZSBpcyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgICAgfVxyXG4gICAgICAgICB0aGlzLmRyb3Bab25lSW5zaWRlXHJcbiAgICAgICAgICAgIC5nZXRDb21tQ2hhbm5lbCgpXHJcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcigobWVzc2FnZSkgPT4gbWVzc2FnZSA9PT0gXCJjaGVja1JlbmRlcmVkXCIpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRyb3Bab25lSW5zaWRlID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5icmFuY2ggPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWm9uZXMgbm90IHJlZ2lzdGVyZWRcIik7XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICBpc05lc3RpbmdBbGxvd2VkKFxyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLnRyZWVPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLmJyYW5jaC5kYXRhXHJcbiAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRHJvcFpvbmVJbnNpZGUgPSB0aGlzLmRyb3Bab25lSW5zaWRlLmlzUmVuZGVyZWQoKTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgIHRoaXMucmVSZW5kZXIoKTtcclxuICAgICAgdGhpcy5zZXREcm9wWm9uZUhvc3QoKTtcclxuICAgICAgdGhpcy50cmVlQ29uc3RydWN0aW9uU3RhdHVzLmRvbmVDb25zdHJ1Y3RpbmcoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgaWYgKHRoaXMuZHJvcFpvbmVJbnNpZGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5yZW1vdmVEcm9wWm9uZSh0aGlzLmRyb3Bab25lSW5zaWRlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLmNsZWFudXBTaWduYWwkLm5leHQodHJ1ZSk7XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgYWRkRHJvcFpvbmVJbnNpZGUoKSB7XHJcbiAgICAgIGlmICh0aGlzLmJyYW5jaCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImZhaWxlZCB0byByZWdpc3RlciBkcm9wIHpvbmUgaW5zaWRlXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVJbnNpZGUgPSBuZXcgRHJvcFpvbmUoWy4uLnRoaXMuYnJhbmNoLmdldENvb3JkaW5hdGVzKCldLCAwKTtcclxuICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2UuYWRkRHJvcFpvbmUodGhpcy5kcm9wWm9uZUluc2lkZSk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyByZVJlbmRlcigpIHtcclxuICAgICAgaWYgKHRoaXMuY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fCB0aGlzLmJyYW5jaCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byByZW5kZXIgbGltYmxlIHRyZWUgYnJhbmNoXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UucmVuZGVyQnJhbmNoKHRoaXMuY2hpbGRyZW4sIHRoaXMuYnJhbmNoKTtcclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBzZXREcm9wWm9uZUhvc3QoKSB7XHJcbiAgICAgIGlmICh0aGlzLmNoaWxkcmVuID09PSB1bmRlZmluZWQgfHwgdGhpcy5kcm9wWm9uZUluc2lkZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byBhZGQgZHJvcCB6b25lIGhvc3RcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kcm9wWm9uZUluc2lkZS5zZXRIb3N0KHRoaXMuY2hpbGRyZW4pO1xyXG4gICB9XHJcbn1cclxuIiwiPGRpdiBbc3R5bGUubWFyZ2luTGVmdC5weF09XCJpbmRlbnRcIj5cclxuICAgPGRyb3Atem9uZVxyXG4gICAgICAqbmdJZj1cInJlbmRlckRyb3Bab25lSW5zaWRlXCJcclxuICAgICAgW2Ryb3Bab25lXT1cImRyb3Bab25lSW5zaWRlXCJcclxuICAgPjwvZHJvcC16b25lPlxyXG4gICA8c3BhbiBbaGlkZGVuXT1cImJyYW5jaCAmJiBicmFuY2guZGF0YS5jb2xsYXBzZWRcIiBjbGFzcz1cImxpbWJsZS1jaGlsZC1ub2Rlc1wiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2NoaWxkcmVuPjwvbmctdGVtcGxhdGU+XHJcbiAgIDwvc3Bhbj5cclxuPC9kaXY+XHJcbiJdfQ==
|