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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/README.md +22 -129
  2. package/esm2020/lib/components/branch/branch.component.mjs +87 -0
  3. package/esm2020/lib/components/dropzone/dropzone.component.mjs +35 -0
  4. package/esm2020/lib/components/host-component.interface.mjs +2 -0
  5. package/esm2020/lib/components/node-component.interface.mjs +2 -0
  6. package/esm2020/lib/components/root/root.component.mjs +37 -0
  7. package/esm2020/lib/core/branch-options.interface.mjs +2 -0
  8. package/esm2020/lib/core/configuration/configuration.mjs +17 -0
  9. package/esm2020/lib/core/configuration/tree-options.interface.mjs +2 -0
  10. package/esm2020/lib/core/index.mjs +6 -0
  11. package/esm2020/lib/core/relationship.interface.mjs +2 -0
  12. package/esm2020/lib/core/tree-branch/tree-branch.mjs +246 -0
  13. package/esm2020/lib/core/tree-node-base.mjs +68 -0
  14. package/esm2020/lib/core/tree-root/tree-root.mjs +69 -0
  15. package/esm2020/lib/core/tree-service/tree.service.mjs +19 -0
  16. package/esm2020/lib/errors/index.mjs +2 -0
  17. package/esm2020/lib/errors/tree-error.mjs +3 -0
  18. package/esm2020/lib/events/drag/drag-end-event.mjs +28 -0
  19. package/esm2020/lib/events/drag/drag-start-event.mjs +12 -0
  20. package/esm2020/lib/events/drag/drop-event.mjs +20 -0
  21. package/esm2020/lib/events/drag/index.mjs +4 -0
  22. package/esm2020/lib/events/index.mjs +3 -0
  23. package/esm2020/lib/events/relational/graft-event.mjs +24 -0
  24. package/esm2020/lib/events/relational/index.mjs +4 -0
  25. package/esm2020/lib/events/relational/prune-event.mjs +24 -0
  26. package/esm2020/lib/events/relational/relational-tree-event.interface.mjs +2 -0
  27. package/esm2020/lib/extras/collapse/collapse.mjs +33 -0
  28. package/esm2020/lib/extras/collapse/collapse.module.mjs +15 -0
  29. package/esm2020/lib/extras/collapse/collapse.service.mjs +20 -0
  30. package/esm2020/lib/extras/collapse/index.mjs +3 -0
  31. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.mjs +89 -0
  32. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.module.mjs +19 -0
  33. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.service.mjs +28 -0
  34. package/esm2020/lib/extras/drag-and-drop/drag-state.mjs +47 -0
  35. package/esm2020/lib/extras/drag-and-drop/draggable.directive.mjs +30 -0
  36. package/esm2020/lib/extras/drag-and-drop/dragover-no-change-detect.mjs +40 -0
  37. package/esm2020/lib/extras/drag-and-drop/dropzone-renderer.mjs +176 -0
  38. package/esm2020/lib/extras/drag-and-drop/index.mjs +5 -0
  39. package/esm2020/lib/legacy/index.mjs +7 -0
  40. package/esm2020/lib/legacy/legacy-component-obj.interface.mjs +2 -0
  41. package/esm2020/lib/legacy/legacy-tree-data.interface.mjs +2 -0
  42. package/esm2020/lib/legacy/legacy-tree-options.interface.mjs +2 -0
  43. package/esm2020/lib/legacy/legacy-tree.mjs +74 -0
  44. package/esm2020/lib/legacy/limble-tree-legacy.module.mjs +20 -0
  45. package/esm2020/lib/legacy/limble-tree-root/limble-tree-root.component.mjs +78 -0
  46. package/esm2020/lib/limble-tree.module.mjs +21 -47
  47. package/esm2020/lib/structure/branchable.interface.mjs +2 -0
  48. package/esm2020/lib/structure/container-tree-node.interface.mjs +2 -0
  49. package/esm2020/lib/structure/content-container.interface.mjs +2 -0
  50. package/esm2020/lib/structure/event-conduit.interface.mjs +2 -0
  51. package/esm2020/lib/structure/graftable.interface.mjs +2 -0
  52. package/esm2020/lib/structure/index.mjs +12 -0
  53. package/esm2020/lib/structure/tree-branch-node.interface.mjs +2 -0
  54. package/esm2020/lib/structure/tree-event.interface.mjs +2 -0
  55. package/esm2020/lib/structure/tree-node.interface.mjs +2 -0
  56. package/esm2020/lib/structure/tree-plot.mjs +2 -0
  57. package/esm2020/lib/structure/tree-relationship.interface.mjs +2 -0
  58. package/esm2020/lib/structure/tree-root.node.interface.mjs +2 -0
  59. package/esm2020/limble-limble-tree.mjs +4 -4
  60. package/esm2020/public-api.mjs +12 -6
  61. package/esm2020/shared/assert.mjs +7 -0
  62. package/fesm2015/limble-limble-tree.mjs +1280 -2226
  63. package/fesm2015/limble-limble-tree.mjs.map +1 -1
  64. package/fesm2020/limble-limble-tree.mjs +1270 -2132
  65. package/fesm2020/limble-limble-tree.mjs.map +1 -1
  66. package/index.d.ts +5 -5
  67. package/lib/components/branch/branch.component.d.ts +26 -0
  68. package/lib/components/dropzone/dropzone.component.d.ts +13 -0
  69. package/lib/components/host-component.interface.d.ts +6 -0
  70. package/lib/components/node-component.interface.d.ts +5 -0
  71. package/lib/components/root/root.component.d.ts +14 -0
  72. package/lib/core/branch-options.interface.d.ts +14 -0
  73. package/lib/core/configuration/configuration.d.ts +11 -0
  74. package/lib/core/configuration/tree-options.interface.d.ts +35 -0
  75. package/lib/core/index.d.ts +5 -0
  76. package/lib/core/relationship.interface.d.ts +6 -0
  77. package/lib/core/tree-branch/tree-branch.d.ts +44 -0
  78. package/lib/core/tree-node-base.d.ts +26 -0
  79. package/lib/core/tree-root/tree-root.d.ts +28 -0
  80. package/lib/core/tree-service/tree.service.d.ts +9 -0
  81. package/lib/errors/index.d.ts +1 -0
  82. package/lib/errors/tree-error.d.ts +2 -0
  83. package/lib/events/drag/drag-end-event.d.ts +25 -0
  84. package/lib/events/drag/drag-start-event.d.ts +8 -0
  85. package/lib/events/drag/drop-event.d.ts +16 -0
  86. package/lib/events/drag/index.d.ts +3 -0
  87. package/lib/events/index.d.ts +2 -0
  88. package/lib/events/relational/graft-event.d.ts +15 -0
  89. package/lib/events/relational/index.d.ts +3 -0
  90. package/lib/events/relational/prune-event.d.ts +15 -0
  91. package/lib/events/relational/relational-tree-event.interface.d.ts +6 -0
  92. package/lib/extras/collapse/collapse.d.ts +11 -0
  93. package/lib/extras/collapse/collapse.module.d.ts +6 -0
  94. package/lib/extras/collapse/collapse.service.d.ts +9 -0
  95. package/lib/extras/collapse/index.d.ts +2 -0
  96. package/lib/extras/drag-and-drop/drag-and-drop.d.ts +17 -0
  97. package/lib/extras/drag-and-drop/drag-and-drop.module.d.ts +8 -0
  98. package/lib/extras/drag-and-drop/drag-and-drop.service.d.ts +16 -0
  99. package/lib/extras/drag-and-drop/drag-state.d.ts +23 -0
  100. package/lib/extras/drag-and-drop/draggable.directive.d.ts +12 -0
  101. package/lib/{custom-event-bindings/dragover-no-change-detect.directive.d.ts → extras/drag-and-drop/dragover-no-change-detect.d.ts} +14 -14
  102. package/lib/extras/drag-and-drop/dropzone-renderer.d.ts +28 -0
  103. package/lib/extras/drag-and-drop/index.d.ts +4 -0
  104. package/lib/legacy/index.d.ts +6 -0
  105. package/lib/legacy/legacy-component-obj.interface.d.ts +13 -0
  106. package/lib/legacy/legacy-tree-data.interface.d.ts +18 -0
  107. package/lib/legacy/legacy-tree-options.interface.d.ts +34 -0
  108. package/lib/legacy/legacy-tree.d.ts +14 -0
  109. package/lib/legacy/limble-tree-legacy.module.d.ts +8 -0
  110. package/lib/legacy/limble-tree-root/limble-tree-root.component.d.ts +28 -0
  111. package/lib/limble-tree.module.d.ts +9 -14
  112. package/lib/structure/branchable.interface.d.ts +5 -0
  113. package/lib/structure/container-tree-node.interface.d.ts +3 -0
  114. package/lib/structure/content-container.interface.d.ts +3 -0
  115. package/lib/structure/event-conduit.interface.d.ts +6 -0
  116. package/lib/structure/graftable.interface.d.ts +6 -0
  117. package/lib/structure/index.d.ts +11 -0
  118. package/lib/structure/tree-branch-node.interface.d.ts +5 -0
  119. package/lib/structure/tree-event.interface.d.ts +5 -0
  120. package/lib/structure/tree-node.interface.d.ts +9 -0
  121. package/lib/structure/tree-plot.d.ts +1 -0
  122. package/lib/structure/tree-relationship.interface.d.ts +7 -0
  123. package/lib/structure/tree-root.node.interface.d.ts +2 -0
  124. package/package.json +6 -14
  125. package/public-api.d.ts +8 -3
  126. package/shared/assert.d.ts +1 -0
  127. package/esm2020/lib/classes/Branch.mjs +0 -153
  128. package/esm2020/lib/classes/DropZone.mjs +0 -71
  129. package/esm2020/lib/classes/DropZoneLocation.mjs +0 -16
  130. package/esm2020/lib/custom-event-bindings/dragleave-no-change-detect.directive.mjs +0 -33
  131. package/esm2020/lib/custom-event-bindings/dragover-no-change-detect.directive.mjs +0 -39
  132. package/esm2020/lib/drop-zone/drop-zone.component.mjs +0 -75
  133. package/esm2020/lib/limble-tree-branch/limble-tree-branch.component.mjs +0 -110
  134. package/esm2020/lib/limble-tree-node/limble-tree-node.component.mjs +0 -467
  135. package/esm2020/lib/limble-tree-placeholder/limble-tree-placeholder.component.mjs +0 -70
  136. package/esm2020/lib/limble-tree-root/drop-zone.service.mjs +0 -376
  137. package/esm2020/lib/limble-tree-root/limble-tree-root.component.mjs +0 -172
  138. package/esm2020/lib/limble-tree-root/tree-construction-status.service.mjs +0 -33
  139. package/esm2020/lib/limble-tree-root/tree.service.mjs +0 -297
  140. package/esm2020/lib/singletons/component-creator.service.mjs +0 -19
  141. package/esm2020/lib/singletons/drag-state.service.mjs +0 -63
  142. package/esm2020/lib/singletons/global-events.service.mjs +0 -136
  143. package/esm2020/lib/util.mjs +0 -74
  144. package/lib/classes/Branch.d.ts +0 -26
  145. package/lib/classes/DropZone.d.ts +0 -27
  146. package/lib/classes/DropZoneLocation.d.ts +0 -9
  147. package/lib/custom-event-bindings/dragleave-no-change-detect.directive.d.ts +0 -13
  148. package/lib/drop-zone/drop-zone.component.d.ts +0 -18
  149. package/lib/limble-tree-branch/limble-tree-branch.component.d.ts +0 -28
  150. package/lib/limble-tree-node/limble-tree-node.component.d.ts +0 -53
  151. package/lib/limble-tree-placeholder/limble-tree-placeholder.component.d.ts +0 -21
  152. package/lib/limble-tree-root/drop-zone.service.d.ts +0 -62
  153. package/lib/limble-tree-root/limble-tree-root.component.d.ts +0 -37
  154. package/lib/limble-tree-root/tree-construction-status.service.d.ts +0 -15
  155. package/lib/limble-tree-root/tree.service.d.ts +0 -132
  156. package/lib/singletons/component-creator.service.d.ts +0 -9
  157. package/lib/singletons/drag-state.service.d.ts +0 -35
  158. package/lib/singletons/global-events.service.d.ts +0 -13
  159. package/lib/util.d.ts +0 -13
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@limble/limble-tree" />
5
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@limble/limble-tree" />
5
+ export * from './public-api';
@@ -0,0 +1,26 @@
1
+ import { AfterViewInit, ApplicationRef, ComponentRef, EventEmitter, OnDestroy, QueryList, Type, ViewContainerRef } from "@angular/core";
2
+ import { DropzoneComponent } from "../dropzone/dropzone.component";
3
+ import { HostComponent } from "../host-component.interface";
4
+ import { NodeComponent } from "../node-component.interface";
5
+ import * as i0 from "@angular/core";
6
+ export declare class BranchComponent<T> implements NodeComponent, HostComponent<T>, AfterViewInit, OnDestroy {
7
+ private readonly appRef;
8
+ branchesContainer: ViewContainerRef | undefined;
9
+ contentContainer: ViewContainerRef | undefined;
10
+ dropzones: QueryList<DropzoneComponent> | undefined;
11
+ contentToHost?: Type<T>;
12
+ readonly contentCreated: EventEmitter<T>;
13
+ readonly showDropzones: EventEmitter<"upper" | "lower">;
14
+ readonly dropped: EventEmitter<"inner" | "lateral">;
15
+ showInnerDropzone: boolean;
16
+ showLateralDropzone: boolean;
17
+ private hostedContent?;
18
+ constructor(appRef: ApplicationRef);
19
+ ngAfterViewInit(): void;
20
+ getHostedContent(): ComponentRef<T> | undefined;
21
+ triggerChangeDetection(): void;
22
+ protected dragoverHandler(event: DragEvent): void;
23
+ ngOnDestroy(): void;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<BranchComponent<any>, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<BranchComponent<any>, "branch", never, { "contentToHost": "contentToHost"; }, { "contentCreated": "contentCreated"; "showDropzones": "showDropzones"; "dropped": "dropped"; }, never, never, true>;
26
+ }
@@ -0,0 +1,13 @@
1
+ import { EventEmitter } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export declare class DropzoneComponent {
4
+ placement?: "inner" | "lateral";
5
+ readonly dropped: EventEmitter<DragEvent>;
6
+ protected active: boolean;
7
+ dragenterHandler(): void;
8
+ dragleaveHandler(): void;
9
+ dragoverHandler(event: DragEvent): void;
10
+ dropHandler(event: DragEvent): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<DropzoneComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropzoneComponent, "dropzone", never, { "placement": "placement"; }, { "dropped": "dropped"; }, never, never, true>;
13
+ }
@@ -0,0 +1,6 @@
1
+ import { ComponentRef, EventEmitter, Type } from "@angular/core";
2
+ export interface HostComponent<UserlandComponent> {
3
+ contentCreated: EventEmitter<UserlandComponent>;
4
+ contentToHost?: Type<UserlandComponent>;
5
+ getHostedContent: () => ComponentRef<UserlandComponent> | undefined;
6
+ }
@@ -0,0 +1,5 @@
1
+ import { ViewContainerRef } from "@angular/core";
2
+ export interface NodeComponent {
3
+ branchesContainer: ViewContainerRef | undefined;
4
+ showInnerDropzone: boolean;
5
+ }
@@ -0,0 +1,14 @@
1
+ import { AfterViewInit, EventEmitter, ViewContainerRef } from "@angular/core";
2
+ import { DropzoneComponent } from "../dropzone/dropzone.component";
3
+ import { NodeComponent } from "../node-component.interface";
4
+ import * as i0 from "@angular/core";
5
+ export declare class RootComponent implements NodeComponent, AfterViewInit {
6
+ branchesContainer: ViewContainerRef | undefined;
7
+ dropzone: DropzoneComponent | undefined;
8
+ readonly afterViewInit: EventEmitter<void>;
9
+ readonly dropped: EventEmitter<void>;
10
+ showInnerDropzone: boolean;
11
+ ngAfterViewInit(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<RootComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<RootComponent, "root", never, {}, { "afterViewInit": "afterViewInit"; "dropped": "dropped"; }, never, never, true>;
14
+ }
@@ -0,0 +1,14 @@
1
+ import { EventEmitter, Type } from "@angular/core";
2
+ export interface BranchOptions<Component> {
3
+ inputBindings?: {
4
+ [K in keyof Component]?: Component[K];
5
+ };
6
+ outputBindings?: {
7
+ [K in keyof Component]?: Component[K] extends EventEmitter<infer T> ? (value: T) => void : never;
8
+ };
9
+ startCollapsed?: boolean;
10
+ meta?: Record<string, any>;
11
+ }
12
+ export interface FullBranchOptions<Component> extends BranchOptions<Component> {
13
+ component: Type<Component>;
14
+ }
@@ -0,0 +1,11 @@
1
+ import { TreeRoot } from "../tree-root/tree-root";
2
+ import { TreeOptions } from "./tree-options.interface";
3
+ declare class Configuration {
4
+ private readonly configStorage;
5
+ constructor();
6
+ setConfig<T>(root: TreeRoot<T>, options: TreeOptions): void;
7
+ getConfig(root: any): TreeOptions | undefined;
8
+ delete(root: any): void;
9
+ }
10
+ export declare const config: Configuration;
11
+ export {};
@@ -0,0 +1,35 @@
1
+ import { TreeBranch } from "../tree-branch/tree-branch";
2
+ import { TreeRoot } from "../tree-root/tree-root";
3
+ export interface TreeOptions {
4
+ /**
5
+ * A function to indicate whether to allow a node to be dragged. The node in
6
+ * question is passed in. Defaults to a function that always returns true. This
7
+ * function runs when DragAndDropService.dragStart runs, and before the branch
8
+ * is pruned from the tree.
9
+ */
10
+ allowDragging?: <T>(treeBranch: TreeBranch<T>) => boolean;
11
+ /**
12
+ * A function to determine whether a sourceNode can be dropped at a particular location.
13
+ * The sourceNode, the new proposedParent for the sourceNode, and the new proposedIndex
14
+ * for the source node are passed in. This function runs just before displaying a
15
+ * family of dropzones.
16
+ */
17
+ allowDrop?: <T>(sourceNode: TreeBranch<T>, proposedParent: TreeBranch<T> | TreeRoot<T>, proposedIndex: number) => boolean;
18
+ /**
19
+ * A function to indicate whether to allow "nesting" (placing a branch one level
20
+ * deeper than its parent). The node in question is passed in. Defaults to a function
21
+ * that always returns true. This function runs just before displaying a family of
22
+ * dropzones.
23
+ */
24
+ allowNesting?: <T>(treeBranch: TreeBranch<T>) => boolean;
25
+ /**
26
+ * The number of pixels each level of the tree will be indented relative to
27
+ * its parent. Defaults to 16.
28
+ */
29
+ indentation?: number;
30
+ /**
31
+ * Whether all branches should start out in a collapsed state, so that only one
32
+ * level of the tree is visible at first. Defaults to false.
33
+ */
34
+ startAllCollapsed?: boolean;
35
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./tree-service/tree.service";
2
+ export * from "./tree-root/tree-root";
3
+ export * from "./tree-branch/tree-branch";
4
+ export * from "./configuration/tree-options.interface";
5
+ export * from "./configuration/configuration";
@@ -0,0 +1,6 @@
1
+ import { ComponentRef } from "@angular/core";
2
+ import { NodeComponent } from "../components/node-component.interface";
3
+ import { ContainerTreeNode } from "../structure/container-tree-node.interface";
4
+ import { TreeRelationship } from "../structure/tree-relationship.interface";
5
+ import { TreeBranch } from "./tree-branch/tree-branch";
6
+ export declare type Relationship<UserlandComponent> = TreeRelationship<ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<UserlandComponent>>, TreeBranch<UserlandComponent>>;
@@ -0,0 +1,44 @@
1
+ import { TreePlot } from "../../structure/tree-plot";
2
+ import { Observable } from "rxjs";
3
+ import { TreeEvent } from "../../structure/tree-event.interface";
4
+ import { TreeBranchNode } from "../../structure/tree-branch-node.interface";
5
+ import { ComponentRef, Type } from "@angular/core";
6
+ import { BranchComponent } from "../../components/branch/branch.component";
7
+ import { ContainerTreeNode } from "../../structure/container-tree-node.interface";
8
+ import { NodeComponent } from "../../components/node-component.interface";
9
+ import { BranchOptions, FullBranchOptions } from "../branch-options.interface";
10
+ import { TreeRoot } from "..";
11
+ export declare class TreeBranch<UserlandComponent> implements TreeBranchNode<ComponentRef<BranchComponent<UserlandComponent>>, TreeBranch<UserlandComponent>, ComponentRef<NodeComponent>> {
12
+ readonly branchOptions: FullBranchOptions<UserlandComponent>;
13
+ private readonly contents;
14
+ private readonly instanceSubscriptions;
15
+ private readonly outputBindingSubscriptions;
16
+ private _parent;
17
+ private readonly treeNodeBase;
18
+ private readonly userlandComponent;
19
+ private detachedView;
20
+ constructor(parent: ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<UserlandComponent>>, branchOptions: FullBranchOptions<UserlandComponent>);
21
+ branches(): Array<TreeBranch<UserlandComponent>>;
22
+ deleteBranch(index?: number): void;
23
+ destroy(): void;
24
+ dispatch(event: TreeEvent): void;
25
+ events(): Observable<TreeEvent>;
26
+ getBranch(index: number): TreeBranch<UserlandComponent> | undefined;
27
+ getContents(): ComponentRef<BranchComponent<UserlandComponent>>;
28
+ graftTo(newParent: ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<UserlandComponent>>, index?: number): number;
29
+ grow(component: Type<UserlandComponent>, options?: BranchOptions<UserlandComponent>): TreeBranch<UserlandComponent>;
30
+ index(): number | undefined;
31
+ meta(): Record<string, any>;
32
+ parent(): ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<UserlandComponent>> | undefined;
33
+ plot(): TreePlot;
34
+ position(): Array<number>;
35
+ prune(): this | undefined;
36
+ root(): TreeRoot<UserlandComponent> | undefined;
37
+ traverse(callback: (node: ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<UserlandComponent>>) => void): void;
38
+ private getContentCreatedSub;
39
+ private getInstanceSubscriptions;
40
+ private getShowLowerZonesSub;
41
+ private getShowUpperZonesSub;
42
+ private reattachView;
43
+ private setIndentation;
44
+ }
@@ -0,0 +1,26 @@
1
+ import { ComponentRef } from "@angular/core";
2
+ import { Observable } from "rxjs";
3
+ import { NodeComponent } from "../components/node-component.interface";
4
+ import { TreeEvent } from "../structure/tree-event.interface";
5
+ import { ContainerTreeNode } from "../structure/container-tree-node.interface";
6
+ import { TreeNode } from "../structure/tree-node.interface";
7
+ import { TreePlot } from "../structure/tree-plot";
8
+ import { TreeBranch } from "./tree-branch/tree-branch";
9
+ export declare class TreeNodeBase<UserlandComponent> implements Partial<TreeNode<TreeBranch<UserlandComponent>>> {
10
+ private readonly _branches;
11
+ private readonly events$;
12
+ private readonly subscriptions;
13
+ constructor();
14
+ branches(): Array<TreeBranch<UserlandComponent>>;
15
+ deleteBranch(index?: number): void;
16
+ destroy(): void;
17
+ dispatch(event: TreeEvent): void;
18
+ events(): Observable<TreeEvent>;
19
+ getBranch(index: number): TreeBranch<UserlandComponent> | undefined;
20
+ plot(): TreePlot;
21
+ traverse(callback: (node: ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<UserlandComponent>>) => void): void;
22
+ private deregisterChildRelationship;
23
+ private graftsToSelf;
24
+ private prunesToSelf;
25
+ private registerChildRelationship;
26
+ }
@@ -0,0 +1,28 @@
1
+ import { TreePlot } from "../../structure/tree-plot";
2
+ import { Observable } from "rxjs";
3
+ import { TreeEvent } from "../../structure/tree-event.interface";
4
+ import { TreeBranch } from "../tree-branch/tree-branch";
5
+ import { ComponentRef, Type, ViewContainerRef } from "@angular/core";
6
+ import { RootComponent } from "../../components/root/root.component";
7
+ import { TreeRootNode } from "../../structure/tree-root.node.interface";
8
+ import { ContainerTreeNode } from "../../structure/container-tree-node.interface";
9
+ import { NodeComponent } from "../../components/node-component.interface";
10
+ import { BranchOptions } from "../branch-options.interface";
11
+ export declare class TreeRoot<UserlandComponent> implements TreeRootNode<ComponentRef<RootComponent>, TreeBranch<UserlandComponent>> {
12
+ private readonly viewContainerRef;
13
+ private readonly instanceSubscriptions;
14
+ private readonly rootComponentRef;
15
+ private readonly treeNodeBase;
16
+ constructor(viewContainerRef: ViewContainerRef);
17
+ branches(): Array<TreeBranch<UserlandComponent>>;
18
+ deleteBranch(index?: number): void;
19
+ destroy(): void;
20
+ dispatch(event: TreeEvent): void;
21
+ events(): Observable<TreeEvent>;
22
+ getBranch(index: number): TreeBranch<UserlandComponent> | undefined;
23
+ getContents(): ComponentRef<RootComponent>;
24
+ grow(component: Type<UserlandComponent>, options?: BranchOptions<UserlandComponent>): TreeBranch<UserlandComponent>;
25
+ plot(): TreePlot;
26
+ root(): this;
27
+ traverse(callback: (node: ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<UserlandComponent>>) => void): void;
28
+ }
@@ -0,0 +1,9 @@
1
+ import { ViewContainerRef } from "@angular/core";
2
+ import { TreeOptions } from "../configuration/tree-options.interface";
3
+ import { TreeRoot } from "../tree-root/tree-root";
4
+ import * as i0 from "@angular/core";
5
+ export declare class TreeService {
6
+ createEmptyTree<Component>(container: ViewContainerRef, options?: TreeOptions): TreeRoot<Component>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeService, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<TreeService>;
9
+ }
@@ -0,0 +1 @@
1
+ export * from "./tree-error";
@@ -0,0 +1,2 @@
1
+ export declare class TreeError extends Error {
2
+ }
@@ -0,0 +1,25 @@
1
+ import { ComponentRef } from "@angular/core";
2
+ import { NodeComponent } from "../../components/node-component.interface";
3
+ import { TreeBranch } from "../../core";
4
+ import { ContainerTreeNode } from "../../structure";
5
+ import { EventConduit } from "../../structure/event-conduit.interface";
6
+ import { TreeEvent } from "../../structure/tree-event.interface";
7
+ export declare class DragEndEvent<T> implements TreeEvent {
8
+ private readonly _source;
9
+ private readonly _newParent;
10
+ private readonly _newIndex;
11
+ private readonly _oldParent;
12
+ private readonly _oldIndex;
13
+ constructor(source: EventConduit, endpoints: {
14
+ oldParent: ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<T>>;
15
+ oldIndex: number;
16
+ newParent: ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<T>>;
17
+ newIndex: number;
18
+ });
19
+ type(): "drag end";
20
+ source(): EventConduit;
21
+ newIndex(): number;
22
+ newParent(): ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<T>>;
23
+ oldIndex(): number;
24
+ oldParent(): ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<T>>;
25
+ }
@@ -0,0 +1,8 @@
1
+ import { EventConduit } from "../../structure/event-conduit.interface";
2
+ import { TreeEvent } from "../../structure/tree-event.interface";
3
+ export declare class DragStartEvent implements TreeEvent {
4
+ private readonly _source;
5
+ constructor(source: EventConduit);
6
+ type(): "drag start";
7
+ source(): EventConduit;
8
+ }
@@ -0,0 +1,16 @@
1
+ import { ComponentRef } from "@angular/core";
2
+ import { NodeComponent } from "../../components/node-component.interface";
3
+ import { TreeBranch } from "../../core";
4
+ import { ContainerTreeNode } from "../../structure/container-tree-node.interface";
5
+ import { EventConduit } from "../../structure/event-conduit.interface";
6
+ import { TreeEvent } from "../../structure/tree-event.interface";
7
+ export declare class DropEvent<T> implements TreeEvent {
8
+ private readonly _source;
9
+ private readonly _parent;
10
+ private readonly _index;
11
+ constructor(source: EventConduit, parent: ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<T>>, index: number);
12
+ type(): "drag end";
13
+ source(): EventConduit;
14
+ index(): number;
15
+ parent(): ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<T>>;
16
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./drag-end-event";
2
+ export * from "./drag-start-event";
3
+ export * from "./drop-event";
@@ -0,0 +1,2 @@
1
+ export * from "./relational";
2
+ export * from "./drag";
@@ -0,0 +1,15 @@
1
+ import { EventConduit } from "../../structure/event-conduit.interface";
2
+ import { RelationalTreeEvent } from "./relational-tree-event.interface";
3
+ import { TreeRelationship } from "../../structure/tree-relationship.interface";
4
+ export declare class GraftEvent<T extends TreeRelationship<any, any>> implements RelationalTreeEvent<T["parent"], T["child"]> {
5
+ private readonly _source;
6
+ private readonly _parent;
7
+ private readonly _child;
8
+ private readonly _index;
9
+ constructor(source: EventConduit, relationship: T);
10
+ child(): T["child"];
11
+ type(): "graft";
12
+ index(): number;
13
+ parent(): T["parent"];
14
+ source(): EventConduit;
15
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./graft-event";
2
+ export * from "./prune-event";
3
+ export * from "./relational-tree-event.interface";
@@ -0,0 +1,15 @@
1
+ import { EventConduit } from "../../structure/event-conduit.interface";
2
+ import { RelationalTreeEvent } from "./relational-tree-event.interface";
3
+ import { TreeRelationship } from "../../structure/tree-relationship.interface";
4
+ export declare class PruneEvent<T extends TreeRelationship<any, any>> implements RelationalTreeEvent<T["parent"], T["child"]> {
5
+ private readonly _source;
6
+ private readonly _parent;
7
+ private readonly _child;
8
+ private readonly _index;
9
+ constructor(source: EventConduit, relationship: T);
10
+ child(): T["child"];
11
+ type(): "prune";
12
+ index(): number;
13
+ parent(): T["parent"];
14
+ source(): EventConduit;
15
+ }
@@ -0,0 +1,6 @@
1
+ import { TreeEvent } from "../../structure/tree-event.interface";
2
+ export interface RelationalTreeEvent<Parent, Child> extends TreeEvent {
3
+ parent: () => Parent;
4
+ child: () => Child;
5
+ index: () => number;
6
+ }
@@ -0,0 +1,11 @@
1
+ import { TreeBranch } from "../../core";
2
+ declare class TreeCollapser {
3
+ private readonly tempStorage;
4
+ constructor();
5
+ collapse<T>(treeBranch: TreeBranch<T>): void;
6
+ expand<T>(treeBranch: TreeBranch<T>): void;
7
+ isCollapsed<T>(treeBranch: TreeBranch<T>): boolean;
8
+ storePrecollapsedNode<T>(parent: TreeBranch<T>, branch: TreeBranch<T>): void;
9
+ }
10
+ export declare const treeCollapser: TreeCollapser;
11
+ export {};
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TreeCollapseModule {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeCollapseModule, never>;
4
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TreeCollapseModule, never, never, never>;
5
+ static ɵinj: i0.ɵɵInjectorDeclaration<TreeCollapseModule>;
6
+ }
@@ -0,0 +1,9 @@
1
+ import { TreeBranch } from "../../core";
2
+ import * as i0 from "@angular/core";
3
+ export declare class TreeCollapseService {
4
+ collapse<T>(treeBranch: TreeBranch<T>): void;
5
+ expand<T>(treeBranch: TreeBranch<T>): void;
6
+ isCollapsed<T>(treeBranch: TreeBranch<T>): boolean;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeCollapseService, never>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<TreeCollapseService>;
9
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./collapse.module";
2
+ export * from "./collapse.service";
@@ -0,0 +1,17 @@
1
+ import { ComponentRef } from "@angular/core";
2
+ import { Subject } from "rxjs";
3
+ import { NodeComponent } from "../../components/node-component.interface";
4
+ import { TreeBranch } from "../../core";
5
+ import { ContainerTreeNode } from "../../structure/container-tree-node.interface";
6
+ declare class DragAndDrop {
7
+ readonly dragAborted$: Subject<DragEvent>;
8
+ dragStart<T>(treeBranch: TreeBranch<T>, event: DragEvent): void;
9
+ drop<T>(parent: ContainerTreeNode<ComponentRef<NodeComponent>, TreeBranch<T>>, index: number): void;
10
+ private getDragImageOffsets;
11
+ private setDragEffects;
12
+ private watchForDragend;
13
+ private draggingAllowed;
14
+ private graftDraggedBranch;
15
+ }
16
+ export declare const dragAndDrop: DragAndDrop;
17
+ export {};
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./draggable.directive";
3
+ import * as i2 from "./dragover-no-change-detect";
4
+ export declare class TreeDragAndDropModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeDragAndDropModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TreeDragAndDropModule, never, [typeof i1.DraggableDirective, typeof i2.DragoverNoChangeDetectDirective], [typeof i1.DraggableDirective, typeof i2.DragoverNoChangeDetectDirective]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<TreeDragAndDropModule>;
8
+ }
@@ -0,0 +1,16 @@
1
+ import { Observable } from "rxjs";
2
+ import { TreeBranch, TreeRoot } from "../../core";
3
+ import { DragStates } from "./drag-state";
4
+ import * as i0 from "@angular/core";
5
+ export declare class TreeDragAndDropService {
6
+ clearDropzones(): void;
7
+ dragStart<T>(treeBranch: TreeBranch<T>, event: DragEvent): void;
8
+ getCurrentlyDisplayedDropzoneFamily(): {
9
+ treeBranch: TreeRoot<any> | TreeBranch<any>;
10
+ direction: "upper" | "lower";
11
+ } | null;
12
+ showRootDropzone<T>(root: TreeRoot<T>): void;
13
+ state(): Observable<DragStates>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeDragAndDropService, never>;
15
+ static ɵprov: i0.ɵɵInjectableDeclaration<TreeDragAndDropService>;
16
+ }
@@ -0,0 +1,23 @@
1
+ import { Observable } from "rxjs";
2
+ import { TreeBranch } from "../../core";
3
+ export declare enum DragStates {
4
+ Idle = 0,
5
+ Starting = 1,
6
+ Dragging = 2,
7
+ Dropped = 3
8
+ }
9
+ declare class DragState {
10
+ private dragData;
11
+ private _state;
12
+ private readonly state$;
13
+ constructor();
14
+ getDragData<T>(): TreeBranch<T> | undefined;
15
+ starting<T>(treeBranch: TreeBranch<T>): void;
16
+ dragging(): void;
17
+ dropped(): void;
18
+ restart(): void;
19
+ events(): Observable<DragStates>;
20
+ state(): DragStates;
21
+ }
22
+ export declare const dragState: DragState;
23
+ export {};
@@ -0,0 +1,12 @@
1
+ import { ElementRef, Renderer2 } from "@angular/core";
2
+ import { TreeBranch } from "../../core";
3
+ import { TreeDragAndDropService } from "./drag-and-drop.service";
4
+ import * as i0 from "@angular/core";
5
+ export declare class DraggableDirective {
6
+ private readonly dragAndDropService;
7
+ limbleTreeDraggable?: TreeBranch<any>;
8
+ constructor(dragAndDropService: TreeDragAndDropService, renderer: Renderer2, hostElement: ElementRef<HTMLElement>);
9
+ onDragstart(event: DragEvent): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<DraggableDirective, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DraggableDirective, "[limbleTreeDraggable]", never, { "limbleTreeDraggable": "limbleTreeDraggable"; }, {}, never, never, true>;
12
+ }
@@ -1,14 +1,14 @@
1
- import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export declare class DragoverNoChangeDetectDirective implements OnInit, OnDestroy {
4
- private readonly ngZone;
5
- private readonly el;
6
- dragoverEventThrottle: number;
7
- readonly dragoverNoChangeDetect: EventEmitter<DragEvent>;
8
- private eventSubscription;
9
- constructor(ngZone: NgZone, el: ElementRef<Element>);
10
- ngOnInit(): void;
11
- ngOnDestroy(): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<DragoverNoChangeDetectDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<DragoverNoChangeDetectDirective, "[dragoverNoChangeDetect]", never, { "dragoverEventThrottle": "dragoverEventThrottle"; }, { "dragoverNoChangeDetect": "dragoverNoChangeDetect"; }, never, never, false>;
14
- }
1
+ import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export declare class DragoverNoChangeDetectDirective implements OnInit, OnDestroy {
4
+ private readonly ngZone;
5
+ private readonly el;
6
+ dragoverEventThrottle: number;
7
+ readonly dragoverNoChangeDetect: EventEmitter<DragEvent>;
8
+ private eventSubscription;
9
+ constructor(ngZone: NgZone, el: ElementRef<Element>);
10
+ ngOnInit(): void;
11
+ ngOnDestroy(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<DragoverNoChangeDetectDirective, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DragoverNoChangeDetectDirective, "[dragoverNoChangeDetect]", never, { "dragoverEventThrottle": "dragoverEventThrottle"; }, { "dragoverNoChangeDetect": "dragoverNoChangeDetect"; }, never, never, true>;
14
+ }
@@ -0,0 +1,28 @@
1
+ import { DropzoneComponent } from "../../components/dropzone/dropzone.component";
2
+ import { TreeBranch } from "../../core/tree-branch/tree-branch";
3
+ import { TreeRoot } from "../../core/tree-root/tree-root";
4
+ declare class DropzoneRenderer {
5
+ private currentDisplay;
6
+ private readonly registry;
7
+ constructor();
8
+ clearCurrentDisplay(): void;
9
+ clearTreeFromRegistry(tree: TreeRoot<any> | TreeBranch<any>): void;
10
+ getCurrentDisplay(): {
11
+ treeBranch: TreeBranch<any> | TreeRoot<any>;
12
+ direction: "upper" | "lower";
13
+ } | null;
14
+ getDropzoneLocation<T>(dropzone: DropzoneComponent): [TreeBranch<T> | TreeRoot<T>, "inner" | "lateral"];
15
+ handleDrop<T>(treeNode: TreeBranch<T> | TreeRoot<T>, placement: "inner" | "lateral"): void;
16
+ registerDropzone<T>(dropzone: DropzoneComponent, treeNode: TreeBranch<T> | TreeRoot<T>): void;
17
+ registerDropzones<T>(dropzones: Iterable<DropzoneComponent>, treeBranch: TreeBranch<T>): void;
18
+ showLowerZones<T>(treeNode: TreeBranch<T> | TreeRoot<T>): void;
19
+ showUpperZones<T>(treeBranch: TreeBranch<T>): void;
20
+ private loopThroughLowerZones;
21
+ private loopThroughUpperZones;
22
+ private nestingAllowed;
23
+ private dropAllowed;
24
+ private showInnerZone;
25
+ private showLateralZone;
26
+ }
27
+ export declare const dropzoneRenderer: DropzoneRenderer;
28
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from "./drag-and-drop.module";
2
+ export * from "./drag-and-drop.service";
3
+ export * from "./draggable.directive";
4
+ export * from "./dragover-no-change-detect";
@@ -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>;