{"version":3,"file":"TreeSelect.cjs","sources":["../../../../../../packages/vue-components/vc-tree-select/src/TreeSelect.tsx"],"sourcesContent":["import type { Key, VueNode } from '@antdv/types';\nimport type { ExtractPropTypes, PropType } from 'vue';\nimport type { BaseSelectProps, BaseSelectRef, DisplayValueType } from '../../vc-select/src/BaseSelect';\nimport type { SelectProps } from '../../vc-select/src/Select';\nimport type { ExpandAction } from '../../vc-tree/src/props';\nimport type { LegacyContextProps } from './LegacyContext';\nimport type { TreeSelectContextProps } from './TreeSelectContext';\nimport type { CheckedStrategy } from './utils/strategyUtil';\nimport { useMergedState } from '@antdv/hooks';\nimport { initDefaultProps, omit, PropTypes, toReactive, warning } from '@antdv/utils';\nimport {\n  computed,\n  defineComponent,\n  ref,\n  shallowRef,\n  toRaw,\n  toRef,\n  toRefs,\n  watchEffect,\n} from 'vue';\nimport BaseSelect, { baseSelectPropsWithoutPrivate } from '../../vc-select/src/BaseSelect';\nimport useId from '../../vc-select/src/hooks/useId';\nimport useMaxLevel from '../../vc-tree/src/useMaxLevel';\nimport { conductCheck } from '../../vc-tree/src/utils/conductUtil';\nimport useCache from './hooks/useCache';\nimport useCheckedKeys from './hooks/useCheckedKeys';\nimport useDataEntities from './hooks/useDataEntities';\nimport useFilterTreeData from './hooks/useFilterTreeData';\nimport useTreeData from './hooks/useTreeData';\nimport { useProvideLegacySelectContext } from './LegacyContext';\nimport OptionList from './OptionList';\nimport { useProvideSelectContext } from './TreeSelectContext';\nimport { fillAdditionalInfo, fillLegacyProps } from './utils/legacyUtil';\nimport { formatStrategyValues, SHOW_CHILD } from './utils/strategyUtil';\nimport { fillFieldNames, isNil, toArray } from './utils/valueUtil';\nimport warningProps from './utils/warningPropsUtil';\n\nexport type OnInternalSelect = (value: RawValueType, info: { selected: boolean }) => void;\n\nexport type RawValueType = string | number;\n\nexport interface LabeledValueType {\n  key?: Key;\n  value?: RawValueType;\n  label?: any;\n  /** Only works on `treeCheckStrictly` */\n  halfChecked?: boolean;\n}\n\nexport type SelectSource = 'option' | 'selection' | 'input' | 'clear';\n\nexport type DraftValueType = RawValueType | LabeledValueType | Array<RawValueType | LabeledValueType>;\n\n/** @deprecated This is only used for legacy compatible. Not works on new code. */\nexport interface LegacyCheckedNode {\n  pos: string;\n  node: any;\n  children?: LegacyCheckedNode[];\n}\n\nexport interface ChangeEventExtra {\n  /** @deprecated Please save prev value by control logic instead */\n  preValue: LabeledValueType[];\n  triggerValue: RawValueType;\n  /** @deprecated Use `onSelect` or `onDeselect` instead. */\n  selected?: boolean;\n  /** @deprecated Use `onSelect` or `onDeselect` instead. */\n  checked?: boolean;\n\n  // Not sure if exist user still use this. We have to keep but not recommend user to use\n  /** @deprecated This prop not work as react node anymore. */\n  triggerNode: any;\n  /** @deprecated This prop not work as react node anymore. */\n  allCheckedNodes: LegacyCheckedNode[];\n}\n\nexport interface FieldNames {\n  value?: string;\n  label?: string;\n  children?: string;\n}\n\nexport interface InternalFieldName extends Omit<FieldNames, 'label'> {\n  _title: string[];\n}\n\nexport interface SimpleModeConfig {\n  id?: Key;\n  pId?: Key;\n  rootPId?: Key;\n}\n\nexport interface BaseOptionType {\n  disabled?: boolean;\n  checkable?: boolean;\n  disableCheckbox?: boolean;\n  children?: BaseOptionType[];\n  [name: string]: any;\n}\n\nexport interface DefaultOptionType extends BaseOptionType {\n  value?: RawValueType;\n  title?: any;\n  label?: any;\n  key?: Key;\n  children?: DefaultOptionType[];\n}\n\nexport interface LegacyDataNode extends DefaultOptionType {\n  props: any;\n}\n\nexport function treeSelectProps<\n  ValueType = any,\n  OptionType extends BaseOptionType = DefaultOptionType,\n>() {\n  return {\n    ...omit(baseSelectPropsWithoutPrivate(), ['mode']),\n\n    prefixCls: String,\n    id: String,\n    value: { type: [String, Number, Object, Array] as PropType<ValueType> },\n    defaultValue: { type: [String, Number, Object, Array] as PropType<ValueType> },\n    onChange: {\n      type: Function as PropType<\n        (value: ValueType, labelList: any[], extra: ChangeEventExtra) => void\n      >,\n    },\n    searchValue: String,\n    /** @deprecated Use `searchValue` instead */\n    inputValue: String,\n    onSearch: { type: Function as PropType<(value: string) => void> },\n    autoClearSearchValue: { type: Boolean, default: undefined },\n\n    filterTreeNode: {\n      type: [Boolean, Function] as PropType<\n        boolean | ((inputValue: string, treeNode: DefaultOptionType) => boolean)\n      >,\n      default: undefined,\n    },\n    treeNodeFilterProp: String,\n\n    // >>> Select\n    onSelect: Function as PropType<SelectProps['onSelect']>,\n    onDeselect: Function as PropType<SelectProps['onDeselect']>,\n\n    showCheckedStrategy: { type: String as PropType<CheckedStrategy> },\n    treeNodeLabelProp: String,\n\n    fieldNames: { type: Object as PropType<FieldNames> },\n\n    // >>> Mode\n    multiple: { type: Boolean, default: undefined },\n    treeCheckable: { type: Boolean, default: undefined },\n    treeCheckStrictly: { type: Boolean, default: undefined },\n    labelInValue: { type: Boolean, default: undefined },\n\n    // >>> Data\n    treeData: { type: Array as PropType<OptionType[]> },\n    treeDataSimpleMode: {\n      type: [Boolean, Object] as PropType<boolean | SimpleModeConfig>,\n      default: undefined,\n    },\n    loadData: { type: Function as PropType<(dataNode: LegacyDataNode) => Promise<unknown>> },\n    treeLoadedKeys: { type: Array as PropType<Key[]> },\n    onTreeLoad: { type: Function as PropType<(loadedKeys: Key[]) => void> },\n\n    // >>> Expanded\n    treeDefaultExpandAll: { type: Boolean, default: undefined },\n    treeExpandedKeys: { type: Array as PropType<Key[]> },\n    treeDefaultExpandedKeys: { type: Array as PropType<Key[]> },\n    onTreeExpand: { type: Function as PropType<(expandedKeys: Key[]) => void> },\n\n    // >>> Options\n    virtual: { type: Boolean, default: undefined },\n    listHeight: Number,\n    listItemHeight: Number,\n    onDropdownVisibleChange: { type: Function as PropType<(open: boolean) => void> },\n\n    // >>> Tree\n    treeLine: { type: [Boolean, Object], default: undefined },\n    treeIcon: PropTypes.any,\n    showTreeIcon: { type: Boolean, default: undefined },\n    switcherIcon: PropTypes.any,\n    treeMotion: PropTypes.any,\n    children: Array as PropType<VueNode[]>,\n    treeExpandAction: String as PropType<ExpandAction>,\n\n    showArrow: { type: Boolean, default: undefined },\n    showSearch: { type: Boolean, default: undefined },\n    open: { type: Boolean, default: undefined },\n    defaultOpen: { type: Boolean, default: undefined },\n\n    disabled: { type: Boolean, default: undefined },\n\n    placeholder: PropTypes.any,\n\n    maxTagPlaceholder: { type: Function as PropType<(omittedValues: DisplayValueType[]) => any> },\n\n    dropdownPopupAlign: PropTypes.any,\n    customSlots: Object,\n  };\n}\n\nexport type TreeSelectProps = Partial<ExtractPropTypes<ReturnType<typeof treeSelectProps>>>;\n\nfunction isRawValue(value: RawValueType | LabeledValueType): value is RawValueType {\n  return !value || typeof value !== 'object';\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'TreeSelect',\n  inheritAttrs: false,\n  props: initDefaultProps(treeSelectProps(), {\n    treeNodeFilterProp: 'value',\n    autoClearSearchValue: true,\n    showCheckedStrategy: SHOW_CHILD,\n    listHeight: 200,\n    listItemHeight: 20,\n    prefixCls: 'vc-tree-select',\n  }),\n  setup(props, { attrs, expose, slots }) {\n    const mergedId = useId(toRef(props, 'id'));\n    const treeConduction = computed(() => props.treeCheckable && !props.treeCheckStrictly);\n    const mergedCheckable = computed(() => props.treeCheckable || props.treeCheckStrictly);\n    const mergedLabelInValue = computed(() => props.treeCheckStrictly || props.labelInValue);\n    const mergedMultiple = computed(() => mergedCheckable.value || props.multiple);\n\n    // ========================== Warning ===========================\n    if (process.env.NODE_ENV !== 'production') {\n      watchEffect(() => {\n        warningProps(props);\n      });\n    }\n\n    // ========================= FieldNames =========================\n    const mergedFieldNames = computed<InternalFieldName>(() => fillFieldNames(props.fieldNames));\n\n    // =========================== Search ===========================\n    const [mergedSearchValue, setSearchValue] = useMergedState('', {\n      value: computed(() =>\n        props.searchValue !== undefined ? props.searchValue : props.inputValue,\n      ),\n      postState: search => search || '',\n    });\n\n    const onInternalSearch: BaseSelectProps['onSearch'] = (searchText) => {\n      setSearchValue(searchText);\n      props.onSearch?.(searchText);\n    };\n\n    // ============================ Data ============================\n    // `useTreeData` only do convert of `children` or `simpleMode`.\n    // Else will return origin `treeData` for perf consideration.\n    // Do not do anything to loop the data.\n    const mergedTreeData = useTreeData(\n      toRef(props, 'treeData'),\n      toRef(props, 'children'),\n      toRef(props, 'treeDataSimpleMode'),\n    );\n\n    const { keyEntities, valueEntities } = useDataEntities(mergedTreeData, mergedFieldNames);\n\n    /** Get `missingRawValues` which not exist in the tree yet */\n    const splitRawValues = (newRawValues: RawValueType[]) => {\n      const missingRawValues = [];\n      const existRawValues = [];\n\n      // Keep missing value in the cache\n      newRawValues.forEach((val) => {\n        if (valueEntities.value.has(val))\n          existRawValues.push(val);\n        else\n          missingRawValues.push(val);\n      });\n\n      return { missingRawValues, existRawValues };\n    };\n\n    // Filtered Tree\n    const filteredTreeData = useFilterTreeData(mergedTreeData, mergedSearchValue, {\n      fieldNames: mergedFieldNames,\n      treeNodeFilterProp: toRef(props, 'treeNodeFilterProp'),\n      filterTreeNode: toRef(props, 'filterTreeNode'),\n    });\n\n    // =========================== Label ============================\n    const getLabel = (item: DefaultOptionType) => {\n      if (item) {\n        if (props.treeNodeLabelProp)\n          return item[props.treeNodeLabelProp];\n\n        // Loop from fieldNames\n        const { _title: titleList } = mergedFieldNames.value;\n\n        for (let i = 0; i < titleList.length; i += 1) {\n          const title = item[titleList[i]];\n          if (title !== undefined)\n            return title;\n        }\n      }\n    };\n\n    // ========================= Wrap Value =========================\n    const toLabeledValues = (draftValues: DraftValueType) => {\n      const values = toArray(draftValues);\n\n      return values.map((val) => {\n        if (isRawValue(val))\n          return { value: val };\n\n        return val;\n      });\n    };\n\n    const convert2LabelValues = (draftValues: DraftValueType) => {\n      const values = toLabeledValues(draftValues);\n\n      return values.map((item) => {\n        let { label: rawLabel } = item;\n        const { value: rawValue, halfChecked: rawHalfChecked } = item;\n\n        let rawDisabled: boolean | undefined;\n\n        const entity = valueEntities.value.get(rawValue);\n\n        // Fill missing label & status\n        if (entity) {\n          rawLabel = rawLabel ?? getLabel(entity.node);\n          rawDisabled = entity.node.disabled;\n        }\n\n        return {\n          label: rawLabel,\n          value: rawValue,\n          halfChecked: rawHalfChecked,\n          disabled: rawDisabled,\n        };\n      });\n    };\n\n    // =========================== Values ===========================\n    const [internalValue, setInternalValue] = useMergedState(props.defaultValue, {\n      value: toRef(props, 'value'),\n    });\n\n    const rawMixedLabeledValues = computed(() => toLabeledValues(internalValue.value));\n\n    // Split value into full check and half check\n    const rawLabeledValues = shallowRef([]);\n    const rawHalfLabeledValues = shallowRef([]);\n    watchEffect(() => {\n      const fullCheckValues: LabeledValueType[] = [];\n      const halfCheckValues: LabeledValueType[] = [];\n\n      rawMixedLabeledValues.value.forEach((item) => {\n        if (item.halfChecked)\n          halfCheckValues.push(item);\n        else\n          fullCheckValues.push(item);\n      });\n\n      rawLabeledValues.value = fullCheckValues;\n      rawHalfLabeledValues.value = halfCheckValues;\n    });\n\n    // const [mergedValues] = useCache(rawLabeledValues);\n    const rawValues = computed(() => rawLabeledValues.value.map(item => item.value));\n    const { maxLevel, levelEntities } = useMaxLevel(keyEntities);\n    // Convert value to key. Will fill missed keys for conduct check.\n    const [rawCheckedValues, rawHalfCheckedValues] = useCheckedKeys(\n      rawLabeledValues,\n      rawHalfLabeledValues,\n      treeConduction,\n      keyEntities,\n      maxLevel,\n      levelEntities,\n    );\n\n    // Convert rawCheckedKeys to check strategy related values\n    const displayValues = computed(() => {\n      // Collect keys which need to show\n      const displayKeys = formatStrategyValues(\n        rawCheckedValues.value,\n        props.showCheckedStrategy,\n        keyEntities.value,\n        mergedFieldNames.value,\n      );\n\n      // Convert to value and filled with label\n      const values = displayKeys.map(\n        key => keyEntities.value[key]?.node?.[mergedFieldNames.value.value] ?? key,\n      );\n      // Back fill with origin label\n      const labeledValues = values.map((val) => {\n        const targetItem = rawLabeledValues.value.find(item => item.value === val);\n        return {\n          value: val,\n          label: targetItem?.label,\n        };\n      });\n      const rawDisplayValues = convert2LabelValues(labeledValues);\n\n      const firstVal = rawDisplayValues[0];\n\n      if (!mergedMultiple.value && firstVal && isNil(firstVal.value) && isNil(firstVal.label))\n        return [];\n\n      return rawDisplayValues.map(item => ({\n        ...item,\n        label: item.label ?? item.value,\n      }));\n    });\n\n    const [cachedDisplayValues] = useCache(displayValues);\n\n    // =========================== Change ===========================\n    const triggerChange = (\n      newRawValues: RawValueType[],\n      extra: { triggerValue?: RawValueType; selected?: boolean },\n      source: SelectSource,\n    ) => {\n      const labeledValues = convert2LabelValues(newRawValues);\n      setInternalValue(labeledValues);\n\n      // Clean up if needed\n      if (props.autoClearSearchValue)\n        setSearchValue('');\n\n      // Generate rest parameters is costly, so only do it when necessary\n      if (props.onChange) {\n        let eventValues: RawValueType[] = newRawValues;\n        if (treeConduction.value) {\n          const formattedKeyList = formatStrategyValues(\n            newRawValues,\n            props.showCheckedStrategy,\n            keyEntities.value,\n            mergedFieldNames.value,\n          );\n          eventValues = formattedKeyList.map((key) => {\n            const entity = valueEntities.value.get(key);\n            return entity ? entity.node[mergedFieldNames.value.value] : key;\n          });\n        }\n\n        const { triggerValue, selected } = extra || {\n          triggerValue: undefined,\n          selected: undefined,\n        };\n\n        let returnRawValues: Array<LabeledValueType | RawValueType> = eventValues;\n\n        // We need fill half check back\n        if (props.treeCheckStrictly) {\n          const halfValues = rawHalfLabeledValues.value.filter(\n            item => !eventValues.includes(item.value),\n          );\n\n          returnRawValues = [...returnRawValues, ...halfValues];\n        }\n\n        const returnLabeledValues = convert2LabelValues(returnRawValues);\n        const additionalInfo = {\n          // [Legacy] Always return as array contains label & value\n          preValue: rawLabeledValues.value,\n          triggerValue,\n        } as ChangeEventExtra;\n\n        // [Legacy] Fill legacy data if user query.\n        // This is expansive that we only fill when user query\n        // https://github.com/react-component/tree-select/blob/fe33eb7c27830c9ac70cd1fdb1ebbe7bc679c16a/src/Select.jsx\n        let showPosition = true;\n        if (props.treeCheckStrictly || (source === 'selection' && !selected))\n          showPosition = false;\n\n        fillAdditionalInfo(\n          additionalInfo,\n          triggerValue,\n          newRawValues,\n          mergedTreeData.value,\n          showPosition,\n          mergedFieldNames.value,\n        );\n\n        if (mergedCheckable.value)\n          additionalInfo.checked = selected;\n        else\n          additionalInfo.selected = selected;\n\n        const returnValues = mergedLabelInValue.value\n          ? returnLabeledValues\n          : returnLabeledValues.map(item => item.value);\n\n        props.onChange(\n          mergedMultiple.value ? returnValues : returnValues[0],\n          mergedLabelInValue.value ? null : returnLabeledValues.map(item => item.label),\n          additionalInfo,\n        );\n      }\n    };\n\n    // ========================== Options ===========================\n    /** Trigger by option list */\n    const onOptionSelect = (\n      selectedKey: Key,\n      { selected, source }: { selected: boolean; source: SelectSource },\n    ) => {\n      const keyEntitiesValue = toRaw(keyEntities.value);\n      const valueEntitiesValue = toRaw(valueEntities.value);\n      const entity = keyEntitiesValue[selectedKey];\n      const node = entity?.node;\n      const selectedValue = node?.[mergedFieldNames.value.value] ?? selectedKey;\n\n      // Never be falsy but keep it safe\n      if (!mergedMultiple.value) {\n        // Single mode always set value\n        triggerChange([selectedValue], { selected: true, triggerValue: selectedValue }, 'option');\n      } else {\n        let newRawValues = selected\n          ? [...rawValues.value, selectedValue]\n          : rawCheckedValues.value.filter(v => v !== selectedValue);\n\n        // Add keys if tree conduction\n        if (treeConduction.value) {\n          // Should keep missing values\n          const { missingRawValues, existRawValues } = splitRawValues(newRawValues);\n          const keyList = existRawValues.map(val => valueEntitiesValue.get(val).key);\n\n          // Conduction by selected or not\n          let checkedKeys: Key[];\n          if (selected) {\n            ({ checkedKeys } = conductCheck(\n              keyList,\n              true,\n              keyEntitiesValue,\n              maxLevel.value,\n              levelEntities.value,\n            ));\n          } else {\n            ({ checkedKeys } = conductCheck(\n              keyList,\n              { checked: false, halfCheckedKeys: rawHalfCheckedValues.value },\n              keyEntitiesValue,\n              maxLevel.value,\n              levelEntities.value,\n            ));\n          }\n\n          // Fill back of keys\n          newRawValues = [\n            ...missingRawValues,\n            ...checkedKeys.map(key => keyEntitiesValue[key].node[mergedFieldNames.value.value]),\n          ];\n        }\n        triggerChange(newRawValues, { selected, triggerValue: selectedValue }, source || 'option');\n      }\n\n      // Trigger select event\n      if (selected || !mergedMultiple.value)\n        props.onSelect?.(selectedValue, fillLegacyProps(node));\n      else\n        props.onDeselect?.(selectedValue, fillLegacyProps(node));\n    };\n\n    // ========================== Dropdown ==========================\n    const onInternalDropdownVisibleChange = (open: boolean) => {\n      if (props.onDropdownVisibleChange) {\n        const legacyParam = {};\n\n        Object.defineProperty(legacyParam, 'documentClickClose', {\n          get() {\n            warning(false, 'Second param of `onDropdownVisibleChange` has been removed.');\n            return false;\n          },\n        });\n\n        (props.onDropdownVisibleChange as any)(open, legacyParam);\n      }\n    };\n\n    // ====================== Display Change ========================\n    const onDisplayValuesChange: BaseSelectProps['onDisplayValuesChange'] = (newValues, info) => {\n      const newRawValues = newValues.map(item => item.value);\n\n      if (info.type === 'clear') {\n        triggerChange(newRawValues, {}, 'selection');\n        return;\n      }\n\n      // TreeSelect only have multiple mode which means display change only has remove\n      if (info.values.length)\n        onOptionSelect(info.values[0].value, { selected: false, source: 'selection' });\n    };\n    const {\n      treeNodeFilterProp,\n\n      // Data\n      loadData,\n      treeLoadedKeys,\n      onTreeLoad,\n\n      // Expanded\n      treeDefaultExpandAll,\n      treeExpandedKeys,\n      treeDefaultExpandedKeys,\n      onTreeExpand,\n\n      // Options\n      virtual,\n      listHeight,\n      listItemHeight,\n\n      // Tree\n      treeLine,\n      treeIcon,\n      showTreeIcon,\n      switcherIcon,\n      treeMotion,\n      customSlots,\n\n      dropdownMatchSelectWidth,\n      treeExpandAction,\n    } = toRefs(props);\n    useProvideLegacySelectContext(\n      toReactive({\n        checkable: mergedCheckable,\n\n        loadData,\n        treeLoadedKeys,\n        onTreeLoad,\n        checkedKeys: rawCheckedValues,\n        halfCheckedKeys: rawHalfCheckedValues,\n        treeDefaultExpandAll,\n        treeExpandedKeys,\n        treeDefaultExpandedKeys,\n        onTreeExpand,\n        treeIcon,\n        treeMotion,\n        showTreeIcon,\n        switcherIcon,\n        treeLine,\n        treeNodeFilterProp,\n        keyEntities,\n        customSlots,\n      } as unknown as LegacyContextProps),\n    );\n    useProvideSelectContext(\n      toReactive({\n        virtual,\n        listHeight,\n        listItemHeight,\n        treeData: filteredTreeData,\n        fieldNames: mergedFieldNames,\n        onSelect: onOptionSelect,\n        dropdownMatchSelectWidth,\n        treeExpandAction,\n      } as unknown as TreeSelectContextProps),\n    );\n    const selectRef = ref<BaseSelectRef>();\n    expose({\n      focus() {\n        selectRef.value?.focus();\n      },\n      blur() {\n        selectRef.value?.blur();\n      },\n      scrollTo(arg) {\n        selectRef.value?.scrollTo(arg);\n      },\n    } as BaseSelectRef);\n    return () => {\n      const restProps = omit(props, [\n        'id',\n        'prefixCls',\n        'customSlots',\n\n        // Value\n        'value',\n        'defaultValue',\n        'onChange',\n        'onSelect',\n        'onDeselect',\n\n        // Search\n        'searchValue',\n        'inputValue',\n        'onSearch',\n        'autoClearSearchValue',\n        'filterTreeNode',\n        'treeNodeFilterProp',\n\n        // Selector\n        'showCheckedStrategy',\n        'treeNodeLabelProp',\n\n        //  Mode\n        'multiple',\n        'treeCheckable',\n        'treeCheckStrictly',\n        'labelInValue',\n\n        // FieldNames\n        'fieldNames',\n\n        // Data\n        'treeDataSimpleMode',\n        'treeData',\n        'children',\n        'loadData',\n        'treeLoadedKeys',\n        'onTreeLoad',\n\n        // Expanded\n        'treeDefaultExpandAll',\n        'treeExpandedKeys',\n        'treeDefaultExpandedKeys',\n        'onTreeExpand',\n\n        // Options\n        'virtual',\n        'listHeight',\n        'listItemHeight',\n        'onDropdownVisibleChange',\n\n        // Tree\n        'treeLine',\n        'treeIcon',\n        'showTreeIcon',\n        'switcherIcon',\n        'treeMotion',\n      ]);\n      return (\n        <BaseSelect\n          v-slots={slots}\n          ref={selectRef}\n          {...attrs}\n          {...restProps}\n          // >>> MISC\n          id={mergedId}\n          prefixCls={props.prefixCls}\n          mode={mergedMultiple.value ? 'multiple' : undefined}\n          // >>> Display Value\n          displayValues={cachedDisplayValues.value}\n          onDisplayValuesChange={onDisplayValuesChange}\n          // >>> Search\n          searchValue={mergedSearchValue.value}\n          onSearch={onInternalSearch}\n          // >>> Options\n          OptionList={OptionList}\n          emptyOptions={!mergedTreeData.value.length}\n          onDropdownVisibleChange={onInternalDropdownVisibleChange}\n          tagRender={props.tagRender || slots.tagRender}\n          dropdownMatchSelectWidth={props.dropdownMatchSelectWidth ?? true}\n        />\n      );\n    };\n  },\n});\n"],"names":["treeSelectProps","omit","baseSelectPropsWithoutPrivate","prefixCls","String","id","value","type","Number","Object","Array","defaultValue","onChange","Function","searchValue","inputValue","onSearch","autoClearSearchValue","Boolean","default","undefined","filterTreeNode","treeNodeFilterProp","onSelect","onDeselect","showCheckedStrategy","treeNodeLabelProp","fieldNames","multiple","treeCheckable","treeCheckStrictly","labelInValue","treeData","treeDataSimpleMode","loadData","treeLoadedKeys","onTreeLoad","treeDefaultExpandAll","treeExpandedKeys","treeDefaultExpandedKeys","onTreeExpand","virtual","listHeight","listItemHeight","onDropdownVisibleChange","treeLine","treeIcon","PropTypes","any","showTreeIcon","switcherIcon","treeMotion","children","treeExpandAction","showArrow","showSearch","open","defaultOpen","disabled","placeholder","maxTagPlaceholder","dropdownPopupAlign","customSlots","isRawValue","defineComponent","compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","SHOW_CHILD","setup","attrs","expose","slots","mergedId","useId","toRef","treeConduction","computed","mergedCheckable","mergedLabelInValue","mergedMultiple","process","env","NODE_ENV","watchEffect","warningProps","mergedFieldNames","fillFieldNames","mergedSearchValue","setSearchValue","useMergedState","postState","search","onInternalSearch","searchText","mergedTreeData","useTreeData","keyEntities","valueEntities","useDataEntities","splitRawValues","newRawValues","missingRawValues","existRawValues","forEach","val","has","push","filteredTreeData","useFilterTreeData","getLabel","item","_title","titleList","i","length","title","toLabeledValues","draftValues","values","toArray","map","convert2LabelValues","label","rawLabel","rawValue","halfChecked","rawHalfChecked","rawDisabled","entity","get","node","internalValue","setInternalValue","rawMixedLabeledValues","rawLabeledValues","shallowRef","rawHalfLabeledValues","fullCheckValues","halfCheckValues","rawValues","maxLevel","levelEntities","useMaxLevel","rawCheckedValues","rawHalfCheckedValues","useCheckedKeys","displayValues","displayKeys","formatStrategyValues","key","labeledValues","targetItem","find","rawDisplayValues","firstVal","isNil","cachedDisplayValues","useCache","triggerChange","extra","source","eventValues","formattedKeyList","triggerValue","selected","returnRawValues","halfValues","filter","includes","returnLabeledValues","additionalInfo","preValue","showPosition","fillAdditionalInfo","checked","returnValues","onOptionSelect","selectedKey","keyEntitiesValue","toRaw","valueEntitiesValue","selectedValue","v","keyList","checkedKeys","conductCheck","halfCheckedKeys","fillLegacyProps","onInternalDropdownVisibleChange","legacyParam","defineProperty","warning","onDisplayValuesChange","newValues","info","dropdownMatchSelectWidth","toRefs","useProvideLegacySelectContext","toReactive","checkable","useProvideSelectContext","selectRef","ref","focus","blur","scrollTo","arg","restProps","_createVNode","BaseSelect","OptionList","tagRender"],"mappings":"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"}