@wavemaker-ai/app-ng-runtime 12.0.1-rc.338 → 12.0.2-rc.344

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/components/base/bundles/index.umd.js +3 -0
  2. package/components/base/fesm2022/index.mjs +3 -0
  3. package/components/base/fesm2022/index.mjs.map +1 -1
  4. package/components/basic/tree/bundles/index.umd.js +3 -0
  5. package/components/basic/tree/fesm2022/index.mjs +3 -0
  6. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  7. package/components/data/form/bundles/index.umd.js +4 -0
  8. package/components/data/form/fesm2022/index.mjs +4 -0
  9. package/components/data/form/fesm2022/index.mjs.map +1 -1
  10. package/components/data/live-table/bundles/index.umd.js +7 -2
  11. package/components/data/live-table/fesm2022/index.mjs +7 -2
  12. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  13. package/components/data/table/bundles/index.umd.js +17 -0
  14. package/components/data/table/fesm2022/index.mjs +17 -0
  15. package/components/data/table/fesm2022/index.mjs.map +1 -1
  16. package/components/data/table/types/index.d.ts +1 -0
  17. package/components/input/epoch/date/bundles/index.umd.js +7 -1
  18. package/components/input/epoch/date/fesm2022/index.mjs +7 -1
  19. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
  20. package/components/input/slider/bundles/index.umd.js +1 -1
  21. package/components/input/slider/fesm2022/index.mjs +1 -1
  22. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  23. package/components/input/slider/types/index.d.ts +1 -1
  24. package/core/bundles/index.umd.js +6 -5
  25. package/core/fesm2022/index.mjs +6 -5
  26. package/core/fesm2022/index.mjs.map +1 -1
  27. package/core/types/index.d.ts +2 -1
  28. package/npm-shrinkwrap.json +2 -2
  29. package/package-lock.json +2 -2
  30. package/package.json +1 -1
@@ -526,6 +526,9 @@
526
526
  /** String / number variants for zTree <code>getNodeByParam('nodeId', …)</code> and flatten fallback. */
