@limble/limble-tree 0.13.0 → 1.0.0-alpha.2

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 (163) hide show
  1. package/README.md +418 -96
  2. package/esm2020/lib/components/branch/branch.component.mjs +79 -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 +36 -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/branch-controller.mjs +99 -0
  13. package/esm2020/lib/core/tree-branch/tree-branch.mjs +224 -0
  14. package/esm2020/lib/core/tree-node-base.mjs +69 -0
  15. package/esm2020/lib/core/tree-root/root-controller.mjs +42 -0
  16. package/esm2020/lib/core/tree-root/tree-root.mjs +85 -0
  17. package/esm2020/lib/core/tree-service/tree.service.mjs +19 -0
  18. package/esm2020/lib/errors/index.mjs +2 -0
  19. package/esm2020/lib/errors/tree-error.mjs +3 -0
  20. package/esm2020/lib/events/drag/drag-end-event.mjs +28 -0
  21. package/esm2020/lib/events/drag/drag-start-event.mjs +12 -0
  22. package/esm2020/lib/events/drag/drop-event.mjs +20 -0
  23. package/esm2020/lib/events/drag/index.mjs +4 -0
  24. package/esm2020/lib/events/general/destruction-event.mjs +12 -0
  25. package/esm2020/lib/events/general/index.mjs +2 -0
  26. package/esm2020/lib/events/index.mjs +4 -0
  27. package/esm2020/lib/events/relational/graft-event.mjs +24 -0
  28. package/esm2020/lib/events/relational/index.mjs +4 -0
  29. package/esm2020/lib/events/relational/prune-event.mjs +24 -0
  30. package/esm2020/lib/events/relational/relational-tree-event.interface.mjs +2 -0
  31. package/esm2020/lib/extras/collapse/collapse.mjs +33 -0
  32. package/esm2020/lib/extras/collapse/collapse.module.mjs +15 -0
  33. package/esm2020/lib/extras/collapse/collapse.service.mjs +20 -0
  34. package/esm2020/lib/extras/collapse/index.mjs +3 -0
  35. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.mjs +85 -0
  36. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.module.mjs +19 -0
  37. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.service.mjs +28 -0
  38. package/esm2020/lib/extras/drag-and-drop/drag-state.mjs +47 -0
  39. package/esm2020/lib/extras/drag-and-drop/draggable.directive.mjs +30 -0
  40. package/esm2020/lib/extras/drag-and-drop/dragover-no-change-detect.mjs +40 -0
  41. package/esm2020/lib/extras/drag-and-drop/dropzone-renderer.mjs +178 -0
  42. package/esm2020/lib/extras/drag-and-drop/index.mjs +5 -0
  43. package/esm2020/lib/legacy/index.mjs +7 -0
  44. package/esm2020/lib/legacy/legacy-component-obj.interface.mjs +2 -0
  45. package/esm2020/lib/legacy/legacy-tree-data.interface.mjs +2 -0
  46. package/esm2020/lib/legacy/legacy-tree-options.interface.mjs +2 -0
  47. package/esm2020/lib/legacy/legacy-tree.mjs +73 -0
  48. package/esm2020/lib/legacy/limble-tree-legacy.module.mjs +20 -0
  49. package/esm2020/lib/legacy/limble-tree-root/limble-tree-root.component.mjs +78 -0
  50. package/esm2020/lib/limble-tree.module.mjs +21 -47
  51. package/esm2020/lib/structure/branchable.interface.mjs +2 -0
  52. package/esm2020/lib/structure/component-container.interface.mjs +2 -0
  53. package/esm2020/lib/structure/event-conduit.interface.mjs +2 -0
  54. package/esm2020/lib/structure/graftable.interface.mjs +2 -0
  55. package/esm2020/lib/structure/index.mjs +10 -0
  56. package/esm2020/lib/structure/tree-branch-node.interface.mjs +2 -0
  57. package/esm2020/lib/structure/tree-event.interface.mjs +2 -0
  58. package/esm2020/lib/structure/tree-node.interface.mjs +2 -0
  59. package/esm2020/lib/structure/tree-plot.mjs +2 -0
  60. package/esm2020/lib/structure/tree-relationship.interface.mjs +2 -0
  61. package/esm2020/limble-limble-tree.mjs +4 -4
  62. package/esm2020/public-api.mjs +12 -6
  63. package/esm2020/shared/assert.mjs +7 -0
  64. package/fesm2015/limble-limble-tree.mjs +1404 -2226
  65. package/fesm2015/limble-limble-tree.mjs.map +1 -1
  66. package/fesm2020/limble-limble-tree.mjs +1396 -2132
  67. package/fesm2020/limble-limble-tree.mjs.map +1 -1
  68. package/index.d.ts +5 -5
  69. package/lib/components/branch/branch.component.d.ts +26 -0
  70. package/lib/components/dropzone/dropzone.component.d.ts +13 -0
  71. package/lib/components/host-component.interface.d.ts +6 -0
  72. package/lib/components/node-component.interface.d.ts +5 -0
  73. package/lib/components/root/root.component.d.ts +14 -0
  74. package/lib/core/branch-options.interface.d.ts +14 -0
  75. package/lib/core/configuration/configuration.d.ts +11 -0
  76. package/lib/core/configuration/tree-options.interface.d.ts +32 -0
  77. package/lib/core/index.d.ts +5 -0
  78. package/lib/core/relationship.interface.d.ts +5 -0
  79. package/lib/core/tree-branch/branch-controller.d.ts +25 -0
  80. package/lib/core/tree-branch/tree-branch.d.ts +44 -0
  81. package/lib/core/tree-node-base.d.ts +25 -0
  82. package/lib/core/tree-root/root-controller.d.ts +19 -0
  83. package/lib/core/tree-root/tree-root.d.ts +30 -0
  84. package/lib/core/tree-service/tree.service.d.ts +9 -0
  85. package/lib/errors/index.d.ts +1 -0
  86. package/lib/errors/tree-error.d.ts +2 -0
  87. package/lib/events/drag/drag-end-event.d.ts +24 -0
  88. package/lib/events/drag/drag-start-event.d.ts +8 -0
  89. package/lib/events/drag/drop-event.d.ts +13 -0
  90. package/lib/events/drag/index.d.ts +3 -0
  91. package/lib/events/general/destruction-event.d.ts +8 -0
  92. package/lib/events/general/index.d.ts +1 -0
  93. package/lib/events/index.d.ts +3 -0
  94. package/lib/events/relational/graft-event.d.ts +15 -0
  95. package/lib/events/relational/index.d.ts +3 -0
  96. package/lib/events/relational/prune-event.d.ts +15 -0
  97. package/lib/events/relational/relational-tree-event.interface.d.ts +6 -0
  98. package/lib/extras/collapse/collapse.d.ts +11 -0
  99. package/lib/extras/collapse/collapse.module.d.ts +6 -0
  100. package/lib/extras/collapse/collapse.service.d.ts +9 -0
  101. package/lib/extras/collapse/index.d.ts +2 -0
  102. package/lib/extras/drag-and-drop/drag-and-drop.d.ts +16 -0
  103. package/lib/extras/drag-and-drop/drag-and-drop.module.d.ts +8 -0
  104. package/lib/extras/drag-and-drop/drag-and-drop.service.d.ts +16 -0
  105. package/lib/extras/drag-and-drop/drag-state.d.ts +23 -0
  106. package/lib/extras/drag-and-drop/draggable.directive.d.ts +12 -0
  107. package/lib/{custom-event-bindings/dragover-no-change-detect.directive.d.ts → extras/drag-and-drop/dragover-no-change-detect.d.ts} +14 -14
  108. package/lib/extras/drag-and-drop/dropzone-renderer.d.ts +28 -0
  109. package/lib/extras/drag-and-drop/index.d.ts +4 -0
  110. package/lib/legacy/index.d.ts +6 -0
  111. package/lib/legacy/legacy-component-obj.interface.d.ts +13 -0
  112. package/lib/legacy/legacy-tree-data.interface.d.ts +18 -0
  113. package/lib/legacy/legacy-tree-options.interface.d.ts +34 -0
  114. package/lib/legacy/legacy-tree.d.ts +14 -0
  115. package/lib/legacy/limble-tree-legacy.module.d.ts +8 -0
  116. package/lib/legacy/limble-tree-root/limble-tree-root.component.d.ts +28 -0
  117. package/lib/limble-tree.module.d.ts +9 -14
  118. package/lib/structure/branchable.interface.d.ts +4 -0
  119. package/lib/structure/component-container.interface.d.ts +8 -0
  120. package/lib/structure/event-conduit.interface.d.ts +6 -0
  121. package/lib/structure/graftable.interface.d.ts +6 -0
  122. package/lib/structure/index.d.ts +9 -0
  123. package/lib/structure/tree-branch-node.interface.d.ts +5 -0
  124. package/lib/structure/tree-event.interface.d.ts +5 -0
  125. package/lib/structure/tree-node.interface.d.ts +11 -0
  126. package/lib/structure/tree-plot.d.ts +1 -0
  127. package/lib/structure/tree-relationship.interface.d.ts +7 -0
  128. package/package.json +6 -14
  129. package/public-api.d.ts +8 -3
  130. package/shared/assert.d.ts +1 -0
  131. package/esm2020/lib/classes/Branch.mjs +0 -153
  132. package/esm2020/lib/classes/DropZone.mjs +0 -71
  133. package/esm2020/lib/classes/DropZoneLocation.mjs +0 -16
  134. package/esm2020/lib/custom-event-bindings/dragleave-no-change-detect.directive.mjs +0 -33
  135. package/esm2020/lib/custom-event-bindings/dragover-no-change-detect.directive.mjs +0 -39
  136. package/esm2020/lib/drop-zone/drop-zone.component.mjs +0 -75
  137. package/esm2020/lib/limble-tree-branch/limble-tree-branch.component.mjs +0 -110
  138. package/esm2020/lib/limble-tree-node/limble-tree-node.component.mjs +0 -467
  139. package/esm2020/lib/limble-tree-placeholder/limble-tree-placeholder.component.mjs +0 -70
  140. package/esm2020/lib/limble-tree-root/drop-zone.service.mjs +0 -376
  141. package/esm2020/lib/limble-tree-root/limble-tree-root.component.mjs +0 -172
  142. package/esm2020/lib/limble-tree-root/tree-construction-status.service.mjs +0 -33
  143. package/esm2020/lib/limble-tree-root/tree.service.mjs +0 -297
  144. package/esm2020/lib/singletons/component-creator.service.mjs +0 -19
  145. package/esm2020/lib/singletons/drag-state.service.mjs +0 -63
  146. package/esm2020/lib/singletons/global-events.service.mjs +0 -136
  147. package/esm2020/lib/util.mjs +0 -74
  148. package/lib/classes/Branch.d.ts +0 -26
  149. package/lib/classes/DropZone.d.ts +0 -27
  150. package/lib/classes/DropZoneLocation.d.ts +0 -9
  151. package/lib/custom-event-bindings/dragleave-no-change-detect.directive.d.ts +0 -13
  152. package/lib/drop-zone/drop-zone.component.d.ts +0 -18
  153. package/lib/limble-tree-branch/limble-tree-branch.component.d.ts +0 -28
  154. package/lib/limble-tree-node/limble-tree-node.component.d.ts +0 -53
  155. package/lib/limble-tree-placeholder/limble-tree-placeholder.component.d.ts +0 -21
  156. package/lib/limble-tree-root/drop-zone.service.d.ts +0 -62
  157. package/lib/limble-tree-root/limble-tree-root.component.d.ts +0 -37
  158. package/lib/limble-tree-root/tree-construction-status.service.d.ts +0 -15
  159. package/lib/limble-tree-root/tree.service.d.ts +0 -132
  160. package/lib/singletons/component-creator.service.d.ts +0 -9
  161. package/lib/singletons/drag-state.service.d.ts +0 -35
  162. package/lib/singletons/global-events.service.d.ts +0 -13
  163. package/lib/util.d.ts +0 -13
