{"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 '@hd-front-end/constants'\nimport { escapeStringRegexp, isEmpty, isFunction } from '@hd-front-end/utils'\nimport ElTree from '@hd-front-end/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 '@hd-front-end/components/select'\nimport type Node from '@hd-front-end/components/tree/src/model/node'\nimport type { TreeNodeData } from '@hd-front-end/components/tree/src/tree.type'\nimport type { TreeInstance } from '@hd-front-end/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      select.value?.focus()\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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"}