@limble/limble-tree 2.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +2 -0
  2. package/esm2022/lib/components/branch/branch.component.mjs +79 -0
  3. package/esm2022/lib/components/dragover-no-change-detect.mjs +39 -0
  4. package/{esm2020 → esm2022}/lib/components/dropzone/dropzone.component.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/components/root/root.component.mjs +5 -5
  6. package/esm2022/lib/core/tree-branch/branch-controller.mjs +99 -0
  7. package/esm2022/lib/core/tree-branch/tree-branch.mjs +429 -0
  8. package/esm2022/lib/core/tree-node-base.mjs +77 -0
  9. package/esm2022/lib/core/tree-root/tree-root.mjs +193 -0
  10. package/{esm2020 → esm2022}/lib/core/tree-service/tree.service.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/extras/collapse/collapse.module.mjs +5 -5
  12. package/{esm2020 → esm2022}/lib/extras/collapse/collapse.service.mjs +4 -4
  13. package/esm2022/lib/extras/drag-and-drop/drag-and-drop.mjs +83 -0
  14. package/{esm2020 → esm2022}/lib/extras/drag-and-drop/drag-and-drop.module.mjs +5 -5
  15. package/{esm2020 → esm2022}/lib/extras/drag-and-drop/drag-and-drop.service.mjs +4 -4
  16. package/{esm2020 → esm2022}/lib/extras/drag-and-drop/draggable.directive.mjs +5 -5
  17. package/esm2022/lib/extras/drag-and-drop/dropzone-renderer.mjs +176 -0
  18. package/esm2022/lib/legacy/legacy-tree.mjs +73 -0
  19. package/esm2022/lib/legacy/limble-tree-legacy.module.mjs +20 -0
  20. package/esm2022/lib/legacy/limble-tree-root/limble-tree-root.component.mjs +78 -0
  21. package/{esm2020 → esm2022}/lib/limble-tree.module.mjs +5 -5
  22. package/esm2022/shared/assert.mjs +7 -0
  23. package/{fesm2020 → fesm2022}/limble-limble-tree.mjs +72 -75
  24. package/fesm2022/limble-limble-tree.mjs.map +1 -0
  25. package/lib/components/branch/branch.component.d.ts +1 -1
  26. package/lib/components/dropzone/dropzone.component.d.ts +1 -1
  27. package/lib/core/tree-node-base.d.ts +2 -1
  28. package/lib/extras/drag-and-drop/draggable.directive.d.ts +1 -1
  29. package/lib/legacy/limble-tree-root/limble-tree-root.component.d.ts +2 -2
  30. package/package.json +7 -13
  31. package/esm2020/lib/components/branch/branch.component.mjs +0 -79
  32. package/esm2020/lib/components/dragover-no-change-detect.mjs +0 -39
  33. package/esm2020/lib/core/tree-branch/branch-controller.mjs +0 -99
  34. package/esm2020/lib/core/tree-branch/tree-branch.mjs +0 -429
  35. package/esm2020/lib/core/tree-node-base.mjs +0 -80
  36. package/esm2020/lib/core/tree-root/tree-root.mjs +0 -193
  37. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.mjs +0 -83
  38. package/esm2020/lib/extras/drag-and-drop/dropzone-renderer.mjs +0 -176
  39. package/esm2020/lib/legacy/legacy-tree.mjs +0 -73
  40. package/esm2020/lib/legacy/limble-tree-legacy.module.mjs +0 -20
  41. package/esm2020/lib/legacy/limble-tree-root/limble-tree-root.component.mjs +0 -78
  42. package/esm2020/shared/assert.mjs +0 -7
  43. package/fesm2015/limble-limble-tree.mjs +0 -1812
  44. package/fesm2015/limble-limble-tree.mjs.map +0 -1
  45. package/fesm2020/limble-limble-tree.mjs.map +0 -1
  46. /package/{esm2020 → esm2022}/lib/components/branch/index.mjs +0 -0
  47. /package/{esm2020 → esm2022}/lib/components/dropzone/index.mjs +0 -0
  48. /package/{esm2020 → esm2022}/lib/components/host-component.interface.mjs +0 -0
  49. /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
  50. /package/{esm2020 → esm2022}/lib/components/node-component.interface.mjs +0 -0
  51. /package/{esm2020 → esm2022}/lib/components/root/index.mjs +0 -0
  52. /package/{esm2020 → esm2022}/lib/core/branch-options.interface.mjs +0 -0
  53. /package/{esm2020 → esm2022}/lib/core/branchable.interface.mjs +0 -0
  54. /package/{esm2020 → esm2022}/lib/core/component-container.interface.mjs +0 -0
  55. /package/{esm2020 → esm2022}/lib/core/configuration/configuration.mjs +0 -0
  56. /package/{esm2020 → esm2022}/lib/core/configuration/index.mjs +0 -0
  57. /package/{esm2020 → esm2022}/lib/core/configuration/tree-options.interface.mjs +0 -0
  58. /package/{esm2020 → esm2022}/lib/core/index.mjs +0 -0
  59. /package/{esm2020 → esm2022}/lib/core/tree-branch/graftable.interface.mjs +0 -0
  60. /package/{esm2020 → esm2022}/lib/core/tree-branch/index.mjs +0 -0
  61. /package/{esm2020 → esm2022}/lib/core/tree-node.interface.mjs +0 -0
  62. /package/{esm2020 → esm2022}/lib/core/tree-plot.interface.mjs +0 -0
  63. /package/{esm2020 → esm2022}/lib/core/tree-root/index.mjs +0 -0
  64. /package/{esm2020 → esm2022}/lib/core/tree-root/root-controller.mjs +0 -0
  65. /package/{esm2020 → esm2022}/lib/core/tree-service/index.mjs +0 -0
  66. /package/{esm2020 → esm2022}/lib/errors/index.mjs +0 -0
  67. /package/{esm2020 → esm2022}/lib/errors/tree-error.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/events/drag/drag-end-event.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/events/drag/drag-start-event.mjs +0 -0
  70. /package/{esm2020 → esm2022}/lib/events/drag/drop-event.mjs +0 -0
  71. /package/{esm2020 → esm2022}/lib/events/drag/index.mjs +0 -0
  72. /package/{esm2020 → esm2022}/lib/events/general/destruction-event.mjs +0 -0
  73. /package/{esm2020 → esm2022}/lib/events/general/index.mjs +0 -0
  74. /package/{esm2020 → esm2022}/lib/events/index.mjs +0 -0
  75. /package/{esm2020 → esm2022}/lib/events/relational/graft-event.mjs +0 -0
  76. /package/{esm2020 → esm2022}/lib/events/relational/index.mjs +0 -0
  77. /package/{esm2020 → esm2022}/lib/events/relational/prune-event.mjs +0 -0
  78. /package/{esm2020 → esm2022}/lib/events/relational/relational-tree-event.interface.mjs +0 -0
  79. /package/{esm2020 → esm2022}/lib/events/relational/tree-relationship.interface.mjs +0 -0
  80. /package/{esm2020 → esm2022}/lib/events/tree-event.interface.mjs +0 -0
  81. /package/{esm2020 → esm2022}/lib/extras/collapse/collapse.mjs +0 -0
  82. /package/{esm2020 → esm2022}/lib/extras/collapse/index.mjs +0 -0
  83. /package/{esm2020 → esm2022}/lib/extras/drag-and-drop/drag-state.mjs +0 -0
  84. /package/{esm2020 → esm2022}/lib/extras/drag-and-drop/index.mjs +0 -0
  85. /package/{esm2020 → esm2022}/lib/legacy/index.mjs +0 -0
  86. /package/{esm2020 → esm2022}/lib/legacy/legacy-component-obj.interface.mjs +0 -0
  87. /package/{esm2020 → esm2022}/lib/legacy/legacy-tree-data.interface.mjs +0 -0
  88. /package/{esm2020 → esm2022}/lib/legacy/legacy-tree-options.interface.mjs +0 -0
  89. /package/{esm2020 → esm2022}/limble-limble-tree.mjs +0 -0
  90. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  91. /package/{esm2020 → esm2022}/shared/has-property.mjs +0 -0
  92. /package/{esm2020 → esm2022}/shared/index.mjs +0 -0
@@ -0,0 +1,193 @@
1
+ import { TreeBranch } from "../tree-branch";
2
+ import { TreeNodeBase } from "../tree-node-base";
3
+ import { config } from "../configuration";
4
+ import { RootController } from "../tree-root/root-controller";
5
+ import { dropzoneRenderer } from "../../extras/drag-and-drop";
6
+ import { TreeError } from "../../errors";
7
+ import { DestructionEvent } from "../../events";
8
+ /**
9
+ * Represents the base of the tree. It renders a very simple container for child
10
+ * branches. It has methods for creating and accessing those branches. It emits
11
+ * events when things happen in the tree.
12
+ */
13
+ export class TreeRoot {
14
+ constructor(viewContainerRef) {
15
+ this.viewContainerRef = viewContainerRef;
16
+ this.treeNodeBase = new TreeNodeBase();
17
+ this.rootController = new RootController(this, viewContainerRef);
18
+ this.detectChanges();
19
+ }
20
+ /** @returns All child branches as an array of TreeBranch instances */
21
+ branches() {
22
+ return this.treeNodeBase.branches();
23
+ }
24
+ /**
25
+ * Recursively destroys all branches of the tree, as well as itself.
26
+ *
27
+ * @remarks
28
+ * This releases all resources held or consumed by the tree.
29
+ *
30
+ * It is important to call this method when a tree is discarded, otherwise
31
+ * the tree will remain in memory and continue to consume resources.
32
+ */
33
+ destroy() {
34
+ if (this.isDestroyed()) {
35
+ throw new TreeError("Cannot destroy a destroyed tree root");
36
+ }
37
+ dropzoneRenderer.clearTreeFromRegistry(this);
38
+ this.treeNodeBase.destroy();
39
+ this.rootController.destroy();
40
+ this.viewContainerRef.clear();
41
+ config.delete(this);
42
+ this.dispatch(new DestructionEvent(this));
43
+ }
44
+ /** Run Angular change detection on the root of the tree */
45
+ detectChanges() {
46
+ this.rootController.detectChanges();
47
+ }
48
+ /**
49
+ * Emits the specified TreeEvent.
50
+ *
51
+ * @remarks
52
+ * Caution: It is not recommended to manually emit TreeEvents that are already
53
+ * provided by the library. For example, it is not recommended to emit a
54
+ * `GraftEvent`, `DestructionEvent`, etc. These events may be used by the tree,
55
+ * and emitting them manually may cause unexpected behavior. Instead, we
56
+ * recommend implementing the TreeEvent interface with your own custom events
57
+ * and dispatching those.
58
+ *
59
+ * @param event - The TreeEvent that will be emitted.
60
+ */
61
+ dispatch(event) {
62
+ this.treeNodeBase.dispatch(event);
63
+ }
64
+ /**
65
+ * @returns
66
+ * An observable that emits TreeEvents whenever an event is dispatched
67
+ * in the root or any of its descendant branches.
68
+ */
69
+ events() {
70
+ return this.treeNodeBase.events();
71
+ }
72
+ /**
73
+ * @returns
74
+ * The child branch at the specified index, or undefined if there is
75
+ * no child branch at the specified index.
76
+ */
77
+ getBranch(index) {
78
+ return this.treeNodeBase.getBranch(index);
79
+ }
80
+ /** @returns The ViewContainerRef in which child branches are rendered */
81
+ getBranchesContainer() {
82
+ if (this.isDestroyed()) {
83
+ throw new TreeError("Cannot get branches container from a destroyed tree root");
84
+ }
85
+ return this.rootController.getBranchesContainer();
86
+ }
87
+ /**
88
+ * Retrieves the RootComponent.
89
+ *
90
+ * @remarks
91
+ * The RootComponent holds the BranchesContainer, as well as a single Dropzone
92
+ * for drag-and-drop operations.
93
+ *
94
+ * @returns The instance of RootComponent that is rendered by this class.
95
+ */
96
+ getComponentInstance() {
97
+ if (this.isDestroyed()) {
98
+ throw new TreeError("Cannot get component instance from a destroyed tree root");
99
+ }
100
+ return this.rootController.getComponentInstance();
101
+ }
102
+ /** @returns The Host View in which the RootComponent is rendered */
103
+ getHostView() {
104
+ if (this.isDestroyed()) {
105
+ throw new TreeError("Cannot get component host view from a destroyed tree root");
106
+ }
107
+ return this.rootController.getHostView();
108
+ }
109
+ /** @returns The RootComponent as a native HTML Element */
110
+ getNativeElement() {
111
+ if (this.isDestroyed()) {
112
+ throw new TreeError("Cannot get native element from a destroyed tree root");
113
+ }
114
+ return this.rootController.getNativeElement();
115
+ }
116
+ /**
117
+ * Appends a new child branch to this branch. The child branch will render
118
+ * the specified component according to the (optional) configuration parameter.
119
+ *
120
+ * @param component - The component to render in the new child branch.
121
+ * @param options - Configuration options for the new child branch.
122
+ *
123
+ * @returns
124
+ * The newly-created child branch.
125
+ */
126
+ grow(component, options) {
127
+ if (this.isDestroyed()) {
128
+ throw new TreeError("Cannot grow a branch on a destroyed tree root");
129
+ }
130
+ try {
131
+ return new TreeBranch(this, { component, ...options });
132
+ }
133
+ catch (error) {
134
+ throw this.handleUserlandError(error);
135
+ }
136
+ }
137
+ /** @returns `true` if the tree is destroyed, `false` otherwise */
138
+ isDestroyed() {
139
+ return this.treeNodeBase.isDestroyed();
140
+ }
141
+ /**
142
+ * Provides a model describing the shape of the tree.
143
+ *
144
+ * @returns A multi-dimensional Map which describes the shape of the tree.
145
+ *
146
+ * @example
147
+ * For example, an empty tree will return an empty Map. A tree with a single
148
+ * branch will return a Map with a single entry, where the key is the index
149
+ * of the branch (zero) and the value is an empty Map. A Tree like this:
150
+ *
151
+ * ```
152
+ * ---Branch-------Branch
153
+ * /
154
+ * Root-------Branch
155
+ * \
156
+ * ---Branch
157
+ * ```
158
+ * Will return a Map of matching shape:
159
+ * ```
160
+ * Map {
161
+ * 0: Map { 0: Map {}},
162
+ * 1: Map {},
163
+ * 2: Map {}
164
+ * }
165
+ * ```
166
+ */
167
+ plot() {
168
+ return this.treeNodeBase.plot();
169
+ }
170
+ /** @returns Itself */
171
+ root() {
172
+ return this;
173
+ }
174
+ /**
175
+ * Traverses the tree in depth-first pre-order, executing the provided
176
+ * callback function on each node. Traversal includes the Root.
177
+ *
178
+ * @param callback - A function to execute on each node.
179
+ */
180
+ traverse(callback) {
181
+ callback(this);
182
+ this.treeNodeBase.traverse(callback);
183
+ }
184
+ handleUserlandError(error) {
185
+ /* When an error occurs in a userland component during a tree operation,
186
+ * it can cause undefined, bizarre behavior in the tree. To prevent this,
187
+ * we destroy the tree and throw an error instead. This helps protect
188
+ * the end-user's data from corruption. */
189
+ this.destroy();
190
+ return this.treeNodeBase.handleUserlandError(error);
191
+ }
192
+ }
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1yb290LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb3JlL3RyZWUtcm9vdC90cmVlLXJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFhLE1BQU0sY0FBYyxDQUFDO0FBRTNEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQU1sQixZQUFvQyxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELHNFQUFzRTtJQUMvRCxRQUFRO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE9BQU87UUFDWCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxTQUFTLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUMvRCxD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Ozs7Ozs7Ozs7T0F5Qkc7SUFDSSxJQUFJO1FBQ1IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxzQkFBc0I7SUFDZixJQUFJO1FBQ1IsT0FBTyxJQUFJLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxRQUFRLENBQ1osUUFBcUQ7UUFFckQsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWM7UUFDdkM7OztrREFHMEM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBUcmVlQnJhbmNoIH0gZnJvbSBcIi4uL3RyZWUtYnJhbmNoXCI7XG5pbXBvcnQgdHlwZSB7IFRyZWVQbG90IH0gZnJvbSBcIi4uL3RyZWUtcGxvdC5pbnRlcmZhY2VcIjtcbmltcG9ydCB0eXBlIHsgVHJlZU5vZGUgfSBmcm9tIFwiLi4vdHJlZS1ub2RlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVHJlZU5vZGVCYXNlIH0gZnJvbSBcIi4uL3RyZWUtbm9kZS1iYXNlXCI7XG5pbXBvcnQgdHlwZSB7IEJyYW5jaE9wdGlvbnMgfSBmcm9tIFwiLi4vYnJhbmNoLW9wdGlvbnMuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tIFwiLi4vY29uZmlndXJhdGlvblwiO1xuaW1wb3J0IHsgUm9vdENvbnRyb2xsZXIgfSBmcm9tIFwiLi4vdHJlZS1yb290L3Jvb3QtY29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgeyBUeXBlLCBWaWV3Q29udGFpbmVyUmVmLCBWaWV3UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFJvb3RDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgZHJvcHpvbmVSZW5kZXJlciB9IGZyb20gXCIuLi8uLi9leHRyYXMvZHJhZy1hbmQtZHJvcFwiO1xuaW1wb3J0IHsgVHJlZUVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9yc1wiO1xuaW1wb3J0IHsgRGVzdHJ1Y3Rpb25FdmVudCwgVHJlZUV2ZW50IH0gZnJvbSBcIi4uLy4uL2V2ZW50c1wiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGJhc2Ugb2YgdGhlIHRyZWUuIEl0IHJlbmRlcnMgYSB2ZXJ5IHNpbXBsZSBjb250YWluZXIgZm9yIGNoaWxkXG4gKiBicmFuY2hlcy4gSXQgaGFzIG1ldGhvZHMgZm9yIGNyZWF0aW5nIGFuZCBhY2Nlc3NpbmcgdGhvc2UgYnJhbmNoZXMuIEl0IGVtaXRzXG4gKiBldmVudHMgd2hlbiB0aGluZ3MgaGFwcGVuIGluIHRoZSB0cmVlLlxuICovXG5leHBvcnQgY2xhc3MgVHJlZVJvb3Q8VXNlcmxhbmRDb21wb25lbnQ+XG4gICBpbXBsZW1lbnRzIFRyZWVOb2RlPFVzZXJsYW5kQ29tcG9uZW50Plxue1xuICAgcHJpdmF0ZSByZWFkb25seSByb290Q29udHJvbGxlcjogUm9vdENvbnRyb2xsZXI8VXNlcmxhbmRDb21wb25lbnQ+O1xuICAgcHJpdmF0ZSByZWFkb25seSB0cmVlTm9kZUJhc2U6IFRyZWVOb2RlQmFzZTxVc2VybGFuZENvbXBvbmVudD47XG5cbiAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgIHRoaXMudHJlZU5vZGVCYXNlID0gbmV3IFRyZWVOb2RlQmFzZSgpO1xuICAgICAgdGhpcy5yb290Q29udHJvbGxlciA9IG5ldyBSb290Q29udHJvbGxlcih0aGlzLCB2aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgfVxuXG4gICAvKiogQHJldHVybnMgQWxsIGNoaWxkIGJyYW5jaGVzIGFzIGFuIGFycmF5IG9mIFRyZWVCcmFuY2ggaW5zdGFuY2VzICovXG4gICBwdWJsaWMgYnJhbmNoZXMoKTogQXJyYXk8VHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4+IHtcbiAgICAgIHJldHVybiB0aGlzLnRyZWVOb2RlQmFzZS5icmFuY2hlcygpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIFJlY3Vyc2l2ZWx5IGRlc3Ryb3lzIGFsbCBicmFuY2hlcyBvZiB0aGUgdHJlZSwgYXMgd2VsbCBhcyBpdHNlbGYuXG4gICAgKlxuICAgICogQHJlbWFya3NcbiAgICAqIFRoaXMgcmVsZWFzZXMgYWxsIHJlc291cmNlcyBoZWxkIG9yIGNvbnN1bWVkIGJ5IHRoZSB0cmVlLlxuICAgICpcbiAgICAqIEl0IGlzIGltcG9ydGFudCB0byBjYWxsIHRoaXMgbWV0aG9kIHdoZW4gYSB0cmVlIGlzIGRpc2NhcmRlZCwgb3RoZXJ3aXNlXG4gICAgKiB0aGUgdHJlZSB3aWxsIHJlbWFpbiBpbiBtZW1vcnkgYW5kIGNvbnRpbnVlIHRvIGNvbnN1bWUgcmVzb3VyY2VzLlxuICAgICovXG4gICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKCkpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXCJDYW5ub3QgZGVzdHJveSBhIGRlc3Ryb3llZCB0cmVlIHJvb3RcIik7XG4gICAgICB9XG4gICAgICBkcm9wem9uZVJlbmRlcmVyLmNsZWFyVHJlZUZyb21SZWdpc3RyeSh0aGlzKTtcbiAgICAgIHRoaXMudHJlZU5vZGVCYXNlLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMucm9vdENvbnRyb2xsZXIuZGVzdHJveSgpO1xuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICBjb25maWcuZGVsZXRlKHRoaXMpO1xuICAgICAgdGhpcy5kaXNwYXRjaChuZXcgRGVzdHJ1Y3Rpb25FdmVudCh0aGlzKSk7XG4gICB9XG5cbiAgIC8qKiBSdW4gQW5ndWxhciBjaGFuZ2UgZGV0ZWN0aW9uIG9uIHRoZSByb290IG9mIHRoZSB0cmVlICovXG4gICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgIHRoaXMucm9vdENvbnRyb2xsZXIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEVtaXRzIHRoZSBzcGVjaWZpZWQgVHJlZUV2ZW50LlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBDYXV0aW9uOiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gbWFudWFsbHkgZW1pdCBUcmVlRXZlbnRzIHRoYXQgYXJlIGFscmVhZHlcbiAgICAqIHByb3ZpZGVkIGJ5IHRoZSBsaWJyYXJ5LiBGb3IgZXhhbXBsZSwgaXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGVtaXQgYVxuICAgICogYEdyYWZ0RXZlbnRgLCBgRGVzdHJ1Y3Rpb25FdmVudGAsIGV0Yy4gVGhlc2UgZXZlbnRzIG1heSBiZSB1c2VkIGJ5IHRoZSB0cmVlLFxuICAgICogYW5kIGVtaXR0aW5nIHRoZW0gbWFudWFsbHkgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIEluc3RlYWQsIHdlXG4gICAgKiByZWNvbW1lbmQgaW1wbGVtZW50aW5nIHRoZSBUcmVlRXZlbnQgaW50ZXJmYWNlIHdpdGggeW91ciBvd24gY3VzdG9tIGV2ZW50c1xuICAgICogYW5kIGRpc3BhdGNoaW5nIHRob3NlLlxuICAgICpcbiAgICAqIEBwYXJhbSBldmVudCAtIFRoZSBUcmVlRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQuXG4gICAgKi9cbiAgIHB1YmxpYyBkaXNwYXRjaChldmVudDogVHJlZUV2ZW50PFVzZXJsYW5kQ29tcG9uZW50Pik6IHZvaWQge1xuICAgICAgdGhpcy50cmVlTm9kZUJhc2UuZGlzcGF0Y2goZXZlbnQpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEByZXR1cm5zXG4gICAgKiBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgVHJlZUV2ZW50cyB3aGVuZXZlciBhbiBldmVudCBpcyBkaXNwYXRjaGVkXG4gICAgKiBpbiB0aGUgcm9vdCBvciBhbnkgb2YgaXRzIGRlc2NlbmRhbnQgYnJhbmNoZXMuXG4gICAgKi9cbiAgIHB1YmxpYyBldmVudHMoKTogT2JzZXJ2YWJsZTxUcmVlRXZlbnQ8VXNlcmxhbmRDb21wb25lbnQ+PiB7XG4gICAgICByZXR1cm4gdGhpcy50cmVlTm9kZUJhc2UuZXZlbnRzKCk7XG4gICB9XG5cbiAgIC8qKlxuICAgICogQHJldHVybnNcbiAgICAqIFRoZSBjaGlsZCBicmFuY2ggYXQgdGhlIHNwZWNpZmllZCBpbmRleCwgb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzXG4gICAgKiBubyBjaGlsZCBicmFuY2ggYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICAqL1xuICAgcHVibGljIGdldEJyYW5jaChpbmRleDogbnVtYmVyKTogVHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4gfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMudHJlZU5vZGVCYXNlLmdldEJyYW5jaChpbmRleCk7XG4gICB9XG5cbiAgIC8qKiBAcmV0dXJucyBUaGUgVmlld0NvbnRhaW5lclJlZiBpbiB3aGljaCBjaGlsZCBicmFuY2hlcyBhcmUgcmVuZGVyZWQgKi9cbiAgIHB1YmxpYyBnZXRCcmFuY2hlc0NvbnRhaW5lcigpOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKCkpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICBcIkNhbm5vdCBnZXQgYnJhbmNoZXMgY29udGFpbmVyIGZyb20gYSBkZXN0cm95ZWQgdHJlZSByb290XCJcbiAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5yb290Q29udHJvbGxlci5nZXRCcmFuY2hlc0NvbnRhaW5lcigpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIFJldHJpZXZlcyB0aGUgUm9vdENvbXBvbmVudC5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogVGhlIFJvb3RDb21wb25lbnQgaG9sZHMgdGhlIEJyYW5jaGVzQ29udGFpbmVyLCBhcyB3ZWxsIGFzIGEgc2luZ2xlIERyb3B6b25lXG4gICAgKiBmb3IgZHJhZy1hbmQtZHJvcCBvcGVyYXRpb25zLlxuICAgICpcbiAgICAqIEByZXR1cm5zIFRoZSBpbnN0YW5jZSBvZiBSb290Q29tcG9uZW50IHRoYXQgaXMgcmVuZGVyZWQgYnkgdGhpcyBjbGFzcy5cbiAgICAqL1xuICAgcHVibGljIGdldENvbXBvbmVudEluc3RhbmNlKCk6IFJvb3RDb21wb25lbnQge1xuICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcbiAgICAgICAgICAgIFwiQ2Fubm90IGdldCBjb21wb25lbnQgaW5zdGFuY2UgZnJvbSBhIGRlc3Ryb3llZCB0cmVlIHJvb3RcIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnJvb3RDb250cm9sbGVyLmdldENvbXBvbmVudEluc3RhbmNlKCk7XG4gICB9XG5cbiAgIC8qKiBAcmV0dXJucyBUaGUgSG9zdCBWaWV3IGluIHdoaWNoIHRoZSBSb290Q29tcG9uZW50IGlzIHJlbmRlcmVkICovXG4gICBwdWJsaWMgZ2V0SG9zdFZpZXcoKTogVmlld1JlZiB7XG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCgpKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFxuICAgICAgICAgICAgXCJDYW5ub3QgZ2V0IGNvbXBvbmVudCBob3N0IHZpZXcgZnJvbSBhIGRlc3Ryb3llZCB0cmVlIHJvb3RcIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnJvb3RDb250cm9sbGVyLmdldEhvc3RWaWV3KCk7XG4gICB9XG5cbiAgIC8qKiBAcmV0dXJucyBUaGUgUm9vdENvbXBvbmVudCBhcyBhIG5hdGl2ZSBIVE1MIEVsZW1lbnQgKi9cbiAgIHB1YmxpYyBnZXROYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKCkpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICBcIkNhbm5vdCBnZXQgbmF0aXZlIGVsZW1lbnQgZnJvbSBhIGRlc3Ryb3llZCB0cmVlIHJvb3RcIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnJvb3RDb250cm9sbGVyLmdldE5hdGl2ZUVsZW1lbnQoKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBBcHBlbmRzIGEgbmV3IGNoaWxkIGJyYW5jaCB0byB0aGlzIGJyYW5jaC4gVGhlIGNoaWxkIGJyYW5jaCB3aWxsIHJlbmRlclxuICAgICogdGhlIHNwZWNpZmllZCBjb21wb25lbnQgYWNjb3JkaW5nIHRvIHRoZSAob3B0aW9uYWwpIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLlxuICAgICpcbiAgICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRvIHJlbmRlciBpbiB0aGUgbmV3IGNoaWxkIGJyYW5jaC5cbiAgICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbmV3IGNoaWxkIGJyYW5jaC5cbiAgICAqXG4gICAgKiBAcmV0dXJuc1xuICAgICogVGhlIG5ld2x5LWNyZWF0ZWQgY2hpbGQgYnJhbmNoLlxuICAgICovXG4gICBwdWJsaWMgZ3JvdyhcbiAgICAgIGNvbXBvbmVudDogVHlwZTxVc2VybGFuZENvbXBvbmVudD4sXG4gICAgICBvcHRpb25zPzogQnJhbmNoT3B0aW9uczxVc2VybGFuZENvbXBvbmVudD5cbiAgICk6IFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+IHtcbiAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKCkpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXCJDYW5ub3QgZ3JvdyBhIGJyYW5jaCBvbiBhIGRlc3Ryb3llZCB0cmVlIHJvb3RcIik7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICAgcmV0dXJuIG5ldyBUcmVlQnJhbmNoKHRoaXMsIHsgY29tcG9uZW50LCAuLi5vcHRpb25zIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgIHRocm93IHRoaXMuaGFuZGxlVXNlcmxhbmRFcnJvcihlcnJvcik7XG4gICAgICB9XG4gICB9XG5cbiAgIC8qKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRyZWUgaXMgZGVzdHJveWVkLCBgZmFsc2VgIG90aGVyd2lzZSAqL1xuICAgcHVibGljIGlzRGVzdHJveWVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMudHJlZU5vZGVCYXNlLmlzRGVzdHJveWVkKCk7XG4gICB9XG5cbiAgIC8qKlxuICAgICogUHJvdmlkZXMgYSBtb2RlbCBkZXNjcmliaW5nIHRoZSBzaGFwZSBvZiB0aGUgdHJlZS5cbiAgICAqXG4gICAgKiBAcmV0dXJucyBBIG11bHRpLWRpbWVuc2lvbmFsIE1hcCB3aGljaCBkZXNjcmliZXMgdGhlIHNoYXBlIG9mIHRoZSB0cmVlLlxuICAgICpcbiAgICAqIEBleGFtcGxlXG4gICAgKiBGb3IgZXhhbXBsZSwgYW4gZW1wdHkgdHJlZSB3aWxsIHJldHVybiBhbiBlbXB0eSBNYXAuIEEgdHJlZSB3aXRoIGEgc2luZ2xlXG4gICAgKiBicmFuY2ggd2lsbCByZXR1cm4gYSBNYXAgd2l0aCBhIHNpbmdsZSBlbnRyeSwgd2hlcmUgdGhlIGtleSBpcyB0aGUgaW5kZXhcbiAgICAqIG9mIHRoZSBicmFuY2ggKHplcm8pIGFuZCB0aGUgdmFsdWUgaXMgYW4gZW1wdHkgTWFwLiBBIFRyZWUgbGlrZSB0aGlzOlxuICAgICpcbiAgICAqIGBgYFxuICAgICogICAgICAgICAtLS1CcmFuY2gtLS0tLS0tQnJhbmNoXG4gICAgKiAgICAgICAgL1xuICAgICogUm9vdC0tLS0tLS1CcmFuY2hcbiAgICAqICAgICAgICBcXFxuICAgICogICAgICAgICAtLS1CcmFuY2hcbiAgICAqIGBgYFxuICAgICogV2lsbCByZXR1cm4gYSBNYXAgb2YgbWF0Y2hpbmcgc2hhcGU6XG4gICAgKiBgYGBcbiAgICAqIE1hcCB7XG4gICAgKiAgICAwOiBNYXAgeyAwOiBNYXAge319LFxuICAgICogICAgMTogTWFwIHt9LFxuICAgICogICAgMjogTWFwIHt9XG4gICAgKiB9XG4gICAgKiBgYGBcbiAgICAqL1xuICAgcHVibGljIHBsb3QoKTogVHJlZVBsb3Qge1xuICAgICAgcmV0dXJuIHRoaXMudHJlZU5vZGVCYXNlLnBsb3QoKTtcbiAgIH1cblxuICAgLyoqIEByZXR1cm5zIEl0c2VsZiAqL1xuICAgcHVibGljIHJvb3QoKTogdGhpcyB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgIH1cblxuICAgLyoqXG4gICAgKiBUcmF2ZXJzZXMgdGhlIHRyZWUgaW4gZGVwdGgtZmlyc3QgcHJlLW9yZGVyLCBleGVjdXRpbmcgdGhlIHByb3ZpZGVkXG4gICAgKiBjYWxsYmFjayBmdW5jdGlvbiBvbiBlYWNoIG5vZGUuIFRyYXZlcnNhbCBpbmNsdWRlcyB0aGUgUm9vdC5cbiAgICAqXG4gICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBBIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgb24gZWFjaCBub2RlLlxuICAgICovXG4gICBwdWJsaWMgdHJhdmVyc2UoXG4gICAgICBjYWxsYmFjazogKG5vZGU6IFRyZWVOb2RlPFVzZXJsYW5kQ29tcG9uZW50PikgPT4gdm9pZFxuICAgKTogdm9pZCB7XG4gICAgICBjYWxsYmFjayh0aGlzKTtcbiAgICAgIHRoaXMudHJlZU5vZGVCYXNlLnRyYXZlcnNlKGNhbGxiYWNrKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBoYW5kbGVVc2VybGFuZEVycm9yKGVycm9yOiB1bmtub3duKTogVHJlZUVycm9yIHtcbiAgICAgIC8qIFdoZW4gYW4gZXJyb3Igb2NjdXJzIGluIGEgdXNlcmxhbmQgY29tcG9uZW50IGR1cmluZyBhIHRyZWUgb3BlcmF0aW9uLFxuICAgICAgICogaXQgY2FuIGNhdXNlIHVuZGVmaW5lZCwgYml6YXJyZSBiZWhhdmlvciBpbiB0aGUgdHJlZS4gVG8gcHJldmVudCB0aGlzLFxuICAgICAgICogd2UgZGVzdHJveSB0aGUgdHJlZSBhbmQgdGhyb3cgYW4gZXJyb3IgaW5zdGVhZC4gVGhpcyBoZWxwcyBwcm90ZWN0XG4gICAgICAgKiB0aGUgZW5kLXVzZXIncyBkYXRhIGZyb20gY29ycnVwdGlvbi4gKi9cbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgcmV0dXJuIHRoaXMudHJlZU5vZGVCYXNlLmhhbmRsZVVzZXJsYW5kRXJyb3IoZXJyb3IpO1xuICAgfVxufVxuIl19
@@ -15,11 +15,11 @@ export class TreeService {
15
15
  config.setConfig(root, options);
16
16
  return root;
17
17
  }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
