UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 17.6 kB
{"version":3,"file":"tree.mjs","sources":["../../../../../../packages/components/tree-select/src/tree.ts"],"sourcesContent":["// @ts-nocheck\nimport { computed, nextTick, toRefs, watch } from 'vue'\nimport { isEqual, isNil, pick } from 'lodash-unified'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { escapeStringRegexp, isEmpty, isFunction } from '@element-plus/utils'\nimport ElTree from '@element-plus/components/tree'\nimport TreeSelectOption from './tree-select-option'\nimport {\n isValidArray,\n isValidValue,\n toValidArray,\n treeEach,\n treeFind,\n} from './utils'\n\nimport type { CacheOption } from './cache-options'\nimport type { Ref } from 'vue'\nimport type { SelectInstance } from '@element-plus/components/select'\nimport type Node from '@element-plus/components/tree/src/model/node'\nimport type { TreeNodeData } from '@element-plus/components/tree/src/tree.type'\nimport type { TreeInstance } from '@element-plus/components/tree'\n\nexport const useTree = (\n props,\n { attrs, slots, emit },\n {\n select,\n tree,\n key,\n }: {\n select: Ref<SelectInstance | undefined>\n tree: Ref<TreeInstance | undefined>\n key: Ref<string>\n }\n) => {\n watch(\n [() => props.modelValue, tree],\n () => {\n if (props.showCheckbox) {\n nextTick(() => {\n const treeInstance = tree.value\n if (\n treeInstance &&\n !isEqual(\n treeInstance.getCheckedKeys(),\n toValidArray(props.modelValue)\n )\n ) {\n treeInstance.setCheckedKeys(toValidArray(props.modelValue))\n }\n })\n }\n },\n {\n immediate: true,\n deep: true,\n }\n )\n\n const propsMap = computed(() => ({\n value: key.value,\n label: 'label',\n children: 'children',\n disabled: 'disabled',\n isLeaf: 'isLeaf',\n ...props.props,\n }))\n\n const getNodeValByProp = (\n prop: 'value' | 'label' | 'children' | 'disabled' | 'isLeaf',\n data: TreeNodeData\n ) => {\n const propVal = propsMap.value[prop]\n if (isFunction(propVal)) {\n return propVal(\n data,\n tree.value?.getNode(getNodeValByProp('value', data)) as Node\n )\n } else {\n return data[propVal as string]\n }\n }\n\n const defaultExpandedParentKeys = toValidArray(props.modelValue)\n .map((value) => {\n return treeFind(\n props.data || [],\n (data) => getNodeValByProp('value', data) === value,\n (data) => getNodeValByProp('children', data),\n (data, index, array, parent) =>\n parent && getNodeValByProp('value', parent)\n )\n })\n .filter((item) => isValidValue(item))\n\n const cacheOptions = computed(() => {\n if (!props.renderAfterExpand && !props.lazy) return []\n\n const options: CacheOption[] = []\n\n treeEach(\n props.data.concat(props.cacheData),\n (node) => {\n const value = getNodeValByProp('value', node)\n options.push({\n value,\n currentLabel: getNodeValByProp('label', node),\n isDisabled: getNodeValByProp('disabled', node),\n })\n },\n (data) => getNodeValByProp('children', data)\n )\n\n return options\n })\n\n const getChildCheckedKeys = () => {\n return tree.value?.getCheckedKeys().filter((checkedKey) => {\n const node = tree.value?.getNode(checkedKey) as Node\n return !isNil(node) && isEmpty(node.childNodes)\n })\n }\n\n return {\n ...pick(toRefs(props), Object.keys(ElTree.props)),\n ...attrs,\n nodeKey: key,\n\n // only expand on click node when the `check-strictly` is false\n expandOnClickNode: computed(() => {\n return !props.checkStrictly && props.expandOnClickNode\n }),\n\n // show current selected node only first time,\n // fix the problem of expanding multiple nodes when checking multiple nodes\n defaultExpandedKeys: computed(() => {\n return props.defaultExpandedKeys\n ? props.defaultExpandedKeys.concat(defaultExpandedParentKeys)\n : defaultExpandedParentKeys\n }),\n\n renderContent: (h, { node, data, store }) => {\n return h(\n TreeSelectOption,\n {\n value: getNodeValByProp('value', data),\n label: getNodeValByProp('label', data),\n disabled: getNodeValByProp('disabled', data),\n visible: node.visible,\n },\n props.renderContent\n ? () => props.renderContent(h, { node, data, store })\n : slots.default\n ? () => slots.default({ node, data, store })\n : undefined\n )\n },\n filterNodeMethod: (value, data, node) => {\n if (props.filterNodeMethod)\n return props.filterNodeMethod(value, data, node)\n if (!value) return true\n const regexp = new RegExp(escapeStringRegexp(value), 'i')\n return regexp.test(getNodeValByProp('label', data) || '')\n },\n onNodeClick: (data, node, e) => {\n attrs.onNodeClick?.(data, node, e)\n\n // `onCheck` is trigger when `checkOnClickNode`\n if (props.showCheckbox && props.checkOnClickNode) return\n\n // now `checkOnClickNode` is false, only no checkbox and `checkStrictly` or `isLeaf`\n if (!props.showCheckbox && (props.checkStrictly || node.isLeaf)) {\n if (!getNodeValByProp('disabled', data)) {\n const option = select.value?.states.options.get(\n getNodeValByProp('value', data)\n )\n select.value?.handleOptionSelect(option)\n }\n } else if (props.expandOnClickNode) {\n e.proxy.handleExpandIconClick()\n }\n },\n onCheck: (data, params) => {\n // ignore when no checkbox, like only `checkOnClickNode` is true\n if (!props.showCheckbox) return\n\n const dataValue = getNodeValByProp('value', data)\n const dataMap = {}\n treeEach(\n [tree.value.store.root],\n (node) => (dataMap[node.key] = node),\n (node) => node.childNodes\n )\n\n // fix: checkedKeys has not cached keys\n const uncachedCheckedKeys = params.checkedKeys\n const cachedKeys = props.multiple\n ? toValidArray(props.modelValue).filter(\n (item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)\n )\n : []\n const checkedKeys = cachedKeys.concat(uncachedCheckedKeys)\n\n if (props.checkStrictly) {\n emit(\n UPDATE_MODEL_EVENT,\n // Checking for changes may come from `check-on-node-click`\n props.multiple\n ? checkedKeys\n : checkedKeys.includes(dataValue)\n ? dataValue\n : undefined\n )\n }\n // only can select leaf node\n else {\n if (props.multiple) {\n const childKeys = getChildCheckedKeys()\n\n emit(UPDATE_MODEL_EVENT, cachedKeys.concat(childKeys))\n } else {\n // select first leaf node when check parent\n const firstLeaf = treeFind(\n [data],\n (data) =>\n !isValidArray(getNodeValByProp('children', data)) &&\n !getNodeValByProp('disabled', data),\n (data) => getNodeValByProp('children', data)\n )\n const firstLeafKey = firstLeaf\n ? getNodeValByProp('value', firstLeaf)\n : undefined\n\n // unselect when any child checked\n const hasCheckedChild =\n isValidValue(props.modelValue) &&\n !!treeFind(\n [data],\n (data) => getNodeValByProp('value', data) === props.modelValue,\n (data) => getNodeValByProp('children', data)\n )\n\n emit(\n UPDATE_MODEL_EVENT,\n firstLeafKey === props.modelValue || hasCheckedChild\n ? undefined\n : firstLeafKey\n )\n }\n }\n\n nextTick(() => {\n const checkedKeys = toValidArray(props.modelValue)\n tree.value.setCheckedKeys(checkedKeys)\n\n attrs.onCheck?.(data, {\n checkedKeys: tree.value.getCheckedKeys(),\n checkedNodes: tree.value.getCheckedNodes(),\n halfCheckedKeys: tree.value.getHalfCheckedKeys(),\n halfCheckedNodes: tree.value.getHalfCheckedNodes(),\n })\n })\n\n select.value?.focus()\n },\n\n onNodeExpand: (data, node, e) => {\n attrs.onNodeExpand?.(data, node, e)\n nextTick(() => {\n if (\n !props.checkStrictly &&\n props.lazy &&\n props.multiple &&\n node.checked\n ) {\n const dataMap = {}\n const uncachedCheckedKeys = (\n tree.value as TreeInstance\n ).getCheckedKeys()\n\n treeEach(\n [tree.value.store.root],\n (node) => (dataMap[node.key] = node),\n (node) => node.childNodes\n )\n\n const cachedKeys = toValidArray(props.modelValue).filter(\n (item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)\n )\n\n const childKeys = getChildCheckedKeys()\n emit(UPDATE_MODEL_EVENT, cachedKeys.concat(childKeys))\n }\n })\n },\n // else\n cacheOptions,\n }\n}\n"],"names":["_a","TreeSelectOption","data","checkedKeys","node"],"mappings":"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"}