UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 17.2 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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"}