19
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeService, providedIn: "root" }); }
18
20
  }
19
- TreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20
- TreeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeService, providedIn: "root" });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeService, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeService, decorators: [{
22
22
  type: Injectable,
23
23
  args: [{ providedIn: "root" }]
24
24
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb3JlL3RyZWUtc2VydmljZS90cmVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLE1BQU0sRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUV4QyxpREFBaUQ7QUFFakQsTUFBTSxPQUFPLFdBQVc7SUFDckI7Ozs7T0FJRztJQUNJLGVBQWUsQ0FDbkIsU0FBMkIsRUFDM0IsVUFBdUIsRUFBRTtRQUV6QixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQVksU0FBUyxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZixDQUFDOzt3R0FkUyxXQUFXOzRHQUFYLFdBQVcsY0FERSxNQUFNOzJGQUNuQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHR5cGUgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjb25maWcsIHR5cGUgVHJlZU9wdGlvbnMgfSBmcm9tIFwiLi4vY29uZmlndXJhdGlvblwiO1xuaW1wb3J0IHsgVHJlZVJvb3QgfSBmcm9tIFwiLi4vdHJlZS1yb290XCI7XG5cbi8qKiBSZXNwb25zaWJsZSBmb3IgdGhlIGNyZWF0aW9uIG9mIG5ldyB0cmVlcy4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VydmljZSB7XG4gICAvKipcbiAgICAqIENyZWF0ZXMgYSBuZXcsIGVtcHR5IHRyZWUgc3RydWN0dXJlIGluc2lkZSB0aGUgcHJvdmlkZWQgY29udGFpbmVyLlxuICAgICpcbiAgICAqIEByZXR1cm5zIEEgYFRyZWVSb290YCByZXByZXNlbnRpbmcgdGhlIGJhc2Ugb2YgdGhlIG5ldyB0cmVlLlxuICAgICovXG4gICBwdWJsaWMgY3JlYXRlRW1wdHlUcmVlPENvbXBvbmVudD4oXG4gICAgICBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICBvcHRpb25zOiBUcmVlT3B0aW9ucyA9IHt9XG4gICApOiBUcmVlUm9vdDxDb21wb25lbnQ+IHtcbiAgICAgIGNvbnRhaW5lci5jbGVhcigpO1xuICAgICAgY29uc3Qgcm9vdCA9IG5ldyBUcmVlUm9vdDxDb21wb25lbnQ+KGNvbnRhaW5lcik7XG4gICAgICBjb25maWcuc2V0Q29uZmlnKHJvb3QsIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIHJvb3Q7XG4gICB9XG59XG4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb3JlL3RyZWUtc2VydmljZS90cmVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLE1BQU0sRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUV4QyxpREFBaUQ7QUFFakQsTUFBTSxPQUFPLFdBQVc7SUFDckI7Ozs7T0FJRztJQUNJLGVBQWUsQ0FDbkIsU0FBMkIsRUFDM0IsVUFBdUIsRUFBRTtRQUV6QixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQVksU0FBUyxDQUFDLENBQUM7UUFDaEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZixDQUFDOzhHQWRTLFdBQVc7a0hBQVgsV0FBVyxjQURFLE1BQU07OzJGQUNuQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHR5cGUgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjb25maWcsIHR5cGUgVHJlZU9wdGlvbnMgfSBmcm9tIFwiLi4vY29uZmlndXJhdGlvblwiO1xuaW1wb3J0IHsgVHJlZVJvb3QgfSBmcm9tIFwiLi4vdHJlZS1yb290XCI7XG5cbi8qKiBSZXNwb25zaWJsZSBmb3IgdGhlIGNyZWF0aW9uIG9mIG5ldyB0cmVlcy4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogXCJyb290XCIgfSlcbmV4cG9ydCBjbGFzcyBUcmVlU2VydmljZSB7XG4gICAvKipcbiAgICAqIENyZWF0ZXMgYSBuZXcsIGVtcHR5IHRyZWUgc3RydWN0dXJlIGluc2lkZSB0aGUgcHJvdmlkZWQgY29udGFpbmVyLlxuICAgICpcbiAgICAqIEByZXR1cm5zIEEgYFRyZWVSb290YCByZXByZXNlbnRpbmcgdGhlIGJhc2Ugb2YgdGhlIG5ldyB0cmVlLlxuICAgICovXG4gICBwdWJsaWMgY3JlYXRlRW1wdHlUcmVlPENvbXBvbmVudD4oXG4gICAgICBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICBvcHRpb25zOiBUcmVlT3B0aW9ucyA9IHt9XG4gICApOiBUcmVlUm9vdDxDb21wb25lbnQ+IHtcbiAgICAgIGNvbnRhaW5lci5jbGVhcigpO1xuICAgICAgY29uc3Qgcm9vdCA9IG5ldyBUcmVlUm9vdDxDb21wb25lbnQ+KGNvbnRhaW5lcik7XG4gICAgICBjb25maWcuc2V0Q29uZmlnKHJvb3QsIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIHJvb3Q7XG4gICB9XG59XG4iXX0=
@@ -3,14 +3,14 @@ import { TreeCollapseService } from "./collapse.service";
3
3
  import * as i0 from "@angular/core";
4
4
  /** A module containing the entities which provide collapse functionality */
5
5
  export class TreeCollapseModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: TreeCollapseModule }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeCollapseModule, providers: [TreeCollapseService] }); }
