@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.
Files changed (159) hide show
  1. package/README.md +22 -129
  2. package/esm2020/lib/components/branch/branch.component.mjs +87 -0
  3. package/esm2020/lib/components/dropzone/dropzone.component.mjs +35 -0
  4. package/esm2020/lib/components/host-component.interface.mjs +2 -0
  5. package/esm2020/lib/components/node-component.interface.mjs +2 -0
  6. package/esm2020/lib/components/root/root.component.mjs +37 -0
  7. package/esm2020/lib/core/branch-options.interface.mjs +2 -0
  8. package/esm2020/lib/core/configuration/configuration.mjs +17 -0
  9. package/esm2020/lib/core/configuration/tree-options.interface.mjs +2 -0
  10. package/esm2020/lib/core/index.mjs +6 -0
  11. package/esm2020/lib/core/relationship.interface.mjs +2 -0
  12. package/esm2020/lib/core/tree-branch/tree-branch.mjs +246 -0
  13. package/esm2020/lib/core/tree-node-base.mjs +68 -0
  14. package/esm2020/lib/core/tree-root/tree-root.mjs +69 -0
  15. package/esm2020/lib/core/tree-service/tree.service.mjs +19 -0
  16. package/esm2020/lib/errors/index.mjs +2 -0
  17. package/esm2020/lib/errors/tree-error.mjs +3 -0
  18. package/esm2020/lib/events/drag/drag-end-event.mjs +28 -0
  19. package/esm2020/lib/events/drag/drag-start-event.mjs +12 -0
  20. package/esm2020/lib/events/drag/drop-event.mjs +20 -0
  21. package/esm2020/lib/events/drag/index.mjs +4 -0
  22. package/esm2020/lib/events/index.mjs +3 -0
  23. package/esm2020/lib/events/relational/graft-event.mjs +24 -0
  24. package/esm2020/lib/events/relational/index.mjs +4 -0
  25. package/esm2020/lib/events/relational/prune-event.mjs +24 -0
  26. package/esm2020/lib/events/relational/relational-tree-event.interface.mjs +2 -0
  27. package/esm2020/lib/extras/collapse/collapse.mjs +33 -0
  28. package/esm2020/lib/extras/collapse/collapse.module.mjs +15 -0
  29. package/esm2020/lib/extras/collapse/collapse.service.mjs +20 -0
  30. package/esm2020/lib/extras/collapse/index.mjs +3 -0
  31. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.mjs +89 -0
  32. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.module.mjs +19 -0
  33. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.service.mjs +28 -0
  34. package/esm2020/lib/extras/drag-and-drop/drag-state.mjs +47 -0
  35. package/esm2020/lib/extras/drag-and-drop/draggable.directive.mjs +30 -0
  36. package/esm2020/lib/extras/drag-and-drop/dragover-no-change-detect.mjs +40 -0
  37. package/esm2020/lib/extras/drag-and-drop/dropzone-renderer.mjs +176 -0
  38. package/esm2020/lib/extras/drag-and-drop/index.mjs +5 -0
  39. package/esm2020/lib/legacy/index.mjs +7 -0
  40. package/esm2020/lib/legacy/legacy-component-obj.interface.mjs +2 -0
  41. package/esm2020/lib/legacy/legacy-tree-data.interface.mjs +2 -0
  42. package/esm2020/lib/legacy/legacy-tree-options.interface.mjs +2 -0
  43. package/esm2020/lib/legacy/legacy-tree.mjs +74 -0
  44. package/esm2020/lib/legacy/limble-tree-legacy.module.mjs +20 -0
  45. package/esm2020/lib/legacy/limble-tree-root/limble-tree-root.component.mjs +78 -0
  46. package/esm2020/lib/limble-tree.module.mjs +21 -47
  47. package/esm2020/lib/structure/branchable.interface.mjs +2 -0
  48. package/esm2020/lib/structure/container-tree-node.interface.mjs +2 -0
  49. package/esm2020/lib/structure/content-container.interface.mjs +2 -0
  50. package/esm2020/lib/structure/event-conduit.interface.mjs +2 -0
  51. package/esm2020/lib/structure/graftable.interface.mjs +2 -0
  52. package/esm2020/lib/structure/index.mjs +12 -0
  53. package/esm2020/lib/structure/tree-branch-node.interface.mjs +2 -0
  54. package/esm2020/lib/structure/tree-event.interface.mjs +2 -0
  55. package/esm2020/lib/structure/tree-node.interface.mjs +2 -0
  56. package/esm2020/lib/structure/tree-plot.mjs +2 -0
  57. package/esm2020/lib/structure/tree-relationship.interface.mjs +2 -0
  58. package/esm2020/lib/structure/tree-root.node.interface.mjs +2 -0
  59. package/esm2020/limble-limble-tree.mjs +4 -4
  60. package/esm2020/public-api.mjs +12 -6
  61. package/esm2020/shared/assert.mjs +7 -0
  62. package/fesm2015/limble-limble-tree.mjs +1280 -2226
  63. package/fesm2015/limble-limble-tree.mjs.map +1 -1
  64. package/fesm2020/limble-limble-tree.mjs +1270 -2132
  65. package/fesm2020/limble-limble-tree.mjs.map +1 -1
  66. package/index.d.ts +5 -5
  67. package/lib/components/branch/branch.component.d.ts +26 -0
  68. package/lib/components/dropzone/dropzone.component.d.ts +13 -0
  69. package/lib/components/host-component.interface.d.ts +6 -0
  70. package/lib/components/node-component.interface.d.ts +5 -0
  71. package/lib/components/root/root.component.d.ts +14 -0
  72. package/lib/core/branch-options.interface.d.ts +14 -0
  73. package/lib/core/configuration/configuration.d.ts +11 -0
  74. package/lib/core/configuration/tree-options.interface.d.ts +35 -0
  75. package/lib/core/index.d.ts +5 -0
  76. package/lib/core/relationship.interface.d.ts +6 -0
  77. package/lib/core/tree-branch/tree-branch.d.ts +44 -0
  78. package/lib/core/tree-node-base.d.ts +26 -0
  79. package/lib/core/tree-root/tree-root.d.ts +28 -0
  80. package/lib/core/tree-service/tree.service.d.ts +9 -0
  81. package/lib/errors/index.d.ts +1 -0
  82. package/lib/errors/tree-error.d.ts +2 -0
  83. package/lib/events/drag/drag-end-event.d.ts +25 -0
  84. package/lib/events/drag/drag-start-event.d.ts +8 -0
  85. package/lib/events/drag/drop-event.d.ts +16 -0
  86. package/lib/events/drag/index.d.ts +3 -0
  87. package/lib/events/index.d.ts +2 -0
  88. package/lib/events/relational/graft-event.d.ts +15 -0
  89. package/lib/events/relational/index.d.ts +3 -0
  90. package/lib/events/relational/prune-event.d.ts +15 -0
  91. package/lib/events/relational/relational-tree-event.interface.d.ts +6 -0
  92. package/lib/extras/collapse/collapse.d.ts +11 -0
  93. package/lib/extras/collapse/collapse.module.d.ts +6 -0
  94. package/lib/extras/collapse/collapse.service.d.ts +9 -0
  95. package/lib/extras/collapse/index.d.ts +2 -0
  96. package/lib/extras/drag-and-drop/drag-and-drop.d.ts +17 -0
  97. package/lib/extras/drag-and-drop/drag-and-drop.module.d.ts +8 -0
  98. package/lib/extras/drag-and-drop/drag-and-drop.service.d.ts +16 -0
  99. package/lib/extras/drag-and-drop/drag-state.d.ts +23 -0
  100. package/lib/extras/drag-and-drop/draggable.directive.d.ts +12 -0
  101. package/lib/{custom-event-bindings/dragover-no-change-detect.directive.d.ts → extras/drag-and-drop/dragover-no-change-detect.d.ts} +14 -14
  102. package/lib/extras/drag-and-drop/dropzone-renderer.d.ts +28 -0
  103. package/lib/extras/drag-and-drop/index.d.ts +4 -0
  104. package/lib/legacy/index.d.ts +6 -0
  105. package/lib/legacy/legacy-component-obj.interface.d.ts +13 -0
  106. package/lib/legacy/legacy-tree-data.interface.d.ts +18 -0
  107. package/lib/legacy/legacy-tree-options.interface.d.ts +34 -0
  108. package/lib/legacy/legacy-tree.d.ts +14 -0
  109. package/lib/legacy/limble-tree-legacy.module.d.ts +8 -0
  110. package/lib/legacy/limble-tree-root/limble-tree-root.component.d.ts +28 -0
  111. package/lib/limble-tree.module.d.ts +9 -14
  112. package/lib/structure/branchable.interface.d.ts +5 -0
  113. package/lib/structure/container-tree-node.interface.d.ts +3 -0
  114. package/lib/structure/content-container.interface.d.ts +3 -0
  115. package/lib/structure/event-conduit.interface.d.ts +6 -0
  116. package/lib/structure/graftable.interface.d.ts +6 -0
  117. package/lib/structure/index.d.ts +11 -0
  118. package/lib/structure/tree-branch-node.interface.d.ts +5 -0
  119. package/lib/structure/tree-event.interface.d.ts +5 -0
  120. package/lib/structure/tree-node.interface.d.ts +9 -0
  121. package/lib/structure/tree-plot.d.ts +1 -0
  122. package/lib/structure/tree-relationship.interface.d.ts +7 -0
  123. package/lib/structure/tree-root.node.interface.d.ts +2 -0
  124. package/package.json +6 -14
  125. package/public-api.d.ts +8 -3
  126. package/shared/assert.d.ts +1 -0
  127. package/esm2020/lib/classes/Branch.mjs +0 -153
  128. package/esm2020/lib/classes/DropZone.mjs +0 -71
  129. package/esm2020/lib/classes/DropZoneLocation.mjs +0 -16
  130. package/esm2020/lib/custom-event-bindings/dragleave-no-change-detect.directive.mjs +0 -33
  131. package/esm2020/lib/custom-event-bindings/dragover-no-change-detect.directive.mjs +0 -39
  132. package/esm2020/lib/drop-zone/drop-zone.component.mjs +0 -75
  133. package/esm2020/lib/limble-tree-branch/limble-tree-branch.component.mjs +0 -110
  134. package/esm2020/lib/limble-tree-node/limble-tree-node.component.mjs +0 -467
  135. package/esm2020/lib/limble-tree-placeholder/limble-tree-placeholder.component.mjs +0 -70
  136. package/esm2020/lib/limble-tree-root/drop-zone.service.mjs +0 -376
  137. package/esm2020/lib/limble-tree-root/limble-tree-root.component.mjs +0 -172
  138. package/esm2020/lib/limble-tree-root/tree-construction-status.service.mjs +0 -33
  139. package/esm2020/lib/limble-tree-root/tree.service.mjs +0 -297
  140. package/esm2020/lib/singletons/component-creator.service.mjs +0 -19
  141. package/esm2020/lib/singletons/drag-state.service.mjs +0 -63
  142. package/esm2020/lib/singletons/global-events.service.mjs +0 -136
  143. package/esm2020/lib/util.mjs +0 -74
  144. package/lib/classes/Branch.d.ts +0 -26
  145. package/lib/classes/DropZone.d.ts +0 -27
  146. package/lib/classes/DropZoneLocation.d.ts +0 -9
  147. package/lib/custom-event-bindings/dragleave-no-change-detect.directive.d.ts +0 -13
  148. package/lib/drop-zone/drop-zone.component.d.ts +0 -18
  149. package/lib/limble-tree-branch/limble-tree-branch.component.d.ts +0 -28
  150. package/lib/limble-tree-node/limble-tree-node.component.d.ts +0 -53
  151. package/lib/limble-tree-placeholder/limble-tree-placeholder.component.d.ts +0 -21
  152. package/lib/limble-tree-root/drop-zone.service.d.ts +0 -62
  153. package/lib/limble-tree-root/limble-tree-root.component.d.ts +0 -37
  154. package/lib/limble-tree-root/tree-construction-status.service.d.ts +0 -15
  155. package/lib/limble-tree-root/tree.service.d.ts +0 -132
  156. package/lib/singletons/component-creator.service.d.ts +0 -9
  157. package/lib/singletons/drag-state.service.d.ts +0 -35
  158. package/lib/singletons/global-events.service.d.ts +0 -13
  159. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9zaW5nbGV0b25zL2dsb2JhbC1ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXRELFNBQVMsZUFBZSxDQUFDLE9BQW9CO0lBQzFDLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUM5QixNQUFNLE9BQU8sR0FBRyxDQUNiLEtBQXlCLEVBQ3pCLFVBQThCLEVBQ1gsRUFBRTtRQUNyQixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUU7WUFDOUMsT0FBTyxVQUFVLENBQUM7U0FDcEI7UUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFrQixFQUFFLElBQVksRUFBRSxFQUFFLENBQ2hELGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUNyQyxLQUFLLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztRQUN4QixLQUFLLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQztRQUMxQixLQUFLLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lB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QUFJLG9CQUFvQixJQUFJLGFBQWEsRUFBRTtvQkFDL0MsTUFBTSxTQUFTLEdBQUcsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsY0FBYyxDQUFDO29CQUM1RCxXQUFXLEdBQUcsY0FBYyxHQUFHLE9BQU8sR0FBRyxTQUFTLENBQUM7aUJBQ3JEO3FCQUFNO29CQUNKLE9BQU87aUJBQ1Q7Z0JBQ0QsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQzdELElBQUksV0FBVyxLQUFLLGNBQWMsRUFBRTtvQkFDakMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDdEIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQixLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7b0JBQzFCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDVjtZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU0sZUFBZTtRQUNuQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsS0FBSyxTQUFTLEVBQUU7WUFDNUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVDO0lBQ0osQ0FBQzs7c0ZBbEhTLG1CQUFtQjt5RUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQjt1RkFBbkIsbUJBQW1CO2NBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmlsdGVyLCB0aHJvdHRsZVRpbWUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuZnVuY3Rpb24gZ2V0U2Nyb2xsUGFyZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQge1xuICAgY29uc3QgcmVnZXggPSAvKGF1dG98c2Nyb2xsKS87XG4gICBjb25zdCBwYXJlbnRzID0gKFxuICAgICAgX25vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICAgIHBhcmVudExpc3Q6IEFycmF5PEhUTUxFbGVtZW50PlxuICAgKTogQXJyYXk8SFRNTEVsZW1lbnQ+ID0+IHtcbiAgICAgIGlmIChfbm9kZSA9PT0gbnVsbCB8fCBfbm9kZS5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgICAgICByZXR1cm4gcGFyZW50TGlzdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJlbnRzKF9ub2RlLnBhcmVudEVsZW1lbnQsIHBhcmVudExpc3QuY29uY2F0KFtfbm9kZV0pKTtcbiAgIH07XG5cbiAgIGNvbnN0IHN0eWxlID0gKF9ub2RlOiBIVE1MRWxlbWVudCwgcHJvcDogc3RyaW5nKSA9PlxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShfbm9kZSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wKTtcbiAgIGNvbnN0IG92ZXJmbG93ID0gKF9ub2RlOiBIVE1MRWxlbWVudCkgPT5cbiAgICAgIHN0eWxlKF9ub2RlLCBcIm92ZXJmbG93XCIpICtcbiAgICAgIHN0eWxlKF9ub2RlLCBcIm92ZXJmbG93LXlcIikgK1xuICAgICAgc3R5bGUoX25vZGUsIFwib3ZlcmZsb3cteFwiKTtcbiAgIGNvbnN0IHNjcm9sbCA9IChfbm9kZTogSFRNTEVsZW1lbnQpID0+IHJlZ2V4LnRlc3Qob3ZlcmZsb3coX25vZGUpKTtcblxuICAgY29uc3QgcGFyZW50TGlzdCA9IHBhcmVudHMoZWxlbWVudC5wYXJlbnRFbGVtZW50LCBbXSk7XG4gICBmb3IgKGNvbnN0IHBhcmVudCBvZiBwYXJlbnRMaXN0KSB7XG4gICAgICBpZiAoc2Nyb2xsKHBhcmVudCkpIHtcbiAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICB9XG4gICB9XG4gICByZXR1cm4gKFxuICAgICAgKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpID8/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgKTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdsb2JhbEV2ZW50c1NlcnZpY2Uge1xuICAgcHJpdmF0ZSBnbG9iYWxEcmFnJDogT2JzZXJ2YWJsZTxEcmFnRXZlbnQ+IHwgdW5kZWZpbmVkO1xuICAgcHJpdmF0ZSBnbG9iYWxEcmFnU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gICBwdWJsaWMgc2Nyb2xsaW5nOiBib29sZWFuO1xuXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICB0aGlzLmdsb2JhbERyYWckID0gZnJvbUV2ZW50PERyYWdFdmVudD4oZG9jdW1lbnQsIFwiZHJhZ1wiKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zY3JvbGxpbmcgPSBmYWxzZTtcbiAgIH1cblxuICAgcHVibGljIGFkZFNjcm9sbGluZygpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgIGlmICh0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgfVxuICAgICAgICAgaWYgKHRoaXMuZ2xvYmFsRHJhZyQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGdldCBvYnNlcnZhYmxlXCIpO1xuICAgICAgICAgfVxuICAgICAgICAgbGV0IHZpZXdQb3J0SGVpZ2h0OiBudW1iZXI7XG4gICAgICAgICBsZXQgc2Nyb2xsQXJlYVNpemU6IG51bWJlcjtcbiAgICAgICAgIGxldCBlZGdlVG9wOiBudW1iZXI7XG4gICAgICAgICBsZXQgZWRnZUJvdHRvbTogbnVtYmVyO1xuICAgICAgICAgbGV0IGlzSW5Ub3BTY3JvbGxBcmVhOiBib29sZWFuO1xuICAgICAgICAgbGV0IGlzSW5Cb3R0b21TY3JvbGxBcmVhOiBib29sZWFuO1xuICAgICAgICAgbGV0IHRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgICAgICAgIGxldCBzY3JvbGxhYmxlRGl2OiBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgICBsZXQgcmVsYXRpdmVZOiBudW1iZXI7XG4gICAgICAgICB0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24gPSB0aGlzLmdsb2JhbERyYWckXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgIHRocm90dGxlVGltZSgyNSksXG4gICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LnRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZURpdiA9IGdldFNjcm9sbFBhcmVudChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgdmlld1BvcnRIZWlnaHQgPSBzY3JvbGxhYmxlRGl2LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdQb3J0V2lkdGggPSBzY3JvbGxhYmxlRGl2LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgICAgbGV0IHJlbGF0aXZlWDogbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgd2luZG93XG4gICAgICAgICAgICAgICAgICAgICAgICAuZ2V0Q29tcHV0ZWRTdHlsZShzY3JvbGxhYmxlRGl2KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoXCJwb3NpdGlvblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKCkgPT09IFwiZml4ZWRcIlxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVggPSBldmVudC5jbGllbnRYO1xuICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVZID0gZXZlbnQuY2xpZW50WTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICBjb25zdCBib3VuZGluZ1JlY3QgPSBzY3JvbGxhYmxlRGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZURpdkFuY2VzdG9yID0gZ2V0U2Nyb2xsUGFyZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZURpdlxuICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlWCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jbGllbnRYIC1cbiAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZGluZ1JlY3QubGVmdCArIHNjcm9sbGFibGVEaXZBbmNlc3Rvci5zY3JvbGxMZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlWSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5jbGllbnRZIC1cbiAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZGluZ1JlY3QudG9wICsgc2Nyb2xsYWJsZURpdkFuY2VzdG9yLnNjcm9sbFRvcCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVggPCAwIHx8XG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVggPiB2aWV3UG9ydFdpZHRoIHx8XG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVkgPCAwIHx8XG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVkgPiB2aWV3UG9ydEhlaWdodFxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAvL091dHNpZGUgb2Ygc2Nyb2xsYWJsZSBkaXZcbiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHNjcm9sbEFyZWFTaXplID0gTWF0aC5tYXgodmlld1BvcnRIZWlnaHQgKiAwLjEsIDEwMCk7XG4gICAgICAgICAgICAgICAgICBlZGdlVG9wID0gc2Nyb2xsQXJlYVNpemU7XG4gICAgICAgICAgICAgICAgICBlZGdlQm90dG9tID0gdmlld1BvcnRIZWlnaHQgLSBzY3JvbGxBcmVhU2l6ZTtcbiAgICAgICAgICAgICAgICAgIGlzSW5Ub3BTY3JvbGxBcmVhID0gcmVsYXRpdmVZIDwgZWRnZVRvcDtcbiAgICAgICAgICAgICAgICAgIGlzSW5Cb3R0b21TY3JvbGxBcmVhID0gcmVsYXRpdmVZID4gZWRnZUJvdHRvbTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpc0luVG9wU2Nyb2xsQXJlYSB8fCBpc0luQm90dG9tU2Nyb2xsQXJlYTtcbiAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlRGl2ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBzY3JvbGxhYmxlRGl2LnNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgICAgIGNvbnN0IG1heFNjcm9sbFkgPSBoZWlnaHQgLSB2aWV3UG9ydEhlaWdodDtcbiAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxZID0gc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgICBjb25zdCBjYW5TY3JvbGxVcCA9IGN1cnJlbnRTY3JvbGxZID4gMDtcbiAgICAgICAgICAgICAgIGNvbnN0IGNhblNjcm9sbERvd24gPSBjdXJyZW50U2Nyb2xsWSA8IG1heFNjcm9sbFk7XG4gICAgICAgICAgICAgICBsZXQgbmV4dFNjcm9sbFk6IG51bWJlcjtcbiAgICAgICAgICAgICAgIGNvbnN0IG1heFN0ZXAgPSA3NTtcbiAgICAgICAgICAgICAgIGlmIChpc0luVG9wU2Nyb2xsQXJlYSAmJiBjYW5TY3JvbGxVcCkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaW50ZW5zaXR5ID0gKGVkZ2VUb3AgLSByZWxhdGl2ZVkpIC8gc2Nyb2xsQXJlYVNpemU7XG4gICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsWSA9IGN1cnJlbnRTY3JvbGxZIC0gbWF4U3RlcCAqIGludGVuc2l0eTtcbiAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNJbkJvdHRvbVNjcm9sbEFyZWEgJiYgY2FuU2Nyb2xsRG93bikge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaW50ZW5zaXR5ID0gKHJlbGF0aXZlWSAtIGVkZ2VCb3R0b20pIC8gc2Nyb2xsQXJlYVNpemU7XG4gICAgICAgICAgICAgICAgICBuZXh0U2Nyb2xsWSA9IGN1cnJlbnRTY3JvbGxZICsgbWF4U3RlcCAqIGludGVuc2l0eTtcbiAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBuZXh0U2Nyb2xsWSA9IE1hdGgubWF4KDAsIE1hdGgubWluKG1heFNjcm9sbFksIG5leHRTY3JvbGxZKSk7XG4gICAgICAgICAgICAgICBpZiAobmV4dFNjcm9sbFkgIT09IGN1cnJlbnRTY3JvbGxZKSB7XG4gICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvKHsgdG9wOiBuZXh0U2Nyb2xsWSB9KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICAgICAgICB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgfVxuXG4gICBwdWJsaWMgcmVtb3ZlU2Nyb2xsaW5nKCkge1xuICAgICAgaWYgKHRoaXMuZ2xvYmFsRHJhZ1N1YnNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICB0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgIH1cbn1cbiJdfQ==
@@ -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==
@@ -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
- }