{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/tree/src/tree.props.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                ['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                ['show', {value: true, ...PROP_BOOLEAN}],\n                ['tabindex', {value: 0, ...PROP_NUMBER}],\n                ['treeicons', PROP_STRING]\n            ]\n        )\n    );\n};\n","import {Attribute, Component, Inject, Injector, OnInit, Optional, ViewEncapsulation} from '@angular/core';\nimport { APPLY_STYLES_TYPE, getEvaluatedData, getOrderedDataset, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { registerProps } from './tree.props';\nimport { $parseEvent, getClonedObject } from \"@wm/core\";\nimport {isArray, isEmpty, isObject, isString} from \"lodash-es\";\n\ndeclare const $;\n\nconst WIDGET_INFO = {widgetType: 'wm-tree', hostClass: 'app-tree'};\nconst defaultTreeIconClass = 'plus-minus';\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 OnInit {\n    static 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\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 binddatavalue,\n        @Attribute('nodelabel.bind') private bindnodelabel,\n        @Attribute('nodeicon.bind') private bindnodeicon,\n        @Attribute('nodechildren.bind') private bindnodechildren,\n        @Attribute('nodeid.bind') private bindnodeid,\n        @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n    ) {\n        super(inj, WIDGET_INFO, explicitContext);\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 'class':\n                this.treeClass = nv;\n                this.setTreeTemplate(this.treeClass);\n                this.renderTree();\n            default:\n                super.onPropertyChange(key, nv, ov);\n                break;\n        }\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.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    // extracts nodes from string format\n    private getNodesFromString(value) {\n        return value.split(',').map((item) => {\n            return {\n                'label': item && 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            newVal = newVal.trim();\n            if (newVal) {\n                nodes = this.getNodesFromString(newVal);\n            }\n        }\n        return nodes;\n    }\n\n\n    // adds class to the nodes inorder to add icons to respective node.\n    private setNodeClasses(treeId, treeNode) {\n        return treeNode.icon ? {add: [`${treeNode.icon}`]} : '';\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(this.nodeclick === \"expand\") {\n            var 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    }\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    }\n\n    // function to support backward compatibility of objects\n    private constructZTreeData(data, zTreeData) {\n        data.forEach(node => {\n            const zNode = {};\n            const name = getEvaluatedData(node, {field: this.nodelabel, bindExpression: this.bindnodelabel}, this.viewParent) || node.label;\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;\n            zNode['icon'] = icon;\n            zNode['nodeId'] = nodeId;\n            zNode['data'] = getClonedObject(node);\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.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    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            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        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    }\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    }\n\n    private postRenderTree() {\n        setTimeout(() => {\n            this.changeTreeIcons(this.treeicons || defaultTreeIconClass);\n\n            if (this.datavalue && !this.selecteditem) {\n                const nodes = this.zTree.getNodes();\n                let node;\n                if(nodes.length) {\n                    if (this.datavalue === 'FirstNode') {\n                        node = nodes[0];\n                    }\n                    if(this.datavalue === 'LastNode') {\n                        node = nodes[nodes.length - 1];\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        }, 200);\n    }\n\n    private selectById(value?) {\n        const simpleNodes = this.zTree?.transformToArray(this.zTree.getNodes());\n        const node = simpleNodes?.find(node => value === node.nodeId);\n        if(node) {\n            this.zTree.selectNode(node, false);\n            this.selectNode(undefined, node);\n        }\n    }\n    private deselectById(value?) {\n        this.selecteditem = {};\n        this.selectById();\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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"}