@element-plus/nightly 0.0.20260223 → 0.0.20260225
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +1 -1
- package/dist/index.full.js +15 -8
- package/dist/index.full.min.js +8 -8
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +7 -7
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +15 -8
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar-eg.js +1 -1
- package/dist/locale/ar-eg.min.js +1 -1
- package/dist/locale/ar-eg.min.mjs +1 -1
- package/dist/locale/ar-eg.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/az.js +1 -1
- package/dist/locale/az.min.js +1 -1
- package/dist/locale/az.min.mjs +1 -1
- package/dist/locale/az.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/ckb.js +1 -1
- package/dist/locale/ckb.min.js +1 -1
- package/dist/locale/ckb.min.mjs +1 -1
- package/dist/locale/ckb.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hi.js +1 -1
- package/dist/locale/hi.min.js +1 -1
- package/dist/locale/hi.min.mjs +1 -1
- package/dist/locale/hi.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lo.js +1 -1
- package/dist/locale/lo.min.js +1 -1
- package/dist/locale/lo.min.mjs +1 -1
- package/dist/locale/lo.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mg.js +1 -1
- package/dist/locale/mg.min.js +1 -1
- package/dist/locale/mg.min.mjs +1 -1
- package/dist/locale/mg.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/ms.js +1 -1
- package/dist/locale/ms.min.js +1 -1
- package/dist/locale/ms.min.mjs +1 -1
- package/dist/locale/ms.mjs +1 -1
- package/dist/locale/my.js +1 -1
- package/dist/locale/my.min.js +1 -1
- package/dist/locale/my.min.mjs +1 -1
- package/dist/locale/my.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/no.js +1 -1
- package/dist/locale/no.min.js +1 -1
- package/dist/locale/no.min.mjs +1 -1
- package/dist/locale/no.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/sw.js +1 -1
- package/dist/locale/sw.min.js +1 -1
- package/dist/locale/sw.min.mjs +1 -1
- package/dist/locale/sw.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/te.js +1 -1
- package/dist/locale/te.min.js +1 -1
- package/dist/locale/te.min.mjs +1 -1
- package/dist/locale/te.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-hk.js +1 -1
- package/dist/locale/zh-hk.min.js +1 -1
- package/dist/locale/zh-hk.min.mjs +1 -1
- package/dist/locale/zh-hk.mjs +1 -1
- package/dist/locale/zh-mo.js +1 -1
- package/dist/locale/zh-mo.min.js +1 -1
- package/dist/locale/zh-mo.min.mjs +1 -1
- package/dist/locale/zh-mo.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/components/select/src/useSelect.mjs +1 -1
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/src/useSelect.mjs +1 -1
- package/es/components/select-v2/src/useSelect.mjs.map +1 -1
- package/es/components/tree/src/tree-node.vue.mjs.map +1 -1
- package/es/components/tree/src/tree-node.vue2.mjs +1 -1
- package/es/components/tree/src/tree-node.vue2.mjs.map +1 -1
- package/es/components/tree/src/tree.vue.mjs.map +1 -1
- package/es/components/tree/src/tree.vue2.mjs +1 -1
- package/es/components/tree/src/tree.vue2.mjs.map +1 -1
- package/es/components/upload/src/ajax.mjs +10 -3
- package/es/components/upload/src/ajax.mjs.map +1 -1
- package/es/components/upload/src/upload.d.ts +1 -1
- package/es/components/upload/src/upload.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/select/src/useSelect.js +1 -1
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/src/useSelect.js +1 -1
- package/lib/components/select-v2/src/useSelect.js.map +1 -1
- package/lib/components/tree/src/tree-node.vue.js.map +1 -1
- package/lib/components/tree/src/tree-node.vue2.js +1 -1
- package/lib/components/tree/src/tree-node.vue2.js.map +1 -1
- package/lib/components/tree/src/tree.vue.js.map +1 -1
- package/lib/components/tree/src/tree.vue2.js +1 -1
- package/lib/components/tree/src/tree.vue2.js.map +1 -1
- package/lib/components/upload/src/ajax.js +9 -2
- package/lib/components/upload/src/ajax.js.map +1 -1
- package/lib/components/upload/src/upload.d.ts +1 -1
- package/lib/components/upload/src/upload.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/theme-chalk/el-checkbox-button.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/checkbox-button.scss +6 -0
- package/theme-chalk/src/common/var.scss +1 -0
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.vue2.mjs","sources":["../../../../../../packages/components/tree/src/tree.vue"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n :class=\"[\n ns.b(),\n ns.is('dragging', !!dragState.draggingNode),\n ns.is('drop-not-allow', !dragState.allowDrop),\n ns.is('drop-inner', dragState.dropType === 'inner'),\n { [ns.m('highlight-current')]: highlightCurrent },\n ]\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" :class=\"ns.e('empty-block')\">\n <slot name=\"empty\">\n <span :class=\"ns.e('empty-text')\">\n {{ emptyText ?? t('el.tree.emptyText') }}\n </span>\n </slot>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n :class=\"ns.e('drop-indicator')\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { formItemContextKey } from '@element-plus/components/form'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport { ROOT_TREE_INJECTION_KEY } from './tokens'\nimport { treeEmits, treeProps } from './tree'\n\nimport type Node from './model/node'\nimport type { ComponentInternalInstance } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type { FilterValue, TreeData, TreeKey, TreeNodeData } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: treeProps,\n emits: treeEmits,\n setup(props, ctx) {\n const { t } = useLocale()\n const ns = useNamespace('tree')\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node | null>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const instance = getCurrentInstance()\n\n const isSelectTree = computed(() => {\n let parent = instance?.parent\n while (parent) {\n if (parent.type.name === 'ElTreeSelect') {\n return true\n }\n parent = parent.parent\n }\n return false\n })\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n (!childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)) &&\n !isSelectTree.value\n )\n })\n\n watch(\n () => props.currentNodeKey,\n (newVal) => {\n store.value.setCurrentNodeKey(newVal ?? null)\n }\n )\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal, oldVal) => {\n if (isEqual(newVal, oldVal)) return\n\n store.value.setDefaultCheckedKey(newVal ?? [])\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.setDefaultExpandedKeys(newVal ?? [])\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value: FilterValue) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return getNodeKeyUtil(props.nodeKey, node.data)\n }\n\n const requireNodeKey = (methodName: string) => {\n if (!props.nodeKey) {\n throw new Error(`[Tree] nodeKey is required in ${methodName}`)\n }\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n requireNodeKey('getNodePath')\n\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly?: boolean,\n includeHalfChecked?: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly?: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = () => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): TreeKey | null => {\n requireNodeKey('getCurrentKey')\n\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey!] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedNodes')\n\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys: TreeKey[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedKeys')\n\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n requireNodeKey('setCurrentNode')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded(node)\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n })\n }\n\n const setCurrentKey = (\n key: TreeKey | null = null,\n shouldAutoExpandParent = true\n ) => {\n requireNodeKey('setCurrentKey')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded()\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n })\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n requireNodeKey('updateKeyChildren')\n\n store.value.updateChildren(key, data)\n }\n\n provide(ROOT_TREE_INJECTION_KEY, {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance,\n })\n\n provide(formItemContextKey, undefined)\n\n return {\n ns,\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["getNodeKey","getNodeKeyUtil","currentNode","instance"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree.vue2.mjs","sources":["../../../../../../packages/components/tree/src/tree.vue"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n :class=\"[\n ns.b(),\n ns.is('dragging', !!dragState.draggingNode),\n ns.is('drop-not-allow', !dragState.allowDrop),\n ns.is('drop-inner', dragState.dropType === 'inner'),\n { [ns.m('highlight-current')]: highlightCurrent },\n ]\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" :class=\"ns.e('empty-block')\">\n <slot name=\"empty\">\n <span :class=\"ns.e('empty-text')\">\n {{ emptyText ?? t('el.tree.emptyText') }}\n </span>\n </slot>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n :class=\"ns.e('drop-indicator')\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { formItemContextKey } from '@element-plus/components/form'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil, handleCurrentChange } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport { ROOT_TREE_INJECTION_KEY } from './tokens'\nimport { treeEmits, treeProps } from './tree'\n\nimport type Node from './model/node'\nimport type { ComponentInternalInstance } from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type { FilterValue, TreeData, TreeKey, TreeNodeData } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: treeProps,\n emits: treeEmits,\n setup(props, ctx) {\n const { t } = useLocale()\n const ns = useNamespace('tree')\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node | null>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const instance = getCurrentInstance()\n\n const isSelectTree = computed(() => {\n let parent = instance?.parent\n while (parent) {\n if (parent.type.name === 'ElTreeSelect') {\n return true\n }\n parent = parent.parent\n }\n return false\n })\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n (!childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)) &&\n !isSelectTree.value\n )\n })\n\n watch(\n () => props.currentNodeKey,\n (newVal) => {\n store.value.setCurrentNodeKey(newVal ?? null)\n }\n )\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal, oldVal) => {\n if (isEqual(newVal, oldVal)) return\n\n store.value.setDefaultCheckedKey(newVal ?? [])\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.setDefaultExpandedKeys(newVal ?? [])\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value: FilterValue) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return props.nodeKey ? getNodeKeyUtil(props.nodeKey, node.data) : node.id\n }\n\n const requireNodeKey = (methodName: string) => {\n if (!props.nodeKey) {\n throw new Error(`[Tree] nodeKey is required in ${methodName}`)\n }\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n requireNodeKey('getNodePath')\n\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly?: boolean,\n includeHalfChecked?: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly?: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = () => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): TreeKey | null => {\n requireNodeKey('getCurrentKey')\n\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey!] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedNodes')\n\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys: TreeKey[], leafOnly?: boolean) => {\n requireNodeKey('setCheckedKeys')\n\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n requireNodeKey('setCurrentNode')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded(node)\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n })\n }\n\n const setCurrentKey = (\n key: TreeKey | null = null,\n shouldAutoExpandParent = true\n ) => {\n requireNodeKey('setCurrentKey')\n\n handleCurrentChange(store, ctx.emit, () => {\n broadcastExpanded()\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n })\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData | Node\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n requireNodeKey('updateKeyChildren')\n\n store.value.updateChildren(key, data)\n }\n\n provide(ROOT_TREE_INJECTION_KEY, {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance,\n })\n\n provide(formItemContextKey, undefined)\n\n return {\n ns,\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["getNodeKey","getNodeKeyUtil","currentNode","instance"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isNil } from 'lodash-unified';
|
|
2
2
|
import { throwError } from '../../../utils/error.mjs';
|
|
3
|
-
import { isArray } from '@vue/shared';
|
|
3
|
+
import { isArray, isString } from '@vue/shared';
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
6
6
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -55,8 +55,15 @@ const ajaxUpload = (option) => {
|
|
|
55
55
|
const formData = new FormData();
|
|
56
56
|
if (option.data) {
|
|
57
57
|
for (const [key, value] of Object.entries(option.data)) {
|
|
58
|
-
if (isArray(value)
|
|
59
|
-
|
|
58
|
+
if (isArray(value)) {
|
|
59
|
+
if (value.length === 2 && value[0] instanceof Blob && isString(value[1])) {
|
|
60
|
+
formData.append(key, value[0], value[1]);
|
|
61
|
+
} else {
|
|
62
|
+
value.forEach((item) => {
|
|
63
|
+
formData.append(key, item);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
} else formData.append(key, value);
|
|
60
67
|
}
|
|
61
68
|
}
|
|
62
69
|
formData.append(option.filename, option.file, option.file.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ajax.mjs","sources":["../../../../../../packages/components/upload/src/ajax.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { isArray, throwError } from '@element-plus/utils'\n\nimport type {\n UploadProgressEvent,\n UploadRequestHandler,\n UploadRequestOptions,\n} from './upload'\n\nconst SCOPE = 'ElUpload'\n\nexport class UploadAjaxError extends Error {\n name = 'UploadAjaxError'\n status: number\n method: string\n url: string\n\n constructor(message: string, status: number, method: string, url: string) {\n super(message)\n this.status = status\n this.method = method\n this.url = url\n }\n}\n\nfunction getError(\n action: string,\n option: UploadRequestOptions,\n xhr: XMLHttpRequest\n) {\n let msg: string\n if (xhr.response) {\n msg = `${xhr.response.error || xhr.response}`\n } else if (xhr.responseText) {\n msg = `${xhr.responseText}`\n } else {\n msg = `fail to ${option.method} ${action} ${xhr.status}`\n }\n\n return new UploadAjaxError(msg, xhr.status, option.method, action)\n}\n\nfunction getBody(xhr: XMLHttpRequest): XMLHttpRequestResponseType {\n const text = xhr.responseText || xhr.response\n if (!text) {\n return text\n }\n\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n}\n\nexport const ajaxUpload: UploadRequestHandler = (option) => {\n if (typeof XMLHttpRequest === 'undefined')\n throwError(SCOPE, 'XMLHttpRequest is undefined')\n\n const xhr = new XMLHttpRequest()\n const action = option.action\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', (evt) => {\n const progressEvt = evt as UploadProgressEvent\n progressEvt.percent = evt.total > 0 ? (evt.loaded / evt.total) * 100 : 0\n option.onProgress(progressEvt)\n })\n }\n\n const formData = new FormData()\n if (option.data) {\n for (const [key, value] of Object.entries(option.data)) {\n if (isArray(value)
|
|
1
|
+
{"version":3,"file":"ajax.mjs","sources":["../../../../../../packages/components/upload/src/ajax.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { isArray, isString, throwError } from '@element-plus/utils'\n\nimport type {\n UploadProgressEvent,\n UploadRequestHandler,\n UploadRequestOptions,\n} from './upload'\n\nconst SCOPE = 'ElUpload'\n\nexport class UploadAjaxError extends Error {\n name = 'UploadAjaxError'\n status: number\n method: string\n url: string\n\n constructor(message: string, status: number, method: string, url: string) {\n super(message)\n this.status = status\n this.method = method\n this.url = url\n }\n}\n\nfunction getError(\n action: string,\n option: UploadRequestOptions,\n xhr: XMLHttpRequest\n) {\n let msg: string\n if (xhr.response) {\n msg = `${xhr.response.error || xhr.response}`\n } else if (xhr.responseText) {\n msg = `${xhr.responseText}`\n } else {\n msg = `fail to ${option.method} ${action} ${xhr.status}`\n }\n\n return new UploadAjaxError(msg, xhr.status, option.method, action)\n}\n\nfunction getBody(xhr: XMLHttpRequest): XMLHttpRequestResponseType {\n const text = xhr.responseText || xhr.response\n if (!text) {\n return text\n }\n\n try {\n return JSON.parse(text)\n } catch {\n return text\n }\n}\n\nexport const ajaxUpload: UploadRequestHandler = (option) => {\n if (typeof XMLHttpRequest === 'undefined')\n throwError(SCOPE, 'XMLHttpRequest is undefined')\n\n const xhr = new XMLHttpRequest()\n const action = option.action\n\n if (xhr.upload) {\n xhr.upload.addEventListener('progress', (evt) => {\n const progressEvt = evt as UploadProgressEvent\n progressEvt.percent = evt.total > 0 ? (evt.loaded / evt.total) * 100 : 0\n option.onProgress(progressEvt)\n })\n }\n\n const formData = new FormData()\n if (option.data) {\n for (const [key, value] of Object.entries(option.data)) {\n if (isArray(value)) {\n if (\n value.length === 2 &&\n value[0] instanceof Blob &&\n isString(value[1])\n ) {\n formData.append(key, value[0], value[1])\n } else {\n value.forEach((item) => {\n formData.append(key, item)\n })\n }\n } else formData.append(key, value)\n }\n }\n formData.append(option.filename, option.file, option.file.name)\n\n xhr.addEventListener('error', () => {\n option.onError(getError(action, option, xhr))\n })\n\n xhr.addEventListener('load', () => {\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(action, option, xhr))\n }\n option.onSuccess(getBody(xhr))\n })\n\n xhr.open(option.method, action, true)\n\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true\n }\n\n const headers = option.headers || {}\n if (headers instanceof Headers) {\n headers.forEach((value, key) => xhr.setRequestHeader(key, value))\n } else {\n for (const [key, value] of Object.entries(headers)) {\n if (isNil(value)) continue\n xhr.setRequestHeader(key, String(value))\n }\n }\n\n xhr.send(formData)\n return xhr\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export interface UploadProgressEvent extends ProgressEvent {
|
|
|
14
14
|
export interface UploadRequestOptions {
|
|
15
15
|
action: string;
|
|
16
16
|
method: string;
|
|
17
|
-
data: Record<string, string | Blob | [Blob, string]>;
|
|
17
|
+
data: Record<string, string | Blob | [string | Blob, string] | string[]>;
|
|
18
18
|
filename: string;
|
|
19
19
|
file: UploadRawFile;
|
|
20
20
|
headers: Headers | Record<string, string | number | null | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.mjs","sources":["../../../../../../packages/components/upload/src/upload.ts"],"sourcesContent":["import { NOOP, buildProps, definePropType, mutable } from '@element-plus/utils'\nimport { ajaxUpload } from './ajax'\n\nimport type { Awaitable, Mutable } from '@element-plus/utils'\nimport type { UploadAjaxError } from './ajax'\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Upload from './upload.vue'\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadListTypes = ['text', 'picture', 'picture-card'] as const\n\nlet fileId = 1\nexport const genFileId = () => Date.now() + fileId++\n\nexport type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'\nexport interface UploadProgressEvent extends ProgressEvent {\n percent: number\n}\n\nexport interface UploadRequestOptions {\n action: string\n method: string\n data: Record<string, string | Blob | [Blob, string]>\n filename: string\n file: UploadRawFile\n headers: Headers | Record<string, string | number | null | undefined>\n onError: (evt: UploadAjaxError) => void\n onProgress: (evt: UploadProgressEvent) => void\n onSuccess: (response: any) => void\n withCredentials: boolean\n}\nexport interface UploadFile {\n name: string\n percentage?: number\n status: UploadStatus\n size?: number\n response?: unknown\n uid: number\n url?: string\n raw?: UploadRawFile\n}\nexport type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> &\n Partial<Pick<UploadFile, 'status' | 'uid'>>\n\nexport type UploadFiles = UploadFile[]\nexport interface UploadRawFile extends File {\n uid: number\n isDirectory?: boolean\n}\nexport type UploadRequestHandler = (\n options: UploadRequestOptions\n) => XMLHttpRequest | Promise<unknown>\nexport interface UploadHooks {\n beforeUpload: (\n rawFile: UploadRawFile\n ) => Awaitable<void | undefined | null | boolean | File | Blob>\n beforeRemove: (\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => Awaitable<boolean>\n onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onPreview: (uploadFile: UploadFile) => void\n onSuccess: (\n response: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onProgress: (\n evt: UploadProgressEvent,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onError: (\n error: Error,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void\n}\n\nexport type UploadData = Mutable<Record<string, any>>\n\nexport type ListType = 'text' | 'picture' | 'picture-card'\nexport type Crossorigin = 'anonymous' | 'use-credentials' | ''\n\nexport interface UploadBaseProps {\n /**\n * @description request URL\n */\n action?: string\n /**\n * @description request headers\n */\n headers?: Headers | Record<string, any>\n /**\n * @description set upload request method\n */\n method?: string\n /**\n * @description additions options of request\n */\n data?:\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple?: boolean\n /**\n * @description key name for uploaded file\n */\n name?: string\n /**\n * @description whether to activate drag and drop mode\n */\n drag?: boolean\n /**\n * @description whether cookies are sent\n */\n withCredentials?: boolean\n /**\n * @description whether to show the uploaded file list\n */\n showFileList?: boolean\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept?: string\n /**\n * @description default uploaded files\n */\n fileList?: UploadUserFile[]\n /**\n * @description whether to auto upload file\n */\n autoUpload?: boolean\n /**\n * @description type of file list\n */\n listType?: ListType\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest?: UploadRequestHandler\n /**\n * @description whether to disable upload\n */\n disabled?: boolean\n /**\n * @description maximum number of uploads allowed\n */\n limit?: number\n /**\n * @description whether to support uploading directory\n */\n directory?: boolean\n}\n\nexport interface UploadProps extends UploadBaseProps {\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload?: UploadHooks['beforeUpload']\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove?: UploadHooks['beforeRemove']\n /**\n * @description hook function when files are removed\n */\n onRemove?: UploadHooks['onRemove']\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange?: UploadHooks['onChange']\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview?: UploadHooks['onPreview']\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess?: UploadHooks['onSuccess']\n /**\n * @description hook function when some progress occurs\n */\n onProgress?: UploadHooks['onProgress']\n /**\n * @description hook function when some errors occurs\n */\n onError?: UploadHooks['onError']\n /**\n * @description hook function when limit is exceeded\n */\n onExceed?: UploadHooks['onExceed']\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin?: Crossorigin\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadBaseProps` instead.\n */\nexport const uploadBaseProps = buildProps({\n /**\n * @description request URL\n */\n action: {\n type: String,\n default: '#',\n },\n /**\n * @description request headers\n */\n headers: {\n type: definePropType<Headers | Record<string, any>>(Object),\n },\n /**\n * @description set upload request method\n */\n method: {\n type: String,\n default: 'post',\n },\n /**\n * @description additions options of request\n */\n data: {\n type: definePropType<\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n >([Object, Function, Promise]),\n default: () => mutable({} as const),\n },\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple: Boolean,\n /**\n * @description key name for uploaded file\n */\n name: {\n type: String,\n default: 'file',\n },\n /**\n * @description whether to activate drag and drop mode\n */\n drag: Boolean,\n /**\n * @description whether cookies are sent\n */\n withCredentials: Boolean,\n /**\n * @description whether to show the uploaded file list\n */\n showFileList: {\n type: Boolean,\n default: true,\n },\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept: {\n type: String,\n default: '',\n },\n /**\n * @description default uploaded files\n */\n fileList: {\n type: definePropType<UploadUserFile[]>(Array),\n default: () => mutable([] as const),\n },\n /**\n * @description whether to auto upload file\n */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /**\n * @description type of file list\n */\n listType: {\n type: String,\n values: uploadListTypes,\n default: 'text',\n },\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest: {\n type: definePropType<UploadRequestHandler>(Function),\n default: ajaxUpload,\n },\n /**\n * @description whether to disable upload\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description maximum number of uploads allowed\n */\n limit: Number,\n /**\n * @description whether to support uploading directory\n */\n directory: Boolean,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadProps = buildProps({\n ...uploadBaseProps,\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove: {\n type: definePropType<UploadHooks['beforeRemove']>(Function),\n },\n /**\n * @description hook function when files are removed\n */\n onRemove: {\n type: definePropType<UploadHooks['onRemove']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange: {\n type: definePropType<UploadHooks['onChange']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview: {\n type: definePropType<UploadHooks['onPreview']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess: {\n type: definePropType<UploadHooks['onSuccess']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some progress occurs\n */\n onProgress: {\n type: definePropType<UploadHooks['onProgress']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some errors occurs\n */\n onError: {\n type: definePropType<UploadHooks['onError']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when limit is exceeded\n */\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin: {\n type: definePropType<'anonymous' | 'use-credentials' | ''>(String),\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>\n\nexport type UploadInstance = InstanceType<typeof Upload> & unknown\n\nexport const uploadBasePropsDefaults = {\n action: '#',\n method: 'post',\n data: () => mutable({}),\n name: 'file',\n showFileList: true,\n accept: '',\n fileList: () => mutable([]),\n autoUpload: true,\n listType: 'text',\n httpRequest: ajaxUpload,\n disabled: undefined,\n} as const\n\nexport const uploadPropsDefaults = {\n ...uploadBasePropsDefaults,\n beforeUpload: NOOP,\n onRemove: NOOP,\n onChange: NOOP,\n onPreview: NOOP,\n onSuccess: NOOP,\n onProgress: NOOP,\n onError: NOOP,\n onExceed: NOOP,\n} as const\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upload.mjs","sources":["../../../../../../packages/components/upload/src/upload.ts"],"sourcesContent":["import { NOOP, buildProps, definePropType, mutable } from '@element-plus/utils'\nimport { ajaxUpload } from './ajax'\n\nimport type { Awaitable, Mutable } from '@element-plus/utils'\nimport type { UploadAjaxError } from './ajax'\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type Upload from './upload.vue'\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadListTypes = ['text', 'picture', 'picture-card'] as const\n\nlet fileId = 1\nexport const genFileId = () => Date.now() + fileId++\n\nexport type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'\nexport interface UploadProgressEvent extends ProgressEvent {\n percent: number\n}\n\nexport interface UploadRequestOptions {\n action: string\n method: string\n data: Record<string, string | Blob | [string | Blob, string] | string[]>\n filename: string\n file: UploadRawFile\n headers: Headers | Record<string, string | number | null | undefined>\n onError: (evt: UploadAjaxError) => void\n onProgress: (evt: UploadProgressEvent) => void\n onSuccess: (response: any) => void\n withCredentials: boolean\n}\nexport interface UploadFile {\n name: string\n percentage?: number\n status: UploadStatus\n size?: number\n response?: unknown\n uid: number\n url?: string\n raw?: UploadRawFile\n}\nexport type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> &\n Partial<Pick<UploadFile, 'status' | 'uid'>>\n\nexport type UploadFiles = UploadFile[]\nexport interface UploadRawFile extends File {\n uid: number\n isDirectory?: boolean\n}\nexport type UploadRequestHandler = (\n options: UploadRequestOptions\n) => XMLHttpRequest | Promise<unknown>\nexport interface UploadHooks {\n beforeUpload: (\n rawFile: UploadRawFile\n ) => Awaitable<void | undefined | null | boolean | File | Blob>\n beforeRemove: (\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => Awaitable<boolean>\n onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void\n onPreview: (uploadFile: UploadFile) => void\n onSuccess: (\n response: any,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onProgress: (\n evt: UploadProgressEvent,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onError: (\n error: Error,\n uploadFile: UploadFile,\n uploadFiles: UploadFiles\n ) => void\n onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void\n}\n\nexport type UploadData = Mutable<Record<string, any>>\n\nexport type ListType = 'text' | 'picture' | 'picture-card'\nexport type Crossorigin = 'anonymous' | 'use-credentials' | ''\n\nexport interface UploadBaseProps {\n /**\n * @description request URL\n */\n action?: string\n /**\n * @description request headers\n */\n headers?: Headers | Record<string, any>\n /**\n * @description set upload request method\n */\n method?: string\n /**\n * @description additions options of request\n */\n data?:\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple?: boolean\n /**\n * @description key name for uploaded file\n */\n name?: string\n /**\n * @description whether to activate drag and drop mode\n */\n drag?: boolean\n /**\n * @description whether cookies are sent\n */\n withCredentials?: boolean\n /**\n * @description whether to show the uploaded file list\n */\n showFileList?: boolean\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept?: string\n /**\n * @description default uploaded files\n */\n fileList?: UploadUserFile[]\n /**\n * @description whether to auto upload file\n */\n autoUpload?: boolean\n /**\n * @description type of file list\n */\n listType?: ListType\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest?: UploadRequestHandler\n /**\n * @description whether to disable upload\n */\n disabled?: boolean\n /**\n * @description maximum number of uploads allowed\n */\n limit?: number\n /**\n * @description whether to support uploading directory\n */\n directory?: boolean\n}\n\nexport interface UploadProps extends UploadBaseProps {\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload?: UploadHooks['beforeUpload']\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove?: UploadHooks['beforeRemove']\n /**\n * @description hook function when files are removed\n */\n onRemove?: UploadHooks['onRemove']\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange?: UploadHooks['onChange']\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview?: UploadHooks['onPreview']\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess?: UploadHooks['onSuccess']\n /**\n * @description hook function when some progress occurs\n */\n onProgress?: UploadHooks['onProgress']\n /**\n * @description hook function when some errors occurs\n */\n onError?: UploadHooks['onError']\n /**\n * @description hook function when limit is exceeded\n */\n onExceed?: UploadHooks['onExceed']\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin?: Crossorigin\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadBaseProps` instead.\n */\nexport const uploadBaseProps = buildProps({\n /**\n * @description request URL\n */\n action: {\n type: String,\n default: '#',\n },\n /**\n * @description request headers\n */\n headers: {\n type: definePropType<Headers | Record<string, any>>(Object),\n },\n /**\n * @description set upload request method\n */\n method: {\n type: String,\n default: 'post',\n },\n /**\n * @description additions options of request\n */\n data: {\n type: definePropType<\n | Awaitable<UploadData>\n | ((rawFile: UploadRawFile) => Awaitable<UploadData>)\n >([Object, Function, Promise]),\n default: () => mutable({} as const),\n },\n /**\n * @description whether uploading multiple files is permitted\n */\n multiple: Boolean,\n /**\n * @description key name for uploaded file\n */\n name: {\n type: String,\n default: 'file',\n },\n /**\n * @description whether to activate drag and drop mode\n */\n drag: Boolean,\n /**\n * @description whether cookies are sent\n */\n withCredentials: Boolean,\n /**\n * @description whether to show the uploaded file list\n */\n showFileList: {\n type: Boolean,\n default: true,\n },\n /**\n * @description accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept), will not work when `thumbnail-mode === true`\n */\n accept: {\n type: String,\n default: '',\n },\n /**\n * @description default uploaded files\n */\n fileList: {\n type: definePropType<UploadUserFile[]>(Array),\n default: () => mutable([] as const),\n },\n /**\n * @description whether to auto upload file\n */\n autoUpload: {\n type: Boolean,\n default: true,\n },\n /**\n * @description type of file list\n */\n listType: {\n type: String,\n values: uploadListTypes,\n default: 'text',\n },\n /**\n * @description override default xhr behavior, allowing you to implement your own upload-file's request\n */\n httpRequest: {\n type: definePropType<UploadRequestHandler>(Function),\n default: ajaxUpload,\n },\n /**\n * @description whether to disable upload\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description maximum number of uploads allowed\n */\n limit: Number,\n /**\n * @description whether to support uploading directory\n */\n directory: Boolean,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport const uploadProps = buildProps({\n ...uploadBaseProps,\n /**\n * @description hook function before uploading with the file to be uploaded as its parameter. If `false` is returned or a `Promise` is returned and then is rejected, uploading will be aborted\n */\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function before removing a file with the file and file list as its parameters. If `false` is returned or a `Promise` is returned and then is rejected, removing will be aborted\n */\n beforeRemove: {\n type: definePropType<UploadHooks['beforeRemove']>(Function),\n },\n /**\n * @description hook function when files are removed\n */\n onRemove: {\n type: definePropType<UploadHooks['onRemove']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when select file or upload file success or upload file fail\n */\n onChange: {\n type: definePropType<UploadHooks['onChange']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when clicking the uploaded files\n */\n onPreview: {\n type: definePropType<UploadHooks['onPreview']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when uploaded successfully\n */\n onSuccess: {\n type: definePropType<UploadHooks['onSuccess']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some progress occurs\n */\n onProgress: {\n type: definePropType<UploadHooks['onProgress']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when some errors occurs\n */\n onError: {\n type: definePropType<UploadHooks['onError']>(Function),\n default: NOOP,\n },\n /**\n * @description hook function when limit is exceeded\n */\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n /**\n * @description set HTML attribute: crossorigin.\n */\n crossorigin: {\n type: definePropType<'anonymous' | 'use-credentials' | ''>(String),\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `UploadProps` instead.\n */\nexport type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>\n\nexport type UploadInstance = InstanceType<typeof Upload> & unknown\n\nexport const uploadBasePropsDefaults = {\n action: '#',\n method: 'post',\n data: () => mutable({}),\n name: 'file',\n showFileList: true,\n accept: '',\n fileList: () => mutable([]),\n autoUpload: true,\n listType: 'text',\n httpRequest: ajaxUpload,\n disabled: undefined,\n} as const\n\nexport const uploadPropsDefaults = {\n ...uploadBasePropsDefaults,\n beforeUpload: NOOP,\n onRemove: NOOP,\n onChange: NOOP,\n onPreview: NOOP,\n onSuccess: NOOP,\n onProgress: NOOP,\n onError: NOOP,\n onExceed: NOOP,\n} as const\n"],"names":[],"mappings":";;;;;AAWO,MAAM,eAAA,GAAkB,CAAC,MAAA,EAAQ,SAAA,EAAW,cAAc;AAEjE,IAAI,MAAA,GAAS,CAAA;AACN,MAAM,SAAA,GAAY,MAAM,IAAA,CAAK,GAAA,EAAI,GAAI,MAAA;AAiMrC,MAAM,kBAAkB,UAAA,CAAW;AAAA;AAAA;AAAA;AAAA,EAIxC,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,eAA8C,MAAM;AAAA,GAC5D;AAAA;AAAA;AAAA;AAAA,EAIA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM;AAAA,IACJ,MAAM,cAAA,CAGJ,CAAC,MAAA,EAAQ,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,IAC7B,OAAA,EAAS,MAAM,OAAA,CAAQ,EAAW;AAAA,GACpC;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU,OAAA;AAAA;AAAA;AAAA;AAAA,EAIV,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,IAAA,EAAM,OAAA;AAAA;AAAA;AAAA;AAAA,EAIN,eAAA,EAAiB,OAAA;AAAA;AAAA;AAAA;AAAA,EAIjB,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,eAAiC,KAAK,CAAA;AAAA,IAC5C,OAAA,EAAS,MAAM,OAAA,CAAQ,EAAW;AAAA,GACpC;AAAA;AAAA;AAAA;AAAA,EAIA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,MAAA,EAAQ,eAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,eAAqC,QAAQ,CAAA;AAAA,IACnD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,KAAA,EAAO,MAAA;AAAA;AAAA;AAAA;AAAA,EAIP,SAAA,EAAW;AACb,CAAU;AAKH,MAAM,cAAc,UAAA,CAAW;AAAA,EACpC,GAAG,eAAA;AAAA;AAAA;AAAA;AAAA,EAIH,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,eAA4C,QAAQ,CAAA;AAAA,IAC1D,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,eAA4C,QAAQ;AAAA,GAC5D;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,eAAwC,QAAQ,CAAA;AAAA,IACtD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,eAAwC,QAAQ,CAAA;AAAA,IACtD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,eAAyC,QAAQ,CAAA;AAAA,IACvD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,eAAyC,QAAQ,CAAA;AAAA,IACvD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,UAAA,EAAY;AAAA,IACV,IAAA,EAAM,eAA0C,QAAQ,CAAA;AAAA,IACxD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,eAAuC,QAAQ,CAAA;AAAA,IACrD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,eAAwC,QAAQ,CAAA;AAAA,IACtD,OAAA,EAAS;AAAA,GACX;AAAA;AAAA;AAAA;AAAA,EAIA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,eAAqD,MAAM;AAAA;AAErE,CAAU;AASH,MAAM,uBAAA,GAA0B;AAAA,EACrC,MAAA,EAAQ,GAAA;AAAA,EACR,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,MAAM,OAAA,CAAQ,EAAE,CAAA;AAAA,EACtB,IAAA,EAAM,MAAA;AAAA,EACN,YAAA,EAAc,IAAA;AAAA,EACd,MAAA,EAAQ,EAAA;AAAA,EACR,QAAA,EAAU,MAAM,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC1B,UAAA,EAAY,IAAA;AAAA,EACZ,QAAA,EAAU,MAAA;AAAA,EACV,WAAA,EAAa,UAAA;AAAA,EACb,QAAA,EAAU;AACZ;AAEO,MAAM,mBAAA,GAAsB;AAAA,EACjC,GAAG,uBAAA;AAAA,EACH,YAAA,EAAc,IAAA;AAAA,EACd,QAAA,EAAU,IAAA;AAAA,EACV,QAAA,EAAU,IAAA;AAAA,EACV,SAAA,EAAW,IAAA;AAAA,EACX,SAAA,EAAW,IAAA;AAAA,EACX,UAAA,EAAY,IAAA;AAAA,EACZ,OAAA,EAAS,IAAA;AAAA,EACT,QAAA,EAAU;AACZ;;;;"}
|
package/es/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.0.
|
|
1
|
+
export declare const version = "0.0.20260225";
|
package/es/version.mjs
CHANGED
package/es/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.
|
|
1
|
+
{"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20260225'\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
|
|
@@ -434,7 +434,7 @@ const useSelect = (props, emit) => {
|
|
|
434
434
|
if (option.created) {
|
|
435
435
|
handleQueryChange("");
|
|
436
436
|
}
|
|
437
|
-
if (props.filterable && !props.reserveKeyword) {
|
|
437
|
+
if (props.filterable && (option.created || !props.reserveKeyword)) {
|
|
438
438
|
states.inputValue = "";
|
|
439
439
|
}
|
|
440
440
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelect.js","sources":["../../../../../../packages/components/select/src/useSelect.ts"],"sourcesContent":["import {\n computed,\n nextTick,\n onMounted,\n reactive,\n ref,\n useSlots,\n watch,\n watchEffect,\n} from 'vue'\nimport { clamp, findLastIndex, get, isEqual, isNil } from 'lodash-unified'\nimport { useDebounceFn, useResizeObserver } from '@vueuse/core'\nimport {\n ValidateComponentsMap,\n debugWarn,\n ensureArray,\n getEventCode,\n isArray,\n isClient,\n isEmpty,\n isFunction,\n isIOS,\n isNumber,\n isObject,\n isPlainObject,\n isUndefined,\n scrollIntoView,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n MINIMUM_INPUT_WIDTH,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport {\n useComposition,\n useEmptyValues,\n useFocusController,\n useId,\n useLocale,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\n\nimport type { Component } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { ScrollbarInstance } from '@element-plus/components/scrollbar'\nimport type { SelectEmits, SelectProps } from './select'\nimport type {\n OptionBasic,\n OptionPublicInstance,\n OptionValue,\n SelectStates,\n} from './type'\n\nexport const useSelect = (props: SelectProps, emit: SelectEmits) => {\n const { t } = useLocale()\n const slots = useSlots()\n const contentId = useId()\n const nsSelect = useNamespace('select')\n const nsInput = useNamespace('input')\n\n const states = reactive<SelectStates>({\n inputValue: '',\n options: new Map(),\n cachedOptions: new Map(),\n optionValues: [], // sorted value of options\n selected: [],\n selectionWidth: 0,\n collapseItemWidth: 0,\n selectedLabel: '',\n hoveringIndex: -1,\n previousQuery: null,\n inputHovering: false,\n menuVisibleOnFocus: false,\n isBeforeHide: false,\n })\n\n // template refs\n const selectRef = ref<HTMLElement>()\n const selectionRef = ref<HTMLElement>()\n const tooltipRef = ref<TooltipInstance>()\n const tagTooltipRef = ref<TooltipInstance>()\n const inputRef = ref<HTMLInputElement>()\n const prefixRef = ref<HTMLElement>()\n const suffixRef = ref<HTMLElement>()\n const menuRef = ref<HTMLElement>()\n const tagMenuRef = ref<HTMLElement>()\n const collapseItemRef = ref<HTMLElement>()\n const scrollbarRef = ref<ScrollbarInstance>()\n // the controller of the expanded popup\n const expanded = ref(false)\n const hoverOption = ref()\n const debouncing = ref(false)\n\n const { form, formItem } = useFormItem()\n const { inputId } = useFormItemInputId(props, {\n formItemContext: formItem,\n })\n const { valueOnClear, isEmptyValue } = useEmptyValues(props)\n\n const {\n isComposing,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n } = useComposition({\n afterComposition: (e) => onInput(e),\n })\n\n const selectDisabled = useFormDisabled()\n\n const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, {\n disabled: selectDisabled,\n afterFocus() {\n if (props.automaticDropdown && !expanded.value) {\n expanded.value = true\n states.menuVisibleOnFocus = true\n }\n },\n beforeBlur(event) {\n return (\n tooltipRef.value?.isFocusInsideContent(event) ||\n tagTooltipRef.value?.isFocusInsideContent(event)\n )\n },\n afterBlur() {\n expanded.value = false\n states.menuVisibleOnFocus = false\n if (props.validateEvent) {\n formItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n },\n })\n\n const hasModelValue = computed(() => {\n return isArray(props.modelValue)\n ? props.modelValue.length > 0\n : !isEmptyValue(props.modelValue)\n })\n\n const needStatusIcon = computed(() => form?.statusIcon ?? false)\n\n const showClearBtn = computed(() => {\n return (\n props.clearable &&\n !selectDisabled.value &&\n hasModelValue.value &&\n (isFocused.value || states.inputHovering)\n )\n })\n const iconComponent = computed(() =>\n props.remote && props.filterable && !props.remoteShowSuffix\n ? ''\n : props.suffixIcon\n )\n const iconReverse = computed(() =>\n nsSelect.is('reverse', !!(iconComponent.value && expanded.value))\n )\n\n const validateState = computed(() => formItem?.validateState || '')\n const validateIcon = computed(\n () =>\n validateState.value &&\n (ValidateComponentsMap[validateState.value] as Component)\n )\n\n const debounce = computed(() => (props.remote ? props.debounce : 0))\n\n const isRemoteSearchEmpty = computed(\n () => props.remote && !states.inputValue && states.options.size === 0\n )\n\n const emptyText = computed(() => {\n if (props.loading) {\n return props.loadingText || t('el.select.loading')\n } else {\n if (\n props.filterable &&\n states.inputValue &&\n states.options.size > 0 &&\n filteredOptionsCount.value === 0\n ) {\n return props.noMatchText || t('el.select.noMatch')\n }\n if (states.options.size === 0) {\n return props.noDataText || t('el.select.noData')\n }\n }\n return null\n })\n\n const filteredOptionsCount = computed(\n () => optionsArray.value.filter((option) => option.visible).length\n )\n\n const optionsArray = computed(() => {\n const list = Array.from(states.options.values())\n const newList: OptionPublicInstance[] = []\n states.optionValues.forEach((item) => {\n const index = list.findIndex((i) => i.value === item)\n if (index > -1) {\n newList.push(list[index])\n }\n })\n return newList.length >= list.length ? newList : list\n })\n\n const cachedOptionsArray = computed(() =>\n Array.from(states.cachedOptions.values())\n )\n\n const showNewOption = computed(() => {\n const hasExistingOption = optionsArray.value\n .filter((option) => {\n return !option.created\n })\n .some((option) => {\n return option.currentLabel === states.inputValue\n })\n return (\n props.filterable &&\n props.allowCreate &&\n states.inputValue !== '' &&\n !hasExistingOption\n )\n })\n\n const updateOptions = () => {\n if (props.filterable && isFunction(props.filterMethod)) return\n if (props.filterable && props.remote && isFunction(props.remoteMethod))\n return\n optionsArray.value.forEach((option) => {\n option.updateOption?.(states.inputValue)\n })\n }\n\n const selectSize = useFormSize()\n\n const collapseTagSize = computed(() =>\n ['small'].includes(selectSize.value) ? 'small' : 'default'\n )\n\n const dropdownMenuVisible = computed({\n get() {\n return (\n expanded.value &&\n (props.loading ||\n !isRemoteSearchEmpty.value ||\n (props.remote && !!slots.empty)) &&\n (!debouncing.value || !isEmpty(states.previousQuery))\n )\n },\n set(val: boolean) {\n expanded.value = val\n },\n })\n\n const shouldShowPlaceholder = computed(() => {\n if (props.multiple && !isUndefined(props.modelValue)) {\n return ensureArray(props.modelValue).length === 0 && !states.inputValue\n }\n const value = isArray(props.modelValue)\n ? props.modelValue[0]\n : props.modelValue\n return props.filterable || isUndefined(value) ? !states.inputValue : true\n })\n\n const currentPlaceholder = computed(() => {\n const _placeholder = props.placeholder ?? t('el.select.placeholder')\n return props.multiple || !hasModelValue.value\n ? _placeholder\n : states.selectedLabel\n })\n\n // iOS Safari does not handle click events when a mouseenter event is registered and a DOM-change happens in a child\n // We use a Vue custom event binding to only register the event on non-iOS devices\n // ref.: https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n // Github Issue: https://github.com/vuejs/vue/issues/9859\n const mouseEnterEventName = computed(() => (isIOS ? null : 'mouseenter'))\n\n watch(\n () => props.modelValue,\n (val, oldVal) => {\n if (props.multiple) {\n if (props.filterable && !props.reserveKeyword) {\n states.inputValue = ''\n handleQueryChange('')\n }\n }\n setSelected()\n if (!isEqual(val, oldVal) && props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n },\n {\n flush: 'post',\n deep: true,\n }\n )\n\n watch(\n () => expanded.value,\n (val) => {\n if (val) {\n handleQueryChange(states.inputValue)\n } else {\n states.inputValue = ''\n states.previousQuery = null\n states.isBeforeHide = true\n states.menuVisibleOnFocus = false\n }\n }\n )\n\n watch(\n // fix `Array.prototype.push/splice/..` cannot trigger non-deep watcher\n // https://github.com/vuejs/vue-next/issues/2116\n () => states.options.entries(),\n () => {\n if (!isClient) return\n // tooltipRef.value?.updatePopper?.()\n setSelected()\n if (\n props.defaultFirstOption &&\n (props.filterable || props.remote) &&\n filteredOptionsCount.value\n ) {\n checkDefaultFirstOption()\n }\n },\n {\n flush: 'post',\n }\n )\n\n watch([() => states.hoveringIndex, optionsArray], ([val]) => {\n if (isNumber(val) && val > -1) {\n hoverOption.value = optionsArray.value[val] || {}\n } else {\n hoverOption.value = {}\n }\n optionsArray.value.forEach((option) => {\n option.hover = hoverOption.value === option\n })\n })\n\n watchEffect(() => {\n // Anything could cause options changed, then update options\n // If you want to control it by condition, write here\n if (states.isBeforeHide) return\n updateOptions()\n })\n\n const handleQueryChange = (val: string) => {\n if (states.previousQuery === val || isComposing.value) {\n return\n }\n states.previousQuery = val\n if (props.filterable && isFunction(props.filterMethod)) {\n props.filterMethod(val)\n } else if (\n props.filterable &&\n props.remote &&\n isFunction(props.remoteMethod)\n ) {\n props.remoteMethod(val)\n }\n if (\n props.defaultFirstOption &&\n (props.filterable || props.remote) &&\n filteredOptionsCount.value\n ) {\n nextTick(checkDefaultFirstOption)\n } else {\n nextTick(updateHoveringIndex)\n }\n }\n\n /**\n * find and highlight first option as default selected\n * @remark\n * - if the first option in dropdown list is user-created,\n * it would be at the end of the optionsArray\n * so find it and set hover.\n * (NOTE: there must be only one user-created option in dropdown list with query)\n * - if there's no user-created option in list, just find the first one as usual\n * (NOTE: exclude options that are disabled or in disabled-group)\n */\n const checkDefaultFirstOption = () => {\n const optionsInDropdown = optionsArray.value.filter(\n (n) => n.visible && !n.disabled && !n.states.groupDisabled\n )\n const userCreatedOption = optionsInDropdown.find((n) => n.created)\n const firstOriginOption = optionsInDropdown[0]\n const valueList = optionsArray.value.map((item) => item.value)\n states.hoveringIndex = getValueIndex(\n valueList,\n userCreatedOption || firstOriginOption\n )\n }\n\n const setSelected = () => {\n if (!props.multiple) {\n const value = isArray(props.modelValue)\n ? props.modelValue[0]\n : props.modelValue\n const option = getOption(value)\n states.selectedLabel = option.currentLabel\n states.selected = [option]\n return\n } else {\n states.selectedLabel = ''\n }\n const result: SelectStates['selected'] = []\n if (!isUndefined(props.modelValue)) {\n ensureArray(props.modelValue).forEach((value) => {\n result.push(getOption(value))\n })\n }\n states.selected = result\n }\n\n const getOption = (value: OptionValue) => {\n let option\n const isObjectValue = isPlainObject(value)\n\n for (let i = states.cachedOptions.size - 1; i >= 0; i--) {\n const cachedOption = cachedOptionsArray.value[i]\n const isEqualValue = isObjectValue\n ? get(cachedOption.value, props.valueKey) === get(value, props.valueKey)\n : cachedOption.value === value\n if (isEqualValue) {\n option = {\n index: optionsArray.value\n .filter((opt) => !opt.created)\n .indexOf(cachedOption),\n value,\n currentLabel: cachedOption.currentLabel,\n get isDisabled() {\n return cachedOption.isDisabled\n },\n }\n break\n }\n }\n if (option) return option\n const label = isObjectValue ? value.label : (value ?? '')\n const newOption = {\n index: -1,\n value,\n currentLabel: label,\n }\n return newOption\n }\n\n const updateHoveringIndex = () => {\n const length = states.selected.length\n if (length > 0) {\n const lastOption = states.selected[length - 1]\n states.hoveringIndex = optionsArray.value.findIndex(\n (item) => getValueKey(lastOption) === getValueKey(item)\n )\n } else {\n states.hoveringIndex = -1\n }\n }\n\n const resetSelectionWidth = () => {\n states.selectionWidth = Number.parseFloat(\n window.getComputedStyle(selectionRef.value!).width\n )\n }\n\n const resetCollapseItemWidth = () => {\n states.collapseItemWidth =\n collapseItemRef.value!.getBoundingClientRect().width\n }\n\n const updateTooltip = () => {\n tooltipRef.value?.updatePopper?.()\n }\n\n const updateTagTooltip = () => {\n tagTooltipRef.value?.updatePopper?.()\n }\n\n const onInputChange = () => {\n if (states.inputValue.length > 0 && !expanded.value) {\n expanded.value = true\n }\n handleQueryChange(states.inputValue)\n }\n\n const onInput = (event: Event) => {\n states.inputValue = (event.target as HTMLInputElement).value\n if (props.remote) {\n debouncing.value = true\n debouncedOnInputChange()\n } else {\n return onInputChange()\n }\n }\n\n const debouncedOnInputChange = useDebounceFn(() => {\n onInputChange()\n debouncing.value = false\n }, debounce)\n\n const emitChange = (val: OptionValue | OptionValue[]) => {\n if (!isEqual(props.modelValue, val)) {\n emit(CHANGE_EVENT, val)\n }\n }\n\n const getLastNotDisabledIndex = (value: OptionValue[]) =>\n findLastIndex(value, (it) => {\n const option = states.cachedOptions.get(it)\n return !option?.disabled && !option?.states.groupDisabled\n })\n\n const deletePrevTag = (e: KeyboardEvent) => {\n const code = getEventCode(e)\n if (!props.multiple) return\n if (code === EVENT_CODE.delete) return\n if ((e.target as HTMLInputElement).value.length <= 0) {\n const value = ensureArray(props.modelValue).slice()\n const lastNotDisabledIndex = getLastNotDisabledIndex(value)\n if (lastNotDisabledIndex < 0) return\n const removeTagValue = value[lastNotDisabledIndex]\n value.splice(lastNotDisabledIndex, 1)\n emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n emit('remove-tag', removeTagValue)\n }\n }\n\n const deleteTag = (event: MouseEvent, tag: OptionBasic) => {\n const index = states.selected.indexOf(tag)\n if (index > -1 && !selectDisabled.value) {\n const value = ensureArray(props.modelValue).slice()\n value.splice(index, 1)\n emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n emit('remove-tag', tag.value)\n }\n event.stopPropagation()\n focus()\n }\n\n const deleteSelected = (event: Event) => {\n event.stopPropagation()\n const value = props.multiple ? [] : valueOnClear.value\n if (props.multiple) {\n for (const item of states.selected) {\n if (item.isDisabled) value.push(item.value)\n }\n }\n emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n states.hoveringIndex = -1\n expanded.value = false\n emit('clear')\n focus()\n }\n\n const handleOptionSelect = (option: OptionPublicInstance) => {\n if (props.multiple) {\n const value = ensureArray(props.modelValue ?? []).slice()\n const optionIndex = getValueIndex(value, option)\n if (optionIndex > -1) {\n value.splice(optionIndex, 1)\n } else if (\n props.multipleLimit <= 0 ||\n value.length < props.multipleLimit\n ) {\n value.push(option.value)\n }\n emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n if (option.created) {\n handleQueryChange('')\n }\n if (props.filterable && !props.reserveKeyword) {\n states.inputValue = ''\n }\n } else {\n !isEqual(props.modelValue, option.value) &&\n emit(UPDATE_MODEL_EVENT, option.value)\n emitChange(option.value)\n expanded.value = false\n }\n focus()\n if (expanded.value) return\n nextTick(() => {\n scrollToOption(option)\n })\n }\n\n const getValueIndex = (arr: OptionValue[], option: OptionPublicInstance) => {\n if (isUndefined(option)) return -1\n if (!isObject(option.value)) return arr.indexOf(option.value)\n\n return arr.findIndex((item) => {\n return isEqual(get(item, props.valueKey), getValueKey(option))\n })\n }\n\n const scrollToOption = (\n option:\n | OptionPublicInstance\n | OptionPublicInstance[]\n | SelectStates['selected']\n ) => {\n const targetOption = isArray(option) ? option[option.length - 1] : option\n let target = null\n\n if (!isNil(targetOption?.value)) {\n const options = optionsArray.value.filter(\n (item) => item.value === targetOption.value\n )\n if (options.length > 0) {\n target = options[0].$el\n }\n }\n\n if (tooltipRef.value && target) {\n const menu = tooltipRef.value?.popperRef?.contentRef?.querySelector?.(\n `.${nsSelect.be('dropdown', 'wrap')}`\n )\n if (menu) {\n scrollIntoView(menu as HTMLElement, target)\n }\n }\n scrollbarRef.value?.handleScroll()\n }\n\n const onOptionCreate = (vm: OptionPublicInstance) => {\n states.options.set(vm.value, vm)\n states.cachedOptions.set(vm.value, vm)\n }\n\n const onOptionDestroy = (key: OptionValue, vm: OptionPublicInstance) => {\n if (states.options.get(key) === vm) {\n states.options.delete(key)\n }\n }\n\n const popperRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n })\n\n const handleMenuEnter = () => {\n states.isBeforeHide = false\n nextTick(() => {\n scrollbarRef.value?.update()\n scrollToOption(states.selected)\n })\n }\n\n const focus = () => {\n inputRef.value?.focus()\n }\n\n const blur = () => {\n if (expanded.value) {\n expanded.value = false\n nextTick(() => inputRef.value?.blur())\n return\n }\n inputRef.value?.blur()\n }\n\n const handleClearClick = (event: Event) => {\n deleteSelected(event)\n }\n\n const handleClickOutside = (event: Event) => {\n expanded.value = false\n\n if (isFocused.value) {\n const _event = new FocusEvent('blur', event)\n nextTick(() => handleBlur(_event))\n }\n }\n\n const handleEsc = () => {\n if (states.inputValue.length > 0) {\n states.inputValue = ''\n } else {\n expanded.value = false\n }\n }\n\n const toggleMenu = (event?: Event) => {\n if (\n selectDisabled.value ||\n (props.filterable &&\n expanded.value &&\n event &&\n !suffixRef.value?.contains(event.target as Node))\n )\n return\n\n // We only set the inputHovering state to true on mouseenter event on iOS devices\n // To keep the state updated we set it here to true\n if (isIOS) states.inputHovering = true\n\n if (states.menuVisibleOnFocus) {\n // controlled by automaticDropdown\n states.menuVisibleOnFocus = false\n } else {\n expanded.value = !expanded.value\n }\n }\n\n const selectOption = () => {\n if (!expanded.value) {\n toggleMenu()\n } else {\n const option = optionsArray.value[states.hoveringIndex]\n if (option && !option.isDisabled) {\n handleOptionSelect(option)\n }\n }\n }\n\n const getValueKey = (\n item: OptionPublicInstance | SelectStates['selected'][0]\n ) => {\n return isObject(item.value) ? get(item.value, props.valueKey) : item.value\n }\n\n const optionsAllDisabled = computed(() =>\n optionsArray.value\n .filter((option) => option.visible)\n .every((option) => option.isDisabled)\n )\n\n const showTagList = computed(() => {\n if (!props.multiple) {\n return []\n }\n return props.collapseTags\n ? states.selected.slice(0, props.maxCollapseTags)\n : states.selected\n })\n\n const collapseTagList = computed(() => {\n if (!props.multiple) {\n return []\n }\n return props.collapseTags\n ? states.selected.slice(props.maxCollapseTags)\n : []\n })\n\n const navigateOptions = (direction: 'prev' | 'next') => {\n if (!expanded.value) {\n expanded.value = true\n return\n }\n if (\n states.options.size === 0 ||\n filteredOptionsCount.value === 0 ||\n isComposing.value\n )\n return\n\n if (!optionsAllDisabled.value) {\n if (direction === 'next') {\n states.hoveringIndex++\n if (states.hoveringIndex === states.options.size) {\n states.hoveringIndex = 0\n }\n } else if (direction === 'prev') {\n states.hoveringIndex--\n if (states.hoveringIndex < 0) {\n states.hoveringIndex = states.options.size - 1\n }\n }\n const option = optionsArray.value[states.hoveringIndex]\n if (option.isDisabled || !option.visible) {\n navigateOptions(direction)\n }\n nextTick(() => scrollToOption(hoverOption.value))\n }\n }\n\n const findFocusableIndex = (\n arr: any[],\n start: number,\n step: number,\n len: number\n ) => {\n for (let i = start; i >= 0 && i < len; i += step) {\n const obj = arr[i]\n if (!obj?.isDisabled && obj?.visible) {\n return i\n }\n }\n return null\n }\n\n const focusOption = (targetIndex: number, mode: 'up' | 'down') => {\n const len = states.options.size\n if (len === 0) return\n const start = clamp(targetIndex, 0, len - 1)\n const options = optionsArray.value\n const direction = mode === 'up' ? -1 : 1\n const newIndex =\n findFocusableIndex(options, start, direction, len) ??\n findFocusableIndex(options, start - direction, -direction, len)\n\n if (newIndex != null) {\n states.hoveringIndex = newIndex\n nextTick(() => scrollToOption(hoverOption.value))\n }\n }\n\n const handleKeydown = (e: KeyboardEvent) => {\n const code = getEventCode(e)\n let isPreventDefault = true\n switch (code) {\n case EVENT_CODE.up:\n navigateOptions('prev')\n break\n case EVENT_CODE.down:\n navigateOptions('next')\n break\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n if (!isComposing.value) {\n selectOption()\n }\n break\n case EVENT_CODE.esc:\n handleEsc()\n break\n case EVENT_CODE.backspace:\n isPreventDefault = false\n deletePrevTag(e)\n return\n case EVENT_CODE.home:\n if (!expanded.value) return\n focusOption(0, 'down')\n break\n case EVENT_CODE.end:\n if (!expanded.value) return\n focusOption(states.options.size - 1, 'up')\n break\n case EVENT_CODE.pageUp:\n if (!expanded.value) return\n focusOption(states.hoveringIndex - 10, 'up')\n break\n case EVENT_CODE.pageDown:\n if (!expanded.value) return\n focusOption(states.hoveringIndex + 10, 'down')\n break\n default:\n isPreventDefault = false\n break\n }\n if (isPreventDefault) {\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n const getGapWidth = () => {\n if (!selectionRef.value) return 0\n const style = window.getComputedStyle(selectionRef.value)\n return Number.parseFloat(style.gap || '6px')\n }\n\n // computed style\n const tagStyle = computed(() => {\n const gapWidth = getGapWidth()\n const inputSlotWidth = props.filterable ? gapWidth + MINIMUM_INPUT_WIDTH : 0\n const maxWidth =\n collapseItemRef.value && props.maxCollapseTags === 1\n ? states.selectionWidth -\n states.collapseItemWidth -\n gapWidth -\n inputSlotWidth\n : states.selectionWidth - inputSlotWidth\n return { maxWidth: `${maxWidth}px` }\n })\n\n const collapseTagStyle = computed(() => {\n return { maxWidth: `${states.selectionWidth}px` }\n })\n\n const popupScroll = (data: { scrollTop: number; scrollLeft: number }) => {\n emit('popup-scroll', data)\n }\n\n useResizeObserver(selectionRef, resetSelectionWidth)\n useResizeObserver(wrapperRef, updateTooltip)\n useResizeObserver(tagMenuRef, updateTagTooltip)\n useResizeObserver(collapseItemRef, resetCollapseItemWidth)\n\n // #21498\n let stop: (() => void) | undefined\n watch(\n () => dropdownMenuVisible.value,\n (newVal) => {\n if (newVal) {\n stop = useResizeObserver(menuRef, updateTooltip).stop\n } else {\n stop?.()\n stop = undefined\n }\n emit('visible-change', newVal)\n }\n )\n\n onMounted(() => {\n setSelected()\n })\n\n return {\n inputId,\n contentId,\n nsSelect,\n nsInput,\n states,\n isFocused,\n expanded,\n optionsArray,\n hoverOption,\n selectSize,\n filteredOptionsCount,\n updateTooltip,\n updateTagTooltip,\n debouncedOnInputChange,\n onInput,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n hasModelValue,\n shouldShowPlaceholder,\n currentPlaceholder,\n mouseEnterEventName,\n needStatusIcon,\n showClearBtn,\n iconComponent,\n iconReverse,\n validateState,\n validateIcon,\n showNewOption,\n updateOptions,\n collapseTagSize,\n setSelected,\n selectDisabled,\n emptyText,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n handleKeydown,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n focus,\n blur,\n handleClearClick,\n handleClickOutside,\n handleEsc,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropdownMenuVisible,\n showTagList,\n collapseTagList,\n popupScroll,\n getOption,\n\n // computed style\n tagStyle,\n collapseTagStyle,\n\n // DOM ref\n popperRef,\n inputRef,\n tooltipRef,\n tagTooltipRef,\n prefixRef,\n suffixRef,\n selectRef,\n wrapperRef,\n selectionRef,\n scrollbarRef,\n menuRef,\n tagMenuRef,\n collapseItemRef,\n }\n}\n"],"names":["useLocale","useSlots","useId","useNamespace","reactive","ref","form","useFormItem","useFormItemInputId","useEmptyValues","useComposition","useFormDisabled","useFocusController","debugWarn","computed","isArray","ValidateComponentsMap","isFunction","useFormSize","isEmpty","isUndefined","ensureArray","isIOS","watch","isEqual","isClient","isNumber","watchEffect","nextTick","isPlainObject","get","useDebounceFn","CHANGE_EVENT","findLastIndex","getEventCode","EVENT_CODE","UPDATE_MODEL_EVENT","isObject","isNil","scrollIntoView","_a","clamp","MINIMUM_INPUT_WIDTH","useResizeObserver","onMounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSelect.js","sources":["../../../../../../packages/components/select/src/useSelect.ts"],"sourcesContent":["import {\n computed,\n nextTick,\n onMounted,\n reactive,\n ref,\n useSlots,\n watch,\n watchEffect,\n} from 'vue'\nimport { clamp, findLastIndex, get, isEqual, isNil } from 'lodash-unified'\nimport { useDebounceFn, useResizeObserver } from '@vueuse/core'\nimport {\n ValidateComponentsMap,\n debugWarn,\n ensureArray,\n getEventCode,\n isArray,\n isClient,\n isEmpty,\n isFunction,\n isIOS,\n isNumber,\n isObject,\n isPlainObject,\n isUndefined,\n scrollIntoView,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n MINIMUM_INPUT_WIDTH,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport {\n useComposition,\n useEmptyValues,\n useFocusController,\n useId,\n useLocale,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\n\nimport type { Component } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { ScrollbarInstance } from '@element-plus/components/scrollbar'\nimport type { SelectEmits, SelectProps } from './select'\nimport type {\n OptionBasic,\n OptionPublicInstance,\n OptionValue,\n SelectStates,\n} from './type'\n\nexport const useSelect = (props: SelectProps, emit: SelectEmits) => {\n const { t } = useLocale()\n const slots = useSlots()\n const contentId = useId()\n const nsSelect = useNamespace('select')\n const nsInput = useNamespace('input')\n\n const states = reactive<SelectStates>({\n inputValue: '',\n options: new Map(),\n cachedOptions: new Map(),\n optionValues: [], // sorted value of options\n selected: [],\n selectionWidth: 0,\n collapseItemWidth: 0,\n selectedLabel: '',\n hoveringIndex: -1,\n previousQuery: null,\n inputHovering: false,\n menuVisibleOnFocus: false,\n isBeforeHide: false,\n })\n\n // template refs\n const selectRef = ref<HTMLElement>()\n const selectionRef = ref<HTMLElement>()\n const tooltipRef = ref<TooltipInstance>()\n const tagTooltipRef = ref<TooltipInstance>()\n const inputRef = ref<HTMLInputElement>()\n const prefixRef = ref<HTMLElement>()\n const suffixRef = ref<HTMLElement>()\n const menuRef = ref<HTMLElement>()\n const tagMenuRef = ref<HTMLElement>()\n const collapseItemRef = ref<HTMLElement>()\n const scrollbarRef = ref<ScrollbarInstance>()\n // the controller of the expanded popup\n const expanded = ref(false)\n const hoverOption = ref()\n const debouncing = ref(false)\n\n const { form, formItem } = useFormItem()\n const { inputId } = useFormItemInputId(props, {\n formItemContext: formItem,\n })\n const { valueOnClear, isEmptyValue } = useEmptyValues(props)\n\n const {\n isComposing,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n } = useComposition({\n afterComposition: (e) => onInput(e),\n })\n\n const selectDisabled = useFormDisabled()\n\n const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, {\n disabled: selectDisabled,\n afterFocus() {\n if (props.automaticDropdown && !expanded.value) {\n expanded.value = true\n states.menuVisibleOnFocus = true\n }\n },\n beforeBlur(event) {\n return (\n tooltipRef.value?.isFocusInsideContent(event) ||\n tagTooltipRef.value?.isFocusInsideContent(event)\n )\n },\n afterBlur() {\n expanded.value = false\n states.menuVisibleOnFocus = false\n if (props.validateEvent) {\n formItem?.validate?.('blur').catch((err) => debugWarn(err))\n }\n },\n })\n\n const hasModelValue = computed(() => {\n return isArray(props.modelValue)\n ? props.modelValue.length > 0\n : !isEmptyValue(props.modelValue)\n })\n\n const needStatusIcon = computed(() => form?.statusIcon ?? false)\n\n const showClearBtn = computed(() => {\n return (\n props.clearable &&\n !selectDisabled.value &&\n hasModelValue.value &&\n (isFocused.value || states.inputHovering)\n )\n })\n const iconComponent = computed(() =>\n props.remote && props.filterable && !props.remoteShowSuffix\n ? ''\n : props.suffixIcon\n )\n const iconReverse = computed(() =>\n nsSelect.is('reverse', !!(iconComponent.value && expanded.value))\n )\n\n const validateState = computed(() => formItem?.validateState || '')\n const validateIcon = computed(\n () =>\n validateState.value &&\n (ValidateComponentsMap[validateState.value] as Component)\n )\n\n const debounce = computed(() => (props.remote ? props.debounce : 0))\n\n const isRemoteSearchEmpty = computed(\n () => props.remote && !states.inputValue && states.options.size === 0\n )\n\n const emptyText = computed(() => {\n if (props.loading) {\n return props.loadingText || t('el.select.loading')\n } else {\n if (\n props.filterable &&\n states.inputValue &&\n states.options.size > 0 &&\n filteredOptionsCount.value === 0\n ) {\n return props.noMatchText || t('el.select.noMatch')\n }\n if (states.options.size === 0) {\n return props.noDataText || t('el.select.noData')\n }\n }\n return null\n })\n\n const filteredOptionsCount = computed(\n () => optionsArray.value.filter((option) => option.visible).length\n )\n\n const optionsArray = computed(() => {\n const list = Array.from(states.options.values())\n const newList: OptionPublicInstance[] = []\n states.optionValues.forEach((item) => {\n const index = list.findIndex((i) => i.value === item)\n if (index > -1) {\n newList.push(list[index])\n }\n })\n return newList.length >= list.length ? newList : list\n })\n\n const cachedOptionsArray = computed(() =>\n Array.from(states.cachedOptions.values())\n )\n\n const showNewOption = computed(() => {\n const hasExistingOption = optionsArray.value\n .filter((option) => {\n return !option.created\n })\n .some((option) => {\n return option.currentLabel === states.inputValue\n })\n return (\n props.filterable &&\n props.allowCreate &&\n states.inputValue !== '' &&\n !hasExistingOption\n )\n })\n\n const updateOptions = () => {\n if (props.filterable && isFunction(props.filterMethod)) return\n if (props.filterable && props.remote && isFunction(props.remoteMethod))\n return\n optionsArray.value.forEach((option) => {\n option.updateOption?.(states.inputValue)\n })\n }\n\n const selectSize = useFormSize()\n\n const collapseTagSize = computed(() =>\n ['small'].includes(selectSize.value) ? 'small' : 'default'\n )\n\n const dropdownMenuVisible = computed({\n get() {\n return (\n expanded.value &&\n (props.loading ||\n !isRemoteSearchEmpty.value ||\n (props.remote && !!slots.empty)) &&\n (!debouncing.value || !isEmpty(states.previousQuery))\n )\n },\n set(val: boolean) {\n expanded.value = val\n },\n })\n\n const shouldShowPlaceholder = computed(() => {\n if (props.multiple && !isUndefined(props.modelValue)) {\n return ensureArray(props.modelValue).length === 0 && !states.inputValue\n }\n const value = isArray(props.modelValue)\n ? props.modelValue[0]\n : props.modelValue\n return props.filterable || isUndefined(value) ? !states.inputValue : true\n })\n\n const currentPlaceholder = computed(() => {\n const _placeholder = props.placeholder ?? t('el.select.placeholder')\n return props.multiple || !hasModelValue.value\n ? _placeholder\n : states.selectedLabel\n })\n\n // iOS Safari does not handle click events when a mouseenter event is registered and a DOM-change happens in a child\n // We use a Vue custom event binding to only register the event on non-iOS devices\n // ref.: https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n // Github Issue: https://github.com/vuejs/vue/issues/9859\n const mouseEnterEventName = computed(() => (isIOS ? null : 'mouseenter'))\n\n watch(\n () => props.modelValue,\n (val, oldVal) => {\n if (props.multiple) {\n if (props.filterable && !props.reserveKeyword) {\n states.inputValue = ''\n handleQueryChange('')\n }\n }\n setSelected()\n if (!isEqual(val, oldVal) && props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n },\n {\n flush: 'post',\n deep: true,\n }\n )\n\n watch(\n () => expanded.value,\n (val) => {\n if (val) {\n handleQueryChange(states.inputValue)\n } else {\n states.inputValue = ''\n states.previousQuery = null\n states.isBeforeHide = true\n states.menuVisibleOnFocus = false\n }\n }\n )\n\n watch(\n // fix `Array.prototype.push/splice/..` cannot trigger non-deep watcher\n // https://github.com/vuejs/vue-next/issues/2116\n () => states.options.entries(),\n () => {\n if (!isClient) return\n // tooltipRef.value?.updatePopper?.()\n setSelected()\n if (\n props.defaultFirstOption &&\n (props.filterable || props.remote) &&\n filteredOptionsCount.value\n ) {\n checkDefaultFirstOption()\n }\n },\n {\n flush: 'post',\n }\n )\n\n watch([() => states.hoveringIndex, optionsArray], ([val]) => {\n if (isNumber(val) && val > -1) {\n hoverOption.value = optionsArray.value[val] || {}\n } else {\n hoverOption.value = {}\n }\n optionsArray.value.forEach((option) => {\n option.hover = hoverOption.value === option\n })\n })\n\n watchEffect(() => {\n // Anything could cause options changed, then update options\n // If you want to control it by condition, write here\n if (states.isBeforeHide) return\n updateOptions()\n })\n\n const handleQueryChange = (val: string) => {\n if (states.previousQuery === val || isComposing.value) {\n return\n }\n states.previousQuery = val\n if (props.filterable && isFunction(props.filterMethod)) {\n props.filterMethod(val)\n } else if (\n props.filterable &&\n props.remote &&\n isFunction(props.remoteMethod)\n ) {\n props.remoteMethod(val)\n }\n if (\n props.defaultFirstOption &&\n (props.filterable || props.remote) &&\n filteredOptionsCount.value\n ) {\n nextTick(checkDefaultFirstOption)\n } else {\n nextTick(updateHoveringIndex)\n }\n }\n\n /**\n * find and highlight first option as default selected\n * @remark\n * - if the first option in dropdown list is user-created,\n * it would be at the end of the optionsArray\n * so find it and set hover.\n * (NOTE: there must be only one user-created option in dropdown list with query)\n * - if there's no user-created option in list, just find the first one as usual\n * (NOTE: exclude options that are disabled or in disabled-group)\n */\n const checkDefaultFirstOption = () => {\n const optionsInDropdown = optionsArray.value.filter(\n (n) => n.visible && !n.disabled && !n.states.groupDisabled\n )\n const userCreatedOption = optionsInDropdown.find((n) => n.created)\n const firstOriginOption = optionsInDropdown[0]\n const valueList = optionsArray.value.map((item) => item.value)\n states.hoveringIndex = getValueIndex(\n valueList,\n userCreatedOption || firstOriginOption\n )\n }\n\n const setSelected = () => {\n if (!props.multiple) {\n const value = isArray(props.modelValue)\n ? props.modelValue[0]\n : props.modelValue\n const option = getOption(value)\n states.selectedLabel = option.currentLabel\n states.selected = [option]\n return\n } else {\n states.selectedLabel = ''\n }\n const result: SelectStates['selected'] = []\n if (!isUndefined(props.modelValue)) {\n ensureArray(props.modelValue).forEach((value) => {\n result.push(getOption(value))\n })\n }\n states.selected = result\n }\n\n const getOption = (value: OptionValue) => {\n let option\n const isObjectValue = isPlainObject(value)\n\n for (let i = states.cachedOptions.size - 1; i >= 0; i--) {\n const cachedOption = cachedOptionsArray.value[i]\n const isEqualValue = isObjectValue\n ? get(cachedOption.value, props.valueKey) === get(value, props.valueKey)\n : cachedOption.value === value\n if (isEqualValue) {\n option = {\n index: optionsArray.value\n .filter((opt) => !opt.created)\n .indexOf(cachedOption),\n value,\n currentLabel: cachedOption.currentLabel,\n get isDisabled() {\n return cachedOption.isDisabled\n },\n }\n break\n }\n }\n if (option) return option\n const label = isObjectValue ? value.label : (value ?? '')\n const newOption = {\n index: -1,\n value,\n currentLabel: label,\n }\n return newOption\n }\n\n const updateHoveringIndex = () => {\n const length = states.selected.length\n if (length > 0) {\n const lastOption = states.selected[length - 1]\n states.hoveringIndex = optionsArray.value.findIndex(\n (item) => getValueKey(lastOption) === getValueKey(item)\n )\n } else {\n states.hoveringIndex = -1\n }\n }\n\n const resetSelectionWidth = () => {\n states.selectionWidth = Number.parseFloat(\n window.getComputedStyle(selectionRef.value!).width\n )\n }\n\n const resetCollapseItemWidth = () => {\n states.collapseItemWidth =\n collapseItemRef.value!.getBoundingClientRect().width\n }\n\n const updateTooltip = () => {\n tooltipRef.value?.updatePopper?.()\n }\n\n const updateTagTooltip = () => {\n tagTooltipRef.value?.updatePopper?.()\n }\n\n const onInputChange = () => {\n if (states.inputValue.length > 0 && !expanded.value) {\n expanded.value = true\n }\n handleQueryChange(states.inputValue)\n }\n\n const onInput = (event: Event) => {\n states.inputValue = (event.target as HTMLInputElement).value\n if (props.remote) {\n debouncing.value = true\n debouncedOnInputChange()\n } else {\n return onInputChange()\n }\n }\n\n const debouncedOnInputChange = useDebounceFn(() => {\n onInputChange()\n debouncing.value = false\n }, debounce)\n\n const emitChange = (val: OptionValue | OptionValue[]) => {\n if (!isEqual(props.modelValue, val)) {\n emit(CHANGE_EVENT, val)\n }\n }\n\n const getLastNotDisabledIndex = (value: OptionValue[]) =>\n findLastIndex(value, (it) => {\n const option = states.cachedOptions.get(it)\n return !option?.disabled && !option?.states.groupDisabled\n })\n\n const deletePrevTag = (e: KeyboardEvent) => {\n const code = getEventCode(e)\n if (!props.multiple) return\n if (code === EVENT_CODE.delete) return\n if ((e.target as HTMLInputElement).value.length <= 0) {\n const value = ensureArray(props.modelValue).slice()\n const lastNotDisabledIndex = getLastNotDisabledIndex(value)\n if (lastNotDisabledIndex < 0) return\n const removeTagValue = value[lastNotDisabledIndex]\n value.splice(lastNotDisabledIndex, 1)\n emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n emit('remove-tag', removeTagValue)\n }\n }\n\n const deleteTag = (event: MouseEvent, tag: OptionBasic) => {\n const index = states.selected.indexOf(tag)\n if (index > -1 && !selectDisabled.value) {\n const value = ensureArray(props.modelValue).slice()\n value.splice(index, 1)\n emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n emit('remove-tag', tag.value)\n }\n event.stopPropagation()\n focus()\n }\n\n const deleteSelected = (event: Event) => {\n event.stopPropagation()\n const value = props.multiple ? [] : valueOnClear.value\n if (props.multiple) {\n for (const item of states.selected) {\n if (item.isDisabled) value.push(item.value)\n }\n }\n emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n states.hoveringIndex = -1\n expanded.value = false\n emit('clear')\n focus()\n }\n\n const handleOptionSelect = (option: OptionPublicInstance) => {\n if (props.multiple) {\n const value = ensureArray(props.modelValue ?? []).slice()\n const optionIndex = getValueIndex(value, option)\n if (optionIndex > -1) {\n value.splice(optionIndex, 1)\n } else if (\n props.multipleLimit <= 0 ||\n value.length < props.multipleLimit\n ) {\n value.push(option.value)\n }\n emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n if (option.created) {\n handleQueryChange('')\n }\n if (props.filterable && (option.created || !props.reserveKeyword)) {\n states.inputValue = ''\n }\n } else {\n !isEqual(props.modelValue, option.value) &&\n emit(UPDATE_MODEL_EVENT, option.value)\n emitChange(option.value)\n expanded.value = false\n }\n focus()\n if (expanded.value) return\n nextTick(() => {\n scrollToOption(option)\n })\n }\n\n const getValueIndex = (arr: OptionValue[], option: OptionPublicInstance) => {\n if (isUndefined(option)) return -1\n if (!isObject(option.value)) return arr.indexOf(option.value)\n\n return arr.findIndex((item) => {\n return isEqual(get(item, props.valueKey), getValueKey(option))\n })\n }\n\n const scrollToOption = (\n option:\n | OptionPublicInstance\n | OptionPublicInstance[]\n | SelectStates['selected']\n ) => {\n const targetOption = isArray(option) ? option[option.length - 1] : option\n let target = null\n\n if (!isNil(targetOption?.value)) {\n const options = optionsArray.value.filter(\n (item) => item.value === targetOption.value\n )\n if (options.length > 0) {\n target = options[0].$el\n }\n }\n\n if (tooltipRef.value && target) {\n const menu = tooltipRef.value?.popperRef?.contentRef?.querySelector?.(\n `.${nsSelect.be('dropdown', 'wrap')}`\n )\n if (menu) {\n scrollIntoView(menu as HTMLElement, target)\n }\n }\n scrollbarRef.value?.handleScroll()\n }\n\n const onOptionCreate = (vm: OptionPublicInstance) => {\n states.options.set(vm.value, vm)\n states.cachedOptions.set(vm.value, vm)\n }\n\n const onOptionDestroy = (key: OptionValue, vm: OptionPublicInstance) => {\n if (states.options.get(key) === vm) {\n states.options.delete(key)\n }\n }\n\n const popperRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n })\n\n const handleMenuEnter = () => {\n states.isBeforeHide = false\n nextTick(() => {\n scrollbarRef.value?.update()\n scrollToOption(states.selected)\n })\n }\n\n const focus = () => {\n inputRef.value?.focus()\n }\n\n const blur = () => {\n if (expanded.value) {\n expanded.value = false\n nextTick(() => inputRef.value?.blur())\n return\n }\n inputRef.value?.blur()\n }\n\n const handleClearClick = (event: Event) => {\n deleteSelected(event)\n }\n\n const handleClickOutside = (event: Event) => {\n expanded.value = false\n\n if (isFocused.value) {\n const _event = new FocusEvent('blur', event)\n nextTick(() => handleBlur(_event))\n }\n }\n\n const handleEsc = () => {\n if (states.inputValue.length > 0) {\n states.inputValue = ''\n } else {\n expanded.value = false\n }\n }\n\n const toggleMenu = (event?: Event) => {\n if (\n selectDisabled.value ||\n (props.filterable &&\n expanded.value &&\n event &&\n !suffixRef.value?.contains(event.target as Node))\n )\n return\n\n // We only set the inputHovering state to true on mouseenter event on iOS devices\n // To keep the state updated we set it here to true\n if (isIOS) states.inputHovering = true\n\n if (states.menuVisibleOnFocus) {\n // controlled by automaticDropdown\n states.menuVisibleOnFocus = false\n } else {\n expanded.value = !expanded.value\n }\n }\n\n const selectOption = () => {\n if (!expanded.value) {\n toggleMenu()\n } else {\n const option = optionsArray.value[states.hoveringIndex]\n if (option && !option.isDisabled) {\n handleOptionSelect(option)\n }\n }\n }\n\n const getValueKey = (\n item: OptionPublicInstance | SelectStates['selected'][0]\n ) => {\n return isObject(item.value) ? get(item.value, props.valueKey) : item.value\n }\n\n const optionsAllDisabled = computed(() =>\n optionsArray.value\n .filter((option) => option.visible)\n .every((option) => option.isDisabled)\n )\n\n const showTagList = computed(() => {\n if (!props.multiple) {\n return []\n }\n return props.collapseTags\n ? states.selected.slice(0, props.maxCollapseTags)\n : states.selected\n })\n\n const collapseTagList = computed(() => {\n if (!props.multiple) {\n return []\n }\n return props.collapseTags\n ? states.selected.slice(props.maxCollapseTags)\n : []\n })\n\n const navigateOptions = (direction: 'prev' | 'next') => {\n if (!expanded.value) {\n expanded.value = true\n return\n }\n if (\n states.options.size === 0 ||\n filteredOptionsCount.value === 0 ||\n isComposing.value\n )\n return\n\n if (!optionsAllDisabled.value) {\n if (direction === 'next') {\n states.hoveringIndex++\n if (states.hoveringIndex === states.options.size) {\n states.hoveringIndex = 0\n }\n } else if (direction === 'prev') {\n states.hoveringIndex--\n if (states.hoveringIndex < 0) {\n states.hoveringIndex = states.options.size - 1\n }\n }\n const option = optionsArray.value[states.hoveringIndex]\n if (option.isDisabled || !option.visible) {\n navigateOptions(direction)\n }\n nextTick(() => scrollToOption(hoverOption.value))\n }\n }\n\n const findFocusableIndex = (\n arr: any[],\n start: number,\n step: number,\n len: number\n ) => {\n for (let i = start; i >= 0 && i < len; i += step) {\n const obj = arr[i]\n if (!obj?.isDisabled && obj?.visible) {\n return i\n }\n }\n return null\n }\n\n const focusOption = (targetIndex: number, mode: 'up' | 'down') => {\n const len = states.options.size\n if (len === 0) return\n const start = clamp(targetIndex, 0, len - 1)\n const options = optionsArray.value\n const direction = mode === 'up' ? -1 : 1\n const newIndex =\n findFocusableIndex(options, start, direction, len) ??\n findFocusableIndex(options, start - direction, -direction, len)\n\n if (newIndex != null) {\n states.hoveringIndex = newIndex\n nextTick(() => scrollToOption(hoverOption.value))\n }\n }\n\n const handleKeydown = (e: KeyboardEvent) => {\n const code = getEventCode(e)\n let isPreventDefault = true\n switch (code) {\n case EVENT_CODE.up:\n navigateOptions('prev')\n break\n case EVENT_CODE.down:\n navigateOptions('next')\n break\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n if (!isComposing.value) {\n selectOption()\n }\n break\n case EVENT_CODE.esc:\n handleEsc()\n break\n case EVENT_CODE.backspace:\n isPreventDefault = false\n deletePrevTag(e)\n return\n case EVENT_CODE.home:\n if (!expanded.value) return\n focusOption(0, 'down')\n break\n case EVENT_CODE.end:\n if (!expanded.value) return\n focusOption(states.options.size - 1, 'up')\n break\n case EVENT_CODE.pageUp:\n if (!expanded.value) return\n focusOption(states.hoveringIndex - 10, 'up')\n break\n case EVENT_CODE.pageDown:\n if (!expanded.value) return\n focusOption(states.hoveringIndex + 10, 'down')\n break\n default:\n isPreventDefault = false\n break\n }\n if (isPreventDefault) {\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n const getGapWidth = () => {\n if (!selectionRef.value) return 0\n const style = window.getComputedStyle(selectionRef.value)\n return Number.parseFloat(style.gap || '6px')\n }\n\n // computed style\n const tagStyle = computed(() => {\n const gapWidth = getGapWidth()\n const inputSlotWidth = props.filterable ? gapWidth + MINIMUM_INPUT_WIDTH : 0\n const maxWidth =\n collapseItemRef.value && props.maxCollapseTags === 1\n ? states.selectionWidth -\n states.collapseItemWidth -\n gapWidth -\n inputSlotWidth\n : states.selectionWidth - inputSlotWidth\n return { maxWidth: `${maxWidth}px` }\n })\n\n const collapseTagStyle = computed(() => {\n return { maxWidth: `${states.selectionWidth}px` }\n })\n\n const popupScroll = (data: { scrollTop: number; scrollLeft: number }) => {\n emit('popup-scroll', data)\n }\n\n useResizeObserver(selectionRef, resetSelectionWidth)\n useResizeObserver(wrapperRef, updateTooltip)\n useResizeObserver(tagMenuRef, updateTagTooltip)\n useResizeObserver(collapseItemRef, resetCollapseItemWidth)\n\n // #21498\n let stop: (() => void) | undefined\n watch(\n () => dropdownMenuVisible.value,\n (newVal) => {\n if (newVal) {\n stop = useResizeObserver(menuRef, updateTooltip).stop\n } else {\n stop?.()\n stop = undefined\n }\n emit('visible-change', newVal)\n }\n )\n\n onMounted(() => {\n setSelected()\n })\n\n return {\n inputId,\n contentId,\n nsSelect,\n nsInput,\n states,\n isFocused,\n expanded,\n optionsArray,\n hoverOption,\n selectSize,\n filteredOptionsCount,\n updateTooltip,\n updateTagTooltip,\n debouncedOnInputChange,\n onInput,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n hasModelValue,\n shouldShowPlaceholder,\n currentPlaceholder,\n mouseEnterEventName,\n needStatusIcon,\n showClearBtn,\n iconComponent,\n iconReverse,\n validateState,\n validateIcon,\n showNewOption,\n updateOptions,\n collapseTagSize,\n setSelected,\n selectDisabled,\n emptyText,\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n handleKeydown,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n focus,\n blur,\n handleClearClick,\n handleClickOutside,\n handleEsc,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropdownMenuVisible,\n showTagList,\n collapseTagList,\n popupScroll,\n getOption,\n\n // computed style\n tagStyle,\n collapseTagStyle,\n\n // DOM ref\n popperRef,\n inputRef,\n tooltipRef,\n tagTooltipRef,\n prefixRef,\n suffixRef,\n selectRef,\n wrapperRef,\n selectionRef,\n scrollbarRef,\n menuRef,\n tagMenuRef,\n collapseItemRef,\n }\n}\n"],"names":["useLocale","useSlots","useId","useNamespace","reactive","ref","form","useFormItem","useFormItemInputId","useEmptyValues","useComposition","useFormDisabled","useFocusController","debugWarn","computed","isArray","ValidateComponentsMap","isFunction","useFormSize","isEmpty","isUndefined","ensureArray","isIOS","watch","isEqual","isClient","isNumber","watchEffect","nextTick","isPlainObject","get","useDebounceFn","CHANGE_EVENT","findLastIndex","getEventCode","EVENT_CODE","UPDATE_MODEL_EVENT","isObject","isNil","scrollIntoView","_a","clamp","MINIMUM_INPUT_WIDTH","useResizeObserver","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4DO,MAAM,SAAA,GAAY,CAAC,KAAA,EAAoB,IAAA,KAAsB;AAClE,EAAA,MAAM,EAAE,CAAA,EAAE,GAAIA,eAAA,EAAU;AACxB,EAAA,MAAM,QAAQC,YAAA,EAAS;AACvB,EAAA,MAAM,YAAYC,aAAA,EAAM;AACxB,EAAA,MAAM,QAAA,GAAWC,qBAAa,QAAQ,CAAA;AACtC,EAAA,MAAM,OAAA,GAAUA,qBAAa,OAAO,CAAA;AAEpC,EAAA,MAAM,SAASC,YAAA,CAAuB;AAAA,IACpC,UAAA,EAAY,EAAA;AAAA,IACZ,OAAA,sBAAa,GAAA,EAAI;AAAA,IACjB,aAAA,sBAAmB,GAAA,EAAI;AAAA,IACvB,cAAc,EAAC;AAAA;AAAA,IACf,UAAU,EAAC;AAAA,IACX,cAAA,EAAgB,CAAA;AAAA,IAChB,iBAAA,EAAmB,CAAA;AAAA,IACnB,aAAA,EAAe,EAAA;AAAA,IACf,aAAA,EAAe,EAAA;AAAA,IACf,aAAA,EAAe,IAAA;AAAA,IACf,aAAA,EAAe,KAAA;AAAA,IACf,kBAAA,EAAoB,KAAA;AAAA,IACpB,YAAA,EAAc;AAAA,GACf,CAAA;AAGD,EAAA,MAAM,YAAYC,OAAA,EAAiB;AACnC,EAAA,MAAM,eAAeA,OAAA,EAAiB;AACtC,EAAA,MAAM,aAAaA,OAAA,EAAqB;AACxC,EAAA,MAAM,gBAAgBA,OAAA,EAAqB;AAC3C,EAAA,MAAM,WAAWA,OAAA,EAAsB;AACvC,EAAA,MAAM,YAAYA,OAAA,EAAiB;AACnC,EAAA,MAAM,YAAYA,OAAA,EAAiB;AACnC,EAAA,MAAM,UAAUA,OAAA,EAAiB;AACjC,EAAA,MAAM,aAAaA,OAAA,EAAiB;AACpC,EAAA,MAAM,kBAAkBA,OAAA,EAAiB;AACzC,EAAA,MAAM,eAAeA,OAAA,EAAuB;AAE5C,EAAA,MAAM,QAAA,GAAWA,QAAI,KAAK,CAAA;AAC1B,EAAA,MAAM,cAAcA,OAAA,EAAI;AACxB,EAAA,MAAM,UAAA,GAAaA,QAAI,KAAK,CAAA;AAE5B,EAAA,MAAM,QAAEC,MAAA,EAAM,QAAA,EAAS,GAAIC,uBAAA,EAAY;AACvC,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAIC,8BAAA,CAAmB,KAAA,EAAO;AAAA,IAC5C,eAAA,EAAiB;AAAA,GAClB,CAAA;AACD,EAAA,MAAM,EAAE,YAAA,EAAc,YAAA,EAAa,GAAIC,uBAAe,KAAK,CAAA;AAE3D,EAAA,MAAM;AAAA,IACJ,WAAA;AAAA,IACA,sBAAA;AAAA,IACA,uBAAA;AAAA,IACA;AAAA,MACEC,sBAAA,CAAe;AAAA,IACjB,gBAAA,EAAkB,CAAC,CAAA,KAAM,OAAA,CAAQ,CAAC;AAAA,GACnC,CAAA;AAED,EAAA,MAAM,iBAAiBC,kCAAA,EAAgB;AAEvC,EAAA,MAAM,EAAE,UAAA,EAAY,SAAA,EAAW,UAAA,EAAW,GAAIC,2BAAmB,QAAA,EAAU;AAAA,IACzE,QAAA,EAAU,cAAA;AAAA,IACV,UAAA,GAAa;AACX,MAAA,IAAI,KAAA,CAAM,iBAAA,IAAqB,CAAC,QAAA,CAAS,KAAA,EAAO;AAC9C,QAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AACjB,QAAA,MAAA,CAAO,kBAAA,GAAqB,IAAA;AAAA,MAC9B;AAAA,IACF,CAAA;AAAA,IACA,WAAW,KAAA,EAAO;AA7HtB,MAAA,IAAA,EAAA,EAAA,EAAA;AA8HM,MAAA,OAAA,CAAA,CACE,EAAA,GAAA,UAAA,CAAW,UAAX,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,oBAAA,CAAqB,aACvC,EAAA,GAAA,aAAA,CAAc,KAAA,KAAd,mBAAqB,oBAAA,CAAqB,KAAA,CAAA,CAAA;AAAA,IAE9C,CAAA;AAAA,IACA,SAAA,GAAY;AAnIhB,MAAA,IAAA,EAAA;AAoIM,MAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AACjB,MAAA,MAAA,CAAO,kBAAA,GAAqB,KAAA;AAC5B,MAAA,IAAI,MAAM,aAAA,EAAe;AACvB,QAAA,CAAA,EAAA,GAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,aAAV,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,QAAA,EAAqB,MAAA,CAAA,CAAQ,MAAM,CAAC,GAAA,KAAQC,gBAAU,GAAG,CAAA,CAAA;AAAA,MAC3D;AAAA,IACF;AAAA,GACD,CAAA;AAED,EAAA,MAAM,aAAA,GAAgBC,aAAS,MAAM;AACnC,IAAA,OAAOC,cAAA,CAAQ,KAAA,CAAM,UAAU,CAAA,GAC3B,KAAA,CAAM,UAAA,CAAW,MAAA,GAAS,CAAA,GAC1B,CAAC,YAAA,CAAa,KAAA,CAAM,UAAU,CAAA;AAAA,EACpC,CAAC,CAAA;AAED,EAAA,MAAM,cAAA,GAAiBD,aAAS,MAAG;AAlJrC,IAAA,IAAA,EAAA;AAkJwC,IAAA,OAAA,CAAA,EAAA,GAAAR,MAAA,IAAA,IAAA,GAAA,MAAA,GAAAA,MAAA,CAAM,eAAN,IAAA,GAAA,EAAA,GAAoB,KAAA;AAAA,EAAA,CAAK,CAAA;AAE/D,EAAA,MAAM,YAAA,GAAeQ,aAAS,MAAM;AAClC,IAAA,OACE,KAAA,CAAM,aACN,CAAC,cAAA,CAAe,SAChB,aAAA,CAAc,KAAA,KACb,SAAA,CAAU,KAAA,IAAS,MAAA,CAAO,aAAA,CAAA;AAAA,EAE/B,CAAC,CAAA;AACD,EAAA,MAAM,aAAA,GAAgBA,YAAA;AAAA,IAAS,MAC7B,MAAM,MAAA,IAAU,KAAA,CAAM,cAAc,CAAC,KAAA,CAAM,gBAAA,GACvC,EAAA,GACA,KAAA,CAAM;AAAA,GACZ;AACA,EAAA,MAAM,WAAA,GAAcA,YAAA;AAAA,IAAS,MAC3B,SAAS,EAAA,CAAG,SAAA,EAAW,CAAC,EAAE,aAAA,CAAc,KAAA,IAAS,QAAA,CAAS,KAAA,CAAM;AAAA,GAClE;AAEA,EAAA,MAAM,aAAA,GAAgBA,YAAA,CAAS,MAAA,CAAM,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,kBAAiB,EAAE,CAAA;AAClE,EAAA,MAAM,YAAA,GAAeA,YAAA;AAAA,IACnB,MACE,aAAA,CAAc,KAAA,IACbE,0BAAA,CAAsB,cAAc,KAAK;AAAA,GAC9C;AAEA,EAAA,MAAM,WAAWF,YAAA,CAAS,MAAO,MAAM,MAAA,GAAS,KAAA,CAAM,WAAW,CAAE,CAAA;AAEnE,EAAA,MAAM,mBAAA,GAAsBA,YAAA;AAAA,IAC1B,MAAM,MAAM,MAAA,IAAU,CAAC,OAAO,UAAA,IAAc,MAAA,CAAO,QAAQ,IAAA,KAAS;AAAA,GACtE;AAEA,EAAA,MAAM,SAAA,GAAYA,aAAS,MAAM;AAC/B,IAAA,IAAI,MAAM,OAAA,EAAS;AACjB,MAAA,OAAO,KAAA,CAAM,WAAA,IAAe,CAAA,CAAE,mBAAmB,CAAA;AAAA,IACnD,CAAA,MAAO;AACL,MAAA,IACE,KAAA,CAAM,UAAA,IACN,MAAA,CAAO,UAAA,IACP,MAAA,CAAO,QAAQ,IAAA,GAAO,CAAA,IACtB,oBAAA,CAAqB,KAAA,KAAU,CAAA,EAC/B;AACA,QAAA,OAAO,KAAA,CAAM,WAAA,IAAe,CAAA,CAAE,mBAAmB,CAAA;AAAA,MACnD;AACA,MAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,IAAA,KAAS,CAAA,EAAG;AAC7B,QAAA,OAAO,KAAA,CAAM,UAAA,IAAc,CAAA,CAAE,kBAAkB,CAAA;AAAA,MACjD;AAAA,IACF;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,MAAM,oBAAA,GAAuBA,YAAA;AAAA,IAC3B,MAAM,aAAa,KAAA,CAAM,MAAA,CAAO,CAAC,MAAA,KAAW,MAAA,CAAO,OAAO,CAAA,CAAE;AAAA,GAC9D;AAEA,EAAA,MAAM,YAAA,GAAeA,aAAS,MAAM;AAClC,IAAA,MAAM,OAAO,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA;AAC/C,IAAA,MAAM,UAAkC,EAAC;AACzC,IAAA,MAAA,CAAO,YAAA,CAAa,OAAA,CAAQ,CAAC,IAAA,KAAS;AACpC,MAAA,MAAM,QAAQ,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,IAAI,CAAA;AACpD,MAAA,IAAI,QAAQ,EAAA,EAAI;AACd,QAAA,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,MAC1B;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO,OAAA,CAAQ,MAAA,IAAU,IAAA,CAAK,MAAA,GAAS,OAAA,GAAU,IAAA;AAAA,EACnD,CAAC,CAAA;AAED,EAAA,MAAM,kBAAA,GAAqBA,YAAA;AAAA,IAAS,MAClC,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,aAAA,CAAc,QAAQ;AAAA,GAC1C;AAEA,EAAA,MAAM,aAAA,GAAgBA,aAAS,MAAM;AACnC,IAAA,MAAM,iBAAA,GAAoB,YAAA,CAAa,KAAA,CACpC,MAAA,CAAO,CAAC,MAAA,KAAW;AAClB,MAAA,OAAO,CAAC,MAAA,CAAO,OAAA;AAAA,IACjB,CAAC,CAAA,CACA,IAAA,CAAK,CAAC,MAAA,KAAW;AAChB,MAAA,OAAO,MAAA,CAAO,iBAAiB,MAAA,CAAO,UAAA;AAAA,IACxC,CAAC,CAAA;AACH,IAAA,OACE,MAAM,UAAA,IACN,KAAA,CAAM,eACN,MAAA,CAAO,UAAA,KAAe,MACtB,CAAC,iBAAA;AAAA,EAEL,CAAC,CAAA;AAED,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,IAAI,KAAA,CAAM,UAAA,IAAcG,iBAAA,CAAW,KAAA,CAAM,YAAY,CAAA,EAAG;AACxD,IAAA,IAAI,MAAM,UAAA,IAAc,KAAA,CAAM,MAAA,IAAUA,iBAAA,CAAW,MAAM,YAAY,CAAA;AACnE,MAAA;AACF,IAAA,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,CAAC,MAAA,KAAW;AA7O3C,MAAA,IAAA,EAAA;AA8OM,MAAA,CAAA,EAAA,GAAA,MAAA,CAAO,YAAA,KAAP,gCAAsB,MAAA,CAAO,UAAA,CAAA;AAAA,IAC/B,CAAC,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,aAAaC,8BAAA,EAAY;AAE/B,EAAA,MAAM,eAAA,GAAkBJ,YAAA;AAAA,IAAS,MAC/B,CAAC,OAAO,CAAA,CAAE,SAAS,UAAA,CAAW,KAAK,IAAI,OAAA,GAAU;AAAA,GACnD;AAEA,EAAA,MAAM,sBAAsBA,YAAA,CAAS;AAAA,IACnC,GAAA,GAAM;AACJ,MAAA,OACE,SAAS,KAAA,KACR,KAAA,CAAM,WACL,CAAC,mBAAA,CAAoB,SACpB,KAAA,CAAM,MAAA,IAAU,CAAC,CAAC,KAAA,CAAM,WAC1B,CAAC,UAAA,CAAW,SAAS,CAACK,aAAA,CAAQ,OAAO,aAAa,CAAA,CAAA;AAAA,IAEvD,CAAA;AAAA,IACA,IAAI,GAAA,EAAc;AAChB,MAAA,QAAA,CAAS,KAAA,GAAQ,GAAA;AAAA,IACnB;AAAA,GACD,CAAA;AAED,EAAA,MAAM,qBAAA,GAAwBL,aAAS,MAAM;AAC3C,IAAA,IAAI,MAAM,QAAA,IAAY,CAACM,iBAAA,CAAY,KAAA,CAAM,UAAU,CAAA,EAAG;AACpD,MAAA,OAAOC,wBAAY,KAAA,CAAM,UAAU,EAAE,MAAA,KAAW,CAAA,IAAK,CAAC,MAAA,CAAO,UAAA;AAAA,IAC/D;AACA,IAAA,MAAM,KAAA,GAAQN,eAAQ,KAAA,CAAM,UAAU,IAClC,KAAA,CAAM,UAAA,CAAW,CAAC,CAAA,GAClB,KAAA,CAAM,UAAA;AACV,IAAA,OAAO,MAAM,UAAA,IAAcK,iBAAA,CAAY,KAAK,CAAA,GAAI,CAAC,OAAO,UAAA,GAAa,IAAA;AAAA,EACvE,CAAC,CAAA;AAED,EAAA,MAAM,kBAAA,GAAqBN,aAAS,MAAM;AAjR5C,IAAA,IAAA,EAAA;AAkRI,IAAA,MAAM,YAAA,GAAA,CAAe,EAAA,GAAA,KAAA,CAAM,WAAA,KAAN,IAAA,GAAA,EAAA,GAAqB,EAAE,uBAAuB,CAAA;AACnE,IAAA,OAAO,MAAM,QAAA,IAAY,CAAC,aAAA,CAAc,KAAA,GACpC,eACA,MAAA,CAAO,aAAA;AAAA,EACb,CAAC,CAAA;AAMD,EAAA,MAAM,mBAAA,GAAsBA,YAAA,CAAS,MAAOQ,UAAA,GAAQ,OAAO,YAAa,CAAA;AAExE,EAAAC,SAAA;AAAA,IACE,MAAM,KAAA,CAAM,UAAA;AAAA,IACZ,CAAC,KAAK,MAAA,KAAW;AACf,MAAA,IAAI,MAAM,QAAA,EAAU;AAClB,QAAA,IAAI,KAAA,CAAM,UAAA,IAAc,CAAC,KAAA,CAAM,cAAA,EAAgB;AAC7C,UAAA,MAAA,CAAO,UAAA,GAAa,EAAA;AACpB,UAAA,iBAAA,CAAkB,EAAE,CAAA;AAAA,QACtB;AAAA,MACF;AACA,MAAA,WAAA,EAAY;AACZ,MAAA,IAAI,CAACC,qBAAA,CAAQ,GAAA,EAAK,MAAM,CAAA,IAAK,MAAM,aAAA,EAAe;AAChD,QAAA,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAU,SAAS,QAAA,CAAA,CAAU,KAAA,CAAM,CAAC,GAAA,KAAQX,gBAAU,GAAG,CAAA,CAAA;AAAA,MAC3D;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM;AAAA;AACR,GACF;AAEA,EAAAU,SAAA;AAAA,IACE,MAAM,QAAA,CAAS,KAAA;AAAA,IACf,CAAC,GAAA,KAAQ;AACP,MAAA,IAAI,GAAA,EAAK;AACP,QAAA,iBAAA,CAAkB,OAAO,UAAU,CAAA;AAAA,MACrC,CAAA,MAAO;AACL,QAAA,MAAA,CAAO,UAAA,GAAa,EAAA;AACpB,QAAA,MAAA,CAAO,aAAA,GAAgB,IAAA;AACvB,QAAA,MAAA,CAAO,YAAA,GAAe,IAAA;AACtB,QAAA,MAAA,CAAO,kBAAA,GAAqB,KAAA;AAAA,MAC9B;AAAA,IACF;AAAA,GACF;AAEA,EAAAA,SAAA;AAAA;AAAA;AAAA,IAGE,MAAM,MAAA,CAAO,OAAA,CAAQ,OAAA,EAAQ;AAAA,IAC7B,MAAM;AACJ,MAAA,IAAI,CAACE,aAAA,EAAU;AAEf,MAAA,WAAA,EAAY;AACZ,MAAA,IACE,MAAM,kBAAA,KACL,KAAA,CAAM,cAAc,KAAA,CAAM,MAAA,CAAA,IAC3B,qBAAqB,KAAA,EACrB;AACA,QAAA,uBAAA,EAAwB;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO;AAAA;AACT,GACF;AAEA,EAAAF,SAAA,CAAM,CAAC,MAAM,MAAA,CAAO,aAAA,EAAe,YAAY,CAAA,EAAG,CAAC,CAAC,GAAG,CAAA,KAAM;AAC3D,IAAA,IAAIG,cAAA,CAAS,GAAG,CAAA,IAAK,GAAA,GAAM,EAAA,EAAI;AAC7B,MAAA,WAAA,CAAY,KAAA,GAAQ,YAAA,CAAa,KAAA,CAAM,GAAG,KAAK,EAAC;AAAA,IAClD,CAAA,MAAO;AACL,MAAA,WAAA,CAAY,QAAQ,EAAC;AAAA,IACvB;AACA,IAAA,YAAA,CAAa,KAAA,CAAM,OAAA,CAAQ,CAAC,MAAA,KAAW;AACrC,MAAA,MAAA,CAAO,KAAA,GAAQ,YAAY,KAAA,KAAU,MAAA;AAAA,IACvC,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AAED,EAAAC,eAAA,CAAY,MAAM;AAGhB,IAAA,IAAI,OAAO,YAAA,EAAc;AACzB,IAAA,aAAA,EAAc;AAAA,EAChB,CAAC,CAAA;AAED,EAAA,MAAM,iBAAA,GAAoB,CAAC,GAAA,KAAgB;AACzC,IAAA,IAAI,MAAA,CAAO,aAAA,KAAkB,GAAA,IAAO,WAAA,CAAY,KAAA,EAAO;AACrD,MAAA;AAAA,IACF;AACA,IAAA,MAAA,CAAO,aAAA,GAAgB,GAAA;AACvB,IAAA,IAAI,KAAA,CAAM,UAAA,IAAcV,iBAAA,CAAW,KAAA,CAAM,YAAY,CAAA,EAAG;AACtD,MAAA,KAAA,CAAM,aAAa,GAAG,CAAA;AAAA,IACxB,CAAA,MAAA,IACE,MAAM,UAAA,IACN,KAAA,CAAM,UACNA,iBAAA,CAAW,KAAA,CAAM,YAAY,CAAA,EAC7B;AACA,MAAA,KAAA,CAAM,aAAa,GAAG,CAAA;AAAA,IACxB;AACA,IAAA,IACE,MAAM,kBAAA,KACL,KAAA,CAAM,cAAc,KAAA,CAAM,MAAA,CAAA,IAC3B,qBAAqB,KAAA,EACrB;AACA,MAAAW,YAAA,CAAS,uBAAuB,CAAA;AAAA,IAClC,CAAA,MAAO;AACL,MAAAA,YAAA,CAAS,mBAAmB,CAAA;AAAA,IAC9B;AAAA,EACF,CAAA;AAYA,EAAA,MAAM,0BAA0B,MAAM;AACpC,IAAA,MAAM,iBAAA,GAAoB,aAAa,KAAA,CAAM,MAAA;AAAA,MAC3C,CAAC,MAAM,CAAA,CAAE,OAAA,IAAW,CAAC,CAAA,CAAE,QAAA,IAAY,CAAC,CAAA,CAAE,MAAA,CAAO;AAAA,KAC/C;AACA,IAAA,MAAM,oBAAoB,iBAAA,CAAkB,IAAA,CAAK,CAAC,CAAA,KAAM,EAAE,OAAO,CAAA;AACjE,IAAA,MAAM,iBAAA,GAAoB,kBAAkB,CAAC,CAAA;AAC7C,IAAA,MAAM,YAAY,YAAA,CAAa,KAAA,CAAM,IAAI,CAAC,IAAA,KAAS,KAAK,KAAK,CAAA;AAC7D,IAAA,MAAA,CAAO,aAAA,GAAgB,aAAA;AAAA,MACrB,SAAA;AAAA,MACA,iBAAA,IAAqB;AAAA,KACvB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAI,CAAC,MAAM,QAAA,EAAU;AACnB,MAAA,MAAM,KAAA,GAAQb,eAAQ,KAAA,CAAM,UAAU,IAClC,KAAA,CAAM,UAAA,CAAW,CAAC,CAAA,GAClB,KAAA,CAAM,UAAA;AACV,MAAA,MAAM,MAAA,GAAS,UAAU,KAAK,CAAA;AAC9B,MAAA,MAAA,CAAO,gBAAgB,MAAA,CAAO,YAAA;AAC9B,MAAA,MAAA,CAAO,QAAA,GAAW,CAAC,MAAM,CAAA;AACzB,MAAA;AAAA,IACF,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,aAAA,GAAgB,EAAA;AAAA,IACzB;AACA,IAAA,MAAM,SAAmC,EAAC;AAC1C,IAAA,IAAI,CAACK,iBAAA,CAAY,KAAA,CAAM,UAAU,CAAA,EAAG;AAClC,MAAAC,uBAAA,CAAY,KAAA,CAAM,UAAU,CAAA,CAAE,OAAA,CAAQ,CAAC,KAAA,KAAU;AAC/C,QAAA,MAAA,CAAO,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,MAC9B,CAAC,CAAA;AAAA,IACH;AACA,IAAA,MAAA,CAAO,QAAA,GAAW,MAAA;AAAA,EACpB,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,CAAC,KAAA,KAAuB;AACxC,IAAA,IAAI,MAAA;AACJ,IAAA,MAAM,aAAA,GAAgBQ,qBAAc,KAAK,CAAA;AAEzC,IAAA,KAAA,IAAS,IAAI,MAAA,CAAO,aAAA,CAAc,OAAO,CAAA,EAAG,CAAA,IAAK,GAAG,CAAA,EAAA,EAAK;AACvD,MAAA,MAAM,YAAA,GAAe,kBAAA,CAAmB,KAAA,CAAM,CAAC,CAAA;AAC/C,MAAA,MAAM,YAAA,GAAe,aAAA,GACjBC,iBAAA,CAAI,YAAA,CAAa,OAAO,KAAA,CAAM,QAAQ,CAAA,KAAMA,iBAAA,CAAI,KAAA,EAAO,KAAA,CAAM,QAAQ,CAAA,GACrE,aAAa,KAAA,KAAU,KAAA;AAC3B,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,MAAA,GAAS;AAAA,UACP,KAAA,EAAO,YAAA,CAAa,KAAA,CACjB,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,GAAA,CAAI,OAAO,CAAA,CAC5B,OAAA,CAAQ,YAAY,CAAA;AAAA,UACvB,KAAA;AAAA,UACA,cAAc,YAAA,CAAa,YAAA;AAAA,UAC3B,IAAI,UAAA,GAAa;AACf,YAAA,OAAO,YAAA,CAAa,UAAA;AAAA,UACtB;AAAA,SACF;AACA,QAAA;AAAA,MACF;AAAA,IACF;AACA,IAAA,IAAI,QAAQ,OAAO,MAAA;AACnB,IAAA,MAAM,KAAA,GAAQ,aAAA,GAAgB,KAAA,CAAM,KAAA,GAAS,KAAA,IAAA,IAAA,GAAA,KAAA,GAAS,EAAA;AACtD,IAAA,MAAM,SAAA,GAAY;AAAA,MAChB,KAAA,EAAO,EAAA;AAAA,MACP,KAAA;AAAA,MACA,YAAA,EAAc;AAAA,KAChB;AACA,IAAA,OAAO,SAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,sBAAsB,MAAM;AAChC,IAAA,MAAM,MAAA,GAAS,OAAO,QAAA,CAAS,MAAA;AAC/B,IAAA,IAAI,SAAS,CAAA,EAAG;AACd,MAAA,MAAM,UAAA,GAAa,MAAA,CAAO,QAAA,CAAS,MAAA,GAAS,CAAC,CAAA;AAC7C,MAAA,MAAA,CAAO,aAAA,GAAgB,aAAa,KAAA,CAAM,SAAA;AAAA,QACxC,CAAC,IAAA,KAAS,WAAA,CAAY,UAAU,CAAA,KAAM,YAAY,IAAI;AAAA,OACxD;AAAA,IACF,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,aAAA,GAAgB,EAAA;AAAA,IACzB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,sBAAsB,MAAM;AAChC,IAAA,MAAA,CAAO,iBAAiB,MAAA,CAAO,UAAA;AAAA,MAC7B,MAAA,CAAO,gBAAA,CAAiB,YAAA,CAAa,KAAM,CAAA,CAAE;AAAA,KAC/C;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,yBAAyB,MAAM;AACnC,IAAA,MAAA,CAAO,iBAAA,GACL,eAAA,CAAgB,KAAA,CAAO,qBAAA,EAAsB,CAAE,KAAA;AAAA,EACnD,CAAA;AAEA,EAAA,MAAM,gBAAgB,MAAM;AApe9B,IAAA,IAAA,EAAA,EAAA,EAAA;AAqeI,IAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,UAAA,CAAW,KAAA,KAAX,mBAAkB,YAAA,KAAlB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,MAAM;AAxejC,IAAA,IAAA,EAAA,EAAA,EAAA;AAyeI,IAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,aAAA,CAAc,KAAA,KAAd,mBAAqB,YAAA,KAArB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,IAAI,OAAO,UAAA,CAAW,MAAA,GAAS,CAAA,IAAK,CAAC,SAAS,KAAA,EAAO;AACnD,MAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AAAA,IACnB;AACA,IAAA,iBAAA,CAAkB,OAAO,UAAU,CAAA;AAAA,EACrC,CAAA;AAEA,EAAA,MAAM,OAAA,GAAU,CAAC,KAAA,KAAiB;AAChC,IAAA,MAAA,CAAO,UAAA,GAAc,MAAM,MAAA,CAA4B,KAAA;AACvD,IAAA,IAAI,MAAM,MAAA,EAAQ;AAChB,MAAA,UAAA,CAAW,KAAA,GAAQ,IAAA;AACnB,MAAA,sBAAA,EAAuB;AAAA,IACzB,CAAA,MAAO;AACL,MAAA,OAAO,aAAA,EAAc;AAAA,IACvB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,sBAAA,GAAyBC,mBAAc,MAAM;AACjD,IAAA,aAAA,EAAc;AACd,IAAA,UAAA,CAAW,KAAA,GAAQ,KAAA;AAAA,EACrB,GAAG,QAAQ,CAAA;AAEX,EAAA,MAAM,UAAA,GAAa,CAAC,GAAA,KAAqC;AACvD,IAAA,IAAI,CAACP,qBAAA,CAAQ,KAAA,CAAM,UAAA,EAAY,GAAG,CAAA,EAAG;AACnC,MAAA,IAAA,CAAKQ,sBAAc,GAAG,CAAA;AAAA,IACxB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,0BAA0B,CAAC,KAAA,KAC/BC,2BAAA,CAAc,KAAA,EAAO,CAAC,EAAA,KAAO;AAC3B,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,aAAA,CAAc,GAAA,CAAI,EAAE,CAAA;AAC1C,IAAA,OAAO,EAAC,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAQ,QAAA,CAAA,IAAY,EAAC,iCAAQ,MAAA,CAAO,aAAA,CAAA;AAAA,EAC9C,CAAC,CAAA;AAEH,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAAqB;AAC1C,IAAA,MAAM,IAAA,GAAOC,mBAAa,CAAC,CAAA;AAC3B,IAAA,IAAI,CAAC,MAAM,QAAA,EAAU;AACrB,IAAA,IAAI,IAAA,KAASC,gBAAW,MAAA,EAAQ;AAChC,IAAA,IAAK,CAAA,CAAE,MAAA,CAA4B,KAAA,CAAM,MAAA,IAAU,CAAA,EAAG;AACpD,MAAA,MAAM,KAAA,GAAQd,uBAAA,CAAY,KAAA,CAAM,UAAU,EAAE,KAAA,EAAM;AAClD,MAAA,MAAM,oBAAA,GAAuB,wBAAwB,KAAK,CAAA;AAC1D,MAAA,IAAI,uBAAuB,CAAA,EAAG;AAC9B,MAAA,MAAM,cAAA,GAAiB,MAAM,oBAAoB,CAAA;AACjD,MAAA,KAAA,CAAM,MAAA,CAAO,sBAAsB,CAAC,CAAA;AACpC,MAAA,IAAA,CAAKe,4BAAoB,KAAK,CAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,IAAA,CAAK,cAAc,cAAc,CAAA;AAAA,IACnC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,CAAC,KAAA,EAAmB,GAAA,KAAqB;AACzD,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,QAAA,CAAS,OAAA,CAAQ,GAAG,CAAA;AACzC,IAAA,IAAI,KAAA,GAAQ,EAAA,IAAM,CAAC,cAAA,CAAe,KAAA,EAAO;AACvC,MAAA,MAAM,KAAA,GAAQf,uBAAA,CAAY,KAAA,CAAM,UAAU,EAAE,KAAA,EAAM;AAClD,MAAA,KAAA,CAAM,MAAA,CAAO,OAAO,CAAC,CAAA;AACrB,MAAA,IAAA,CAAKe,4BAAoB,KAAK,CAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,IAAA,CAAK,YAAA,EAAc,IAAI,KAAK,CAAA;AAAA,IAC9B;AACA,IAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,IAAA,KAAA,EAAM;AAAA,EACR,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAAiB;AACvC,IAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,QAAA,GAAW,KAAK,YAAA,CAAa,KAAA;AACjD,IAAA,IAAI,MAAM,QAAA,EAAU;AAClB,MAAA,KAAA,MAAW,IAAA,IAAQ,OAAO,QAAA,EAAU;AAClC,QAAA,IAAI,IAAA,CAAK,UAAA,EAAY,KAAA,CAAM,IAAA,CAAK,KAAK,KAAK,CAAA;AAAA,MAC5C;AAAA,IACF;AACA,IAAA,IAAA,CAAKA,4BAAoB,KAAK,CAAA;AAC9B,IAAA,UAAA,CAAW,KAAK,CAAA;AAChB,IAAA,MAAA,CAAO,aAAA,GAAgB,EAAA;AACvB,IAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AACjB,IAAA,IAAA,CAAK,OAAO,CAAA;AACZ,IAAA,KAAA,EAAM;AAAA,EACR,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,CAAC,MAAA,KAAiC;AA3jB/D,IAAA,IAAA,EAAA;AA4jBI,IAAA,IAAI,MAAM,QAAA,EAAU;AAClB,MAAA,MAAM,KAAA,GAAQf,yBAAY,EAAA,GAAA,KAAA,CAAM,UAAA,KAAN,YAAoB,EAAE,EAAE,KAAA,EAAM;AACxD,MAAA,MAAM,WAAA,GAAc,aAAA,CAAc,KAAA,EAAO,MAAM,CAAA;AAC/C,MAAA,IAAI,cAAc,EAAA,EAAI;AACpB,QAAA,KAAA,CAAM,MAAA,CAAO,aAAa,CAAC,CAAA;AAAA,MAC7B,WACE,KAAA,CAAM,aAAA,IAAiB,KACvB,KAAA,CAAM,MAAA,GAAS,MAAM,aAAA,EACrB;AACA,QAAA,KAAA,CAAM,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA,MACzB;AACA,MAAA,IAAA,CAAKe,4BAAoB,KAAK,CAAA;AAC9B,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,IAAI,OAAO,OAAA,EAAS;AAClB,QAAA,iBAAA,CAAkB,EAAE,CAAA;AAAA,MACtB;AACA,MAAA,IAAI,MAAM,UAAA,KAAe,MAAA,CAAO,OAAA,IAAW,CAAC,MAAM,cAAA,CAAA,EAAiB;AACjE,QAAA,MAAA,CAAO,UAAA,GAAa,EAAA;AAAA,MACtB;AAAA,IACF,CAAA,MAAO;AACL,MAAA,CAACZ,qBAAA,CAAQ,MAAM,UAAA,EAAY,MAAA,CAAO,KAAK,CAAA,IACrC,IAAA,CAAKY,0BAAA,EAAoB,MAAA,CAAO,KAAK,CAAA;AACvC,MAAA,UAAA,CAAW,OAAO,KAAK,CAAA;AACvB,MAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AAAA,IACnB;AACA,IAAA,KAAA,EAAM;AACN,IAAA,IAAI,SAAS,KAAA,EAAO;AACpB,IAAAR,YAAA,CAAS,MAAM;AACb,MAAA,cAAA,CAAe,MAAM,CAAA;AAAA,IACvB,CAAC,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,GAAA,EAAoB,MAAA,KAAiC;AAC1E,IAAA,IAAIR,iBAAA,CAAY,MAAM,CAAA,EAAG,OAAO,EAAA;AAChC,IAAA,IAAI,CAACiB,gBAAS,MAAA,CAAO,KAAK,GAAG,OAAO,GAAA,CAAI,OAAA,CAAQ,MAAA,CAAO,KAAK,CAAA;AAE5D,IAAA,OAAO,GAAA,CAAI,SAAA,CAAU,CAAC,IAAA,KAAS;AAC7B,MAAA,OAAOb,qBAAA,CAAQM,kBAAI,IAAA,EAAM,KAAA,CAAM,QAAQ,CAAA,EAAG,WAAA,CAAY,MAAM,CAAC,CAAA;AAAA,IAC/D,CAAC,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CACrB,MAAA,KAIG;AA1mBP,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA2mBI,IAAA,MAAM,YAAA,GAAef,eAAQ,MAAM,CAAA,GAAI,OAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA,GAAI,MAAA;AACnE,IAAA,IAAI,MAAA,GAAS,IAAA;AAEb,IAAA,IAAI,CAACuB,mBAAA,CAAM,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAc,KAAK,CAAA,EAAG;AAC/B,MAAA,MAAM,OAAA,GAAU,aAAa,KAAA,CAAM,MAAA;AAAA,QACjC,CAAC,IAAA,KAAS,IAAA,CAAK,KAAA,KAAU,YAAA,CAAa;AAAA,OACxC;AACA,MAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,QAAA,MAAA,GAAS,OAAA,CAAQ,CAAC,CAAA,CAAE,GAAA;AAAA,MACtB;AAAA,IACF;AAEA,IAAA,IAAI,UAAA,CAAW,SAAS,MAAA,EAAQ;AAC9B,MAAA,MAAM,IAAA,GAAA,CAAO,kCAAW,KAAA,KAAX,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,cAAlB,IAAA,GAAA,MAAA,GAAA,EAAA,CAA6B,UAAA,KAA7B,mBAAyC,aAAA,KAAzC,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA;AAAA,QAAA,EAAA;AAAA,QACX,CAAA,CAAA,EAAI,QAAA,CAAS,EAAA,CAAG,UAAA,EAAY,MAAM,CAAC,CAAA;AAAA,OAAA;AAErC,MAAA,IAAI,IAAA,EAAM;AACR,QAAAC,qBAAA,CAAe,MAAqB,MAAM,CAAA;AAAA,MAC5C;AAAA,IACF;AACA,IAAA,CAAA,EAAA,GAAA,YAAA,CAAa,UAAb,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,YAAA,EAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,EAAA,KAA6B;AACnD,IAAA,MAAA,CAAO,OAAA,CAAQ,GAAA,CAAI,EAAA,CAAG,KAAA,EAAO,EAAE,CAAA;AAC/B,IAAA,MAAA,CAAO,aAAA,CAAc,GAAA,CAAI,EAAA,CAAG,KAAA,EAAO,EAAE,CAAA;AAAA,EACvC,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CAAC,GAAA,EAAkB,EAAA,KAA6B;AACtE,IAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,GAAA,CAAI,GAAG,MAAM,EAAA,EAAI;AAClC,MAAA,MAAA,CAAO,OAAA,CAAQ,OAAO,GAAG,CAAA;AAAA,IAC3B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,SAAA,GAAYzB,aAAS,MAAM;AA7oBnC,IAAA,IAAA,EAAA,EAAA,EAAA;AA8oBI,IAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,UAAA,CAAW,KAAA,KAAX,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,SAAA,KAAlB,IAAA,GAAA,MAAA,GAAA,EAAA,CAA6B,UAAA;AAAA,EACtC,CAAC,CAAA;AAED,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,MAAA,CAAO,YAAA,GAAe,KAAA;AACtB,IAAAc,YAAA,CAAS,MAAM;AAnpBnB,MAAA,IAAA,EAAA;AAopBM,MAAA,CAAA,EAAA,GAAA,YAAA,CAAa,UAAb,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,MAAA,EAAA;AACpB,MAAA,cAAA,CAAe,OAAO,QAAQ,CAAA;AAAA,IAChC,CAAC,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,QAAQ,MAAM;AAzpBtB,IAAA,IAAA,EAAA;AA0pBI,IAAA,CAAA,EAAA,GAAA,QAAA,CAAS,UAAT,IAAA,GAAA,MAAA,GAAA,EAAA,CAAgB,KAAA,EAAA;AAAA,EAClB,CAAA;AAEA,EAAA,MAAM,OAAO,MAAM;AA7pBrB,IAAA,IAAA,EAAA;AA8pBI,IAAA,IAAI,SAAS,KAAA,EAAO;AAClB,MAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AACjB,MAAAA,YAAA,CAAS,MAAG;AAhqBlB,QAAA,IAAAY,GAAAA;AAgqBqB,QAAA,OAAA,CAAAA,GAAAA,GAAA,QAAA,CAAS,KAAA,KAAT,IAAA,GAAA,MAAA,GAAAA,GAAAA,CAAgB,IAAA,EAAA;AAAA,MAAA,CAAM,CAAA;AACrC,MAAA;AAAA,IACF;AACA,IAAA,CAAA,EAAA,GAAA,QAAA,CAAS,UAAT,IAAA,GAAA,MAAA,GAAA,EAAA,CAAgB,IAAA,EAAA;AAAA,EAClB,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAAiB;AACzC,IAAA,cAAA,CAAe,KAAK,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAAiB;AAC3C,IAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AAEjB,IAAA,IAAI,UAAU,KAAA,EAAO;AACnB,MAAA,MAAM,MAAA,GAAS,IAAI,UAAA,CAAW,MAAA,EAAQ,KAAK,CAAA;AAC3C,MAAAZ,YAAA,CAAS,MAAM,UAAA,CAAW,MAAM,CAAC,CAAA;AAAA,IACnC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,YAAY,MAAM;AACtB,IAAA,IAAI,MAAA,CAAO,UAAA,CAAW,MAAA,GAAS,CAAA,EAAG;AAChC,MAAA,MAAA,CAAO,UAAA,GAAa,EAAA;AAAA,IACtB,CAAA,MAAO;AACL,MAAA,QAAA,CAAS,KAAA,GAAQ,KAAA;AAAA,IACnB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,CAAC,KAAA,KAAkB;AA3rBxC,IAAA,IAAA,EAAA;AA4rBI,IAAA,IACE,cAAA,CAAe,KAAA,IACd,KAAA,CAAM,UAAA,IACL,QAAA,CAAS,KAAA,IACT,KAAA,IACA,EAAA,CAAC,EAAA,GAAA,SAAA,CAAU,KAAA,KAAV,IAAA,GAAA,MAAA,GAAA,EAAA,CAAiB,QAAA,CAAS,KAAA,CAAM,MAAA,CAAA,CAAA;AAEnC,MAAA;AAIF,IAAA,IAAIN,UAAA,SAAc,aAAA,GAAgB,IAAA;AAElC,IAAA,IAAI,OAAO,kBAAA,EAAoB;AAE7B,MAAA,MAAA,CAAO,kBAAA,GAAqB,KAAA;AAAA,IAC9B,CAAA,MAAO;AACL,MAAA,QAAA,CAAS,KAAA,GAAQ,CAAC,QAAA,CAAS,KAAA;AAAA,IAC7B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,IAAI,CAAC,SAAS,KAAA,EAAO;AACnB,MAAA,UAAA,EAAW;AAAA,IACb,CAAA,MAAO;AACL,MAAA,MAAM,MAAA,GAAS,YAAA,CAAa,KAAA,CAAM,MAAA,CAAO,aAAa,CAAA;AACtD,MAAA,IAAI,MAAA,IAAU,CAAC,MAAA,CAAO,UAAA,EAAY;AAChC,QAAA,kBAAA,CAAmB,MAAM,CAAA;AAAA,MAC3B;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAClB,IAAA,KACG;AACH,IAAA,OAAOe,eAAA,CAAS,IAAA,CAAK,KAAK,CAAA,GAAIP,iBAAA,CAAI,KAAK,KAAA,EAAO,KAAA,CAAM,QAAQ,CAAA,GAAI,IAAA,CAAK,KAAA;AAAA,EACvE,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqBhB,YAAA;AAAA,IAAS,MAClC,YAAA,CAAa,KAAA,CACV,MAAA,CAAO,CAAC,MAAA,KAAW,MAAA,CAAO,OAAO,CAAA,CACjC,KAAA,CAAM,CAAC,MAAA,KAAW,OAAO,UAAU;AAAA,GACxC;AAEA,EAAA,MAAM,WAAA,GAAcA,aAAS,MAAM;AACjC,IAAA,IAAI,CAAC,MAAM,QAAA,EAAU;AACnB,MAAA,OAAO,EAAC;AAAA,IACV;AACA,IAAA,OAAO,KAAA,CAAM,eACT,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,EAAG,KAAA,CAAM,eAAe,CAAA,GAC9C,MAAA,CAAO,QAAA;AAAA,EACb,CAAC,CAAA;AAED,EAAA,MAAM,eAAA,GAAkBA,aAAS,MAAM;AACrC,IAAA,IAAI,CAAC,MAAM,QAAA,EAAU;AACnB,MAAA,OAAO,EAAC;AAAA,IACV;AACA,IAAA,OAAO,KAAA,CAAM,eACT,MAAA,CAAO,QAAA,CAAS,MAAM,KAAA,CAAM,eAAe,IAC3C,EAAC;AAAA,EACP,CAAC,CAAA;AAED,EAAA,MAAM,eAAA,GAAkB,CAAC,SAAA,KAA+B;AACtD,IAAA,IAAI,CAAC,SAAS,KAAA,EAAO;AACnB,MAAA,QAAA,CAAS,KAAA,GAAQ,IAAA;AACjB,MAAA;AAAA,IACF;AACA,IAAA,IACE,OAAO,OAAA,CAAQ,IAAA,KAAS,KACxB,oBAAA,CAAqB,KAAA,KAAU,KAC/B,WAAA,CAAY,KAAA;AAEZ,MAAA;AAEF,IAAA,IAAI,CAAC,mBAAmB,KAAA,EAAO;AAC7B,MAAA,IAAI,cAAc,MAAA,EAAQ;AACxB,QAAA,MAAA,CAAO,aAAA,EAAA;AACP,QAAA,IAAI,MAAA,CAAO,aAAA,KAAkB,MAAA,CAAO,OAAA,CAAQ,IAAA,EAAM;AAChD,UAAA,MAAA,CAAO,aAAA,GAAgB,CAAA;AAAA,QACzB;AAAA,MACF,CAAA,MAAA,IAAW,cAAc,MAAA,EAAQ;AAC/B,QAAA,MAAA,CAAO,aAAA,EAAA;AACP,QAAA,IAAI,MAAA,CAAO,gBAAgB,CAAA,EAAG;AAC5B,UAAA,MAAA,CAAO,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAQ,IAAA,GAAO,CAAA;AAAA,QAC/C;AAAA,MACF;AACA,MAAA,MAAM,MAAA,GAAS,YAAA,CAAa,KAAA,CAAM,MAAA,CAAO,aAAa,CAAA;AACtD,MAAA,IAAI,MAAA,CAAO,UAAA,IAAc,CAAC,MAAA,CAAO,OAAA,EAAS;AACxC,QAAA,eAAA,CAAgB,SAAS,CAAA;AAAA,MAC3B;AACA,MAAAc,YAAA,CAAS,MAAM,cAAA,CAAe,WAAA,CAAY,KAAK,CAAC,CAAA;AAAA,IAClD;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,CACzB,GAAA,EACA,KAAA,EACA,MACA,GAAA,KACG;AACH,IAAA,KAAA,IAAS,IAAI,KAAA,EAAO,CAAA,IAAK,KAAK,CAAA,GAAI,GAAA,EAAK,KAAK,IAAA,EAAM;AAChD,MAAA,MAAM,GAAA,GAAM,IAAI,CAAC,CAAA;AACjB,MAAA,IAAI,EAAC,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,UAAA,CAAA,KAAc,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,OAAA,CAAA,EAAS;AACpC,QAAA,OAAO,CAAA;AAAA,MACT;AAAA,IACF;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,WAAA,EAAqB,IAAA,KAAwB;AAzyBpE,IAAA,IAAA,EAAA;AA0yBI,IAAA,MAAM,GAAA,GAAM,OAAO,OAAA,CAAQ,IAAA;AAC3B,IAAA,IAAI,QAAQ,CAAA,EAAG;AACf,IAAA,MAAM,KAAA,GAAQa,mBAAA,CAAM,WAAA,EAAa,CAAA,EAAG,MAAM,CAAC,CAAA;AAC3C,IAAA,MAAM,UAAU,YAAA,CAAa,KAAA;AAC7B,IAAA,MAAM,SAAA,GAAY,IAAA,KAAS,IAAA,GAAO,EAAA,GAAK,CAAA;AACvC,IAAA,MAAM,QAAA,GAAA,CACJ,EAAA,GAAA,kBAAA,CAAmB,OAAA,EAAS,KAAA,EAAO,WAAW,GAAG,CAAA,KAAjD,IAAA,GAAA,EAAA,GACA,kBAAA,CAAmB,OAAA,EAAS,KAAA,GAAQ,SAAA,EAAW,CAAC,WAAW,GAAG,CAAA;AAEhE,IAAA,IAAI,YAAY,IAAA,EAAM;AACpB,MAAA,MAAA,CAAO,aAAA,GAAgB,QAAA;AACvB,MAAAb,YAAA,CAAS,MAAM,cAAA,CAAe,WAAA,CAAY,KAAK,CAAC,CAAA;AAAA,IAClD;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAAqB;AAC1C,IAAA,MAAM,IAAA,GAAOM,mBAAa,CAAC,CAAA;AAC3B,IAAA,IAAI,gBAAA,GAAmB,IAAA;AACvB,IAAA,QAAQ,IAAA;AAAM,MACZ,KAAKC,eAAA,CAAW,EAAA;AACd,QAAA,eAAA,CAAgB,MAAM,CAAA;AACtB,QAAA;AAAA,MACF,KAAKA,eAAA,CAAW,IAAA;AACd,QAAA,eAAA,CAAgB,MAAM,CAAA;AACtB,QAAA;AAAA,MACF,KAAKA,eAAA,CAAW,KAAA;AAAA,MAChB,KAAKA,eAAA,CAAW,WAAA;AACd,QAAA,IAAI,CAAC,YAAY,KAAA,EAAO;AACtB,UAAA,YAAA,EAAa;AAAA,QACf;AACA,QAAA;AAAA,MACF,KAAKA,eAAA,CAAW,GAAA;AACd,QAAA,SAAA,EAAU;AACV,QAAA;AAAA,MACF,KAAKA,eAAA,CAAW,SAAA;AACd,QAAA,gBAAA,GAAmB,KAAA;AACnB,QAAA,aAAA,CAAc,CAAC,CAAA;AACf,QAAA;AAAA,MACF,KAAKA,eAAA,CAAW,IAAA;AACd,QAAA,IAAI,CAAC,SAAS,KAAA,EAAO;AACrB,QAAA,WAAA,CAAY,GAAG,MAAM,CAAA;AACrB,QAAA;AAAA,MACF,KAAKA,eAAA,CAAW,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,KAAA,EAAO;AACrB,QAAA,WAAA,CAAY,MAAA,CAAO,OAAA,CAAQ,IAAA,GAAO,CAAA,EAAG,IAAI,CAAA;AACzC,QAAA;AAAA,MACF,KAAKA,eAAA,CAAW,MAAA;AACd,QAAA,IAAI,CAAC,SAAS,KAAA,EAAO;AACrB,QAAA,WAAA,CAAY,MAAA,CAAO,aAAA,GAAgB,EAAA,EAAI,IAAI,CAAA;AAC3C,QAAA;AAAA,MACF,KAAKA,eAAA,CAAW,QAAA;AACd,QAAA,IAAI,CAAC,SAAS,KAAA,EAAO;AACrB,QAAA,WAAA,CAAY,MAAA,CAAO,aAAA,GAAgB,EAAA,EAAI,MAAM,CAAA;AAC7C,QAAA;AAAA,MACF;AACE,QAAA,gBAAA,GAAmB,KAAA;AACnB,QAAA;AAAA;AAEJ,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,CAAA,CAAE,eAAA,EAAgB;AAAA,IACpB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAI,CAAC,YAAA,CAAa,KAAA,EAAO,OAAO,CAAA;AAChC,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,gBAAA,CAAiB,YAAA,CAAa,KAAK,CAAA;AACxD,IAAA,OAAO,MAAA,CAAO,UAAA,CAAW,KAAA,CAAM,GAAA,IAAO,KAAK,CAAA;AAAA,EAC7C,CAAA;AAGA,EAAA,MAAM,QAAA,GAAWrB,aAAS,MAAM;AAC9B,IAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,IAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,UAAA,GAAa,QAAA,GAAW4B,wBAAA,GAAsB,CAAA;AAC3E,IAAA,MAAM,QAAA,GACJ,eAAA,CAAgB,KAAA,IAAS,KAAA,CAAM,eAAA,KAAoB,CAAA,GAC/C,MAAA,CAAO,cAAA,GACP,MAAA,CAAO,iBAAA,GACP,QAAA,GACA,cAAA,GACA,OAAO,cAAA,GAAiB,cAAA;AAC9B,IAAA,OAAO,EAAE,QAAA,EAAU,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAA,EAAK;AAAA,EACrC,CAAC,CAAA;AAED,EAAA,MAAM,gBAAA,GAAmB5B,aAAS,MAAM;AACtC,IAAA,OAAO,EAAE,QAAA,EAAU,CAAA,EAAG,MAAA,CAAO,cAAc,CAAA,EAAA,CAAA,EAAK;AAAA,EAClD,CAAC,CAAA;AAED,EAAA,MAAM,WAAA,GAAc,CAAC,IAAA,KAAoD;AACvE,IAAA,IAAA,CAAK,gBAAgB,IAAI,CAAA;AAAA,EAC3B,CAAA;AAEA,EAAA6B,sBAAA,CAAkB,cAAc,mBAAmB,CAAA;AACnD,EAAAA,sBAAA,CAAkB,YAAY,aAAa,CAAA;AAC3C,EAAAA,sBAAA,CAAkB,YAAY,gBAAgB,CAAA;AAC9C,EAAAA,sBAAA,CAAkB,iBAAiB,sBAAsB,CAAA;AAGzD,EAAA,IAAI,IAAA;AACJ,EAAApB,SAAA;AAAA,IACE,MAAM,mBAAA,CAAoB,KAAA;AAAA,IAC1B,CAAC,MAAA,KAAW;AACV,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,IAAA,GAAOoB,sBAAA,CAAkB,OAAA,EAAS,aAAa,CAAA,CAAE,IAAA;AAAA,MACnD,CAAA,MAAO;AACL,QAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,EAAA;AACA,QAAA,IAAA,GAAO,MAAA;AAAA,MACT;AACA,MAAA,IAAA,CAAK,kBAAkB,MAAM,CAAA;AAAA,IAC/B;AAAA,GACF;AAEA,EAAAC,aAAA,CAAU,MAAM;AACd,IAAA,WAAA,EAAY;AAAA,EACd,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,oBAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA,sBAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,cAAA;AAAA,IACA,aAAA;AAAA,IACA,qBAAA;AAAA,IACA,kBAAA;AAAA,IACA,mBAAA;AAAA,IACA,cAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA,eAAA;AAAA,IACA,WAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,sBAAA;AAAA,IACA,uBAAA;AAAA,IACA,oBAAA;AAAA,IACA,aAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,eAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,gBAAA;AAAA,IACA,kBAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,mBAAA;AAAA,IACA,WAAA;AAAA,IACA,eAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA;AAAA,IAGA,QAAA;AAAA,IACA,gBAAA;AAAA;AAAA,IAGA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -436,7 +436,7 @@ const useSelect = (props, emit) => {
|
|
|
436
436
|
if (option.created) {
|
|
437
437
|
handleQueryChange("");
|
|
438
438
|
}
|
|
439
|
-
if (props.filterable && !props.reserveKeyword) {
|
|
439
|
+
if (props.filterable && (option.created || !props.reserveKeyword)) {
|
|
440
440
|
states.inputValue = "";
|
|
441
441
|
}
|
|
442
442
|
} else {
|