6
9
  }
7
- TreeCollapseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- TreeCollapseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TreeCollapseModule });
9
- TreeCollapseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeCollapseModule, providers: [TreeCollapseService] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeCollapseModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeCollapseModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  providers: [TreeCollapseService]
14
14
  }]
15
15
  }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9leHRyYXMvY29sbGFwc2UvY29sbGFwc2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXpELDRFQUE0RTtBQUk1RSxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixhQUZqQixDQUFDLG1CQUFtQixDQUFDOzJGQUV0QixrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1AsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJlZUNvbGxhcHNlU2VydmljZSB9IGZyb20gXCIuL2NvbGxhcHNlLnNlcnZpY2VcIjtcblxuLyoqIEEgbW9kdWxlIGNvbnRhaW5pbmcgdGhlIGVudGl0aWVzIHdoaWNoIHByb3ZpZGUgY29sbGFwc2UgZnVuY3Rpb25hbGl0eSAqL1xuQE5nTW9kdWxlKHtcbiAgIHByb3ZpZGVyczogW1RyZWVDb2xsYXBzZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVDb2xsYXBzZU1vZHVsZSB7fVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9leHRyYXMvY29sbGFwc2UvY29sbGFwc2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXpELDRFQUE0RTtBQUk1RSxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGFBRmpCLENBQUMsbUJBQW1CLENBQUM7OzJGQUV0QixrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1AsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJlZUNvbGxhcHNlU2VydmljZSB9IGZyb20gXCIuL2NvbGxhcHNlLnNlcnZpY2VcIjtcblxuLyoqIEEgbW9kdWxlIGNvbnRhaW5pbmcgdGhlIGVudGl0aWVzIHdoaWNoIHByb3ZpZGUgY29sbGFwc2UgZnVuY3Rpb25hbGl0eSAqL1xuQE5nTW9kdWxlKHtcbiAgIHByb3ZpZGVyczogW1RyZWVDb2xsYXBzZVNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVDb2xsYXBzZU1vZHVsZSB7fVxuIl19
@@ -36,10 +36,10 @@ export class TreeCollapseService {
36
36
  isCollapsed(treeBranch) {
37
37
  return treeCollapser.isCollapsed(treeBranch);
38
38
  }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeCollapseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeCollapseService }); }
39
41
  }
40
- TreeCollapseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeCollapseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
41
- TreeCollapseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeCollapseService });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeCollapseService, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeCollapseService, decorators: [{
43
43
  type: Injectable
44
44
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZXh0cmFzL2NvbGxhcHNlL2NvbGxhcHNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUUzQyx5REFBeUQ7QUFFekQsTUFBTSxPQUFPLG1CQUFtQjtJQUM3Qjs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBSSxVQUF5QjtRQUN6QyxhQUFhLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBSSxVQUF5QjtRQUN2QyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFdBQVcsQ0FBSSxVQUF5QjtRQUM1QyxPQUFPLGFBQWEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7Z0hBbkNTLG1CQUFtQjtvSEFBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyZWVCcmFuY2ggfSBmcm9tIFwiLi4vLi4vY29yZVwiO1xuaW1wb3J0IHsgdHJlZUNvbGxhcHNlciB9IGZyb20gXCIuL2NvbGxhcHNlXCI7XG5cbi8qKiBBIHNlcnZpY2UgdGhhdCBjb2xsYXBzZXMgYW5kIGV4cGFuZHMgdHJlZSBicmFuY2hlcyAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyZWVDb2xsYXBzZVNlcnZpY2Uge1xuICAgLyoqXG4gICAgKiBDYXVzZXMgYSBUcmVlQnJhbmNoIHRvIGNvbGxhcHNlLCB0ZW1wb3JhcmlseSBwcnVuaW5nIGFsbCBvZiBpdHMgY2hpbGRyZW5cbiAgICAqIGZyb20gdGhlIHRyZWUuXG4gICAgKlxuICAgICogQHBhcmFtIHRyZWVCcmFuY2ggLSBUaGUgYnJhbmNoIHRvIGNvbGxhcHNlLlxuICAgICovXG4gICBwdWJsaWMgY29sbGFwc2U8VD4odHJlZUJyYW5jaDogVHJlZUJyYW5jaDxUPik6IHZvaWQge1xuICAgICAgdHJlZUNvbGxhcHNlci5jb2xsYXBzZSh0cmVlQnJhbmNoKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBDYXVzZXMgYSBUcmVlQnJhbmNoIHRvIGV4cGFuZCwgcmVzdG9yaW5nIGFsbCBvZiBpdHMgY2hpbGRyZW4gd2hpY2ggd2VyZVxuICAgICogcHJldmlvdXNseSBwcnVuZWQgYnkgYSBjYWxsIHRvIGBjb2xsYXBzZSgpYC5cbiAgICAqXG4gICAgKiBAcGFyYW0gdHJlZUJyYW5jaCAtIFRoZSBicmFuY2ggdG8gZXhwYW5kLlxuICAgICovXG4gICBwdWJsaWMgZXhwYW5kPFQ+KHRyZWVCcmFuY2g6IFRyZWVCcmFuY2g8VD4pOiB2b2lkIHtcbiAgICAgIHRyZWVDb2xsYXBzZXIuZXhwYW5kKHRyZWVCcmFuY2gpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIERldGVybWluZXMgd2hldGhlciBhIFRyZWVCcmFuY2ggY3VycmVudGx5IGhhcyBhbnkgY2hpbGRyZW4gd2hpY2ggYXJlXG4gICAgKiBwcnVuZWQgZnJvbSB0aGUgdHJlZSBkdWUgdG8gYSBjYWxsIHRvICB0aGUgYGNvbGxhcHNlKClgIG1ldGhvZC5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogQ2hpbGQgYnJhbmNoZXMgd2hpY2ggYXJlIHBydW5lZCBtYW51YWxseSBmcm9tIHRoZSB0cmVlLCByYXRoZXIgdGhhblxuICAgICogdGhyb3VnaCB0aGUgYGNvbGxhcHNlKClgIG1ldGhvZCwgd2lsbCBub3QgYmUgY29uc2lkZXJlZC5cbiAgICAqXG4gICAgKiBAcGFyYW0gdHJlZUJyYW5jaCAtIFRoZSBicmFuY2ggdG8gY2hlY2suXG4gICAgKlxuICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBicmFuY2ggaXMgY3VycmVudGx5IGNvbGxhcHNlZDsgYGZhbHNlYCBpZiBpdCBpcyBub3QuXG4gICAgKi9cbiAgIHB1YmxpYyBpc0NvbGxhcHNlZDxUPih0cmVlQnJhbmNoOiBUcmVlQnJhbmNoPFQ+KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdHJlZUNvbGxhcHNlci5pc0NvbGxhcHNlZCh0cmVlQnJhbmNoKTtcbiAgIH1cbn1cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZXh0cmFzL2NvbGxhcHNlL2NvbGxhcHNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUUzQyx5REFBeUQ7QUFFekQsTUFBTSxPQUFPLG1CQUFtQjtJQUM3Qjs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBSSxVQUF5QjtRQUN6QyxhQUFhLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBSSxVQUF5QjtRQUN2QyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFdBQVcsQ0FBSSxVQUF5QjtRQUM1QyxPQUFPLGFBQWEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs4R0FuQ1MsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyZWVCcmFuY2ggfSBmcm9tIFwiLi4vLi4vY29yZVwiO1xuaW1wb3J0IHsgdHJlZUNvbGxhcHNlciB9IGZyb20gXCIuL2NvbGxhcHNlXCI7XG5cbi8qKiBBIHNlcnZpY2UgdGhhdCBjb2xsYXBzZXMgYW5kIGV4cGFuZHMgdHJlZSBicmFuY2hlcyAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyZWVDb2xsYXBzZVNlcnZpY2Uge1xuICAgLyoqXG4gICAgKiBDYXVzZXMgYSBUcmVlQnJhbmNoIHRvIGNvbGxhcHNlLCB0ZW1wb3JhcmlseSBwcnVuaW5nIGFsbCBvZiBpdHMgY2hpbGRyZW5cbiAgICAqIGZyb20gdGhlIHRyZWUuXG4gICAgKlxuICAgICogQHBhcmFtIHRyZWVCcmFuY2ggLSBUaGUgYnJhbmNoIHRvIGNvbGxhcHNlLlxuICAgICovXG4gICBwdWJsaWMgY29sbGFwc2U8VD4odHJlZUJyYW5jaDogVHJlZUJyYW5jaDxUPik6IHZvaWQge1xuICAgICAgdHJlZUNvbGxhcHNlci5jb2xsYXBzZSh0cmVlQnJhbmNoKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBDYXVzZXMgYSBUcmVlQnJhbmNoIHRvIGV4cGFuZCwgcmVzdG9yaW5nIGFsbCBvZiBpdHMgY2hpbGRyZW4gd2hpY2ggd2VyZVxuICAgICogcHJldmlvdXNseSBwcnVuZWQgYnkgYSBjYWxsIHRvIGBjb2xsYXBzZSgpYC5cbiAgICAqXG4gICAgKiBAcGFyYW0gdHJlZUJyYW5jaCAtIFRoZSBicmFuY2ggdG8gZXhwYW5kLlxuICAgICovXG4gICBwdWJsaWMgZXhwYW5kPFQ+KHRyZWVCcmFuY2g6IFRyZWVCcmFuY2g8VD4pOiB2b2lkIHtcbiAgICAgIHRyZWVDb2xsYXBzZXIuZXhwYW5kKHRyZWVCcmFuY2gpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIERldGVybWluZXMgd2hldGhlciBhIFRyZWVCcmFuY2ggY3VycmVudGx5IGhhcyBhbnkgY2hpbGRyZW4gd2hpY2ggYXJlXG4gICAgKiBwcnVuZWQgZnJvbSB0aGUgdHJlZSBkdWUgdG8gYSBjYWxsIHRvICB0aGUgYGNvbGxhcHNlKClgIG1ldGhvZC5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogQ2hpbGQgYnJhbmNoZXMgd2hpY2ggYXJlIHBydW5lZCBtYW51YWxseSBmcm9tIHRoZSB0cmVlLCByYXRoZXIgdGhhblxuICAgICogdGhyb3VnaCB0aGUgYGNvbGxhcHNlKClgIG1ldGhvZCwgd2lsbCBub3QgYmUgY29uc2lkZXJlZC5cbiAgICAqXG4gICAgKiBAcGFyYW0gdHJlZUJyYW5jaCAtIFRoZSBicmFuY2ggdG8gY2hlY2suXG4gICAgKlxuICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBicmFuY2ggaXMgY3VycmVudGx5IGNvbGxhcHNlZDsgYGZhbHNlYCBpZiBpdCBpcyBub3QuXG4gICAgKi9cbiAgIHB1YmxpYyBpc0NvbGxhcHNlZDxUPih0cmVlQnJhbmNoOiBUcmVlQnJhbmNoPFQ+KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdHJlZUNvbGxhcHNlci5pc0NvbGxhcHNlZCh0cmVlQnJhbmNoKTtcbiAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,83 @@
1
+ import { Subject } from "rxjs";
2
+ import { config } from "../../core";
3
+ import { TreeError } from "../../errors";
4
+ import { DragEndEvent, DragStartEvent, DropEvent } from "../../events";
5
+ import { dragState, DragStates } from "./drag-state";
6
+ import { assert } from "../../../shared";
7
+ class DragAndDrop {
8
+ constructor() {
9
+ this.dragAborted$ = new Subject();
10
+ }
11
+ dragStart(treeBranch, event) {
12
+ if (!this.draggingAllowed(treeBranch)) {
13
+ event.preventDefault();
14
+ return;
15
+ }
16
+ treeBranch.dispatch(new DragStartEvent(treeBranch));
17
+ this.setDragEffects(treeBranch, event);
18
+ this.watchForDragend(treeBranch, event);
19
+ /* We have to do a setTimeout because DOM changes are not allowed during a
20
+ * dragstart event. */
21
+ setTimeout(() => {
22
+ dragState.starting(treeBranch);
23
+ treeBranch.prune();
24
+ dragState.dragging();
25
+ });
26
+ }
27
+ drop(parent, index) {
28
+ const treeBranch = dragState.getDragData();
29
+ if (treeBranch === undefined) {
30
+ throw new TreeError("Cannot get dragged branch");
31
+ }
32
+ this.graftDraggedBranch(treeBranch, parent, index);
33
+ treeBranch.dispatch(new DropEvent(treeBranch, parent, index));
34
+ }
35
+ getDragImageOffsets(event, element) {
36
+ const bounds = element.getBoundingClientRect();
37
+ const xOffset = event.clientX - bounds.left;
38
+ const yOffset = event.clientY - bounds.top;
39
+ return [xOffset, yOffset];
40
+ }
41
+ setDragEffects(treeBranch, event) {
42
+ const dataTransfer = event.dataTransfer;
43
+ assert(dataTransfer instanceof DataTransfer);
44
+ const nativeElement = treeBranch.getNativeElement();
45
+ const [xOffset, yOffset] = this.getDragImageOffsets(event, nativeElement);
46
+ dataTransfer.setDragImage(nativeElement, xOffset, yOffset);
47
+ }
48
+ watchForDragend(treeBranch, event) {
49
+ const oldParent = treeBranch.parent();
50
+ const oldIndex = treeBranch.index();
51
+ assert(oldParent !== undefined && oldIndex !== undefined);
52
+ event.target?.addEventListener("dragend", (dragend) => {
53
+ if (dragState.state() !== DragStates.Dropped) {
54
+ // The drag ended but a drop never occurred, so put the dragged branch back where it started.
55
+ this.dragAborted$.next(dragend);
56
+ this.graftDraggedBranch(treeBranch, oldParent, oldIndex);
57
+ }
58
+ dragState.restart();
59
+ const newParent = treeBranch.parent();
60
+ assert(newParent !== undefined);
61
+ const newIndex = treeBranch.index();
62
+ assert(newIndex !== undefined);
63
+ treeBranch.dispatch(new DragEndEvent(treeBranch, {
64
+ oldParent,
65
+ oldIndex,
66
+ newParent,
67
+ newIndex
68
+ }));
69
+ }, { once: true });
70
+ }
71
+ draggingAllowed(treeBranch) {
72
+ const allowDragging = config.getConfig(treeBranch.root())?.dragAndDrop?.allowDragging ??
73
+ (() => true);
74
+ return allowDragging(treeBranch);
75
+ }
76
+ graftDraggedBranch(treeBranch, parent, index) {
77
+ treeBranch.graftTo(parent, index);
78
+ treeBranch.getNativeElement().style.display = "block";
79
+ dragState.dropped();
80
+ }
81
+ }
82
+ export const dragAndDrop = new DragAndDrop();
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZXh0cmFzL2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBa0MsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxNQUFNLFdBQVc7SUFBakI7UUFDbUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBYSxDQUFDO0lBa0czRCxDQUFDO0lBaEdTLFNBQVMsQ0FBSSxVQUF5QixFQUFFLEtBQWdCO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDckMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDVixDQUFDO1FBQ0QsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hDOzhCQUNzQjtRQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2IsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQixVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLElBQUksQ0FBSSxNQUFtQixFQUFFLEtBQWE7UUFDOUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBSyxDQUFDO1FBQzlDLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkQsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLG1CQUFtQixDQUN4QixLQUFnQixFQUNoQixPQUFnQjtRQUVoQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLGNBQWMsQ0FDbkIsVUFBeUIsRUFDekIsS0FBZ0I7UUFFaEIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN4QyxNQUFNLENBQUMsWUFBWSxZQUFZLFlBQVksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMxRSxZQUFZLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLGVBQWUsQ0FDcEIsVUFBeUIsRUFDekIsS0FBZ0I7UUFFaEIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQyxNQUFNLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDMUQsS0FBSyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FDM0IsU0FBUyxFQUNULENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVCxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVDLDZGQUE2RjtnQkFDN0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBb0IsQ0FBQyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxNQUFNLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLFVBQVUsQ0FBQyxRQUFRLENBQ2hCLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRTtnQkFDMUIsU0FBUztnQkFDVCxRQUFRO2dCQUNSLFNBQVM7Z0JBQ1QsUUFBUTthQUNWLENBQUMsQ0FDSixDQUFDO1FBQ0wsQ0FBQyxFQUNELEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBSSxVQUF5QjtRQUNqRCxNQUFNLGFBQWEsR0FDaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsYUFBYTtZQUMvRCxDQUFDLEdBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxrQkFBa0IsQ0FDdkIsVUFBeUIsRUFDekIsTUFBbUIsRUFDbkIsS0FBYTtRQUViLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3RELFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0g7QUFFRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdHlwZSBUcmVlQnJhbmNoLCB0eXBlIFRyZWVOb2RlLCBjb25maWcgfSBmcm9tIFwiLi4vLi4vY29yZVwiO1xuaW1wb3J0IHsgVHJlZUVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9yc1wiO1xuaW1wb3J0IHsgRHJhZ0VuZEV2ZW50LCBEcmFnU3RhcnRFdmVudCwgRHJvcEV2ZW50IH0gZnJvbSBcIi4uLy4uL2V2ZW50c1wiO1xuaW1wb3J0IHsgZHJhZ1N0YXRlLCBEcmFnU3RhdGVzIH0gZnJvbSBcIi4vZHJhZy1zdGF0ZVwiO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZFwiO1xuXG5jbGFzcyBEcmFnQW5kRHJvcCB7XG4gICBwdWJsaWMgcmVhZG9ubHkgZHJhZ0Fib3J0ZWQkID0gbmV3IFN1YmplY3Q8RHJhZ0V2ZW50PigpO1xuXG4gICBwdWJsaWMgZHJhZ1N0YXJ0PFQ+KHRyZWVCcmFuY2g6IFRyZWVCcmFuY2g8VD4sIGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgIGlmICghdGhpcy5kcmFnZ2luZ0FsbG93ZWQodHJlZUJyYW5jaCkpIHtcbiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cmVlQnJhbmNoLmRpc3BhdGNoKG5ldyBEcmFnU3RhcnRFdmVudCh0cmVlQnJhbmNoKSk7XG4gICAgICB0aGlzLnNldERyYWdFZmZlY3RzKHRyZWVCcmFuY2gsIGV2ZW50KTtcbiAgICAgIHRoaXMud2F0Y2hGb3JEcmFnZW5kKHRyZWVCcmFuY2gsIGV2ZW50KTtcbiAgICAgIC8qIFdlIGhhdmUgdG8gZG8gYSBzZXRUaW1lb3V0IGJlY2F1c2UgRE9NIGNoYW5nZXMgYXJlIG5vdCBhbGxvd2VkIGR1cmluZyBhXG4gICAgICAgKiBkcmFnc3RhcnQgZXZlbnQuICovXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgIGRyYWdTdGF0ZS5zdGFydGluZyh0cmVlQnJhbmNoKTtcbiAgICAgICAgIHRyZWVCcmFuY2gucHJ1bmUoKTtcbiAgICAgICAgIGRyYWdTdGF0ZS5kcmFnZ2luZygpO1xuICAgICAgfSk7XG4gICB9XG5cbiAgIHB1YmxpYyBkcm9wPFQ+KHBhcmVudDogVHJlZU5vZGU8VD4sIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHRyZWVCcmFuY2ggPSBkcmFnU3RhdGUuZ2V0RHJhZ0RhdGE8VD4oKTtcbiAgICAgIGlmICh0cmVlQnJhbmNoID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXCJDYW5ub3QgZ2V0IGRyYWdnZWQgYnJhbmNoXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy5ncmFmdERyYWdnZWRCcmFuY2godHJlZUJyYW5jaCwgcGFyZW50LCBpbmRleCk7XG4gICAgICB0cmVlQnJhbmNoLmRpc3BhdGNoKG5ldyBEcm9wRXZlbnQodHJlZUJyYW5jaCwgcGFyZW50LCBpbmRleCkpO1xuICAgfVxuXG4gICBwcml2YXRlIGdldERyYWdJbWFnZU9mZnNldHMoXG4gICAgICBldmVudDogRHJhZ0V2ZW50LFxuICAgICAgZWxlbWVudDogRWxlbWVudFxuICAgKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICBjb25zdCBib3VuZHMgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgeE9mZnNldCA9IGV2ZW50LmNsaWVudFggLSBib3VuZHMubGVmdDtcbiAgICAgIGNvbnN0IHlPZmZzZXQgPSBldmVudC5jbGllbnRZIC0gYm91bmRzLnRvcDtcbiAgICAgIHJldHVybiBbeE9mZnNldCwgeU9mZnNldF07XG4gICB9XG5cbiAgIHByaXZhdGUgc2V0RHJhZ0VmZmVjdHM8VD4oXG4gICAgICB0cmVlQnJhbmNoOiBUcmVlQnJhbmNoPFQ+LFxuICAgICAgZXZlbnQ6IERyYWdFdmVudFxuICAgKTogdm9pZCB7XG4gICAgICBjb25zdCBkYXRhVHJhbnNmZXIgPSBldmVudC5kYXRhVHJhbnNmZXI7XG4gICAgICBhc3NlcnQoZGF0YVRyYW5zZmVyIGluc3RhbmNlb2YgRGF0YVRyYW5zZmVyKTtcbiAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0cmVlQnJhbmNoLmdldE5hdGl2ZUVsZW1lbnQoKTtcbiAgICAgIGNvbnN0IFt4T2Zmc2V0LCB5T2Zmc2V0XSA9IHRoaXMuZ2V0RHJhZ0ltYWdlT2Zmc2V0cyhldmVudCwgbmF0aXZlRWxlbWVudCk7XG4gICAgICBkYXRhVHJhbnNmZXIuc2V0RHJhZ0ltYWdlKG5hdGl2ZUVsZW1lbnQsIHhPZmZzZXQsIHlPZmZzZXQpO1xuICAgfVxuXG4gICBwcml2YXRlIHdhdGNoRm9yRHJhZ2VuZDxUPihcbiAgICAgIHRyZWVCcmFuY2g6IFRyZWVCcmFuY2g8VD4sXG4gICAgICBldmVudDogRHJhZ0V2ZW50XG4gICApOiB2b2lkIHtcbiAgICAgIGNvbnN0IG9sZFBhcmVudCA9IHRyZWVCcmFuY2gucGFyZW50KCk7XG4gICAgICBjb25zdCBvbGRJbmRleCA9IHRyZWVCcmFuY2guaW5kZXgoKTtcbiAgICAgIGFzc2VydChvbGRQYXJlbnQgIT09IHVuZGVmaW5lZCAmJiBvbGRJbmRleCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIGV2ZW50LnRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgIFwiZHJhZ2VuZFwiLFxuICAgICAgICAgKGRyYWdlbmQpID0+IHtcbiAgICAgICAgICAgIGlmIChkcmFnU3RhdGUuc3RhdGUoKSAhPT0gRHJhZ1N0YXRlcy5Ecm9wcGVkKSB7XG4gICAgICAgICAgICAgICAvLyBUaGUgZHJhZyBlbmRlZCBidXQgYSBkcm9wIG5ldmVyIG9jY3VycmVkLCBzbyBwdXQgdGhlIGRyYWdnZWQgYnJhbmNoIGJhY2sgd2hlcmUgaXQgc3RhcnRlZC5cbiAgICAgICAgICAgICAgIHRoaXMuZHJhZ0Fib3J0ZWQkLm5leHQoZHJhZ2VuZCBhcyBEcmFnRXZlbnQpO1xuICAgICAgICAgICAgICAgdGhpcy5ncmFmdERyYWdnZWRCcmFuY2godHJlZUJyYW5jaCwgb2xkUGFyZW50LCBvbGRJbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkcmFnU3RhdGUucmVzdGFydCgpO1xuICAgICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gdHJlZUJyYW5jaC5wYXJlbnQoKTtcbiAgICAgICAgICAgIGFzc2VydChuZXdQYXJlbnQgIT09IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IHRyZWVCcmFuY2guaW5kZXgoKTtcbiAgICAgICAgICAgIGFzc2VydChuZXdJbmRleCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIHRyZWVCcmFuY2guZGlzcGF0Y2goXG4gICAgICAgICAgICAgICBuZXcgRHJhZ0VuZEV2ZW50KHRyZWVCcmFuY2gsIHtcbiAgICAgICAgICAgICAgICAgIG9sZFBhcmVudCxcbiAgICAgICAgICAgICAgICAgIG9sZEluZGV4LFxuICAgICAgICAgICAgICAgICAgbmV3UGFyZW50LFxuICAgICAgICAgICAgICAgICAgbmV3SW5kZXhcbiAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgfSxcbiAgICAgICAgIHsgb25jZTogdHJ1ZSB9XG4gICAgICApO1xuICAgfVxuXG4gICBwcml2YXRlIGRyYWdnaW5nQWxsb3dlZDxUPih0cmVlQnJhbmNoOiBUcmVlQnJhbmNoPFQ+KTogYm9vbGVhbiB7XG4gICAgICBjb25zdCBhbGxvd0RyYWdnaW5nID1cbiAgICAgICAgIGNvbmZpZy5nZXRDb25maWcodHJlZUJyYW5jaC5yb290KCkpPy5kcmFnQW5kRHJvcD8uYWxsb3dEcmFnZ2luZyA/P1xuICAgICAgICAgKCgpOiB0cnVlID0+IHRydWUpO1xuICAgICAgcmV0dXJuIGFsbG93RHJhZ2dpbmcodHJlZUJyYW5jaCk7XG4gICB9XG5cbiAgIHByaXZhdGUgZ3JhZnREcmFnZ2VkQnJhbmNoPFQ+KFxuICAgICAgdHJlZUJyYW5jaDogVHJlZUJyYW5jaDxUPixcbiAgICAgIHBhcmVudDogVHJlZU5vZGU8VD4sXG4gICAgICBpbmRleDogbnVtYmVyXG4gICApOiB2b2lkIHtcbiAgICAgIHRyZWVCcmFuY2guZ3JhZnRUbyhwYXJlbnQsIGluZGV4KTtcbiAgICAgIHRyZWVCcmFuY2guZ2V0TmF0aXZlRWxlbWVudCgpLnN0eWxlLmRpc3BsYXkgPSBcImJsb2NrXCI7XG4gICAgICBkcmFnU3RhdGUuZHJvcHBlZCgpO1xuICAgfVxufVxuXG5leHBvcnQgY29uc3QgZHJhZ0FuZERyb3AgPSBuZXcgRHJhZ0FuZERyb3AoKTtcbiJdfQ==
@@ -7,11 +7,11 @@ import * as i0 from "@angular/core";
7
7
  * functionality.
8
8
  */
9
9
  export class TreeDragAndDropModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeDragAndDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: TreeDragAndDropModule, imports: [DraggableDirective], exports: [DraggableDirective] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeDragAndDropModule, providers: [TreeDragAndDropService] }); }