@@ -0,0 +1,6 @@
1
+ export * from "./legacy-component-obj.interface";
2
+ export * from "./legacy-tree-data.interface";
3
+ export * from "./legacy-tree-options.interface";
4
+ export * from "./legacy-tree";
5
+ export * from "./limble-tree-root/limble-tree-root.component";
6
+ export * from "./limble-tree-legacy.module";
@@ -0,0 +1,13 @@
1
+ import { Type } from "@angular/core";
2
+ /**
3
+ * An object that references the component to be rendered and its bindings
4
+ * @deprecated
5
+ */
6
+ export interface ComponentObj {
7
+ /** The component class */
8
+ class: Type<unknown>;
9
+ /** The bindings (inputs and outputs) of the class */
10
+ bindings?: {
11
+ [index: string]: unknown;
12
+ };
13
+ }
@@ -0,0 +1,18 @@
1
+ import { ComponentObj } from "./legacy-component-obj.interface";
2
+ /**
3
+ * An object describing a node of the tree
4
+ * @deprecated
5
+ */
6
+ export interface LimbleTreeNode {
7
+ /** A list of nodes to be rendered "under" this one, one level deeper in the tree. */
8
+ nodes?: LimbleTreeData;
9
+ /** An object that describes the component which will represent this node in the visual tree */
10
+ component?: ComponentObj;
11
+ collapsed?: boolean;
12
+ [index: string]: unknown;
13
+ }
14
+ /**
15
+ * An object that the limble-tree-root component uses to build the tree
16
+ * @deprecated
17
+ */
18
+ export declare type LimbleTreeData = Array<LimbleTreeNode>;
@@ -0,0 +1,34 @@
1
+ import { TreeBranch, TreeRoot } from "../core";
2
+ import { ComponentObj } from "./legacy-component-obj.interface";
3
+ /**
4
+ * A group of settings for changing the functionality of the tree
5
+ * @deprecated
6
+ */
7
+ export interface LimbleTreeOptions {
8
+ /** The component object to use if one is not specified for a particular node */
9
+ defaultComponent?: ComponentObj;
10
+ /** The number of pixels to indent each level of the tree. Defaults to 45 */
11
+ indent?: number;
12
+ /**
13
+ * Whether to allow "nesting" (placing a node one level deeper than currently exists on the branch).
14
+ * When this is a boolean, it applies to all nodes. When this is a function, the node in question
15
+ * is passed in. Defaults to true.
16
+ */
17
+ allowNesting?: boolean | (<T>(treeBranch: TreeBranch<T>) => boolean);
18
+ /**
19
+ * Whether to allow a node to be dragged. When this is a boolean, it applies to all nodes. When this
20
+ * is a function, the node in question is passed in. Defaults to true.
21
+ */
22
+ allowDragging?: boolean | (<T>(treeBranch: TreeBranch<T>) => boolean);
23
+ /** A callback to determine whether a sourceNode can be dropped at a particular location. */
24
+ allowDrop?: <T>(sourceNode: TreeBranch<T>, proposedParent: TreeBranch<T> | TreeRoot<T>, proposedIndex: number) => boolean;
25
+ /**
26
+ * When set to true, list mode will enforce a flat tree structure, meaning there
27
+ * can only be one level of the tree. `allowNesting` is automatically set to `false`.
28
+ *
29
+ * This mode can be used when the same dynamic drag and drop functionality of
30
+ * the tree is desired, but the tree structure itself is not necessary. This
31
+ * also opens up the pagination API on the limble-tree-root component.
32
+ */
33
+ listMode?: boolean;
34
+ }
@@ -0,0 +1,14 @@
1
+ import { ViewContainerRef } from "@angular/core";
2
+ import { TreeRoot, TreeOptions } from "../core";
3
+ import { LimbleTreeOptions as LegacyLimbleTreeOptions } from "./legacy-tree-options.interface";
4
+ import { LimbleTreeData } from "./legacy-tree-data.interface";
5
+ /**
6
+ * A shim to help with the transition from v0 to v1.
7
+ * @deprecated
8
+ */
9
+ export declare class LegacyTree {
10
+ /** Creates a v1 tree structure from a v0 data array and v0 tree options. */
11
+ createTreeFromLegacyArray<Component>(container: ViewContainerRef, data: LimbleTreeData, treeOptions?: LegacyLimbleTreeOptions): TreeRoot<Component>;
12
+ upgradeOptions(legacyOptions: LegacyLimbleTreeOptions): TreeOptions;
13
+ private renderTreeNode;
14
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./limble-tree-root/limble-tree-root.component";
3
+ /** @deprecated */
4
+ export declare class LimbleTreeLegacyModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeLegacyModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LimbleTreeLegacyModule, never, [typeof i1.LimbleTreeRootComponent], [typeof i1.LimbleTreeRootComponent]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<LimbleTreeLegacyModule>;
8
+ }
@@ -0,0 +1,28 @@
1
+ import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, ViewContainerRef } from "@angular/core";
2
+ import { LimbleTreeData } from "../legacy-tree-data.interface";
3
+ import { LimbleTreeOptions } from "../legacy-tree-options.interface";
4
+ import { TreeRoot } from "../../core";
5
+ import { DragEndEvent } from "../../events";
6
+ import * as i0 from "@angular/core";
7
+ /** @deprecated */
8
+ export declare class LimbleTreeRootComponent implements AfterViewInit, OnChanges, OnDestroy {
9
+ data?: LimbleTreeData;
10
+ options?: LimbleTreeOptions | undefined;
11
+ itemsPerPage: number;
12
+ page: number;
13
+ host?: ViewContainerRef;
14
+ readonly treeChange: EventEmitter<TreeRoot<any>>;
15
+ readonly treeDrop: EventEmitter<DragEndEvent<any>>;
16
+ private dropSubscription?;
17
+ private readonly legacyTree;
18
+ private root?;
19
+ constructor();
20
+ ngAfterViewInit(): void;
21
+ ngOnChanges(): void;
22
+ ngOnDestroy(): void;
23
+ getRoot(): TreeRoot<any> | undefined;
24
+ update(): void;
25
+ private paginatedData;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeRootComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<LimbleTreeRootComponent, "limble-tree-root", never, { "data": "data"; "options": "options"; "itemsPerPage": "itemsPerPage"; "page": "page"; }, { "treeChange": "treeChange"; "treeDrop": "treeDrop"; }, never, never, true>;
28
+ }
@@ -1,14 +1,9 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./limble-tree-branch/limble-tree-branch.component";
3
- import * as i2 from "./drop-zone/drop-zone.component";
4
- import * as i3 from "./limble-tree-node/limble-tree-node.component";
5
- import * as i4 from "./limble-tree-root/limble-tree-root.component";
6
- import * as i5 from "./limble-tree-placeholder/limble-tree-placeholder.component";
7
- import * as i6 from "./custom-event-bindings/dragover-no-change-detect.directive";
8
- import * as i7 from "./custom-event-bindings/dragleave-no-change-detect.directive";
9
- import * as i8 from "@angular/common";
10
- export declare class LimbleTreeModule {
11
- static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<LimbleTreeModule, [typeof i1.LimbleTreeBranchComponent, typeof i2.DropZoneComponent, typeof i3.LimbleTreeNodeComponent, typeof i4.LimbleTreeRootComponent, typeof i5.LimbleTreePlaceholderComponent, typeof i6.DragoverNoChangeDetectDirective, typeof i7.DragleaveNoChangeDetectDirective], [typeof i8.CommonModule], [typeof i4.LimbleTreeRootComponent]>;
13
- static ɵinj: i0.ɵɵInjectorDeclaration<LimbleTreeModule>;
14
- }
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./legacy/limble-tree-legacy.module";
3
+ import * as i2 from "./extras/collapse/collapse.module";
4
+ import * as i3 from "./extras/drag-and-drop/drag-and-drop.module";
5
+ export declare class LimbleTreeModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LimbleTreeModule, never, [typeof i1.LimbleTreeLegacyModule, typeof i2.TreeCollapseModule, typeof i3.TreeDragAndDropModule], [typeof i1.LimbleTreeLegacyModule, typeof i2.TreeCollapseModule, typeof i3.TreeDragAndDropModule]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<LimbleTreeModule>;
9
+ }
@@ -0,0 +1,4 @@
1
+ export interface Branchable<Child> {
2
+ branches: () => Array<Child>;
3
+ getBranch: (index: number) => Child | undefined;
4
+ }
@@ -0,0 +1,8 @@
1
+ import { ViewContainerRef, ViewRef } from "@angular/core";
2
+ export interface ComponentContainer<Component> {
3
+ detectChanges: () => void;
4
+ getBranchesContainer: () => ViewContainerRef | undefined;
5
+ getComponentInstance: () => Component;
6
+ getHostView: () => ViewRef;
7
+ getNativeElement: () => HTMLElement;
8
+ }
@@ -0,0 +1,6 @@
1
+ import { Observable } from "rxjs";
2
+ import { TreeEvent } from "./tree-event.interface";
3
+ export interface EventConduit {
4
+ dispatch: (event: TreeEvent) => void;
5
+ events: () => Observable<TreeEvent>;
6
+ }
@@ -0,0 +1,6 @@
1
+ export interface Graftable<Parent> {
2
+ graftTo: (newParent: Parent, index?: number) => number;
3
+ index: () => number | undefined;
4
+ parent: () => Parent | undefined;
5
+ prune: () => void;
6
+ }
@@ -0,0 +1,9 @@
1
+ export * from "./branchable.interface";
2
+ export * from "./component-container.interface";
3
+ export * from "./event-conduit.interface";
4
+ export * from "./graftable.interface";
5
+ export * from "./tree-branch-node.interface";
6
+ export * from "./tree-event.interface";
7
+ export * from "./tree-node.interface";
8
+ export * from "./tree-plot";
9
+ export * from "./tree-relationship.interface";
@@ -0,0 +1,5 @@
1
+ import { Graftable } from "./graftable.interface";
2
+ import { TreeNode } from "./tree-node.interface";
3
+ export declare type TreeBranchNode<Contents, Children, ParentContents> = TreeNode<Children, Contents> & Graftable<TreeNode<Children, ParentContents>> & {
4
+ position: () => Array<number>;
5
+ };
@@ -0,0 +1,5 @@
1
+ import { EventConduit } from "./event-conduit.interface";
2
+ export interface TreeEvent {
3
+ type: () => string;
4
+ source: () => EventConduit;
5
+ }
@@ -0,0 +1,11 @@
1
+ import { Branchable } from "./branchable.interface";
2
+ import { EventConduit } from "./event-conduit.interface";
3
+ import { TreePlot } from "./tree-plot";
4
+ import { TreeRoot } from "../core";
5
+ import { ComponentContainer } from "./component-container.interface";
6
+ export interface TreeNode<Children, Component> extends EventConduit, Branchable<Children>, ComponentContainer<Component> {
7
+ plot: () => TreePlot;
8
+ traverse: (callback: (node: Branchable<Children>) => void) => void;
9
+ root: () => TreeRoot<any> | undefined;
10
+ isDestroyed: () => boolean;
11
+ }
@@ -0,0 +1 @@
1
+ export declare type TreePlot = Map<number, TreePlot>;
@@ -0,0 +1,7 @@
1
+ import { Branchable } from "./branchable.interface";
2
+ import { Graftable } from "./graftable.interface";
3
+ export interface TreeRelationship<Parent extends Branchable<Child>, Child extends Graftable<Parent>> {
4
+ parent: Parent;
5
+ child: Child;
6
+ index: number;
7
+ }
package/package.json CHANGED
@@ -1,19 +1,14 @@
1
1
  {
2
2
  "name": "@limble/limble-tree",
3
- "version": "0.13.0",
3
+ "version": "1.0.0-alpha.2",
4
4
  "peerDependencies": {
5
- "@angular/common": "^14.0.0",
6
- "@angular/core": "^14.0.0"
5
+ "@angular/common": "^14.2.0",
6
+ "@angular/core": "^14.2.0",
7
+ "rxjs": "^7.0.0"
7
8
  },
8
9
  "dependencies": {
9
- "tslib": "^2.0.0",
10
- "rxjs": "^6.6.7"
10
+ "tslib": "^2.3.0"
11
11
  },
12
- "repository": {
13
- "type": "git",
14
- "url": "https://github.com/LimbleCMMS/limble-tree.git"
15
- },
16
- "license": "MIT",
17
12
  "module": "fesm2015/limble-limble-tree.mjs",
18
13
  "es2020": "fesm2020/limble-limble-tree.mjs",
19
14
  "esm2020": "esm2020/limble-limble-tree.mjs",
@@ -33,8 +28,5 @@
33
28
  "default": "./fesm2020/limble-limble-tree.mjs"
34
29
  }
