@memberjunction/ng-trees 5.3.0 → 5.4.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.
- package/dist/__tests__/index.test.js.map +1 -1
- package/dist/__tests__/tree-events.test.js.map +1 -1
- package/dist/__tests__/tree-types.test.js.map +1 -1
- package/dist/lib/events/tree-events.js.map +1 -1
- package/dist/lib/models/tree-types.js.map +1 -1
- package/dist/lib/ng-trees.module.js.map +1 -1
- package/dist/lib/tree/tree.component.js.map +1 -1
- package/dist/lib/tree-dropdown/tree-dropdown.component.js.map +1 -1
- package/dist/public-api.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it, expect } from 'vitest';\n\ndescribe('@memberjunction/ng-trees', () => {\n it('should have a passing test', () => {\n expect(true).toBe(true);\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-events.test.js","sourceRoot":"","sources":["../../src/__tests__/tree-events.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree-events.test.js","sourceRoot":"","sources":["../../src/__tests__/tree-events.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it, expect } from 'vitest';\nimport {\n TreeEventArgs,\n CancelableTreeEventArgs,\n NodeEventArgs,\n CancelableNodeEventArgs,\n BeforeNodeSelectEventArgs,\n AfterNodeSelectEventArgs,\n AfterDataLoadEventArgs,\n AfterSearchEventArgs\n} from '../lib/events/tree-events';\nimport { createDefaultTreeNode } from '../lib/models/tree-types';\n\nconst mockTree = {} as never;\n\ndescribe('TreeEventArgs', () => {\n it('should set tree reference and timestamp', () => {\n const event = new TreeEventArgs(mockTree);\n expect(event.Tree).toBe(mockTree);\n expect(event.Timestamp).toBeInstanceOf(Date);\n });\n});\n\ndescribe('CancelableTreeEventArgs', () => {\n it('should default Cancel to false', () => {\n const event = new CancelableTreeEventArgs(mockTree);\n expect(event.Cancel).toBe(false);\n expect(event.CancelReason).toBeUndefined();\n });\n\n it('should allow setting Cancel to true', () => {\n const event = new CancelableTreeEventArgs(mockTree);\n event.Cancel = true;\n event.CancelReason = 'Access denied';\n expect(event.Cancel).toBe(true);\n expect(event.CancelReason).toBe('Access denied');\n });\n});\n\ndescribe('NodeEventArgs', () => {\n it('should include the node', () => {\n const node = createDefaultTreeNode({ ID: 'n1', Label: 'Test' });\n const event = new NodeEventArgs(mockTree, node);\n expect(event.Node).toBe(node);\n expect(event.Tree).toBe(mockTree);\n });\n});\n\ndescribe('CancelableNodeEventArgs', () => {\n it('should include node and be cancelable', () => {\n const node = createDefaultTreeNode({ ID: 'n1' });\n const event = new CancelableNodeEventArgs(mockTree, node);\n expect(event.Node).toBe(node);\n expect(event.Cancel).toBe(false);\n });\n});\n\ndescribe('BeforeNodeSelectEventArgs', () => {\n it('should capture selection context', () => {\n const node = createDefaultTreeNode({ ID: 'n1' });\n const current = [createDefaultTreeNode({ ID: 'n2' })];\n const event = new BeforeNodeSelectEventArgs(mockTree, node, true, current);\n\n expect(event.Node).toBe(node);\n expect(event.IsAdditive).toBe(true);\n expect(event.CurrentSelection).toHaveLength(1);\n expect(event.Cancel).toBe(false);\n });\n\n it('should create a copy of current selection', () => {\n const current = [createDefaultTreeNode({ ID: 'n2' })];\n const event = new BeforeNodeSelectEventArgs(mockTree, createDefaultTreeNode(), false, current);\n current.push(createDefaultTreeNode({ ID: 'n3' }));\n expect(event.CurrentSelection).toHaveLength(1);\n });\n});\n\ndescribe('AfterNodeSelectEventArgs', () => {\n it('should capture before and after selection', () => {\n const node = createDefaultTreeNode({ ID: 'n1' });\n const prev = [createDefaultTreeNode({ ID: 'old' })];\n const next = [createDefaultTreeNode({ ID: 'n1' })];\n const event = new AfterNodeSelectEventArgs(mockTree, node, false, next, prev);\n\n expect(event.WasAdditive).toBe(false);\n expect(event.NewSelection).toHaveLength(1);\n expect(event.PreviousSelection).toHaveLength(1);\n });\n});\n\ndescribe('AfterDataLoadEventArgs', () => {\n it('should calculate total nodes', () => {\n const event = new AfterDataLoadEventArgs(mockTree, true, 10, 25, 150);\n expect(event.Success).toBe(true);\n expect(event.BranchCount).toBe(10);\n expect(event.LeafCount).toBe(25);\n expect(event.TotalNodes).toBe(35);\n expect(event.LoadTimeMs).toBe(150);\n expect(event.Error).toBeUndefined();\n });\n\n it('should include error on failure', () => {\n const event = new AfterDataLoadEventArgs(mockTree, false, 0, 0, 50, 'Network error');\n expect(event.Success).toBe(false);\n expect(event.Error).toBe('Network error');\n });\n});\n\ndescribe('AfterSearchEventArgs', () => {\n it('should separate branch and leaf match counts', () => {\n const branches = [createDefaultTreeNode({ ID: 'b1', Type: 'branch' })];\n const leaves = [\n createDefaultTreeNode({ ID: 'l1', Type: 'leaf' }),\n createDefaultTreeNode({ ID: 'l2', Type: 'leaf' })\n ];\n const event = new AfterSearchEventArgs(mockTree, 'test', [...branches, ...leaves]);\n\n expect(event.SearchText).toBe('test');\n expect(event.MatchCount).toBe(3);\n expect(event.BranchMatchCount).toBe(1);\n expect(event.LeafMatchCount).toBe(2);\n expect(event.MatchedNodes).toHaveLength(3);\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-types.test.js","sourceRoot":"","sources":["../../src/__tests__/tree-types.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree-types.test.js","sourceRoot":"","sources":["../../src/__tests__/tree-types.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, it, expect } from 'vitest';\nimport {\n createDefaultTreeNode,\n createDefaultBranchConfig,\n createDefaultLeafConfig\n} from '../lib/models/tree-types';\nimport type { TreeNode, TreeBranchConfig, TreeLeafConfig } from '../lib/models/tree-types';\n\ndescribe('createDefaultTreeNode', () => {\n it('should create node with all default values', () => {\n const node = createDefaultTreeNode();\n expect(node.ID).toBe('');\n expect(node.Label).toBe('');\n expect(node.Type).toBe('branch');\n expect(node.ParentID).toBeNull();\n expect(node.Icon).toBe('fa-solid fa-folder');\n expect(node.Data).toEqual({});\n expect(node.Children).toEqual([]);\n expect(node.Expanded).toBe(false);\n expect(node.Selected).toBe(false);\n expect(node.Level).toBe(0);\n expect(node.Loading).toBe(false);\n expect(node.Visible).toBe(true);\n expect(node.MatchesSearch).toBe(false);\n expect(node.EntityName).toBe('');\n });\n\n it('should allow partial overrides', () => {\n const node = createDefaultTreeNode({\n ID: 'node-1',\n Label: 'Test Node',\n Type: 'leaf',\n Level: 2\n });\n expect(node.ID).toBe('node-1');\n expect(node.Label).toBe('Test Node');\n expect(node.Type).toBe('leaf');\n expect(node.Level).toBe(2);\n // Defaults preserved\n expect(node.Icon).toBe('fa-solid fa-folder');\n expect(node.Expanded).toBe(false);\n });\n\n it('should create independent instances', () => {\n const node1 = createDefaultTreeNode({ ID: 'a' });\n const node2 = createDefaultTreeNode({ ID: 'b' });\n node1.Children.push(createDefaultTreeNode({ ID: 'child' }));\n expect(node2.Children).toHaveLength(0);\n });\n});\n\ndescribe('createDefaultBranchConfig', () => {\n it('should create config with defaults', () => {\n const config = createDefaultBranchConfig();\n expect(config.EntityName).toBe('');\n expect(config.DisplayField).toBe('Name');\n expect(config.IDField).toBe('ID');\n expect(config.ParentIDField).toBe('ParentID');\n expect(config.DefaultIcon).toBe('fa-solid fa-folder');\n expect(config.OrderBy).toBe('Name ASC');\n });\n\n it('should allow overrides', () => {\n const config = createDefaultBranchConfig({\n EntityName: 'MJ: Query Categories',\n DefaultIcon: 'fa-solid fa-database'\n });\n expect(config.EntityName).toBe('MJ: Query Categories');\n expect(config.DefaultIcon).toBe('fa-solid fa-database');\n expect(config.DisplayField).toBe('Name'); // default preserved\n });\n});\n\ndescribe('createDefaultLeafConfig', () => {\n it('should create config with defaults', () => {\n const config = createDefaultLeafConfig();\n expect(config.EntityName).toBe('');\n expect(config.ParentField).toBe('');\n expect(config.DisplayField).toBe('Name');\n expect(config.IDField).toBe('ID');\n expect(config.DefaultIcon).toBe('fa-solid fa-file');\n expect(config.OrderBy).toBe('Name ASC');\n });\n\n it('should allow overrides', () => {\n const config = createDefaultLeafConfig({\n EntityName: 'MJ: Queries',\n ParentField: 'CategoryID'\n });\n expect(config.EntityName).toBe('Queries');\n expect(config.ParentField).toBe('CategoryID');\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-events.js","sourceRoot":"","sources":["../../../src/lib/events/tree-events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree-events.js","sourceRoot":"","sources":["../../../src/lib/events/tree-events.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tree Event System for @memberjunction/ng-trees\n *\n * Follows the Before/After cancelable event pattern from entity-data-grid.\n * Before events can be canceled, After events are informational.\n */\n\nimport { TreeNode, TreeBranchConfig, TreeLeafConfig } from '../models/tree-types';\n\n// Forward declaration to avoid circular dependency\nexport type TreeComponentRef = unknown;\n\n// ========================================\n// Base Event Classes\n// ========================================\n\n/**\n * Base class for all tree events\n */\nexport class TreeEventArgs {\n /** The tree component that raised the event */\n readonly Tree: TreeComponentRef;\n\n /** Timestamp when event was raised */\n readonly Timestamp: Date;\n\n constructor(tree: TreeComponentRef) {\n this.Tree = tree;\n this.Timestamp = new Date();\n }\n}\n\n/**\n * Base class for cancelable events (Before events)\n */\nexport class CancelableTreeEventArgs extends TreeEventArgs {\n /** Set to true to cancel the operation */\n Cancel: boolean = false;\n\n /** Optional reason for cancellation (for logging/debugging) */\n CancelReason?: string;\n\n constructor(tree: TreeComponentRef) {\n super(tree);\n }\n}\n\n/**\n * Base class for node-related events\n */\nexport class NodeEventArgs extends TreeEventArgs {\n /** The node involved in the event */\n readonly Node: TreeNode;\n\n constructor(tree: TreeComponentRef, node: TreeNode) {\n super(tree);\n this.Node = node;\n }\n}\n\n/**\n * Base class for cancelable node events\n */\nexport class CancelableNodeEventArgs extends NodeEventArgs {\n /** Set to true to cancel the operation */\n Cancel: boolean = false;\n\n /** Optional reason for cancellation */\n CancelReason?: string;\n\n constructor(tree: TreeComponentRef, node: TreeNode) {\n super(tree, node);\n }\n}\n\n// ========================================\n// Node Selection Events\n// ========================================\n\n/**\n * Fired before a node is selected - can be canceled\n */\nexport class BeforeNodeSelectEventArgs extends CancelableNodeEventArgs {\n /** Whether this is adding to selection (multi-select) or replacing */\n readonly IsAdditive: boolean;\n\n /** Current selection before this change */\n readonly CurrentSelection: TreeNode[];\n\n constructor(\n tree: TreeComponentRef,\n node: TreeNode,\n isAdditive: boolean,\n currentSelection: TreeNode[]\n ) {\n super(tree, node);\n this.IsAdditive = isAdditive;\n this.CurrentSelection = [...currentSelection];\n }\n}\n\n/**\n * Fired after a node is selected\n */\nexport class AfterNodeSelectEventArgs extends NodeEventArgs {\n /** Whether this was additive selection */\n readonly WasAdditive: boolean;\n\n /** New selection state */\n readonly NewSelection: TreeNode[];\n\n /** Previous selection state */\n readonly PreviousSelection: TreeNode[];\n\n constructor(\n tree: TreeComponentRef,\n node: TreeNode,\n wasAdditive: boolean,\n newSelection: TreeNode[],\n previousSelection: TreeNode[]\n ) {\n super(tree, node);\n this.WasAdditive = wasAdditive;\n this.NewSelection = [...newSelection];\n this.PreviousSelection = [...previousSelection];\n }\n}\n\n/**\n * Fired before a node is deselected - can be canceled\n */\nexport class BeforeNodeDeselectEventArgs extends CancelableNodeEventArgs {\n /** Current selection before this change */\n readonly CurrentSelection: TreeNode[];\n\n constructor(\n tree: TreeComponentRef,\n node: TreeNode,\n currentSelection: TreeNode[]\n ) {\n super(tree, node);\n this.CurrentSelection = [...currentSelection];\n }\n}\n\n/**\n * Fired after a node is deselected\n */\nexport class AfterNodeDeselectEventArgs extends NodeEventArgs {\n /** New selection state */\n readonly NewSelection: TreeNode[];\n\n /** Previous selection state */\n readonly PreviousSelection: TreeNode[];\n\n constructor(\n tree: TreeComponentRef,\n node: TreeNode,\n newSelection: TreeNode[],\n previousSelection: TreeNode[]\n ) {\n super(tree, node);\n this.NewSelection = [...newSelection];\n this.PreviousSelection = [...previousSelection];\n }\n}\n\n// ========================================\n// Node Expand/Collapse Events\n// ========================================\n\n/**\n * Fired before a node is expanded - can be canceled\n */\nexport class BeforeNodeExpandEventArgs extends CancelableNodeEventArgs {\n constructor(tree: TreeComponentRef, node: TreeNode) {\n super(tree, node);\n }\n}\n\n/**\n * Fired after a node is expanded\n */\nexport class AfterNodeExpandEventArgs extends NodeEventArgs {\n /** Number of visible children after expansion */\n readonly ChildCount: number;\n\n constructor(tree: TreeComponentRef, node: TreeNode, childCount: number) {\n super(tree, node);\n this.ChildCount = childCount;\n }\n}\n\n/**\n * Fired before a node is collapsed - can be canceled\n */\nexport class BeforeNodeCollapseEventArgs extends CancelableNodeEventArgs {\n constructor(tree: TreeComponentRef, node: TreeNode) {\n super(tree, node);\n }\n}\n\n/**\n * Fired after a node is collapsed\n */\nexport class AfterNodeCollapseEventArgs extends NodeEventArgs {\n constructor(tree: TreeComponentRef, node: TreeNode) {\n super(tree, node);\n }\n}\n\n// ========================================\n// Node Click Events\n// ========================================\n\n/**\n * Fired before a node click is processed - can be canceled\n */\nexport class BeforeNodeClickEventArgs extends CancelableNodeEventArgs {\n /** The mouse event */\n readonly MouseEvent: MouseEvent;\n\n constructor(tree: TreeComponentRef, node: TreeNode, mouseEvent: MouseEvent) {\n super(tree, node);\n this.MouseEvent = mouseEvent;\n }\n}\n\n/**\n * Fired after a node click\n */\nexport class AfterNodeClickEventArgs extends NodeEventArgs {\n /** The mouse event */\n readonly MouseEvent: MouseEvent;\n\n constructor(tree: TreeComponentRef, node: TreeNode, mouseEvent: MouseEvent) {\n super(tree, node);\n this.MouseEvent = mouseEvent;\n }\n}\n\n/**\n * Fired before a node double-click - can be canceled\n */\nexport class BeforeNodeDoubleClickEventArgs extends CancelableNodeEventArgs {\n /** The mouse event */\n readonly MouseEvent: MouseEvent;\n\n constructor(tree: TreeComponentRef, node: TreeNode, mouseEvent: MouseEvent) {\n super(tree, node);\n this.MouseEvent = mouseEvent;\n }\n}\n\n/**\n * Fired after a node double-click\n */\nexport class AfterNodeDoubleClickEventArgs extends NodeEventArgs {\n /** The mouse event */\n readonly MouseEvent: MouseEvent;\n\n constructor(tree: TreeComponentRef, node: TreeNode, mouseEvent: MouseEvent) {\n super(tree, node);\n this.MouseEvent = mouseEvent;\n }\n}\n\n// ========================================\n// Data Loading Events\n// ========================================\n\n/**\n * Fired before data load - can be canceled or configs modified\n */\nexport class BeforeDataLoadEventArgs extends CancelableTreeEventArgs {\n /** The branch configuration that will be used */\n readonly BranchConfig: TreeBranchConfig;\n\n /** The leaf configuration that will be used (if any) */\n readonly LeafConfig?: TreeLeafConfig;\n\n /** Set to modify the extra filter for branches */\n ModifiedBranchFilter?: string;\n\n /** Set to modify the extra filter for leaves */\n ModifiedLeafFilter?: string;\n\n constructor(\n tree: TreeComponentRef,\n branchConfig: TreeBranchConfig,\n leafConfig?: TreeLeafConfig\n ) {\n super(tree);\n this.BranchConfig = { ...branchConfig };\n this.LeafConfig = leafConfig ? { ...leafConfig } : undefined;\n }\n}\n\n/**\n * Fired after data load\n */\nexport class AfterDataLoadEventArgs extends TreeEventArgs {\n /** Whether the load was successful */\n readonly Success: boolean;\n\n /** Total number of branch nodes loaded */\n readonly BranchCount: number;\n\n /** Total number of leaf nodes loaded */\n readonly LeafCount: number;\n\n /** Total number of all nodes */\n readonly TotalNodes: number;\n\n /** Time taken to load in milliseconds */\n readonly LoadTimeMs: number;\n\n /** Error message if load failed */\n readonly Error?: string;\n\n constructor(\n tree: TreeComponentRef,\n success: boolean,\n branchCount: number,\n leafCount: number,\n loadTimeMs: number,\n error?: string\n ) {\n super(tree);\n this.Success = success;\n this.BranchCount = branchCount;\n this.LeafCount = leafCount;\n this.TotalNodes = branchCount + leafCount;\n this.LoadTimeMs = loadTimeMs;\n this.Error = error;\n }\n}\n\n// ========================================\n// Search Events\n// ========================================\n\n/**\n * Fired before search is applied - can be canceled or modified\n */\nexport class BeforeSearchEventArgs extends CancelableTreeEventArgs {\n /** The search text entered */\n readonly SearchText: string;\n\n /** Set to modify the search text */\n ModifiedSearchText?: string;\n\n constructor(tree: TreeComponentRef, searchText: string) {\n super(tree);\n this.SearchText = searchText;\n }\n}\n\n/**\n * Fired after search is applied\n */\nexport class AfterSearchEventArgs extends TreeEventArgs {\n /** The search text that was used */\n readonly SearchText: string;\n\n /** Number of nodes matching the search */\n readonly MatchCount: number;\n\n /** Number of branch nodes matching */\n readonly BranchMatchCount: number;\n\n /** Number of leaf nodes matching */\n readonly LeafMatchCount: number;\n\n /** The matching nodes */\n readonly MatchedNodes: TreeNode[];\n\n constructor(\n tree: TreeComponentRef,\n searchText: string,\n matchedNodes: TreeNode[]\n ) {\n super(tree);\n this.SearchText = searchText;\n this.MatchedNodes = [...matchedNodes];\n this.MatchCount = matchedNodes.length;\n this.BranchMatchCount = matchedNodes.filter(n => n.Type === 'branch').length;\n this.LeafMatchCount = matchedNodes.filter(n => n.Type === 'leaf').length;\n }\n}\n\n/**\n * Fired when search is cleared\n */\nexport class SearchClearedEventArgs extends TreeEventArgs {\n /** The previous search text */\n readonly PreviousSearchText: string;\n\n constructor(tree: TreeComponentRef, previousSearchText: string) {\n super(tree);\n this.PreviousSearchText = previousSearchText;\n }\n}\n\n// ========================================\n// Dropdown Events\n// ========================================\n\n/**\n * Fired before dropdown opens - can be canceled\n */\nexport class BeforeDropdownOpenEventArgs extends CancelableTreeEventArgs {\n constructor(tree: TreeComponentRef) {\n super(tree);\n }\n}\n\n/**\n * Fired after dropdown opens\n */\nexport class AfterDropdownOpenEventArgs extends TreeEventArgs {\n /** The position where dropdown was rendered */\n readonly Position: 'above' | 'below';\n\n constructor(tree: TreeComponentRef, position: 'above' | 'below') {\n super(tree);\n this.Position = position;\n }\n}\n\n/**\n * Fired before dropdown closes - can be canceled\n */\nexport class BeforeDropdownCloseEventArgs extends CancelableTreeEventArgs {\n /** Reason for closing */\n readonly Reason: 'selection' | 'escape' | 'outsideClick' | 'programmatic';\n\n constructor(tree: TreeComponentRef, reason: 'selection' | 'escape' | 'outsideClick' | 'programmatic') {\n super(tree);\n this.Reason = reason;\n }\n}\n\n/**\n * Fired after dropdown closes\n */\nexport class AfterDropdownCloseEventArgs extends TreeEventArgs {\n /** Reason dropdown was closed */\n readonly Reason: 'selection' | 'escape' | 'outsideClick' | 'programmatic';\n\n constructor(tree: TreeComponentRef, reason: 'selection' | 'escape' | 'outsideClick' | 'programmatic') {\n super(tree);\n this.Reason = reason;\n }\n}\n\n// ========================================\n// Keyboard Navigation Events\n// ========================================\n\n/**\n * Fired before keyboard navigation - can be canceled\n */\nexport class BeforeKeyboardNavigateEventArgs extends CancelableTreeEventArgs {\n /** The keyboard event */\n readonly KeyboardEvent: KeyboardEvent;\n\n /** The key that was pressed */\n readonly Key: string;\n\n /** The currently focused node (if any) */\n readonly CurrentNode: TreeNode | null;\n\n /** The node that will be focused */\n readonly TargetNode: TreeNode | null;\n\n constructor(\n tree: TreeComponentRef,\n keyboardEvent: KeyboardEvent,\n currentNode: TreeNode | null,\n targetNode: TreeNode | null\n ) {\n super(tree);\n this.KeyboardEvent = keyboardEvent;\n this.Key = keyboardEvent.key;\n this.CurrentNode = currentNode;\n this.TargetNode = targetNode;\n }\n}\n\n/**\n * Fired after keyboard navigation\n */\nexport class AfterKeyboardNavigateEventArgs extends TreeEventArgs {\n /** The key that was pressed */\n readonly Key: string;\n\n /** The previously focused node */\n readonly PreviousNode: TreeNode | null;\n\n /** The newly focused node */\n readonly CurrentNode: TreeNode | null;\n\n constructor(\n tree: TreeComponentRef,\n key: string,\n previousNode: TreeNode | null,\n currentNode: TreeNode | null\n ) {\n super(tree);\n this.Key = key;\n this.PreviousNode = previousNode;\n this.CurrentNode = currentNode;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-types.js","sourceRoot":"","sources":["../../../src/lib/models/tree-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+VH,2CAA2C;AAC3C,mBAAmB;AACnB,2CAA2C;AAE3C;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAA6B,EAAE;IACjE,OAAO;QACH,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,EAAE;QACd,GAAG,OAAO;KACb,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAAqC,EAAE;IAC7E,OAAO;QACH,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,UAAU;QACzB,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,UAAU;QACnB,GAAG,OAAO;KACb,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAmC,EAAE;IACzE,OAAO;QACH,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,UAAU;QACnB,GAAG,OAAO;KACb,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"tree-types.js","sourceRoot":"","sources":["../../../src/lib/models/tree-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+VH,2CAA2C;AAC3C,mBAAmB;AACnB,2CAA2C;AAE3C;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAA6B,EAAE;IACjE,OAAO;QACH,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,EAAE;QACd,GAAG,OAAO;KACb,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,UAAqC,EAAE;IAC7E,OAAO;QACH,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,UAAU;QACzB,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,UAAU;QACnB,GAAG,OAAO;KACb,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAmC,EAAE;IACzE,OAAO;QACH,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,UAAU;QACnB,GAAG,OAAO;KACb,CAAC;AACN,CAAC","sourcesContent":["/**\n * Tree Types and Interfaces for @memberjunction/ng-trees\n */\n\n// ========================================\n// Entity Configuration Types\n// ========================================\n\n/**\n * Configuration for the tree's branch (category/folder) entity.\n * Branches can contain other branches and/or leaf nodes.\n */\nexport interface TreeBranchConfig {\n /** Entity name for branch nodes (e.g., 'MJ: Query Categories') */\n EntityName: string;\n\n /** Field to display as node label (default: 'Name') */\n DisplayField?: string;\n\n /** Primary key field (default: 'ID') */\n IDField?: string;\n\n /** Parent ID field for hierarchy (default: 'ParentID') */\n ParentIDField?: string;\n\n /** Field name for node icon (dynamic per-node) */\n IconField?: string;\n\n /** Static icon if IconField not provided (default: 'fa-solid fa-folder') */\n DefaultIcon?: string;\n\n /** Field name for icon/folder color */\n ColorField?: string;\n\n /** Default color if ColorField not provided */\n DefaultColor?: string;\n\n /** Optional extra filter for RunView */\n ExtraFilter?: string;\n\n /** Optional order by clause (default: 'Name ASC') */\n OrderBy?: string;\n\n /** Optional field to show as secondary text/description */\n DescriptionField?: string;\n\n /** Optional field for badge/count display */\n BadgeField?: string;\n\n /** Whether to cache results locally (default: true) */\n CacheLocal?: boolean;\n}\n\n/**\n * Configuration for M2M junction table relationships.\n * Used when leaves relate to branches through an intermediate junction table.\n */\nexport interface TreeJunctionConfig {\n /** Junction entity name (e.g., 'MJ: Collection Artifacts') */\n EntityName: string;\n\n /** Field in junction that references the leaf entity (e.g., 'ArtifactVersionID') */\n LeafForeignKey: string;\n\n /** Field in junction that references the branch entity (e.g., 'CollectionID') */\n BranchForeignKey: string;\n\n /** Optional extra filter for the junction query */\n ExtraFilter?: string;\n\n /** Whether to cache junction results locally (default: true) */\n CacheLocal?: boolean;\n\n /**\n * Optional indirect mapping when junction references an intermediate entity.\n * Example: CollectionArtifact.ArtifactVersionID -> ArtifactVersion.ArtifactID -> Artifact.ID\n */\n IndirectLeafMapping?: {\n /** Intermediate entity name (e.g., 'MJ: Artifact Versions') */\n IntermediateEntity: string;\n\n /** ID field in intermediate entity that junction references (e.g., 'ID') */\n IntermediateIDField: string;\n\n /** Field in intermediate entity that points to the actual leaf (e.g., 'ArtifactID') */\n LeafIDField: string;\n\n /** Optional extra filter for the intermediate entity query */\n ExtraFilter?: string;\n\n /** Whether to cache intermediate results locally (default: true) */\n CacheLocal?: boolean;\n };\n}\n\n/**\n * Configuration for the tree's leaf entity (optional).\n * Leaf nodes are the selectable items within branch nodes.\n */\nexport interface TreeLeafConfig {\n /** Entity name for leaf nodes (e.g., 'Queries') */\n EntityName: string;\n\n /**\n * Field that links to parent branch (e.g., 'CategoryID').\n * Leave empty string if using JunctionConfig for M2M relationships.\n */\n ParentField: string;\n\n /** Field to display as node label (default: 'Name') */\n DisplayField?: string;\n\n /** Primary key field (default: 'ID') */\n IDField?: string;\n\n /** Field name for node icon (dynamic per-node) */\n IconField?: string;\n\n /** Static icon for all leaves (default: 'fa-solid fa-file') */\n DefaultIcon?: string;\n\n /** Optional extra filter for RunView */\n ExtraFilter?: string;\n\n /** Optional order by clause (default: 'Name ASC') */\n OrderBy?: string;\n\n /** Optional field to show as secondary text/description */\n DescriptionField?: string;\n\n /** Optional field for badge/count display */\n BadgeField?: string;\n\n /**\n * Optional M2M junction configuration for indirect parent relationships.\n * When specified, leaves are parented to branches based on junction table lookups\n * instead of using the direct ParentField.\n */\n JunctionConfig?: TreeJunctionConfig;\n\n /** Whether to cache results locally (default: true) */\n CacheLocal?: boolean;\n}\n\n// ========================================\n// Tree Node Types\n// ========================================\n\n/**\n * Node type identifier\n */\nexport type TreeNodeType = 'branch' | 'leaf';\n\n/**\n * Internal tree node representation\n */\nexport interface TreeNode {\n /** Unique identifier */\n ID: string;\n\n /** Display text (from DisplayField) */\n Label: string;\n\n /** Node type: branch (folder) or leaf (item) */\n Type: TreeNodeType;\n\n /** Parent node ID (null for root nodes) */\n ParentID: string | null;\n\n /** Icon class (Font Awesome or similar) */\n Icon: string;\n\n /** Icon color (CSS color value) */\n Color?: string;\n\n /** Original entity data for custom access */\n Data: Record<string, unknown>;\n\n /** Child nodes (branches and/or leaves) */\n Children: TreeNode[];\n\n /** UI state: is node expanded */\n Expanded: boolean;\n\n /** UI state: is node selected */\n Selected: boolean;\n\n /** Depth level (0 = root) */\n Level: number;\n\n /** Is this node currently loading children */\n Loading: boolean;\n\n /** Secondary description text */\n Description?: string;\n\n /** Badge text (e.g., count) */\n Badge?: string;\n\n /** Is this node visible (for filtering) */\n Visible: boolean;\n\n /** Does this node match the current search */\n MatchesSearch: boolean;\n\n /** Entity name this node came from */\n EntityName: string;\n}\n\n// ========================================\n// Selection Types\n// ========================================\n\n/**\n * Selection mode for the tree\n */\nexport type TreeSelectionMode = 'single' | 'multiple' | 'none';\n\n/**\n * What node types can be selected\n */\nexport type TreeSelectableTypes = 'branch' | 'leaf' | 'both';\n\n// ========================================\n// Component Configuration Types\n// ========================================\n\n/**\n * CSS class overrides for tree styling\n */\nexport interface TreeStyleConfig {\n /** Class for the tree container */\n ContainerClass?: string;\n\n /** Class for tree nodes */\n NodeClass?: string;\n\n /** Class for selected nodes */\n SelectedClass?: string;\n\n /** Class for hovered nodes */\n HoverClass?: string;\n\n /** Class for branch nodes */\n BranchClass?: string;\n\n /** Class for leaf nodes */\n LeafClass?: string;\n\n /** Class for expanded branches */\n ExpandedClass?: string;\n\n /** Class for the dropdown container */\n DropdownClass?: string;\n\n /** Class for the search input */\n SearchInputClass?: string;\n}\n\n/**\n * Keyboard navigation configuration\n */\nexport interface TreeKeyboardConfig {\n /** Enable keyboard navigation (default: true) */\n Enabled?: boolean;\n\n /** Enable type-ahead search (default: true) */\n TypeAhead?: boolean;\n\n /** Key to expand node (default: 'ArrowRight') */\n ExpandKey?: string;\n\n /** Key to collapse node (default: 'ArrowLeft') */\n CollapseKey?: string;\n\n /** Key to select node (default: 'Enter' or 'Space') */\n SelectKey?: string;\n}\n\n// ========================================\n// Dropdown Configuration Types\n// ========================================\n\n/**\n * Dropdown positioning preference\n */\nexport type DropdownPosition = 'auto' | 'below' | 'above';\n\n/**\n * Configuration for dropdown behavior\n */\nexport interface TreeDropdownConfig {\n /** Preferred position (default: 'auto') */\n Position?: DropdownPosition;\n\n /** Max height of dropdown (default: '300px') */\n MaxHeight?: string;\n\n /** Min width of dropdown (default: match input) */\n MinWidth?: string;\n\n /** Close on outside click (default: true) */\n CloseOnOutsideClick?: boolean;\n\n /** Close on selection (single mode only, default: true) */\n CloseOnSelect?: boolean;\n\n /** Close on escape key (default: true) */\n CloseOnEscape?: boolean;\n\n /** Animation duration in ms (default: 150) */\n AnimationDuration?: number;\n}\n\n// ========================================\n// Search Configuration Types\n// ========================================\n\n/**\n * Configuration for search behavior\n */\nexport interface TreeSearchConfig {\n /** Enable search (default: true for dropdown) */\n Enabled?: boolean;\n\n /** Placeholder text */\n Placeholder?: string;\n\n /** Minimum characters to trigger search (default: 1) */\n MinLength?: number;\n\n /** Debounce time in ms (default: 200) */\n DebounceMs?: number;\n\n /** Search branches (default: true) */\n SearchBranches?: boolean;\n\n /** Search leaves (default: true) */\n SearchLeaves?: boolean;\n\n /** Case sensitive search (default: false) */\n CaseSensitive?: boolean;\n\n /** Search in description field too (default: false) */\n SearchDescription?: boolean;\n\n /** Highlight matching text (default: true) */\n HighlightMatches?: boolean;\n\n /** Auto-expand to show matches (default: true) */\n AutoExpandMatches?: boolean;\n}\n\n// ========================================\n// Helper Functions\n// ========================================\n\n/**\n * Create a default TreeNode\n */\nexport function createDefaultTreeNode(partial: Partial<TreeNode> = {}): TreeNode {\n return {\n ID: '',\n Label: '',\n Type: 'branch',\n ParentID: null,\n Icon: 'fa-solid fa-folder',\n Data: {},\n Children: [],\n Expanded: false,\n Selected: false,\n Level: 0,\n Loading: false,\n Visible: true,\n MatchesSearch: false,\n EntityName: '',\n ...partial\n };\n}\n\n/**\n * Create default branch config with sensible defaults\n */\nexport function createDefaultBranchConfig(partial: Partial<TreeBranchConfig> = {}): TreeBranchConfig {\n return {\n EntityName: '',\n DisplayField: 'Name',\n IDField: 'ID',\n ParentIDField: 'ParentID',\n DefaultIcon: 'fa-solid fa-folder',\n OrderBy: 'Name ASC',\n ...partial\n };\n}\n\n/**\n * Create default leaf config with sensible defaults\n */\nexport function createDefaultLeafConfig(partial: Partial<TreeLeafConfig> = {}): TreeLeafConfig {\n return {\n EntityName: '',\n ParentField: '',\n DisplayField: 'Name',\n IDField: 'ID',\n DefaultIcon: 'fa-solid fa-file',\n OrderBy: 'Name ASC',\n ...partial\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-trees.module.js","sourceRoot":"","sources":["../../src/lib/ng-trees.module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;AAgBhF,MAAM,OAAO,aAAa;uGAAb,aAAa;4DAAb,aAAa;gEARlB,YAAY;YACZ,WAAW;;iFAON,aAAa;cAdzB,QAAQ;eAAC;gBACN,YAAY,EAAE;oBACV,aAAa;oBACb,qBAAqB;iBACxB;gBACD,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;iBACd;gBACD,OAAO,EAAE;oBACL,aAAa;oBACb,qBAAqB;iBACxB;aACJ;;wFACY,aAAa,mBAZlB,aAAa;QACb,qBAAqB,aAGrB,YAAY;QACZ,WAAW,aAGX,aAAa;QACb,qBAAqB"}
|
|
1
|
+
{"version":3,"file":"ng-trees.module.js","sourceRoot":"","sources":["../../src/lib/ng-trees.module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;AAgBhF,MAAM,OAAO,aAAa;uGAAb,aAAa;4DAAb,aAAa;gEARlB,YAAY;YACZ,WAAW;;iFAON,aAAa;cAdzB,QAAQ;eAAC;gBACN,YAAY,EAAE;oBACV,aAAa;oBACb,qBAAqB;iBACxB;gBACD,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;iBACd;gBACD,OAAO,EAAE;oBACL,aAAa;oBACb,qBAAqB;iBACxB;aACJ;;wFACY,aAAa,mBAZlB,aAAa;QACb,qBAAqB,aAGrB,YAAY;QACZ,WAAW,aAGX,aAAa;QACb,qBAAqB","sourcesContent":["/**\n * NgTrees Module for @memberjunction/ng-trees\n *\n * Provides tree and tree dropdown components for hierarchical entity selection.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n// Components\nimport { TreeComponent } from './tree/tree.component';\nimport { TreeDropdownComponent } from './tree-dropdown/tree-dropdown.component';\n\n@NgModule({\n declarations: [\n TreeComponent,\n TreeDropdownComponent\n ],\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [\n TreeComponent,\n TreeDropdownComponent\n ]\n})\nexport class NgTreesModule { }\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.component.js","sourceRoot":"","sources":["../../../src/lib/tree/tree.component.ts","../../../src/lib/tree/tree.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree.component.js","sourceRoot":"","sources":["../../../src/lib/tree/tree.component.ts","../../../src/lib/tree/tree.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tree Component for @memberjunction/ng-trees\n *\n * A generic, reusable tree component for displaying hierarchical entity data.\n */\n\nimport {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n ElementRef,\n HostListener\n} from '@angular/core';\nimport { RunView } from '@memberjunction/core';\nimport {\n TreeNode,\n TreeBranchConfig,\n TreeLeafConfig,\n TreeJunctionConfig,\n TreeSelectionMode,\n TreeSelectableTypes,\n TreeStyleConfig,\n TreeKeyboardConfig,\n createDefaultTreeNode\n} from '../models/tree-types';\nimport {\n BeforeNodeSelectEventArgs,\n AfterNodeSelectEventArgs,\n BeforeNodeDeselectEventArgs,\n AfterNodeDeselectEventArgs,\n BeforeNodeExpandEventArgs,\n AfterNodeExpandEventArgs,\n BeforeNodeCollapseEventArgs,\n AfterNodeCollapseEventArgs,\n BeforeNodeClickEventArgs,\n AfterNodeClickEventArgs,\n BeforeNodeDoubleClickEventArgs,\n AfterNodeDoubleClickEventArgs,\n BeforeDataLoadEventArgs,\n AfterDataLoadEventArgs,\n BeforeKeyboardNavigateEventArgs,\n AfterKeyboardNavigateEventArgs\n} from '../events/tree-events';\n\n@Component({\n standalone: false,\n selector: 'mj-tree',\n templateUrl: './tree.component.html',\n styleUrls: ['./tree.component.css']\n})\nexport class TreeComponent implements OnInit, OnDestroy {\n // ========================================\n // Configuration Inputs with Getter/Setter\n // ========================================\n\n /** Branch (category) entity configuration - REQUIRED */\n private _branchConfig: TreeBranchConfig | null = null;\n @Input()\n set BranchConfig(value: TreeBranchConfig) {\n const previousValue = this._branchConfig;\n this._branchConfig = value;\n // Only reload if config actually changed and we have a valid config\n if (value && previousValue !== value && this.isInitialized) {\n this.clearCache();\n if (this._autoLoad) {\n this.loadData(false);\n }\n }\n }\n get BranchConfig(): TreeBranchConfig {\n return this._branchConfig!;\n }\n\n /** Optional leaf entity configuration */\n private _leafConfig?: TreeLeafConfig;\n @Input()\n set LeafConfig(value: TreeLeafConfig | undefined) {\n const previousValue = this._leafConfig;\n this._leafConfig = value;\n // Only reload if config actually changed\n if (previousValue !== value && this._branchConfig && this.isInitialized) {\n this.clearCache();\n if (this._autoLoad) {\n this.loadData(false);\n }\n }\n }\n get LeafConfig(): TreeLeafConfig | undefined {\n return this._leafConfig;\n }\n\n /** Selection mode: 'single', 'multiple', or 'none' */\n private _selectionMode: TreeSelectionMode = 'single';\n @Input()\n set SelectionMode(value: TreeSelectionMode) {\n this._selectionMode = value;\n }\n get SelectionMode(): TreeSelectionMode {\n return this._selectionMode;\n }\n\n /** What types can be selected: 'branch', 'leaf', or 'both' */\n private _selectableTypes: TreeSelectableTypes = 'both';\n @Input()\n set SelectableTypes(value: TreeSelectableTypes) {\n this._selectableTypes = value;\n }\n get SelectableTypes(): TreeSelectableTypes {\n return this._selectableTypes;\n }\n\n /** Initially selected node IDs */\n private _selectedIDs: string[] = [];\n @Input()\n set SelectedIDs(value: string[]) {\n const previousValue = this._selectedIDs;\n this._selectedIDs = value || [];\n // Only sync selection if the IDs actually changed\n if (this.isInitialized && this.IsLoaded && JSON.stringify(previousValue) !== JSON.stringify(value)) {\n this.syncSelectionFromIDs();\n }\n }\n get SelectedIDs(): string[] {\n return this._selectedIDs;\n }\n\n /** Initially expanded node IDs (null = auto-expand first level) */\n private _expandedIDs: string[] | null = null;\n @Input()\n set ExpandedIDs(value: string[] | null) {\n this._expandedIDs = value;\n }\n get ExpandedIDs(): string[] | null {\n return this._expandedIDs;\n }\n\n /** Show expand/collapse all buttons */\n private _showExpandCollapseAll: boolean = false;\n @Input()\n set ShowExpandCollapseAll(value: boolean) {\n this._showExpandCollapseAll = value;\n }\n get ShowExpandCollapseAll(): boolean {\n return this._showExpandCollapseAll;\n }\n\n /** Enable keyboard navigation */\n private _enableKeyboardNavigation: boolean = true;\n @Input()\n set EnableKeyboardNavigation(value: boolean) {\n this._enableKeyboardNavigation = value;\n }\n get EnableKeyboardNavigation(): boolean {\n return this._enableKeyboardNavigation;\n }\n\n /** Keyboard configuration */\n private _keyboardConfig: TreeKeyboardConfig = {};\n @Input()\n set KeyboardConfig(value: TreeKeyboardConfig) {\n this._keyboardConfig = value || {};\n }\n get KeyboardConfig(): TreeKeyboardConfig {\n return this._keyboardConfig;\n }\n\n /** CSS style overrides */\n private _styleConfig: TreeStyleConfig = {};\n @Input()\n set StyleConfig(value: TreeStyleConfig) {\n this._styleConfig = value || {};\n }\n get StyleConfig(): TreeStyleConfig {\n return this._styleConfig;\n }\n\n /** Indent per level in pixels */\n private _indentSize: number = 20;\n @Input()\n set IndentSize(value: number) {\n this._indentSize = value;\n }\n get IndentSize(): number {\n return this._indentSize;\n }\n\n /** Show loading indicator */\n private _showLoading: boolean = true;\n @Input()\n set ShowLoading(value: boolean) {\n this._showLoading = value;\n }\n get ShowLoading(): boolean {\n return this._showLoading;\n }\n\n /** Empty state message */\n private _emptyMessage: string = 'No items found';\n @Input()\n set EmptyMessage(value: string) {\n this._emptyMessage = value;\n }\n get EmptyMessage(): string {\n return this._emptyMessage;\n }\n\n /** Empty state icon */\n private _emptyIcon: string = 'fa-solid fa-folder-open';\n @Input()\n set EmptyIcon(value: string) {\n this._emptyIcon = value;\n }\n get EmptyIcon(): string {\n return this._emptyIcon;\n }\n\n /** Auto-load data on init */\n private _autoLoad: boolean = true;\n @Input()\n set AutoLoad(value: boolean) {\n this._autoLoad = value;\n }\n get AutoLoad(): boolean {\n return this._autoLoad;\n }\n\n /** Show node icons */\n private _showIcons: boolean = true;\n @Input()\n set ShowIcons(value: boolean) {\n this._showIcons = value;\n }\n get ShowIcons(): boolean {\n return this._showIcons;\n }\n\n /** Show node descriptions */\n private _showDescriptions: boolean = false;\n @Input()\n set ShowDescriptions(value: boolean) {\n this._showDescriptions = value;\n }\n get ShowDescriptions(): boolean {\n return this._showDescriptions;\n }\n\n /** Show node badges */\n private _showBadges: boolean = true;\n @Input()\n set ShowBadges(value: boolean) {\n this._showBadges = value;\n }\n get ShowBadges(): boolean {\n return this._showBadges;\n }\n\n /** Animate expand/collapse */\n private _animateExpandCollapse: boolean = true;\n @Input()\n set AnimateExpandCollapse(value: boolean) {\n this._animateExpandCollapse = value;\n }\n get AnimateExpandCollapse(): boolean {\n return this._animateExpandCollapse;\n }\n\n // ========================================\n // Event Outputs\n // ========================================\n\n @Output() BeforeNodeSelect = new EventEmitter<BeforeNodeSelectEventArgs>();\n @Output() AfterNodeSelect = new EventEmitter<AfterNodeSelectEventArgs>();\n @Output() BeforeNodeDeselect = new EventEmitter<BeforeNodeDeselectEventArgs>();\n @Output() AfterNodeDeselect = new EventEmitter<AfterNodeDeselectEventArgs>();\n @Output() BeforeNodeExpand = new EventEmitter<BeforeNodeExpandEventArgs>();\n @Output() AfterNodeExpand = new EventEmitter<AfterNodeExpandEventArgs>();\n @Output() BeforeNodeCollapse = new EventEmitter<BeforeNodeCollapseEventArgs>();\n @Output() AfterNodeCollapse = new EventEmitter<AfterNodeCollapseEventArgs>();\n @Output() BeforeNodeClick = new EventEmitter<BeforeNodeClickEventArgs>();\n @Output() AfterNodeClick = new EventEmitter<AfterNodeClickEventArgs>();\n @Output() BeforeNodeDoubleClick = new EventEmitter<BeforeNodeDoubleClickEventArgs>();\n @Output() AfterNodeDoubleClick = new EventEmitter<AfterNodeDoubleClickEventArgs>();\n @Output() BeforeDataLoad = new EventEmitter<BeforeDataLoadEventArgs>();\n @Output() AfterDataLoad = new EventEmitter<AfterDataLoadEventArgs>();\n @Output() BeforeKeyboardNavigate = new EventEmitter<BeforeKeyboardNavigateEventArgs>();\n @Output() AfterKeyboardNavigate = new EventEmitter<AfterKeyboardNavigateEventArgs>();\n\n /** Emitted when selection changes (convenience event with just the selected nodes) */\n @Output() SelectionChange = new EventEmitter<TreeNode[]>();\n\n // ========================================\n // State\n // ========================================\n\n /** Root nodes of the tree */\n public Nodes: TreeNode[] = [];\n\n /** All branch nodes (flat) */\n public AllBranches: TreeNode[] = [];\n\n /** All leaf nodes (flat) */\n public AllLeaves: TreeNode[] = [];\n\n /** Currently selected nodes */\n public SelectedNodes: TreeNode[] = [];\n\n /** Currently focused node (for keyboard navigation) */\n public FocusedNode: TreeNode | null = null;\n\n /** Loading state */\n public IsLoading: boolean = false;\n\n /** Error message if load failed */\n public ErrorMessage: string | null = null;\n\n /** Has data been loaded */\n public IsLoaded: boolean = false;\n\n /** Current search text (for highlighting) */\n public CurrentSearchText: string = '';\n\n // ========================================\n // Private State\n // ========================================\n\n private nodeMap: Map<string, TreeNode> = new Map();\n private isInitialized: boolean = false;\n private isCurrentlyLoading: boolean = false;\n\n /** Instance-level cache for loaded data */\n private cachedNodes: TreeNode[] | null = null;\n private cachedBranches: TreeNode[] | null = null;\n private cachedLeaves: TreeNode[] | null = null;\n\n // ========================================\n // Constructor\n // ========================================\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) {}\n\n // ========================================\n // Lifecycle\n // ========================================\n\n ngOnInit(): void {\n this.isInitialized = true;\n if (this._autoLoad && this._branchConfig) {\n this.loadData(false);\n }\n }\n\n ngOnDestroy(): void {\n this.clearCache();\n }\n\n // ========================================\n // Public Methods\n // ========================================\n\n /**\n * Reload tree data (forces fresh load from database)\n */\n public async Refresh(): Promise<void> {\n this.clearCache();\n await this.loadData(true);\n }\n\n /**\n * Get currently selected nodes\n */\n public GetSelectedNodes(): TreeNode[] {\n return [...this.SelectedNodes];\n }\n\n /**\n * Get selected IDs\n */\n public GetSelectedIDs(): string[] {\n return this.SelectedNodes.map(n => n.ID);\n }\n\n /**\n * Programmatically select node(s)\n * @param emitChange Whether to emit SelectionChange event (default: true).\n * Set to false during sync operations to avoid unnecessary events.\n */\n public SelectNodes(ids: string[], emitChange: boolean = true): void {\n const previousSelection = [...this.SelectedNodes];\n const previousIds = previousSelection.map(n => n.ID).sort().join(',');\n\n if (this._selectionMode === 'single' && ids.length > 0) {\n ids = [ids[0]];\n }\n\n this.SelectedNodes = [];\n for (const id of ids) {\n const node = this.nodeMap.get(id);\n if (node && this.isNodeSelectable(node)) {\n node.Selected = true;\n this.SelectedNodes.push(node);\n }\n }\n\n // Deselect previously selected nodes not in new selection\n for (const prev of previousSelection) {\n if (!this.SelectedNodes.includes(prev)) {\n prev.Selected = false;\n }\n }\n\n // Only emit if selection actually changed\n const newIds = this.SelectedNodes.map(n => n.ID).sort().join(',');\n if (emitChange && previousIds !== newIds) {\n this.SelectionChange.emit([...this.SelectedNodes]);\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Clear selection\n */\n public ClearSelection(): void {\n for (const node of this.SelectedNodes) {\n node.Selected = false;\n }\n this.SelectedNodes = [];\n this.SelectionChange.emit([]);\n this.cdr.detectChanges();\n }\n\n /**\n * Expand all nodes\n */\n public ExpandAll(): void {\n this.expandAllRecursive(this.Nodes);\n this.cdr.detectChanges();\n }\n\n /**\n * Collapse all nodes\n */\n public CollapseAll(): void {\n this.collapseAllRecursive(this.Nodes);\n this.cdr.detectChanges();\n }\n\n /**\n * Expand to specific node (expands all ancestors)\n */\n public ExpandToNode(id: string): TreeNode | null {\n const target = this.nodeMap.get(id);\n if (!target) {\n return null;\n }\n\n // Walk up the tree and expand each ancestor\n let current = target;\n while (current.ParentID && this.nodeMap.has(current.ParentID)) {\n const parent = this.nodeMap.get(current.ParentID)!;\n parent.Expanded = true;\n current = parent;\n }\n\n this.cdr.detectChanges();\n return target;\n }\n\n /**\n * Find node by ID\n */\n public FindNode(id: string): TreeNode | null {\n return this.nodeMap.get(id) || null;\n }\n\n /**\n * Get all nodes matching a predicate\n */\n public FindNodes(predicate: (node: TreeNode) => boolean): TreeNode[] {\n const results: TreeNode[] = [];\n for (const node of this.nodeMap.values()) {\n if (predicate(node)) {\n results.push(node);\n }\n }\n return results;\n }\n\n /**\n * Filter nodes by search text\n */\n public FilterNodes(\n searchText: string,\n options: {\n caseSensitive?: boolean;\n searchBranches?: boolean;\n searchLeaves?: boolean;\n searchDescription?: boolean;\n } = {}\n ): TreeNode[] {\n const {\n caseSensitive = false,\n searchBranches = true,\n searchLeaves = true,\n searchDescription = false\n } = options;\n\n // Store search text for highlighting\n this.CurrentSearchText = searchText.trim();\n\n if (!searchText.trim()) {\n // Reset all nodes to visible\n this.setVisibilityRecursive(this.Nodes, true, false);\n this.cdr.detectChanges();\n return [];\n }\n\n const searchLower = caseSensitive ? searchText : searchText.toLowerCase();\n const matchedNodes: TreeNode[] = [];\n\n // First pass: mark matching nodes\n this.markMatchingNodesRecursive(\n this.Nodes,\n searchLower,\n caseSensitive,\n searchBranches,\n searchLeaves,\n searchDescription,\n matchedNodes\n );\n\n // Second pass: make ancestors of matches visible\n this.makeAncestorsVisibleRecursive(this.Nodes);\n\n this.cdr.detectChanges();\n return matchedNodes;\n }\n\n /**\n * Clear cache (call before Refresh if you want fresh data)\n */\n public ClearCache(): void {\n this.clearCache();\n }\n\n // ========================================\n // Template Event Handlers\n // ========================================\n\n /**\n * Handle node click\n */\n public onNodeClick(node: TreeNode, event: MouseEvent): void {\n // Fire before click event\n const beforeClickEvent = new BeforeNodeClickEventArgs(this, node, event);\n this.BeforeNodeClick.emit(beforeClickEvent);\n\n if (beforeClickEvent.Cancel) {\n return;\n }\n\n // Set focus\n this.FocusedNode = node;\n\n // Handle toggle for branches\n if (node.Type === 'branch' && node.Children.length > 0) {\n // Click on the chevron area toggles expansion\n const target = event.target as HTMLElement;\n if (target.closest('.tree-node-toggle')) {\n this.toggleNodeExpansion(node);\n return;\n }\n }\n\n // Handle selection\n if (this._selectionMode !== 'none' && this.isNodeSelectable(node)) {\n this.handleNodeSelection(node, event);\n }\n\n // Fire after click event\n const afterClickEvent = new AfterNodeClickEventArgs(this, node, event);\n this.AfterNodeClick.emit(afterClickEvent);\n }\n\n /**\n * Handle node double-click\n */\n public onNodeDoubleClick(node: TreeNode, event: MouseEvent): void {\n // Fire before event\n const beforeEvent = new BeforeNodeDoubleClickEventArgs(this, node, event);\n this.BeforeNodeDoubleClick.emit(beforeEvent);\n\n if (beforeEvent.Cancel) {\n return;\n }\n\n // Toggle expansion for branches\n if (node.Type === 'branch') {\n this.toggleNodeExpansion(node);\n }\n\n // Fire after event\n const afterEvent = new AfterNodeDoubleClickEventArgs(this, node, event);\n this.AfterNodeDoubleClick.emit(afterEvent);\n }\n\n /**\n * Handle toggle click\n */\n public onToggleClick(node: TreeNode, event: MouseEvent): void {\n event.stopPropagation();\n this.toggleNodeExpansion(node);\n }\n\n // ========================================\n // Keyboard Navigation\n // ========================================\n\n @HostListener('keydown', ['$event'])\n public onKeyDown(event: KeyboardEvent): void {\n if (!this._enableKeyboardNavigation) {\n return;\n }\n\n const visibleNodes = this.getVisibleNodesInOrder(this.Nodes);\n if (visibleNodes.length === 0) {\n return;\n }\n\n const currentIndex = this.FocusedNode\n ? visibleNodes.indexOf(this.FocusedNode)\n : -1;\n\n let targetNode: TreeNode | null = null;\n let handled = false;\n\n switch (event.key) {\n case 'ArrowDown':\n if (currentIndex < visibleNodes.length - 1) {\n targetNode = visibleNodes[currentIndex + 1];\n }\n handled = true;\n break;\n\n case 'ArrowUp':\n if (currentIndex > 0) {\n targetNode = visibleNodes[currentIndex - 1];\n } else if (currentIndex === -1 && visibleNodes.length > 0) {\n targetNode = visibleNodes[visibleNodes.length - 1];\n }\n handled = true;\n break;\n\n case 'ArrowRight':\n if (this.FocusedNode?.Type === 'branch') {\n if (!this.FocusedNode.Expanded && this.FocusedNode.Children.length > 0) {\n this.expandNode(this.FocusedNode);\n } else if (this.FocusedNode.Expanded && this.FocusedNode.Children.length > 0) {\n // Move to first child\n const firstVisible = this.FocusedNode.Children.find(c => c.Visible);\n if (firstVisible) {\n targetNode = firstVisible;\n }\n }\n }\n handled = true;\n break;\n\n case 'ArrowLeft':\n if (this.FocusedNode?.Type === 'branch' && this.FocusedNode.Expanded) {\n this.collapseNode(this.FocusedNode);\n } else if (this.FocusedNode?.ParentID) {\n // Move to parent\n targetNode = this.nodeMap.get(this.FocusedNode.ParentID) || null;\n }\n handled = true;\n break;\n\n case 'Enter':\n case ' ':\n if (this.FocusedNode && this._selectionMode !== 'none' && this.isNodeSelectable(this.FocusedNode)) {\n this.handleNodeSelection(this.FocusedNode, event as unknown as MouseEvent);\n }\n handled = true;\n break;\n\n case 'Home':\n if (visibleNodes.length > 0) {\n targetNode = visibleNodes[0];\n }\n handled = true;\n break;\n\n case 'End':\n if (visibleNodes.length > 0) {\n targetNode = visibleNodes[visibleNodes.length - 1];\n }\n handled = true;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (targetNode && targetNode !== this.FocusedNode) {\n // Fire before navigate event\n const beforeEvent = new BeforeKeyboardNavigateEventArgs(\n this,\n event,\n this.FocusedNode,\n targetNode\n );\n this.BeforeKeyboardNavigate.emit(beforeEvent);\n\n if (!beforeEvent.Cancel) {\n const previousNode = this.FocusedNode;\n this.FocusedNode = targetNode;\n\n // Fire after navigate event\n const afterEvent = new AfterKeyboardNavigateEventArgs(\n this,\n event.key,\n previousNode,\n this.FocusedNode\n );\n this.AfterKeyboardNavigate.emit(afterEvent);\n\n this.scrollNodeIntoView(targetNode);\n this.cdr.detectChanges();\n }\n }\n }\n\n // ========================================\n // Private Methods - Data Loading\n // ========================================\n\n /**\n * Load tree data\n */\n private async loadData(forceRefresh: boolean): Promise<void> {\n if (!this._branchConfig) {\n console.warn('[TreeComponent] loadData() - BranchConfig is required');\n return;\n }\n\n // Prevent concurrent loads\n if (this.isCurrentlyLoading) {\n return;\n }\n\n // Check instance cache first (unless force refresh)\n if (!forceRefresh && this.cachedNodes) {\n this.Nodes = this.cloneNodes(this.cachedNodes);\n this.AllBranches = this.cloneNodes(this.cachedBranches || []);\n this.AllLeaves = this.cloneNodes(this.cachedLeaves || []);\n this.nodeMap = this.buildNodeMap(this.Nodes);\n this.applyInitialExpansion();\n this.syncSelectionFromIDs();\n this.IsLoaded = true;\n this.cdr.detectChanges();\n return;\n }\n\n // Fire before event\n const beforeEvent = new BeforeDataLoadEventArgs(this, this._branchConfig, this._leafConfig);\n this.BeforeDataLoad.emit(beforeEvent);\n\n if (beforeEvent.Cancel) {\n return;\n }\n\n this.isCurrentlyLoading = true;\n this.IsLoading = true;\n this.ErrorMessage = null;\n this.cdr.detectChanges();\n\n const startTime = performance.now();\n\n // Apply any modified filters from event\n const branchConfig = { ...this._branchConfig };\n if (beforeEvent.ModifiedBranchFilter !== undefined) {\n branchConfig.ExtraFilter = beforeEvent.ModifiedBranchFilter;\n }\n\n const leafConfig = this._leafConfig ? { ...this._leafConfig } : undefined;\n if (leafConfig && beforeEvent.ModifiedLeafFilter !== undefined) {\n leafConfig.ExtraFilter = beforeEvent.ModifiedLeafFilter;\n }\n\n try {\n // Load branches and leaves in parallel\n const [branchData, leafData] = await Promise.all([\n this.loadBranches(branchConfig),\n leafConfig ? this.loadLeaves(leafConfig) : Promise.resolve([])\n ]);\n\n // Build tree structure\n const { rootNodes, allBranches, branchMap } = this.buildBranchHierarchy(branchData, branchConfig);\n\n // Load junction mappings if configured (for M2M relationships)\n let junctionMappings: Map<string, string[]> | null = null;\n if (leafConfig?.JunctionConfig) {\n junctionMappings = await this.loadJunctionMappings(leafConfig.JunctionConfig, leafConfig.IDField || 'ID');\n }\n\n // Attach leaves to branches (or root if orphans)\n const allLeaves = this.attachLeavesToBranches(rootNodes, branchMap, leafData, leafConfig, junctionMappings);\n\n const loadTimeMs = performance.now() - startTime;\n\n // Store in instance cache\n this.cachedNodes = this.cloneNodes(rootNodes);\n this.cachedBranches = this.cloneNodes(allBranches);\n this.cachedLeaves = this.cloneNodes(allLeaves);\n\n // Set state\n this.Nodes = rootNodes;\n this.AllBranches = allBranches;\n this.AllLeaves = allLeaves;\n this.nodeMap = this.buildNodeMap(this.Nodes);\n this.IsLoading = false;\n this.IsLoaded = true;\n this.isCurrentlyLoading = false;\n\n // Apply initial expansion\n this.applyInitialExpansion();\n\n // Apply initial selection\n this.syncSelectionFromIDs();\n\n // Fire after event\n const afterEvent = new AfterDataLoadEventArgs(\n this,\n true,\n allBranches.length,\n allLeaves.length,\n loadTimeMs,\n undefined\n );\n this.AfterDataLoad.emit(afterEvent);\n\n } catch (error) {\n const loadTimeMs = performance.now() - startTime;\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error('[TreeComponent] loadData() error:', errorMessage, error);\n\n this.IsLoading = false;\n this.IsLoaded = true;\n this.isCurrentlyLoading = false;\n this.ErrorMessage = errorMessage;\n this.Nodes = [];\n this.AllBranches = [];\n this.AllLeaves = [];\n\n // Fire after event with error\n const afterEvent = new AfterDataLoadEventArgs(\n this,\n false,\n 0,\n 0,\n loadTimeMs,\n errorMessage\n );\n this.AfterDataLoad.emit(afterEvent);\n }\n\n this.cdr.detectChanges();\n }\n\n /**\n * Load branch entities from database\n */\n private async loadBranches(config: TreeBranchConfig): Promise<Record<string, unknown>[]> {\n const rv = new RunView();\n const result = await rv.RunView({\n EntityName: config.EntityName,\n ExtraFilter: config.ExtraFilter || '',\n OrderBy: config.OrderBy || 'Name ASC',\n ResultType: 'simple',\n CacheLocal: config.CacheLocal ?? true\n });\n\n console.log('[TreeComponent] Branches query result:', {\n entityName: config.EntityName,\n filter: config.ExtraFilter || '(none)',\n cacheLocal: config.CacheLocal ?? true,\n success: result.Success,\n recordCount: result.Results?.length || 0,\n records: result.Results?.map((r: Record<string, unknown>) => ({ ID: r['ID'], Name: r['Name'] }))\n });\n\n if (!result.Success) {\n throw new Error(`Failed to load branches: ${result.ErrorMessage}`);\n }\n\n return result.Results as Record<string, unknown>[];\n }\n\n /**\n * Load leaf entities from database\n */\n private async loadLeaves(config: TreeLeafConfig): Promise<Record<string, unknown>[]> {\n const rv = new RunView();\n const result = await rv.RunView({\n EntityName: config.EntityName,\n ExtraFilter: config.ExtraFilter || '',\n OrderBy: config.OrderBy || 'Name ASC',\n ResultType: 'simple',\n CacheLocal: config.CacheLocal ?? true\n });\n\n console.log('[TreeComponent] Leaves query result:', {\n entityName: config.EntityName,\n filter: config.ExtraFilter || '(none)',\n cacheLocal: config.CacheLocal ?? true,\n success: result.Success,\n recordCount: result.Results?.length || 0,\n records: result.Results?.map((r: Record<string, unknown>) => ({ ID: r['ID'], Name: r['Name'] }))\n });\n\n if (!result.Success) {\n throw new Error(`Failed to load leaves: ${result.ErrorMessage}`);\n }\n\n return result.Results as Record<string, unknown>[];\n }\n\n /**\n * Load junction mappings for M2M relationships.\n * Returns a map of leafId -> branchIds[]\n */\n private async loadJunctionMappings(\n junctionConfig: TreeJunctionConfig,\n leafIdField: string\n ): Promise<Map<string, string[]>> {\n const rv = new RunView();\n const mappings = new Map<string, string[]>();\n\n // Load junction records\n const junctionResult = await rv.RunView({\n EntityName: junctionConfig.EntityName,\n ExtraFilter: junctionConfig.ExtraFilter || '',\n ResultType: 'simple',\n CacheLocal: junctionConfig.CacheLocal ?? true\n });\n\n console.log('[TreeComponent] Junction query result:', {\n entityName: junctionConfig.EntityName,\n filter: junctionConfig.ExtraFilter || '(none)',\n cacheLocal: junctionConfig.CacheLocal ?? true,\n success: junctionResult.Success,\n recordCount: junctionResult.Results?.length || 0,\n records: junctionResult.Results\n });\n\n if (!junctionResult.Success) {\n console.warn(`Failed to load junction data: ${junctionResult.ErrorMessage}`);\n return mappings;\n }\n\n const junctionRecords = junctionResult.Results as Record<string, unknown>[];\n\n // If there's an indirect mapping, we need to resolve it\n if (junctionConfig.IndirectLeafMapping) {\n const indirect = junctionConfig.IndirectLeafMapping;\n\n // Load the intermediate entity records to build the mapping\n const intermediateResult = await rv.RunView({\n EntityName: indirect.IntermediateEntity,\n ExtraFilter: indirect.ExtraFilter || '',\n ResultType: 'simple',\n CacheLocal: indirect.CacheLocal ?? true\n });\n\n console.log('[TreeComponent] Intermediate entity query result:', {\n entityName: indirect.IntermediateEntity,\n filter: indirect.ExtraFilter || '(none)',\n cacheLocal: indirect.CacheLocal ?? true,\n success: intermediateResult.Success,\n recordCount: intermediateResult.Results?.length || 0,\n records: intermediateResult.Results\n });\n\n if (!intermediateResult.Success) {\n console.warn(`Failed to load intermediate data: ${intermediateResult.ErrorMessage}`);\n return mappings;\n }\n\n // Build intermediate ID -> leaf ID map\n const intermediateToLeaf = new Map<string, string>();\n for (const record of intermediateResult.Results as Record<string, unknown>[]) {\n const intermediateId = String(record[indirect.IntermediateIDField] || '');\n const leafId = String(record[indirect.LeafIDField] || '');\n if (intermediateId && leafId) {\n intermediateToLeaf.set(intermediateId, leafId);\n }\n }\n\n console.log('[TreeComponent] Intermediate to leaf mapping:', {\n mapSize: intermediateToLeaf.size,\n entries: Array.from(intermediateToLeaf.entries())\n });\n\n // Now process junction records using the intermediate mapping\n for (const junction of junctionRecords) {\n const intermediateId = String(junction[junctionConfig.LeafForeignKey] || '');\n const branchId = String(junction[junctionConfig.BranchForeignKey] || '');\n\n if (intermediateId && branchId) {\n const leafId = intermediateToLeaf.get(intermediateId);\n if (leafId) {\n if (!mappings.has(leafId)) {\n mappings.set(leafId, []);\n }\n const branchIds = mappings.get(leafId)!;\n if (!branchIds.includes(branchId)) {\n branchIds.push(branchId);\n }\n }\n }\n }\n } else {\n // Direct mapping - junction directly references the leaf\n for (const junction of junctionRecords) {\n const leafId = String(junction[junctionConfig.LeafForeignKey] || '');\n const branchId = String(junction[junctionConfig.BranchForeignKey] || '');\n\n if (leafId && branchId) {\n if (!mappings.has(leafId)) {\n mappings.set(leafId, []);\n }\n const branchIds = mappings.get(leafId)!;\n if (!branchIds.includes(branchId)) {\n branchIds.push(branchId);\n }\n }\n }\n }\n\n console.log('[TreeComponent] Final junction mappings (leafId -> branchIds):', {\n mapSize: mappings.size,\n entries: Array.from(mappings.entries())\n });\n\n return mappings;\n }\n\n /**\n * Build branch hierarchy from flat data\n */\n private buildBranchHierarchy(\n branchData: Record<string, unknown>[],\n config: TreeBranchConfig\n ): { rootNodes: TreeNode[]; allBranches: TreeNode[]; branchMap: Map<string, TreeNode> } {\n const idField = config.IDField || 'ID';\n const parentIdField = config.ParentIDField || 'ParentID';\n const displayField = config.DisplayField || 'Name';\n\n const nodeMap = new Map<string, TreeNode>();\n const allBranches: TreeNode[] = [];\n\n for (const data of branchData) {\n const id = String(data[idField] || '');\n const parentId = data[parentIdField] ? String(data[parentIdField]) : null;\n\n const node = createDefaultTreeNode({\n ID: id,\n Label: String(data[displayField] || ''),\n Type: 'branch',\n ParentID: parentId,\n Icon: this.getNodeIcon(data, config.IconField, config.DefaultIcon || 'fa-solid fa-folder'),\n Color: this.getNodeColor(data, config.ColorField, config.DefaultColor),\n Data: { ...data },\n Description: config.DescriptionField ? String(data[config.DescriptionField] || '') : undefined,\n Badge: config.BadgeField ? String(data[config.BadgeField] || '') : undefined,\n EntityName: config.EntityName\n });\n\n nodeMap.set(id, node);\n allBranches.push(node);\n }\n\n // Build parent-child relationships\n const rootNodes: TreeNode[] = [];\n\n for (const node of allBranches) {\n if (node.ParentID && nodeMap.has(node.ParentID)) {\n const parent = nodeMap.get(node.ParentID)!;\n parent.Children.push(node);\n node.Level = this.calculateLevel(node, nodeMap);\n } else {\n rootNodes.push(node);\n node.Level = 0;\n }\n }\n\n // Sort children at each level\n this.sortChildrenRecursive(rootNodes);\n\n return { rootNodes, allBranches, branchMap: nodeMap };\n }\n\n /**\n * Attach leaf nodes to their parent branches or root level.\n * Supports both direct parent field relationships and M2M junction mappings.\n *\n * @param rootNodes Root nodes to attach orphan leaves to\n * @param branchMap Map of branch IDs to branch nodes\n * @param leafData Raw leaf data from database\n * @param config Leaf configuration\n * @param junctionMappings Optional M2M mappings (leafId -> branchIds[])\n */\n private attachLeavesToBranches(\n rootNodes: TreeNode[],\n branchMap: Map<string, TreeNode>,\n leafData: Record<string, unknown>[],\n config?: TreeLeafConfig,\n junctionMappings?: Map<string, string[]> | null\n ): TreeNode[] {\n if (!config || leafData.length === 0) {\n return [];\n }\n\n const idField = config.IDField || 'ID';\n const parentField = config.ParentField;\n const displayField = config.DisplayField || 'Name';\n const useJunction = !!junctionMappings && junctionMappings.size > 0;\n\n console.log('[TreeComponent] attachLeavesToBranches input:', {\n leafDataCount: leafData.length,\n leafIds: leafData.map((d: Record<string, unknown>) => ({ id: d[idField], name: d[displayField] })),\n branchMapKeys: Array.from(branchMap.keys()),\n branchMapEntries: Array.from(branchMap.entries()).map(([k, v]) => ({ id: k, name: v.Label })),\n useJunction,\n junctionMappingKeys: junctionMappings ? Array.from(junctionMappings.keys()) : []\n });\n\n const allLeaves: TreeNode[] = [];\n const addedLeafIds = new Set<string>(); // Track leaves already added to avoid duplicates\n\n for (const data of leafData) {\n const id = String(data[idField] || '');\n\n // If using junction mappings, only include leaves that have junction entries\n if (useJunction && !junctionMappings!.has(id)) {\n console.log(`[TreeComponent] Skipping leaf ${id} (${data[displayField]}) - not in junction mappings`);\n continue; // Skip leaves not in any branch via junction\n }\n\n const leaf = createDefaultTreeNode({\n ID: id,\n Label: String(data[displayField] || ''),\n Type: 'leaf',\n ParentID: null, // Will be set based on attachment\n Icon: this.getNodeIcon(data, config.IconField, config.DefaultIcon || 'fa-solid fa-file'),\n Data: { ...data },\n Description: config.DescriptionField ? String(data[config.DescriptionField] || '') : undefined,\n Badge: config.BadgeField ? String(data[config.BadgeField] || '') : undefined,\n EntityName: config.EntityName\n });\n\n allLeaves.push(leaf);\n console.log(`[TreeComponent] Processing leaf ${id} (${leaf.Label})`);\n\n if (useJunction) {\n // M2M relationship: attach to all mapped branches\n const branchIds = junctionMappings!.get(id) || [];\n let attached = false;\n\n console.log(`[TreeComponent] Leaf ${id} junction branchIds:`, branchIds);\n\n for (const branchId of branchIds) {\n if (branchMap.has(branchId)) {\n const parent = branchMap.get(branchId)!;\n console.log(`[TreeComponent] Attaching leaf ${id} to branch ${branchId} (${parent.Label})`);\n\n if (!attached) {\n // First attachment: use the original leaf\n leaf.ParentID = branchId;\n leaf.Level = parent.Level + 1;\n parent.Children.push(leaf);\n attached = true;\n } else {\n // Additional attachments: create a clone of the leaf\n // This allows the same artifact to appear under multiple collections\n const leafClone = createDefaultTreeNode({\n ...leaf,\n ParentID: branchId,\n Level: parent.Level + 1,\n Children: [],\n Data: { ...leaf.Data }\n });\n parent.Children.push(leafClone);\n }\n } else {\n console.log(`[TreeComponent] Branch ${branchId} NOT FOUND in branchMap for leaf ${id}`);\n }\n }\n\n // If no valid branch found, add to root\n if (!attached) {\n console.log(`[TreeComponent] Leaf ${id} not attached to any branch, adding to root`);\n rootNodes.push(leaf);\n leaf.Level = 0;\n }\n } else {\n // Direct parent field relationship\n const parentFieldValue = parentField ? data[parentField] : null;\n const parentId = parentFieldValue ? String(parentFieldValue) : null;\n leaf.ParentID = parentId;\n\n if (parentId && branchMap.has(parentId)) {\n const parent = branchMap.get(parentId)!;\n parent.Children.push(leaf);\n leaf.Level = parent.Level + 1;\n } else {\n // Orphan leaf (no parent or parent not found) - add to root level\n rootNodes.push(leaf);\n leaf.Level = 0;\n }\n }\n }\n\n // Re-sort children to interleave branches and leaves properly\n this.sortChildrenByTypeAndName(rootNodes);\n for (const branch of branchMap.values()) {\n this.sortChildrenByTypeAndName(branch.Children);\n }\n\n return allLeaves;\n }\n\n /**\n * Calculate node level in hierarchy\n */\n private calculateLevel(node: TreeNode, nodeMap: Map<string, TreeNode>): number {\n let level = 0;\n let current = node;\n\n while (current.ParentID && nodeMap.has(current.ParentID)) {\n level++;\n current = nodeMap.get(current.ParentID)!;\n if (level > 100) break; // Safety for circular refs\n }\n\n return level;\n }\n\n /**\n * Sort children recursively (alphabetically)\n */\n private sortChildrenRecursive(nodes: TreeNode[]): void {\n nodes.sort((a, b) => a.Label.localeCompare(b.Label));\n\n for (const node of nodes) {\n if (node.Children.length > 0) {\n this.sortChildrenRecursive(node.Children);\n }\n }\n }\n\n /**\n * Sort children: branches first (alphabetically), then leaves (alphabetically)\n */\n private sortChildrenByTypeAndName(nodes: TreeNode[]): void {\n nodes.sort((a, b) => {\n if (a.Type !== b.Type) {\n return a.Type === 'branch' ? -1 : 1;\n }\n return a.Label.localeCompare(b.Label);\n });\n }\n\n /**\n * Get icon for a node from field or default\n */\n private getNodeIcon(\n data: Record<string, unknown>,\n iconField?: string,\n defaultIcon: string = 'fa-solid fa-folder'\n ): string {\n if (iconField && data[iconField]) {\n return String(data[iconField]);\n }\n return defaultIcon;\n }\n\n /**\n * Get color for a node from field or default\n */\n private getNodeColor(\n data: Record<string, unknown>,\n colorField?: string,\n defaultColor?: string\n ): string | undefined {\n if (colorField && data[colorField]) {\n return String(data[colorField]);\n }\n return defaultColor;\n }\n\n /**\n * Clear instance cache\n */\n private clearCache(): void {\n this.cachedNodes = null;\n this.cachedBranches = null;\n this.cachedLeaves = null;\n }\n\n /**\n * Deep clone tree nodes\n */\n private cloneNodes(nodes: TreeNode[]): TreeNode[] {\n return nodes.map(node => this.cloneNode(node));\n }\n\n private cloneNode(node: TreeNode): TreeNode {\n return {\n ...node,\n Data: { ...node.Data },\n Children: this.cloneNodes(node.Children)\n };\n }\n\n /**\n * Build a flat map of all nodes by ID\n */\n private buildNodeMap(nodes: TreeNode[]): Map<string, TreeNode> {\n const map = new Map<string, TreeNode>();\n this.addNodesToMapRecursive(nodes, map);\n return map;\n }\n\n private addNodesToMapRecursive(nodes: TreeNode[], map: Map<string, TreeNode>): void {\n for (const node of nodes) {\n map.set(node.ID, node);\n this.addNodesToMapRecursive(node.Children, map);\n }\n }\n\n // ========================================\n // Private Methods - Tree Operations\n // ========================================\n\n /**\n * Apply initial expansion state\n */\n private applyInitialExpansion(): void {\n if (this._expandedIDs === null) {\n // Auto-expand first level\n for (const node of this.Nodes) {\n if (node.Type === 'branch') {\n node.Expanded = true;\n }\n }\n } else {\n // Expand specified nodes\n for (const id of this._expandedIDs) {\n const node = this.nodeMap.get(id);\n if (node && node.Type === 'branch') {\n node.Expanded = true;\n }\n }\n }\n }\n\n /**\n * Sync selection state from SelectedIDs input\n */\n private syncSelectionFromIDs(): void {\n // Clear current selection\n for (const node of this.SelectedNodes) {\n node.Selected = false;\n }\n this.SelectedNodes = [];\n\n // Apply new selection\n for (const id of this._selectedIDs) {\n const node = this.nodeMap.get(id);\n if (node && this.isNodeSelectable(node)) {\n node.Selected = true;\n this.SelectedNodes.push(node);\n }\n }\n }\n\n /**\n * Check if a node can be selected based on SelectableTypes\n */\n private isNodeSelectable(node: TreeNode): boolean {\n if (this._selectableTypes === 'both') return true;\n return node.Type === this._selectableTypes;\n }\n\n /**\n * Handle node selection logic\n */\n private handleNodeSelection(node: TreeNode, event: MouseEvent | KeyboardEvent): void {\n const isCtrlClick = event.ctrlKey || event.metaKey;\n const isSelected = node.Selected;\n const previousSelection = [...this.SelectedNodes];\n\n if (isSelected) {\n // Deselect\n const beforeEvent = new BeforeNodeDeselectEventArgs(this, node, previousSelection);\n this.BeforeNodeDeselect.emit(beforeEvent);\n\n if (beforeEvent.Cancel) {\n return;\n }\n\n node.Selected = false;\n this.SelectedNodes = this.SelectedNodes.filter(n => n !== node);\n\n const afterEvent = new AfterNodeDeselectEventArgs(\n this,\n node,\n [...this.SelectedNodes],\n previousSelection\n );\n this.AfterNodeDeselect.emit(afterEvent);\n } else {\n // Select\n const isAdditive = this._selectionMode === 'multiple' && isCtrlClick;\n\n const beforeEvent = new BeforeNodeSelectEventArgs(\n this,\n node,\n isAdditive,\n previousSelection\n );\n this.BeforeNodeSelect.emit(beforeEvent);\n\n if (beforeEvent.Cancel) {\n return;\n }\n\n if (this._selectionMode === 'single' || !isAdditive) {\n // Clear previous selection\n for (const prev of this.SelectedNodes) {\n prev.Selected = false;\n }\n this.SelectedNodes = [];\n }\n\n node.Selected = true;\n this.SelectedNodes.push(node);\n\n const afterEvent = new AfterNodeSelectEventArgs(\n this,\n node,\n isAdditive,\n [...this.SelectedNodes],\n previousSelection\n );\n this.AfterNodeSelect.emit(afterEvent);\n }\n\n this.SelectionChange.emit([...this.SelectedNodes]);\n this.cdr.detectChanges();\n }\n\n /**\n * Toggle node expansion\n */\n private toggleNodeExpansion(node: TreeNode): void {\n if (node.Expanded) {\n this.collapseNode(node);\n } else {\n this.expandNode(node);\n }\n }\n\n /**\n * Expand a node\n */\n private expandNode(node: TreeNode): void {\n if (node.Type !== 'branch' || node.Children.length === 0) {\n return;\n }\n\n const beforeEvent = new BeforeNodeExpandEventArgs(this, node);\n this.BeforeNodeExpand.emit(beforeEvent);\n\n if (beforeEvent.Cancel) {\n return;\n }\n\n node.Expanded = true;\n\n const afterEvent = new AfterNodeExpandEventArgs(\n this,\n node,\n node.Children.filter(c => c.Visible).length\n );\n this.AfterNodeExpand.emit(afterEvent);\n\n this.cdr.detectChanges();\n }\n\n /**\n * Collapse a node\n */\n private collapseNode(node: TreeNode): void {\n if (node.Type !== 'branch') {\n return;\n }\n\n const beforeEvent = new BeforeNodeCollapseEventArgs(this, node);\n this.BeforeNodeCollapse.emit(beforeEvent);\n\n if (beforeEvent.Cancel) {\n return;\n }\n\n node.Expanded = false;\n\n const afterEvent = new AfterNodeCollapseEventArgs(this, node);\n this.AfterNodeCollapse.emit(afterEvent);\n\n this.cdr.detectChanges();\n }\n\n /**\n * Expand all nodes recursively\n */\n private expandAllRecursive(nodes: TreeNode[]): void {\n for (const node of nodes) {\n if (node.Type === 'branch') {\n node.Expanded = true;\n this.expandAllRecursive(node.Children);\n }\n }\n }\n\n /**\n * Collapse all nodes recursively\n */\n private collapseAllRecursive(nodes: TreeNode[]): void {\n for (const node of nodes) {\n if (node.Type === 'branch') {\n node.Expanded = false;\n this.collapseAllRecursive(node.Children);\n }\n }\n }\n\n /**\n * Get all visible nodes in tree order\n */\n private getVisibleNodesInOrder(nodes: TreeNode[]): TreeNode[] {\n const result: TreeNode[] = [];\n this.collectVisibleNodesRecursive(nodes, result);\n return result;\n }\n\n private collectVisibleNodesRecursive(nodes: TreeNode[], result: TreeNode[]): void {\n for (const node of nodes) {\n if (node.Visible) {\n result.push(node);\n if (node.Expanded && node.Type === 'branch') {\n this.collectVisibleNodesRecursive(node.Children, result);\n }\n }\n }\n }\n\n /**\n * Scroll a node into view\n */\n private scrollNodeIntoView(node: TreeNode): void {\n const element = this.elementRef.nativeElement.querySelector(\n `[data-node-id=\"${node.ID}\"]`\n );\n if (element) {\n element.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }\n }\n\n // ========================================\n // Private Methods - Search/Filter\n // ========================================\n\n /**\n * Set visibility recursively\n */\n private setVisibilityRecursive(nodes: TreeNode[], visible: boolean, matchesSearch: boolean): void {\n for (const node of nodes) {\n node.Visible = visible;\n node.MatchesSearch = matchesSearch;\n this.setVisibilityRecursive(node.Children, visible, matchesSearch);\n }\n }\n\n /**\n * Recursively mark nodes that match the search\n */\n private markMatchingNodesRecursive(\n nodes: TreeNode[],\n searchText: string,\n caseSensitive: boolean,\n searchBranches: boolean,\n searchLeaves: boolean,\n searchDescription: boolean,\n matchedNodes: TreeNode[]\n ): boolean {\n let hasVisibleChild = false;\n\n for (const node of nodes) {\n const shouldSearch =\n (node.Type === 'branch' && searchBranches) ||\n (node.Type === 'leaf' && searchLeaves);\n\n let matches = false;\n if (shouldSearch) {\n const label = caseSensitive ? node.Label : node.Label.toLowerCase();\n matches = label.includes(searchText);\n\n if (!matches && searchDescription && node.Description) {\n const desc = caseSensitive ? node.Description : node.Description.toLowerCase();\n matches = desc.includes(searchText);\n }\n }\n\n node.MatchesSearch = matches;\n\n const childHasMatch = this.markMatchingNodesRecursive(\n node.Children,\n searchText,\n caseSensitive,\n searchBranches,\n searchLeaves,\n searchDescription,\n matchedNodes\n );\n\n node.Visible = matches || childHasMatch;\n\n if (matches) {\n matchedNodes.push(node);\n }\n\n if (node.Visible) {\n hasVisibleChild = true;\n }\n }\n\n return hasVisibleChild;\n }\n\n /**\n * Make ancestors of visible nodes also visible\n */\n private makeAncestorsVisibleRecursive(nodes: TreeNode[]): boolean {\n let hasVisibleChild = false;\n\n for (const node of nodes) {\n const childVisible = this.makeAncestorsVisibleRecursive(node.Children);\n\n if (childVisible && !node.Visible) {\n node.Visible = true;\n }\n\n if (node.Visible) {\n hasVisibleChild = true;\n }\n }\n\n return hasVisibleChild;\n }\n\n // ========================================\n // Template Helpers\n // ========================================\n\n /**\n * Get the padding for a node based on its level\n */\n public getNodePadding(node: TreeNode): string {\n const basePadding = node.Level * this._indentSize;\n // Root-level leaves need a small indent since they have no toggle button\n // to align them with nested items\n if (node.Type === 'leaf' && node.Level === 0) {\n return `${basePadding + 8}px`;\n }\n return `${basePadding}px`;\n }\n\n /**\n * Get CSS classes for a node\n */\n public getNodeClasses(node: TreeNode): Record<string, boolean> {\n return {\n 'tree-node': true,\n 'tree-node--branch': node.Type === 'branch',\n 'tree-node--leaf': node.Type === 'leaf',\n 'tree-node--root-level': node.Level === 0,\n 'tree-node--selected': node.Selected,\n 'tree-node--focused': node === this.FocusedNode,\n 'tree-node--expanded': node.Expanded,\n 'tree-node--has-children': node.Children.length > 0,\n 'tree-node--match': node.MatchesSearch,\n [this._styleConfig.NodeClass || '']: !!this._styleConfig.NodeClass,\n [this._styleConfig.SelectedClass || '']: node.Selected && !!this._styleConfig.SelectedClass,\n [this._styleConfig.BranchClass || '']: node.Type === 'branch' && !!this._styleConfig.BranchClass,\n [this._styleConfig.LeafClass || '']: node.Type === 'leaf' && !!this._styleConfig.LeafClass,\n [this._styleConfig.ExpandedClass || '']: node.Expanded && !!this._styleConfig.ExpandedClass\n };\n }\n\n /**\n * Get container classes\n */\n public getContainerClasses(): Record<string, boolean> {\n return {\n 'tree-container': true,\n 'tree-container--loading': this.IsLoading,\n 'tree-container--empty': this.IsLoaded && this.Nodes.length === 0,\n [this._styleConfig.ContainerClass || '']: !!this._styleConfig.ContainerClass\n };\n }\n\n /**\n * Track nodes for ngFor\n */\n public trackNode(index: number, node: TreeNode): string {\n return node.ID;\n }\n\n /**\n * Get label HTML with search text highlighted\n */\n public getHighlightedLabel(node: TreeNode): string {\n const label = node.Label;\n\n // No search text or node doesn't match - return plain label (escaped)\n if (!this.CurrentSearchText || !node.MatchesSearch) {\n return this.escapeHtml(label);\n }\n\n // Find and highlight the matching portion (case-insensitive)\n const searchLower = this.CurrentSearchText.toLowerCase();\n const labelLower = label.toLowerCase();\n const matchIndex = labelLower.indexOf(searchLower);\n\n if (matchIndex === -1) {\n return this.escapeHtml(label);\n }\n\n // Split into before, match, and after parts\n const before = label.substring(0, matchIndex);\n const match = label.substring(matchIndex, matchIndex + this.CurrentSearchText.length);\n const after = label.substring(matchIndex + this.CurrentSearchText.length);\n\n return `${this.escapeHtml(before)}<mark class=\"tree-search-highlight\">${this.escapeHtml(match)}</mark>${this.escapeHtml(after)}`;\n }\n\n /**\n * Escape HTML special characters to prevent XSS\n */\n private escapeHtml(text: string): string {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n}\n","<!-- Tree Component Template -->\n<div [ngClass]=\"getContainerClasses()\" tabindex=\"0\">\n\n <!-- Loading State -->\n @if (IsLoading && ShowLoading) {\n <div class=\"tree-loading\">\n <div class=\"tree-loading__spinner\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </div>\n <span class=\"tree-loading__text\">Loading...</span>\n </div>\n }\n\n <!-- Error State -->\n @if (ErrorMessage && !IsLoading) {\n <div class=\"tree-error\">\n <i class=\"fa-solid fa-exclamation-triangle tree-error__icon\"></i>\n <span class=\"tree-error__message\">{{ ErrorMessage }}</span>\n <button class=\"tree-error__retry\" (click)=\"Refresh()\">\n <i class=\"fa-solid fa-refresh\"></i>\n Retry\n </button>\n </div>\n }\n\n <!-- Toolbar -->\n @if (ShowExpandCollapseAll && Nodes.length > 0 && !IsLoading) {\n <div class=\"tree-toolbar\">\n <button\n class=\"tree-toolbar__btn\"\n (click)=\"ExpandAll()\"\n title=\"Expand All\">\n <i class=\"fa-solid fa-plus-square\"></i>\n </button>\n <button\n class=\"tree-toolbar__btn\"\n (click)=\"CollapseAll()\"\n title=\"Collapse All\">\n <i class=\"fa-solid fa-minus-square\"></i>\n </button>\n </div>\n }\n\n <!-- Empty State -->\n @if (IsLoaded && Nodes.length === 0 && !ErrorMessage && !IsLoading) {\n <div class=\"tree-empty\">\n <i [class]=\"EmptyIcon + ' tree-empty__icon'\"></i>\n <span class=\"tree-empty__message\">{{ EmptyMessage }}</span>\n </div>\n }\n\n <!-- Tree Content -->\n @if (Nodes.length > 0 && !IsLoading) {\n <div class=\"tree-content\">\n @for (node of Nodes; track trackNode($index, node)) {\n @if (node.Visible) {\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { node: node }\"></ng-container>\n }\n }\n </div>\n }\n</div>\n\n<!-- Recursive Node Template -->\n<ng-template #nodeTemplate let-node=\"node\">\n <div\n [ngClass]=\"getNodeClasses(node)\"\n [style.padding-left]=\"getNodePadding(node)\"\n [attr.data-node-id]=\"node.ID\"\n [attr.data-node-type]=\"node.Type\"\n [attr.aria-expanded]=\"node.Type === 'branch' ? node.Expanded : null\"\n [attr.aria-selected]=\"node.Selected\"\n role=\"treeitem\"\n (click)=\"onNodeClick(node, $event)\"\n (dblclick)=\"onNodeDoubleClick(node, $event)\">\n\n <!-- Toggle Button (for branches with children) -->\n @if (node.Type === 'branch') {\n <span\n class=\"tree-node-toggle\"\n (click)=\"onToggleClick(node, $event)\">\n @if (node.Children.length > 0) {\n <i\n class=\"fa-solid tree-node-toggle__icon\"\n [ngClass]=\"{\n 'fa-chevron-right': !node.Expanded,\n 'fa-chevron-down': node.Expanded\n }\">\n </i>\n }\n @if (node.Children.length === 0) {\n <span\n class=\"tree-node-toggle__spacer\">\n </span>\n }\n </span>\n }\n\n <!-- Leaf Spacer (to align with branches, only when not at root level) -->\n @if (node.Type === 'leaf' && node.Level > 0) {\n <span\n class=\"tree-node-leaf-spacer\"\n >\n </span>\n }\n\n <!-- Icon -->\n @if (ShowIcons) {\n <span\n class=\"tree-node-icon\"\n [style.color]=\"node.Color || null\">\n <i [class]=\"node.Icon\"></i>\n </span>\n }\n\n <!-- Content -->\n <span class=\"tree-node-content\">\n <!-- Label with search highlight -->\n <span class=\"tree-node-label\" [innerHTML]=\"getHighlightedLabel(node)\"></span>\n\n <!-- Description -->\n @if (ShowDescriptions && node.Description) {\n <span\n class=\"tree-node-description\"\n >\n {{ node.Description }}\n </span>\n }\n </span>\n\n <!-- Badge -->\n @if (ShowBadges && node.Badge) {\n <span\n class=\"tree-node-badge\"\n >\n {{ node.Badge }}\n </span>\n }\n\n <!-- Selection Indicator -->\n @if (node.Selected) {\n <span class=\"tree-node-selected-indicator\">\n <i class=\"fa-solid fa-check\"></i>\n </span>\n }\n </div>\n\n <!-- Children (if expanded) -->\n @if (node.Type === 'branch' && node.Expanded && node.Children.length > 0) {\n <div\n class=\"tree-node-children\"\n [class.tree-node-children--animated]=\"AnimateExpandCollapse\"\n role=\"group\">\n @for (child of node.Children; track trackNode($index, child)) {\n @if (child.Visible) {\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { node: child }\"></ng-container>\n }\n }\n </div>\n }\n</ng-template>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-dropdown.component.js","sourceRoot":"","sources":["../../../src/lib/tree-dropdown/tree-dropdown.component.ts","../../../src/lib/tree-dropdown/tree-dropdown.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree-dropdown.component.js","sourceRoot":"","sources":["../../../src/lib/tree-dropdown/tree-dropdown.component.ts","../../../src/lib/tree-dropdown/tree-dropdown.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tree Dropdown Component for @memberjunction/ng-trees\n *\n * A searchable dropdown with tree selection. Features:\n * - Smart positioning (auto-flips above/below based on available space)\n * - Portal rendering to avoid clipping\n * - Type-ahead search with highlighting\n * - Keyboard navigation\n * - Single and multi-select modes\n */\n\nimport {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnInit,\n OnDestroy,\n ViewChild,\n ElementRef, // Still needed for ViewChild type references\n Renderer2,\n AfterViewInit\n} from '@angular/core';\nimport {\n TreeNode,\n TreeBranchConfig,\n TreeLeafConfig,\n TreeSelectionMode,\n TreeSelectableTypes,\n TreeStyleConfig,\n TreeSearchConfig,\n TreeDropdownConfig\n} from '../models/tree-types';\nimport {\n BeforeNodeSelectEventArgs,\n AfterNodeSelectEventArgs,\n BeforeSearchEventArgs,\n AfterSearchEventArgs,\n BeforeDropdownOpenEventArgs,\n AfterDropdownOpenEventArgs,\n BeforeDropdownCloseEventArgs,\n AfterDropdownCloseEventArgs,\n BeforeDataLoadEventArgs,\n AfterDataLoadEventArgs\n} from '../events/tree-events';\nimport { TreeComponent } from '../tree/tree.component';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { Metadata, CompositeKey } from '@memberjunction/core';\n\n/**\n * Dropdown position calculation result\n */\ninterface DropdownPosition {\n top: number;\n left: number;\n width: number;\n maxHeight: number;\n renderAbove: boolean;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-tree-dropdown',\n templateUrl: './tree-dropdown.component.html',\n styleUrls: ['./tree-dropdown.component.css']\n})\nexport class TreeDropdownComponent implements OnInit, OnDestroy, AfterViewInit {\n // ========================================\n // Tree Configuration (passed to inner tree)\n // ========================================\n\n /** Branch (category) entity configuration - REQUIRED */\n @Input() BranchConfig!: TreeBranchConfig;\n\n /** Optional leaf entity configuration */\n @Input() LeafConfig?: TreeLeafConfig;\n\n /** Selection mode: 'single' or 'multiple' */\n @Input() SelectionMode: TreeSelectionMode = 'single';\n\n /** What types can be selected: 'branch', 'leaf', or 'both' */\n @Input() SelectableTypes: TreeSelectableTypes = 'both';\n\n // ========================================\n // Value Inputs\n // ========================================\n\n /** Current selected value (CompositeKey for single, CompositeKeys for multiple) */\n private _value: CompositeKey | CompositeKey[] | null = null;\n\n /**\n * The selected value as a CompositeKey (single select) or array of CompositeKeys (multi-select).\n * CompositeKey supports both simple single-field primary keys and composite primary keys.\n *\n * @example Single select with simple ID:\n * ```typescript\n * dropdown.Value = CompositeKey.FromID('some-guid');\n * ```\n *\n * @example Single select with composite key:\n * ```typescript\n * dropdown.Value = new CompositeKey([\n * { FieldName: 'Field1', Value: 'value1' },\n * { FieldName: 'Field2', Value: 'value2' }\n * ]);\n * ```\n *\n * @example Multi-select:\n * ```typescript\n * dropdown.Value = [\n * CompositeKey.FromID('guid1'),\n * CompositeKey.FromID('guid2')\n * ];\n * ```\n */\n @Input()\n set Value(val: CompositeKey | CompositeKey[] | null) {\n if (!CompositeKey.EqualsEx(val, this._value)) {\n this._value = val;\n // If tree is loaded, sync selection immediately\n if (this.IsLoaded && this.treeComponent) {\n this.syncValueToSelection();\n } else {\n // Tree not loaded yet - fetch display text directly via Metadata\n this.fetchDisplayTextForValue(val);\n }\n }\n }\n get Value(): CompositeKey | CompositeKey[] | null {\n return this._value;\n }\n \n /** Cached display text for showing in trigger before tree loads */\n private _pendingDisplayText: string | null = null;\n\n // ========================================\n // Dropdown-specific Inputs\n // ========================================\n\n /** Placeholder text when nothing selected */\n @Input() Placeholder: string = 'Select...';\n\n /** Enable search filtering */\n @Input() EnableSearch: boolean = true;\n\n /** Search configuration */\n @Input() SearchConfig: TreeSearchConfig = {};\n\n /** Dropdown configuration */\n @Input() DropdownConfig: TreeDropdownConfig = {};\n\n /** Style configuration */\n @Input() StyleConfig: TreeStyleConfig = {};\n\n /** Show clear button */\n @Input() Clearable: boolean = true;\n\n /** Disabled state */\n @Input() Disabled: boolean = false;\n\n /** Show node icons in display */\n @Input() ShowIconInDisplay: boolean = true;\n\n /** Auto-load data on init */\n @Input() AutoLoad: boolean = true;\n\n /** Show loading in trigger */\n @Input() ShowLoadingInTrigger: boolean = true;\n\n // ========================================\n // Event Outputs\n // ========================================\n\n /** Emitted when value changes */\n @Output() ValueChange = new EventEmitter<CompositeKey | CompositeKey[] | null>();\n\n /** Emitted with full node(s) when selection changes */\n @Output() SelectionChange = new EventEmitter<TreeNode | TreeNode[] | null>();\n\n // Bubble up tree events\n @Output() BeforeNodeSelect = new EventEmitter<BeforeNodeSelectEventArgs>();\n @Output() AfterNodeSelect = new EventEmitter<AfterNodeSelectEventArgs>();\n @Output() BeforeSearch = new EventEmitter<BeforeSearchEventArgs>();\n @Output() AfterSearch = new EventEmitter<AfterSearchEventArgs>();\n @Output() BeforeDropdownOpen = new EventEmitter<BeforeDropdownOpenEventArgs>();\n @Output() AfterDropdownOpen = new EventEmitter<AfterDropdownOpenEventArgs>();\n @Output() BeforeDropdownClose = new EventEmitter<BeforeDropdownCloseEventArgs>();\n @Output() AfterDropdownClose = new EventEmitter<AfterDropdownCloseEventArgs>();\n @Output() BeforeDataLoad = new EventEmitter<BeforeDataLoadEventArgs>();\n @Output() AfterDataLoad = new EventEmitter<AfterDataLoadEventArgs>();\n\n // ========================================\n // ViewChild References\n // ========================================\n\n @ViewChild('triggerElement') triggerElement!: ElementRef<HTMLElement>;\n @ViewChild('searchInput') searchInput!: ElementRef<HTMLInputElement>;\n @ViewChild('dropdownPanel') dropdownPanel!: ElementRef<HTMLElement>;\n @ViewChild('treeComponent') treeComponent!: TreeComponent;\n\n // ========================================\n // State\n // ========================================\n\n /** Is dropdown open */\n public IsOpen: boolean = false;\n\n /** Dropdown position */\n public Position: DropdownPosition | null = null;\n\n /** Search text */\n public SearchText: string = '';\n\n /** Selected nodes (for display) */\n public SelectedNodes: TreeNode[] = [];\n\n /** Is tree loading */\n public IsLoading: boolean = false;\n\n /** Has data loaded */\n public IsLoaded: boolean = false;\n\n /** Dropdown portal element */\n private dropdownPortal: HTMLElement | null = null;\n\n /** Search debounce subject */\n private searchSubject = new Subject<string>();\n\n /** Destroy subject */\n private destroy$ = new Subject<void>();\n\n /** Click outside listener */\n private clickOutsideListener: (() => void) | null = null;\n\n /** Scroll listener */\n private scrollListener: (() => void) | null = null;\n\n /** Resize listener */\n private resizeListener: (() => void) | null = null;\n\n /** Pending load promise resolvers */\n private _loadResolvers: Array<() => void> = [];\n\n // ========================================\n // Constructor\n // ========================================\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n private readonly renderer: Renderer2\n ) {}\n\n // ========================================\n // Lifecycle\n // ========================================\n\n ngOnInit(): void {\n // Setup search debounce\n const debounceMs = this.SearchConfig.DebounceMs ?? 200;\n this.searchSubject.pipe(\n debounceTime(debounceMs),\n takeUntil(this.destroy$)\n ).subscribe(text => {\n this.performSearch(text);\n });\n }\n\n ngAfterViewInit(): void {\n // Create portal element\n this.createDropdownPortal();\n }\n\n // Note: Value changes are handled by the getter/setter pattern\n // No ngOnChanges needed for that property\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.removeDropdownPortal();\n this.removeEventListeners();\n }\n\n // ========================================\n // Public Methods\n // ========================================\n\n /**\n * Returns a promise that resolves when the tree data has finished loading.\n * If data is already loaded, the promise resolves immediately.\n *\n * Use this method when you need to perform operations that depend on the tree\n * being fully loaded, such as programmatically selecting nodes or accessing\n * the tree structure.\n *\n * Note: For setting initial values, you typically don't need this method -\n * just set the `Value` input and the component will automatically display\n * the correct text by looking up the record name via Metadata.\n *\n * @returns A promise that resolves when the tree data is loaded\n * @example\n * ```typescript\n * // Wait for tree to load before accessing tree structure\n * await treeDropdown.WaitForDataLoad();\n * const nodes = treeDropdown.treeComponent.Nodes;\n * ```\n */\n public WaitForDataLoad(): Promise<void> {\n if (this.IsLoaded) {\n return Promise.resolve();\n }\n return new Promise<void>((resolve) => {\n this._loadResolvers.push(resolve);\n });\n }\n\n /**\n * Open the dropdown\n */\n public Open(): void {\n if (this.Disabled || this.IsOpen) {\n return;\n }\n\n // Fire before event\n const beforeEvent = new BeforeDropdownOpenEventArgs(this);\n this.BeforeDropdownOpen.emit(beforeEvent);\n\n if (beforeEvent.Cancel) {\n return;\n }\n\n this.IsOpen = true;\n this.calculatePosition();\n this.attachEventListeners();\n\n // Focus search input after opening\n setTimeout(() => {\n if (this.EnableSearch && this.searchInput) {\n this.searchInput.nativeElement.focus();\n }\n }, 50);\n\n // Fire after event\n const afterEvent = new AfterDropdownOpenEventArgs(\n this,\n this.Position?.renderAbove ? 'above' : 'below'\n );\n this.AfterDropdownOpen.emit(afterEvent);\n\n this.cdr.detectChanges();\n }\n\n /**\n * Close the dropdown\n */\n public Close(reason: 'selection' | 'escape' | 'outsideClick' | 'programmatic' = 'programmatic'): void {\n if (!this.IsOpen) {\n return;\n }\n\n // Fire before event\n const beforeEvent = new BeforeDropdownCloseEventArgs(this, reason);\n this.BeforeDropdownClose.emit(beforeEvent);\n\n if (beforeEvent.Cancel) {\n return;\n }\n\n this.IsOpen = false;\n this.SearchText = '';\n this.clearSearch();\n this.removeEventListeners();\n\n // Fire after event\n const afterEvent = new AfterDropdownCloseEventArgs(this, reason);\n this.AfterDropdownClose.emit(afterEvent);\n\n this.cdr.detectChanges();\n }\n\n /**\n * Toggle dropdown\n */\n public Toggle(): void {\n if (this.IsOpen) {\n this.Close('programmatic');\n } else {\n this.Open();\n }\n }\n\n /**\n * Clear selection\n */\n public Clear(event?: MouseEvent): void {\n if (event) {\n event.stopPropagation();\n }\n\n this.SelectedNodes = [];\n this._value = null;\n this._pendingDisplayText = null;\n\n if (this.treeComponent) {\n this.treeComponent.ClearSelection();\n }\n\n this.ValueChange.emit(this._value);\n this.SelectionChange.emit(null);\n this.cdr.detectChanges();\n }\n\n /**\n * Refresh tree data\n */\n public async Refresh(): Promise<void> {\n if (this.treeComponent) {\n await this.treeComponent.Refresh();\n }\n }\n\n // ========================================\n // Template Event Handlers\n // ========================================\n\n /**\n * Handle trigger click\n */\n public onTriggerClick(): void {\n \n if (!this.Disabled) {\n this.Toggle();\n }\n }\n\n /**\n * Handle trigger keydown\n */\n public onTriggerKeyDown(event: KeyboardEvent): void {\n if (this.Disabled) {\n return;\n }\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'ArrowDown':\n event.preventDefault();\n this.Open();\n break;\n case 'Escape':\n if (this.IsOpen) {\n event.preventDefault();\n this.Close('escape');\n }\n break;\n }\n }\n\n /**\n * Handle search input\n */\n public onSearchInput(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.SearchText = value;\n this.searchSubject.next(value);\n }\n\n /**\n * Handle search keydown\n */\n public onSearchKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n event.stopPropagation();\n this.Close('escape');\n break;\n case 'ArrowDown':\n event.preventDefault();\n // Focus first tree node\n if (this.treeComponent) {\n const visibleNodes = this.getVisibleNodesInOrder(this.treeComponent.Nodes);\n if (visibleNodes.length > 0) {\n this.treeComponent.FocusedNode = visibleNodes[0];\n this.cdr.detectChanges();\n }\n }\n break;\n }\n }\n\n /**\n * Handle clear search\n */\n public onClearSearch(): void {\n this.SearchText = '';\n this.clearSearch();\n if (this.searchInput) {\n this.searchInput.nativeElement.focus();\n }\n }\n\n /**\n * Handle tree selection change\n */\n public onTreeSelectionChange(nodes: TreeNode[]): void {\n \n this.SelectedNodes = nodes;\n\n // Clear pending display text since we now have real nodes\n this._pendingDisplayText = null;\n\n // Update value - convert node IDs to CompositeKeys\n if (this.SelectionMode === 'single') {\n this._value = nodes.length > 0 ? CompositeKey.FromID(nodes[0].ID) : null;\n this.ValueChange.emit(this._value);\n this.SelectionChange.emit(nodes.length > 0 ? nodes[0] : null);\n\n // Close on selection in single mode (unless disabled)\n // Only close if user actually selected something (not on empty selection from sync)\n \n if (this.DropdownConfig.CloseOnSelect !== false && nodes.length > 0) {\n \n this.Close('selection');\n }\n } else {\n this._value = nodes.map(n => CompositeKey.FromID(n.ID));\n this.ValueChange.emit(this._value);\n this.SelectionChange.emit(nodes.length > 0 ? nodes : null);\n }\n\n this.cdr.detectChanges();\n }\n\n /**\n * Handle tree data load events\n */\n public onTreeBeforeDataLoad(event: BeforeDataLoadEventArgs): void {\n \n this.IsLoading = true;\n this.BeforeDataLoad.emit(event);\n this.cdr.detectChanges();\n }\n\n public onTreeAfterDataLoad(event: AfterDataLoadEventArgs): void {\n \n \n this.IsLoading = false;\n this.IsLoaded = true;\n\n // Resolve all pending WaitForDataLoad() promises\n const resolvers = this._loadResolvers;\n this._loadResolvers = [];\n for (const resolve of resolvers) {\n resolve();\n }\n\n // Sync selection after load - defer to next microtask to ensure ViewChild is resolved\n Promise.resolve().then(() => {\n \n if (this.treeComponent) {\n \n \n }\n this.syncValueToSelection();\n this.cdr.detectChanges();\n });\n\n this.AfterDataLoad.emit(event);\n this.cdr.detectChanges();\n }\n\n /**\n * Bubble tree events\n */\n public onTreeBeforeNodeSelect(event: BeforeNodeSelectEventArgs): void {\n this.BeforeNodeSelect.emit(event);\n }\n\n public onTreeAfterNodeSelect(event: AfterNodeSelectEventArgs): void {\n this.AfterNodeSelect.emit(event);\n }\n\n // ========================================\n // Private Methods\n // ========================================\n\n /**\n * Create dropdown portal element (attached to body)\n */\n private createDropdownPortal(): void {\n this.dropdownPortal = this.renderer.createElement('div');\n this.renderer.addClass(this.dropdownPortal, 'mj-tree-dropdown-portal');\n this.renderer.setStyle(this.dropdownPortal, 'position', 'fixed');\n this.renderer.setStyle(this.dropdownPortal, 'z-index', '10000');\n this.renderer.setStyle(this.dropdownPortal, 'display', 'none');\n this.renderer.appendChild(document.body, this.dropdownPortal);\n }\n\n /**\n * Remove dropdown portal\n */\n private removeDropdownPortal(): void {\n if (this.dropdownPortal && this.dropdownPortal.parentNode) {\n this.dropdownPortal.parentNode.removeChild(this.dropdownPortal);\n this.dropdownPortal = null;\n }\n }\n\n /**\n * Calculate dropdown position\n */\n private calculatePosition(): void {\n if (!this.triggerElement) {\n return;\n }\n\n const triggerRect = this.triggerElement.nativeElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n\n // Parse max height from config\n const maxHeightConfig = this.DropdownConfig.MaxHeight || '300px';\n const maxHeightPx = parseInt(maxHeightConfig, 10) || 300;\n\n // Calculate available space\n const spaceBelow = viewportHeight - triggerRect.bottom - 8; // 8px margin\n const spaceAbove = triggerRect.top - 8;\n\n // Determine if we should render above or below\n let renderAbove = false;\n let maxHeight = maxHeightPx;\n\n if (this.DropdownConfig.Position === 'above') {\n renderAbove = true;\n maxHeight = Math.min(maxHeightPx, spaceAbove);\n } else if (this.DropdownConfig.Position === 'below') {\n renderAbove = false;\n maxHeight = Math.min(maxHeightPx, spaceBelow);\n } else {\n // Auto position\n if (spaceBelow < maxHeightPx && spaceAbove > spaceBelow) {\n renderAbove = true;\n maxHeight = Math.min(maxHeightPx, spaceAbove);\n } else {\n renderAbove = false;\n maxHeight = Math.min(maxHeightPx, spaceBelow);\n }\n }\n\n // Calculate width\n const minWidth = this.DropdownConfig.MinWidth\n ? parseInt(this.DropdownConfig.MinWidth, 10)\n : triggerRect.width;\n const width = Math.max(minWidth, triggerRect.width);\n\n // Ensure dropdown doesn't go off screen horizontally\n let left = triggerRect.left;\n if (left + width > viewportWidth - 8) {\n left = viewportWidth - width - 8;\n }\n if (left < 8) {\n left = 8;\n }\n\n // Calculate top position\n let top: number;\n if (renderAbove) {\n top = triggerRect.top - maxHeight - 4;\n } else {\n top = triggerRect.bottom + 4;\n }\n\n this.Position = {\n top,\n left,\n width,\n maxHeight,\n renderAbove\n };\n }\n\n /**\n * Attach event listeners for click outside, scroll, resize\n */\n private attachEventListeners(): void {\n \n // Click outside - defer with a small timeout to:\n // 1. Allow the opening click event to complete\n // 2. Ensure the dropdown panel DOM element is fully rendered\n // 3. Allow Angular change detection to complete\n if (this.DropdownConfig.CloseOnOutsideClick !== false) {\n \n setTimeout(() => {\n \n // Only attach if still open (could have been closed in the meantime)\n if (!this.IsOpen) {\n \n return;\n }\n \n this.clickOutsideListener = this.renderer.listen('document', 'click', (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n \n \n // Double check we're still open\n if (!this.IsOpen) {\n \n return;\n }\n const isInsideTrigger = this.triggerElement?.nativeElement?.contains(target);\n // Check if click is inside the dropdown panel (rendered inline, not in portal)\n const isInsideDropdown = this.dropdownPanel?.nativeElement?.contains(target);\n \n \n\n if (!isInsideTrigger && !isInsideDropdown) {\n \n this.Close('outsideClick');\n } else {\n \n }\n });\n }, 100); // 100ms delay to ensure DOM is stable\n } else {\n \n }\n\n // Escape key\n if (this.DropdownConfig.CloseOnEscape !== false) {\n document.addEventListener('keydown', this.handleEscapeKey);\n }\n\n // Scroll - reposition dropdown\n this.scrollListener = this.renderer.listen('window', 'scroll', () => {\n if (this.IsOpen) {\n this.calculatePosition();\n this.updateDropdownPortalPosition();\n }\n });\n\n // Resize - reposition dropdown\n this.resizeListener = this.renderer.listen('window', 'resize', () => {\n if (this.IsOpen) {\n this.calculatePosition();\n this.updateDropdownPortalPosition();\n }\n });\n }\n\n /**\n * Remove event listeners\n */\n private removeEventListeners(): void {\n if (this.clickOutsideListener) {\n this.clickOutsideListener();\n this.clickOutsideListener = null;\n }\n\n document.removeEventListener('keydown', this.handleEscapeKey);\n\n if (this.scrollListener) {\n this.scrollListener();\n this.scrollListener = null;\n }\n\n if (this.resizeListener) {\n this.resizeListener();\n this.resizeListener = null;\n }\n }\n\n /**\n * Handle escape key\n */\n private handleEscapeKey = (event: KeyboardEvent): void => {\n \n if (event.key === 'Escape' && this.IsOpen) {\n this.Close('escape');\n }\n };\n\n /**\n * Update dropdown portal position\n */\n private updateDropdownPortalPosition(): void {\n if (!this.dropdownPortal || !this.Position) {\n return;\n }\n\n this.renderer.setStyle(this.dropdownPortal, 'top', `${this.Position.top}px`);\n this.renderer.setStyle(this.dropdownPortal, 'left', `${this.Position.left}px`);\n this.renderer.setStyle(this.dropdownPortal, 'width', `${this.Position.width}px`);\n }\n\n /**\n * Perform search on tree\n */\n private performSearch(text: string): void {\n // Fire before event\n const beforeEvent = new BeforeSearchEventArgs(this, text);\n this.BeforeSearch.emit(beforeEvent);\n\n if (beforeEvent.Cancel) {\n return;\n }\n\n const searchText = beforeEvent.ModifiedSearchText ?? text;\n\n if (!this.treeComponent) {\n return;\n }\n\n const matchedNodes = this.treeComponent.FilterNodes(\n searchText,\n {\n caseSensitive: this.SearchConfig.CaseSensitive,\n searchBranches: this.SearchConfig.SearchBranches ?? true,\n searchLeaves: this.SearchConfig.SearchLeaves ?? true,\n searchDescription: this.SearchConfig.SearchDescription\n }\n );\n\n // Auto-expand to show matches\n if (this.SearchConfig.AutoExpandMatches !== false && searchText.trim()) {\n for (const node of matchedNodes) {\n this.treeComponent.ExpandToNode(node.ID);\n }\n }\n\n // Fire after event\n const afterEvent = new AfterSearchEventArgs(this, searchText, matchedNodes);\n this.AfterSearch.emit(afterEvent);\n\n this.cdr.detectChanges();\n }\n\n /**\n * Clear search filter\n */\n private clearSearch(): void {\n if (this.treeComponent) {\n this.treeComponent.FilterNodes('', {});\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Get all visible nodes in tree order (for keyboard navigation)\n */\n private getVisibleNodesInOrder(nodes: TreeNode[]): TreeNode[] {\n const result: TreeNode[] = [];\n this.collectVisibleNodesRecursive(nodes, result);\n return result;\n }\n\n private collectVisibleNodesRecursive(nodes: TreeNode[], result: TreeNode[]): void {\n for (const node of nodes) {\n if (node.Visible) {\n result.push(node);\n if (node.Expanded && node.Type === 'branch') {\n this.collectVisibleNodesRecursive(node.Children, result);\n }\n }\n }\n }\n\n /**\n * Sync value to tree selection\n */\n private syncValueToSelection(): void {\n if (!this.treeComponent || !this.IsLoaded) {\n return;\n }\n\n // Convert CompositeKey(s) to string IDs for tree selection\n const ids = this.getSelectedIDsArray();\n\n // Pass emitChange=false to avoid emitting SelectionChange during sync\n // This prevents unnecessary events and parent component confusion\n this.treeComponent.SelectNodes(ids, false);\n\n // Use try-catch as defensive measure since tree component may not be fully ready\n try {\n this.SelectedNodes = this.treeComponent.GetSelectedNodes() || [];\n } catch {\n this.SelectedNodes = [];\n }\n\n // Clear pending display text since we now have real nodes\n this._pendingDisplayText = null;\n\n this.cdr.detectChanges();\n }\n\n /**\n * Fetch display text for value before tree loads using Metadata.GetEntityRecordName\n */\n private async fetchDisplayTextForValue(val: CompositeKey | CompositeKey[] | null): Promise<void> {\n if (!val || !this.LeafConfig) {\n this._pendingDisplayText = null;\n this.cdr.detectChanges();\n return;\n }\n\n try {\n const md = new Metadata();\n const entityName = this.LeafConfig.EntityName;\n\n if (Array.isArray(val)) {\n // Multiple selection\n if (val.length === 0) {\n this._pendingDisplayText = null;\n } else if (val.length === 1) {\n this._pendingDisplayText = await md.GetEntityRecordName(entityName, val[0]);\n } else {\n this._pendingDisplayText = `${val.length} items selected`;\n }\n } else {\n // Single selection\n this._pendingDisplayText = await md.GetEntityRecordName(entityName, val);\n }\n } catch (error) {\n console.warn('[TreeDropdown] Failed to fetch display text:', error);\n this._pendingDisplayText = null;\n }\n\n this.cdr.detectChanges();\n }\n\n // ========================================\n // Template Helpers\n // ========================================\n\n /**\n * Get display text for selected value(s)\n */\n public getDisplayText(): string {\n // If we have selected nodes from the tree, use those\n if (this.SelectedNodes.length > 0) {\n if (this.SelectionMode === 'single') {\n return this.SelectedNodes[0].Label;\n }\n\n // Multiple selection\n if (this.SelectedNodes.length === 1) {\n return this.SelectedNodes[0].Label;\n }\n\n return `${this.SelectedNodes.length} items selected`;\n }\n\n // If tree not loaded but we have pending display text from Metadata lookup\n if (this._pendingDisplayText) {\n return this._pendingDisplayText;\n }\n\n return '';\n }\n\n /**\n * Get display icon for single selection\n */\n public getDisplayIcon(): string | null {\n if (!this.ShowIconInDisplay || this.SelectedNodes.length !== 1) {\n return null;\n }\n return this.SelectedNodes[0].Icon;\n }\n\n /**\n * Get display color for single selection\n */\n public getDisplayColor(): string | null {\n if (this.SelectedNodes.length !== 1) {\n return null;\n }\n return this.SelectedNodes[0].Color || null;\n }\n\n /**\n * Check if has selection\n */\n public hasSelection(): boolean {\n return this.SelectedNodes.length > 0 || this._pendingDisplayText != null;\n }\n\n /**\n * Get dropdown panel styles\n */\n public getDropdownStyles(): Record<string, string> {\n if (!this.Position) {\n return {};\n }\n\n return {\n top: `${this.Position.top}px`,\n left: `${this.Position.left}px`,\n width: `${this.Position.width}px`,\n maxHeight: `${this.Position.maxHeight}px`\n };\n }\n\n /**\n * Get trigger classes\n */\n public getTriggerClasses(): Record<string, boolean> {\n return {\n 'tree-dropdown-trigger': true,\n 'tree-dropdown-trigger--open': this.IsOpen,\n 'tree-dropdown-trigger--disabled': this.Disabled,\n 'tree-dropdown-trigger--has-value': this.hasSelection(),\n 'tree-dropdown-trigger--loading': this.IsLoading && this.ShowLoadingInTrigger\n };\n }\n\n /**\n * Get selected IDs as a string array for passing to tree component.\n * Extracts the first key value from each CompositeKey (typically the ID field).\n */\n public getSelectedIDsArray(): string[] {\n if (!this._value) {\n return [];\n }\n\n const keys = Array.isArray(this._value) ? this._value : [this._value];\n return keys.map(key => {\n // Get the first value from the composite key (usually the ID)\n const firstValue = key.GetValueByIndex(0);\n return firstValue != null ? String(firstValue) : '';\n }).filter(id => id !== '');\n }\n}\n","<!-- Tree Dropdown Component Template -->\n<div class=\"tree-dropdown\" [class.tree-dropdown--disabled]=\"Disabled\">\n\n <!-- Trigger Button -->\n <div\n #triggerElement\n [ngClass]=\"getTriggerClasses()\"\n [class]=\"StyleConfig.SearchInputClass || ''\"\n tabindex=\"0\"\n role=\"combobox\"\n [attr.aria-expanded]=\"IsOpen\"\n [attr.aria-haspopup]=\"'tree'\"\n [attr.aria-disabled]=\"Disabled\"\n (click)=\"onTriggerClick()\"\n (keydown)=\"onTriggerKeyDown($event)\">\n\n <!-- Selected Value Display -->\n <div class=\"tree-dropdown-trigger__content\">\n <!-- Icon -->\n @if (getDisplayIcon()) {\n <span\n class=\"tree-dropdown-trigger__icon\"\n [style.color]=\"getDisplayColor()\">\n <i [class]=\"getDisplayIcon()\"></i>\n </span>\n }\n\n <!-- Text -->\n <span\n class=\"tree-dropdown-trigger__text\"\n [class.tree-dropdown-trigger__text--placeholder]=\"!hasSelection()\">\n {{ hasSelection() ? getDisplayText() : Placeholder }}\n </span>\n\n <!-- Loading Spinner -->\n @if (IsLoading && ShowLoadingInTrigger) {\n <span class=\"tree-dropdown-trigger__loading\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </span>\n }\n </div>\n\n <!-- Actions -->\n <div class=\"tree-dropdown-trigger__actions\">\n <!-- Clear Button -->\n @if (Clearable && hasSelection() && !Disabled) {\n <button\n type=\"button\"\n class=\"tree-dropdown-trigger__clear\"\n (click)=\"Clear($event)\"\n title=\"Clear selection\"\n tabindex=\"-1\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n\n <!-- Chevron -->\n <span class=\"tree-dropdown-trigger__chevron\">\n <i\n class=\"fa-solid\"\n [ngClass]=\"IsOpen ? 'fa-chevron-up' : 'fa-chevron-down'\">\n </i>\n </span>\n </div>\n </div>\n\n <!-- Dropdown Panel (rendered in place, will be moved to portal when open) -->\n @if (IsOpen) {\n <div\n #dropdownPanel\n class=\"tree-dropdown-panel\"\n [class.tree-dropdown-panel--open]=\"IsOpen\"\n [class.tree-dropdown-panel--above]=\"Position?.renderAbove\"\n [class.tree-dropdown-panel--below]=\"!Position?.renderAbove\"\n [class]=\"StyleConfig.DropdownClass || ''\"\n [ngStyle]=\"IsOpen ? getDropdownStyles() : {}\"\n role=\"tree\">\n <!-- Search Input -->\n @if (EnableSearch) {\n <div class=\"tree-dropdown-search\">\n <div class=\"tree-dropdown-search__input-wrapper\">\n <i class=\"fa-solid fa-search tree-dropdown-search__icon\"></i>\n <input\n #searchInput\n type=\"text\"\n class=\"tree-dropdown-search__input\"\n [placeholder]=\"SearchConfig.Placeholder || 'Type to search...'\"\n [value]=\"SearchText\"\n (input)=\"onSearchInput($event)\"\n (keydown)=\"onSearchKeyDown($event)\"\n autocomplete=\"off\"\n spellcheck=\"false\">\n @if (SearchText) {\n <button\n type=\"button\"\n class=\"tree-dropdown-search__clear\"\n (click)=\"onClearSearch()\"\n tabindex=\"-1\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n </div>\n }\n <!-- Tree -->\n <div class=\"tree-dropdown-tree\">\n <mj-tree\n #treeComponent\n [BranchConfig]=\"BranchConfig\"\n [LeafConfig]=\"LeafConfig\"\n [SelectionMode]=\"SelectionMode\"\n [SelectableTypes]=\"SelectableTypes\"\n [SelectedIDs]=\"getSelectedIDsArray()\"\n [AutoLoad]=\"AutoLoad\"\n [ShowIcons]=\"true\"\n [ShowExpandCollapseAll]=\"false\"\n [AnimateExpandCollapse]=\"true\"\n [EmptyMessage]=\"SearchText ? 'No matches found' : 'No items available'\"\n [EmptyIcon]=\"SearchText ? 'fa-solid fa-search' : 'fa-solid fa-folder-open'\"\n (SelectionChange)=\"onTreeSelectionChange($event)\"\n (BeforeNodeSelect)=\"onTreeBeforeNodeSelect($event)\"\n (AfterNodeSelect)=\"onTreeAfterNodeSelect($event)\"\n (BeforeDataLoad)=\"onTreeBeforeDataLoad($event)\"\n (AfterDataLoad)=\"onTreeAfterDataLoad($event)\">\n </mj-tree>\n </div>\n </div>\n }\n</div>\n"]}
|
package/dist/public-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,cAAc,uBAAuB,CAAC;AAEtC,aAAa;AACb,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6CAA6C,CAAC;AAE5D,mBAAmB;AACnB,cAAc,yBAAyB,CAAC;AAExC,SAAS;AACT,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,cAAc,uBAAuB,CAAC;AAEtC,aAAa;AACb,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6CAA6C,CAAC;AAE5D,mBAAmB;AACnB,cAAc,yBAAyB,CAAC;AAExC,SAAS;AACT,cAAc,0BAA0B,CAAC","sourcesContent":["/**\n * Public API Surface of @memberjunction/ng-trees\n */\n\n// Module\nexport * from './lib/ng-trees.module';\n\n// Components\nexport * from './lib/tree/tree.component';\nexport * from './lib/tree-dropdown/tree-dropdown.component';\n\n// Types and Models\nexport * from './lib/models/tree-types';\n\n// Events\nexport * from './lib/events/tree-events';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-trees",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0",
|
|
4
4
|
"description": "MemberJunction: Angular tree and tree dropdown components for hierarchical entity selection",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"@angular/forms": "21.1.3"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@memberjunction/core": "5.
|
|
36
|
-
"@memberjunction/core-entities": "5.
|
|
37
|
-
"@memberjunction/global": "5.
|
|
35
|
+
"@memberjunction/core": "5.4.0",
|
|
36
|
+
"@memberjunction/core-entities": "5.4.0",
|
|
37
|
+
"@memberjunction/global": "5.4.0",
|
|
38
38
|
"tslib": "^2.8.1",
|
|
39
39
|
"rxjs": "^7.8.2"
|
|
40
40
|
},
|