10
13
  }
11
- TreeDragAndDropModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeDragAndDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- TreeDragAndDropModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TreeDragAndDropModule, imports: [DraggableDirective], exports: [DraggableDirective] });
13
- TreeDragAndDropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeDragAndDropModule, providers: [TreeDragAndDropService] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeDragAndDropModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeDragAndDropModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  imports: [DraggableDirective],
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
19
19
  exports: [DraggableDirective]
20
20
  }]
21
21
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2V4dHJhcy9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNEOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixZQUpyQixrQkFBa0IsYUFFbEIsa0JBQWtCO21IQUVsQixxQkFBcUIsYUFIcEIsQ0FBQyxzQkFBc0IsQ0FBQzsyRkFHekIscUJBQXFCO2tCQUxqQyxRQUFRO21CQUFDO29CQUNQLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUM3QixTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJlZURyYWdBbmREcm9wU2VydmljZSB9IGZyb20gXCIuL2RyYWctYW5kLWRyb3Auc2VydmljZVwiO1xuaW1wb3J0IHsgRHJhZ2dhYmxlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJhZ2dhYmxlLmRpcmVjdGl2ZVwiO1xuXG4vKipcbiAqIEFuIEFuZ3VsYXIgbW9kdWxlIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBlbnRpdGllcyB3aGljaCBwcm92aWRlIERyYWctQW5kLURyb3BcbiAqIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICBpbXBvcnRzOiBbRHJhZ2dhYmxlRGlyZWN0aXZlXSxcbiAgIHByb3ZpZGVyczogW1RyZWVEcmFnQW5kRHJvcFNlcnZpY2VdLFxuICAgZXhwb3J0czogW0RyYWdnYWJsZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgVHJlZURyYWdBbmREcm9wTW9kdWxlIHt9XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2V4dHJhcy9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNEOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjsrR0FBckIscUJBQXFCLFlBSnJCLGtCQUFrQixhQUVsQixrQkFBa0I7K0dBRWxCLHFCQUFxQixhQUhwQixDQUFDLHNCQUFzQixDQUFDOzsyRkFHekIscUJBQXFCO2tCQUxqQyxRQUFRO21CQUFDO29CQUNQLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUM3QixTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJlZURyYWdBbmREcm9wU2VydmljZSB9IGZyb20gXCIuL2RyYWctYW5kLWRyb3Auc2VydmljZVwiO1xuaW1wb3J0IHsgRHJhZ2dhYmxlRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJhZ2dhYmxlLmRpcmVjdGl2ZVwiO1xuXG4vKipcbiAqIEFuIEFuZ3VsYXIgbW9kdWxlIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBlbnRpdGllcyB3aGljaCBwcm92aWRlIERyYWctQW5kLURyb3BcbiAqIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICBpbXBvcnRzOiBbRHJhZ2dhYmxlRGlyZWN0aXZlXSxcbiAgIHByb3ZpZGVyczogW1RyZWVEcmFnQW5kRHJvcFNlcnZpY2VdLFxuICAgZXhwb3J0czogW0RyYWdnYWJsZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgVHJlZURyYWdBbmREcm9wTW9kdWxlIHt9XG4iXX0=
@@ -35,10 +35,10 @@ export class TreeDragAndDropService {
35
35
  state() {
36
36
  return dragState.events();
37
37
  }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeDragAndDropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
39
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeDragAndDropService }); }
38
40
  }