35
30
  },
36
- "sideEffects": false,
37
- "scripts": {
38
- "prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by Ivy in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with Ivy partial compilation mode, before attempting to publish.\\n')\" && exit 1"
39
- }
31
+ "sideEffects": false
40
32
  }
package/public-api.d.ts CHANGED
@@ -1,3 +1,8 @@
1
- export { LimbleTreeNode, LimbleTreeData, LimbleTreeOptions, ComponentObj, TreeDrop } from "./lib/limble-tree-root/tree.service";
2
- export { LimbleTreeRootComponent } from "./lib/limble-tree-root/limble-tree-root.component";
3
- export { LimbleTreeModule } from "./lib/limble-tree.module";
1
+ export * from "./lib/limble-tree.module";
2
+ export * from "./lib/core";
3
+ export * from "./lib/errors";
4
+ export * from "./lib/events";
5
+ export * from "./lib/structure";
6
+ export * from "./lib/extras/collapse";
7
+ export * from "./lib/extras/drag-and-drop";
8
+ export * from "./lib/legacy";
@@ -0,0 +1 @@
1
+ export declare function assert(condition: unknown): asserts condition;
@@ -1,153 +0,0 @@
1
- export class Branch {
2
- constructor(data) {
3
- this.data = data;
4
- this.children = [];
5
- this.parent = null;
6
- }
7
- isRoot() {
8
- return this.parent === null;
9
- }
10
- getParent() {
11
- return this.parent;
12
- }
13
- setParent(parent) {
14
- this.parent = parent;
15
- }
16
- findByCoordinates(relativeCoordinates) {
17
- let cursor = this;
18
- for (const index of relativeCoordinates.values()) {
19
- cursor = cursor.getChild(index);
20
- if (cursor === undefined) {
21
- return undefined;
22
- }
23
- }
24
- return cursor;
25
- }
26
- getCoordinates() {
27
- const coordinates = [];
28
- let cursor = this;
29
- while (cursor.parent !== null) {
30
- const cursorIndex = cursor.getIndex();
31
- if (cursorIndex === undefined || cursorIndex === null) {
32
- throw new Error("Could not get cursor index");
33
- }
34
- coordinates.unshift(cursorIndex);
35
- cursor = cursor.parent;
36
- }
37
- return coordinates;
38
- }
39
- getChild(index) {
40
- return this.children[index];
41
- }
42
- getChildren() {
43
- return this.children;
44
- }
45
- clearChildren() {
46
- for (const child of this.children) {
47
- child.setParent(null);
48
- }
49
- this.children.length = 0;
50
- }
51
- getIndex() {
52
- if (this.parent === null) {
53
- return null;
54
- }
55
- const index = this.parent.children.findIndex((branch) => branch === this);
56
- if (index === -1) {
57
- return undefined;
58
- }
59
- return index;
60
- }
61
- getDescendant(relativeCoordinates) {
62
- let cursor = this;
63
- for (const index of relativeCoordinates) {
64
- cursor = cursor.children[index];
65
- if (cursor === undefined) {
66
- return undefined;
67
- }
68
- }
69
- return cursor;
70
- }
71
- findDescendant(predicate) {
72
- if (predicate(this.data) === true) {
73
- return this;
74
- }
75
- if (this.children.length > 0) {
76
- for (const child of this.children) {
77
- const foundDeeper = child.findDescendant(predicate);
78
- if (foundDeeper !== undefined) {
79
- return foundDeeper;
80
- }
81
- }
82
- }
83
- return undefined;
84
- }
85
- getAncestors() {
86
- const result = [];
87
- let cursor = this;
88
- while (cursor.parent !== null) {
89
- result.push(cursor.parent);
90
- cursor = cursor.parent;
91
- }
92
- return result;
93
- }
94
- appendChild(child) {
95
- if (child.getParent() !== null) {
96
- child.remove();
97
- }
98
- child.setParent(this);
99
- this.children.push(child);
100
- return child;
101
- }
102
- insertChild(child, index) {
103
- const isOwnChild = this.children.indexOf(child);
104
- if (isOwnChild === -1) {
105
- if (child.getParent() !== null) {
106
- child.remove();
107
- }
108
- child.setParent(this);
109
- this.children.splice(index, 0, child);
110
- }
111
- else {
112
- if (index > isOwnChild) {
113
- //Insert first, then remove
114
- this.children.splice(index, 0, child);
115
- this.removeChild(isOwnChild);
116
- child.setParent(this);
117
- }
118
- else {
119
- //remove first, then insert
120
- child.remove();
121
- this.children.splice(index, 0, child);
122
- child.setParent(this);
123
- }
124
- }
125
- return child;
126
- }
127
- removeChild(index) {
128
- const target = this.children.splice(index, 1)[0];
129
- target.setParent(null);
130
- return target;
131
- }
132
- remove() {
133
- const index = this.getIndex();
134
- if (this.parent === null || index === undefined || index === null) {
135
- throw new Error("can't remove root");
136
- }
137
- return this.parent.removeChild(index);
138
- }
139
- copy() {
140
- const copy = this.copyHelper();
141
- copy.setParent(null);
142
- return copy;
143
- }
144
- copyHelper() {
145
- const copy = new Branch(this.data);
146
- for (const child of this.children) {
147
- const newChild = copy.appendChild(child.copyHelper());
148
- newChild.parent = copy;
149
- }
150
- return copy;
151
- }
152
- }
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jbGFzc2VzL0JyYW5jaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sTUFBTTtJQUtoQixZQUFtQixJQUFPO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxNQUFNO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRU0sU0FBUztRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBRU0sU0FBUyxDQUFJLE1BQXdCO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxpQkFBaUIsQ0FDckIsbUJBQXNDO1FBRXRDLElBQUksTUFBTSxHQUEwQixJQUFJLENBQUM7UUFDekMsS0FBSyxNQUFNLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQ3ZCLE9BQU8sU0FBUyxDQUFDO2FBQ25CO1NBQ0g7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNqQixDQUFDO0lBRU0sY0FBYztRQUNsQixNQUFNLFdBQVcsR0FBc0IsRUFBRSxDQUFDO1FBQzFDLElBQUksTUFBTSxHQUFvQixJQUFJLENBQUM7UUFDbkMsT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7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Q0FBQztRQUNqRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNO1FBQ1YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFjLENBQUM7SUFDdEQsQ0FBQztJQUVNLElBQUk7UUFDUixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNmLENBQUM7SUFFUyxVQUFVO1FBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN0RCxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN6QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2YsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEFuIG9iamVjdCBpbmRpY2F0aW5nIGEgbG9jYXRpb24gd2l0aGluIGEgdHJlZSAqL1xuZXhwb3J0IHR5cGUgQnJhbmNoQ29vcmRpbmF0ZXMgPSBBcnJheTxudW1iZXI+O1xuXG5leHBvcnQgY2xhc3MgQnJhbmNoPFQ+IHtcbiAgIHB1YmxpYyBkYXRhOiBUO1xuICAgcHJvdGVjdGVkIGNoaWxkcmVuOiBBcnJheTxCcmFuY2g8VD4+O1xuICAgcHJvdGVjdGVkIHBhcmVudDogQnJhbmNoPHVua25vd24+IHwgbnVsbDtcblxuICAgcHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IFQpIHtcbiAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgICB0aGlzLnBhcmVudCA9IG51bGw7XG4gICB9XG5cbiAgIHB1YmxpYyBpc1Jvb3QoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJlbnQgPT09IG51bGw7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRQYXJlbnQoKTogQnJhbmNoPHVua25vd24+IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XG4gICB9XG5cbiAgIHB1YmxpYyBzZXRQYXJlbnQ8VT4ocGFyZW50OiBCcmFuY2g8VT4gfCBudWxsKSB7XG4gICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgIH1cblxuICAgcHVibGljIGZpbmRCeUNvb3JkaW5hdGVzKFxuICAgICAgcmVsYXRpdmVDb29yZGluYXRlczogQnJhbmNoQ29vcmRpbmF0ZXNcbiAgICk6IEJyYW5jaDx1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gICAgICBsZXQgY3Vyc29yOiBCcmFuY2g8VD4gfCB1bmRlZmluZWQgPSB0aGlzO1xuICAgICAgZm9yIChjb25zdCBpbmRleCBvZiByZWxhdGl2ZUNvb3JkaW5hdGVzLnZhbHVlcygpKSB7XG4gICAgICAgICBjdXJzb3IgPSBjdXJzb3IuZ2V0Q2hpbGQoaW5kZXgpO1xuICAgICAgICAgaWYgKGN1cnNvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnNvcjtcbiAgIH1cblxuICAgcHVibGljIGdldENvb3JkaW5hdGVzKCk6IEJyYW5jaENvb3JkaW5hdGVzIHtcbiAgICAgIGNvbnN0IGNvb3JkaW5hdGVzOiBCcmFuY2hDb29yZGluYXRlcyA9IFtdO1xuICAgICAgbGV0IGN1cnNvcjogQnJhbmNoPHVua25vd24+ID0gdGhpcztcbiAgICAgIHdoaWxlIChjdXJzb3IucGFyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICBjb25zdCBjdXJzb3JJbmRleCA9IGN1cnNvci5nZXRJbmRleCgpO1xuICAgICAgICAgaWYgKGN1cnNvckluZGV4ID09PSB1bmRlZmluZWQgfHwgY3Vyc29ySW5kZXggPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBnZXQgY3Vyc29yIGluZGV4XCIpO1xuICAgICAgICAgfVxuICAgICAgICAgY29vcmRpbmF0ZXMudW5zaGlmdChjdXJzb3JJbmRleCk7XG4gICAgICAgICBjdXJzb3IgPSBjdXJzb3IucGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvb3JkaW5hdGVzO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0Q2hpbGQoaW5kZXg6IG51bWJlcik6IEJyYW5jaDxUPiB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbltpbmRleF07XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRDaGlsZHJlbigpOiBBcnJheTxCcmFuY2g8VD4+IHtcbiAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuO1xuICAgfVxuXG4gICBwdWJsaWMgY2xlYXJDaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgY2hpbGQuc2V0UGFyZW50KG51bGwpO1xuICAgICAgfVxuICAgICAgdGhpcy5jaGlsZHJlbi5sZW5ndGggPSAwO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0SW5kZXgoKTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAodGhpcy5wYXJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBhcmVudC5jaGlsZHJlbi5maW5kSW5kZXgoKGJyYW5jaCkgPT4gYnJhbmNoID09PSB0aGlzKTtcbiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXREZXNjZW5kYW50KFxuICAgICAgcmVsYXRpdmVDb29yZGluYXRlczogQnJhbmNoQ29vcmRpbmF0ZXNcbiAgICk6IEJyYW5jaDxUPiB8IHVuZGVmaW5lZCB7XG4gICAgICBsZXQgY3Vyc29yOiBCcmFuY2g8VD4gPSB0aGlzO1xuICAgICAgZm9yIChjb25zdCBpbmRleCBvZiByZWxhdGl2ZUNvb3JkaW5hdGVzKSB7XG4gICAgICAgICBjdXJzb3IgPSBjdXJzb3IuY2hpbGRyZW5baW5kZXhdO1xuICAgICAgICAgaWYgKGN1cnNvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnNvcjtcbiAgIH1cblxuICAgcHVibGljIGZpbmREZXNjZW5kYW50KFxuICAgICAgcHJlZGljYXRlOiAoZGF0YTogVCkgPT4gYm9vbGVhblxuICAgKTogQnJhbmNoPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmIChwcmVkaWNhdGUodGhpcy5kYXRhKSA9PT0gdHJ1ZSkge1xuICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGZvdW5kRGVlcGVyID0gY2hpbGQuZmluZERlc2NlbmRhbnQocHJlZGljYXRlKTtcbiAgICAgICAgICAgIGlmIChmb3VuZERlZXBlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICByZXR1cm4gZm91bmREZWVwZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0QW5jZXN0b3JzKCk6IEFycmF5PEJyYW5jaDx1bmtub3duPj4ge1xuICAgICAgY29uc3QgcmVzdWx0OiBBcnJheTxCcmFuY2g8dW5rbm93bj4+ID0gW107XG4gICAgICBsZXQgY3Vyc29yOiBCcmFuY2g8dW5rbm93bj4gPSB0aGlzO1xuICAgICAgd2hpbGUgKGN1cnNvci5wYXJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgIHJlc3VsdC5wdXNoKGN1cnNvci5wYXJlbnQpO1xuICAgICAgICAgY3Vyc29yID0gY3Vyc29yLnBhcmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICB9XG5cbiAgIHB1YmxpYyBhcHBlbmRDaGlsZChjaGlsZDogQnJhbmNoPFQ+KTogQnJhbmNoPFQ+IHtcbiAgICAgIGlmIChjaGlsZC5nZXRQYXJlbnQoKSAhPT0gbnVsbCkge1xuICAgICAgICAgY2hpbGQucmVtb3ZlKCk7XG4gICAgICB9XG4gICAgICBjaGlsZC5zZXRQYXJlbnQodGhpcyk7XG4gICAgICB0aGlzLmNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgICAgcmV0dXJuIGNoaWxkO1xuICAgfVxuXG4gICBwdWJsaWMgaW5zZXJ0Q2hpbGQoY2hpbGQ6IEJyYW5jaDxUPiwgaW5kZXg6IG51bWJlcik6IEJyYW5jaDxUPiB7XG4gICAgICBjb25zdCBpc093bkNoaWxkID0gdGhpcy5jaGlsZHJlbi5pbmRleE9mKGNoaWxkKTtcbiAgICAgIGlmIChpc093bkNoaWxkID09PSAtMSkge1xuICAgICAgICAgaWYgKGNoaWxkLmdldFBhcmVudCgpICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjaGlsZC5yZW1vdmUoKTtcbiAgICAgICAgIH1cbiAgICAgICAgIGNoaWxkLnNldFBhcmVudCh0aGlzKTtcbiAgICAgICAgIHRoaXMuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAwLCBjaGlsZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgaWYgKGluZGV4ID4gaXNPd25DaGlsZCkge1xuICAgICAgICAgICAgLy9JbnNlcnQgZmlyc3QsIHRoZW4gcmVtb3ZlXG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLnNwbGljZShpbmRleCwgMCwgY2hpbGQpO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZChpc093bkNoaWxkKTtcbiAgICAgICAgICAgIGNoaWxkLnNldFBhcmVudCh0aGlzKTtcbiAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvL3JlbW92ZSBmaXJzdCwgdGhlbiBpbnNlcnRcbiAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5zcGxpY2UoaW5kZXgsIDAsIGNoaWxkKTtcbiAgICAgICAgICAgIGNoaWxkLnNldFBhcmVudCh0aGlzKTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjaGlsZDtcbiAgIH1cblxuICAgcHVibGljIHJlbW92ZUNoaWxkKGluZGV4OiBudW1iZXIpOiBCcmFuY2g8VD4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5jaGlsZHJlbi5zcGxpY2UoaW5kZXgsIDEpWzBdO1xuICAgICAgdGFyZ2V0LnNldFBhcmVudChudWxsKTtcbiAgICAgIHJldHVybiB0YXJnZXQ7XG4gICB9XG5cbiAgIHB1YmxpYyByZW1vdmUoKTogQnJhbmNoPFQ+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJbmRleCgpO1xuICAgICAgaWYgKHRoaXMucGFyZW50ID09PSBudWxsIHx8IGluZGV4ID09PSB1bmRlZmluZWQgfHwgaW5kZXggPT09IG51bGwpIHtcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImNhbid0IHJlbW92ZSByb290XCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMucGFyZW50LnJlbW92ZUNoaWxkKGluZGV4KSBhcyBCcmFuY2g8VD47XG4gICB9XG5cbiAgIHB1YmxpYyBjb3B5KCk6IEJyYW5jaDxUPiB7XG4gICAgICBjb25zdCBjb3B5ID0gdGhpcy5jb3B5SGVscGVyKCk7XG4gICAgICBjb3B5LnNldFBhcmVudChudWxsKTtcbiAgICAgIHJldHVybiBjb3B5O1xuICAgfVxuXG4gICBwcm90ZWN0ZWQgY29weUhlbHBlcigpOiBCcmFuY2g8VD4ge1xuICAgICAgY29uc3QgY29weSA9IG5ldyBCcmFuY2godGhpcy5kYXRhKTtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgY29uc3QgbmV3Q2hpbGQgPSBjb3B5LmFwcGVuZENoaWxkKGNoaWxkLmNvcHlIZWxwZXIoKSk7XG4gICAgICAgICBuZXdDaGlsZC5wYXJlbnQgPSBjb3B5O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvcHk7XG4gICB9XG59XG4iXX0=
@@ -1,71 +0,0 @@
1
- import { arraysAreEqual } from "../util";
2
- import { Subject } from "rxjs";
3
- import { DropZoneLocation } from "./DropZoneLocation";
4
- export class DropZone {
5
- constructor(parentCoordinates, insertIndex) {
6
- this.location = new DropZoneLocation(parentCoordinates, insertIndex);
7
- this.rendered = false;
8
- this.visible = false;
9
- this.active = false;
10
- this.commChannel = new Subject();
11
- }
12
- static dropZoneLocationsAreEqual(valueA, valueB) {
13
- return arraysAreEqual(valueA.getFullInsertCoordinates(), valueB.getFullInsertCoordinates());
14
- }
15
- isRendered(set = undefined) {
16
- if (set !== undefined) {
17
- this.rendered = set;
18
- if (this.commChannel !== undefined) {
19
- this.commChannel.next("checkRendered");
20
- }
21
- if (this.rendered === false) {
22
- this.isVisible(false);
23
- }
24
- }
25
- return this.rendered;
26
- }
27
- isVisible(set = undefined) {
28
- if (set !== undefined) {
29
- this.visible = set;
30
- if (this.commChannel !== undefined) {
31
- this.commChannel.next("checkVisible");
32
- }
33
- if (this.visible === false) {
34
- this.isActive(false);
35
- }
36
- }
37
- return this.visible;
38
- }
39
- isActive(set = undefined) {
40
- if (set !== undefined) {
41
- this.active = set;
42
- if (this.commChannel !== undefined) {
43
- this.commChannel.next("checkActive");
44
- }
45
- }
46
- return this.active;
47
- }
48
- getLocation() {
49
- return this.location;
50
- }
51
- getFamily() {
52
- return this.family;
53
- }
54
- setFamily(family) {
55
- this.family = family;
56
- }
57
- getCommChannel() {
58
- return this.commChannel;
59
- }
60
- getFullInsertCoordinates() {
61
- return this.location.getFullInsertCoordinates();
62
- }
63
- setHost(host) {
64
- this.host = host;
65
- return this.host;
66
- }
67
- getHost() {
68
- return this.host;
69
- }
70
- }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJvcFpvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NsYXNzZXMvRHJvcFpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3RELE1BQU0sT0FBTyxRQUFRO0lBbUJsQixZQUNHLGlCQUFvQyxFQUNwQyxXQUFtQjtRQUVuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUEzQk0sTUFBTSxDQUFDLHlCQUF5QixDQUNwQyxNQUFtQyxFQUNuQyxNQUFtQztRQUVuQyxPQUFPLGNBQWMsQ0FDbEIsTUFBTSxDQUFDLHdCQUF3QixFQUFFLEVBQ2pDLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxDQUNuQyxDQUFDO0lBQ0wsQ0FBQztJQXFCTSxVQUFVLENBQ2QsTUFBMkIsU0FBUztRQUVwQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFDcEIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDekM7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO2dCQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hCO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUEyQixTQUFTO1FBQ2xELElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN4QztZQUNELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdkI7U0FDSDtRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRU0sUUFBUSxDQUFDLE1BQTJCLFNBQVM7UUFDakQsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2xCLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ3ZDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUVNLFdBQVc7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUVNLFNBQVM7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFzQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRU0sY0FBYztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQUVNLHdCQUF3QjtRQUM1QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWtDO1FBQzlDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRU0sT0FBTztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmFuY2hDb29yZGluYXRlcyB9IGZyb20gXCIuL0JyYW5jaFwiO1xuaW1wb3J0IHsgRHJvcFpvbmVGYW1pbHkgfSBmcm9tIFwiLi4vbGltYmxlLXRyZWUtcm9vdC9kcm9wLXpvbmUuc2VydmljZVwiO1xuaW1wb3J0IHsgYXJyYXlzQXJlRXF1YWwgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBEcm9wWm9uZUxvY2F0aW9uIH0gZnJvbSBcIi4vRHJvcFpvbmVMb2NhdGlvblwiO1xuaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIENvbW1NZXNzYWdlID0gXCJjaGVja0FjdGl2ZVwiIHwgXCJjaGVja1Zpc2libGVcIiB8IFwiY2hlY2tSZW5kZXJlZFwiO1xuXG5leHBvcnQgY2xhc3MgRHJvcFpvbmUge1xuICAgcHVibGljIHN0YXRpYyBkcm9wWm9uZUxvY2F0aW9uc0FyZUVxdWFsKFxuICAgICAgdmFsdWVBOiBEcm9wWm9uZSB8IERyb3Bab25lTG9jYXRpb24sXG4gICAgICB2YWx1ZUI6IERyb3Bab25lIHwgRHJvcFpvbmVMb2NhdGlvblxuICAgKSB7XG4gICAgICByZXR1cm4gYXJyYXlzQXJlRXF1YWwoXG4gICAgICAgICB2YWx1ZUEuZ2V0RnVsbEluc2VydENvb3JkaW5hdGVzKCksXG4gICAgICAgICB2YWx1ZUIuZ2V0RnVsbEluc2VydENvb3JkaW5hdGVzKClcbiAgICAgICk7XG4gICB9XG5cbiAgIHByaXZhdGUgaG9zdDogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZDtcbiAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb246IERyb3Bab25lTG9jYXRpb247XG4gICBwcml2YXRlIHZpc2libGU6IGJvb2xlYW47XG4gICBwcml2YXRlIGFjdGl2ZTogYm9vbGVhbjtcbiAgIHByaXZhdGUgcmVuZGVyZWQ6IGJvb2xlYW47XG4gICBwcml2YXRlIGZhbWlseTogRHJvcFpvbmVGYW1pbHkgfCB1bmRlZmluZWQ7XG4gICBwcml2YXRlIHJlYWRvbmx5IGNvbW1DaGFubmVsOiBTdWJqZWN0PENvbW1NZXNzYWdlPjtcblxuICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgcGFyZW50Q29vcmRpbmF0ZXM6IEJyYW5jaENvb3JkaW5hdGVzLFxuICAgICAgaW5zZXJ0SW5kZXg6IG51bWJlclxuICAgKSB7XG4gICAgICB0aGlzLmxvY2F0aW9uID0gbmV3IERyb3Bab25lTG9jYXRpb24ocGFyZW50Q29vcmRpbmF0ZXMsIGluc2VydEluZGV4KTtcbiAgICAgIHRoaXMucmVuZGVyZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29tbUNoYW5uZWwgPSBuZXcgU3ViamVjdCgpO1xuICAgfVxuXG4gICBwdWJsaWMgaXNSZW5kZXJlZChcbiAgICAgIHNldDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAgKTogRHJvcFpvbmVbXCJyZW5kZXJlZFwiXSB7XG4gICAgICBpZiAoc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgIHRoaXMucmVuZGVyZWQgPSBzZXQ7XG4gICAgICAgICBpZiAodGhpcy5jb21tQ2hhbm5lbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbW1DaGFubmVsLm5leHQoXCJjaGVja1JlbmRlcmVkXCIpO1xuICAgICAgICAgfVxuICAgICAgICAgaWYgKHRoaXMucmVuZGVyZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZShmYWxzZSk7XG4gICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJlZDtcbiAgIH1cblxuICAgcHVibGljIGlzVmlzaWJsZShzZXQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpOiBEcm9wWm9uZVtcInZpc2libGVcIl0ge1xuICAgICAgaWYgKHNldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICB0aGlzLnZpc2libGUgPSBzZXQ7XG4gICAgICAgICBpZiAodGhpcy5jb21tQ2hhbm5lbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbW1DaGFubmVsLm5leHQoXCJjaGVja1Zpc2libGVcIik7XG4gICAgICAgICB9XG4gICAgICAgICBpZiAodGhpcy52aXNpYmxlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZShmYWxzZSk7XG4gICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy52aXNpYmxlO1xuICAgfVxuXG4gICBwdWJsaWMgaXNBY3RpdmUoc2V0OiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKTogRHJvcFpvbmVbXCJhY3RpdmVcIl0ge1xuICAgICAgaWYgKHNldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICB0aGlzLmFjdGl2ZSA9IHNldDtcbiAgICAgICAgIGlmICh0aGlzLmNvbW1DaGFubmVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tbUNoYW5uZWwubmV4dChcImNoZWNrQWN0aXZlXCIpO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0TG9jYXRpb24oKTogRHJvcFpvbmVbXCJsb2NhdGlvblwiXSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2NhdGlvbjtcbiAgIH1cblxuICAgcHVibGljIGdldEZhbWlseSgpOiBEcm9wWm9uZVtcImZhbWlseVwiXSB7XG4gICAgICByZXR1cm4gdGhpcy5mYW1pbHk7XG4gICB9XG5cbiAgIHB1YmxpYyBzZXRGYW1pbHkoZmFtaWx5OiBEcm9wWm9uZUZhbWlseSk6IHZvaWQge1xuICAgICAgdGhpcy5mYW1pbHkgPSBmYW1pbHk7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRDb21tQ2hhbm5lbCgpOiBTdWJqZWN0PENvbW1NZXNzYWdlPiB7XG4gICAgICByZXR1cm4gdGhpcy5jb21tQ2hhbm5lbDtcbiAgIH1cblxuICAgcHVibGljIGdldEZ1bGxJbnNlcnRDb29yZGluYXRlcygpIHtcbiAgICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLmdldEZ1bGxJbnNlcnRDb29yZGluYXRlcygpO1xuICAgfVxuXG4gICBwdWJsaWMgc2V0SG9zdChob3N0OiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmhvc3QgPSBob3N0O1xuICAgICAgcmV0dXJuIHRoaXMuaG9zdDtcbiAgIH1cblxuICAgcHVibGljIGdldEhvc3QoKSB7XG4gICAgICByZXR1cm4gdGhpcy5ob3N0O1xuICAgfVxufVxuIl19
@@ -1,16 +0,0 @@
1
- export class DropZoneLocation {
2
- constructor(parentCoordinates, insertIndex) {
3
- this.parentCoordinates = parentCoordinates;
4
- this.insertIndex = insertIndex;
5
- }
6
- getFullInsertCoordinates() {
7
- return [...this.parentCoordinates, this.insertIndex];
8
- }
9
- setParentCoordinates(coordinates) {
10
- this.parentCoordinates = coordinates;
11
- }
12
- setInsertIndex(index) {
13
- this.insertIndex = index;
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJvcFpvbmVMb2NhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY2xhc3Nlcy9Ecm9wWm9uZUxvY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFJMUIsWUFBWSxpQkFBb0MsRUFBRSxXQUFtQjtRQUNsRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVNLHdCQUF3QjtRQUM1QixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxXQUE4QjtRQUN2RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmFuY2hDb29yZGluYXRlcyB9IGZyb20gXCIuL0JyYW5jaFwiO1xuXG5leHBvcnQgY2xhc3MgRHJvcFpvbmVMb2NhdGlvbiB7XG4gICBwdWJsaWMgcGFyZW50Q29vcmRpbmF0ZXM6IEJyYW5jaENvb3JkaW5hdGVzO1xuICAgcHVibGljIGluc2VydEluZGV4OiBudW1iZXI7XG5cbiAgIGNvbnN0cnVjdG9yKHBhcmVudENvb3JkaW5hdGVzOiBCcmFuY2hDb29yZGluYXRlcywgaW5zZXJ0SW5kZXg6IG51bWJlcikge1xuICAgICAgdGhpcy5wYXJlbnRDb29yZGluYXRlcyA9IHBhcmVudENvb3JkaW5hdGVzO1xuICAgICAgdGhpcy5pbnNlcnRJbmRleCA9IGluc2VydEluZGV4O1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0RnVsbEluc2VydENvb3JkaW5hdGVzKCkge1xuICAgICAgcmV0dXJuIFsuLi50aGlzLnBhcmVudENvb3JkaW5hdGVzLCB0aGlzLmluc2VydEluZGV4XTtcbiAgIH1cblxuICAgcHVibGljIHNldFBhcmVudENvb3JkaW5hdGVzKGNvb3JkaW5hdGVzOiBCcmFuY2hDb29yZGluYXRlcykge1xuICAgICAgdGhpcy5wYXJlbnRDb29yZGluYXRlcyA9IGNvb3JkaW5hdGVzO1xuICAgfVxuXG4gICBwdWJsaWMgc2V0SW5zZXJ0SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgICAgdGhpcy5pbnNlcnRJbmRleCA9IGluZGV4O1xuICAgfVxufVxuIl19
@@ -1,33 +0,0 @@
1
- import { Directive, EventEmitter, Output } from "@angular/core";
2
- import { fromEvent } from "rxjs";
3
- import * as i0 from "@angular/core";
4
- export class DragleaveNoChangeDetectDirective {
5
- constructor(ngZone, el) {
6
- this.ngZone = ngZone;
7
- this.el = el;
8
- this.dragleaveNoChangeDetect = new EventEmitter();
9
- }
10
- ngOnInit() {
11
- this.ngZone.runOutsideAngular(() => {
12
- this.eventSubscription = fromEvent(this.el.nativeElement, "dragleave").subscribe(($event) => {
13
- this.dragleaveNoChangeDetect.emit($event);
14
- });
15
- });
16
- }
17
- ngOnDestroy() {
18
- if (this.eventSubscription !== undefined) {
19
- this.eventSubscription.unsubscribe();
20
- }
21
- }
22
- }
23
- DragleaveNoChangeDetectDirective.ɵfac = function DragleaveNoChangeDetectDirective_Factory(t) { return new (t || DragleaveNoChangeDetectDirective)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef)); };
24
- DragleaveNoChangeDetectDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: DragleaveNoChangeDetectDirective, selectors: [["", "dragleaveNoChangeDetect", ""]], outputs: { dragleaveNoChangeDetect: "dragleaveNoChangeDetect" } });
25
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DragleaveNoChangeDetectDirective, [{
26
- type: Directive,
27
- args: [{
28
- selector: "[dragleaveNoChangeDetect]"
29
- }]
30
- }], function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }]; }, { dragleaveNoChangeDetect: [{
31
- type: Output
32
- }] }); })();
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2xlYXZlLW5vLWNoYW5nZS1kZXRlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jdXN0b20tZXZlbnQtYmluZGluZ3MvZHJhZ2xlYXZlLW5vLWNoYW5nZS1kZXRlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSixTQUFTLEVBRVQsWUFBWSxFQUlaLE1BQU0sRUFDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGdDQUFnQztJQUkxQyxZQUNvQixNQUFjLEVBQ2QsRUFBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBRXhDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxRQUFRO1FBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQ3JCLFdBQVcsQ0FDYixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNSLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSixDQUFDOztnSEExQlMsZ0NBQWdDO21GQUFoQyxnQ0FBZ0M7dUZBQWhDLGdDQUFnQztjQUg1QyxTQUFTO2VBQUM7Z0JBQ1IsUUFBUSxFQUFFLDJCQUEyQjthQUN2QztrRkFFcUIsdUJBQXVCO2tCQUF6QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgIERpcmVjdGl2ZSxcbiAgIEVsZW1lbnRSZWYsXG4gICBFdmVudEVtaXR0ZXIsXG4gICBOZ1pvbmUsXG4gICBPbkRlc3Ryb3ksXG4gICBPbkluaXQsXG4gICBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcblxuQERpcmVjdGl2ZSh7XG4gICBzZWxlY3RvcjogXCJbZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3RdXCJcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3Q6IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+O1xuICAgcHJpdmF0ZSBldmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEVsZW1lbnQ+XG4gICApIHtcbiAgICAgIHRoaXMuZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcbiAgIH1cblxuICAgbmdPbkluaXQoKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICB0aGlzLmV2ZW50U3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PERyYWdFdmVudD4oXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBcImRyYWdsZWF2ZVwiXG4gICAgICAgICApLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyYWdsZWF2ZU5vQ2hhbmdlRGV0ZWN0LmVtaXQoJGV2ZW50KTtcbiAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICB9XG5cbiAgIG5nT25EZXN0cm95KCkge1xuICAgICAgaWYgKHRoaXMuZXZlbnRTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgfVxufVxuIl19