@limble/limble-tree 0.13.0 → 1.0.0-alpha.1
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 +22 -129
- package/esm2020/lib/components/branch/branch.component.mjs +87 -0
- package/esm2020/lib/components/dropzone/dropzone.component.mjs +35 -0
- package/esm2020/lib/components/host-component.interface.mjs +2 -0
- package/esm2020/lib/components/node-component.interface.mjs +2 -0
- package/esm2020/lib/components/root/root.component.mjs +37 -0
- package/esm2020/lib/core/branch-options.interface.mjs +2 -0
- package/esm2020/lib/core/configuration/configuration.mjs +17 -0
- package/esm2020/lib/core/configuration/tree-options.interface.mjs +2 -0
- package/esm2020/lib/core/index.mjs +6 -0
- package/esm2020/lib/core/relationship.interface.mjs +2 -0
- package/esm2020/lib/core/tree-branch/tree-branch.mjs +246 -0
- package/esm2020/lib/core/tree-node-base.mjs +68 -0
- package/esm2020/lib/core/tree-root/tree-root.mjs +69 -0
- package/esm2020/lib/core/tree-service/tree.service.mjs +19 -0
- package/esm2020/lib/errors/index.mjs +2 -0
- package/esm2020/lib/errors/tree-error.mjs +3 -0
- package/esm2020/lib/events/drag/drag-end-event.mjs +28 -0
- package/esm2020/lib/events/drag/drag-start-event.mjs +12 -0
- package/esm2020/lib/events/drag/drop-event.mjs +20 -0
- package/esm2020/lib/events/drag/index.mjs +4 -0
- package/esm2020/lib/events/index.mjs +3 -0
- package/esm2020/lib/events/relational/graft-event.mjs +24 -0
- package/esm2020/lib/events/relational/index.mjs +4 -0
- package/esm2020/lib/events/relational/prune-event.mjs +24 -0
- package/esm2020/lib/events/relational/relational-tree-event.interface.mjs +2 -0
- package/esm2020/lib/extras/collapse/collapse.mjs +33 -0
- package/esm2020/lib/extras/collapse/collapse.module.mjs +15 -0
- package/esm2020/lib/extras/collapse/collapse.service.mjs +20 -0
- package/esm2020/lib/extras/collapse/index.mjs +3 -0
- package/esm2020/lib/extras/drag-and-drop/drag-and-drop.mjs +89 -0
- package/esm2020/lib/extras/drag-and-drop/drag-and-drop.module.mjs +19 -0
- package/esm2020/lib/extras/drag-and-drop/drag-and-drop.service.mjs +28 -0
- package/esm2020/lib/extras/drag-and-drop/drag-state.mjs +47 -0
- package/esm2020/lib/extras/drag-and-drop/draggable.directive.mjs +30 -0
- package/esm2020/lib/extras/drag-and-drop/dragover-no-change-detect.mjs +40 -0
- package/esm2020/lib/extras/drag-and-drop/dropzone-renderer.mjs +176 -0
- package/esm2020/lib/extras/drag-and-drop/index.mjs +5 -0
- package/esm2020/lib/legacy/index.mjs +7 -0
- package/esm2020/lib/legacy/legacy-component-obj.interface.mjs +2 -0
- package/esm2020/lib/legacy/legacy-tree-data.interface.mjs +2 -0
- package/esm2020/lib/legacy/legacy-tree-options.interface.mjs +2 -0
- package/esm2020/lib/legacy/legacy-tree.mjs +74 -0
- package/esm2020/lib/legacy/limble-tree-legacy.module.mjs +20 -0
- package/esm2020/lib/legacy/limble-tree-root/limble-tree-root.component.mjs +78 -0
- package/esm2020/lib/limble-tree.module.mjs +21 -47
- package/esm2020/lib/structure/branchable.interface.mjs +2 -0
- package/esm2020/lib/structure/container-tree-node.interface.mjs +2 -0
- package/esm2020/lib/structure/content-container.interface.mjs +2 -0
- package/esm2020/lib/structure/event-conduit.interface.mjs +2 -0
- package/esm2020/lib/structure/graftable.interface.mjs +2 -0
- package/esm2020/lib/structure/index.mjs +12 -0
- package/esm2020/lib/structure/tree-branch-node.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-event.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-node.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-plot.mjs +2 -0
- package/esm2020/lib/structure/tree-relationship.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-root.node.interface.mjs +2 -0
- package/esm2020/limble-limble-tree.mjs +4 -4
- package/esm2020/public-api.mjs +12 -6
- package/esm2020/shared/assert.mjs +7 -0
- package/fesm2015/limble-limble-tree.mjs +1280 -2226
- package/fesm2015/limble-limble-tree.mjs.map +1 -1
- package/fesm2020/limble-limble-tree.mjs +1270 -2132
- package/fesm2020/limble-limble-tree.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/branch/branch.component.d.ts +26 -0
- package/lib/components/dropzone/dropzone.component.d.ts +13 -0
- package/lib/components/host-component.interface.d.ts +6 -0
- package/lib/components/node-component.interface.d.ts +5 -0
- package/lib/components/root/root.component.d.ts +14 -0
- package/lib/core/branch-options.interface.d.ts +14 -0
- package/lib/core/configuration/configuration.d.ts +11 -0
- package/lib/core/configuration/tree-options.interface.d.ts +35 -0
- package/lib/core/index.d.ts +5 -0
- package/lib/core/relationship.interface.d.ts +6 -0
- package/lib/core/tree-branch/tree-branch.d.ts +44 -0
- package/lib/core/tree-node-base.d.ts +26 -0
- package/lib/core/tree-root/tree-root.d.ts +28 -0
- package/lib/core/tree-service/tree.service.d.ts +9 -0
- package/lib/errors/index.d.ts +1 -0
- package/lib/errors/tree-error.d.ts +2 -0
- package/lib/events/drag/drag-end-event.d.ts +25 -0
- package/lib/events/drag/drag-start-event.d.ts +8 -0
- package/lib/events/drag/drop-event.d.ts +16 -0
- package/lib/events/drag/index.d.ts +3 -0
- package/lib/events/index.d.ts +2 -0
- package/lib/events/relational/graft-event.d.ts +15 -0
- package/lib/events/relational/index.d.ts +3 -0
- package/lib/events/relational/prune-event.d.ts +15 -0
- package/lib/events/relational/relational-tree-event.interface.d.ts +6 -0
- package/lib/extras/collapse/collapse.d.ts +11 -0
- package/lib/extras/collapse/collapse.module.d.ts +6 -0
- package/lib/extras/collapse/collapse.service.d.ts +9 -0
- package/lib/extras/collapse/index.d.ts +2 -0
- package/lib/extras/drag-and-drop/drag-and-drop.d.ts +17 -0
- package/lib/extras/drag-and-drop/drag-and-drop.module.d.ts +8 -0
- package/lib/extras/drag-and-drop/drag-and-drop.service.d.ts +16 -0
- package/lib/extras/drag-and-drop/drag-state.d.ts +23 -0
- package/lib/extras/drag-and-drop/draggable.directive.d.ts +12 -0
- package/lib/{custom-event-bindings/dragover-no-change-detect.directive.d.ts → extras/drag-and-drop/dragover-no-change-detect.d.ts} +14 -14
- package/lib/extras/drag-and-drop/dropzone-renderer.d.ts +28 -0
- package/lib/extras/drag-and-drop/index.d.ts +4 -0
- package/lib/legacy/index.d.ts +6 -0
- package/lib/legacy/legacy-component-obj.interface.d.ts +13 -0
- package/lib/legacy/legacy-tree-data.interface.d.ts +18 -0
- package/lib/legacy/legacy-tree-options.interface.d.ts +34 -0
- package/lib/legacy/legacy-tree.d.ts +14 -0
- package/lib/legacy/limble-tree-legacy.module.d.ts +8 -0
- package/lib/legacy/limble-tree-root/limble-tree-root.component.d.ts +28 -0
- package/lib/limble-tree.module.d.ts +9 -14
- package/lib/structure/branchable.interface.d.ts +5 -0
- package/lib/structure/container-tree-node.interface.d.ts +3 -0
- package/lib/structure/content-container.interface.d.ts +3 -0
- package/lib/structure/event-conduit.interface.d.ts +6 -0
- package/lib/structure/graftable.interface.d.ts +6 -0
- package/lib/structure/index.d.ts +11 -0
- package/lib/structure/tree-branch-node.interface.d.ts +5 -0
- package/lib/structure/tree-event.interface.d.ts +5 -0
- package/lib/structure/tree-node.interface.d.ts +9 -0
- package/lib/structure/tree-plot.d.ts +1 -0
- package/lib/structure/tree-relationship.interface.d.ts +7 -0
- package/lib/structure/tree-root.node.interface.d.ts +2 -0
- package/package.json +6 -14
- package/public-api.d.ts +8 -3
- package/shared/assert.d.ts +1 -0
- package/esm2020/lib/classes/Branch.mjs +0 -153
- package/esm2020/lib/classes/DropZone.mjs +0 -71
- package/esm2020/lib/classes/DropZoneLocation.mjs +0 -16
- package/esm2020/lib/custom-event-bindings/dragleave-no-change-detect.directive.mjs +0 -33
- package/esm2020/lib/custom-event-bindings/dragover-no-change-detect.directive.mjs +0 -39
- package/esm2020/lib/drop-zone/drop-zone.component.mjs +0 -75
- package/esm2020/lib/limble-tree-branch/limble-tree-branch.component.mjs +0 -110
- package/esm2020/lib/limble-tree-node/limble-tree-node.component.mjs +0 -467
- package/esm2020/lib/limble-tree-placeholder/limble-tree-placeholder.component.mjs +0 -70
- package/esm2020/lib/limble-tree-root/drop-zone.service.mjs +0 -376
- package/esm2020/lib/limble-tree-root/limble-tree-root.component.mjs +0 -172
- package/esm2020/lib/limble-tree-root/tree-construction-status.service.mjs +0 -33
- package/esm2020/lib/limble-tree-root/tree.service.mjs +0 -297
- package/esm2020/lib/singletons/component-creator.service.mjs +0 -19
- package/esm2020/lib/singletons/drag-state.service.mjs +0 -63
- package/esm2020/lib/singletons/global-events.service.mjs +0 -136
- package/esm2020/lib/util.mjs +0 -74
- package/lib/classes/Branch.d.ts +0 -26
- package/lib/classes/DropZone.d.ts +0 -27
- package/lib/classes/DropZoneLocation.d.ts +0 -9
- package/lib/custom-event-bindings/dragleave-no-change-detect.directive.d.ts +0 -13
- package/lib/drop-zone/drop-zone.component.d.ts +0 -18
- package/lib/limble-tree-branch/limble-tree-branch.component.d.ts +0 -28
- package/lib/limble-tree-node/limble-tree-node.component.d.ts +0 -53
- package/lib/limble-tree-placeholder/limble-tree-placeholder.component.d.ts +0 -21
- package/lib/limble-tree-root/drop-zone.service.d.ts +0 -62
- package/lib/limble-tree-root/limble-tree-root.component.d.ts +0 -37
- package/lib/limble-tree-root/tree-construction-status.service.d.ts +0 -15
- package/lib/limble-tree-root/tree.service.d.ts +0 -132
- package/lib/singletons/component-creator.service.d.ts +0 -9
- package/lib/singletons/drag-state.service.d.ts +0 -35
- package/lib/singletons/global-events.service.d.ts +0 -13
- package/lib/util.d.ts +0 -13
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { BehaviorSubject } from "rxjs";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DragStateService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.state = "idle";
|
|
7
|
-
this.state$ = new BehaviorSubject(this.state);
|
|
8
|
-
}
|
|
9
|
-
/** Called to indicate that something is being dragged. Stores that something for later. */
|
|
10
|
-
dragging(branch, parentContainer) {
|
|
11
|
-
this._tempData = {
|
|
12
|
-
branch: branch,
|
|
13
|
-
parentContainer: parentContainer
|
|
14
|
-
};
|
|
15
|
-
this.state = "dragging";
|
|
16
|
-
this.state$.next(this.state);
|
|
17
|
-
}
|
|
18
|
-
/** Called to indicate that there is a valid active drop zone. Drop is now possible. */
|
|
19
|
-
droppable() {
|
|
20
|
-
if (this.state !== "dragging") {
|
|
21
|
-
throw new Error("Can only call `droppable` when state is `dragging`");
|
|
22
|
-
}
|
|
23
|
-
this.state = "droppable";
|
|
24
|
-
this.state$.next(this.state);
|
|
25
|
-
}
|
|
26
|
-
/** Called to indicate that there is no longer a valid active drop zone. Drop is no longer possible. */
|
|
27
|
-
notDroppable() {
|
|
28
|
-
if (this.state !== "droppable") {
|
|
29
|
-
throw new Error("Can only call `notDroppable` when state is `droppable`");
|
|
30
|
-
}
|
|
31
|
-
this.state = "dragging";
|
|
32
|
-
this.state$.next(this.state);
|
|
33
|
-
}
|
|
34
|
-
/** Called to indicate that a drop into a valid drop zone has occurred. Returns the item that was dropped. */
|
|
35
|
-
capture() {
|
|
36
|
-
if (this.state !== "droppable") {
|
|
37
|
-
throw new Error("Can only move to `captured` state from `droppable` state");
|
|
38
|
-
}
|
|
39
|
-
this.state = "captured";
|
|
40
|
-
this.state$.next(this.state);
|
|
41
|
-
return this._tempData?.branch;
|
|
42
|
-
}
|
|
43
|
-
/** Called to reset the service for future drags */
|
|
44
|
-
release() {
|
|
45
|
-
this._tempData = undefined;
|
|
46
|
-
this.state = "idle";
|
|
47
|
-
this.state$.next(this.state);
|
|
48
|
-
}
|
|
49
|
-
/** gets the current thing being dragged, if any. */
|
|
50
|
-
getData() {
|
|
51
|
-
return this._tempData;
|
|
52
|
-
}
|
|
53
|
-
/** gets the current state */
|
|
54
|
-
getState() {
|
|
55
|
-
return this.state;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
DragStateService.ɵfac = function DragStateService_Factory(t) { return new (t || DragStateService)(); };
|
|
59
|
-
DragStateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DragStateService, factory: DragStateService.ɵfac });
|
|
60
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DragStateService, [{
|
|
61
|
-
type: Injectable
|
|
62
|
-
}], function () { return []; }, null); })();
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9zaW5nbGV0b25zL2RyYWctc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVd2QyxNQUFNLE9BQU8sZ0JBQWdCO0lBVTFCO1FBQ0csSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELDJGQUEyRjtJQUNwRixRQUFRLENBQUMsTUFBbUIsRUFBRSxlQUFpQztRQUNuRSxJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2QsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsZUFBZTtTQUNsQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx1RkFBdUY7SUFDaEYsU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx1R0FBdUc7SUFDaEcsWUFBWTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQ1osd0RBQXdELENBQzFELENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsOEdBQThHO0lBQ3ZHLE9BQU87UUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQ1osMERBQTBELENBQzVELENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxtREFBbUQ7SUFDNUMsT0FBTztRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsb0RBQW9EO0lBQzdDLE9BQU87UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDekIsQ0FBQztJQUVELDZCQUE2QjtJQUN0QixRQUFRO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7O2dGQXhFUyxnQkFBZ0I7c0VBQWhCLGdCQUFnQixXQUFoQixnQkFBZ0I7dUZBQWhCLGdCQUFnQjtjQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHR5cGUgeyBCcmFuY2ggfSBmcm9tIFwiLi4vY2xhc3Nlcy9CcmFuY2hcIjtcblxuZXhwb3J0IHR5cGUgRHJhZ1N0YXRlID0gXCJpZGxlXCIgfCBcImRyYWdnaW5nXCIgfCBcImRyb3BwYWJsZVwiIHwgXCJjYXB0dXJlZFwiO1xuXG5pbnRlcmZhY2UgVGVtcERhdGEge1xuICAgYnJhbmNoOiBCcmFuY2g8YW55PjtcbiAgIHBhcmVudENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERyYWdTdGF0ZVNlcnZpY2Uge1xuICAgLyoqIHB1c2hlcyB0aGUgbmV3IHN0YXRlIHdoZW5ldmVyIHRoZSBzdGF0ZSBjaGFuZ2VzICovXG4gICBwdWJsaWMgc3RhdGUkOiBCZWhhdmlvclN1YmplY3Q8RHJhZ1N0YXRlPjtcblxuICAgLyoqIGhvbGRzIGRhdGEgYWJvdXQgdGhlIHRoaW5nIGJlaW5nIGRyYWdnZWQgKi9cbiAgIHByaXZhdGUgX3RlbXBEYXRhOiBUZW1wRGF0YSB8IHVuZGVmaW5lZDtcblxuICAgLyoqIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBkcmFnIHByb2Nlc3MgKi9cbiAgIHByaXZhdGUgc3RhdGU6IERyYWdTdGF0ZTtcblxuICAgY29uc3RydWN0b3IoKSB7XG4gICAgICB0aGlzLnN0YXRlID0gXCJpZGxlXCI7XG4gICAgICB0aGlzLnN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHJhZ1N0YXRlPih0aGlzLnN0YXRlKTtcbiAgIH1cblxuICAgLyoqIENhbGxlZCB0byBpbmRpY2F0ZSB0aGF0IHNvbWV0aGluZyBpcyBiZWluZyBkcmFnZ2VkLiBTdG9yZXMgdGhhdCBzb21ldGhpbmcgZm9yIGxhdGVyLiAqL1xuICAgcHVibGljIGRyYWdnaW5nKGJyYW5jaDogQnJhbmNoPGFueT4sIHBhcmVudENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgdGhpcy5fdGVtcERhdGEgPSB7XG4gICAgICAgICBicmFuY2g6IGJyYW5jaCxcbiAgICAgICAgIHBhcmVudENvbnRhaW5lcjogcGFyZW50Q29udGFpbmVyXG4gICAgICB9O1xuICAgICAgdGhpcy5zdGF0ZSA9IFwiZHJhZ2dpbmdcIjtcbiAgICAgIHRoaXMuc3RhdGUkLm5leHQodGhpcy5zdGF0ZSk7XG4gICB9XG5cbiAgIC8qKiBDYWxsZWQgdG8gaW5kaWNhdGUgdGhhdCB0aGVyZSBpcyBhIHZhbGlkIGFjdGl2ZSBkcm9wIHpvbmUuIERyb3AgaXMgbm93IHBvc3NpYmxlLiAqL1xuICAgcHVibGljIGRyb3BwYWJsZSgpIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlICE9PSBcImRyYWdnaW5nXCIpIHtcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbiBvbmx5IGNhbGwgYGRyb3BwYWJsZWAgd2hlbiBzdGF0ZSBpcyBgZHJhZ2dpbmdgXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy5zdGF0ZSA9IFwiZHJvcHBhYmxlXCI7XG4gICAgICB0aGlzLnN0YXRlJC5uZXh0KHRoaXMuc3RhdGUpO1xuICAgfVxuXG4gICAvKiogQ2FsbGVkIHRvIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgbm8gbG9uZ2VyIGEgdmFsaWQgYWN0aXZlIGRyb3Agem9uZS4gRHJvcCBpcyBubyBsb25nZXIgcG9zc2libGUuICovXG4gICBwdWJsaWMgbm90RHJvcHBhYmxlKCkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IFwiZHJvcHBhYmxlXCIpIHtcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIFwiQ2FuIG9ubHkgY2FsbCBgbm90RHJvcHBhYmxlYCB3aGVuIHN0YXRlIGlzIGBkcm9wcGFibGVgXCJcbiAgICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLnN0YXRlID0gXCJkcmFnZ2luZ1wiO1xuICAgICAgdGhpcy5zdGF0ZSQubmV4dCh0aGlzLnN0YXRlKTtcbiAgIH1cblxuICAgLyoqIENhbGxlZCB0byBpbmRpY2F0ZSB0aGF0IGEgZHJvcCBpbnRvIGEgdmFsaWQgZHJvcCB6b25lIGhhcyBvY2N1cnJlZC4gUmV0dXJucyB0aGUgaXRlbSB0aGF0IHdhcyBkcm9wcGVkLiAgKi9cbiAgIHB1YmxpYyBjYXB0dXJlKCkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IFwiZHJvcHBhYmxlXCIpIHtcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIFwiQ2FuIG9ubHkgbW92ZSB0byBgY2FwdHVyZWRgIHN0YXRlIGZyb20gYGRyb3BwYWJsZWAgc3RhdGVcIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RhdGUgPSBcImNhcHR1cmVkXCI7XG4gICAgICB0aGlzLnN0YXRlJC5uZXh0KHRoaXMuc3RhdGUpO1xuICAgICAgcmV0dXJuIHRoaXMuX3RlbXBEYXRhPy5icmFuY2g7XG4gICB9XG5cbiAgIC8qKiBDYWxsZWQgdG8gcmVzZXQgdGhlIHNlcnZpY2UgZm9yIGZ1dHVyZSBkcmFncyAqL1xuICAgcHVibGljIHJlbGVhc2UoKSB7XG4gICAgICB0aGlzLl90ZW1wRGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RhdGUgPSBcImlkbGVcIjtcbiAgICAgIHRoaXMuc3RhdGUkLm5leHQodGhpcy5zdGF0ZSk7XG4gICB9XG5cbiAgIC8qKiBnZXRzIHRoZSBjdXJyZW50IHRoaW5nIGJlaW5nIGRyYWdnZWQsIGlmIGFueS4gKi9cbiAgIHB1YmxpYyBnZXREYXRhKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RlbXBEYXRhO1xuICAgfVxuXG4gICAvKiogZ2V0cyB0aGUgY3VycmVudCBzdGF0ZSAqL1xuICAgcHVibGljIGdldFN0YXRlKCkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdGU7XG4gICB9XG59XG4iXX0=
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { fromEvent } from "rxjs";
|
|
3
|
-
import { filter, throttleTime } from "rxjs/operators";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
function getScrollParent(element) {
|
|
6
|
-
const regex = /(auto|scroll)/;
|
|
7
|
-
const parents = (_node, parentList) => {
|
|
8
|
-
if (_node === null || _node.parentNode === null) {
|
|
9
|
-
return parentList;
|
|
10
|
-
}
|
|
11
|
-
return parents(_node.parentElement, parentList.concat([_node]));
|
|
12
|
-
};
|
|
13
|
-
const style = (_node, prop) => getComputedStyle(_node, null).getPropertyValue(prop);
|
|
14
|
-
const overflow = (_node) => style(_node, "overflow") +
|
|
15
|
-
style(_node, "overflow-y") +
|
|
16
|
-
style(_node, "overflow-x");
|
|
17
|
-
const scroll = (_node) => regex.test(overflow(_node));
|
|
18
|
-
const parentList = parents(element.parentElement, []);
|
|
19
|
-
for (const parent of parentList) {
|
|
20
|
-
if (scroll(parent)) {
|
|
21
|
-
return parent;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return (document.scrollingElement ?? document.documentElement);
|
|
25
|
-
}
|
|
26
|
-
export class GlobalEventsService {
|
|
27
|
-
constructor(ngZone) {
|
|
28
|
-
this.ngZone = ngZone;
|
|
29
|
-
this.ngZone.runOutsideAngular(() => {
|
|
30
|
-
this.globalDrag$ = fromEvent(document, "drag");
|
|
31
|
-
});
|
|
32
|
-
this.scrolling = false;
|
|
33
|
-
}
|
|
34
|
-
addScrolling() {
|
|
35
|
-
this.ngZone.runOutsideAngular(() => {
|
|
36
|
-
if (this.globalDragSubscription !== undefined) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (this.globalDrag$ === undefined) {
|
|
40
|
-
throw new Error("Could not get observable");
|
|
41
|
-
}
|
|
42
|
-
let viewPortHeight;
|
|
43
|
-
let scrollAreaSize;
|
|
44
|
-
let edgeTop;
|
|
45
|
-
let edgeBottom;
|
|
46
|
-
let isInTopScrollArea;
|
|
47
|
-
let isInBottomScrollArea;
|
|
48
|
-
let timer;
|
|
49
|
-
let scrollableDiv;
|
|
50
|
-
let relativeY;
|
|
51
|
-
this.globalDragSubscription = this.globalDrag$
|
|
52
|
-
.pipe(throttleTime(25), filter((event) => {
|
|
53
|
-
if (!event.target) {
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
scrollableDiv = getScrollParent(event.target);
|
|
57
|
-
viewPortHeight = scrollableDiv.clientHeight;
|
|
58
|
-
const viewPortWidth = scrollableDiv.clientWidth;
|
|
59
|
-
let relativeX;
|
|
60
|
-
if (window
|
|
61
|
-
.getComputedStyle(scrollableDiv)
|
|
62
|
-
.getPropertyValue("position")
|
|
63
|
-
.toLowerCase() === "fixed") {
|
|
64
|
-
relativeX = event.clientX;
|
|
65
|
-
relativeY = event.clientY;
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
const boundingRect = scrollableDiv.getBoundingClientRect();
|
|
69
|
-
const scrollableDivAncestor = getScrollParent(scrollableDiv);
|
|
70
|
-
relativeX =
|
|
71
|
-
event.clientX -
|
|
72
|
-
(boundingRect.left + scrollableDivAncestor.scrollLeft);
|
|
73
|
-
relativeY =
|
|
74
|
-
event.clientY -
|
|
75
|
-
(boundingRect.top + scrollableDivAncestor.scrollTop);
|
|
76
|
-
}
|
|
77
|
-
if (relativeX < 0 ||
|
|
78
|
-
relativeX > viewPortWidth ||
|
|
79
|
-
relativeY < 0 ||
|
|
80
|
-
relativeY > viewPortHeight) {
|
|
81
|
-
//Outside of scrollable div
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
scrollAreaSize = Math.max(viewPortHeight * 0.1, 100);
|
|
85
|
-
edgeTop = scrollAreaSize;
|
|
86
|
-
edgeBottom = viewPortHeight - scrollAreaSize;
|
|
87
|
-
isInTopScrollArea = relativeY < edgeTop;
|
|
88
|
-
isInBottomScrollArea = relativeY > edgeBottom;
|
|
89
|
-
return isInTopScrollArea || isInBottomScrollArea;
|
|
90
|
-
}))
|
|
91
|
-
.subscribe(() => {
|
|
92
|
-
if (scrollableDiv === null) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const height = scrollableDiv.scrollHeight;
|
|
96
|
-
const maxScrollY = height - viewPortHeight;
|
|
97
|
-
const currentScrollY = scrollableDiv.scrollTop;
|
|
98
|
-
const canScrollUp = currentScrollY > 0;
|
|
99
|
-
const canScrollDown = currentScrollY < maxScrollY;
|
|
100
|
-
let nextScrollY;
|
|
101
|
-
const maxStep = 75;
|
|
102
|
-
if (isInTopScrollArea && canScrollUp) {
|
|
103
|
-
const intensity = (edgeTop - relativeY) / scrollAreaSize;
|
|
104
|
-
nextScrollY = currentScrollY - maxStep * intensity;
|
|
105
|
-
}
|
|
106
|
-
else if (isInBottomScrollArea && canScrollDown) {
|
|
107
|
-
const intensity = (relativeY - edgeBottom) / scrollAreaSize;
|
|
108
|
-
nextScrollY = currentScrollY + maxStep * intensity;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
nextScrollY = Math.max(0, Math.min(maxScrollY, nextScrollY));
|
|
114
|
-
if (nextScrollY !== currentScrollY) {
|
|
115
|
-
scrollableDiv.scrollTo({ top: nextScrollY });
|
|
116
|
-
this.scrolling = true;
|
|
117
|
-
clearTimeout(timer);
|
|
118
|
-
timer = setTimeout(() => {
|
|
119
|
-
this.scrolling = false;
|
|
120
|
-
}, 100);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
removeScrolling() {
|
|
126
|
-
if (this.globalDragSubscription !== undefined) {
|
|
127
|
-
this.globalDragSubscription.unsubscribe();
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
GlobalEventsService.ɵfac = function GlobalEventsService_Factory(t) { return new (t || GlobalEventsService)(i0.ɵɵinject(i0.NgZone)); };
|
|
132
|
-
GlobalEventsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GlobalEventsService, factory: GlobalEventsService.ɵfac });
|
|
133
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GlobalEventsService, [{
|
|
134
|
-
type: Injectable
|
|
135
|
-
}], function () { return [{ type: i0.NgZone }]; }, null); })();
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9zaW5nbGV0b25zL2dsb2JhbC1ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXRELFNBQVMsZUFBZSxDQUFDLE9BQW9CO0lBQzFDLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUM5QixNQUFNLE9BQU8sR0FBRyxDQUNiLEtBQXlCLEVBQ3pCLFVBQThCLEVBQ1gsRUFBRTtRQUNyQixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUU7WUFDOUMsT0FBTyxVQUFVLENBQUM7U0FDcEI7UUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFrQixFQUFFLElBQVksRUFBRSxFQUFFLENBQ2hELGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUNyQyxLQUFLLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztRQUN4QixLQUFLLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUMxQixLQUFLLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlCLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVuRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRTtRQUM5QixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQixPQUFPLE1BQU0sQ0FBQztTQUNoQjtLQUNIO0lBQ0QsT0FBTyxDQUNILFFBQVEsQ0FBQyxnQkFBZ0MsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUN4RSxDQUFDO0FBQ0wsQ0FBQztBQUdELE1BQU0sT0FBTyxtQkFBbUI7SUFLN0IsWUFBNkIsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQVksUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVNLFlBQVk7UUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEtBQUssU0FBUyxFQUFFO2dCQUM1QyxPQUFPO2FBQ1Q7WUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO2dCQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDOUM7WUFDRCxJQUFJLGNBQXNCLENBQUM7WUFDM0IsSUFBSSxjQUFzQixDQUFDO1lBQzNCLElBQUksT0FBZSxDQUFDO1lBQ3BCLElBQUksVUFBa0IsQ0FBQztZQUN2QixJQUFJLGlCQUEwQixDQUFDO1lBQy9CLElBQUksb0JBQTZCLENBQUM7WUFDbEMsSUFBSSxLQUFvQyxDQUFDO1lBQ3pDLElBQUksYUFBaUMsQ0FBQztZQUN0QyxJQUFJLFNBQWlCLENBQUM7WUFDdEIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxXQUFXO2lCQUMxQyxJQUFJLENBQ0YsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtvQkFDaEIsT0FBTyxLQUFLLENBQUM7aUJBQ2Y7Z0JBQ0QsYUFBYSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBcUIsQ0FBQyxDQUFDO2dCQUM3RCxjQUFjLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztnQkFDNUMsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztnQkFDaEQsSUFBSSxTQUFpQixDQUFDO2dCQUN0QixJQUNHLE1BQU07cUJBQ0YsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO3FCQUMvQixnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7cUJBQzVCLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFDOUI7b0JBQ0MsU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7b0JBQzFCLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO2lCQUM1QjtxQkFBTTtvQkFDSixNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztvQkFDM0QsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQzFDLGFBQWEsQ0FDZixDQUFDO29CQUNGLFNBQVM7d0JBQ04sS0FBSyxDQUFDLE9BQU87NEJBQ2IsQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUMxRCxTQUFTO3dCQUNOLEtBQUssQ0FBQyxPQUFPOzRCQUNiLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDMUQ7Z0JBQ0QsSUFDRyxTQUFTLEdBQUcsQ0FBQztvQkFDYixTQUFTLEdBQUcsYUFBYTtvQkFDekIsU0FBUyxHQUFHLENBQUM7b0JBQ2IsU0FBUyxHQUFHLGNBQWMsRUFDM0I7b0JBQ0MsMkJBQTJCO29CQUMzQixPQUFPLEtBQUssQ0FBQztpQkFDZjtnQkFDRCxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRCxPQUFPLEdBQUcsY0FBYyxDQUFDO2dCQUN6QixVQUFVLEdBQUcsY0FBYyxHQUFHLGNBQWMsQ0FBQztnQkFDN0MsaUJBQWlCLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQztnQkFDeEMsb0JBQW9CLEdBQUcsU0FBUyxHQUFHLFVBQVUsQ0FBQztnQkFDOUMsT0FBTyxpQkFBaUIsSUFBSSxvQkFBb0IsQ0FBQztZQUNwRCxDQUFDLENBQUMsQ0FDSjtpQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNiLElBQUksYUFBYSxLQUFLLElBQUksRUFBRTtvQkFDekIsT0FBTztpQkFDVDtnQkFDRCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO2dCQUMxQyxNQUFNLFVBQVUsR0FBRyxNQUFNLEdBQUcsY0FBYyxDQUFDO2dCQUMzQyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO2dCQUMvQyxNQUFNLFdBQVcsR0FBRyxjQUFjLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLGFBQWEsR0FBRyxjQUFjLEdBQUcsVUFBVSxDQUFDO2dCQUNsRCxJQUFJLFdBQW1CLENBQUM7Z0JBQ3hCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxpQkFBaUIsSUFBSSxXQUFXLEVBQUU7b0JBQ25DLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLGNBQWMsQ0FBQztvQkFDekQsV0FBVyxHQUFHLGNBQWMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO2lCQUNyRDtxQkFBTSxJQUFJLG9CQUFvQixJQUFJLGFBQWEsRUFBRTtvQkFDL0MsTUFBTSxTQUFTLEdBQUcsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsY0FBYyxDQUFDO29CQUM1RCxXQUFXLEdBQUcsY0FBYyxHQUFHLE9BQU8sR0FBRyxTQUFTLENBQUM7aUJBQ3JEO3FCQUFNO29CQUNKLE9BQU87aUJBQ1Q7Z0JBQ0QsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQzdELElBQUksV0FBVyxLQUFLLGNBQWMsRUFBRTtvQkFDakMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDdEIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQixLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7b0JBQzFCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDVjtZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU0sZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxTQUFTLEVBQUU7WUFDNUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVDO0lBQ0osQ0FBQzs7c0ZBbEhTLG1CQUFtQjt5RUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQjt1RkFBbkIsbUJBQW1CO2NBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmlsdGVyLCB0aHJvdHRsZVRpbWUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuZnVuY3Rpb24gZ2V0U2Nyb2xsUGFyZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQge1xuICAgY29uc3QgcmVnZXggPSAvKGF1dG98c2Nyb2xsKS87XG4gICBjb25zdCBwYXJlbnRzID0gKFxuICAgICAgX25vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICAgIHBhcmVudExpc3Q6IEFycmF5PEhUTUxFbGVtZW50PlxuICAgKTogQXJyYXk8SFRNTEVsZW1lbnQ+ID0+IHtcbiAgICAgIGlmIChfbm9kZSA9PT0gbnVsbCB8fCBfbm9kZS5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgICAgICByZXR1cm4gcGFyZW50TGlzdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJlbnRzKF9ub2RlLnBhcmVudEVsZW1lbnQsIHBhcmVudExpc3QuY29uY2F0KFtfbm9kZV0pKTtcbiAgIH07XG5cbiAgIGNvbnN0IHN0eWxlID0gKF9ub2RlOiBIVE1MRWxlbWVudCwgcHJvcDogc3RyaW5nKSA9PlxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShfbm9kZSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wKTtcbiAgIGNvbnN0IG92ZXJmbG93ID0gKF9ub2RlOiBIVE1MRWxlbWVudCkgPT5cbiAgICAgIHN0eWxlKF9ub2RlLCBcIm92ZXJmbG93XCIpICtcbiAgICAgIHN0eWxlKF9ub2RlLCBcIm92ZXJmbG93LXlcIikgK1xuICAgICAgc3R5bGUoX25vZGUsIFwib3ZlcmZsb3cteFwiKTtcbiAgIGNvbnN0IHNjcm9sbCA9IChfbm9kZTogSFRNTEVsZW1lbnQpID0+IHJlZ2V4LnRlc3Qob3ZlcmZsb3coX25vZGUpKTtcblxuICAgY29uc3QgcGFyZW50TGlzdCA9IHBhcmVudHMoZWxlbWVudC5wYXJlbnRFbGVtZW50LCBbXSk7XG4gICBmb3IgKGNvbnN0IHBhcmVudCBvZiBwYXJlbnRMaXN0KSB7XG4gICAgICBpZiAoc2Nyb2xsKHBhcmVudCkpIHtcbiAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICB9XG4gICB9XG4gICByZXR1cm4gKFxuICAgICAgKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpID8/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgKTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdsb2JhbEV2ZW50c1NlcnZpY2Uge1xuICAgcHJpdmF0ZSBnbG9iYWxEcmFnJDogT2JzZXJ2YWJsZTxEcmFnRXZlbnQ+IHwgdW5kZWZpbmVkO1xuICAgcHJpdmF0ZSBnbG9iYWxEcmFnU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gICBwdWJsaWMgc2Nyb2xsaW5nOiBib29sZWFuO1xuXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICB0aGlzLmdsb2JhbERyYWckID0gZnJvbUV2ZW50PERyYWdFdmVudD4oZG9jdW1lbnQsIFwiZHJhZ1wiKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zY3JvbGxpbmcgPSBmYWxzZTtcbiAgIH1cblxuICAgcHVibGljIGFkZFNjcm9sbGluZygpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgIGlmICh0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgfVxuICAgICAgICAgaWYgKHRoaXMuZ2xvYmFsRHJhZyQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGdldCBvYnNlcnZhYmxlXCIpO1xuICAgICAgICAgfVxuICAgICAgICAgbGV0IHZpZXdQb3J0SGVpZ2h0OiBudW1iZXI7XG4gICAgICAgICBsZXQgc2Nyb2xsQXJlYVNpemU6IG51bWJlcjtcbiAgICAgICAgIGxldCBlZGdlVG9wOiBudW1iZXI7XG4gICAgICAgICBsZXQgZWRnZUJvdHRvbTogbnVtYmVyO1xuICAgICAgICAgbGV0IGlzSW5Ub3BTY3JvbGxBcmVhOiBib29sZWFuO1xuICAgICAgICAgbGV0IGlzSW5Cb3R0b21TY3JvbGxBcmVhOiBib29sZWFuO1xuICAgICAgICAgbGV0IHRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgICAgICAgIGxldCBzY3JvbGxhYmxlRGl2OiBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgICBsZXQgcmVsYXRpdmVZOiBudW1iZXI7XG4gICAgICAgICB0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24gPSB0aGlzLmdsb2JhbERyYWckXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgIHRocm90dGxlVGltZSgyNSksXG4gICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LnRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZURpdiA9IGdldFNjcm9sbFBhcmVudChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgdmlld1BvcnRIZWlnaHQgPSBzY3JvbGxhYmxlRGl2LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdQb3J0V2lkdGggPSBzY3JvbGxhYmxlRGl2LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgICAgbGV0IHJlbGF0aXZlWDogbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgd2luZG93XG4gICAgICAgICAgICAgICAgICAgICAgICAuZ2V0Q29tcHV0ZWRTdHlsZShzY3JvbGxhYmxlRGl2KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoXCJwb3NpdGlvblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKCkgPT09IFwiZml4ZWRcIlxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVggPSBldmVudC5jbGllbnRYO1xuICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVZID0gZXZlbnQuY2xpZW50WTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICBjb25zdCBib3VuZGluZ1JlY3QgPSBzY3JvbGxhYmxlRGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZURpdkFuY2VzdG9yID0gZ2V0U2Nyb2xsUGFyZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZURpdlxuICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlWCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jbGllbnRYIC1cbiAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZGluZ1JlY3QubGVmdCArIHNjcm9sbGFibGVEaXZBbmNlc3Rvci5zY3JvbGxMZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlWSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jbGllbnRZIC1cbiAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZGluZ1JlY3QudG9wICsgc2Nyb2xsYWJsZURpdkFuY2VzdG9yLnNjcm9sbFRvcCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVggPCAwIHx8XG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVggPiB2aWV3UG9ydFdpZHRoIHx8XG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVkgPCAwIHx8XG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVkgPiB2aWV3UG9ydEhlaWdodFxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAvL091dHNpZGUgb2Ygc2Nyb2xsYWJsZSBkaXZcbiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHNjcm9sbEFyZWFTaXplID0gTWF0aC5tYXgodmlld1BvcnRIZWlnaHQgKiAwLjEsIDEwMCk7XG4gICAgICAgICAgICAgICAgICBlZGdlVG9wID0gc2Nyb2xsQXJlYVNpemU7XG4gICAgICAgICAgICAgICAgICBlZGdlQm90dG9tID0gdmlld1BvcnRIZWlnaHQgLSBzY3JvbGxBcmVhU2l6ZTtcbiAgICAgICAgICAgICAgICAgIGlzSW5Ub3BTY3JvbGxBcmVhID0gcmVsYXRpdmVZIDwgZWRnZVRvcDtcbiAgICAgICAgICAgICAgICAgIGlzSW5Cb3R0b21TY3JvbGxBcmVhID0gcmVsYXRpdmVZID4gZWRnZUJvdHRvbTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpc0luVG9wU2Nyb2xsQXJlYSB8fCBpc0luQm90dG9tU2Nyb2xsQXJlYTtcbiAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlRGl2ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBzY3JvbGxhYmxlRGl2LnNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgICAgIGNvbnN0IG1heFNjcm9sbFkgPSBoZWlnaHQgLSB2aWV3UG9ydEhlaWdodDtcbiAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxZID0gc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgICBjb25zdCBjYW5TY3JvbGxVcCA9IGN1cnJlbnRTY3JvbGxZID4gMDtcbiAgICAgICAgICAgICAgIGNvbnN0IGNhblNjcm9sbERvd24gPSBjdXJyZW50U2Nyb2xsWSA8IG1heFNjcm9sbFk7XG4gICAgICAgICAgICAgICBsZXQgbmV4dFNjcm9sbFk6IG51bWJlcjtcbiAgICAgICAgICAgICAgIGNvbnN0IG1heFN0ZXAgPSA3NTtcbiAgICAgICAgICAgICAgIGlmIChpc0luVG9wU2Nyb2xsQXJlYSAmJiBjYW5TY3JvbGxVcCkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaW50ZW5zaXR5ID0gKGVkZ2VUb3AgLSByZWxhdGl2ZVkpIC8gc2Nyb2xsQXJlYVNpemU7XG4gICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsWSA9IGN1cnJlbnRTY3JvbGxZIC0gbWF4U3RlcCAqIGludGVuc2l0eTtcbiAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNJbkJvdHRvbVNjcm9sbEFyZWEgJiYgY2FuU2Nyb2xsRG93bikge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaW50ZW5zaXR5ID0gKHJlbGF0aXZlWSAtIGVkZ2VCb3R0b20pIC8gc2Nyb2xsQXJlYVNpemU7XG4gICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsWSA9IGN1cnJlbnRTY3JvbGxZICsgbWF4U3RlcCAqIGludGVuc2l0eTtcbiAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBuZXh0U2Nyb2xsWSA9IE1hdGgubWF4KDAsIE1hdGgubWluKG1heFNjcm9sbFksIG5leHRTY3JvbGxZKSk7XG4gICAgICAgICAgICAgICBpZiAobmV4dFNjcm9sbFkgIT09IGN1cnJlbnRTY3JvbGxZKSB7XG4gICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvKHsgdG9wOiBuZXh0U2Nyb2xsWSB9KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgfVxuXG4gICBwdWJsaWMgcmVtb3ZlU2Nyb2xsaW5nKCkge1xuICAgICAgaWYgKHRoaXMuZ2xvYmFsRHJhZ1N1YnNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICB0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgIH1cbn1cbiJdfQ==
|
package/esm2020/lib/util.mjs
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
export function arraysAreEqual(array1, array2) {
|
|
2
|
-
if (array1.length !== array2.length) {
|
|
3
|
-
return false;
|
|
4
|
-
}
|
|
5
|
-
for (const [index, value1] of array1.entries()) {
|
|
6
|
-
const value2 = array2[index];
|
|
7
|
-
if (value1 instanceof Array && value2 instanceof Array) {
|
|
8
|
-
if (!arraysAreEqual(value1, value2)) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
else if (value1 !== value2) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return true;
|
|
17
|
-
}
|
|
18
|
-
export function isElementDescendant(potentialAncestor, potentialDescendant) {
|
|
19
|
-
if (potentialAncestor === potentialDescendant) {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
let cursor = potentialDescendant.parentNode;
|
|
23
|
-
while (cursor !== document) {
|
|
24
|
-
if (cursor === null) {
|
|
25
|
-
//Did not reach `document` or ancestor. potentialDescendant is not part of the DOM.
|
|
26
|
-
return undefined;
|
|
27
|
-
}
|
|
28
|
-
if (cursor === potentialAncestor) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
cursor = cursor.parentNode;
|
|
32
|
-
}
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
export function isNestingAllowed(options, nodeData) {
|
|
36
|
-
return (options !== undefined &&
|
|
37
|
-
(options.allowNesting === true ||
|
|
38
|
-
(typeof options.allowNesting === "function" &&
|
|
39
|
-
nodeData !== undefined &&
|
|
40
|
-
options.allowNesting(nodeData) === true)));
|
|
41
|
-
}
|
|
42
|
-
export function isDraggingAllowed(options, nodeData) {
|
|
43
|
-
return (options !== undefined &&
|
|
44
|
-
(options.allowDragging === true ||
|
|
45
|
-
(typeof options.allowDragging === "function" &&
|
|
46
|
-
nodeData !== undefined &&
|
|
47
|
-
options.allowDragging(nodeData) === true)));
|
|
48
|
-
}
|
|
49
|
-
export function isFirefox() {
|
|
50
|
-
return navigator.userAgent.includes("Firefox");
|
|
51
|
-
}
|
|
52
|
-
/** Because drop zones can disappear when the mouse moves, sometimes
|
|
53
|
-
* moving the mouse just a little bit inside the tree causes the tree to
|
|
54
|
-
* shrink such that the mouse is no longer over the tree. In this case,
|
|
55
|
-
* a dragleave event may not fire, and we can't clear the drop zones. This
|
|
56
|
-
* function is used to catch this edge case.
|
|
57
|
-
*/
|
|
58
|
-
export function suddenTreeExit(event) {
|
|
59
|
-
if (event.target === null || !(event.target instanceof Element)) {
|
|
60
|
-
throw new Error("failed to get event target element");
|
|
61
|
-
}
|
|
62
|
-
const treeEventHost = event.target.closest(".tree-event-host");
|
|
63
|
-
if (treeEventHost === null) {
|
|
64
|
-
console.log(event.target);
|
|
65
|
-
throw new Error("failed to find treeEventHost");
|
|
66
|
-
}
|
|
67
|
-
const rect = treeEventHost.getBoundingClientRect();
|
|
68
|
-
const clientY = event.clientY;
|
|
69
|
-
if (clientY > rect.bottom || clientY < rect.top) {
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFVBQVUsY0FBYyxDQUMzQixNQUFzQixFQUN0QixNQUFzQjtJQUV0QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNsQyxPQUFPLEtBQUssQ0FBQztLQUNmO0lBQ0QsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxNQUFNLFlBQVksS0FBSyxJQUFJLE1BQU0sWUFBWSxLQUFLLEVBQUU7WUFDckQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ2xDLE9BQU8sS0FBSyxDQUFDO2FBQ2Y7U0FDSDthQUFNLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQztTQUNmO0tBQ0g7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQ2hDLGlCQUF1QixFQUN2QixtQkFBeUI7SUFFekIsSUFBSSxpQkFBaUIsS0FBSyxtQkFBbUIsRUFBRTtRQUM1QyxPQUFPLElBQUksQ0FBQztLQUNkO0lBQ0QsSUFBSSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDO0lBQzVDLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUN6QixJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbEIsbUZBQW1GO1lBQ25GLE9BQU8sU0FBUyxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxNQUFNLEtBQUssaUJBQWlCLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUM7U0FDZDtRQUNELE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0tBQzdCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDN0IsT0FBMEIsRUFDMUIsUUFBeUI7SUFFekIsT0FBTyxDQUNKLE9BQU8sS0FBSyxTQUFTO1FBQ3JCLENBQUMsT0FBTyxDQUFDLFlBQVksS0FBSyxJQUFJO1lBQzNCLENBQUMsT0FBTyxPQUFPLENBQUMsWUFBWSxLQUFLLFVBQVU7Z0JBQ3hDLFFBQVEsS0FBSyxTQUFTO2dCQUN0QixPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQ2pELENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUM5QixPQUEwQixFQUMxQixRQUF5QjtJQUV6QixPQUFPLENBQ0osT0FBTyxLQUFLLFNBQVM7UUFDckIsQ0FBQyxPQUFPLENBQUMsYUFBYSxLQUFLLElBQUk7WUFDNUIsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssVUFBVTtnQkFDekMsUUFBUSxLQUFLLFNBQVM7Z0JBQ3RCLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FDbEQsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN0QixPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBZ0I7SUFDNUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sWUFBWSxPQUFPLENBQUMsRUFBRTtRQUM5RCxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7S0FDeEQ7SUFDRCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQy9ELElBQUksYUFBYSxLQUFLLElBQUksRUFBRTtRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7S0FDbEQ7SUFDRCxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNuRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQzlCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDOUMsT0FBTyxJQUFJLENBQUM7S0FDZDtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gICBMaW1ibGVUcmVlTm9kZSxcbiAgIFByb2Nlc3NlZE9wdGlvbnNcbn0gZnJvbSBcIi4vbGltYmxlLXRyZWUtcm9vdC90cmVlLnNlcnZpY2VcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5c0FyZUVxdWFsKFxuICAgYXJyYXkxOiBBcnJheTx1bmtub3duPixcbiAgIGFycmF5MjogQXJyYXk8dW5rbm93bj5cbik6IGJvb2xlYW4ge1xuICAgaWYgKGFycmF5MS5sZW5ndGggIT09IGFycmF5Mi5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgIH1cbiAgIGZvciAoY29uc3QgW2luZGV4LCB2YWx1ZTFdIG9mIGFycmF5MS5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlMiA9IGFycmF5MltpbmRleF07XG4gICAgICBpZiAodmFsdWUxIGluc3RhbmNlb2YgQXJyYXkgJiYgdmFsdWUyIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgIGlmICghYXJyYXlzQXJlRXF1YWwodmFsdWUxLCB2YWx1ZTIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlMSAhPT0gdmFsdWUyKSB7XG4gICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICB9XG4gICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudERlc2NlbmRhbnQoXG4gICBwb3RlbnRpYWxBbmNlc3RvcjogTm9kZSxcbiAgIHBvdGVudGlhbERlc2NlbmRhbnQ6IE5vZGVcbik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgaWYgKHBvdGVudGlhbEFuY2VzdG9yID09PSBwb3RlbnRpYWxEZXNjZW5kYW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgIH1cbiAgIGxldCBjdXJzb3IgPSBwb3RlbnRpYWxEZXNjZW5kYW50LnBhcmVudE5vZGU7XG4gICB3aGlsZSAoY3Vyc29yICE9PSBkb2N1bWVudCkge1xuICAgICAgaWYgKGN1cnNvciA9PT0gbnVsbCkge1xuICAgICAgICAgLy9EaWQgbm90IHJlYWNoIGBkb2N1bWVudGAgb3IgYW5jZXN0b3IuIHBvdGVudGlhbERlc2NlbmRhbnQgaXMgbm90IHBhcnQgb2YgdGhlIERPTS5cbiAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAoY3Vyc29yID09PSBwb3RlbnRpYWxBbmNlc3Rvcikge1xuICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBjdXJzb3IgPSBjdXJzb3IucGFyZW50Tm9kZTtcbiAgIH1cbiAgIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTmVzdGluZ0FsbG93ZWQoXG4gICBvcHRpb25zPzogUHJvY2Vzc2VkT3B0aW9ucyxcbiAgIG5vZGVEYXRhPzogTGltYmxlVHJlZU5vZGVcbik6IGJvb2xlYW4ge1xuICAgcmV0dXJuIChcbiAgICAgIG9wdGlvbnMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKG9wdGlvbnMuYWxsb3dOZXN0aW5nID09PSB0cnVlIHx8XG4gICAgICAgICAodHlwZW9mIG9wdGlvbnMuYWxsb3dOZXN0aW5nID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgIG5vZGVEYXRhICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIG9wdGlvbnMuYWxsb3dOZXN0aW5nKG5vZGVEYXRhKSA9PT0gdHJ1ZSkpXG4gICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEcmFnZ2luZ0FsbG93ZWQoXG4gICBvcHRpb25zPzogUHJvY2Vzc2VkT3B0aW9ucyxcbiAgIG5vZGVEYXRhPzogTGltYmxlVHJlZU5vZGVcbik6IGJvb2xlYW4ge1xuICAgcmV0dXJuIChcbiAgICAgIG9wdGlvbnMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKG9wdGlvbnMuYWxsb3dEcmFnZ2luZyA9PT0gdHJ1ZSB8fFxuICAgICAgICAgKHR5cGVvZiBvcHRpb25zLmFsbG93RHJhZ2dpbmcgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgICAgbm9kZURhdGEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgb3B0aW9ucy5hbGxvd0RyYWdnaW5nKG5vZGVEYXRhKSA9PT0gdHJ1ZSkpXG4gICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaXJlZm94KCk6IGJvb2xlYW4ge1xuICAgcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoXCJGaXJlZm94XCIpO1xufVxuXG4vKiogQmVjYXVzZSBkcm9wIHpvbmVzIGNhbiBkaXNhcHBlYXIgd2hlbiB0aGUgbW91c2UgbW92ZXMsIHNvbWV0aW1lc1xuICogbW92aW5nIHRoZSBtb3VzZSBqdXN0IGEgbGl0dGxlIGJpdCBpbnNpZGUgdGhlIHRyZWUgY2F1c2VzIHRoZSB0cmVlIHRvXG4gKiBzaHJpbmsgc3VjaCB0aGF0IHRoZSBtb3VzZSBpcyBubyBsb25nZXIgb3ZlciB0aGUgdHJlZS4gSW4gdGhpcyBjYXNlLFxuICogYSBkcmFnbGVhdmUgZXZlbnQgbWF5IG5vdCBmaXJlLCBhbmQgd2UgY2FuJ3QgY2xlYXIgdGhlIGRyb3Agem9uZXMuIFRoaXNcbiAqIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY2F0Y2ggdGhpcyBlZGdlIGNhc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWRkZW5UcmVlRXhpdChldmVudDogRHJhZ0V2ZW50KTogYm9vbGVhbiB7XG4gICBpZiAoZXZlbnQudGFyZ2V0ID09PSBudWxsIHx8ICEoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImZhaWxlZCB0byBnZXQgZXZlbnQgdGFyZ2V0IGVsZW1lbnRcIik7XG4gICB9XG4gICBjb25zdCB0cmVlRXZlbnRIb3N0ID0gZXZlbnQudGFyZ2V0LmNsb3Nlc3QoXCIudHJlZS1ldmVudC1ob3N0XCIpO1xuICAgaWYgKHRyZWVFdmVudEhvc3QgPT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUubG9nKGV2ZW50LnRhcmdldCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgdG8gZmluZCB0cmVlRXZlbnRIb3N0XCIpO1xuICAgfVxuICAgY29uc3QgcmVjdCA9IHRyZWVFdmVudEhvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICBjb25zdCBjbGllbnRZID0gZXZlbnQuY2xpZW50WTtcbiAgIGlmIChjbGllbnRZID4gcmVjdC5ib3R0b20gfHwgY2xpZW50WSA8IHJlY3QudG9wKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgIH1cbiAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
|
package/lib/classes/Branch.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/** An object indicating a location within a tree */
|
|
2
|
-
export declare type BranchCoordinates = Array<number>;
|
|
3
|
-
export declare class Branch<T> {
|
|
4
|
-
data: T;
|
|
5
|
-
protected children: Array<Branch<T>>;
|
|
6
|
-
protected parent: Branch<unknown> | null;
|
|
7
|
-
constructor(data: T);
|
|
8
|
-
isRoot(): boolean;
|
|
9
|
-
getParent(): Branch<unknown> | null;
|
|
10
|
-
setParent<U>(parent: Branch<U> | null): void;
|
|
11
|
-
findByCoordinates(relativeCoordinates: BranchCoordinates): Branch<unknown> | undefined;
|
|
12
|
-
getCoordinates(): BranchCoordinates;
|
|
13
|
-
getChild(index: number): Branch<T> | undefined;
|
|
14
|
-
getChildren(): Array<Branch<T>>;
|
|
15
|
-
clearChildren(): void;
|
|
16
|
-
getIndex(): number | null | undefined;
|
|
17
|
-
getDescendant(relativeCoordinates: BranchCoordinates): Branch<T> | undefined;
|
|
18
|
-
findDescendant(predicate: (data: T) => boolean): Branch<T> | undefined;
|
|
19
|
-
getAncestors(): Array<Branch<unknown>>;
|
|
20
|
-
appendChild(child: Branch<T>): Branch<T>;
|
|
21
|
-
insertChild(child: Branch<T>, index: number): Branch<T>;
|
|
22
|
-
removeChild(index: number): Branch<T>;
|
|
23
|
-
remove(): Branch<T>;
|
|
24
|
-
copy(): Branch<T>;
|
|
25
|
-
protected copyHelper(): Branch<T>;
|
|
26
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { BranchCoordinates } from "./Branch";
|
|
2
|
-
import { DropZoneFamily } from "../limble-tree-root/drop-zone.service";
|
|
3
|
-
import { Subject } from "rxjs";
|
|
4
|
-
import { DropZoneLocation } from "./DropZoneLocation";
|
|
5
|
-
import { ViewContainerRef } from "@angular/core";
|
|
6
|
-
export declare type CommMessage = "checkActive" | "checkVisible" | "checkRendered";
|
|
7
|
-
export declare class DropZone {
|
|
8
|
-
static dropZoneLocationsAreEqual(valueA: DropZone | DropZoneLocation, valueB: DropZone | DropZoneLocation): boolean;
|
|
9
|
-
private host;
|
|
10
|
-
private readonly location;
|
|
11
|
-
private visible;
|
|
12
|
-
private active;
|
|
13
|
-
private rendered;
|
|
14
|
-
private family;
|
|
15
|
-
private readonly commChannel;
|
|
16
|
-
constructor(parentCoordinates: BranchCoordinates, insertIndex: number);
|
|
17
|
-
isRendered(set?: boolean | undefined): DropZone["rendered"];
|
|
18
|
-
isVisible(set?: boolean | undefined): DropZone["visible"];
|
|
19
|
-
isActive(set?: boolean | undefined): DropZone["active"];
|
|
20
|
-
getLocation(): DropZone["location"];
|
|
21
|
-
getFamily(): DropZone["family"];
|
|
22
|
-
setFamily(family: DropZoneFamily): void;
|
|
23
|
-
getCommChannel(): Subject<CommMessage>;
|
|
24
|
-
getFullInsertCoordinates(): number[];
|
|
25
|
-
setHost(host: ViewContainerRef | undefined): ViewContainerRef | undefined;
|
|
26
|
-
getHost(): ViewContainerRef | undefined;
|
|
27
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { BranchCoordinates } from "./Branch";
|
|
2
|
-
export declare class DropZoneLocation {
|
|
3
|
-
parentCoordinates: BranchCoordinates;
|
|
4
|
-
insertIndex: number;
|
|
5
|
-
constructor(parentCoordinates: BranchCoordinates, insertIndex: number);
|
|
6
|
-
getFullInsertCoordinates(): number[];
|
|
7
|
-
setParentCoordinates(coordinates: BranchCoordinates): void;
|
|
8
|
-
setInsertIndex(index: number): void;
|
|
9
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class DragleaveNoChangeDetectDirective implements OnInit, OnDestroy {
|
|
4
|
-
private readonly ngZone;
|
|
5
|
-
private readonly el;
|
|
6
|
-
readonly dragleaveNoChangeDetect: EventEmitter<DragEvent>;
|
|
7
|
-
private eventSubscription;
|
|
8
|
-
constructor(ngZone: NgZone, el: ElementRef<Element>);
|
|
9
|
-
ngOnInit(): void;
|
|
10
|
-
ngOnDestroy(): void;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DragleaveNoChangeDetectDirective, never>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DragleaveNoChangeDetectDirective, "[dragleaveNoChangeDetect]", never, {}, { "dragleaveNoChangeDetect": "dragleaveNoChangeDetect"; }, never, never, false>;
|
|
13
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, OnDestroy, OnInit } from "@angular/core";
|
|
2
|
-
import { DropZone } from "../classes/DropZone";
|
|
3
|
-
import { DropZoneService } from "../limble-tree-root/drop-zone.service";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class DropZoneComponent implements OnInit, OnDestroy {
|
|
6
|
-
private readonly dropZoneService;
|
|
7
|
-
private readonly changeDetectorRef;
|
|
8
|
-
dropZone: DropZone | undefined;
|
|
9
|
-
private commSubscription;
|
|
10
|
-
visible: boolean;
|
|
11
|
-
active: boolean;
|
|
12
|
-
constructor(dropZoneService: DropZoneService, changeDetectorRef: ChangeDetectorRef);
|
|
13
|
-
dragenterHandler(): void;
|
|
14
|
-
ngOnInit(): void;
|
|
15
|
-
ngOnDestroy(): void;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DropZoneComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DropZoneComponent, "drop-zone", never, { "dropZone": "dropZone"; }, {}, never, never, false>;
|
|
18
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ChangeDetectorRef, NgZone, OnDestroy, OnInit, ViewContainerRef } from "@angular/core";
|
|
2
|
-
import { TreeService } from "../limble-tree-root/tree.service";
|
|
3
|
-
import type { Branch } from "../classes/Branch";
|
|
4
|
-
import { DropZone } from "../classes/DropZone";
|
|
5
|
-
import { DropZoneService } from "../limble-tree-root/drop-zone.service";
|
|
6
|
-
import { TreeConstructionStatus } from "../limble-tree-root/tree-construction-status.service";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class LimbleTreeBranchComponent implements AfterViewInit, OnInit, OnDestroy {
|
|
9
|
-
private treeService;
|
|
10
|
-
private readonly changeDetectorRef;
|
|
11
|
-
private readonly dropZoneService;
|
|
12
|
-
private readonly treeConstructionStatus;
|
|
13
|
-
private readonly ngZone;
|
|
14
|
-
branch: Branch<any> | undefined;
|
|
15
|
-
children: ViewContainerRef | undefined;
|
|
16
|
-
dropZoneInside: DropZone | undefined;
|
|
17
|
-
renderDropZoneInside: boolean;
|
|
18
|
-
readonly indent: number | undefined;
|
|
19
|
-
constructor(treeService: TreeService, changeDetectorRef: ChangeDetectorRef, dropZoneService: DropZoneService, treeConstructionStatus: TreeConstructionStatus, ngZone: NgZone);
|
|
20
|
-
ngOnInit(): void;
|
|
21
|
-
ngAfterViewInit(): void;
|
|
22
|
-
ngOnDestroy(): void;
|
|
23
|
-
private addDropZoneInside;
|
|
24
|
-
reRender(): void;
|
|
25
|
-
private setDropZoneHost;
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeBranchComponent, never>;
|
|
27
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LimbleTreeBranchComponent, "limble-tree-branch", never, { "branch": "branch"; }, {}, never, never, false>;
|
|
28
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ChangeDetectorRef, NgZone, OnDestroy, OnInit, ViewContainerRef } from "@angular/core";
|
|
2
|
-
import { ComponentCreatorService } from "../singletons/component-creator.service";
|
|
3
|
-
import { DropZoneService } from "../limble-tree-root/drop-zone.service";
|
|
4
|
-
import { DragStateService } from "../singletons/drag-state.service";
|
|
5
|
-
import { TreeService } from "../limble-tree-root/tree.service";
|
|
6
|
-
import { Branch } from "../classes/Branch";
|
|
7
|
-
import { GlobalEventsService } from "../singletons/global-events.service";
|
|
8
|
-
import { DropZone } from "../classes/DropZone";
|
|
9
|
-
import { TreeConstructionStatus } from "../limble-tree-root/tree-construction-status.service";
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export declare class LimbleTreeNodeComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
12
|
-
private readonly componentCreatorService;
|
|
13
|
-
private readonly changeDetectorRef;
|
|
14
|
-
private readonly dragStateService;
|
|
15
|
-
private readonly dropZoneService;
|
|
16
|
-
private readonly treeService;
|
|
17
|
-
private readonly globalEventsService;
|
|
18
|
-
private readonly ngZone;
|
|
19
|
-
private readonly treeConstructionStatus;
|
|
20
|
-
branch: Branch<any> | undefined;
|
|
21
|
-
private nodeHost;
|
|
22
|
-
dropZoneAbove: DropZone | undefined;
|
|
23
|
-
renderDropZoneAbove: boolean;
|
|
24
|
-
dropZoneBelow: DropZone | undefined;
|
|
25
|
-
renderDropZoneBelow: boolean;
|
|
26
|
-
renderInnerBranch: Boolean;
|
|
27
|
-
private draggableDiv;
|
|
28
|
-
private nodeHostContainer;
|
|
29
|
-
private currentBranchCoordinates;
|
|
30
|
-
private readonly treeChangeSubscription;
|
|
31
|
-
parentHost: ViewContainerRef | undefined;
|
|
32
|
-
private innerBranch;
|
|
33
|
-
constructor(componentCreatorService: ComponentCreatorService, changeDetectorRef: ChangeDetectorRef, dragStateService: DragStateService, dropZoneService: DropZoneService, treeService: TreeService, globalEventsService: GlobalEventsService, ngZone: NgZone, treeConstructionStatus: TreeConstructionStatus);
|
|
34
|
-
private treeChangeHandler;
|
|
35
|
-
ngOnInit(): void;
|
|
36
|
-
ngAfterViewInit(): void;
|
|
37
|
-
ngOnDestroy(): void;
|
|
38
|
-
dragstartHandler(event: DragEvent): void;
|
|
39
|
-
dragendHandler(event?: DragEvent): void;
|
|
40
|
-
dragoverHandler(event: DragEvent): void;
|
|
41
|
-
private renderNode;
|
|
42
|
-
private registerDropZones;
|
|
43
|
-
private addDropZoneAbove;
|
|
44
|
-
private addDropZoneBelow;
|
|
45
|
-
private updateDropZones;
|
|
46
|
-
private updateDropZoneAbove;
|
|
47
|
-
private updateDropZoneBelow;
|
|
48
|
-
private updateDropZoneInside;
|
|
49
|
-
private setDropZoneHosts;
|
|
50
|
-
private checkForHandle;
|
|
51
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeNodeComponent, never>;
|
|
52
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LimbleTreeNodeComponent, "limble-tree-node", never, { "branch": "branch"; "parentHost": "parentHost"; }, {}, never, never, false>;
|
|
53
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit } from "@angular/core";
|
|
2
|
-
import { DropZone } from "../classes/DropZone";
|
|
3
|
-
import { DropZoneService } from "../limble-tree-root/drop-zone.service";
|
|
4
|
-
import { TreeConstructionStatus } from "../limble-tree-root/tree-construction-status.service";
|
|
5
|
-
import { TreeService } from "../limble-tree-root/tree.service";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class LimbleTreePlaceholderComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
8
|
-
private readonly dropZoneService;
|
|
9
|
-
private readonly changeDetectorRef;
|
|
10
|
-
private readonly treeService;
|
|
11
|
-
private readonly treeConstructionStatus;
|
|
12
|
-
dropZone: DropZone | undefined;
|
|
13
|
-
private readonly placeholderSubscription;
|
|
14
|
-
constructor(dropZoneService: DropZoneService, changeDetectorRef: ChangeDetectorRef, treeService: TreeService, treeConstructionStatus: TreeConstructionStatus);
|
|
15
|
-
ngOnInit(): void;
|
|
16
|
-
ngAfterViewInit(): void;
|
|
17
|
-
dragoverHandler(): void;
|
|
18
|
-
ngOnDestroy(): void;
|
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreePlaceholderComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LimbleTreePlaceholderComponent, "limble-tree-placeholder", never, {}, {}, never, never, false>;
|
|
21
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Branch, BranchCoordinates } from "../classes/Branch";
|
|
2
|
-
import { DragStateService } from "../singletons/drag-state.service";
|
|
3
|
-
import type { ProcessedOptions } from "./tree.service";
|
|
4
|
-
import { DropZone } from "../classes/DropZone";
|
|
5
|
-
import { TreeConstructionStatus } from "./tree-construction-status.service";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export interface DropZoneFamily {
|
|
8
|
-
/** The deepest member of the family */
|
|
9
|
-
founder: DropZone;
|
|
10
|
-
/** All the drop zones that belong to this family */
|
|
11
|
-
members: Array<DropZone>;
|
|
12
|
-
}
|
|
13
|
-
export declare class DropZoneService {
|
|
14
|
-
private readonly dragStateService;
|
|
15
|
-
private readonly dropZoneArchive;
|
|
16
|
-
private readonly dropZoneInventory;
|
|
17
|
-
private readonly dropZoneFamilies;
|
|
18
|
-
private visibleFamily;
|
|
19
|
-
private activeDropZone;
|
|
20
|
-
private tree;
|
|
21
|
-
private treeOptions;
|
|
22
|
-
private tempFamilies;
|
|
23
|
-
private readonly update$;
|
|
24
|
-
constructor(dragStateService: DragStateService, treeConstructionStatus: TreeConstructionStatus);
|
|
25
|
-
addDropZone(newDropZone: DropZone): void;
|
|
26
|
-
/** hides all drop zones */
|
|
27
|
-
clearVisibleZones(): void;
|
|
28
|
-
getActiveDropZone(): DropZoneService["activeDropZone"];
|
|
29
|
-
getDropZone(coordinates: BranchCoordinates): DropZone | undefined;
|
|
30
|
-
init(tree: Branch<any>, treeOptions: ProcessedOptions): void;
|
|
31
|
-
removeDropZone(dropZone: DropZone): void;
|
|
32
|
-
/** hides all drop zones, deletes all the family assignments,
|
|
33
|
-
* and empties the dropZoneInventory
|
|
34
|
-
*/
|
|
35
|
-
reset(): void;
|
|
36
|
-
/**
|
|
37
|
-
* Restores the service to its initial state: hides all drop zones,
|
|
38
|
-
* deletes all the family assignments, and empties the dropZoneInventory
|
|
39
|
-
* and dropZoneArchive.
|
|
40
|
-
*/
|
|
41
|
-
restart(): void;
|
|
42
|
-
restoreFamilies(): void;
|
|
43
|
-
/**
|
|
44
|
-
* Shows the drop zone family of the drop zone indicated by `coordinates`.
|
|
45
|
-
*/
|
|
46
|
-
showDropZoneFamily(
|
|
47
|
-
/** Note: this drop zone may not exist in the dropZoneInventory; we have to search the inventory based on its location */
|
|
48
|
-
dropZone: DropZone, options?: {
|
|
49
|
-
joinFamilies?: boolean;
|
|
50
|
-
activateLowestInsteadOfFounder?: boolean;
|
|
51
|
-
}): void;
|
|
52
|
-
swapActiveDropZone(newActiveDropZone: DropZone): void;
|
|
53
|
-
update(): void;
|
|
54
|
-
private assignFamilies;
|
|
55
|
-
private buildInventory;
|
|
56
|
-
private setActiveDropZone;
|
|
57
|
-
private showDropZone;
|
|
58
|
-
private updateDropZones;
|
|
59
|
-
private zoneIsAllowed;
|
|
60
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DropZoneService, never>;
|
|
61
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<DropZoneService>;
|
|
62
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy } from "@angular/core";
|
|
2
|
-
import { DropZoneService } from "./drop-zone.service";
|
|
3
|
-
import { LimbleTreeData, LimbleTreeOptions, TreeDrop } from "../limble-tree-root/tree.service";
|
|
4
|
-
import { TreeService } from "./tree.service";
|
|
5
|
-
import { DragStateService } from "../singletons/drag-state.service";
|
|
6
|
-
import { GlobalEventsService } from "../singletons/global-events.service";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class LimbleTreeRootComponent implements AfterViewInit, OnChanges, OnDestroy {
|
|
9
|
-
private readonly treeService;
|
|
10
|
-
private readonly dropZoneService;
|
|
11
|
-
private readonly dragStateService;
|
|
12
|
-
private readonly globalEventsService;
|
|
13
|
-
private readonly ngZone;
|
|
14
|
-
private readonly changeDetectorRef;
|
|
15
|
-
private readonly el;
|
|
16
|
-
data: LimbleTreeData | undefined;
|
|
17
|
-
options: LimbleTreeOptions | undefined;
|
|
18
|
-
itemsPerPage: number | undefined;
|
|
19
|
-
page: number | undefined;
|
|
20
|
-
private host;
|
|
21
|
-
readonly treeChange: EventEmitter<null>;
|
|
22
|
-
readonly treeDrop: EventEmitter<TreeDrop>;
|
|
23
|
-
private readonly changesSubscription;
|
|
24
|
-
private readonly dropSubscription;
|
|
25
|
-
placeholder: boolean;
|
|
26
|
-
constructor(treeService: TreeService, dropZoneService: DropZoneService, dragStateService: DragStateService, globalEventsService: GlobalEventsService, ngZone: NgZone, changeDetectorRef: ChangeDetectorRef, el: ElementRef<Element>);
|
|
27
|
-
ngAfterViewInit(): void;
|
|
28
|
-
ngOnChanges(): void;
|
|
29
|
-
/** Rebuild the tree */
|
|
30
|
-
update(): void;
|
|
31
|
-
dragoverHandler(event: DragEvent): void;
|
|
32
|
-
dragleaveHandler(event: DragEvent): void;
|
|
33
|
-
dropHandler(event: DragEvent): void;
|
|
34
|
-
ngOnDestroy(): void;
|
|
35
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeRootComponent, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LimbleTreeRootComponent, "limble-tree-root", never, { "data": "data"; "options": "options"; "itemsPerPage": "itemsPerPage"; "page": "page"; }, { "treeChange": "treeChange"; "treeDrop": "treeDrop"; }, never, never, false>;
|
|
37
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject } from "rxjs";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class TreeConstructionStatus {
|
|
4
|
-
private beingBuilt;
|
|
5
|
-
private isReady;
|
|
6
|
-
readonly stable$: BehaviorSubject<boolean>;
|
|
7
|
-
constructor();
|
|
8
|
-
constructing(): void;
|
|
9
|
-
doneConstructing(): void;
|
|
10
|
-
treeIsStable(): boolean;
|
|
11
|
-
ready(val: boolean): void;
|
|
12
|
-
emit(): void;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TreeConstructionStatus, never>;
|
|
14
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<TreeConstructionStatus>;
|
|
15
|
-
}
|