39
- TreeDragAndDropService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeDragAndDropService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
40
- TreeDragAndDropService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeDragAndDropService });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeDragAndDropService, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TreeDragAndDropService, decorators: [{
42
42
  type: Injectable
43
43
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9leHRyYXMvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLHNCQUFzQjtJQUNoQywwQkFBMEI7SUFDbkIsY0FBYztRQUNsQixnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxtQ0FBbUM7UUFJdkMsT0FBTyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLGdCQUFnQixDQUFJLElBQWlCO1FBQ3pDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLO1FBQ1QsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7bUhBdENTLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyZWVOb2RlLCBUcmVlUm9vdCB9IGZyb20gXCIuLi8uLi9jb3JlXCI7XG5pbXBvcnQgeyBkcmFnU3RhdGUsIHR5cGUgRHJhZ1N0YXRlcyB9IGZyb20gXCIuL2RyYWctc3RhdGVcIjtcbmltcG9ydCB7IGRyb3B6b25lUmVuZGVyZXIgfSBmcm9tIFwiLi9kcm9wem9uZS1yZW5kZXJlclwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJlZURyYWdBbmREcm9wU2VydmljZSB7XG4gICAvKiogSGlkZXMgYWxsIERyb3B6b25lcyAqL1xuICAgcHVibGljIGNsZWFyRHJvcHpvbmVzKCk6IHZvaWQge1xuICAgICAgZHJvcHpvbmVSZW5kZXJlci5jbGVhckN1cnJlbnREaXNwbGF5KCk7XG4gICB9XG5cbiAgIC8qKlxuICAgICogQHJldHVybnMgQW4gb2JqZWN0IHRoYXQgaW5kaWNhdGVzIHdoaWNoIGRyb3B6b25lcyBhcmUgY3VycmVudGx5IGJlaW5nIGRpc3BsYXllZC5cbiAgICAqIElmIG5vIGRyb3B6b25lcyBhcmUgYmVpbmcgZGlzcGxheWVkLCB0aGVuIG51bGwgaXMgcmV0dXJuZWQuXG4gICAgKi9cbiAgIHB1YmxpYyBnZXRDdXJyZW50bHlEaXNwbGF5ZWREcm9wem9uZUZhbWlseSgpOiB7XG4gICAgICB0cmVlQnJhbmNoOiBUcmVlTm9kZTxhbnk+O1xuICAgICAgZGlyZWN0aW9uOiBcInVwcGVyXCIgfCBcImxvd2VyXCI7XG4gICB9IHwgbnVsbCB7XG4gICAgICByZXR1cm4gZHJvcHpvbmVSZW5kZXJlci5nZXRDdXJyZW50RGlzcGxheSgpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIENhdXNlcyB0aGUgZHJvcHpvbmUgb2YgdGhlIFRyZWVSb290IHRvIGJlIGRpc3BsYXllZC5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogVGhpcyBpcyBhIHVzZWZ1bCBmdW5jdGlvbiB3aGVuIHlvdSB3YW50IHRvIHNob3cgdGhlIGRyb3B6b25lIG9mIGEgVHJlZVJvb3RcbiAgICAqIHRoYXQgaGFzIG5vIGNoaWxkIGJyYW5jaGVzLlxuICAgICpcbiAgICAqIEBwYXJhbSByb290IC0gVGhlIFRyZWVSb290IHdob3NlIGRyb3B6b25lIHlvdSB3YW50IHRvIHNob3cuXG4gICAgKi9cbiAgIHB1YmxpYyBzaG93Um9vdERyb3B6b25lPFQ+KHJvb3Q6IFRyZWVSb290PFQ+KTogdm9pZCB7XG4gICAgICBkcm9wem9uZVJlbmRlcmVyLnNob3dMb3dlclpvbmVzKHJvb3QpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhIG51bWJlciB3aGVuZXZlciB0aGUgZHJhZyBzdGF0ZSBjaGFuZ2VzLlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBTZWUgdGhlIGBEcmFnU3RhdGVzYCBlbnVtIGZvciBhIGxpc3Qgb2YgcG9zc2libGUgc3RhdGVzLlxuICAgICovXG4gICBwdWJsaWMgc3RhdGUoKTogT2JzZXJ2YWJsZTxEcmFnU3RhdGVzPiB7XG4gICAgICByZXR1cm4gZHJhZ1N0YXRlLmV2ZW50cygpO1xuICAgfVxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9leHRyYXMvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLGNBQWMsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLHNCQUFzQjtJQUNoQywwQkFBMEI7SUFDbkIsY0FBYztRQUNsQixnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxtQ0FBbUM7UUFJdkMsT0FBTyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLGdCQUFnQixDQUFJLElBQWlCO1FBQ3pDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxLQUFLO1FBQ1QsT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0F0Q1Msc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyZWVOb2RlLCBUcmVlUm9vdCB9IGZyb20gXCIuLi8uLi9jb3JlXCI7XG5pbXBvcnQgeyBkcmFnU3RhdGUsIHR5cGUgRHJhZ1N0YXRlcyB9IGZyb20gXCIuL2RyYWctc3RhdGVcIjtcbmltcG9ydCB7IGRyb3B6b25lUmVuZGVyZXIgfSBmcm9tIFwiLi9kcm9wem9uZS1yZW5kZXJlclwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJlZURyYWdBbmREcm9wU2VydmljZSB7XG4gICAvKiogSGlkZXMgYWxsIERyb3B6b25lcyAqL1xuICAgcHVibGljIGNsZWFyRHJvcHpvbmVzKCk6IHZvaWQge1xuICAgICAgZHJvcHpvbmVSZW5kZXJlci5jbGVhckN1cnJlbnREaXNwbGF5KCk7XG4gICB9XG5cbiAgIC8qKlxuICAgICogQHJldHVybnMgQW4gb2JqZWN0IHRoYXQgaW5kaWNhdGVzIHdoaWNoIGRyb3B6b25lcyBhcmUgY3VycmVudGx5IGJlaW5nIGRpc3BsYXllZC5cbiAgICAqIElmIG5vIGRyb3B6b25lcyBhcmUgYmVpbmcgZGlzcGxheWVkLCB0aGVuIG51bGwgaXMgcmV0dXJuZWQuXG4gICAgKi9cbiAgIHB1YmxpYyBnZXRDdXJyZW50bHlEaXNwbGF5ZWREcm9wem9uZUZhbWlseSgpOiB7XG4gICAgICB0cmVlQnJhbmNoOiBUcmVlTm9kZTxhbnk+O1xuICAgICAgZGlyZWN0aW9uOiBcInVwcGVyXCIgfCBcImxvd2VyXCI7XG4gICB9IHwgbnVsbCB7XG4gICAgICByZXR1cm4gZHJvcHpvbmVSZW5kZXJlci5nZXRDdXJyZW50RGlzcGxheSgpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIENhdXNlcyB0aGUgZHJvcHpvbmUgb2YgdGhlIFRyZWVSb290IHRvIGJlIGRpc3BsYXllZC5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogVGhpcyBpcyBhIHVzZWZ1bCBmdW5jdGlvbiB3aGVuIHlvdSB3YW50IHRvIHNob3cgdGhlIGRyb3B6b25lIG9mIGEgVHJlZVJvb3RcbiAgICAqIHRoYXQgaGFzIG5vIGNoaWxkIGJyYW5jaGVzLlxuICAgICpcbiAgICAqIEBwYXJhbSByb290IC0gVGhlIFRyZWVSb290IHdob3NlIGRyb3B6b25lIHlvdSB3YW50IHRvIHNob3cuXG4gICAgKi9cbiAgIHB1YmxpYyBzaG93Um9vdERyb3B6b25lPFQ+KHJvb3Q6IFRyZWVSb290PFQ+KTogdm9pZCB7XG4gICAgICBkcm9wem9uZVJlbmRlcmVyLnNob3dMb3dlclpvbmVzKHJvb3QpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhIG51bWJlciB3aGVuZXZlciB0aGUgZHJhZyBzdGF0ZSBjaGFuZ2VzLlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBTZWUgdGhlIGBEcmFnU3RhdGVzYCBlbnVtIGZvciBhIGxpc3Qgb2YgcG9zc2libGUgc3RhdGVzLlxuICAgICovXG4gICBwdWJsaWMgc3RhdGUoKTogT2JzZXJ2YWJsZTxEcmFnU3RhdGVzPiB7XG4gICAgICByZXR1cm4gZHJhZ1N0YXRlLmV2ZW50cygpO1xuICAgfVxufVxuIl19
@@ -12,19 +12,19 @@ export class DraggableDirective {
12
12
  return;
13
13
  dragAndDrop.dragStart(this.limbleTreeDraggable, event);
14
14
  }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DraggableDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.0", type: DraggableDirective, isStandalone: true, selector: "[limbleTreeDraggable]", inputs: { limbleTreeDraggable: "limbleTreeDraggable" }, host: { listeners: { "dragstart": "onDragstart($event)" } }, ngImport: i0 }); }
15
17
  }
16
- DraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraggableDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
17
- DraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DraggableDirective, isStandalone: true, selector: "[limbleTreeDraggable]", inputs: { limbleTreeDraggable: "limbleTreeDraggable" }, host: { listeners: { "dragstart": "onDragstart($event)" } }, ngImport: i0 });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DraggableDirective, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: DraggableDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: "[limbleTreeDraggable]",
22
22
  standalone: true