527
527
  nodeIdLookupCandidates(raw) {
528
528
  const out = [];
529
+ if (raw === undefined || raw === null || raw === '') {
530
+ return out;
531
+ }
529
532
  const push = (v) => {
530
533
  if (v !== undefined && v !== null && v !== '' && !out.includes(v)) {
531
534
  out.push(v);
@@ -507,6 +507,9 @@ class TreeComponent extends StylableComponent {
507
507
  /** String / number variants for zTree <code>getNodeByParam('nodeId', …)</code> and flatten fallback. */
508
508
  nodeIdLookupCandidates(raw) {
509
509
  const out = [];
510
+ if (raw === undefined || raw === null || raw === '') {
511
+ return out;
512
+ }
510
513
  const push = (v) => {
511
514
  if (v !== undefined && v !== null && v !== '' && !out.includes(v)) {
512
515
  out.push(v);
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/tree/src/tree.props.ts","../../../../../projects/components/widgets/basic/tree/src/tree-node-template-host.component.ts","../../../../../projects/components/widgets/basic/tree/src/tree.component.ts","../../../../../projects/components/widgets/basic/tree/src/tree.component.html","../../../../../projects/components/widgets/basic/tree/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-tree',\n new Map(\n [\n ['class', PROP_STRING],\n ['template', PROP_STRING],\n ['dataset', {value: 'node1, node2, node3', ...PROP_ANY}],\n ['datavalue', PROP_STRING],\n ['levels', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodeaction', PROP_STRING],\n ['nodechildren', PROP_STRING],\n ['nodeclick', {value: 'none', ...PROP_STRING}],\n ['nodeicon', PROP_STRING],\n ['nodeid', PROP_STRING],\n ['nodelabel', PROP_STRING],\n ['orderby', PROP_STRING],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['treeicons', PROP_STRING]\n ]\n )\n );\n};\n","import { Component, Input } from '@angular/core';\n\nimport {\n ItemTemplateDirective,\n PartialContainerDirective,\n PartialParamHandlerDirective,\n} from '@wm/components/base';\n\n@Component({\n selector: 'wm-tree-node-template-host',\n standalone: true,\n imports: [\n ItemTemplateDirective,\n PartialParamHandlerDirective,\n PartialContainerDirective,\n ],\n template: `\n <span class=\"wm-tree-node-inner\" [wmItemTemplate]=\"template\" [userComponentParams]=\"userComponentParams\" partialContainer>\n <span partial-container-target></span>\n </span>\n `,\n})\nexport class TreeNodeTemplateHostComponent {\n @Input() template: string;\n @Input() userComponentParams: any;\n}\n","import { ApplicationRef, Attribute, Component, ComponentRef, EnvironmentInjector, Inject, Injector, NgZone, OnDestroy, Optional, ViewEncapsulation, createComponent } from '@angular/core';\nimport { APPLY_STYLES_TYPE, getEvaluatedData, getOrderedDataset, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './tree.props';\nimport { $parseEvent, getClonedObject, StatePersistence } from \"@wm/core\";\nimport { get, isArray, isEmpty, isObject, isString } from \"lodash-es\";\nimport { TreeNodeTemplateHostComponent } from './tree-node-template-host.component';\n\ndeclare const $;\n\nconst WIDGET_INFO = {widgetType: 'wm-tree', hostClass: 'app-tree'};\nconst defaultTreeIconClass = 'plus-minus';\n\n/** Keys merged into the widget entry under app StatePersistence (URL / localStorage / sessionStorage). */\nconst TREE_STATE_SELECTED_ID = 'selectedNodeId';\nconst TREE_STATE_SELECTED_PATH = 'selectedNodePath';\n\n@Component({\n standalone: true,\n selector: 'ul[wmTree]',\n templateUrl: './tree.component.html',\n providers: [\n provideAsWidgetRef(TreeComponent)\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeComponent extends StylableComponent implements OnDestroy {\n static readonly initializeProps = registerProps();\n\n private nodes: Array<any>;\n private zTreeNodes: Array<any>;\n private level;\n private treeClass;\n private name;\n private zTree;\n\n public datavalue: string;\n public treeicons: string;\n public selecteditem: any;\n public nodeid: string;\n public nodeaction: string;\n public nodeclick: string;\n public nodelabel: string;\n public nodeicon: string;\n public nodechildren: string;\n public orderby: string;\n /** Retain selected node in URL / localStorage / sessionStorage. */\n public statehandler: string;\n /** Partial name for custom tree node UI (set via setTemplate or binding). */\n public template: string;\n\n /** Dynamic hosts for custom node template (cleared on each render). */\n private nodeTemplateRefs: Array<ComponentRef<TreeNodeTemplateHostComponent>> = [];\n private readonly ngZone: NgZone;\n private readonly applicationRef: ApplicationRef;\n private readonly environmentInjector: EnvironmentInjector;\n private readonly statePersistence: StatePersistence;\n\n private setting = {\n data: {\n simpleData: {\n enable: false\n }\n },\n view: {\n dblClickExpand: false,\n fontCss: {\n 'font-awesome': true\n },\n switchIcon: {},\n },\n check: {},\n callback: {}\n };\n\n constructor(\n inj: Injector,\n @Attribute('datavalue.bind') private readonly binddatavalue,\n @Attribute('nodelabel.bind') private readonly bindnodelabel,\n @Attribute('nodeicon.bind') private readonly bindnodeicon,\n @Attribute('nodechildren.bind') private readonly bindnodechildren,\n @Attribute('nodeid.bind') private readonly bindnodeid,\n statePersistence: StatePersistence,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_INFO, explicitContext);\n this.ngZone = inj.get(NgZone);\n this.applicationRef = inj.get(ApplicationRef);\n this.environmentInjector = inj.get(EnvironmentInjector);\n this.statePersistence = statePersistence;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n\n this.setting.view['nodeClasses'] = this.setNodeClasses;\n this.setting.callback[\"onClick\"] = this.onClick.bind(this);\n this.setting.callback[\"onExpand\"] = this.onExpand.bind(this);\n this.setting.callback[\"onCollapse\"] = this.onCollapse.bind(this);\n }\n\n public onPropertyChange(key: string, nv: any, ov?: any): void {\n switch (key) {\n case 'dataset':\n this.nodes = this.getNodes(nv);\n this.renderTree();\n break;\n case 'levels':\n this.level = nv;\n this.renderTree();\n break;\n case 'nodeicon':\n this.nodeicon = nv;\n this.renderTree();\n break;\n case 'nodelabel':\n this.nodelabel = nv;\n this.renderTree();\n break;\n case 'nodechildren':\n this.nodechildren = nv;\n this.renderTree();\n break;\n case 'orderby':\n this.orderby = nv;\n this.renderTree();\n break;\n case 'treeicons':\n this.treeicons = nv;\n this.renderTree();\n break;\n case 'template':\n this.template = nv;\n this.renderTree();\n break;\n case 'class':\n this.treeClass = nv;\n this.setTreeTemplate(this.treeClass);\n super.onPropertyChange(key, nv, ov);\n this.renderTree();\n break;\n case 'statehandler':\n super.onPropertyChange(key, nv, ov);\n if (String(nv || '').toLowerCase() !== 'none' && this.zTree && this.nodes?.length) {\n setTimeout(() => this.restorePersistedSelectionAfterStatehandlerChange(), 0);\n }\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n break;\n }\n }\n\n // set tree node template\n public setTemplate(partialName: string) {\n this.template = partialName;\n if (this.viewParent?.prefabName) {\n this['prefabName'] = this.viewParent.prefabName;\n }\n this.renderTree();\n }\n\n private destroyNodeTemplateHostRefs(): void {\n this.nodeTemplateRefs.forEach(ref => ref.destroy());\n this.nodeTemplateRefs = [];\n }\n\n /** Re-run change detection on custom node partials after zTree mutates node state (e.g. open). No-op when template is unset or no hosts exist. */\n private refreshTreeNodeTemplateHosts(): void {\n if (!this.template || !this.nodeTemplateRefs.length) {\n return;\n }\n this.ngZone.run(() => {\n for (const ref of this.nodeTemplateRefs) {\n try {\n ref.changeDetectorRef.detectChanges();\n } catch {\n /* host destroyed */\n }\n }\n });\n }\n\n /** Item passed to the custom template: zTree node API + row fields + toggle/select helpers. */\n private buildCustomTemplateItemProxy(treeNode: any): any {\n const rowData = treeNode.data;\n const itemPayload = rowData && typeof rowData === 'object' ? getClonedObject(rowData) : rowData;\n\n const self = this;\n const nodeHelperProto = Object.create(treeNode);\n nodeHelperProto.toggleExpand = (event?: Event) => {\n if (event) {\n event.preventDefault?.();\n event.stopPropagation?.();\n }\n if (!treeNode.isParent) {\n return;\n }\n self.expandNode(treeNode, !treeNode.open, true);\n };\n Object.defineProperty(nodeHelperProto, 'isSelected', {\n enumerable: true,\n configurable: true,\n get: () => !!self.zTree?.isSelectedNode?.(treeNode),\n });\n\n const nodeApi = Object.create(nodeHelperProto);\n return {\n ... itemPayload,\n _node: nodeApi,\n };\n }\n\n private mountTreeNodeTemplateHost(host: HTMLElement, treeNode: any): void {\n const ref = createComponent(TreeNodeTemplateHostComponent, {\n environmentInjector: this.environmentInjector,\n elementInjector: this.inj,\n hostElement: host,\n });\n ref.setInput('template', this.template);\n ref.setInput('userComponentParams', { dataObject: this.buildCustomTemplateItemProxy(treeNode) });\n this.applicationRef.attachView(ref.hostView);\n ref.changeDetectorRef.detectChanges();\n this.nodeTemplateRefs.push(ref);\n }\n\n private readonly addDiyDom = (_treeId: string, treeNode: any) => {\n if (!this.template) {\n return;\n }\n const aObj = $('#' + treeNode.tId + '_a');\n if (!aObj.length || aObj.find('.wm-tree-node-template-host').length) {\n return;\n }\n /** hide default zTree switch & icon and hide the built-in label span when using a custom template. */\n const switchEl = $('#' + treeNode.tId + '_switch');\n switchEl.hide();\n $('#' + treeNode.tId + '_span').hide();\n\n const host = document.createElement('span');\n host.className = 'wm-tree-node-template-host wm-tree-node-item';\n if (treeNode.disabled) {\n host.classList.add('wm-tree-node-disabled');\n }\n aObj.append(host);\n this.mountTreeNodeTemplateHost(host, treeNode);\n };\n\n ngOnDestroy() {\n this.destroyNodeTemplateHostRefs();\n super.ngOnDestroy();\n }\n\n // expands the tree nodes if the property is selected.\n private expandTree(level, node, childLevel) {\n node.map(childNode => {\n const children = childNode.children;\n if (children && childLevel < level) {\n childNode.open = true;\n this.expandTree(level, children, childLevel+1);\n } else {\n childLevel = 0;\n return;\n }\n });\n }\n\n // sets the template for the tree based on the property selected.\n private setTreeTemplate(value) {\n const classList = value?.split(\" \");\n if (classList?.length) {\n if (classList.includes('Classic')) {\n this.setting.check[\"enable\"] = false;\n } else if (classList.includes('Checkbox')) {\n this.setting.check[\"enable\"] = true;\n this.setting.check[\"chkStyle\"] = 'checkbox';\n } else if (classList.includes('Radio')) {\n this.setting.check[\"enable\"] = true;\n this.setting.check[\"chkStyle\"] = 'radio';\n this.setting.check[\"radioType\"] = \"all\";\n }\n }\n }\n\n // extracts nodes from string format\n private getNodesFromString(value) {\n return value.split(',').map((item) => {\n return {\n 'label': item?.trim()\n };\n });\n }\n\n // gets the nodes and orders the nodes if required\n private getNodes(newVal) {\n let nodes;\n if (isArray(newVal)) {\n nodes = getOrderedDataset(newVal, this.orderby);\n } else if (isObject(newVal)) {\n nodes = [newVal];\n } else if (isString(newVal) && !isEmpty(newVal)) {\n const trimmed = newVal.trim();\n if (trimmed) {\n if (trimmed.startsWith('[') || trimmed.startsWith('{')) {\n try {\n const parsed = JSON.parse(trimmed);\n if (isArray(parsed)) {\n nodes = getOrderedDataset(parsed, this.orderby);\n } else if (isObject(parsed)) {\n nodes = [parsed];\n }\n } catch {\n // Not valid JSON; treat as comma-separated labels below.\n }\n }\n if (!nodes) {\n nodes = this.getNodesFromString(trimmed);\n }\n }\n }\n return nodes;\n }\n\n // adds class to the nodes inorder to add icons to respective node.\n private setNodeClasses(treeId, treeNode) {\n const add: string[] = [];\n if (treeNode.icon) {\n add.push(`${treeNode.icon}`);\n }\n if (treeNode.disabled) {\n add.push('wm-tree-node-disabled');\n }\n return add.length ? { add } : '';\n };\n\n // adds tree icons to the nodes on load of the tree\n private changeTreeIcons(nv) {\n let eleClose = $('ul[name=\"' + this.name + '\"] li span.button.switch');\n\n $(eleClose).map((idx, ele) => {\n $(ele).addClass(nv);\n $(ele).on(\"click\",function(e) {\n setTimeout(() => {\n $(ele).addClass(nv);\n }, 0);\n });\n })\n }\n\n // Returns the node path\n private getPath(treeNode, path) {\n if(treeNode.getParentNode() === null) {\n path = \"/\" + treeNode.name + path;\n } else {\n path = this.getPath(treeNode.getParentNode(), path) + \"/\" + treeNode.name;\n }\n return path;\n }\n\n // binds the click event to all nodes to open the child nodes\n public onClick(event, treeId, treeNode, clickFlag) {\n if (treeNode.disabled) {\n return;\n }\n if(this.nodeclick === \"expand\") {\n const nodes = this.zTree.getSelectedNodes();\n if (nodes.length>0) {\n this.expandNode(nodes[0], !nodes[0].open, true);\n }\n }\n this.selectNode(event, treeNode);\n }\n\n // Adds tree icon classes to child nodes when expanded\n public onExpand(event, treeId, treeNode) {\n let self = this;\n let path = this.getPath(treeNode, \"\");\n\n const eventParams = {\n '$event' : event,\n \"$item\" : getClonedObject(treeNode.data),\n \"$path\" : path\n };\n this.invokeEventCallback('expand', eventParams);\n\n const children = treeNode.children;\n children?.map((el) => {\n if (el.isParent) {\n let ele = $(`#${el.tId}_switch`);\n $(ele).addClass(self.treeicons || defaultTreeIconClass);\n $(ele).on(\"click\", function(e) {\n setTimeout(() => {\n $(ele).addClass(self.treeicons || defaultTreeIconClass);\n }, 0);\n });\n }\n });\n this.refreshTreeNodeTemplateHosts();\n }\n\n public onCollapse(event, treeId, treeNode) {\n let path = this.getPath(treeNode, \"\");\n const eventParams = {\n '$event' : event,\n \"$item\" : getClonedObject(treeNode.data),\n \"$path\" : path\n };\n this.invokeEventCallback('collapse', eventParams);\n this.refreshTreeNodeTemplateHosts();\n }\n\n // function to support backward compatibility of objects\n private constructZTreeData(data, zTreeData) {\n data.forEach(node => {\n const zNode = {};\n const evaluatedLabel = getEvaluatedData(node, { field: this.nodelabel, bindExpression: this.bindnodelabel }, this.viewParent);\n // Avoid zTree rendering the literal \"undefined\" when label field is missing or nodelabel does not match dataset (e.g. data uses \"key\" only).\n const name =\n evaluatedLabel !== undefined && evaluatedLabel !== null && evaluatedLabel !== ''\n ? evaluatedLabel\n : (node.label ?? node.key ?? node.name ?? '');\n const icon = getEvaluatedData(node, { field: this.nodeicon, bindExpression: this.bindnodeicon }, this.viewParent) || node.icon;\n const nodeId = getEvaluatedData(node, { field: this.nodeid, bindExpression: this.bindnodeid }, this.viewParent);\n const children = getEvaluatedData(node, { field: this.nodechildren, bindExpression: this.bindnodechildren }, this.viewParent) || node.children;\n zNode['name'] = name === undefined || name === null ? '' : String(name);\n if(!this.template) {\n zNode['icon'] = icon;\n }\n zNode['nodeId'] = nodeId;\n zNode['data'] = getClonedObject(node);\n if (node.selected) {\n zNode['selected'] = true;\n }\n if (node.disabled) {\n zNode['disabled'] = true;\n zNode['chkDisabled'] = true;\n }\n if (node.iconSkin != null && node.iconSkin !== '') {\n zNode['iconSkin'] = node.iconSkin;\n }\n if (node.iconOpen != null && node.iconOpen !== '') {\n zNode['iconOpen'] = node.iconOpen;\n }\n if (node.iconClose != null && node.iconClose !== '') {\n zNode['iconClose'] = node.iconClose;\n }\n if (isArray(children) && children.length) {\n zNode['children'] = [];\n this.constructZTreeData(children, zNode['children']);\n }\n zTreeData.push(zNode);\n });\n }\n\n // Renders the tree on to the dom\n public renderTree() {\n this.destroyNodeTemplateHostRefs();\n this.setting.view['addDiyDom'] = this.template ? this.addDiyDom : function(treeId, treeNode) {\n if (treeNode.disabled) {\n const switchObj = $(\"#\" + treeNode.tId + \"_switch\");\n switchObj.addClass(\"wm-tree-node-disabled\");\n }\n };\n this.nativeElement.classList.toggle('app-tree-custom', !!this.template);\n this.zTreeNodes = [];\n if(this.nodes?.length) {\n this.nativeElement.setAttribute('id', this.name);\n this.constructZTreeData(this.nodes, this.zTreeNodes);\n if(this.level > 0) {\n this.expandTree(this.level, this.zTreeNodes, 0);\n }\n }\n this.zTree = $.fn.zTree.init($('ul[name=\"' + this.name + '\"]'), this.setting, this.zTreeNodes);\n $.fn.zTreeKeyboardNavigation(this.zTree, $('ul[name=\"' + this.name + '\"]'), null, this.treeicons || defaultTreeIconClass);\n this.postRenderTree();\n }\n\n // --- Selection state persistence (statehandler → StatePersistence: URL | localStorage | sessionStorage | none) ---\n\n private isStatePersistenceEnabled(): boolean {\n return !!this.statePersistence.computeMode(this.statehandler);\n }\n\n private clearPersistedTreeSelection(): void {\n if (!this.isStatePersistenceEnabled()) {\n return;\n }\n this.statePersistence.removeWidgetState(this, TREE_STATE_SELECTED_ID);\n this.statePersistence.removeWidgetState(this, TREE_STATE_SELECTED_PATH);\n }\n\n private persistTreeSelection(path: string, nodeId: any): void {\n if (!this.isStatePersistenceEnabled()) {\n return;\n }\n const payload: Record<string, string | number> = { [TREE_STATE_SELECTED_PATH]: path };\n if (nodeId !== undefined && nodeId !== null && nodeId !== '') {\n payload[TREE_STATE_SELECTED_ID] = nodeId;\n }\n this.statePersistence.setWidgetState(this, payload);\n }\n\n private readPersistedTreeSelection(): any {\n return this.isStatePersistenceEnabled() ? this.statePersistence.getWidgetState(this) : undefined;\n }\n\n private hasPersistedTreeSelection(widgetState: any): boolean {\n if (!widgetState || typeof widgetState !== 'object') {\n return false;\n }\n const id = get(widgetState, TREE_STATE_SELECTED_ID);\n const path = get(widgetState, TREE_STATE_SELECTED_PATH);\n const hasId = id !== undefined && id !== null && id !== '';\n const hasPath = typeof path === 'string' && path.length > 0;\n return hasId || hasPath;\n }\n\n private restorePersistedSelectionAfterStatehandlerChange(): void {\n if (!this.zTree || !this.isStatePersistenceEnabled()) {\n return;\n }\n const state = this.readPersistedTreeSelection();\n if (this.hasPersistedTreeSelection(state)) {\n this.restoreTreeSelectionFromPersistedState(state);\n }\n }\n\n private getAllZTreeNodesFlat(): any[] {\n return this.zTree ? this.zTree.transformToArray(this.zTree.getNodes()) : [];\n }\n\n /** String / number variants for zTree <code>getNodeByParam('nodeId', …)</code> and flatten fallback. */\n private nodeIdLookupCandidates(raw: any): any[] {\n const out: any[] = [];\n const push = (v: any) => {\n if (v !== undefined && v !== null && v !== '' && !out.includes(v)) {\n out.push(v);\n }\n };\n push(raw);\n push(String(raw));\n if (typeof raw === 'string' && raw.trim() !== '' && !Number.isNaN(Number(raw))) {\n push(Number(raw));\n }\n return out;\n }\n\n /** Resolve by stored <code>nodeId</code>: <code>getNodeByParam</code> first, then flattened tree scan. */\n private findZTreeNodeByStoredNodeId(nodeId: any): any {\n if (!this.zTree || nodeId === undefined || nodeId === null || nodeId === '') {\n return null;\n }\n const candidates = this.nodeIdLookupCandidates(nodeId);\n if (typeof this.zTree.getNodeByParam === 'function') {\n for (const c of candidates) {\n const n = this.zTree.getNodeByParam('nodeId', c, null);\n if (n) {\n return n;\n }\n }\n }\n const flat = this.getAllZTreeNodesFlat();\n return (\n flat.find(\n (n) =>\n n.nodeId !== undefined &&\n n.nodeId !== null &&\n candidates.some((c) => String(n.nodeId) === String(c))\n ) || null\n );\n }\n\n private findZTreeNodeByStoredPath(persistedPath: string): any {\n if (!persistedPath || !this.zTree) {\n return null;\n }\n return (\n this.getAllZTreeNodesFlat().find((n) => this.treePathsEqual(this.getPath(n, ''), persistedPath)) || null\n );\n }\n\n /** Expand parents, zTree <code>selectNode</code>, app <code>selectNode</code> (works for default + custom templates). */\n private applyStoredSelectionToTree(treeNode: any): void {\n if (!treeNode || !this.zTree || treeNode.disabled) {\n return;\n }\n this.expandAncestors(treeNode);\n this.zTree.selectNode(treeNode, false);\n this.selectNode(undefined, treeNode);\n this.expandNode(treeNode, true, false);\n }\n\n /** Prefer stored id, then stored path; no-op if node missing (stale URL/storage after data change). */\n private restoreTreeSelectionFromPersistedState(widgetState: any): boolean {\n if (!this.zTree || !widgetState) {\n return false;\n }\n const persistedId = get(widgetState, TREE_STATE_SELECTED_ID);\n if (persistedId !== undefined && persistedId !== null && persistedId !== '') {\n const byId = this.findZTreeNodeByStoredNodeId(persistedId);\n if (byId) {\n this.applyStoredSelectionToTree(byId);\n return true;\n }\n }\n const persistedPath = get(widgetState, TREE_STATE_SELECTED_PATH);\n if (typeof persistedPath === 'string' && persistedPath.length) {\n const byPath = this.findZTreeNodeByStoredPath(persistedPath);\n if (byPath) {\n this.applyStoredSelectionToTree(byPath);\n return true;\n }\n }\n return false;\n }\n\n private treePathsEqual(a: string, b: string): boolean {\n if (a === b) {\n return true;\n }\n const norm = (p: string) => (p.startsWith('/') ? p : '/' + p).replace(/\\/+/g, '/');\n return norm(a) === norm(b);\n }\n\n private expandAncestors(treeNode: any): void {\n if (!this.zTree || !treeNode?.getParentNode) {\n return;\n }\n const chain: any[] = [];\n let p = treeNode.getParentNode();\n while (p) {\n chain.push(p);\n p = p.getParentNode();\n }\n for (let i = chain.length - 1; i >= 0; i--) {\n this.zTree.expandNode(chain[i], true, false, false, true);\n }\n }\n\n private setChecked(zNode, node) {\n node.checked = zNode.checked;\n const children = getEvaluatedData(node, {field: this.nodechildren, bindExpression: this.bindnodechildren}, this.viewParent) || node.children;\n if(children?.length) {\n children.forEach((node, index) => {\n this.setChecked(zNode.children[index], node);\n });\n }\n }\n\n private selectNode(event, node) {\n const deSelectElm = $(`.app-tree[name=${this.name}] li[treenode].selected`);\n deSelectElm.removeClass('selected');\n\n if (!node) {\n this.clearPersistedTreeSelection();\n this.refreshTreeNodeTemplateHosts();\n return;\n }\n if (node.disabled) {\n return;\n }\n const selectElm = $(`#${node.tId}:has(.curSelectedNode)`);\n selectElm.addClass('selected');\n\n\n const classList = (this.treeClass || \"\").split(\" \");\n if (classList.includes('Checkbox') || classList.includes('Radio')) {\n this.setChecked(node, node.data);\n }\n\n const path = this.getPath(node, \"\");\n this.selecteditem = getClonedObject(node.data) || {};\n this.selecteditem.path = path;\n\n this.persistTreeSelection(path, node.nodeId);\n\n const eventParams = {\n '$event' : event,\n \"$item\" : getClonedObject(node.data),\n \"$path\" : path\n };\n\n //[Todo-CSP]: this data will be dynamic, can not generate function upfront\n const nodeAction = node.data[this.nodeaction || 'action'];\n if (nodeAction) {\n $parseEvent(nodeAction)(this);\n }\n this.invokeEventCallback('select', eventParams);\n this.refreshTreeNodeTemplateHosts();\n }\n\n private expandNode(node, expand, eventFlag) {\n this.zTree.expandNode(node, expand, false, false, eventFlag);\n const el = $(`#${node.tId}_switch`);\n $(el).addClass(this.treeicons || defaultTreeIconClass);\n this.refreshTreeNodeTemplateHosts();\n }\n\n private postRenderTree() {\n setTimeout(() => {\n this.changeTreeIcons(this.treeicons || defaultTreeIconClass);\n this.syncSelectionAfterZTreeRender();\n }, 200);\n }\n\n /**\n * After zTree init: honor dataset <code>selected</code>, else persisted state, else <code>datavalue</code>\n * (FirstNode / LastNode).\n */\n private syncSelectionAfterZTreeRender(): void {\n if (!this.zTree) {\n return;\n }\n const allNodes = this.getAllZTreeNodesFlat();\n const selectedFromDataset = allNodes.find((n) => n.selected && !n.disabled);\n if (selectedFromDataset) {\n this.zTree.selectNode(selectedFromDataset, false);\n this.selectNode(undefined, selectedFromDataset);\n this.expandNode(selectedFromDataset, true, false);\n return;\n }\n\n const persisted = this.readPersistedTreeSelection();\n if (this.hasPersistedTreeSelection(persisted) && this.restoreTreeSelectionFromPersistedState(persisted)) {\n return;\n }\n\n this.applyDatavalueDefaultSelection();\n }\n\n private applyDatavalueDefaultSelection(): void {\n if (!this.datavalue || this.selecteditem) {\n return;\n }\n const nodes = this.zTree.getNodes();\n if (!nodes?.length) {\n return;\n }\n let node: any;\n if (this.datavalue === 'FirstNode') {\n node = nodes.find((n) => !n.disabled) ?? null;\n } else if (this.datavalue === 'LastNode') {\n for (let i = nodes.length - 1; i >= 0; i--) {\n if (!nodes[i].disabled) {\n node = nodes[i];\n break;\n }\n }\n }\n if (node) {\n this.zTree.selectNode(node, false);\n this.selectNode(undefined, node);\n this.expandNode(node, true, false);\n }\n }\n\n private selectById(value?) {\n const node = this.findZTreeNodeByStoredNodeId(value);\n if (node) {\n this.applyStoredSelectionToTree(node);\n }\n }\n\n private deselectById(value?) {\n this.selecteditem = {};\n this.clearPersistedTreeSelection();\n }\n}\n","<ul #wmTree class=\"ztree\" id=\"ztree\"></ul> ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/tree/src/tree.props.ts","../../../../../projects/components/widgets/basic/tree/src/tree-node-template-host.component.ts","../../../../../projects/components/widgets/basic/tree/src/tree.component.ts","../../../../../projects/components/widgets/basic/tree/src/tree.component.html","../../../../../projects/components/widgets/basic/tree/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-tree',\n new Map(\n [\n ['class', PROP_STRING],\n ['template', PROP_STRING],\n ['dataset', {value: 'node1, node2, node3', ...PROP_ANY}],\n ['datavalue', PROP_STRING],\n ['levels', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['nodeaction', PROP_STRING],\n ['nodechildren', PROP_STRING],\n ['nodeclick', {value: 'none', ...PROP_STRING}],\n ['nodeicon', PROP_STRING],\n ['nodeid', PROP_STRING],\n ['nodelabel', PROP_STRING],\n ['orderby', PROP_STRING],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['treeicons', PROP_STRING]\n ]\n )\n );\n};\n","import { Component, Input } from '@angular/core';\n\nimport {\n ItemTemplateDirective,\n PartialContainerDirective,\n PartialParamHandlerDirective,\n} from '@wm/components/base';\n\n@Component({\n selector: 'wm-tree-node-template-host',\n standalone: true,\n imports: [\n ItemTemplateDirective,\n PartialParamHandlerDirective,\n PartialContainerDirective,\n ],\n template: `\n <span class=\"wm-tree-node-inner\" [wmItemTemplate]=\"template\" [userComponentParams]=\"userComponentParams\" partialContainer>\n <span partial-container-target></span>\n </span>\n `,\n})\nexport class TreeNodeTemplateHostComponent {\n @Input() template: string;\n @Input() userComponentParams: any;\n}\n","import { ApplicationRef, Attribute, Component, ComponentRef, EnvironmentInjector, Inject, Injector, NgZone, OnDestroy, Optional, ViewEncapsulation, createComponent } from '@angular/core';\nimport { APPLY_STYLES_TYPE, getEvaluatedData, getOrderedDataset, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './tree.props';\nimport { $parseEvent, getClonedObject, StatePersistence } from \"@wm/core\";\nimport { get, isArray, isEmpty, isObject, isString } from \"lodash-es\";\nimport { TreeNodeTemplateHostComponent } from './tree-node-template-host.component';\n\ndeclare const $;\n\nconst WIDGET_INFO = {widgetType: 'wm-tree', hostClass: 'app-tree'};\nconst defaultTreeIconClass = 'plus-minus';\n\n/** Keys merged into the widget entry under app StatePersistence (URL / localStorage / sessionStorage). */\nconst TREE_STATE_SELECTED_ID = 'selectedNodeId';\nconst TREE_STATE_SELECTED_PATH = 'selectedNodePath';\n\n@Component({\n standalone: true,\n selector: 'ul[wmTree]',\n templateUrl: './tree.component.html',\n providers: [\n provideAsWidgetRef(TreeComponent)\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class TreeComponent extends StylableComponent implements OnDestroy {\n static readonly initializeProps = registerProps();\n\n private nodes: Array<any>;\n private zTreeNodes: Array<any>;\n private level;\n private treeClass;\n private name;\n private zTree;\n\n public datavalue: string;\n public treeicons: string;\n public selecteditem: any;\n public nodeid: string;\n public nodeaction: string;\n public nodeclick: string;\n public nodelabel: string;\n public nodeicon: string;\n public nodechildren: string;\n public orderby: string;\n /** Retain selected node in URL / localStorage / sessionStorage. */\n public statehandler: string;\n /** Partial name for custom tree node UI (set via setTemplate or binding). */\n public template: string;\n\n /** Dynamic hosts for custom node template (cleared on each render). */\n private nodeTemplateRefs: Array<ComponentRef<TreeNodeTemplateHostComponent>> = [];\n private readonly ngZone: NgZone;\n private readonly applicationRef: ApplicationRef;\n private readonly environmentInjector: EnvironmentInjector;\n private readonly statePersistence: StatePersistence;\n\n private setting = {\n data: {\n simpleData: {\n enable: false\n }\n },\n view: {\n dblClickExpand: false,\n fontCss: {\n 'font-awesome': true\n },\n switchIcon: {},\n },\n check: {},\n callback: {}\n };\n\n constructor(\n inj: Injector,\n @Attribute('datavalue.bind') private readonly binddatavalue,\n @Attribute('nodelabel.bind') private readonly bindnodelabel,\n @Attribute('nodeicon.bind') private readonly bindnodeicon,\n @Attribute('nodechildren.bind') private readonly bindnodechildren,\n @Attribute('nodeid.bind') private readonly bindnodeid,\n statePersistence: StatePersistence,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_INFO, explicitContext);\n this.ngZone = inj.get(NgZone);\n this.applicationRef = inj.get(ApplicationRef);\n this.environmentInjector = inj.get(EnvironmentInjector);\n this.statePersistence = statePersistence;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n\n this.setting.view['nodeClasses'] = this.setNodeClasses;\n this.setting.callback[\"onClick\"] = this.onClick.bind(this);\n this.setting.callback[\"onExpand\"] = this.onExpand.bind(this);\n this.setting.callback[\"onCollapse\"] = this.onCollapse.bind(this);\n }\n\n public onPropertyChange(key: string, nv: any, ov?: any): void {\n switch (key) {\n case 'dataset':\n this.nodes = this.getNodes(nv);\n this.renderTree();\n break;\n case 'levels':\n this.level = nv;\n this.renderTree();\n break;\n case 'nodeicon':\n this.nodeicon = nv;\n this.renderTree();\n break;\n case 'nodelabel':\n this.nodelabel = nv;\n this.renderTree();\n break;\n case 'nodechildren':\n this.nodechildren = nv;\n this.renderTree();\n break;\n case 'orderby':\n this.orderby = nv;\n this.renderTree();\n break;\n case 'treeicons':\n this.treeicons = nv;\n this.renderTree();\n break;\n case 'template':\n this.template = nv;\n this.renderTree();\n break;\n case 'class':\n this.treeClass = nv;\n this.setTreeTemplate(this.treeClass);\n super.onPropertyChange(key, nv, ov);\n this.renderTree();\n break;\n case 'statehandler':\n super.onPropertyChange(key, nv, ov);\n if (String(nv || '').toLowerCase() !== 'none' && this.zTree && this.nodes?.length) {\n setTimeout(() => this.restorePersistedSelectionAfterStatehandlerChange(), 0);\n }\n break;\n default:\n super.onPropertyChange(key, nv, ov);\n break;\n }\n }\n\n // set tree node template\n public setTemplate(partialName: string) {\n this.template = partialName;\n if (this.viewParent?.prefabName) {\n this['prefabName'] = this.viewParent.prefabName;\n }\n this.renderTree();\n }\n\n private destroyNodeTemplateHostRefs(): void {\n this.nodeTemplateRefs.forEach(ref => ref.destroy());\n this.nodeTemplateRefs = [];\n }\n\n /** Re-run change detection on custom node partials after zTree mutates node state (e.g. open). No-op when template is unset or no hosts exist. */\n private refreshTreeNodeTemplateHosts(): void {\n if (!this.template || !this.nodeTemplateRefs.length) {\n return;\n }\n this.ngZone.run(() => {\n for (const ref of this.nodeTemplateRefs) {\n try {\n ref.changeDetectorRef.detectChanges();\n } catch {\n /* host destroyed */\n }\n }\n });\n }\n\n /** Item passed to the custom template: zTree node API + row fields + toggle/select helpers. */\n private buildCustomTemplateItemProxy(treeNode: any): any {\n const rowData = treeNode.data;\n const itemPayload = rowData && typeof rowData === 'object' ? getClonedObject(rowData) : rowData;\n\n const self = this;\n const nodeHelperProto = Object.create(treeNode);\n nodeHelperProto.toggleExpand = (event?: Event) => {\n if (event) {\n event.preventDefault?.();\n event.stopPropagation?.();\n }\n if (!treeNode.isParent) {\n return;\n }\n self.expandNode(treeNode, !treeNode.open, true);\n };\n Object.defineProperty(nodeHelperProto, 'isSelected', {\n enumerable: true,\n configurable: true,\n get: () => !!self.zTree?.isSelectedNode?.(treeNode),\n });\n\n const nodeApi = Object.create(nodeHelperProto);\n return {\n ... itemPayload,\n _node: nodeApi,\n };\n }\n\n private mountTreeNodeTemplateHost(host: HTMLElement, treeNode: any): void {\n const ref = createComponent(TreeNodeTemplateHostComponent, {\n environmentInjector: this.environmentInjector,\n elementInjector: this.inj,\n hostElement: host,\n });\n ref.setInput('template', this.template);\n ref.setInput('userComponentParams', { dataObject: this.buildCustomTemplateItemProxy(treeNode) });\n this.applicationRef.attachView(ref.hostView);\n ref.changeDetectorRef.detectChanges();\n this.nodeTemplateRefs.push(ref);\n }\n\n private readonly addDiyDom = (_treeId: string, treeNode: any) => {\n if (!this.template) {\n return;\n }\n const aObj = $('#' + treeNode.tId + '_a');\n if (!aObj.length || aObj.find('.wm-tree-node-template-host').length) {\n return;\n }\n /** hide default zTree switch & icon and hide the built-in label span when using a custom template. */\n const switchEl = $('#' + treeNode.tId + '_switch');\n switchEl.hide();\n $('#' + treeNode.tId + '_span').hide();\n\n const host = document.createElement('span');\n host.className = 'wm-tree-node-template-host wm-tree-node-item';\n if (treeNode.disabled) {\n host.classList.add('wm-tree-node-disabled');\n }\n aObj.append(host);\n this.mountTreeNodeTemplateHost(host, treeNode);\n };\n\n ngOnDestroy() {\n this.destroyNodeTemplateHostRefs();\n super.ngOnDestroy();\n }\n\n // expands the tree nodes if the property is selected.\n private expandTree(level, node, childLevel) {\n node.map(childNode => {\n const children = childNode.children;\n if (children && childLevel < level) {\n childNode.open = true;\n this.expandTree(level, children, childLevel+1);\n } else {\n childLevel = 0;\n return;\n }\n });\n }\n\n // sets the template for the tree based on the property selected.\n private setTreeTemplate(value) {\n const classList = value?.split(\" \");\n if (classList?.length) {\n if (classList.includes('Classic')) {\n this.setting.check[\"enable\"] = false;\n } else if (classList.includes('Checkbox')) {\n this.setting.check[\"enable\"] = true;\n this.setting.check[\"chkStyle\"] = 'checkbox';\n } else if (classList.includes('Radio')) {\n this.setting.check[\"enable\"] = true;\n this.setting.check[\"chkStyle\"] = 'radio';\n this.setting.check[\"radioType\"] = \"all\";\n }\n }\n }\n\n // extracts nodes from string format\n private getNodesFromString(value) {\n return value.split(',').map((item) => {\n return {\n 'label': item?.trim()\n };\n });\n }\n\n // gets the nodes and orders the nodes if required\n private getNodes(newVal) {\n let nodes;\n if (isArray(newVal)) {\n nodes = getOrderedDataset(newVal, this.orderby);\n } else if (isObject(newVal)) {\n nodes = [newVal];\n } else if (isString(newVal) && !isEmpty(newVal)) {\n const trimmed = newVal.trim();\n if (trimmed) {\n if (trimmed.startsWith('[') || trimmed.startsWith('{')) {\n try {\n const parsed = JSON.parse(trimmed);\n if (isArray(parsed)) {\n nodes = getOrderedDataset(parsed, this.orderby);\n } else if (isObject(parsed)) {\n nodes = [parsed];\n }\n } catch {\n // Not valid JSON; treat as comma-separated labels below.\n }\n }\n if (!nodes) {\n nodes = this.getNodesFromString(trimmed);\n }\n }\n }\n return nodes;\n }\n\n // adds class to the nodes inorder to add icons to respective node.\n private setNodeClasses(treeId, treeNode) {\n const add: string[] = [];\n if (treeNode.icon) {\n add.push(`${treeNode.icon}`);\n }\n if (treeNode.disabled) {\n add.push('wm-tree-node-disabled');\n }\n return add.length ? { add } : '';\n };\n\n // adds tree icons to the nodes on load of the tree\n private changeTreeIcons(nv) {\n let eleClose = $('ul[name=\"' + this.name + '\"] li span.button.switch');\n\n $(eleClose).map((idx, ele) => {\n $(ele).addClass(nv);\n $(ele).on(\"click\",function(e) {\n setTimeout(() => {\n $(ele).addClass(nv);\n }, 0);\n });\n })\n }\n\n // Returns the node path\n private getPath(treeNode, path) {\n if(treeNode.getParentNode() === null) {\n path = \"/\" + treeNode.name + path;\n } else {\n path = this.getPath(treeNode.getParentNode(), path) + \"/\" + treeNode.name;\n }\n return path;\n }\n\n // binds the click event to all nodes to open the child nodes\n public onClick(event, treeId, treeNode, clickFlag) {\n if (treeNode.disabled) {\n return;\n }\n if(this.nodeclick === \"expand\") {\n const nodes = this.zTree.getSelectedNodes();\n if (nodes.length>0) {\n this.expandNode(nodes[0], !nodes[0].open, true);\n }\n }\n this.selectNode(event, treeNode);\n }\n\n // Adds tree icon classes to child nodes when expanded\n public onExpand(event, treeId, treeNode) {\n let self = this;\n let path = this.getPath(treeNode, \"\");\n\n const eventParams = {\n '$event' : event,\n \"$item\" : getClonedObject(treeNode.data),\n \"$path\" : path\n };\n this.invokeEventCallback('expand', eventParams);\n\n const children = treeNode.children;\n children?.map((el) => {\n if (el.isParent) {\n let ele = $(`#${el.tId}_switch`);\n $(ele).addClass(self.treeicons || defaultTreeIconClass);\n $(ele).on(\"click\", function(e) {\n setTimeout(() => {\n $(ele).addClass(self.treeicons || defaultTreeIconClass);\n }, 0);\n });\n }\n });\n this.refreshTreeNodeTemplateHosts();\n }\n\n public onCollapse(event, treeId, treeNode) {\n let path = this.getPath(treeNode, \"\");\n const eventParams = {\n '$event' : event,\n \"$item\" : getClonedObject(treeNode.data),\n \"$path\" : path\n };\n this.invokeEventCallback('collapse', eventParams);\n this.refreshTreeNodeTemplateHosts();\n }\n\n // function to support backward compatibility of objects\n private constructZTreeData(data, zTreeData) {\n data.forEach(node => {\n const zNode = {};\n const evaluatedLabel = getEvaluatedData(node, { field: this.nodelabel, bindExpression: this.bindnodelabel }, this.viewParent);\n // Avoid zTree rendering the literal \"undefined\" when label field is missing or nodelabel does not match dataset (e.g. data uses \"key\" only).\n const name =\n evaluatedLabel !== undefined && evaluatedLabel !== null && evaluatedLabel !== ''\n ? evaluatedLabel\n : (node.label ?? node.key ?? node.name ?? '');\n const icon = getEvaluatedData(node, { field: this.nodeicon, bindExpression: this.bindnodeicon }, this.viewParent) || node.icon;\n const nodeId = getEvaluatedData(node, { field: this.nodeid, bindExpression: this.bindnodeid }, this.viewParent);\n const children = getEvaluatedData(node, { field: this.nodechildren, bindExpression: this.bindnodechildren }, this.viewParent) || node.children;\n zNode['name'] = name === undefined || name === null ? '' : String(name);\n if(!this.template) {\n zNode['icon'] = icon;\n }\n zNode['nodeId'] = nodeId;\n zNode['data'] = getClonedObject(node);\n if (node.selected) {\n zNode['selected'] = true;\n }\n if (node.disabled) {\n zNode['disabled'] = true;\n zNode['chkDisabled'] = true;\n }\n if (node.iconSkin != null && node.iconSkin !== '') {\n zNode['iconSkin'] = node.iconSkin;\n }\n if (node.iconOpen != null && node.iconOpen !== '') {\n zNode['iconOpen'] = node.iconOpen;\n }\n if (node.iconClose != null && node.iconClose !== '') {\n zNode['iconClose'] = node.iconClose;\n }\n if (isArray(children) && children.length) {\n zNode['children'] = [];\n this.constructZTreeData(children, zNode['children']);\n }\n zTreeData.push(zNode);\n });\n }\n\n // Renders the tree on to the dom\n public renderTree() {\n this.destroyNodeTemplateHostRefs();\n this.setting.view['addDiyDom'] = this.template ? this.addDiyDom : function(treeId, treeNode) {\n if (treeNode.disabled) {\n const switchObj = $(\"#\" + treeNode.tId + \"_switch\");\n switchObj.addClass(\"wm-tree-node-disabled\");\n }\n };\n this.nativeElement.classList.toggle('app-tree-custom', !!this.template);\n this.zTreeNodes = [];\n if(this.nodes?.length) {\n this.nativeElement.setAttribute('id', this.name);\n this.constructZTreeData(this.nodes, this.zTreeNodes);\n if(this.level > 0) {\n this.expandTree(this.level, this.zTreeNodes, 0);\n }\n }\n this.zTree = $.fn.zTree.init($('ul[name=\"' + this.name + '\"]'), this.setting, this.zTreeNodes);\n $.fn.zTreeKeyboardNavigation(this.zTree, $('ul[name=\"' + this.name + '\"]'), null, this.treeicons || defaultTreeIconClass);\n this.postRenderTree();\n }\n\n // --- Selection state persistence (statehandler → StatePersistence: URL | localStorage | sessionStorage | none) ---\n\n private isStatePersistenceEnabled(): boolean {\n return !!this.statePersistence.computeMode(this.statehandler);\n }\n\n private clearPersistedTreeSelection(): void {\n if (!this.isStatePersistenceEnabled()) {\n return;\n }\n this.statePersistence.removeWidgetState(this, TREE_STATE_SELECTED_ID);\n this.statePersistence.removeWidgetState(this, TREE_STATE_SELECTED_PATH);\n }\n\n private persistTreeSelection(path: string, nodeId: any): void {\n if (!this.isStatePersistenceEnabled()) {\n return;\n }\n const payload: Record<string, string | number> = { [TREE_STATE_SELECTED_PATH]: path };\n if (nodeId !== undefined && nodeId !== null && nodeId !== '') {\n payload[TREE_STATE_SELECTED_ID] = nodeId;\n }\n this.statePersistence.setWidgetState(this, payload);\n }\n\n private readPersistedTreeSelection(): any {\n return this.isStatePersistenceEnabled() ? this.statePersistence.getWidgetState(this) : undefined;\n }\n\n private hasPersistedTreeSelection(widgetState: any): boolean {\n if (!widgetState || typeof widgetState !== 'object') {\n return false;\n }\n const id = get(widgetState, TREE_STATE_SELECTED_ID);\n const path = get(widgetState, TREE_STATE_SELECTED_PATH);\n const hasId = id !== undefined && id !== null && id !== '';\n const hasPath = typeof path === 'string' && path.length > 0;\n return hasId || hasPath;\n }\n\n private restorePersistedSelectionAfterStatehandlerChange(): void {\n if (!this.zTree || !this.isStatePersistenceEnabled()) {\n return;\n }\n const state = this.readPersistedTreeSelection();\n if (this.hasPersistedTreeSelection(state)) {\n this.restoreTreeSelectionFromPersistedState(state);\n }\n }\n\n private getAllZTreeNodesFlat(): any[] {\n return this.zTree ? this.zTree.transformToArray(this.zTree.getNodes()) : [];\n }\n\n /** String / number variants for zTree <code>getNodeByParam('nodeId', …)</code> and flatten fallback. */\n private nodeIdLookupCandidates(raw: any): any[] {\n const out: any[] = [];\n if (raw === undefined || raw === null || raw === '') {\n return out;\n }\n const push = (v: any) => {\n if (v !== undefined && v !== null && v !== '' && !out.includes(v)) {\n out.push(v);\n }\n };\n push(raw);\n push(String(raw));\n if (typeof raw === 'string' && raw.trim() !== '' && !Number.isNaN(Number(raw))) {\n push(Number(raw));\n }\n return out;\n }\n\n /** Resolve by stored <code>nodeId</code>: <code>getNodeByParam</code> first, then flattened tree scan. */\n private findZTreeNodeByStoredNodeId(nodeId: any): any {\n if (!this.zTree || nodeId === undefined || nodeId === null || nodeId === '') {\n return null;\n }\n const candidates = this.nodeIdLookupCandidates(nodeId);\n if (typeof this.zTree.getNodeByParam === 'function') {\n for (const c of candidates) {\n const n = this.zTree.getNodeByParam('nodeId', c, null);\n if (n) {\n return n;\n }\n }\n }\n const flat = this.getAllZTreeNodesFlat();\n return (\n flat.find(\n (n) =>\n n.nodeId !== undefined &&\n n.nodeId !== null &&\n candidates.some((c) => String(n.nodeId) === String(c))\n ) || null\n );\n }\n\n private findZTreeNodeByStoredPath(persistedPath: string): any {\n if (!persistedPath || !this.zTree) {\n return null;\n }\n return (\n this.getAllZTreeNodesFlat().find((n) => this.treePathsEqual(this.getPath(n, ''), persistedPath)) || null\n );\n }\n\n /** Expand parents, zTree <code>selectNode</code>, app <code>selectNode</code> (works for default + custom templates). */\n private applyStoredSelectionToTree(treeNode: any): void {\n if (!treeNode || !this.zTree || treeNode.disabled) {\n return;\n }\n this.expandAncestors(treeNode);\n this.zTree.selectNode(treeNode, false);\n this.selectNode(undefined, treeNode);\n this.expandNode(treeNode, true, false);\n }\n\n /** Prefer stored id, then stored path; no-op if node missing (stale URL/storage after data change). */\n private restoreTreeSelectionFromPersistedState(widgetState: any): boolean {\n if (!this.zTree || !widgetState) {\n return false;\n }\n const persistedId = get(widgetState, TREE_STATE_SELECTED_ID);\n if (persistedId !== undefined && persistedId !== null && persistedId !== '') {\n const byId = this.findZTreeNodeByStoredNodeId(persistedId);\n if (byId) {\n this.applyStoredSelectionToTree(byId);\n return true;\n }\n }\n const persistedPath = get(widgetState, TREE_STATE_SELECTED_PATH);\n if (typeof persistedPath === 'string' && persistedPath.length) {\n const byPath = this.findZTreeNodeByStoredPath(persistedPath);\n if (byPath) {\n this.applyStoredSelectionToTree(byPath);\n return true;\n }\n }\n return false;\n }\n\n private treePathsEqual(a: string, b: string): boolean {\n if (a === b) {\n return true;\n }\n const norm = (p: string) => (p.startsWith('/') ? p : '/' + p).replace(/\\/+/g, '/');\n return norm(a) === norm(b);\n }\n\n private expandAncestors(treeNode: any): void {\n if (!this.zTree || !treeNode?.getParentNode) {\n return;\n }\n const chain: any[] = [];\n let p = treeNode.getParentNode();\n while (p) {\n chain.push(p);\n p = p.getParentNode();\n }\n for (let i = chain.length - 1; i >= 0; i--) {\n this.zTree.expandNode(chain[i], true, false, false, true);\n }\n }\n\n private setChecked(zNode, node) {\n node.checked = zNode.checked;\n const children = getEvaluatedData(node, {field: this.nodechildren, bindExpression: this.bindnodechildren}, this.viewParent) || node.children;\n if(children?.length) {\n children.forEach((node, index) => {\n this.setChecked(zNode.children[index], node);\n });\n }\n }\n\n private selectNode(event, node) {\n const deSelectElm = $(`.app-tree[name=${this.name}] li[treenode].selected`);\n deSelectElm.removeClass('selected');\n\n if (!node) {\n this.clearPersistedTreeSelection();\n this.refreshTreeNodeTemplateHosts();\n return;\n }\n if (node.disabled) {\n return;\n }\n const selectElm = $(`#${node.tId}:has(.curSelectedNode)`);\n selectElm.addClass('selected');\n\n\n const classList = (this.treeClass || \"\").split(\" \");\n if (classList.includes('Checkbox') || classList.includes('Radio')) {\n this.setChecked(node, node.data);\n }\n\n const path = this.getPath(node, \"\");\n this.selecteditem = getClonedObject(node.data) || {};\n this.selecteditem.path = path;\n\n this.persistTreeSelection(path, node.nodeId);\n\n const eventParams = {\n '$event' : event,\n \"$item\" : getClonedObject(node.data),\n \"$path\" : path\n };\n\n //[Todo-CSP]: this data will be dynamic, can not generate function upfront\n const nodeAction = node.data[this.nodeaction || 'action'];\n if (nodeAction) {\n $parseEvent(nodeAction)(this);\n }\n this.invokeEventCallback('select', eventParams);\n this.refreshTreeNodeTemplateHosts();\n }\n\n private expandNode(node, expand, eventFlag) {\n this.zTree.expandNode(node, expand, false, false, eventFlag);\n const el = $(`#${node.tId}_switch`);\n $(el).addClass(this.treeicons || defaultTreeIconClass);\n this.refreshTreeNodeTemplateHosts();\n }\n\n private postRenderTree() {\n setTimeout(() => {\n this.changeTreeIcons(this.treeicons || defaultTreeIconClass);\n this.syncSelectionAfterZTreeRender();\n }, 200);\n }\n\n /**\n * After zTree init: honor dataset <code>selected</code>, else persisted state, else <code>datavalue</code>\n * (FirstNode / LastNode).\n */\n private syncSelectionAfterZTreeRender(): void {\n if (!this.zTree) {\n return;\n }\n const allNodes = this.getAllZTreeNodesFlat();\n const selectedFromDataset = allNodes.find((n) => n.selected && !n.disabled);\n if (selectedFromDataset) {\n this.zTree.selectNode(selectedFromDataset, false);\n this.selectNode(undefined, selectedFromDataset);\n this.expandNode(selectedFromDataset, true, false);\n return;\n }\n\n const persisted = this.readPersistedTreeSelection();\n if (this.hasPersistedTreeSelection(persisted) && this.restoreTreeSelectionFromPersistedState(persisted)) {\n return;\n }\n\n this.applyDatavalueDefaultSelection();\n }\n\n private applyDatavalueDefaultSelection(): void {\n if (!this.datavalue || this.selecteditem) {\n return;\n }\n const nodes = this.zTree.getNodes();\n if (!nodes?.length) {\n return;\n }\n let node: any;\n if (this.datavalue === 'FirstNode') {\n node = nodes.find((n) => !n.disabled) ?? null;\n } else if (this.datavalue === 'LastNode') {\n for (let i = nodes.length - 1; i >= 0; i--) {\n if (!nodes[i].disabled) {\n node = nodes[i];\n break;\n }\n }\n }\n if (node) {\n this.zTree.selectNode(node, false);\n this.selectNode(undefined, node);\n this.expandNode(node, true, false);\n }\n }\n\n private selectById(value?) {\n const node = this.findZTreeNodeByStoredNodeId(value);\n if (node) {\n this.applyStoredSelectionToTree(node);\n }\n }\n\n private deselectById(value?) {\n this.selecteditem = {};\n this.clearPersistedTreeSelection();\n }\n}\n","<ul #wmTree class=\"ztree\" id=\"ztree\"></ul> ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1724,6 +1724,10 @@
1724
1724
  }
1725
1725
  // Method to setup validators for reactive form control
1726
1726
  setUpValidators(customValidator) {
1727
+ // the debounced call scheduling this can still be in flight after ngOnDestroy nulls fieldValidations
1728
+ if (!this.fieldValidations) {
1729
+ return;
1730
+ }
1727
1731
  this.fieldValidations.setUpValidators(customValidator);
1728
1732
  }
1729
1733
  // sets the custom async validation on the form field
@@ -1713,6 +1713,10 @@ class FormFieldDirective extends StylableComponent {
1713
1713
  }
1714
1714
  // Method to setup validators for reactive form control
1715
1715
  setUpValidators(customValidator) {
1716
+ // the debounced call scheduling this can still be in flight after ngOnDestroy nulls fieldValidations
1717
+ if (!this.fieldValidations) {
1718
+ return;
1719
+ }
1716
1720
  this.fieldValidations.setUpValidators(customValidator);
1717
1721
  }
1718
1722
  // sets the custom async validation on the form field