{"version":3,"file":"index.cjs","sources":["../../../../../../../packages/vue-components/vc-cascader/src/OptionList/index.tsx"],"sourcesContent":["import type { EventHandler, Key } from '@antdv/types';\nimport type { DefaultOptionType, SingleValueType } from '../Cascader';\nimport {\n  computed,\n  defineComponent,\n  onMounted,\n  ref,\n  shallowRef,\n  watch,\n  watchEffect,\n} from 'vue';\nimport useBaseProps from '../../../vc-select/src/hooks/useBaseProps';\nimport { useInjectCascader } from '../context';\nimport { isLeaf, scrollIntoParentView, toPathKey, toPathKeys, toPathValueStr } from '../utils/commonUtil';\nimport { toPathOptions } from '../utils/treeUtil';\nimport Column, { FIX_LABEL } from './Column';\nimport useActive from './useActive';\nimport useKeyboard from './useKeyboard';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'OptionList',\n  inheritAttrs: false,\n  setup(_props, context) {\n    const { attrs, slots } = context;\n    const baseProps = useBaseProps();\n    const containerRef = ref<HTMLDivElement>();\n    const rtl = computed(() => baseProps.direction === 'rtl');\n    const {\n      options,\n      values,\n      halfValues,\n      fieldNames,\n      changeOnSelect,\n      onSelect,\n      searchOptions,\n      dropdownPrefixCls,\n      loadData,\n      expandTrigger,\n      customSlots,\n    } = useInjectCascader();\n\n    const mergedPrefixCls = computed(() => dropdownPrefixCls.value || baseProps.prefixCls);\n\n    // ========================= loadData =========================\n    const loadingKeys = shallowRef<string[]>([]);\n    const internalLoadData = (valueCells: Key[]) => {\n      // Do not load when search\n      if (!loadData.value || baseProps.searchValue)\n        return;\n\n      const optionList = toPathOptions(valueCells, options.value, fieldNames.value);\n      const rawOptions = optionList.map(({ option }) => option);\n      const lastOption = rawOptions[rawOptions.length - 1];\n\n      if (lastOption && !isLeaf(lastOption, fieldNames.value)) {\n        const pathKey = toPathKey(valueCells);\n\n        loadingKeys.value = [...loadingKeys.value, pathKey];\n        loadData.value(rawOptions);\n      }\n    };\n\n    watchEffect(() => {\n      if (loadingKeys.value.length) {\n        loadingKeys.value.forEach((loadingKey) => {\n          const valueStrCells = toPathValueStr(loadingKey);\n          const optionList = toPathOptions(\n            valueStrCells,\n            options.value,\n            fieldNames.value,\n            true,\n          ).map(({ option }) => option);\n          const lastOption = optionList[optionList.length - 1];\n\n          if (\n            !lastOption\n            || lastOption[fieldNames.value.children]\n            || isLeaf(lastOption, fieldNames.value)\n          ) {\n            loadingKeys.value = loadingKeys.value.filter(key => key !== loadingKey);\n          }\n        });\n      }\n    });\n\n    // ========================== Values ==========================\n    const checkedSet = computed(() => new Set(toPathKeys(values.value)));\n    const halfCheckedSet = computed(() => new Set(toPathKeys(halfValues.value)));\n\n    // ====================== Accessibility =======================\n    const [activeValueCells, setActiveValueCells] = useActive();\n\n    // =========================== Path ===========================\n    const onPathOpen = (nextValueCells: Key[]) => {\n      setActiveValueCells(nextValueCells);\n\n      // Trigger loadData\n      internalLoadData(nextValueCells);\n    };\n\n    const isSelectable = (option: DefaultOptionType) => {\n      const { disabled } = option;\n\n      const isMergedLeaf = isLeaf(option, fieldNames.value);\n      return !disabled && (isMergedLeaf || changeOnSelect.value || baseProps.multiple);\n    };\n\n    const onPathSelect = (valuePath: SingleValueType, leaf: boolean, fromKeyboard = false) => {\n      onSelect(valuePath);\n\n      if (\n        !baseProps.multiple\n        && (leaf || (changeOnSelect.value && (expandTrigger.value === 'hover' || fromKeyboard)))\n      ) {\n        baseProps.toggleOpen(false);\n      }\n    };\n\n    // ========================== Option ==========================\n    const mergedOptions = computed(() => {\n      if (baseProps.searchValue)\n        return searchOptions.value;\n\n      return options.value;\n    });\n\n    // ========================== Column ==========================\n    const optionColumns = computed(() => {\n      const optionList = [{ options: mergedOptions.value }];\n      let currentList = mergedOptions.value;\n      for (let i = 0; i < activeValueCells.value.length; i += 1) {\n        const activeValueCell = activeValueCells.value[i];\n        const currentOption = currentList.find(\n          option => option[fieldNames.value.value] === activeValueCell,\n        );\n\n        const subOptions = currentOption?.[fieldNames.value.children];\n        if (!subOptions?.length)\n          break;\n\n        currentList = subOptions;\n        optionList.push({ options: subOptions });\n      }\n\n      return optionList;\n    });\n\n    // ========================= Keyboard =========================\n    const onKeyboardSelect = (selectValueCells: SingleValueType, option: DefaultOptionType) => {\n      if (isSelectable(option))\n        onPathSelect(selectValueCells, isLeaf(option, fieldNames.value), true);\n    };\n\n    useKeyboard(context, mergedOptions, fieldNames, activeValueCells, onPathOpen, onKeyboardSelect);\n    const onListMouseDown: EventHandler = (event) => {\n      event.preventDefault();\n    };\n    onMounted(() => {\n      watch(\n        activeValueCells,\n        (cells) => {\n          for (let i = 0; i < cells.length; i += 1) {\n            const cellPath = cells.slice(0, i + 1);\n            const cellKeyPath = toPathKey(cellPath);\n            const ele = containerRef.value?.querySelector<HTMLElement>(\n              `li[data-path-key=\"${cellKeyPath.replace(/\\\\{0,2}\"/g, '\\\\\"')}\"]`, // matches unescaped double quotes\n            );\n            if (ele)\n              scrollIntoParentView(ele);\n          }\n        },\n        { flush: 'post', immediate: true },\n      );\n    });\n\n    return () => {\n      // ========================== Render ==========================\n      const {\n        notFoundContent = slots.notFoundContent?.() || customSlots.value.notFoundContent?.(),\n        multiple,\n        toggleOpen,\n      } = baseProps;\n      // >>>>> Empty\n      const isEmpty = !optionColumns.value[0]?.options?.length;\n\n      const emptyList: DefaultOptionType[] = [\n        {\n          [fieldNames.value.value as 'value']: '__EMPTY__',\n          [FIX_LABEL as 'label']: notFoundContent,\n          disabled: true,\n        },\n      ];\n      const columnProps = {\n        ...attrs,\n        multiple: !isEmpty && multiple,\n        onSelect: onPathSelect,\n        onActive: onPathOpen,\n        onToggleOpen: toggleOpen,\n        checkedSet: checkedSet.value,\n        halfCheckedSet: halfCheckedSet.value,\n        loadingKeys: loadingKeys.value,\n        isSelectable,\n      };\n\n      // >>>>> Columns\n      const mergedOptionColumns = isEmpty ? [{ options: emptyList }] : optionColumns.value;\n\n      const columnNodes = mergedOptionColumns.map((col, index) => {\n        const prevValuePath = activeValueCells.value.slice(0, index);\n        const activeValue = activeValueCells.value[index];\n\n        return (\n          <Column\n            key={index}\n            {...columnProps}\n            prefixCls={mergedPrefixCls.value}\n            options={col.options}\n            prevValuePath={prevValuePath}\n            activeValue={activeValue}\n          />\n        );\n      });\n      return (\n        <div\n          class={[\n            `${mergedPrefixCls.value}-menus`,\n            {\n              [`${mergedPrefixCls.value}-menu-empty`]: isEmpty,\n              [`${mergedPrefixCls.value}-rtl`]: rtl.value,\n            },\n          ]}\n          onMousedown={onListMouseDown}\n          ref={containerRef}\n        >\n          {columnNodes}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","setup","_props","context","attrs","slots","baseProps","useBaseProps","containerRef","ref","rtl","computed","direction","options","values","halfValues","fieldNames","changeOnSelect","onSelect","searchOptions","dropdownPrefixCls","loadData","expandTrigger","customSlots","useInjectCascader","mergedPrefixCls","value","prefixCls","loadingKeys","shallowRef","internalLoadData","valueCells","searchValue","optionList","toPathOptions","rawOptions","map","option","lastOption","length","isLeaf","pathKey","toPathKey","watchEffect","forEach","loadingKey","valueStrCells","toPathValueStr","children","filter","key","checkedSet","Set","toPathKeys","halfCheckedSet","activeValueCells","setActiveValueCells","useActive","onPathOpen","nextValueCells","isSelectable","disabled","isMergedLeaf","multiple","onPathSelect","valuePath","leaf","fromKeyboard","toggleOpen","mergedOptions","optionColumns","currentList","i","activeValueCell","currentOption","find","subOptions","push","onKeyboardSelect","selectValueCells","useKeyboard","onListMouseDown","event","preventDefault","onMounted","watch","cells","cellPath","slice","cellKeyPath","ele","querySelector","replace","scrollIntoParentView","flush","immediate","notFoundContent","isEmpty","emptyList","FIX_LABEL","columnProps","onActive","onToggleOpen","mergedOptionColumns","columnNodes","col","index","prevValuePath","activeValue","_createVNode","Column"],"mappings":"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"}