You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
32 KiB
1 line
32 KiB
{"ast":null,"code":"import \"core-js/modules/es.array.push.js\";\nimport '../../../../utils/index.mjs';\nimport Node from './node.mjs';\nimport { getNodeKey } from './util.mjs';\nimport { hasOwn, isObject } from '@vue/shared';\nimport { isPropAbsent } from '../../../../utils/types.mjs';\nclass TreeStore {\n constructor(options) {\n this.currentNode = null;\n this.currentNodeKey = null;\n for (const option in options) {\n if (hasOwn(options, option)) {\n this[option] = options[option];\n }\n }\n this.nodesMap = {};\n }\n initialize() {\n this.root = new Node({\n data: this.data,\n store: this\n });\n this.root.initialize();\n if (this.lazy && this.load) {\n const loadFn = this.load;\n loadFn(this.root, data => {\n this.root.doCreateChildren(data);\n this._initDefaultCheckedNodes();\n });\n } else {\n this._initDefaultCheckedNodes();\n }\n }\n filter(value) {\n const filterNodeMethod = this.filterNodeMethod;\n const lazy = this.lazy;\n const traverse = function (node) {\n const childNodes = node.root ? node.root.childNodes : node.childNodes;\n childNodes.forEach(child => {\n child.visible = filterNodeMethod.call(child, value, child.data, child);\n traverse(child);\n });\n if (!node.visible && childNodes.length) {\n let allHidden = true;\n allHidden = !childNodes.some(child => child.visible);\n if (node.root) {\n ;\n node.root.visible = allHidden === false;\n } else {\n ;\n node.visible = allHidden === false;\n }\n }\n if (!value) return;\n if (node.visible && !node.isLeaf) {\n if (!lazy || node.loaded) {\n ;\n node.expand();\n }\n }\n };\n traverse(this);\n }\n setData(newVal) {\n const instanceChanged = newVal !== this.root.data;\n if (instanceChanged) {\n this.nodesMap = {};\n this.root.setData(newVal);\n this._initDefaultCheckedNodes();\n } else {\n this.root.updateChildren();\n }\n }\n getNode(data) {\n if (data instanceof Node) return data;\n const key = isObject(data) ? getNodeKey(this.key, data) : data;\n return this.nodesMap[key] || null;\n }\n insertBefore(data, refData) {\n const refNode = this.getNode(refData);\n refNode.parent.insertBefore({\n data\n }, refNode);\n }\n insertAfter(data, refData) {\n const refNode = this.getNode(refData);\n refNode.parent.insertAfter({\n data\n }, refNode);\n }\n remove(data) {\n const node = this.getNode(data);\n if (node && node.parent) {\n if (node === this.currentNode) {\n this.currentNode = null;\n }\n node.parent.removeChild(node);\n }\n }\n append(data, parentData) {\n const parentNode = !isPropAbsent(parentData) ? this.getNode(parentData) : this.root;\n if (parentNode) {\n parentNode.insertChild({\n data\n });\n }\n }\n _initDefaultCheckedNodes() {\n const defaultCheckedKeys = this.defaultCheckedKeys || [];\n const nodesMap = this.nodesMap;\n defaultCheckedKeys.forEach(checkedKey => {\n const node = nodesMap[checkedKey];\n if (node) {\n node.setChecked(true, !this.checkStrictly);\n }\n });\n }\n _initDefaultCheckedNode(node) {\n const defaultCheckedKeys = this.defaultCheckedKeys || [];\n if (defaultCheckedKeys.includes(node.key)) {\n node.setChecked(true, !this.checkStrictly);\n }\n }\n setDefaultCheckedKey(newVal) {\n if (newVal !== this.defaultCheckedKeys) {\n this.defaultCheckedKeys = newVal;\n this._initDefaultCheckedNodes();\n }\n }\n registerNode(node) {\n const key = this.key;\n if (!node || !node.data) return;\n if (!key) {\n this.nodesMap[node.id] = node;\n } else {\n const nodeKey = node.key;\n if (nodeKey !== void 0) this.nodesMap[node.key] = node;\n }\n }\n deregisterNode(node) {\n const key = this.key;\n if (!key || !node || !node.data) return;\n node.childNodes.forEach(child => {\n this.deregisterNode(child);\n });\n delete this.nodesMap[node.key];\n }\n getCheckedNodes(leafOnly = false, includeHalfChecked = false) {\n const checkedNodes = [];\n const traverse = function (node) {\n const childNodes = node.root ? node.root.childNodes : node.childNodes;\n childNodes.forEach(child => {\n if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {\n checkedNodes.push(child.data);\n }\n traverse(child);\n });\n };\n traverse(this);\n return checkedNodes;\n }\n getCheckedKeys(leafOnly = false) {\n return this.getCheckedNodes(leafOnly).map(data => (data || {})[this.key]);\n }\n getHalfCheckedNodes() {\n const nodes = [];\n const traverse = function (node) {\n const childNodes = node.root ? node.root.childNodes : node.childNodes;\n childNodes.forEach(child => {\n if (child.indeterminate) {\n nodes.push(child.data);\n }\n traverse(child);\n });\n };\n traverse(this);\n return nodes;\n }\n getHalfCheckedKeys() {\n return this.getHalfCheckedNodes().map(data => (data || {})[this.key]);\n }\n _getAllNodes() {\n const allNodes = [];\n const nodesMap = this.nodesMap;\n for (const nodeKey in nodesMap) {\n if (hasOwn(nodesMap, nodeKey)) {\n allNodes.push(nodesMap[nodeKey]);\n }\n }\n return allNodes;\n }\n updateChildren(key, data) {\n const node = this.nodesMap[key];\n if (!node) return;\n const childNodes = node.childNodes;\n for (let i = childNodes.length - 1; i >= 0; i--) {\n const child = childNodes[i];\n this.remove(child.data);\n }\n for (let i = 0, j = data.length; i < j; i++) {\n const child = data[i];\n this.append(child, node.data);\n }\n }\n _setCheckedKeys(key, leafOnly = false, checkedKeys) {\n const allNodes = this._getAllNodes().sort((a, b) => a.level - b.level);\n const cache = /* @__PURE__ */Object.create(null);\n const keys = Object.keys(checkedKeys);\n allNodes.forEach(node => node.setChecked(false, false));\n const cacheCheckedChild = node => {\n node.childNodes.forEach(child => {\n var _a;\n cache[child.data[key]] = true;\n if ((_a = child.childNodes) == null ? void 0 : _a.length) {\n cacheCheckedChild(child);\n }\n });\n };\n for (let i = 0, j = allNodes.length; i < j; i++) {\n const node = allNodes[i];\n const nodeKey = node.data[key].toString();\n const checked = keys.includes(nodeKey);\n if (!checked) {\n if (node.checked && !cache[nodeKey]) {\n node.setChecked(false, false);\n }\n continue;\n }\n if (node.childNodes.length) {\n cacheCheckedChild(node);\n }\n if (node.isLeaf || this.checkStrictly) {\n node.setChecked(true, false);\n continue;\n }\n node.setChecked(true, true);\n if (leafOnly) {\n node.setChecked(false, false);\n const traverse = function (node2) {\n const childNodes = node2.childNodes;\n childNodes.forEach(child => {\n if (!child.isLeaf) {\n child.setChecked(false, false);\n }\n traverse(child);\n });\n };\n traverse(node);\n }\n }\n }\n setCheckedNodes(array, leafOnly = false) {\n const key = this.key;\n const checkedKeys = {};\n array.forEach(item => {\n checkedKeys[(item || {})[key]] = true;\n });\n this._setCheckedKeys(key, leafOnly, checkedKeys);\n }\n setCheckedKeys(keys, leafOnly = false) {\n this.defaultCheckedKeys = keys;\n const key = this.key;\n const checkedKeys = {};\n keys.forEach(key2 => {\n checkedKeys[key2] = true;\n });\n this._setCheckedKeys(key, leafOnly, checkedKeys);\n }\n setDefaultExpandedKeys(keys) {\n keys = keys || [];\n this.defaultExpandedKeys = keys;\n keys.forEach(key => {\n const node = this.getNode(key);\n if (node) node.expand(null, this.autoExpandParent);\n });\n }\n setChecked(data, checked, deep) {\n const node = this.getNode(data);\n if (node) {\n node.setChecked(!!checked, deep);\n }\n }\n getCurrentNode() {\n return this.currentNode;\n }\n setCurrentNode(currentNode) {\n const prevCurrentNode = this.currentNode;\n if (prevCurrentNode) {\n prevCurrentNode.isCurrent = false;\n }\n this.currentNode = currentNode;\n this.currentNode.isCurrent = true;\n }\n setUserCurrentNode(node, shouldAutoExpandParent = true) {\n const key = node[this.key];\n const currNode = this.nodesMap[key];\n this.setCurrentNode(currNode);\n if (shouldAutoExpandParent && this.currentNode.level > 1) {\n this.currentNode.parent.expand(null, true);\n }\n }\n setCurrentNodeKey(key, shouldAutoExpandParent = true) {\n if (key === null || key === void 0) {\n this.currentNode && (this.currentNode.isCurrent = false);\n this.currentNode = null;\n return;\n }\n const node = this.getNode(key);\n if (node) {\n this.setCurrentNode(node);\n if (shouldAutoExpandParent && this.currentNode.level > 1) {\n this.currentNode.parent.expand(null, true);\n }\n }\n }\n}\nexport { TreeStore as default };","map":{"version":3,"names":["TreeStore","constructor","options","currentNode","currentNodeKey","option","hasOwn","nodesMap","initialize","root","Node","data","store","lazy","load","loadFn","doCreateChildren","_initDefaultCheckedNodes","filter","value","filterNodeMethod","traverse","node","childNodes","forEach","child","visible","call","length","allHidden","some","isLeaf","loaded","expand","setData","newVal","instanceChanged","updateChildren","getNode","key","isObject","getNodeKey","insertBefore","refData","refNode","parent","insertAfter","remove","removeChild","append","parentData","parentNode","isPropAbsent","insertChild","defaultCheckedKeys","checkedKey","setChecked","checkStrictly","_initDefaultCheckedNode","includes","setDefaultCheckedKey","registerNode","id","nodeKey","deregisterNode","getCheckedNodes","leafOnly","includeHalfChecked","checkedNodes","checked","indeterminate","push","getCheckedKeys","map","getHalfCheckedNodes","nodes","getHalfCheckedKeys","_getAllNodes","allNodes","i","j","_setCheckedKeys","checkedKeys","sort","a","b","level","cache","Object","create","keys","cacheCheckedChild","_a","toString","node2","setCheckedNodes","array","item","setCheckedKeys","key2","setDefaultExpandedKeys","defaultExpandedKeys","autoExpandParent","deep","getCurrentNode","setCurrentNode","prevCurrentNode","isCurrent","setUserCurrentNode","shouldAutoExpandParent","currNode","setCurrentNodeKey"],"sources":["../../../../../../../packages/components/tree/src/model/tree-store.ts"],"sourcesContent":["// @ts-nocheck\nimport { hasOwn, isObject, isPropAbsent } from '@element-plus/utils'\nimport Node from './node'\nimport { getNodeKey } from './util'\n\nimport type {\n FilterNodeMethodFunction,\n FilterValue,\n LoadFunction,\n TreeData,\n TreeKey,\n TreeNodeData,\n TreeOptionProps,\n TreeStoreNodesMap,\n TreeStoreOptions,\n} from '../tree.type'\n\nexport default class TreeStore {\n currentNode: Node\n currentNodeKey: TreeKey\n nodesMap: TreeStoreNodesMap\n root: Node\n data: TreeData\n lazy: boolean\n load: LoadFunction\n filterNodeMethod: FilterNodeMethodFunction\n key: TreeKey\n defaultCheckedKeys: TreeKey[]\n checkStrictly: boolean\n defaultExpandedKeys: TreeKey[]\n autoExpandParent: boolean\n defaultExpandAll: boolean\n checkDescendants: boolean\n props: TreeOptionProps\n\n constructor(options: TreeStoreOptions) {\n this.currentNode = null\n this.currentNodeKey = null\n\n for (const option in options) {\n if (hasOwn(options, option)) {\n this[option] = options[option]\n }\n }\n\n this.nodesMap = {}\n }\n\n initialize() {\n this.root = new Node({\n data: this.data,\n store: this,\n })\n this.root.initialize()\n\n if (this.lazy && this.load) {\n const loadFn = this.load\n loadFn(this.root, (data) => {\n this.root.doCreateChildren(data)\n this._initDefaultCheckedNodes()\n })\n } else {\n this._initDefaultCheckedNodes()\n }\n }\n\n filter(value: FilterValue): void {\n const filterNodeMethod = this.filterNodeMethod\n const lazy = this.lazy\n const traverse = function (node: TreeStore | Node) {\n const childNodes = (node as TreeStore).root\n ? (node as TreeStore).root.childNodes\n : (node as Node).childNodes\n\n childNodes.forEach((child) => {\n child.visible = filterNodeMethod.call(child, value, child.data, child)\n\n traverse(child)\n })\n\n if (!(node as Node).visible && childNodes.length) {\n let allHidden = true\n allHidden = !childNodes.some((child) => child.visible)\n\n if ((node as TreeStore).root) {\n ;(node as TreeStore).root.visible = allHidden === false\n } else {\n ;(node as Node).visible = allHidden === false\n }\n }\n if (!value) return\n\n if ((node as Node).visible && !(node as Node).isLeaf) {\n if (!lazy || node.loaded) {\n ;(node as Node).expand()\n }\n }\n }\n\n traverse(this)\n }\n\n setData(newVal: TreeData): void {\n const instanceChanged = newVal !== this.root.data\n if (instanceChanged) {\n this.nodesMap = {}\n this.root.setData(newVal)\n this._initDefaultCheckedNodes()\n } else {\n this.root.updateChildren()\n }\n }\n\n getNode(data: TreeKey | TreeNodeData | Node): Node {\n if (data instanceof Node) return data\n const key = isObject(data) ? getNodeKey(this.key, data) : data\n return this.nodesMap[key] || null\n }\n\n insertBefore(\n data: TreeNodeData,\n refData: TreeKey | TreeNodeData | Node\n ): void {\n const refNode = this.getNode(refData)\n refNode.parent.insertBefore({ data }, refNode)\n }\n\n insertAfter(\n data: TreeNodeData,\n refData: TreeKey | TreeNodeData | Node\n ): void {\n const refNode = this.getNode(refData)\n refNode.parent.insertAfter({ data }, refNode)\n }\n\n remove(data: TreeNodeData | Node): void {\n const node = this.getNode(data)\n\n if (node && node.parent) {\n if (node === this.currentNode) {\n this.currentNode = null\n }\n node.parent.removeChild(node)\n }\n }\n\n append(data: TreeNodeData, parentData: TreeNodeData | TreeKey | Node): void {\n const parentNode = !isPropAbsent(parentData)\n ? this.getNode(parentData)\n : this.root\n\n if (parentNode) {\n parentNode.insertChild({ data })\n }\n }\n\n _initDefaultCheckedNodes(): void {\n const defaultCheckedKeys = this.defaultCheckedKeys || []\n const nodesMap = this.nodesMap\n\n defaultCheckedKeys.forEach((checkedKey) => {\n const node = nodesMap[checkedKey]\n\n if (node) {\n node.setChecked(true, !this.checkStrictly)\n }\n })\n }\n\n _initDefaultCheckedNode(node: Node): void {\n const defaultCheckedKeys = this.defaultCheckedKeys || []\n\n if (defaultCheckedKeys.includes(node.key)) {\n node.setChecked(true, !this.checkStrictly)\n }\n }\n\n setDefaultCheckedKey(newVal: TreeKey[]): void {\n if (newVal !== this.defaultCheckedKeys) {\n this.defaultCheckedKeys = newVal\n this._initDefaultCheckedNodes()\n }\n }\n\n registerNode(node: Node): void {\n const key = this.key\n if (!node || !node.data) return\n\n if (!key) {\n this.nodesMap[node.id] = node\n } else {\n const nodeKey = node.key\n if (nodeKey !== undefined) this.nodesMap[node.key] = node\n }\n }\n\n deregisterNode(node: Node): void {\n const key = this.key\n if (!key || !node || !node.data) return\n\n node.childNodes.forEach((child) => {\n this.deregisterNode(child)\n })\n\n delete this.nodesMap[node.key]\n }\n\n getCheckedNodes(\n leafOnly = false,\n includeHalfChecked = false\n ): TreeNodeData[] {\n const checkedNodes: TreeNodeData[] = []\n const traverse = function (node: TreeStore | Node) {\n const childNodes = (node as TreeStore).root\n ? (node as TreeStore).root.childNodes\n : (node as Node).childNodes\n\n childNodes.forEach((child) => {\n if (\n (child.checked || (includeHalfChecked && child.indeterminate)) &&\n (!leafOnly || (leafOnly && child.isLeaf))\n ) {\n checkedNodes.push(child.data)\n }\n\n traverse(child)\n })\n }\n\n traverse(this)\n\n return checkedNodes\n }\n\n getCheckedKeys(leafOnly = false): TreeKey[] {\n return this.getCheckedNodes(leafOnly).map((data) => (data || {})[this.key])\n }\n\n getHalfCheckedNodes(): TreeNodeData[] {\n const nodes: TreeNodeData[] = []\n const traverse = function (node: TreeStore | Node) {\n const childNodes = (node as TreeStore).root\n ? (node as TreeStore).root.childNodes\n : (node as Node).childNodes\n\n childNodes.forEach((child) => {\n if (child.indeterminate) {\n nodes.push(child.data)\n }\n\n traverse(child)\n })\n }\n\n traverse(this)\n\n return nodes\n }\n\n getHalfCheckedKeys(): TreeKey[] {\n return this.getHalfCheckedNodes().map((data) => (data || {})[this.key])\n }\n\n _getAllNodes(): Node[] {\n const allNodes: Node[] = []\n const nodesMap = this.nodesMap\n for (const nodeKey in nodesMap) {\n if (hasOwn(nodesMap, nodeKey)) {\n allNodes.push(nodesMap[nodeKey])\n }\n }\n\n return allNodes\n }\n\n updateChildren(key: TreeKey, data: TreeData): void {\n const node = this.nodesMap[key]\n if (!node) return\n const childNodes = node.childNodes\n for (let i = childNodes.length - 1; i >= 0; i--) {\n const child = childNodes[i]\n this.remove(child.data)\n }\n for (let i = 0, j = data.length; i < j; i++) {\n const child = data[i]\n this.append(child, node.data)\n }\n }\n\n _setCheckedKeys(\n key: TreeKey,\n leafOnly = false,\n checkedKeys: { [key: string]: boolean }\n ): void {\n const allNodes = this._getAllNodes().sort((a, b) => a.level - b.level)\n const cache = Object.create(null)\n const keys = Object.keys(checkedKeys)\n allNodes.forEach((node) => node.setChecked(false, false))\n const cacheCheckedChild = (node) => {\n node.childNodes.forEach((child) => {\n cache[child.data[key]] = true\n if (child.childNodes?.length) {\n cacheCheckedChild(child)\n }\n })\n }\n for (let i = 0, j = allNodes.length; i < j; i++) {\n const node = allNodes[i]\n const nodeKey = node.data[key].toString()\n const checked = keys.includes(nodeKey)\n if (!checked) {\n if (node.checked && !cache[nodeKey]) {\n node.setChecked(false, false)\n }\n continue\n }\n\n if (node.childNodes.length) {\n cacheCheckedChild(node)\n }\n\n if (node.isLeaf || this.checkStrictly) {\n node.setChecked(true, false)\n continue\n }\n node.setChecked(true, true)\n\n if (leafOnly) {\n node.setChecked(false, false)\n const traverse = function (node: Node): void {\n const childNodes = node.childNodes\n childNodes.forEach((child) => {\n if (!child.isLeaf) {\n child.setChecked(false, false)\n }\n traverse(child)\n })\n }\n traverse(node)\n }\n }\n }\n\n setCheckedNodes(array: Node[], leafOnly = false): void {\n const key = this.key\n const checkedKeys = {}\n array.forEach((item) => {\n checkedKeys[(item || {})[key]] = true\n })\n\n this._setCheckedKeys(key, leafOnly, checkedKeys)\n }\n\n setCheckedKeys(keys: TreeKey[], leafOnly = false): void {\n this.defaultCheckedKeys = keys\n const key = this.key\n const checkedKeys = {}\n keys.forEach((key) => {\n checkedKeys[key] = true\n })\n\n this._setCheckedKeys(key, leafOnly, checkedKeys)\n }\n\n setDefaultExpandedKeys(keys: TreeKey[]) {\n keys = keys || []\n this.defaultExpandedKeys = keys\n keys.forEach((key) => {\n const node = this.getNode(key)\n if (node) node.expand(null, this.autoExpandParent)\n })\n }\n\n setChecked(\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ): void {\n const node = this.getNode(data)\n\n if (node) {\n node.setChecked(!!checked, deep)\n }\n }\n\n getCurrentNode(): Node {\n return this.currentNode\n }\n\n setCurrentNode(currentNode: Node): void {\n const prevCurrentNode = this.currentNode\n if (prevCurrentNode) {\n prevCurrentNode.isCurrent = false\n }\n this.currentNode = currentNode\n this.currentNode.isCurrent = true\n }\n\n setUserCurrentNode(node: Node, shouldAutoExpandParent = true): void {\n const key = node[this.key]\n const currNode = this.nodesMap[key]\n this.setCurrentNode(currNode)\n if (shouldAutoExpandParent && this.currentNode.level > 1) {\n this.currentNode.parent.expand(null, true)\n }\n }\n\n setCurrentNodeKey(key?: TreeKey, shouldAutoExpandParent = true): void {\n if (key === null || key === undefined) {\n this.currentNode && (this.currentNode.isCurrent = false)\n this.currentNode = null\n return\n }\n const node = this.getNode(key)\n if (node) {\n this.setCurrentNode(node)\n if (shouldAutoExpandParent && this.currentNode.level > 1) {\n this.currentNode.parent.expand(null, true)\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |