@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.
- package/README.md +418 -96
- package/esm2020/lib/components/branch/branch.component.mjs +79 -0
- package/esm2020/lib/components/dropzone/dropzone.component.mjs +35 -0
- package/esm2020/lib/components/host-component.interface.mjs +2 -0
- package/esm2020/lib/components/node-component.interface.mjs +2 -0
- package/esm2020/lib/components/root/root.component.mjs +36 -0
- package/esm2020/lib/core/branch-options.interface.mjs +2 -0
- package/esm2020/lib/core/configuration/configuration.mjs +17 -0
- package/esm2020/lib/core/configuration/tree-options.interface.mjs +2 -0
- package/esm2020/lib/core/index.mjs +6 -0
- package/esm2020/lib/core/relationship.interface.mjs +2 -0
- package/esm2020/lib/core/tree-branch/branch-controller.mjs +99 -0
- package/esm2020/lib/core/tree-branch/tree-branch.mjs +224 -0
- package/esm2020/lib/core/tree-node-base.mjs +69 -0
- package/esm2020/lib/core/tree-root/root-controller.mjs +42 -0
- package/esm2020/lib/core/tree-root/tree-root.mjs +85 -0
- package/esm2020/lib/core/tree-service/tree.service.mjs +19 -0
- package/esm2020/lib/errors/index.mjs +2 -0
- package/esm2020/lib/errors/tree-error.mjs +3 -0
- package/esm2020/lib/events/drag/drag-end-event.mjs +28 -0
- package/esm2020/lib/events/drag/drag-start-event.mjs +12 -0
- package/esm2020/lib/events/drag/drop-event.mjs +20 -0
- package/esm2020/lib/events/drag/index.mjs +4 -0
- package/esm2020/lib/events/general/destruction-event.mjs +12 -0
- package/esm2020/lib/events/general/index.mjs +2 -0
- package/esm2020/lib/events/index.mjs +4 -0
- package/esm2020/lib/events/relational/graft-event.mjs +24 -0
- package/esm2020/lib/events/relational/index.mjs +4 -0
- package/esm2020/lib/events/relational/prune-event.mjs +24 -0
- package/esm2020/lib/events/relational/relational-tree-event.interface.mjs +2 -0
- package/esm2020/lib/extras/collapse/collapse.mjs +33 -0
- package/esm2020/lib/extras/collapse/collapse.module.mjs +15 -0
- package/esm2020/lib/extras/collapse/collapse.service.mjs +20 -0
- package/esm2020/lib/extras/collapse/index.mjs +3 -0
- package/esm2020/lib/extras/drag-and-drop/drag-and-drop.mjs +85 -0
- package/esm2020/lib/extras/drag-and-drop/drag-and-drop.module.mjs +19 -0
- package/esm2020/lib/extras/drag-and-drop/drag-and-drop.service.mjs +28 -0
- package/esm2020/lib/extras/drag-and-drop/drag-state.mjs +47 -0
- package/esm2020/lib/extras/drag-and-drop/draggable.directive.mjs +30 -0
- package/esm2020/lib/extras/drag-and-drop/dragover-no-change-detect.mjs +40 -0
- package/esm2020/lib/extras/drag-and-drop/dropzone-renderer.mjs +178 -0
- package/esm2020/lib/extras/drag-and-drop/index.mjs +5 -0
- package/esm2020/lib/legacy/index.mjs +7 -0
- package/esm2020/lib/legacy/legacy-component-obj.interface.mjs +2 -0
- package/esm2020/lib/legacy/legacy-tree-data.interface.mjs +2 -0
- package/esm2020/lib/legacy/legacy-tree-options.interface.mjs +2 -0
- package/esm2020/lib/legacy/legacy-tree.mjs +73 -0
- package/esm2020/lib/legacy/limble-tree-legacy.module.mjs +20 -0
- package/esm2020/lib/legacy/limble-tree-root/limble-tree-root.component.mjs +78 -0
- package/esm2020/lib/limble-tree.module.mjs +21 -47
- package/esm2020/lib/structure/branchable.interface.mjs +2 -0
- package/esm2020/lib/structure/component-container.interface.mjs +2 -0
- package/esm2020/lib/structure/event-conduit.interface.mjs +2 -0
- package/esm2020/lib/structure/graftable.interface.mjs +2 -0
- package/esm2020/lib/structure/index.mjs +10 -0
- package/esm2020/lib/structure/tree-branch-node.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-event.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-node.interface.mjs +2 -0
- package/esm2020/lib/structure/tree-plot.mjs +2 -0
- package/esm2020/lib/structure/tree-relationship.interface.mjs +2 -0
- package/esm2020/limble-limble-tree.mjs +4 -4
- package/esm2020/public-api.mjs +12 -6
- package/esm2020/shared/assert.mjs +7 -0
- package/fesm2015/limble-limble-tree.mjs +1404 -2226
- package/fesm2015/limble-limble-tree.mjs.map +1 -1
- package/fesm2020/limble-limble-tree.mjs +1396 -2132
- package/fesm2020/limble-limble-tree.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/branch/branch.component.d.ts +26 -0
- package/lib/components/dropzone/dropzone.component.d.ts +13 -0
- package/lib/components/host-component.interface.d.ts +6 -0
- package/lib/components/node-component.interface.d.ts +5 -0
- package/lib/components/root/root.component.d.ts +14 -0
- package/lib/core/branch-options.interface.d.ts +14 -0
- package/lib/core/configuration/configuration.d.ts +11 -0
- package/lib/core/configuration/tree-options.interface.d.ts +32 -0
- package/lib/core/index.d.ts +5 -0
- package/lib/core/relationship.interface.d.ts +5 -0
- package/lib/core/tree-branch/branch-controller.d.ts +25 -0
- package/lib/core/tree-branch/tree-branch.d.ts +44 -0
- package/lib/core/tree-node-base.d.ts +25 -0
- package/lib/core/tree-root/root-controller.d.ts +19 -0
- package/lib/core/tree-root/tree-root.d.ts +30 -0
- package/lib/core/tree-service/tree.service.d.ts +9 -0
- package/lib/errors/index.d.ts +1 -0
- package/lib/errors/tree-error.d.ts +2 -0
- package/lib/events/drag/drag-end-event.d.ts +24 -0
- package/lib/events/drag/drag-start-event.d.ts +8 -0
- package/lib/events/drag/drop-event.d.ts +13 -0
- package/lib/events/drag/index.d.ts +3 -0
- package/lib/events/general/destruction-event.d.ts +8 -0
- package/lib/events/general/index.d.ts +1 -0
- package/lib/events/index.d.ts +3 -0
- package/lib/events/relational/graft-event.d.ts +15 -0
- package/lib/events/relational/index.d.ts +3 -0
- package/lib/events/relational/prune-event.d.ts +15 -0
- package/lib/events/relational/relational-tree-event.interface.d.ts +6 -0
- package/lib/extras/collapse/collapse.d.ts +11 -0
- package/lib/extras/collapse/collapse.module.d.ts +6 -0
- package/lib/extras/collapse/collapse.service.d.ts +9 -0
- package/lib/extras/collapse/index.d.ts +2 -0
- package/lib/extras/drag-and-drop/drag-and-drop.d.ts +16 -0
- package/lib/extras/drag-and-drop/drag-and-drop.module.d.ts +8 -0
- package/lib/extras/drag-and-drop/drag-and-drop.service.d.ts +16 -0
- package/lib/extras/drag-and-drop/drag-state.d.ts +23 -0
- package/lib/extras/drag-and-drop/draggable.directive.d.ts +12 -0
- package/lib/{custom-event-bindings/dragover-no-change-detect.directive.d.ts → extras/drag-and-drop/dragover-no-change-detect.d.ts} +14 -14
- package/lib/extras/drag-and-drop/dropzone-renderer.d.ts +28 -0
- package/lib/extras/drag-and-drop/index.d.ts +4 -0
- package/lib/legacy/index.d.ts +6 -0
- package/lib/legacy/legacy-component-obj.interface.d.ts +13 -0
- package/lib/legacy/legacy-tree-data.interface.d.ts +18 -0
- package/lib/legacy/legacy-tree-options.interface.d.ts +34 -0
- package/lib/legacy/legacy-tree.d.ts +14 -0
- package/lib/legacy/limble-tree-legacy.module.d.ts +8 -0
- package/lib/legacy/limble-tree-root/limble-tree-root.component.d.ts +28 -0
- package/lib/limble-tree.module.d.ts +9 -14
- package/lib/structure/branchable.interface.d.ts +4 -0
- package/lib/structure/component-container.interface.d.ts +8 -0
- package/lib/structure/event-conduit.interface.d.ts +6 -0
- package/lib/structure/graftable.interface.d.ts +6 -0
- package/lib/structure/index.d.ts +9 -0
- package/lib/structure/tree-branch-node.interface.d.ts +5 -0
- package/lib/structure/tree-event.interface.d.ts +5 -0
- package/lib/structure/tree-node.interface.d.ts +11 -0
- package/lib/structure/tree-plot.d.ts +1 -0
- package/lib/structure/tree-relationship.interface.d.ts +7 -0
- package/package.json +6 -14
- package/public-api.d.ts +8 -3
- package/shared/assert.d.ts +1 -0
- package/esm2020/lib/classes/Branch.mjs +0 -153
- package/esm2020/lib/classes/DropZone.mjs +0 -71
- package/esm2020/lib/classes/DropZoneLocation.mjs +0 -16
- package/esm2020/lib/custom-event-bindings/dragleave-no-change-detect.directive.mjs +0 -33
- package/esm2020/lib/custom-event-bindings/dragover-no-change-detect.directive.mjs +0 -39
- package/esm2020/lib/drop-zone/drop-zone.component.mjs +0 -75
- package/esm2020/lib/limble-tree-branch/limble-tree-branch.component.mjs +0 -110
- package/esm2020/lib/limble-tree-node/limble-tree-node.component.mjs +0 -467
- package/esm2020/lib/limble-tree-placeholder/limble-tree-placeholder.component.mjs +0 -70
- package/esm2020/lib/limble-tree-root/drop-zone.service.mjs +0 -376
- package/esm2020/lib/limble-tree-root/limble-tree-root.component.mjs +0 -172
- package/esm2020/lib/limble-tree-root/tree-construction-status.service.mjs +0 -33
- package/esm2020/lib/limble-tree-root/tree.service.mjs +0 -297
- package/esm2020/lib/singletons/component-creator.service.mjs +0 -19
- package/esm2020/lib/singletons/drag-state.service.mjs +0 -63
- package/esm2020/lib/singletons/global-events.service.mjs +0 -136
- package/esm2020/lib/util.mjs +0 -74
- package/lib/classes/Branch.d.ts +0 -26
- package/lib/classes/DropZone.d.ts +0 -27
- package/lib/classes/DropZoneLocation.d.ts +0 -9
- package/lib/custom-event-bindings/dragleave-no-change-detect.directive.d.ts +0 -13
- package/lib/drop-zone/drop-zone.component.d.ts +0 -18
- package/lib/limble-tree-branch/limble-tree-branch.component.d.ts +0 -28
- package/lib/limble-tree-node/limble-tree-node.component.d.ts +0 -53
- package/lib/limble-tree-placeholder/limble-tree-placeholder.component.d.ts +0 -21
- package/lib/limble-tree-root/drop-zone.service.d.ts +0 -62
- package/lib/limble-tree-root/limble-tree-root.component.d.ts +0 -37
- package/lib/limble-tree-root/tree-construction-status.service.d.ts +0 -15
- package/lib/limble-tree-root/tree.service.d.ts +0 -132
- package/lib/singletons/component-creator.service.d.ts +0 -9
- package/lib/singletons/drag-state.service.d.ts +0 -35
- package/lib/singletons/global-events.service.d.ts +0 -13
- package/lib/util.d.ts +0 -13
|
@@ -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 "./
|
|
3
|
-
import * as i2 from "./
|
|
4
|
-
import * as i3 from "./
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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,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,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,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>;
|
package/package.json
CHANGED
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@limble/limble-tree",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-alpha.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^14.
|
|
6
|
-
"@angular/core": "^14.
|
|
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.
|
|
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
|
|
2
|
-
export
|
|
3
|
-
export
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jbGFzc2VzL0JyYW5jaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sTUFBTTtJQUtoQixZQUFtQixJQUFPO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxNQUFNO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRU0sU0FBUztRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN0QixDQUFDO0lBRU0sU0FBUyxDQUFJLE1BQXdCO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxpQkFBaUIsQ0FDckIsbUJBQXNDO1FBRXRDLElBQUksTUFBTSxHQUEwQixJQUFJLENBQUM7UUFDekMsS0FBSyxNQUFNLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMvQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQ3ZCLE9BQU8sU0FBUyxDQUFDO2FBQ25CO1NBQ0g7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNqQixDQUFDO0lBRU0sY0FBYztRQUNsQixNQUFNLFdBQVcsR0FBc0IsRUFBRSxDQUFDO1FBQzFDLElBQUksTUFBTSxHQUFvQixJQUFJLENBQUM7UUFDbkMsT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEMsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUU7Z0JBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQzthQUNoRDtZQUNELFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDekI7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUN0QixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWE7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxXQUFXO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxhQUFhO1FBQ2pCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxRQUFRO1FBQ1osSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQztTQUNkO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDMUUsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDZixPQUFPLFNBQVMsQ0FBQztTQUNuQjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2hCLENBQUM7SUFFTSxhQUFhLENBQ2pCLG1CQUFzQztRQUV0QyxJQUFJLE1BQU0sR0FBYyxJQUFJLENBQUM7UUFDN0IsS0FBSyxNQUFNLEtBQUssSUFBSSxtQkFBbUIsRUFBRTtZQUN0QyxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQ3ZCLE9BQU8sU0FBUyxDQUFDO2FBQ25CO1NBQ0g7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNqQixDQUFDO0lBRU0sY0FBYyxDQUNsQixTQUErQjtRQUUvQixJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDO1NBQ2Q7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3BELElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRTtvQkFDNUIsT0FBTyxXQUFXLENBQUM7aUJBQ3JCO2FBQ0g7U0FDSDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3BCLENBQUM7SUFFTSxZQUFZO1FBQ2hCLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7UUFDMUMsSUFBSSxNQUFNLEdBQW9CLElBQUksQ0FBQztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQ3pCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDakIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFnQjtRQUNoQyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDN0IsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNoQixDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWdCLEVBQUUsS0FBYTtRQUMvQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNwQixJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQzdCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNqQjtZQUNELEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0osSUFBSSxLQUFLLEdBQUcsVUFBVSxFQUFFO2dCQUNyQiwyQkFBMkI7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdCLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEI7aUJBQU07Z0JBQ0osMkJBQTJCO2dCQUMzQixLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QjtTQUNIO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDaEIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFhO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNO1FBQ1YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFjLENBQUM7SUFDdEQsQ0FBQztJQUVNLElBQUk7UUFDUixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNmLENBQUM7SUFFUyxVQUFVO1FBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN0RCxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUN6QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2YsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEFuIG9iamVjdCBpbmRpY2F0aW5nIGEgbG9jYXRpb24gd2l0aGluIGEgdHJlZSAqL1xuZXhwb3J0IHR5cGUgQnJhbmNoQ29vcmRpbmF0ZXMgPSBBcnJheTxudW1iZXI+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
|