@ali-hm/angular-tree-component 12.0.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.
- package/LICENSE +21 -0
- package/README.md +39 -0
- package/css/angular-tree-component.css +84 -0
- package/esm2020/ali-hm-angular-tree-component.mjs +5 -0
- package/esm2020/lib/angular-tree-component.module.mjs +100 -0
- package/esm2020/lib/components/loading.component.mjs +32 -0
- package/esm2020/lib/components/tree-node-checkbox.component.mjs +34 -0
- package/esm2020/lib/components/tree-node-collection.component.mjs +284 -0
- package/esm2020/lib/components/tree-node-content.component.mjs +32 -0
- package/esm2020/lib/components/tree-node-drop-slot.component.mjs +39 -0
- package/esm2020/lib/components/tree-node-expander.component.mjs +43 -0
- package/esm2020/lib/components/tree-node-wrapper.component.mjs +81 -0
- package/esm2020/lib/components/tree-viewport.component.mjs +66 -0
- package/esm2020/lib/components/tree.component.mjs +186 -0
- package/esm2020/lib/constants/events.mjs +20 -0
- package/esm2020/lib/constants/keys.mjs +10 -0
- package/esm2020/lib/defs/api.mjs +2 -0
- package/esm2020/lib/directives/tree-animate-open.directive.mjs +101 -0
- package/esm2020/lib/directives/tree-drag.directive.mjs +65 -0
- package/esm2020/lib/directives/tree-drop.directive.mjs +127 -0
- package/esm2020/lib/mobx-angular/mobx-proxy.mjs +17 -0
- package/esm2020/lib/mobx-angular/tree-mobx-autorun.directive.mjs +40 -0
- package/esm2020/lib/models/tree-dragged-element.model.mjs +25 -0
- package/esm2020/lib/models/tree-node.model.mjs +390 -0
- package/esm2020/lib/models/tree-options.model.mjs +150 -0
- package/esm2020/lib/models/tree-virtual-scroll.model.mjs +197 -0
- package/esm2020/lib/models/tree.model.mjs +546 -0
- package/esm2020/public-api.mjs +5 -0
- package/fesm2015/ali-hm-angular-tree-component.mjs +2511 -0
- package/fesm2015/ali-hm-angular-tree-component.mjs.map +1 -0
- package/fesm2020/ali-hm-angular-tree-component.mjs +2497 -0
- package/fesm2020/ali-hm-angular-tree-component.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/angular-tree-component.module.d.ts +43 -0
- package/lib/components/loading.component.d.ts +9 -0
- package/lib/components/tree-node-checkbox.component.d.ts +7 -0
- package/lib/components/tree-node-collection.component.d.ts +34 -0
- package/lib/components/tree-node-content.component.d.ts +10 -0
- package/lib/components/tree-node-drop-slot.component.d.ts +10 -0
- package/lib/components/tree-node-expander.component.d.ts +7 -0
- package/lib/components/tree-node-wrapper.component.d.ts +9 -0
- package/lib/components/tree-viewport.component.d.ts +17 -0
- package/lib/components/tree.component.d.ts +47 -0
- package/lib/constants/events.d.ts +19 -0
- package/lib/constants/keys.d.ts +9 -0
- package/lib/defs/api.d.ts +611 -0
- package/lib/directives/tree-animate-open.directive.d.ts +20 -0
- package/lib/directives/tree-drag.directive.d.ts +21 -0
- package/lib/directives/tree-drop.directive.d.ts +33 -0
- package/lib/mobx-angular/mobx-proxy.d.ts +7 -0
- package/lib/mobx-angular/tree-mobx-autorun.directive.d.ts +17 -0
- package/lib/models/tree-dragged-element.model.d.ts +9 -0
- package/lib/models/tree-node.model.d.ts +83 -0
- package/lib/models/tree-options.model.d.ts +77 -0
- package/lib/models/tree-virtual-scroll.model.d.ts +27 -0
- package/lib/models/tree.model.d.ts +91 -0
- package/package.json +66 -0
- package/public-api.d.ts +1 -0
- package/src/lib/angular-tree-component.css +84 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AfterViewInit, DoCheck, ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';
|
|
2
|
+
import { TreeDraggedElement } from '../models/tree-dragged-element.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class TreeDragDirective implements AfterViewInit, DoCheck, OnDestroy {
|
|
5
|
+
private el;
|
|
6
|
+
private renderer;
|
|
7
|
+
private treeDraggedElement;
|
|
8
|
+
private ngZone;
|
|
9
|
+
draggedElement: any;
|
|
10
|
+
treeDragEnabled: any;
|
|
11
|
+
private readonly dragEventHandler;
|
|
12
|
+
constructor(el: ElementRef, renderer: Renderer2, treeDraggedElement: TreeDraggedElement, ngZone: NgZone);
|
|
13
|
+
ngAfterViewInit(): void;
|
|
14
|
+
ngDoCheck(): void;
|
|
15
|
+
ngOnDestroy(): void;
|
|
16
|
+
onDragStart(ev: any): void;
|
|
17
|
+
onDrag(ev: any): void;
|
|
18
|
+
onDragEnd(): void;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TreeDragDirective, never>;
|
|
20
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TreeDragDirective, "[treeDrag]", never, { "draggedElement": "treeDrag"; "treeDragEnabled": "treeDragEnabled"; }, {}, never, never, false>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnDestroy, Renderer2 } from '@angular/core';
|
|
2
|
+
import { TreeDraggedElement } from '../models/tree-dragged-element.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class TreeDropDirective implements AfterViewInit, OnDestroy {
|
|
5
|
+
private el;
|
|
6
|
+
private renderer;
|
|
7
|
+
private treeDraggedElement;
|
|
8
|
+
private ngZone;
|
|
9
|
+
allowDragoverStyling: boolean;
|
|
10
|
+
onDropCallback: EventEmitter<any>;
|
|
11
|
+
onDragOverCallback: EventEmitter<any>;
|
|
12
|
+
onDragLeaveCallback: EventEmitter<any>;
|
|
13
|
+
onDragEnterCallback: EventEmitter<any>;
|
|
14
|
+
private readonly dragOverEventHandler;
|
|
15
|
+
private readonly dragEnterEventHandler;
|
|
16
|
+
private readonly dragLeaveEventHandler;
|
|
17
|
+
private _allowDrop;
|
|
18
|
+
set treeAllowDrop(allowDrop: any);
|
|
19
|
+
allowDrop($event: any): boolean;
|
|
20
|
+
constructor(el: ElementRef, renderer: Renderer2, treeDraggedElement: TreeDraggedElement, ngZone: NgZone);
|
|
21
|
+
ngAfterViewInit(): void;
|
|
22
|
+
ngOnDestroy(): void;
|
|
23
|
+
onDragOver($event: any): void;
|
|
24
|
+
onDragEnter($event: any): void;
|
|
25
|
+
onDragLeave($event: any): void;
|
|
26
|
+
onDrop($event: any): void;
|
|
27
|
+
private addClass;
|
|
28
|
+
private removeClass;
|
|
29
|
+
private addDisabledClass;
|
|
30
|
+
private removeDisabledClass;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TreeDropDirective, never>;
|
|
32
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TreeDropDirective, "[treeDrop]", never, { "allowDragoverStyling": "allowDragoverStyling"; "treeAllowDrop": "treeAllowDrop"; }, { "onDropCallback": "treeDrop"; "onDragOverCallback": "treeDropDragOver"; "onDragLeaveCallback": "treeDropDragLeave"; "onDragEnterCallback": "treeDropDragEnter"; }, never, never, false>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { action as mobxAction } from 'mobx';
|
|
2
|
+
import { computed as mobxComputed } from 'mobx';
|
|
3
|
+
import { observable as mobxObservable } from 'mobx';
|
|
4
|
+
export declare function actionInternal(...args: any[]): any;
|
|
5
|
+
export declare const action: typeof mobxAction;
|
|
6
|
+
export declare const computed: typeof mobxComputed;
|
|
7
|
+
export declare const observable: typeof mobxObservable;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ViewContainerRef, TemplateRef, OnInit, OnDestroy, EmbeddedViewRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class TreeMobxAutorunDirective implements OnInit, OnDestroy {
|
|
4
|
+
protected templateRef: TemplateRef<any>;
|
|
5
|
+
protected viewContainer: ViewContainerRef;
|
|
6
|
+
protected templateBindings: {};
|
|
7
|
+
protected dispose: any;
|
|
8
|
+
protected view: EmbeddedViewRef<any>;
|
|
9
|
+
treeMobxAutorun: any;
|
|
10
|
+
constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
|
|
11
|
+
ngOnInit(): void;
|
|
12
|
+
shouldDetach(): any;
|
|
13
|
+
autoDetect(view: EmbeddedViewRef<any>): void;
|
|
14
|
+
ngOnDestroy(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TreeMobxAutorunDirective, never>;
|
|
16
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TreeMobxAutorunDirective, "[treeMobxAutorun]", never, { "treeMobxAutorun": "treeMobxAutorun"; }, {}, never, never, false>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class TreeDraggedElement {
|
|
3
|
+
_draggedElement: any;
|
|
4
|
+
set(draggedElement: any): void;
|
|
5
|
+
get(): any;
|
|
6
|
+
isDragging(): boolean;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TreeDraggedElement, never>;
|
|
8
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TreeDraggedElement>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { TreeModel } from './tree.model';
|
|
2
|
+
import { TreeOptions } from './tree-options.model';
|
|
3
|
+
import { ITreeNode } from '../defs/api';
|
|
4
|
+
export declare class TreeNode implements ITreeNode {
|
|
5
|
+
data: any;
|
|
6
|
+
parent: TreeNode;
|
|
7
|
+
treeModel: TreeModel;
|
|
8
|
+
private handler;
|
|
9
|
+
get isHidden(): boolean;
|
|
10
|
+
get isExpanded(): boolean;
|
|
11
|
+
get isActive(): boolean;
|
|
12
|
+
get isFocused(): boolean;
|
|
13
|
+
get isSelected(): boolean;
|
|
14
|
+
get isAllSelected(): boolean;
|
|
15
|
+
get isPartiallySelected(): boolean;
|
|
16
|
+
children: TreeNode[];
|
|
17
|
+
index: number;
|
|
18
|
+
position: number;
|
|
19
|
+
height: number;
|
|
20
|
+
get level(): number;
|
|
21
|
+
get path(): string[];
|
|
22
|
+
get elementRef(): any;
|
|
23
|
+
private _originalNode;
|
|
24
|
+
get originalNode(): any;
|
|
25
|
+
constructor(data: any, parent: TreeNode, treeModel: TreeModel, index: number);
|
|
26
|
+
get hasChildren(): boolean;
|
|
27
|
+
get isCollapsed(): boolean;
|
|
28
|
+
get isLeaf(): boolean;
|
|
29
|
+
get isRoot(): boolean;
|
|
30
|
+
get realParent(): TreeNode;
|
|
31
|
+
get options(): TreeOptions;
|
|
32
|
+
fireEvent(event: any): void;
|
|
33
|
+
get displayField(): any;
|
|
34
|
+
get id(): any;
|
|
35
|
+
set id(value: any);
|
|
36
|
+
getField(key: any): any;
|
|
37
|
+
setField(key: any, value: any): void;
|
|
38
|
+
_findAdjacentSibling(steps: any, skipHidden?: boolean): any;
|
|
39
|
+
findNextSibling(skipHidden?: boolean): any;
|
|
40
|
+
findPreviousSibling(skipHidden?: boolean): any;
|
|
41
|
+
getVisibleChildren(): TreeNode[];
|
|
42
|
+
get visibleChildren(): TreeNode[];
|
|
43
|
+
getFirstChild(skipHidden?: boolean): TreeNode;
|
|
44
|
+
getLastChild(skipHidden?: boolean): TreeNode;
|
|
45
|
+
findNextNode(goInside?: boolean, skipHidden?: boolean): any;
|
|
46
|
+
findPreviousNode(skipHidden?: boolean): any;
|
|
47
|
+
_getLastOpenDescendant(skipHidden?: boolean): any;
|
|
48
|
+
private _getParentsChildren;
|
|
49
|
+
private getIndexInParent;
|
|
50
|
+
isDescendantOf(node: TreeNode): any;
|
|
51
|
+
getNodePadding(): string;
|
|
52
|
+
getClass(): string;
|
|
53
|
+
onDrop($event: any): void;
|
|
54
|
+
allowDrop: (element: any, $event?: any) => boolean;
|
|
55
|
+
allowDragoverStyling: () => boolean;
|
|
56
|
+
allowDrag(): boolean;
|
|
57
|
+
loadNodeChildren(): Promise<void>;
|
|
58
|
+
expand(): this;
|
|
59
|
+
collapse(): this;
|
|
60
|
+
doForAll(fn: (node: ITreeNode) => any): void;
|
|
61
|
+
expandAll(): void;
|
|
62
|
+
collapseAll(): void;
|
|
63
|
+
ensureVisible(): this;
|
|
64
|
+
toggleExpanded(): this;
|
|
65
|
+
setIsExpanded(value: any): this;
|
|
66
|
+
autoLoadChildren(): void;
|
|
67
|
+
dispose(): void;
|
|
68
|
+
setIsActive(value: any, multi?: boolean): this;
|
|
69
|
+
isSelectable(): boolean;
|
|
70
|
+
setIsSelected(value: any): this;
|
|
71
|
+
toggleSelected(): this;
|
|
72
|
+
toggleActivated(multi?: boolean): this;
|
|
73
|
+
setActiveAndVisible(multi?: boolean): this;
|
|
74
|
+
scrollIntoView(force?: boolean): void;
|
|
75
|
+
focus(scroll?: boolean): this;
|
|
76
|
+
blur(): this;
|
|
77
|
+
setIsHidden(value: any): void;
|
|
78
|
+
hide(): void;
|
|
79
|
+
show(): void;
|
|
80
|
+
mouseAction(actionName: string, $event: any, data?: any): void;
|
|
81
|
+
getSelfHeight(): number;
|
|
82
|
+
_initChildren(): void;
|
|
83
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { TreeNode } from './tree-node.model';
|
|
2
|
+
import { TreeModel } from './tree.model';
|
|
3
|
+
import { ITreeOptions } from '../defs/api';
|
|
4
|
+
export interface IActionHandler {
|
|
5
|
+
(tree: TreeModel, node: TreeNode, $event: any, ...rest: any[]): any;
|
|
6
|
+
}
|
|
7
|
+
export declare const TREE_ACTIONS: {
|
|
8
|
+
TOGGLE_ACTIVE: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
9
|
+
TOGGLE_ACTIVE_MULTI: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
10
|
+
TOGGLE_SELECTED: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
11
|
+
ACTIVATE: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
12
|
+
DEACTIVATE: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
13
|
+
SELECT: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
14
|
+
DESELECT: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
15
|
+
FOCUS: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
16
|
+
TOGGLE_EXPANDED: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
17
|
+
EXPAND: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
18
|
+
COLLAPSE: (tree: TreeModel, node: TreeNode, $event: any) => TreeNode;
|
|
19
|
+
DRILL_DOWN: (tree: TreeModel, node: TreeNode, $event: any) => void;
|
|
20
|
+
DRILL_UP: (tree: TreeModel, node: TreeNode, $event: any) => void;
|
|
21
|
+
NEXT_NODE: (tree: TreeModel, node: TreeNode, $event: any) => void;
|
|
22
|
+
PREVIOUS_NODE: (tree: TreeModel, node: TreeNode, $event: any) => void;
|
|
23
|
+
MOVE_NODE: (tree: TreeModel, node: TreeNode, $event: any, { from, to }: {
|
|
24
|
+
from: any;
|
|
25
|
+
to: any;
|
|
26
|
+
}) => void;
|
|
27
|
+
};
|
|
28
|
+
export interface IActionMapping {
|
|
29
|
+
mouse?: {
|
|
30
|
+
click?: IActionHandler;
|
|
31
|
+
dblClick?: IActionHandler;
|
|
32
|
+
contextMenu?: IActionHandler;
|
|
33
|
+
expanderClick?: IActionHandler;
|
|
34
|
+
checkboxClick?: IActionHandler;
|
|
35
|
+
dragStart?: IActionHandler;
|
|
36
|
+
drag?: IActionHandler;
|
|
37
|
+
dragEnd?: IActionHandler;
|
|
38
|
+
dragOver?: IActionHandler;
|
|
39
|
+
dragLeave?: IActionHandler;
|
|
40
|
+
dragEnter?: IActionHandler;
|
|
41
|
+
drop?: IActionHandler;
|
|
42
|
+
mouseOver?: IActionHandler;
|
|
43
|
+
mouseOut?: IActionHandler;
|
|
44
|
+
};
|
|
45
|
+
keys?: {
|
|
46
|
+
[key: number]: IActionHandler;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export declare class TreeOptions {
|
|
50
|
+
private options;
|
|
51
|
+
get hasChildrenField(): string;
|
|
52
|
+
get childrenField(): string;
|
|
53
|
+
get displayField(): string;
|
|
54
|
+
get idField(): string;
|
|
55
|
+
get isExpandedField(): string;
|
|
56
|
+
get getChildren(): any;
|
|
57
|
+
get levelPadding(): number;
|
|
58
|
+
get useVirtualScroll(): boolean;
|
|
59
|
+
get animateExpand(): boolean;
|
|
60
|
+
get animateSpeed(): number;
|
|
61
|
+
get animateAcceleration(): number;
|
|
62
|
+
get scrollOnActivate(): boolean;
|
|
63
|
+
get rtl(): boolean;
|
|
64
|
+
get rootId(): any;
|
|
65
|
+
get useCheckbox(): boolean;
|
|
66
|
+
get useTriState(): boolean;
|
|
67
|
+
get scrollContainer(): HTMLElement;
|
|
68
|
+
get allowDragoverStyling(): boolean;
|
|
69
|
+
actionMapping: IActionMapping;
|
|
70
|
+
constructor(options?: ITreeOptions);
|
|
71
|
+
getNodeClone(node: TreeNode): any;
|
|
72
|
+
allowDrop(element: any, to: any, $event?: any): boolean;
|
|
73
|
+
allowDrag(node: TreeNode): boolean;
|
|
74
|
+
nodeClass(node: TreeNode): string;
|
|
75
|
+
nodeHeight(node: TreeNode): number;
|
|
76
|
+
get dropSlotHeight(): number;
|
|
77
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TreeModel } from './tree.model';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class TreeVirtualScroll {
|
|
4
|
+
private treeModel;
|
|
5
|
+
private _dispose;
|
|
6
|
+
yBlocks: number;
|
|
7
|
+
x: number;
|
|
8
|
+
viewportHeight: any;
|
|
9
|
+
viewport: any;
|
|
10
|
+
get y(): number;
|
|
11
|
+
get totalHeight(): number;
|
|
12
|
+
constructor(treeModel: TreeModel);
|
|
13
|
+
fireEvent(event: any): void;
|
|
14
|
+
init(): void;
|
|
15
|
+
isEnabled(): boolean;
|
|
16
|
+
private _setYBlocks;
|
|
17
|
+
recalcPositions(): void;
|
|
18
|
+
private _getPositionAfter;
|
|
19
|
+
private _getPositionAfterNode;
|
|
20
|
+
clear(): void;
|
|
21
|
+
setViewport(viewport: any): void;
|
|
22
|
+
scrollIntoView(node: any, force: any, scrollToMiddle?: boolean): void;
|
|
23
|
+
getViewportNodes(nodes: any): any;
|
|
24
|
+
fixScroll(): void;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TreeVirtualScroll, never>;
|
|
26
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TreeVirtualScroll>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
2
|
+
import { TreeNode } from './tree-node.model';
|
|
3
|
+
import { TreeOptions } from './tree-options.model';
|
|
4
|
+
import { TreeVirtualScroll } from './tree-virtual-scroll.model';
|
|
5
|
+
import { ITreeModel, IDType, IDTypeDictionary } from '../defs/api';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class TreeModel implements ITreeModel, OnDestroy {
|
|
8
|
+
static focusedTree: any;
|
|
9
|
+
options: TreeOptions;
|
|
10
|
+
nodes: any[];
|
|
11
|
+
eventNames: string[];
|
|
12
|
+
virtualScroll: TreeVirtualScroll;
|
|
13
|
+
roots: TreeNode[];
|
|
14
|
+
expandedNodeIds: IDTypeDictionary;
|
|
15
|
+
selectedLeafNodeIds: IDTypeDictionary;
|
|
16
|
+
activeNodeIds: IDTypeDictionary;
|
|
17
|
+
hiddenNodeIds: IDTypeDictionary;
|
|
18
|
+
focusedNodeId: IDType;
|
|
19
|
+
virtualRoot: TreeNode;
|
|
20
|
+
private firstUpdate;
|
|
21
|
+
private events;
|
|
22
|
+
private subscriptions;
|
|
23
|
+
fireEvent(event: any): void;
|
|
24
|
+
subscribe(eventName: any, fn: any): void;
|
|
25
|
+
getFocusedNode(): TreeNode;
|
|
26
|
+
getActiveNode(): TreeNode;
|
|
27
|
+
getActiveNodes(): TreeNode[];
|
|
28
|
+
getVisibleRoots(): TreeNode[];
|
|
29
|
+
getFirstRoot(skipHidden?: boolean): TreeNode;
|
|
30
|
+
getLastRoot(skipHidden?: boolean): TreeNode;
|
|
31
|
+
get isFocused(): boolean;
|
|
32
|
+
isNodeFocused(node: any): boolean;
|
|
33
|
+
isEmptyTree(): boolean;
|
|
34
|
+
get focusedNode(): any;
|
|
35
|
+
get expandedNodes(): any[];
|
|
36
|
+
get activeNodes(): any[];
|
|
37
|
+
get hiddenNodes(): any[];
|
|
38
|
+
get selectedLeafNodes(): any[];
|
|
39
|
+
getNodeByPath(path: any[], startNode?: any): TreeNode;
|
|
40
|
+
getNodeById(id: any): any;
|
|
41
|
+
getNodeBy(predicate: any, startNode?: any): any;
|
|
42
|
+
isExpanded(node: any): boolean;
|
|
43
|
+
isHidden(node: any): boolean;
|
|
44
|
+
isActive(node: any): boolean;
|
|
45
|
+
isSelected(node: any): boolean;
|
|
46
|
+
ngOnDestroy(): void;
|
|
47
|
+
dispose(): void;
|
|
48
|
+
unsubscribeAll(): void;
|
|
49
|
+
setData({ nodes, options, events }: {
|
|
50
|
+
nodes: any;
|
|
51
|
+
options: any;
|
|
52
|
+
events: any;
|
|
53
|
+
}): void;
|
|
54
|
+
update(): void;
|
|
55
|
+
setFocusedNode(node: any): void;
|
|
56
|
+
setFocus(value: any): void;
|
|
57
|
+
doForAll(fn: any): void;
|
|
58
|
+
focusNextNode(): void;
|
|
59
|
+
focusPreviousNode(): void;
|
|
60
|
+
focusDrillDown(): void;
|
|
61
|
+
focusDrillUp(): void;
|
|
62
|
+
setActiveNode(node: any, value: any, multi?: boolean): void;
|
|
63
|
+
setSelectedNode(node: any, value: any): void;
|
|
64
|
+
setExpandedNode(node: any, value: any): void;
|
|
65
|
+
expandAll(): void;
|
|
66
|
+
collapseAll(): void;
|
|
67
|
+
setIsHidden(node: any, value: any): void;
|
|
68
|
+
setHiddenNodeIds(nodeIds: any): void;
|
|
69
|
+
performKeyAction(node: any, $event: any): boolean;
|
|
70
|
+
filterNodes(filter: any, autoShow?: boolean): void;
|
|
71
|
+
clearFilter(): void;
|
|
72
|
+
moveNode(node: any, to: any): void;
|
|
73
|
+
copyNode(node: any, to: any): void;
|
|
74
|
+
getState(): {
|
|
75
|
+
expandedNodeIds: IDTypeDictionary;
|
|
76
|
+
selectedLeafNodeIds: IDTypeDictionary;
|
|
77
|
+
activeNodeIds: IDTypeDictionary;
|
|
78
|
+
hiddenNodeIds: IDTypeDictionary;
|
|
79
|
+
focusedNodeId: IDType;
|
|
80
|
+
};
|
|
81
|
+
setState(state: any): void;
|
|
82
|
+
subscribeToState(fn: any): void;
|
|
83
|
+
canMoveNode(node: any, to: any, fromIndex?: any): boolean;
|
|
84
|
+
calculateExpandedNodes(): void;
|
|
85
|
+
private _filterNode;
|
|
86
|
+
private _calculateExpandedNodes;
|
|
87
|
+
private _setActiveNodeSingle;
|
|
88
|
+
private _setActiveNodeMulti;
|
|
89
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TreeModel, never>;
|
|
90
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TreeModel>;
|
|
91
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ali-hm/angular-tree-component",
|
|
3
|
+
"version": "12.0.1",
|
|
4
|
+
"description": "A simple yet powerful tree component for Angular 14+",
|
|
5
|
+
"author": "ali-hm",
|
|
6
|
+
"homepage": "https://github.com/ali-hm/angular-tree-component",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"repository": "https://github.com/ali-hm/angular-tree-component.git",
|
|
9
|
+
"bugs": {
|
|
10
|
+
"url": "https://github.com/ali-hm/angular-tree-component/issues"
|
|
11
|
+
},
|
|
12
|
+
"readme": "https://github.com/ali-hm/angular-tree-component/blob/master/README.md",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"ng",
|
|
15
|
+
"angular",
|
|
16
|
+
"ng2",
|
|
17
|
+
"angular2",
|
|
18
|
+
"tree",
|
|
19
|
+
"treeview",
|
|
20
|
+
"tree-view",
|
|
21
|
+
"angular2-tree",
|
|
22
|
+
"angular-tree",
|
|
23
|
+
"angular tree",
|
|
24
|
+
"angular2 tree",
|
|
25
|
+
"ng2-tree",
|
|
26
|
+
"ng2tree",
|
|
27
|
+
"ng2 tree",
|
|
28
|
+
"ngtree",
|
|
29
|
+
"ng-tree",
|
|
30
|
+
"angular-treeview",
|
|
31
|
+
"angular2-treeview",
|
|
32
|
+
"angular-tree-component",
|
|
33
|
+
"angular tree component",
|
|
34
|
+
"angular2-tree-component",
|
|
35
|
+
"angular2 tree component"
|
|
36
|
+
],
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"@angular/common": ">=11.0.0",
|
|
39
|
+
"@angular/core": ">=11.0.0",
|
|
40
|
+
"mobx": ">=4.14.1"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"mobx": "~4.14.1",
|
|
44
|
+
"tslib": "^2.0.0"
|
|
45
|
+
},
|
|
46
|
+
"module": "fesm2015/ali-hm-angular-tree-component.mjs",
|
|
47
|
+
"es2020": "fesm2020/ali-hm-angular-tree-component.mjs",
|
|
48
|
+
"esm2020": "esm2020/ali-hm-angular-tree-component.mjs",
|
|
49
|
+
"fesm2020": "fesm2020/ali-hm-angular-tree-component.mjs",
|
|
50
|
+
"fesm2015": "fesm2015/ali-hm-angular-tree-component.mjs",
|
|
51
|
+
"typings": "index.d.ts",
|
|
52
|
+
"exports": {
|
|
53
|
+
"./package.json": {
|
|
54
|
+
"default": "./package.json"
|
|
55
|
+
},
|
|
56
|
+
".": {
|
|
57
|
+
"types": "./index.d.ts",
|
|
58
|
+
"esm2020": "./esm2020/ali-hm-angular-tree-component.mjs",
|
|
59
|
+
"es2020": "./fesm2020/ali-hm-angular-tree-component.mjs",
|
|
60
|
+
"es2015": "./fesm2015/ali-hm-angular-tree-component.mjs",
|
|
61
|
+
"node": "./fesm2015/ali-hm-angular-tree-component.mjs",
|
|
62
|
+
"default": "./fesm2020/ali-hm-angular-tree-component.mjs"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"sideEffects": false
|
|
66
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/angular-tree-component.module';
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
.tree-children.tree-children-no-padding { padding-left: 0 }
|
|
2
|
+
.tree-children { padding-left: 20px; overflow: hidden }
|
|
3
|
+
.node-drop-slot { display: block; height: 2px }
|
|
4
|
+
.node-drop-slot.is-dragging-over { background: #ddffee; height: 20px; border: 2px dotted #888; }
|
|
5
|
+
.toggle-children-wrapper-expanded .toggle-children { transform: rotate(90deg) }
|
|
6
|
+
.toggle-children-wrapper-collapsed .toggle-children { transform: rotate(0); }
|
|
7
|
+
.toggle-children-wrapper {
|
|
8
|
+
padding: 2px 3px 5px 1px;
|
|
9
|
+
}
|
|
10
|
+
/* tslint:disable */
|
|
11
|
+
.toggle-children {
|
|
12
|
+
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzRkRFQjcxODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRkRFQjcwODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTk5NzA1OGEtZDI3OC00NDZkLWE4ODgtNGM4MGQ4YWI1NzNmIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRkZmQxMGMtY2NlNS0xMTc4LWE5OGQtY2NkZmM5ODk5YWYwIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Z2x5cGhpY29uczwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5iogFwAAAGhJREFUeNpiYGBgKABigf///zOQg0EARH4A4gZyDIIZ8B/JoAJKDIDhB0CcQIkBRBtEyABkgxwoMQCGD6AbRKoBGAYxQgXIBRuZGKgAKPIC3QLxArnRSHZCIjspk52ZKMrOFBUoAAEGAKnq593MQAZtAAAAAElFTkSuQmCC');
|
|
13
|
+
height: 8px;
|
|
14
|
+
width: 9px;
|
|
15
|
+
background-size: contain;
|
|
16
|
+
display: inline-block;
|
|
17
|
+
position: relative;
|
|
18
|
+
top: 1px;
|
|
19
|
+
background-repeat: no-repeat;
|
|
20
|
+
background-position: center;
|
|
21
|
+
}
|
|
22
|
+
.toggle-children-placeholder {
|
|
23
|
+
display: inline-block;
|
|
24
|
+
height: 10px;
|
|
25
|
+
width: 10px;
|
|
26
|
+
position: relative;
|
|
27
|
+
top: 1px;
|
|
28
|
+
padding-right: 3px;
|
|
29
|
+
}
|
|
30
|
+
.node-content-wrapper {
|
|
31
|
+
display: inline-block;
|
|
32
|
+
padding: 2px 5px;
|
|
33
|
+
border-radius: 2px;
|
|
34
|
+
transition: background-color .15s,box-shadow .15s;
|
|
35
|
+
}
|
|
36
|
+
.node-wrapper {display: flex; align-items: flex-start;}
|
|
37
|
+
.node-content-wrapper-active,
|
|
38
|
+
.node-content-wrapper.node-content-wrapper-active:hover,
|
|
39
|
+
.node-content-wrapper-active.node-content-wrapper-focused {
|
|
40
|
+
background: #beebff;
|
|
41
|
+
}
|
|
42
|
+
.node-content-wrapper-focused { background: #e7f4f9 }
|
|
43
|
+
.node-content-wrapper:hover { background: #f7fbff }
|
|
44
|
+
.node-content-wrapper-active, .node-content-wrapper-focused, .node-content-wrapper:hover {
|
|
45
|
+
box-shadow: inset 0 0 1px #999;
|
|
46
|
+
}
|
|
47
|
+
.node-content-wrapper.is-dragging-over { background: #ddffee; box-shadow: inset 0 0 1px #999; }
|
|
48
|
+
.node-content-wrapper.is-dragging-over-disabled { opacity: 0.5 }
|
|
49
|
+
|
|
50
|
+
tree-viewport {
|
|
51
|
+
-webkit-tap-highlight-color: transparent;
|
|
52
|
+
height: 100%;
|
|
53
|
+
overflow: auto;
|
|
54
|
+
display: block;
|
|
55
|
+
}
|
|
56
|
+
.tree-children { padding-left: 20px }
|
|
57
|
+
.empty-tree-drop-slot .node-drop-slot { height: 20px; min-width: 100px }
|
|
58
|
+
.angular-tree-component {
|
|
59
|
+
width: 100%;
|
|
60
|
+
position:relative;
|
|
61
|
+
display: inline-block;
|
|
62
|
+
cursor: pointer;
|
|
63
|
+
-webkit-touch-callout: none; /* iOS Safari */
|
|
64
|
+
-webkit-user-select: none; /* Chrome/Safari/Opera */
|
|
65
|
+
-khtml-user-select: none; /* Konqueror */
|
|
66
|
+
-moz-user-select: none; /* Firefox */
|
|
67
|
+
-ms-user-select: none; /* IE/Edge */
|
|
68
|
+
user-select: none; /* non-prefixed version, currently not supported by any browser */
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
tree-root .angular-tree-component-rtl {
|
|
72
|
+
direction: rtl;
|
|
73
|
+
}
|
|
74
|
+
tree-root .angular-tree-component-rtl .toggle-children-wrapper-collapsed .toggle-children {
|
|
75
|
+
transform: rotate(180deg) !important;
|
|
76
|
+
}
|
|
77
|
+
tree-root .angular-tree-component-rtl .tree-children {
|
|
78
|
+
padding-right: 20px;
|
|
79
|
+
padding-left: 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
tree-node-checkbox {
|
|
83
|
+
padding: 1px;
|
|
84
|
+
}
|