23
23
  }]
24
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { limbleTreeDraggable: [{
24
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { limbleTreeDraggable: [{
25
25
  type: Input
26
26
  }], onDragstart: [{
27
27
  type: HostListener,
28
28
  args: ["dragstart", ["$event"]]
29
29
  }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZXh0cmFzL2RyYWctYW5kLWRyb3AvZHJhZ2dhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUU5QyxxRUFBcUU7QUFLckUsTUFBTSxPQUFPLGtCQUFrQjtJQUc1QixZQUNHLFFBQW1CLEVBQ25CLFdBQW9DO1FBRXBDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRTZDLFdBQVcsQ0FDdEQsS0FBZ0I7UUFFaEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEtBQUssU0FBUztZQUFFLE9BQU87UUFDbkQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7K0dBaEJTLGtCQUFrQjttR0FBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1IsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7aUJBQ2xCO3lIQUVXLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFVd0MsV0FBVztzQkFBeEQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgRGlyZWN0aXZlLFxuICAgRWxlbWVudFJlZixcbiAgIEhvc3RMaXN0ZW5lcixcbiAgIElucHV0LFxuICAgUmVuZGVyZXIyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IFRyZWVCcmFuY2ggfSBmcm9tIFwiLi4vLi4vY29yZVwiO1xuaW1wb3J0IHsgZHJhZ0FuZERyb3AgfSBmcm9tIFwiLi9kcmFnLWFuZC1kcm9wXCI7XG5cbi8qKiBNYWtlcyBhbiBUcmVlQnJhbmNoIGRyYWdnYWJsZSB3aGVuIHRoZSBob3N0IGVsZW1lbnQgaXMgZHJhZ2dlZCAqL1xuQERpcmVjdGl2ZSh7XG4gICBzZWxlY3RvcjogXCJbbGltYmxlVHJlZURyYWdnYWJsZV1cIixcbiAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ2dhYmxlRGlyZWN0aXZlIHtcbiAgIEBJbnB1dCgpIGxpbWJsZVRyZWVEcmFnZ2FibGU/OiBUcmVlQnJhbmNoPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICBob3N0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICkge1xuICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIFwiZHJhZ2dhYmxlXCIsIFwidHJ1ZVwiKTtcbiAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIFwiY3Vyc29yXCIsIFwiZ3JhYlwiKTtcbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcImRyYWdzdGFydFwiLCBbXCIkZXZlbnRcIl0pIHB1YmxpYyBvbkRyYWdzdGFydChcbiAgICAgIGV2ZW50OiBEcmFnRXZlbnRcbiAgICk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMubGltYmxlVHJlZURyYWdnYWJsZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICBkcmFnQW5kRHJvcC5kcmFnU3RhcnQodGhpcy5saW1ibGVUcmVlRHJhZ2dhYmxlLCBldmVudCk7XG4gICB9XG59XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZXh0cmFzL2RyYWctYW5kLWRyb3AvZHJhZ2dhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUU5QyxxRUFBcUU7QUFLckUsTUFBTSxPQUFPLGtCQUFrQjtJQUc1QixZQUNHLFFBQW1CLEVBQ25CLFdBQW9DO1FBRXBDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRTZDLFdBQVcsQ0FDdEQsS0FBZ0I7UUFFaEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEtBQUssU0FBUztZQUFFLE9BQU87UUFDbkQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs4R0FoQlMsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1IsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7aUJBQ2xCO3VHQUVXLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFVd0MsV0FBVztzQkFBeEQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgRGlyZWN0aXZlLFxuICAgRWxlbWVudFJlZixcbiAgIEhvc3RMaXN0ZW5lcixcbiAgIElucHV0LFxuICAgUmVuZGVyZXIyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IFRyZWVCcmFuY2ggfSBmcm9tIFwiLi4vLi4vY29yZVwiO1xuaW1wb3J0IHsgZHJhZ0FuZERyb3AgfSBmcm9tIFwiLi9kcmFnLWFuZC1kcm9wXCI7XG5cbi8qKiBNYWtlcyBhbiBUcmVlQnJhbmNoIGRyYWdnYWJsZSB3aGVuIHRoZSBob3N0IGVsZW1lbnQgaXMgZHJhZ2dlZCAqL1xuQERpcmVjdGl2ZSh7XG4gICBzZWxlY3RvcjogXCJbbGltYmxlVHJlZURyYWdnYWJsZV1cIixcbiAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ2dhYmxlRGlyZWN0aXZlIHtcbiAgIEBJbnB1dCgpIGxpbWJsZVRyZWVEcmFnZ2FibGU/OiBUcmVlQnJhbmNoPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICBob3N0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICkge1xuICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIFwiZHJhZ2dhYmxlXCIsIFwidHJ1ZVwiKTtcbiAgICAgIHJlbmRlcmVyLnNldFN0eWxlKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIFwiY3Vyc29yXCIsIFwiZ3JhYlwiKTtcbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcImRyYWdzdGFydFwiLCBbXCIkZXZlbnRcIl0pIHB1YmxpYyBvbkRyYWdzdGFydChcbiAgICAgIGV2ZW50OiBEcmFnRXZlbnRcbiAgICk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMubGltYmxlVHJlZURyYWdnYWJsZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICBkcmFnQW5kRHJvcC5kcmFnU3RhcnQodGhpcy5saW1ibGVUcmVlRHJhZ2dhYmxlLCBldmVudCk7XG4gICB9XG59XG4iXX0=