UNPKG

code-monkey-ui

Version:

A Component Library for Vue 3

1 lines 5.16 kB
{"version":3,"file":"store.mjs","sources":["../../../../../../packages/components/dsh-cascader-panel/src/store.ts"],"sourcesContent":["import { isEqual } from 'lodash-unified'\nimport {\n DSH_CASCADER_ALL_NODE_LABEL,\n DSH_CASCADER_ALL_NODE_VALUE,\n} from './config'\nimport DshNode from './node'\n\nimport type { Nullable } from '@code-monkey-ui/utils'\nimport type {\n DshCascaderConfig,\n DshCascaderNodePathValue,\n DshCascaderNodeValue,\n DshCascaderOption,\n} from './node'\n\nconst flatNodes = (nodes: DshNode[], leafOnly: boolean) => {\n return nodes.reduce((res, node) => {\n if (node.DshIsLeaf) {\n res.push(node)\n } else {\n !leafOnly && res.push(node)\n res = res.concat(flatNodes(node.children, leafOnly))\n }\n return res\n }, [] as DshNode[])\n}\n\nexport default class Store {\n readonly nodes: DshNode[]\n readonly allNodes: DshNode[]\n readonly leafNodes: DshNode[]\n\n constructor(data: DshCascaderOption[], readonly config: DshCascaderConfig) {\n const nodes = (data || []).map(\n (nodeData) => new DshNode(nodeData, this.config)\n )\n const node = {\n [config.label]: DSH_CASCADER_ALL_NODE_LABEL,\n [config.value]: DSH_CASCADER_ALL_NODE_VALUE,\n }\n nodes.unshift(new DshNode(node, this.config))\n this.nodes = nodes\n this.allNodes = flatNodes(nodes, false)\n this.leafNodes = flatNodes(nodes, true)\n }\n\n getNodes() {\n return this.nodes\n }\n\n getFlattedNodes(leafOnly: boolean) {\n return leafOnly ? this.leafNodes : this.allNodes\n }\n\n appendNode(nodeData: DshCascaderOption, parentNode?: DshNode) {\n const node = parentNode\n ? parentNode.appendChild(nodeData)\n : new DshNode(nodeData, this.config)\n\n if (!parentNode) this.nodes.push(node)\n\n this.allNodes.push(node)\n node.DshIsLeaf && this.leafNodes.push(node)\n }\n\n appendNodes(nodeDataList: DshCascaderOption[], parentNode: DshNode) {\n nodeDataList.forEach((nodeData) => this.appendNode(nodeData, parentNode))\n }\n\n // when checkStrictly, leaf node first\n getNodeByValue(\n value: DshCascaderNodeValue | DshCascaderNodePathValue,\n leafOnly = false\n ): Nullable<DshNode> {\n if (!value && value !== 0) return null\n\n const node = this.getFlattedNodes(leafOnly).find(\n (node) => isEqual(node.value, value) || isEqual(node.pathValues, value)\n )\n\n return node || null\n }\n\n getSameNode(node: DshNode): Nullable<DshNode> {\n if (!node) return null\n\n const node_ = this.getFlattedNodes(false).find(\n ({ value, level }) => isEqual(node.value, value) && node.level === level\n )\n\n return node_ || null\n }\n}\n"],"names":[],"mappings":"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"}