@memberjunction/ng-trees 0.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,353 @@
1
+ /**
2
+ * Tree Component for @memberjunction/ng-trees
3
+ *
4
+ * A generic, reusable tree component for displaying hierarchical entity data.
5
+ */
6
+ import { EventEmitter, ChangeDetectorRef, OnInit, OnDestroy, ElementRef } from '@angular/core';
7
+ import { TreeNode, TreeBranchConfig, TreeLeafConfig, TreeSelectionMode, TreeSelectableTypes, TreeStyleConfig, TreeKeyboardConfig } from '../models/tree-types';
8
+ import { BeforeNodeSelectEventArgs, AfterNodeSelectEventArgs, BeforeNodeDeselectEventArgs, AfterNodeDeselectEventArgs, BeforeNodeExpandEventArgs, AfterNodeExpandEventArgs, BeforeNodeCollapseEventArgs, AfterNodeCollapseEventArgs, BeforeNodeClickEventArgs, AfterNodeClickEventArgs, BeforeNodeDoubleClickEventArgs, AfterNodeDoubleClickEventArgs, BeforeDataLoadEventArgs, AfterDataLoadEventArgs, BeforeKeyboardNavigateEventArgs, AfterKeyboardNavigateEventArgs } from '../events/tree-events';
9
+ import * as i0 from "@angular/core";
10
+ export declare class TreeComponent implements OnInit, OnDestroy {
11
+ private readonly cdr;
12
+ private readonly elementRef;
13
+ /** Branch (category) entity configuration - REQUIRED */
14
+ private _branchConfig;
15
+ set BranchConfig(value: TreeBranchConfig);
16
+ get BranchConfig(): TreeBranchConfig;
17
+ /** Optional leaf entity configuration */
18
+ private _leafConfig?;
19
+ set LeafConfig(value: TreeLeafConfig | undefined);
20
+ get LeafConfig(): TreeLeafConfig | undefined;
21
+ /** Selection mode: 'single', 'multiple', or 'none' */
22
+ private _selectionMode;
23
+ set SelectionMode(value: TreeSelectionMode);
24
+ get SelectionMode(): TreeSelectionMode;
25
+ /** What types can be selected: 'branch', 'leaf', or 'both' */
26
+ private _selectableTypes;
27
+ set SelectableTypes(value: TreeSelectableTypes);
28
+ get SelectableTypes(): TreeSelectableTypes;
29
+ /** Initially selected node IDs */
30
+ private _selectedIDs;
31
+ set SelectedIDs(value: string[]);
32
+ get SelectedIDs(): string[];
33
+ /** Initially expanded node IDs (null = auto-expand first level) */
34
+ private _expandedIDs;
35
+ set ExpandedIDs(value: string[] | null);
36
+ get ExpandedIDs(): string[] | null;
37
+ /** Show expand/collapse all buttons */
38
+ private _showExpandCollapseAll;
39
+ set ShowExpandCollapseAll(value: boolean);
40
+ get ShowExpandCollapseAll(): boolean;
41
+ /** Enable keyboard navigation */
42
+ private _enableKeyboardNavigation;
43
+ set EnableKeyboardNavigation(value: boolean);
44
+ get EnableKeyboardNavigation(): boolean;
45
+ /** Keyboard configuration */
46
+ private _keyboardConfig;
47
+ set KeyboardConfig(value: TreeKeyboardConfig);
48
+ get KeyboardConfig(): TreeKeyboardConfig;
49
+ /** CSS style overrides */
50
+ private _styleConfig;
51
+ set StyleConfig(value: TreeStyleConfig);
52
+ get StyleConfig(): TreeStyleConfig;
53
+ /** Indent per level in pixels */
54
+ private _indentSize;
55
+ set IndentSize(value: number);
56
+ get IndentSize(): number;
57
+ /** Show loading indicator */
58
+ private _showLoading;
59
+ set ShowLoading(value: boolean);
60
+ get ShowLoading(): boolean;
61
+ /** Empty state message */
62
+ private _emptyMessage;
63
+ set EmptyMessage(value: string);
64
+ get EmptyMessage(): string;
65
+ /** Empty state icon */
66
+ private _emptyIcon;
67
+ set EmptyIcon(value: string);
68
+ get EmptyIcon(): string;
69
+ /** Auto-load data on init */
70
+ private _autoLoad;
71
+ set AutoLoad(value: boolean);
72
+ get AutoLoad(): boolean;
73
+ /** Show node icons */
74
+ private _showIcons;
75
+ set ShowIcons(value: boolean);
76
+ get ShowIcons(): boolean;
77
+ /** Show node descriptions */
78
+ private _showDescriptions;
79
+ set ShowDescriptions(value: boolean);
80
+ get ShowDescriptions(): boolean;
81
+ /** Show node badges */
82
+ private _showBadges;
83
+ set ShowBadges(value: boolean);
84
+ get ShowBadges(): boolean;
85
+ /** Animate expand/collapse */
86
+ private _animateExpandCollapse;
87
+ set AnimateExpandCollapse(value: boolean);
88
+ get AnimateExpandCollapse(): boolean;
89
+ BeforeNodeSelect: EventEmitter<BeforeNodeSelectEventArgs>;
90
+ AfterNodeSelect: EventEmitter<AfterNodeSelectEventArgs>;
91
+ BeforeNodeDeselect: EventEmitter<BeforeNodeDeselectEventArgs>;
92
+ AfterNodeDeselect: EventEmitter<AfterNodeDeselectEventArgs>;
93
+ BeforeNodeExpand: EventEmitter<BeforeNodeExpandEventArgs>;
94
+ AfterNodeExpand: EventEmitter<AfterNodeExpandEventArgs>;
95
+ BeforeNodeCollapse: EventEmitter<BeforeNodeCollapseEventArgs>;
96
+ AfterNodeCollapse: EventEmitter<AfterNodeCollapseEventArgs>;
97
+ BeforeNodeClick: EventEmitter<BeforeNodeClickEventArgs>;
98
+ AfterNodeClick: EventEmitter<AfterNodeClickEventArgs>;
99
+ BeforeNodeDoubleClick: EventEmitter<BeforeNodeDoubleClickEventArgs>;
100
+ AfterNodeDoubleClick: EventEmitter<AfterNodeDoubleClickEventArgs>;
101
+ BeforeDataLoad: EventEmitter<BeforeDataLoadEventArgs>;
102
+ AfterDataLoad: EventEmitter<AfterDataLoadEventArgs>;
103
+ BeforeKeyboardNavigate: EventEmitter<BeforeKeyboardNavigateEventArgs>;
104
+ AfterKeyboardNavigate: EventEmitter<AfterKeyboardNavigateEventArgs>;
105
+ /** Emitted when selection changes (convenience event with just the selected nodes) */
106
+ SelectionChange: EventEmitter<TreeNode[]>;
107
+ /** Root nodes of the tree */
108
+ Nodes: TreeNode[];
109
+ /** All branch nodes (flat) */
110
+ AllBranches: TreeNode[];
111
+ /** All leaf nodes (flat) */
112
+ AllLeaves: TreeNode[];
113
+ /** Currently selected nodes */
114
+ SelectedNodes: TreeNode[];
115
+ /** Currently focused node (for keyboard navigation) */
116
+ FocusedNode: TreeNode | null;
117
+ /** Loading state */
118
+ IsLoading: boolean;
119
+ /** Error message if load failed */
120
+ ErrorMessage: string | null;
121
+ /** Has data been loaded */
122
+ IsLoaded: boolean;
123
+ /** Current search text (for highlighting) */
124
+ CurrentSearchText: string;
125
+ private nodeMap;
126
+ private isInitialized;
127
+ private isCurrentlyLoading;
128
+ /** Instance-level cache for loaded data */
129
+ private cachedNodes;
130
+ private cachedBranches;
131
+ private cachedLeaves;
132
+ constructor(cdr: ChangeDetectorRef, elementRef: ElementRef);
133
+ ngOnInit(): void;
134
+ ngOnDestroy(): void;
135
+ /**
136
+ * Reload tree data (forces fresh load from database)
137
+ */
138
+ Refresh(): Promise<void>;
139
+ /**
140
+ * Get currently selected nodes
141
+ */
142
+ GetSelectedNodes(): TreeNode[];
143
+ /**
144
+ * Get selected IDs
145
+ */
146
+ GetSelectedIDs(): string[];
147
+ /**
148
+ * Programmatically select node(s)
149
+ * @param emitChange Whether to emit SelectionChange event (default: true).
150
+ * Set to false during sync operations to avoid unnecessary events.
151
+ */
152
+ SelectNodes(ids: string[], emitChange?: boolean): void;
153
+ /**
154
+ * Clear selection
155
+ */
156
+ ClearSelection(): void;
157
+ /**
158
+ * Expand all nodes
159
+ */
160
+ ExpandAll(): void;
161
+ /**
162
+ * Collapse all nodes
163
+ */
164
+ CollapseAll(): void;
165
+ /**
166
+ * Expand to specific node (expands all ancestors)
167
+ */
168
+ ExpandToNode(id: string): TreeNode | null;
169
+ /**
170
+ * Find node by ID
171
+ */
172
+ FindNode(id: string): TreeNode | null;
173
+ /**
174
+ * Get all nodes matching a predicate
175
+ */
176
+ FindNodes(predicate: (node: TreeNode) => boolean): TreeNode[];
177
+ /**
178
+ * Filter nodes by search text
179
+ */
180
+ FilterNodes(searchText: string, options?: {
181
+ caseSensitive?: boolean;
182
+ searchBranches?: boolean;
183
+ searchLeaves?: boolean;
184
+ searchDescription?: boolean;
185
+ }): TreeNode[];
186
+ /**
187
+ * Clear cache (call before Refresh if you want fresh data)
188
+ */
189
+ ClearCache(): void;
190
+ /**
191
+ * Handle node click
192
+ */
193
+ onNodeClick(node: TreeNode, event: MouseEvent): void;
194
+ /**
195
+ * Handle node double-click
196
+ */
197
+ onNodeDoubleClick(node: TreeNode, event: MouseEvent): void;
198
+ /**
199
+ * Handle toggle click
200
+ */
201
+ onToggleClick(node: TreeNode, event: MouseEvent): void;
202
+ onKeyDown(event: KeyboardEvent): void;
203
+ /**
204
+ * Load tree data
205
+ */
206
+ private loadData;
207
+ /**
208
+ * Load branch entities from database
209
+ */
210
+ private loadBranches;
211
+ /**
212
+ * Load leaf entities from database
213
+ */
214
+ private loadLeaves;
215
+ /**
216
+ * Load junction mappings for M2M relationships.
217
+ * Returns a map of leafId -> branchIds[]
218
+ */
219
+ private loadJunctionMappings;
220
+ /**
221
+ * Build branch hierarchy from flat data
222
+ */
223
+ private buildBranchHierarchy;
224
+ /**
225
+ * Attach leaf nodes to their parent branches or root level.
226
+ * Supports both direct parent field relationships and M2M junction mappings.
227
+ *
228
+ * @param rootNodes Root nodes to attach orphan leaves to
229
+ * @param branchMap Map of branch IDs to branch nodes
230
+ * @param leafData Raw leaf data from database
231
+ * @param config Leaf configuration
232
+ * @param junctionMappings Optional M2M mappings (leafId -> branchIds[])
233
+ */
234
+ private attachLeavesToBranches;
235
+ /**
236
+ * Calculate node level in hierarchy
237
+ */
238
+ private calculateLevel;
239
+ /**
240
+ * Sort children recursively (alphabetically)
241
+ */
242
+ private sortChildrenRecursive;
243
+ /**
244
+ * Sort children: branches first (alphabetically), then leaves (alphabetically)
245
+ */
246
+ private sortChildrenByTypeAndName;
247
+ /**
248
+ * Get icon for a node from field or default
249
+ */
250
+ private getNodeIcon;
251
+ /**
252
+ * Get color for a node from field or default
253
+ */
254
+ private getNodeColor;
255
+ /**
256
+ * Clear instance cache
257
+ */
258
+ private clearCache;
259
+ /**
260
+ * Deep clone tree nodes
261
+ */
262
+ private cloneNodes;
263
+ private cloneNode;
264
+ /**
265
+ * Build a flat map of all nodes by ID
266
+ */
267
+ private buildNodeMap;
268
+ private addNodesToMapRecursive;
269
+ /**
270
+ * Apply initial expansion state
271
+ */
272
+ private applyInitialExpansion;
273
+ /**
274
+ * Sync selection state from SelectedIDs input
275
+ */
276
+ private syncSelectionFromIDs;
277
+ /**
278
+ * Check if a node can be selected based on SelectableTypes
279
+ */
280
+ private isNodeSelectable;
281
+ /**
282
+ * Handle node selection logic
283
+ */
284
+ private handleNodeSelection;
285
+ /**
286
+ * Toggle node expansion
287
+ */
288
+ private toggleNodeExpansion;
289
+ /**
290
+ * Expand a node
291
+ */
292
+ private expandNode;
293
+ /**
294
+ * Collapse a node
295
+ */
296
+ private collapseNode;
297
+ /**
298
+ * Expand all nodes recursively
299
+ */
300
+ private expandAllRecursive;
301
+ /**
302
+ * Collapse all nodes recursively
303
+ */
304
+ private collapseAllRecursive;
305
+ /**
306
+ * Get all visible nodes in tree order
307
+ */
308
+ private getVisibleNodesInOrder;
309
+ private collectVisibleNodesRecursive;
310
+ /**
311
+ * Scroll a node into view
312
+ */
313
+ private scrollNodeIntoView;
314
+ /**
315
+ * Set visibility recursively
316
+ */
317
+ private setVisibilityRecursive;
318
+ /**
319
+ * Recursively mark nodes that match the search
320
+ */
321
+ private markMatchingNodesRecursive;
322
+ /**
323
+ * Make ancestors of visible nodes also visible
324
+ */
325
+ private makeAncestorsVisibleRecursive;
326
+ /**
327
+ * Get the padding for a node based on its level
328
+ */
329
+ getNodePadding(node: TreeNode): string;
330
+ /**
331
+ * Get CSS classes for a node
332
+ */
333
+ getNodeClasses(node: TreeNode): Record<string, boolean>;
334
+ /**
335
+ * Get container classes
336
+ */
337
+ getContainerClasses(): Record<string, boolean>;
338
+ /**
339
+ * Track nodes for ngFor
340
+ */
341
+ trackNode(index: number, node: TreeNode): string;
342
+ /**
343
+ * Get label HTML with search text highlighted
344
+ */
345
+ getHighlightedLabel(node: TreeNode): string;
346
+ /**
347
+ * Escape HTML special characters to prevent XSS
348
+ */
349
+ private escapeHtml;
350
+ static ɵfac: i0.ɵɵFactoryDeclaration<TreeComponent, never>;
351
+ static ɵcmp: i0.ɵɵComponentDeclaration<TreeComponent, "mj-tree", never, { "BranchConfig": { "alias": "BranchConfig"; "required": false; }; "LeafConfig": { "alias": "LeafConfig"; "required": false; }; "SelectionMode": { "alias": "SelectionMode"; "required": false; }; "SelectableTypes": { "alias": "SelectableTypes"; "required": false; }; "SelectedIDs": { "alias": "SelectedIDs"; "required": false; }; "ExpandedIDs": { "alias": "ExpandedIDs"; "required": false; }; "ShowExpandCollapseAll": { "alias": "ShowExpandCollapseAll"; "required": false; }; "EnableKeyboardNavigation": { "alias": "EnableKeyboardNavigation"; "required": false; }; "KeyboardConfig": { "alias": "KeyboardConfig"; "required": false; }; "StyleConfig": { "alias": "StyleConfig"; "required": false; }; "IndentSize": { "alias": "IndentSize"; "required": false; }; "ShowLoading": { "alias": "ShowLoading"; "required": false; }; "EmptyMessage": { "alias": "EmptyMessage"; "required": false; }; "EmptyIcon": { "alias": "EmptyIcon"; "required": false; }; "AutoLoad": { "alias": "AutoLoad"; "required": false; }; "ShowIcons": { "alias": "ShowIcons"; "required": false; }; "ShowDescriptions": { "alias": "ShowDescriptions"; "required": false; }; "ShowBadges": { "alias": "ShowBadges"; "required": false; }; "AnimateExpandCollapse": { "alias": "AnimateExpandCollapse"; "required": false; }; }, { "BeforeNodeSelect": "BeforeNodeSelect"; "AfterNodeSelect": "AfterNodeSelect"; "BeforeNodeDeselect": "BeforeNodeDeselect"; "AfterNodeDeselect": "AfterNodeDeselect"; "BeforeNodeExpand": "BeforeNodeExpand"; "AfterNodeExpand": "AfterNodeExpand"; "BeforeNodeCollapse": "BeforeNodeCollapse"; "AfterNodeCollapse": "AfterNodeCollapse"; "BeforeNodeClick": "BeforeNodeClick"; "AfterNodeClick": "AfterNodeClick"; "BeforeNodeDoubleClick": "BeforeNodeDoubleClick"; "AfterNodeDoubleClick": "AfterNodeDoubleClick"; "BeforeDataLoad": "BeforeDataLoad"; "AfterDataLoad": "AfterDataLoad"; "BeforeKeyboardNavigate": "BeforeKeyboardNavigate"; "AfterKeyboardNavigate": "AfterKeyboardNavigate"; "SelectionChange": "SelectionChange"; }, never, never, false, never>;
352
+ }
353
+ //# sourceMappingURL=tree.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.component.d.ts","sourceRoot":"","sources":["../../../src/lib/tree/tree.component.ts"],"names":[],"mappings":"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"}