{"version":3,"file":"Cascader.cjs","sources":["../../../../../../packages/vue-components/vc-cascader/src/Cascader.tsx"],"sourcesContent":["import type { Key, VueNode } from '@antdv/types';\nimport type { CSSProperties, ExtractPropTypes, PropType, Ref } from 'vue';\nimport type { BaseSelectProps, BaseSelectRef, DisplayValueType, Placement } from '../../vc-select/src/BaseSelect';\nimport { useMergedState } from '@antdv/hooks';\nimport { devWarning, initDefaultProps, objectType, omit, PropTypes } from '@antdv/utils';\nimport {\n  computed,\n  defineComponent,\n  ref,\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 { useProvideCascader } from './context';\nimport useDisplayValues from './hooks/useDisplayValues';\nimport useEntities from './hooks/useEntities';\nimport useMissingValues from './hooks/useMissingValues';\nimport useSearchConfig from './hooks/useSearchConfig';\nimport useSearchOptions from './hooks/useSearchOptions';\nimport OptionList from './OptionList';\nimport { fillFieldNames, SHOW_CHILD, SHOW_PARENT, toPathKey, toPathKeys } from './utils/commonUtil';\nimport { formatStrategyValues, toPathOptions } from './utils/treeUtil';\n\nexport { SHOW_CHILD, SHOW_PARENT };\nexport interface ShowSearchType<OptionType extends BaseOptionType = DefaultOptionType> {\n  filter?: (inputValue: string, options: OptionType[], fieldNames: FieldNames) => boolean;\n  render?: (arg?: {\n    inputValue: string;\n    path: OptionType[];\n    prefixCls: string;\n    fieldNames: FieldNames;\n  }) => any;\n  sort?: (a: OptionType[], b: OptionType[], inputValue: string, fieldNames: FieldNames) => number;\n  matchInputWidth?: boolean;\n  limit?: number | false;\n}\n\nexport interface FieldNames {\n  label?: string;\n  value?: string;\n  children?: string;\n}\n\nexport interface InternalFieldNames extends Required<FieldNames> {\n  key: string;\n}\n\nexport type SingleValueType = Array<string | number>;\n\nexport type ValueType = SingleValueType | SingleValueType[];\nexport type ShowCheckedStrategy = typeof SHOW_PARENT | typeof SHOW_CHILD;\n\nexport interface BaseOptionType {\n  disabled?: boolean;\n  [name: string]: any;\n}\nexport interface DefaultOptionType extends BaseOptionType {\n  label?: any;\n  value?: string | number | null;\n  children?: DefaultOptionType[];\n}\n\nfunction baseCascaderProps<OptionType extends BaseOptionType = DefaultOptionType>() {\n  return {\n    ...omit(baseSelectPropsWithoutPrivate(), ['tokenSeparators', 'mode', 'showSearch']),\n    // MISC\n    id: String,\n    prefixCls: String,\n    fieldNames: objectType<FieldNames>(),\n    children: Array as PropType<VueNode[]>,\n\n    // Value\n    value: { type: [String, Number, Array] as PropType<ValueType> },\n    defaultValue: { type: [String, Number, Array] as PropType<ValueType> },\n    changeOnSelect: { type: Boolean, default: undefined },\n    displayRender: Function as PropType<\n      (opt: { labels: string[]; selectedOptions?: OptionType[] }) => any\n    >,\n    checkable: { type: Boolean, default: undefined },\n    showCheckedStrategy: { type: String as PropType<ShowCheckedStrategy>, default: SHOW_PARENT },\n    // Search\n    showSearch: {\n      type: [Boolean, Object] as PropType<boolean | ShowSearchType<OptionType>>,\n      default: undefined as boolean | ShowSearchType<OptionType>,\n    },\n    searchValue: String,\n    onSearch: Function as PropType<(value: string) => void>,\n\n    // Trigger\n    expandTrigger: String as PropType<'hover' | 'click'>,\n\n    // Options\n    options: Array as PropType<OptionType[]>,\n    /** @private Internal usage. Do not use in your production. */\n    dropdownPrefixCls: String,\n    loadData: Function as PropType<(selectOptions: OptionType[]) => void>,\n\n    // Open\n    /** @deprecated Use `open` instead */\n    popupVisible: { type: Boolean, default: undefined },\n\n    dropdownClassName: String,\n    dropdownMenuColumnStyle: {\n      type: Object as PropType<CSSProperties>,\n      default: undefined as CSSProperties,\n    },\n\n    /** @deprecated Use `dropdownStyle` instead */\n    popupStyle: { type: Object as PropType<CSSProperties>, default: undefined as CSSProperties },\n    dropdownStyle: { type: Object as PropType<CSSProperties>, default: undefined as CSSProperties },\n\n    /** @deprecated Use `placement` instead */\n    popupPlacement: String as PropType<Placement>,\n    placement: String as PropType<Placement>,\n\n    /** @deprecated Use `onDropdownVisibleChange` instead */\n    onPopupVisibleChange: Function as PropType<(open: boolean) => void>,\n    onDropdownVisibleChange: Function as PropType<(open: boolean) => void>,\n\n    // Icon\n    expandIcon: PropTypes.any,\n    loadingIcon: PropTypes.any,\n  };\n}\n\nexport type BaseCascaderProps = Partial<ExtractPropTypes<ReturnType<typeof baseCascaderProps>>>;\n\ntype OnSingleChange<OptionType> = (value: SingleValueType, selectOptions: OptionType[]) => void;\ntype OnMultipleChange<OptionType> = (\n  value: SingleValueType[],\n  selectOptions: OptionType[][],\n) => void;\n\nexport function singleCascaderProps<OptionType extends BaseOptionType = DefaultOptionType>() {\n  return {\n    ...baseCascaderProps(),\n    checkable: Boolean as PropType<false>,\n    onChange: Function as PropType<OnSingleChange<OptionType>>,\n  };\n}\n\nexport type SingleCascaderProps = Partial<ExtractPropTypes<ReturnType<typeof singleCascaderProps>>>;\n\nexport function multipleCascaderProps<OptionType extends BaseOptionType = DefaultOptionType>() {\n  return {\n    ...baseCascaderProps(),\n    checkable: Boolean as PropType<true>,\n    onChange: Function as PropType<OnMultipleChange<OptionType>>,\n  };\n}\n\nexport type MultipleCascaderProps = Partial<\n  ExtractPropTypes<ReturnType<typeof singleCascaderProps>>\n>;\n\nexport function internalCascaderProps<OptionType extends BaseOptionType = DefaultOptionType>() {\n  return {\n    ...baseCascaderProps(),\n    onChange: Function as PropType<\n      (value: ValueType, selectOptions: OptionType[] | OptionType[][]) => void\n    >,\n    customSlots: Object as PropType<Record<string, Function>>,\n  };\n}\n\nexport type CascaderProps = Partial<ExtractPropTypes<ReturnType<typeof internalCascaderProps>>>;\nexport type CascaderRef = Omit<BaseSelectRef, 'scrollTo'>;\n\nfunction isMultipleValue(value: ValueType): value is SingleValueType[] {\n  return Array.isArray(value) && Array.isArray(value[0]);\n}\n\nfunction toRawValues(value: ValueType): SingleValueType[] {\n  if (!value)\n    return [];\n\n  if (isMultipleValue(value))\n    return value;\n\n  return (value.length === 0 ? [] : [value]).map(val => (Array.isArray(val) ? val : [val]));\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'Cascader',\n  inheritAttrs: false,\n  props: initDefaultProps(internalCascaderProps(), {}),\n  setup(props, { attrs, expose, slots }) {\n    const mergedId = useId(toRef(props, 'id'));\n    const multiple = computed(() => !!props.checkable);\n\n    // =========================== Values ===========================\n    const [rawValues, setRawValues] = useMergedState<ValueType, Ref<SingleValueType[]>>(\n      props.defaultValue,\n      {\n        value: computed(() => props.value),\n        postState: toRawValues,\n      },\n    );\n\n    // ========================= FieldNames =========================\n    const mergedFieldNames = computed(() => fillFieldNames(props.fieldNames));\n\n    // =========================== Option ===========================\n    const mergedOptions = computed(() => props.options || []);\n\n    // Only used in multiple mode, this fn will not call in single mode\n    const pathKeyEntities = useEntities(mergedOptions, mergedFieldNames);\n\n    /** Convert path key back to value format */\n    const getValueByKeyPath = (pathKeys: Key[]): SingleValueType[] => {\n      const keyPathEntities = pathKeyEntities.value;\n\n      return pathKeys.map((pathKey) => {\n        const { nodes } = keyPathEntities[pathKey];\n\n        return nodes.map(node => node[mergedFieldNames.value.value]);\n      });\n    };\n\n    // =========================== Search ===========================\n    const [mergedSearchValue, setSearchValue] = useMergedState('', {\n      value: computed(() => props.searchValue),\n      postState: search => search || '',\n    });\n\n    const onInternalSearch: BaseSelectProps['onSearch'] = (searchText, info) => {\n      setSearchValue(searchText);\n\n      if (info.source !== 'blur' && props.onSearch)\n        props.onSearch(searchText);\n    };\n\n    const { showSearch: mergedShowSearch, searchConfig: mergedSearchConfig } = useSearchConfig(\n      toRef(props, 'showSearch'),\n    );\n\n    const searchOptions = useSearchOptions(\n      mergedSearchValue,\n      mergedOptions,\n      mergedFieldNames,\n      computed(() => props.dropdownPrefixCls || props.prefixCls),\n      mergedSearchConfig,\n      toRef(props, 'changeOnSelect'),\n    );\n\n    // =========================== Values ===========================\n    const missingValuesInfo = useMissingValues(mergedOptions, mergedFieldNames, rawValues);\n\n    // Fill `rawValues` with checked conduction values\n    const [checkedValues, halfCheckedValues, missingCheckedValues] = [\n      ref<SingleValueType[]>([]),\n      ref<SingleValueType[]>([]),\n      ref<SingleValueType[]>([]),\n    ];\n\n    const { maxLevel, levelEntities } = useMaxLevel(pathKeyEntities);\n    watchEffect(() => {\n      const [existValues, missingValues] = missingValuesInfo.value;\n\n      if (!multiple.value || !rawValues.value.length) {\n        [checkedValues.value, halfCheckedValues.value, missingCheckedValues.value] = [\n          existValues,\n          [],\n          missingValues,\n        ];\n        return;\n      }\n\n      const keyPathValues = toPathKeys(existValues);\n      const keyPathEntities = pathKeyEntities.value;\n\n      const { checkedKeys, halfCheckedKeys } = conductCheck(\n        keyPathValues,\n        true,\n        keyPathEntities,\n        maxLevel.value,\n        levelEntities.value,\n      );\n\n      // Convert key back to value cells\n      [checkedValues.value, halfCheckedValues.value, missingCheckedValues.value] = [\n        getValueByKeyPath(checkedKeys),\n        getValueByKeyPath(halfCheckedKeys),\n        missingValues,\n      ];\n    });\n\n    const deDuplicatedValues = computed(() => {\n      const checkedKeys = toPathKeys(checkedValues.value);\n      const deduplicateKeys = formatStrategyValues(\n        checkedKeys,\n        pathKeyEntities.value,\n        props.showCheckedStrategy,\n      );\n      return [...missingCheckedValues.value, ...getValueByKeyPath(deduplicateKeys)];\n    });\n\n    const displayValues = useDisplayValues(\n      deDuplicatedValues,\n      mergedOptions,\n      mergedFieldNames,\n      multiple,\n      toRef(props, 'displayRender'),\n    );\n\n    // =========================== Change ===========================\n    const triggerChange = (nextValues: ValueType) => {\n      setRawValues(nextValues);\n\n      // Save perf if no need trigger event\n      if (props.onChange) {\n        const nextRawValues = toRawValues(nextValues);\n\n        const valueOptions = nextRawValues.map(valueCells =>\n          toPathOptions(valueCells, mergedOptions.value, mergedFieldNames.value).map(\n            valueOpt => valueOpt.option,\n          ),\n        );\n\n        const triggerValues = multiple.value ? nextRawValues : nextRawValues[0];\n        const triggerOptions = multiple.value ? valueOptions : valueOptions[0];\n\n        props.onChange(triggerValues, triggerOptions);\n      }\n    };\n\n    // =========================== Select ===========================\n    const onInternalSelect = (valuePath: SingleValueType) => {\n      setSearchValue('');\n      if (!multiple.value) {\n        triggerChange(valuePath);\n      } else {\n        // Prepare conduct required info\n        const pathKey = toPathKey(valuePath);\n        const checkedPathKeys = toPathKeys(checkedValues.value);\n        const halfCheckedPathKeys = toPathKeys(halfCheckedValues.value);\n\n        const existInChecked = checkedPathKeys.includes(pathKey);\n        const existInMissing = missingCheckedValues.value.some(\n          valueCells => toPathKey(valueCells) === pathKey,\n        );\n\n        // Do update\n        let nextCheckedValues = checkedValues.value;\n        let nextMissingValues = missingCheckedValues.value;\n\n        if (existInMissing && !existInChecked) {\n          // Missing value only do filter\n          nextMissingValues = missingCheckedValues.value.filter(\n            valueCells => toPathKey(valueCells) !== pathKey,\n          );\n        } else {\n          // Update checked key first\n          const nextRawCheckedKeys = existInChecked\n            ? checkedPathKeys.filter(key => key !== pathKey)\n            : [...checkedPathKeys, pathKey];\n\n          // Conduction by selected or not\n          let checkedKeys: Key[];\n          if (existInChecked) {\n            ({ checkedKeys } = conductCheck(\n              nextRawCheckedKeys,\n              { checked: false, halfCheckedKeys: halfCheckedPathKeys },\n              pathKeyEntities.value,\n              maxLevel.value,\n              levelEntities.value,\n            ));\n          } else {\n            ({ checkedKeys } = conductCheck(\n              nextRawCheckedKeys,\n              true,\n              pathKeyEntities.value,\n              maxLevel.value,\n              levelEntities.value,\n            ));\n          }\n\n          // Roll up to parent level keys\n          const deDuplicatedKeys = formatStrategyValues(\n            checkedKeys,\n            pathKeyEntities.value,\n            props.showCheckedStrategy,\n          );\n          nextCheckedValues = getValueByKeyPath(deDuplicatedKeys);\n        }\n\n        triggerChange([...nextMissingValues, ...nextCheckedValues]);\n      }\n    };\n\n    // Display Value change logic\n    const onDisplayValuesChange: BaseSelectProps['onDisplayValuesChange'] = (_, info) => {\n      if (info.type === 'clear') {\n        triggerChange([]);\n        return;\n      }\n\n      // Cascader do not support `add` type. Only support `remove`\n      const { valueCells } = info.values[0] as DisplayValueType & { valueCells: SingleValueType };\n      onInternalSelect(valueCells);\n    };\n\n    // ============================ Open ============================\n    if (process.env.NODE_ENV !== 'production') {\n      watchEffect(() => {\n        devWarning(\n          !props.onPopupVisibleChange,\n          'Cascader',\n          '`popupVisibleChange` is deprecated. Please use `dropdownVisibleChange` instead.',\n        );\n        devWarning(\n          props.popupVisible === undefined,\n          'Cascader',\n          '`popupVisible` is deprecated. Please use `open` instead.',\n        );\n        devWarning(\n          props.popupPlacement === undefined,\n          'Cascader',\n          '`popupPlacement` is deprecated. Please use `placement` instead.',\n        );\n        devWarning(\n          props.popupStyle === undefined,\n          'Cascader',\n          '`popupStyle` is deprecated. Please use `dropdownStyle` instead.',\n        );\n      });\n    }\n\n    const mergedOpen = computed(() => (props.open !== undefined ? props.open : props.popupVisible));\n\n    const mergedDropdownStyle = computed(() => props.dropdownStyle || props.popupStyle || {});\n\n    const mergedPlacement = computed(() => props.placement || props.popupPlacement);\n\n    const onInternalDropdownVisibleChange = (nextVisible: boolean) => {\n      props.onDropdownVisibleChange?.(nextVisible);\n      props.onPopupVisibleChange?.(nextVisible);\n    };\n    const {\n      changeOnSelect,\n      checkable,\n      dropdownPrefixCls,\n      loadData,\n      expandTrigger,\n      expandIcon,\n      loadingIcon,\n      dropdownMenuColumnStyle,\n      customSlots,\n      dropdownClassName,\n    } = toRefs(props);\n    useProvideCascader({\n      options: mergedOptions,\n      fieldNames: mergedFieldNames,\n      values: checkedValues,\n      halfValues: halfCheckedValues,\n      changeOnSelect,\n      onSelect: onInternalSelect,\n      checkable,\n      searchOptions,\n      dropdownPrefixCls,\n      loadData,\n      expandTrigger,\n      expandIcon,\n      loadingIcon,\n      dropdownMenuColumnStyle,\n      customSlots,\n    });\n    const selectRef = ref<BaseSelectRef>();\n\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\n    const pickProps = computed(() => {\n      return omit(props, [\n        'id',\n        'prefixCls',\n        'fieldNames',\n\n        // Value\n        'defaultValue',\n        'value',\n        'changeOnSelect',\n        'onChange',\n        'displayRender',\n        'checkable',\n\n        // Search\n        'searchValue',\n        'onSearch',\n        'showSearch',\n\n        // Trigger\n        'expandTrigger',\n\n        // Options\n        'options',\n        'dropdownPrefixCls',\n        'loadData',\n\n        // Open\n        'popupVisible',\n        'open',\n\n        'dropdownClassName',\n        'dropdownMenuColumnStyle',\n\n        'popupPlacement',\n        'placement',\n\n        'onDropdownVisibleChange',\n        'onPopupVisibleChange',\n\n        // Icon\n        'expandIcon',\n        'loadingIcon',\n        'customSlots',\n\n        'showCheckedStrategy',\n        // Children\n        'children',\n      ]);\n    });\n    return () => {\n      const emptyOptions = !(mergedSearchValue.value ? searchOptions.value : mergedOptions.value)\n        .length;\n      const { dropdownMatchSelectWidth = false } = props;\n      const dropdownStyle: CSSProperties\n        // Search to match width\n        = (mergedSearchValue.value && mergedSearchConfig.value.matchInputWidth)\n        // Empty keep the width\n        || emptyOptions\n          ? {}\n          : {\n              minWidth: 'auto',\n            };\n      return (\n        <BaseSelect\n          {...pickProps.value}\n          {...attrs}\n          // MISC\n          ref={selectRef}\n          id={mergedId}\n          prefixCls={props.prefixCls}\n          dropdownMatchSelectWidth={dropdownMatchSelectWidth}\n          dropdownStyle={{ ...mergedDropdownStyle.value, ...dropdownStyle }}\n          // Value\n          displayValues={displayValues.value}\n          onDisplayValuesChange={onDisplayValuesChange}\n          mode={multiple.value ? 'multiple' : undefined}\n          // Search\n          searchValue={mergedSearchValue.value}\n          onSearch={onInternalSearch}\n          showSearch={mergedShowSearch.value}\n          // Options\n          OptionList={OptionList}\n          emptyOptions={emptyOptions}\n          // Open\n          open={mergedOpen.value}\n          dropdownClassName={dropdownClassName.value}\n          placement={mergedPlacement.value}\n          onDropdownVisibleChange={onInternalDropdownVisibleChange}\n          // Children\n          getRawInputElement={() => slots.default?.()}\n          v-slots={slots}\n        />\n      );\n    };\n  },\n});\n"],"names":["baseCascaderProps","omit","baseSelectPropsWithoutPrivate","id","String","prefixCls","fieldNames","objectType","children","Array","value","type","Number","defaultValue","changeOnSelect","Boolean","default","undefined","displayRender","Function","checkable","showCheckedStrategy","SHOW_PARENT","showSearch","Object","searchValue","onSearch","expandTrigger","options","dropdownPrefixCls","loadData","popupVisible","dropdownClassName","dropdownMenuColumnStyle","popupStyle","dropdownStyle","popupPlacement","placement","onPopupVisibleChange","onDropdownVisibleChange","expandIcon","PropTypes","any","loadingIcon","singleCascaderProps","onChange","multipleCascaderProps","internalCascaderProps","customSlots","isMultipleValue","isArray","toRawValues","length","map","val","defineComponent","compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","setup","attrs","expose","slots","mergedId","useId","toRef","multiple","computed","rawValues","setRawValues","useMergedState","postState","mergedFieldNames","fillFieldNames","mergedOptions","pathKeyEntities","useEntities","getValueByKeyPath","pathKeys","keyPathEntities","pathKey","nodes","node","mergedSearchValue","setSearchValue","search","onInternalSearch","searchText","info","source","mergedShowSearch","searchConfig","mergedSearchConfig","useSearchConfig","searchOptions","useSearchOptions","missingValuesInfo","useMissingValues","checkedValues","halfCheckedValues","missingCheckedValues","ref","maxLevel","levelEntities","useMaxLevel","watchEffect","existValues","missingValues","keyPathValues","toPathKeys","checkedKeys","halfCheckedKeys","conductCheck","deDuplicatedValues","deduplicateKeys","formatStrategyValues","displayValues","useDisplayValues","triggerChange","nextValues","nextRawValues","valueOptions","valueCells","toPathOptions","valueOpt","option","triggerValues","triggerOptions","onInternalSelect","valuePath","toPathKey","checkedPathKeys","halfCheckedPathKeys","existInChecked","includes","existInMissing","some","nextCheckedValues","nextMissingValues","filter","nextRawCheckedKeys","key","checked","deDuplicatedKeys","onDisplayValuesChange","_","values","process","env","NODE_ENV","devWarning","mergedOpen","open","mergedDropdownStyle","mergedPlacement","onInternalDropdownVisibleChange","nextVisible","toRefs","useProvideCascader","halfValues","onSelect","selectRef","focus","blur","scrollTo","arg","pickProps","emptyOptions","dropdownMatchSelectWidth","matchInputWidth","minWidth","_createVNode","BaseSelect","OptionList","getRawInputElement"],"mappings":"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"}