@element-plus/nightly 0.0.20240829 → 0.0.20240831
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/attributes.json +1 -1
- package/dist/index.css +1 -1
- package/dist/index.full.js +24 -2
- package/dist/index.full.min.js +6 -6
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +6 -6
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +24 -2
- 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/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/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/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/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/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-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/autocomplete/src/autocomplete.vue.d.ts +3 -3
- package/es/components/check-tag/src/check-tag.d.ts +1 -0
- package/es/components/check-tag/src/check-tag.mjs +1 -0
- package/es/components/check-tag/src/check-tag.mjs.map +1 -1
- package/es/components/check-tag/src/check-tag.vue.d.ts +3 -0
- package/es/components/check-tag/src/check-tag2.mjs +4 -0
- package/es/components/check-tag/src/check-tag2.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker.d.ts +1 -1
- package/es/components/dropdown/src/dropdown.vue.d.ts +1 -1
- package/es/components/input/src/input.vue.d.ts +1 -1
- package/es/components/input/src/input2.mjs +3 -0
- package/es/components/input/src/input2.mjs.map +1 -1
- package/es/components/mention/src/mention.vue.d.ts +4 -4
- package/es/components/mention/src/mention2.mjs +3 -0
- package/es/components/mention/src/mention2.mjs.map +1 -1
- package/es/components/popover/src/popover.vue.d.ts +1 -1
- package/es/components/select/index.mjs +1 -1
- package/es/components/select/src/select.mjs +397 -104
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/select/src/select2.mjs +104 -397
- package/es/components/select/src/select2.mjs.map +1 -1
- package/es/components/select/src/useSelect.mjs +3 -0
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/src/useSelect.mjs +3 -0
- package/es/components/select-v2/src/useSelect.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue.d.ts +1 -1
- package/es/components/time-picker/src/time-picker.d.ts +1 -1
- package/es/hooks/use-focus-controller/index.mjs +6 -1
- package/es/hooks/use-focus-controller/index.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/autocomplete/src/autocomplete.vue.d.ts +3 -3
- package/lib/components/check-tag/src/check-tag.d.ts +1 -0
- package/lib/components/check-tag/src/check-tag.js +1 -0
- package/lib/components/check-tag/src/check-tag.js.map +1 -1
- package/lib/components/check-tag/src/check-tag.vue.d.ts +3 -0
- package/lib/components/check-tag/src/check-tag2.js +4 -0
- package/lib/components/check-tag/src/check-tag2.js.map +1 -1
- package/lib/components/date-picker/src/date-picker.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown.vue.d.ts +1 -1
- package/lib/components/input/src/input.vue.d.ts +1 -1
- package/lib/components/input/src/input2.js +3 -0
- package/lib/components/input/src/input2.js.map +1 -1
- package/lib/components/mention/src/mention.vue.d.ts +4 -4
- package/lib/components/mention/src/mention2.js +3 -0
- package/lib/components/mention/src/mention2.js.map +1 -1
- package/lib/components/popover/src/popover.vue.d.ts +1 -1
- package/lib/components/select/index.js +1 -1
- package/lib/components/select/src/select.js +397 -104
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/select/src/select2.js +104 -397
- package/lib/components/select/src/select2.js.map +1 -1
- package/lib/components/select/src/useSelect.js +3 -0
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/src/useSelect.js +3 -0
- package/lib/components/select-v2/src/useSelect.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue.d.ts +1 -1
- package/lib/components/time-picker/src/time-picker.d.ts +1 -1
- package/lib/hooks/use-focus-controller/index.js +5 -0
- package/lib/hooks/use-focus-controller/index.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/tags.json +1 -1
- package/theme-chalk/el-check-tag.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/check-tag.scss +31 -3
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mention2.mjs","sources":["../../../../../../packages/components/mention/src/mention.vue"],"sourcesContent":["<template>\n <div ref=\"wrapperRef\" :class=\"ns.b()\">\n <el-input\n v-bind=\"mergeProps(passInputProps, $attrs)\"\n ref=\"elInputRef\"\n :model-value=\"modelValue\"\n :role=\"dropdownVisible ? 'combobox' : undefined\"\n :aria-activedescendant=\"dropdownVisible ? hoveringId || '' : undefined\"\n :aria-controls=\"dropdownVisible ? contentId : undefined\"\n :aria-expanded=\"dropdownVisible || undefined\"\n :aria-label=\"ariaLabel\"\n :aria-autocomplete=\"dropdownVisible ? 'none' : undefined\"\n :aria-haspopup=\"dropdownVisible ? 'listbox' : undefined\"\n @input=\"handleInputChange\"\n @keydown=\"handleInputKeyDown\"\n @mousedown=\"handleInputMouseDown\"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </el-input>\n <el-tooltip\n ref=\"tooltipRef\"\n :visible=\"dropdownVisible\"\n :popper-class=\"[ns.e('popper'), popperClass]\"\n :popper-options=\"popperOptions\"\n :placement=\"computedPlacement\"\n :fallback-placements=\"computedFallbackPlacements\"\n effect=\"light\"\n pure\n :offset=\"offset\"\n :show-arrow=\"showArrow\"\n >\n <template #default>\n <div :style=\"cursorStyle\" />\n </template>\n <template #content>\n <el-mention-dropdown\n ref=\"dropdownRef\"\n :options=\"filteredOptions\"\n :disabled=\"disabled\"\n :loading=\"loading\"\n :content-id=\"contentId\"\n :aria-label=\"ariaLabel\"\n @select=\"handleSelect\"\n @click.stop=\"elInputRef?.focus\"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </el-mention-dropdown>\n </template>\n </el-tooltip>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, mergeProps, nextTick, ref } from 'vue'\nimport { pick } from 'lodash-unified'\nimport { useFocusController, useId, useNamespace } from '@element-plus/hooks'\nimport ElInput, { inputProps } from '@element-plus/components/input'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { isFunction } from '@element-plus/utils'\nimport { mentionEmits, mentionProps } from './mention'\nimport { getCursorPosition, getMentionCtx } from './helper'\nimport ElMentionDropdown from './mention-dropdown.vue'\n\nimport type { Placement } from '@popperjs/core'\nimport type { CSSProperties } from 'vue'\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { MentionCtx, MentionOption } from './types'\n\ndefineOptions({\n name: 'ElMention',\n})\n\nconst props = defineProps(mentionProps)\nconst emit = defineEmits(mentionEmits)\n\nconst passInputProps = computed(() => pick(props, Object.keys(inputProps)))\n\nconst ns = useNamespace('mention')\nconst contentId = useId()\n\nconst elInputRef = ref<InputInstance>()\nconst tooltipRef = ref<TooltipInstance>()\nconst dropdownRef = ref<InstanceType<typeof ElMentionDropdown>>()\n\nconst visible = ref(false)\nconst cursorStyle = ref<CSSProperties>()\nconst mentionCtx = ref<MentionCtx>()\n\nconst computedPlacement = computed<Placement>(() =>\n props.showArrow ? props.placement : `${props.placement}-start`\n)\n\nconst computedFallbackPlacements = computed<Placement[]>(() =>\n props.showArrow ? ['bottom', 'top'] : ['bottom-start', 'top-start']\n)\n\nconst filteredOptions = computed(() => {\n const { filterOption, options } = props\n if (!mentionCtx.value || !filterOption) return options\n return options.filter((option) =>\n filterOption(mentionCtx.value!.pattern, option)\n )\n})\n\nconst dropdownVisible = computed(() => {\n return visible.value && (!!filteredOptions.value.length || props.loading)\n})\n\nconst hoveringId = computed(() => {\n return `${contentId.value}-${dropdownRef.value?.hoveringIndex}`\n})\n\nconst handleInputChange = (value: string) => {\n emit('update:modelValue', value)\n syncAfterCursorMove()\n}\n\nconst handleInputKeyDown = (e: KeyboardEvent | Event) => {\n if (!('key' in e)) return\n if (elInputRef.value?.isComposing) return\n if (['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n syncAfterCursorMove()\n } else if (['ArrowUp', 'ArrowDown'].includes(e.key)) {\n if (!visible.value) return\n e.preventDefault()\n const direction = e.key === 'ArrowUp' ? 'prev' : 'next'\n dropdownRef.value?.navigateOptions(direction)\n } else if (['Enter'].includes(e.key)) {\n if (!visible.value) return\n e.preventDefault()\n if (dropdownRef.value?.hoverOption) {\n dropdownRef.value?.selectHoverOption()\n } else {\n visible.value = false\n }\n } else if (['Escape'].includes(e.key)) {\n if (!visible.value) return\n e.preventDefault()\n visible.value = false\n } else if (['Backspace'].includes(e.key)) {\n if (props.whole && mentionCtx.value) {\n const { splitIndex, selectionEnd, pattern, prefixIndex, prefix } =\n mentionCtx.value\n const inputEl = getInputEl()\n if (!inputEl) return\n const inputValue = inputEl.value\n const matchOption = props.options.find((item) => item.value === pattern)\n const isWhole = isFunction(props.checkIsWhole)\n ? props.checkIsWhole(pattern, prefix)\n : matchOption\n if (isWhole && splitIndex !== -1 && splitIndex + 1 === selectionEnd) {\n e.preventDefault()\n const newValue =\n inputValue.slice(0, prefixIndex) + inputValue.slice(splitIndex + 1)\n emit(UPDATE_MODEL_EVENT, newValue)\n\n const newSelectionEnd = prefixIndex\n nextTick(() => {\n // input value is updated\n inputEl.selectionStart = newSelectionEnd\n inputEl.selectionEnd = newSelectionEnd\n syncDropdownVisible()\n })\n }\n }\n }\n}\n\nconst { wrapperRef } = useFocusController(elInputRef, {\n afterFocus() {\n syncAfterCursorMove()\n },\n beforeBlur(event) {\n return tooltipRef.value?.isFocusInsideContent(event)\n },\n afterBlur() {\n visible.value = false\n },\n})\n\nconst handleInputMouseDown = () => {\n syncAfterCursorMove()\n}\n\nconst handleSelect = (item: MentionOption) => {\n if (!mentionCtx.value) return\n const inputEl = getInputEl()\n if (!inputEl) return\n const inputValue = inputEl.value\n const { split } = props\n\n const newEndPart = inputValue.slice(mentionCtx.value.end)\n const alreadySeparated = newEndPart.startsWith(split)\n const newMiddlePart = `${item.value}${alreadySeparated ? '' : split}`\n\n const newValue =\n inputValue.slice(0, mentionCtx.value.start) + newMiddlePart + newEndPart\n\n emit(UPDATE_MODEL_EVENT, newValue)\n emit('select', item, mentionCtx.value.prefix)\n\n const newSelectionEnd =\n mentionCtx.value.start + newMiddlePart.length + (alreadySeparated ? 1 : 0)\n\n nextTick(() => {\n // input value is updated\n inputEl.selectionStart = newSelectionEnd\n inputEl.selectionEnd = newSelectionEnd\n inputEl.focus()\n syncDropdownVisible()\n })\n}\n\nconst getInputEl = () =>\n props.type === 'textarea'\n ? elInputRef.value?.textarea\n : elInputRef.value?.input\n\nconst syncAfterCursorMove = () => {\n // can't use nextTick(), get cursor position will be wrong\n setTimeout(() => {\n syncCursor()\n syncDropdownVisible()\n nextTick(() => tooltipRef.value?.updatePopper())\n }, 0)\n}\n\nconst syncCursor = () => {\n const inputEl = getInputEl()\n if (!inputEl) return\n\n const caretPosition = getCursorPosition(inputEl)\n const inputRect = inputEl.getBoundingClientRect()\n const elInputRect = elInputRef.value!.$el.getBoundingClientRect()\n\n cursorStyle.value = {\n position: 'absolute',\n width: 0,\n height: `${caretPosition.height}px`,\n left: `${caretPosition.left + inputRect.left - elInputRect.left}px`,\n top: `${caretPosition.top + inputRect.top - elInputRect.top}px`,\n }\n}\n\nconst syncDropdownVisible = () => {\n const inputEl = getInputEl()\n if (document.activeElement !== inputEl) {\n visible.value = false\n return\n }\n const { prefix, split } = props\n mentionCtx.value = getMentionCtx(inputEl, prefix, split)\n if (mentionCtx.value && mentionCtx.value.splitIndex === -1) {\n visible.value = true\n emit('search', mentionCtx.value.pattern, mentionCtx.value.prefix)\n return\n }\n visible.value = false\n}\n\ndefineExpose({\n input: elInputRef,\n tooltip: tooltipRef,\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mention2.mjs","sources":["../../../../../../packages/components/mention/src/mention.vue"],"sourcesContent":["<template>\n <div ref=\"wrapperRef\" :class=\"ns.b()\">\n <el-input\n v-bind=\"mergeProps(passInputProps, $attrs)\"\n ref=\"elInputRef\"\n :model-value=\"modelValue\"\n :role=\"dropdownVisible ? 'combobox' : undefined\"\n :aria-activedescendant=\"dropdownVisible ? hoveringId || '' : undefined\"\n :aria-controls=\"dropdownVisible ? contentId : undefined\"\n :aria-expanded=\"dropdownVisible || undefined\"\n :aria-label=\"ariaLabel\"\n :aria-autocomplete=\"dropdownVisible ? 'none' : undefined\"\n :aria-haspopup=\"dropdownVisible ? 'listbox' : undefined\"\n @input=\"handleInputChange\"\n @keydown=\"handleInputKeyDown\"\n @mousedown=\"handleInputMouseDown\"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </el-input>\n <el-tooltip\n ref=\"tooltipRef\"\n :visible=\"dropdownVisible\"\n :popper-class=\"[ns.e('popper'), popperClass]\"\n :popper-options=\"popperOptions\"\n :placement=\"computedPlacement\"\n :fallback-placements=\"computedFallbackPlacements\"\n effect=\"light\"\n pure\n :offset=\"offset\"\n :show-arrow=\"showArrow\"\n >\n <template #default>\n <div :style=\"cursorStyle\" />\n </template>\n <template #content>\n <el-mention-dropdown\n ref=\"dropdownRef\"\n :options=\"filteredOptions\"\n :disabled=\"disabled\"\n :loading=\"loading\"\n :content-id=\"contentId\"\n :aria-label=\"ariaLabel\"\n @select=\"handleSelect\"\n @click.stop=\"elInputRef?.focus\"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </el-mention-dropdown>\n </template>\n </el-tooltip>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, mergeProps, nextTick, ref } from 'vue'\nimport { pick } from 'lodash-unified'\nimport { useFocusController, useId, useNamespace } from '@element-plus/hooks'\nimport ElInput, { inputProps } from '@element-plus/components/input'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { isFunction } from '@element-plus/utils'\nimport { mentionEmits, mentionProps } from './mention'\nimport { getCursorPosition, getMentionCtx } from './helper'\nimport ElMentionDropdown from './mention-dropdown.vue'\n\nimport type { Placement } from '@popperjs/core'\nimport type { CSSProperties } from 'vue'\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { MentionCtx, MentionOption } from './types'\n\ndefineOptions({\n name: 'ElMention',\n})\n\nconst props = defineProps(mentionProps)\nconst emit = defineEmits(mentionEmits)\n\nconst passInputProps = computed(() => pick(props, Object.keys(inputProps)))\n\nconst ns = useNamespace('mention')\nconst contentId = useId()\n\nconst elInputRef = ref<InputInstance>()\nconst tooltipRef = ref<TooltipInstance>()\nconst dropdownRef = ref<InstanceType<typeof ElMentionDropdown>>()\n\nconst visible = ref(false)\nconst cursorStyle = ref<CSSProperties>()\nconst mentionCtx = ref<MentionCtx>()\n\nconst computedPlacement = computed<Placement>(() =>\n props.showArrow ? props.placement : `${props.placement}-start`\n)\n\nconst computedFallbackPlacements = computed<Placement[]>(() =>\n props.showArrow ? ['bottom', 'top'] : ['bottom-start', 'top-start']\n)\n\nconst filteredOptions = computed(() => {\n const { filterOption, options } = props\n if (!mentionCtx.value || !filterOption) return options\n return options.filter((option) =>\n filterOption(mentionCtx.value!.pattern, option)\n )\n})\n\nconst dropdownVisible = computed(() => {\n return visible.value && (!!filteredOptions.value.length || props.loading)\n})\n\nconst hoveringId = computed(() => {\n return `${contentId.value}-${dropdownRef.value?.hoveringIndex}`\n})\n\nconst handleInputChange = (value: string) => {\n emit('update:modelValue', value)\n syncAfterCursorMove()\n}\n\nconst handleInputKeyDown = (e: KeyboardEvent | Event) => {\n if (!('key' in e)) return\n if (elInputRef.value?.isComposing) return\n if (['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n syncAfterCursorMove()\n } else if (['ArrowUp', 'ArrowDown'].includes(e.key)) {\n if (!visible.value) return\n e.preventDefault()\n const direction = e.key === 'ArrowUp' ? 'prev' : 'next'\n dropdownRef.value?.navigateOptions(direction)\n } else if (['Enter'].includes(e.key)) {\n if (!visible.value) return\n e.preventDefault()\n if (dropdownRef.value?.hoverOption) {\n dropdownRef.value?.selectHoverOption()\n } else {\n visible.value = false\n }\n } else if (['Escape'].includes(e.key)) {\n if (!visible.value) return\n e.preventDefault()\n visible.value = false\n } else if (['Backspace'].includes(e.key)) {\n if (props.whole && mentionCtx.value) {\n const { splitIndex, selectionEnd, pattern, prefixIndex, prefix } =\n mentionCtx.value\n const inputEl = getInputEl()\n if (!inputEl) return\n const inputValue = inputEl.value\n const matchOption = props.options.find((item) => item.value === pattern)\n const isWhole = isFunction(props.checkIsWhole)\n ? props.checkIsWhole(pattern, prefix)\n : matchOption\n if (isWhole && splitIndex !== -1 && splitIndex + 1 === selectionEnd) {\n e.preventDefault()\n const newValue =\n inputValue.slice(0, prefixIndex) + inputValue.slice(splitIndex + 1)\n emit(UPDATE_MODEL_EVENT, newValue)\n\n const newSelectionEnd = prefixIndex\n nextTick(() => {\n // input value is updated\n inputEl.selectionStart = newSelectionEnd\n inputEl.selectionEnd = newSelectionEnd\n syncDropdownVisible()\n })\n }\n }\n }\n}\n\nconst { wrapperRef } = useFocusController(elInputRef, {\n beforeFocus() {\n return props.disabled\n },\n afterFocus() {\n syncAfterCursorMove()\n },\n beforeBlur(event) {\n return tooltipRef.value?.isFocusInsideContent(event)\n },\n afterBlur() {\n visible.value = false\n },\n})\n\nconst handleInputMouseDown = () => {\n syncAfterCursorMove()\n}\n\nconst handleSelect = (item: MentionOption) => {\n if (!mentionCtx.value) return\n const inputEl = getInputEl()\n if (!inputEl) return\n const inputValue = inputEl.value\n const { split } = props\n\n const newEndPart = inputValue.slice(mentionCtx.value.end)\n const alreadySeparated = newEndPart.startsWith(split)\n const newMiddlePart = `${item.value}${alreadySeparated ? '' : split}`\n\n const newValue =\n inputValue.slice(0, mentionCtx.value.start) + newMiddlePart + newEndPart\n\n emit(UPDATE_MODEL_EVENT, newValue)\n emit('select', item, mentionCtx.value.prefix)\n\n const newSelectionEnd =\n mentionCtx.value.start + newMiddlePart.length + (alreadySeparated ? 1 : 0)\n\n nextTick(() => {\n // input value is updated\n inputEl.selectionStart = newSelectionEnd\n inputEl.selectionEnd = newSelectionEnd\n inputEl.focus()\n syncDropdownVisible()\n })\n}\n\nconst getInputEl = () =>\n props.type === 'textarea'\n ? elInputRef.value?.textarea\n : elInputRef.value?.input\n\nconst syncAfterCursorMove = () => {\n // can't use nextTick(), get cursor position will be wrong\n setTimeout(() => {\n syncCursor()\n syncDropdownVisible()\n nextTick(() => tooltipRef.value?.updatePopper())\n }, 0)\n}\n\nconst syncCursor = () => {\n const inputEl = getInputEl()\n if (!inputEl) return\n\n const caretPosition = getCursorPosition(inputEl)\n const inputRect = inputEl.getBoundingClientRect()\n const elInputRect = elInputRef.value!.$el.getBoundingClientRect()\n\n cursorStyle.value = {\n position: 'absolute',\n width: 0,\n height: `${caretPosition.height}px`,\n left: `${caretPosition.left + inputRect.left - elInputRect.left}px`,\n top: `${caretPosition.top + inputRect.top - elInputRect.top}px`,\n }\n}\n\nconst syncDropdownVisible = () => {\n const inputEl = getInputEl()\n if (document.activeElement !== inputEl) {\n visible.value = false\n return\n }\n const { prefix, split } = props\n mentionCtx.value = getMentionCtx(inputEl, prefix, split)\n if (mentionCtx.value && mentionCtx.value.splitIndex === -1) {\n visible.value = true\n emit('search', mentionCtx.value.pattern, mentionCtx.value.prefix)\n return\n }\n visible.value = false\n}\n\ndefineExpose({\n input: elInputRef,\n tooltip: tooltipRef,\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -381,8 +381,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
381
381
|
readonly showAfter: number;
|
|
382
382
|
readonly hideAfter: number;
|
|
383
383
|
readonly autoClose: number;
|
|
384
|
-
readonly trigger: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => import("@element-plus/nightly/es/utils").Arrayable<import("@element-plus/nightly/es/components/tooltip").TooltipTriggerType> & {}) | (() => import("@element-plus/nightly/es/utils").Arrayable<import("@element-plus/nightly/es/components/tooltip").TooltipTriggerType>) | ((new (...args: any[]) => import("@element-plus/nightly/es/utils").Arrayable<import("@element-plus/nightly/es/components/tooltip").TooltipTriggerType> & {}) | (() => import("@element-plus/nightly/es/utils").Arrayable<import("@element-plus/nightly/es/components/tooltip").TooltipTriggerType>))[], unknown, unknown>;
|
|
385
384
|
readonly tabindex: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => (string | number) & {}) | (() => string | number) | ((new (...args: any[]) => (string | number) & {}) | (() => string | number))[], unknown, unknown>;
|
|
385
|
+
readonly trigger: import("@element-plus/nightly/es/utils").EpPropMergeType<(new (...args: any[]) => import("@element-plus/nightly/es/utils").Arrayable<import("@element-plus/nightly/es/components/tooltip").TooltipTriggerType> & {}) | (() => import("@element-plus/nightly/es/utils").Arrayable<import("@element-plus/nightly/es/components/tooltip").TooltipTriggerType>) | ((new (...args: any[]) => import("@element-plus/nightly/es/utils").Arrayable<import("@element-plus/nightly/es/components/tooltip").TooltipTriggerType> & {}) | (() => import("@element-plus/nightly/es/utils").Arrayable<import("@element-plus/nightly/es/components/tooltip").TooltipTriggerType>))[], unknown, unknown>;
|
|
386
386
|
readonly popperOptions: Partial<import("@popperjs/core").Options>;
|
|
387
387
|
readonly enterable: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
388
388
|
readonly teleported: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '../../utils/index.mjs';
|
|
2
|
-
import Select from './src/
|
|
2
|
+
import Select from './src/select.mjs';
|
|
3
3
|
import Option from './src/option.mjs';
|
|
4
4
|
import OptionGroup from './src/option-group.mjs';
|
|
5
5
|
export { selectGroupKey, selectKey } from './src/token.mjs';
|
|
@@ -1,109 +1,402 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import '../../../
|
|
3
|
-
import '
|
|
4
|
-
import '../../
|
|
5
|
-
import {
|
|
6
|
-
import '../../
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
1
|
+
import { defineComponent, provide, reactive, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, normalizeClass, toHandlerKey, createVNode, withCtx, createElementVNode, withModifiers, renderSlot, createCommentVNode, Fragment, renderList, normalizeStyle, createTextVNode, toDisplayString, createBlock, withKeys, vModelText, resolveDynamicComponent, vShow } from 'vue';
|
|
2
|
+
import '../../../directives/index.mjs';
|
|
3
|
+
import { ElTooltip } from '../../tooltip/index.mjs';
|
|
4
|
+
import { ElScrollbar } from '../../scrollbar/index.mjs';
|
|
5
|
+
import { ElTag } from '../../tag/index.mjs';
|
|
6
|
+
import { ElIcon } from '../../icon/index.mjs';
|
|
7
|
+
import '../../../constants/index.mjs';
|
|
8
|
+
import Option from './option.mjs';
|
|
9
|
+
import ElSelectMenu from './select-dropdown.mjs';
|
|
10
|
+
import { useSelect } from './useSelect.mjs';
|
|
11
|
+
import { selectKey } from './token.mjs';
|
|
12
|
+
import ElOptions from './options.mjs';
|
|
13
|
+
import { SelectProps } from './select2.mjs';
|
|
14
|
+
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
|
15
|
+
import ClickOutside from '../../../directives/click-outside/index.mjs';
|
|
16
|
+
import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
|
|
14
17
|
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const COMPONENT_NAME = "ElSelect";
|
|
19
|
+
const _sfc_main = defineComponent({
|
|
20
|
+
name: COMPONENT_NAME,
|
|
21
|
+
componentName: COMPONENT_NAME,
|
|
22
|
+
components: {
|
|
23
|
+
ElSelectMenu,
|
|
24
|
+
ElOption: Option,
|
|
25
|
+
ElOptions,
|
|
26
|
+
ElTag,
|
|
27
|
+
ElScrollbar,
|
|
28
|
+
ElTooltip,
|
|
29
|
+
ElIcon
|
|
21
30
|
},
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
remoteMethod: Function,
|
|
50
|
-
filterMethod: Function,
|
|
51
|
-
multiple: Boolean,
|
|
52
|
-
multipleLimit: {
|
|
53
|
-
type: Number,
|
|
54
|
-
default: 0
|
|
55
|
-
},
|
|
56
|
-
placeholder: {
|
|
57
|
-
type: String
|
|
58
|
-
},
|
|
59
|
-
defaultFirstOption: Boolean,
|
|
60
|
-
reserveKeyword: {
|
|
61
|
-
type: Boolean,
|
|
62
|
-
default: true
|
|
63
|
-
},
|
|
64
|
-
valueKey: {
|
|
65
|
-
type: String,
|
|
66
|
-
default: "value"
|
|
67
|
-
},
|
|
68
|
-
collapseTags: Boolean,
|
|
69
|
-
collapseTagsTooltip: Boolean,
|
|
70
|
-
maxCollapseTags: {
|
|
71
|
-
type: Number,
|
|
72
|
-
default: 1
|
|
73
|
-
},
|
|
74
|
-
teleported: useTooltipContentProps.teleported,
|
|
75
|
-
persistent: {
|
|
76
|
-
type: Boolean,
|
|
77
|
-
default: true
|
|
78
|
-
},
|
|
79
|
-
clearIcon: {
|
|
80
|
-
type: iconPropType,
|
|
81
|
-
default: CircleClose
|
|
82
|
-
},
|
|
83
|
-
fitInputWidth: Boolean,
|
|
84
|
-
suffixIcon: {
|
|
85
|
-
type: iconPropType,
|
|
86
|
-
default: ArrowDown
|
|
87
|
-
},
|
|
88
|
-
tagType: { ...tagProps.type, default: "info" },
|
|
89
|
-
tagEffect: { ...tagProps.effect, default: "light" },
|
|
90
|
-
validateEvent: {
|
|
91
|
-
type: Boolean,
|
|
92
|
-
default: true
|
|
93
|
-
},
|
|
94
|
-
remoteShowSuffix: Boolean,
|
|
95
|
-
placement: {
|
|
96
|
-
type: definePropType(String),
|
|
97
|
-
values: placements,
|
|
98
|
-
default: "bottom-start"
|
|
99
|
-
},
|
|
100
|
-
fallbackPlacements: {
|
|
101
|
-
type: definePropType(Array),
|
|
102
|
-
default: ["bottom-start", "top-start", "right", "left"]
|
|
103
|
-
},
|
|
104
|
-
...useEmptyValuesProps,
|
|
105
|
-
...useAriaProps(["ariaLabel"])
|
|
31
|
+
directives: { ClickOutside },
|
|
32
|
+
props: SelectProps,
|
|
33
|
+
emits: [
|
|
34
|
+
UPDATE_MODEL_EVENT,
|
|
35
|
+
CHANGE_EVENT,
|
|
36
|
+
"remove-tag",
|
|
37
|
+
"clear",
|
|
38
|
+
"visible-change",
|
|
39
|
+
"focus",
|
|
40
|
+
"blur"
|
|
41
|
+
],
|
|
42
|
+
setup(props, { emit }) {
|
|
43
|
+
const API = useSelect(props, emit);
|
|
44
|
+
provide(selectKey, reactive({
|
|
45
|
+
props,
|
|
46
|
+
states: API.states,
|
|
47
|
+
optionsArray: API.optionsArray,
|
|
48
|
+
handleOptionSelect: API.handleOptionSelect,
|
|
49
|
+
onOptionCreate: API.onOptionCreate,
|
|
50
|
+
onOptionDestroy: API.onOptionDestroy,
|
|
51
|
+
selectRef: API.selectRef,
|
|
52
|
+
setSelected: API.setSelected
|
|
53
|
+
}));
|
|
54
|
+
return {
|
|
55
|
+
...API
|
|
56
|
+
};
|
|
57
|
+
}
|
|
106
58
|
});
|
|
59
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
60
|
+
const _component_el_tag = resolveComponent("el-tag");
|
|
61
|
+
const _component_el_tooltip = resolveComponent("el-tooltip");
|
|
62
|
+
const _component_el_icon = resolveComponent("el-icon");
|
|
63
|
+
const _component_el_option = resolveComponent("el-option");
|
|
64
|
+
const _component_el_options = resolveComponent("el-options");
|
|
65
|
+
const _component_el_scrollbar = resolveComponent("el-scrollbar");
|
|
66
|
+
const _component_el_select_menu = resolveComponent("el-select-menu");
|
|
67
|
+
const _directive_click_outside = resolveDirective("click-outside");
|
|
68
|
+
return withDirectives((openBlock(), createElementBlock("div", {
|
|
69
|
+
ref: "selectRef",
|
|
70
|
+
class: normalizeClass([_ctx.nsSelect.b(), _ctx.nsSelect.m(_ctx.selectSize)]),
|
|
71
|
+
[toHandlerKey(_ctx.mouseEnterEventName)]: ($event) => _ctx.states.inputHovering = true,
|
|
72
|
+
onMouseleave: ($event) => _ctx.states.inputHovering = false
|
|
73
|
+
}, [
|
|
74
|
+
createVNode(_component_el_tooltip, {
|
|
75
|
+
ref: "tooltipRef",
|
|
76
|
+
visible: _ctx.dropdownMenuVisible,
|
|
77
|
+
placement: _ctx.placement,
|
|
78
|
+
teleported: _ctx.teleported,
|
|
79
|
+
"popper-class": [_ctx.nsSelect.e("popper"), _ctx.popperClass],
|
|
80
|
+
"popper-options": _ctx.popperOptions,
|
|
81
|
+
"fallback-placements": _ctx.fallbackPlacements,
|
|
82
|
+
effect: _ctx.effect,
|
|
83
|
+
pure: "",
|
|
84
|
+
trigger: "click",
|
|
85
|
+
transition: `${_ctx.nsSelect.namespace.value}-zoom-in-top`,
|
|
86
|
+
"stop-popper-mouse-event": false,
|
|
87
|
+
"gpu-acceleration": false,
|
|
88
|
+
persistent: _ctx.persistent,
|
|
89
|
+
onBeforeShow: _ctx.handleMenuEnter,
|
|
90
|
+
onHide: ($event) => _ctx.states.isBeforeHide = false
|
|
91
|
+
}, {
|
|
92
|
+
default: withCtx(() => {
|
|
93
|
+
var _a;
|
|
94
|
+
return [
|
|
95
|
+
createElementVNode("div", {
|
|
96
|
+
ref: "wrapperRef",
|
|
97
|
+
class: normalizeClass([
|
|
98
|
+
_ctx.nsSelect.e("wrapper"),
|
|
99
|
+
_ctx.nsSelect.is("focused", _ctx.isFocused),
|
|
100
|
+
_ctx.nsSelect.is("hovering", _ctx.states.inputHovering),
|
|
101
|
+
_ctx.nsSelect.is("filterable", _ctx.filterable),
|
|
102
|
+
_ctx.nsSelect.is("disabled", _ctx.selectDisabled)
|
|
103
|
+
]),
|
|
104
|
+
onClick: withModifiers(_ctx.toggleMenu, ["prevent"])
|
|
105
|
+
}, [
|
|
106
|
+
_ctx.$slots.prefix ? (openBlock(), createElementBlock("div", {
|
|
107
|
+
key: 0,
|
|
108
|
+
ref: "prefixRef",
|
|
109
|
+
class: normalizeClass(_ctx.nsSelect.e("prefix"))
|
|
110
|
+
}, [
|
|
111
|
+
renderSlot(_ctx.$slots, "prefix")
|
|
112
|
+
], 2)) : createCommentVNode("v-if", true),
|
|
113
|
+
createElementVNode("div", {
|
|
114
|
+
ref: "selectionRef",
|
|
115
|
+
class: normalizeClass([
|
|
116
|
+
_ctx.nsSelect.e("selection"),
|
|
117
|
+
_ctx.nsSelect.is("near", _ctx.multiple && !_ctx.$slots.prefix && !!_ctx.states.selected.length)
|
|
118
|
+
])
|
|
119
|
+
}, [
|
|
120
|
+
_ctx.multiple ? renderSlot(_ctx.$slots, "tag", { key: 0 }, () => [
|
|
121
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.showTagList, (item) => {
|
|
122
|
+
return openBlock(), createElementBlock("div", {
|
|
123
|
+
key: _ctx.getValueKey(item),
|
|
124
|
+
class: normalizeClass(_ctx.nsSelect.e("selected-item"))
|
|
125
|
+
}, [
|
|
126
|
+
createVNode(_component_el_tag, {
|
|
127
|
+
closable: !_ctx.selectDisabled && !item.isDisabled,
|
|
128
|
+
size: _ctx.collapseTagSize,
|
|
129
|
+
type: _ctx.tagType,
|
|
130
|
+
effect: _ctx.tagEffect,
|
|
131
|
+
"disable-transitions": "",
|
|
132
|
+
style: normalizeStyle(_ctx.tagStyle),
|
|
133
|
+
onClose: ($event) => _ctx.deleteTag($event, item)
|
|
134
|
+
}, {
|
|
135
|
+
default: withCtx(() => [
|
|
136
|
+
createElementVNode("span", {
|
|
137
|
+
class: normalizeClass(_ctx.nsSelect.e("tags-text"))
|
|
138
|
+
}, [
|
|
139
|
+
renderSlot(_ctx.$slots, "label", {
|
|
140
|
+
label: item.currentLabel,
|
|
141
|
+
value: item.value
|
|
142
|
+
}, () => [
|
|
143
|
+
createTextVNode(toDisplayString(item.currentLabel), 1)
|
|
144
|
+
])
|
|
145
|
+
], 2)
|
|
146
|
+
]),
|
|
147
|
+
_: 2
|
|
148
|
+
}, 1032, ["closable", "size", "type", "effect", "style", "onClose"])
|
|
149
|
+
], 2);
|
|
150
|
+
}), 128)),
|
|
151
|
+
_ctx.collapseTags && _ctx.states.selected.length > _ctx.maxCollapseTags ? (openBlock(), createBlock(_component_el_tooltip, {
|
|
152
|
+
key: 0,
|
|
153
|
+
ref: "tagTooltipRef",
|
|
154
|
+
disabled: _ctx.dropdownMenuVisible || !_ctx.collapseTagsTooltip,
|
|
155
|
+
"fallback-placements": ["bottom", "top", "right", "left"],
|
|
156
|
+
effect: _ctx.effect,
|
|
157
|
+
placement: "bottom",
|
|
158
|
+
teleported: _ctx.teleported
|
|
159
|
+
}, {
|
|
160
|
+
default: withCtx(() => [
|
|
161
|
+
createElementVNode("div", {
|
|
162
|
+
ref: "collapseItemRef",
|
|
163
|
+
class: normalizeClass(_ctx.nsSelect.e("selected-item"))
|
|
164
|
+
}, [
|
|
165
|
+
createVNode(_component_el_tag, {
|
|
166
|
+
closable: false,
|
|
167
|
+
size: _ctx.collapseTagSize,
|
|
168
|
+
type: _ctx.tagType,
|
|
169
|
+
effect: _ctx.tagEffect,
|
|
170
|
+
"disable-transitions": "",
|
|
171
|
+
style: normalizeStyle(_ctx.collapseTagStyle)
|
|
172
|
+
}, {
|
|
173
|
+
default: withCtx(() => [
|
|
174
|
+
createElementVNode("span", {
|
|
175
|
+
class: normalizeClass(_ctx.nsSelect.e("tags-text"))
|
|
176
|
+
}, " + " + toDisplayString(_ctx.states.selected.length - _ctx.maxCollapseTags), 3)
|
|
177
|
+
]),
|
|
178
|
+
_: 1
|
|
179
|
+
}, 8, ["size", "type", "effect", "style"])
|
|
180
|
+
], 2)
|
|
181
|
+
]),
|
|
182
|
+
content: withCtx(() => [
|
|
183
|
+
createElementVNode("div", {
|
|
184
|
+
ref: "tagMenuRef",
|
|
185
|
+
class: normalizeClass(_ctx.nsSelect.e("selection"))
|
|
186
|
+
}, [
|
|
187
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.collapseTagList, (item) => {
|
|
188
|
+
return openBlock(), createElementBlock("div", {
|
|
189
|
+
key: _ctx.getValueKey(item),
|
|
190
|
+
class: normalizeClass(_ctx.nsSelect.e("selected-item"))
|
|
191
|
+
}, [
|
|
192
|
+
createVNode(_component_el_tag, {
|
|
193
|
+
class: "in-tooltip",
|
|
194
|
+
closable: !_ctx.selectDisabled && !item.isDisabled,
|
|
195
|
+
size: _ctx.collapseTagSize,
|
|
196
|
+
type: _ctx.tagType,
|
|
197
|
+
effect: _ctx.tagEffect,
|
|
198
|
+
"disable-transitions": "",
|
|
199
|
+
onClose: ($event) => _ctx.deleteTag($event, item)
|
|
200
|
+
}, {
|
|
201
|
+
default: withCtx(() => [
|
|
202
|
+
createElementVNode("span", {
|
|
203
|
+
class: normalizeClass(_ctx.nsSelect.e("tags-text"))
|
|
204
|
+
}, [
|
|
205
|
+
renderSlot(_ctx.$slots, "label", {
|
|
206
|
+
label: item.currentLabel,
|
|
207
|
+
value: item.value
|
|
208
|
+
}, () => [
|
|
209
|
+
createTextVNode(toDisplayString(item.currentLabel), 1)
|
|
210
|
+
])
|
|
211
|
+
], 2)
|
|
212
|
+
]),
|
|
213
|
+
_: 2
|
|
214
|
+
}, 1032, ["closable", "size", "type", "effect", "onClose"])
|
|
215
|
+
], 2);
|
|
216
|
+
}), 128))
|
|
217
|
+
], 2)
|
|
218
|
+
]),
|
|
219
|
+
_: 3
|
|
220
|
+
}, 8, ["disabled", "effect", "teleported"])) : createCommentVNode("v-if", true)
|
|
221
|
+
]) : createCommentVNode("v-if", true),
|
|
222
|
+
!_ctx.selectDisabled ? (openBlock(), createElementBlock("div", {
|
|
223
|
+
key: 1,
|
|
224
|
+
class: normalizeClass([
|
|
225
|
+
_ctx.nsSelect.e("selected-item"),
|
|
226
|
+
_ctx.nsSelect.e("input-wrapper"),
|
|
227
|
+
_ctx.nsSelect.is("hidden", !_ctx.filterable)
|
|
228
|
+
])
|
|
229
|
+
}, [
|
|
230
|
+
withDirectives(createElementVNode("input", {
|
|
231
|
+
id: _ctx.inputId,
|
|
232
|
+
ref: "inputRef",
|
|
233
|
+
"onUpdate:modelValue": ($event) => _ctx.states.inputValue = $event,
|
|
234
|
+
type: "text",
|
|
235
|
+
name: _ctx.name,
|
|
236
|
+
class: normalizeClass([_ctx.nsSelect.e("input"), _ctx.nsSelect.is(_ctx.selectSize)]),
|
|
237
|
+
disabled: _ctx.selectDisabled,
|
|
238
|
+
autocomplete: _ctx.autocomplete,
|
|
239
|
+
style: normalizeStyle(_ctx.inputStyle),
|
|
240
|
+
role: "combobox",
|
|
241
|
+
readonly: !_ctx.filterable,
|
|
242
|
+
spellcheck: "false",
|
|
243
|
+
"aria-activedescendant": ((_a = _ctx.hoverOption) == null ? void 0 : _a.id) || "",
|
|
244
|
+
"aria-controls": _ctx.contentId,
|
|
245
|
+
"aria-expanded": _ctx.dropdownMenuVisible,
|
|
246
|
+
"aria-label": _ctx.ariaLabel,
|
|
247
|
+
"aria-autocomplete": "none",
|
|
248
|
+
"aria-haspopup": "listbox",
|
|
249
|
+
onKeydown: [
|
|
250
|
+
withKeys(withModifiers(($event) => _ctx.navigateOptions("next"), ["stop", "prevent"]), ["down"]),
|
|
251
|
+
withKeys(withModifiers(($event) => _ctx.navigateOptions("prev"), ["stop", "prevent"]), ["up"]),
|
|
252
|
+
withKeys(withModifiers(_ctx.handleEsc, ["stop", "prevent"]), ["esc"]),
|
|
253
|
+
withKeys(withModifiers(_ctx.selectOption, ["stop", "prevent"]), ["enter"]),
|
|
254
|
+
withKeys(withModifiers(_ctx.deletePrevTag, ["stop"]), ["delete"])
|
|
255
|
+
],
|
|
256
|
+
onCompositionstart: _ctx.handleCompositionStart,
|
|
257
|
+
onCompositionupdate: _ctx.handleCompositionUpdate,
|
|
258
|
+
onCompositionend: _ctx.handleCompositionEnd,
|
|
259
|
+
onInput: _ctx.onInput,
|
|
260
|
+
onClick: withModifiers(_ctx.toggleMenu, ["stop"])
|
|
261
|
+
}, null, 46, ["id", "onUpdate:modelValue", "name", "disabled", "autocomplete", "readonly", "aria-activedescendant", "aria-controls", "aria-expanded", "aria-label", "onKeydown", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onInput", "onClick"]), [
|
|
262
|
+
[vModelText, _ctx.states.inputValue]
|
|
263
|
+
]),
|
|
264
|
+
_ctx.filterable ? (openBlock(), createElementBlock("span", {
|
|
265
|
+
key: 0,
|
|
266
|
+
ref: "calculatorRef",
|
|
267
|
+
"aria-hidden": "true",
|
|
268
|
+
class: normalizeClass(_ctx.nsSelect.e("input-calculator")),
|
|
269
|
+
textContent: toDisplayString(_ctx.states.inputValue)
|
|
270
|
+
}, null, 10, ["textContent"])) : createCommentVNode("v-if", true)
|
|
271
|
+
], 2)) : createCommentVNode("v-if", true),
|
|
272
|
+
_ctx.shouldShowPlaceholder ? (openBlock(), createElementBlock("div", {
|
|
273
|
+
key: 2,
|
|
274
|
+
class: normalizeClass([
|
|
275
|
+
_ctx.nsSelect.e("selected-item"),
|
|
276
|
+
_ctx.nsSelect.e("placeholder"),
|
|
277
|
+
_ctx.nsSelect.is("transparent", !_ctx.hasModelValue || _ctx.expanded && !_ctx.states.inputValue)
|
|
278
|
+
])
|
|
279
|
+
}, [
|
|
280
|
+
_ctx.hasModelValue ? renderSlot(_ctx.$slots, "label", {
|
|
281
|
+
key: 0,
|
|
282
|
+
label: _ctx.currentPlaceholder,
|
|
283
|
+
value: _ctx.modelValue
|
|
284
|
+
}, () => [
|
|
285
|
+
createElementVNode("span", null, toDisplayString(_ctx.currentPlaceholder), 1)
|
|
286
|
+
]) : (openBlock(), createElementBlock("span", { key: 1 }, toDisplayString(_ctx.currentPlaceholder), 1))
|
|
287
|
+
], 2)) : createCommentVNode("v-if", true)
|
|
288
|
+
], 2),
|
|
289
|
+
createElementVNode("div", {
|
|
290
|
+
ref: "suffixRef",
|
|
291
|
+
class: normalizeClass(_ctx.nsSelect.e("suffix"))
|
|
292
|
+
}, [
|
|
293
|
+
_ctx.iconComponent && !_ctx.showClose ? (openBlock(), createBlock(_component_el_icon, {
|
|
294
|
+
key: 0,
|
|
295
|
+
class: normalizeClass([_ctx.nsSelect.e("caret"), _ctx.nsSelect.e("icon"), _ctx.iconReverse])
|
|
296
|
+
}, {
|
|
297
|
+
default: withCtx(() => [
|
|
298
|
+
(openBlock(), createBlock(resolveDynamicComponent(_ctx.iconComponent)))
|
|
299
|
+
]),
|
|
300
|
+
_: 1
|
|
301
|
+
}, 8, ["class"])) : createCommentVNode("v-if", true),
|
|
302
|
+
_ctx.showClose && _ctx.clearIcon ? (openBlock(), createBlock(_component_el_icon, {
|
|
303
|
+
key: 1,
|
|
304
|
+
class: normalizeClass([
|
|
305
|
+
_ctx.nsSelect.e("caret"),
|
|
306
|
+
_ctx.nsSelect.e("icon"),
|
|
307
|
+
_ctx.nsSelect.e("clear")
|
|
308
|
+
]),
|
|
309
|
+
onClick: _ctx.handleClearClick
|
|
310
|
+
}, {
|
|
311
|
+
default: withCtx(() => [
|
|
312
|
+
(openBlock(), createBlock(resolveDynamicComponent(_ctx.clearIcon)))
|
|
313
|
+
]),
|
|
314
|
+
_: 1
|
|
315
|
+
}, 8, ["class", "onClick"])) : createCommentVNode("v-if", true),
|
|
316
|
+
_ctx.validateState && _ctx.validateIcon ? (openBlock(), createBlock(_component_el_icon, {
|
|
317
|
+
key: 2,
|
|
318
|
+
class: normalizeClass([_ctx.nsInput.e("icon"), _ctx.nsInput.e("validateIcon")])
|
|
319
|
+
}, {
|
|
320
|
+
default: withCtx(() => [
|
|
321
|
+
(openBlock(), createBlock(resolveDynamicComponent(_ctx.validateIcon)))
|
|
322
|
+
]),
|
|
323
|
+
_: 1
|
|
324
|
+
}, 8, ["class"])) : createCommentVNode("v-if", true)
|
|
325
|
+
], 2)
|
|
326
|
+
], 10, ["onClick"])
|
|
327
|
+
];
|
|
328
|
+
}),
|
|
329
|
+
content: withCtx(() => [
|
|
330
|
+
createVNode(_component_el_select_menu, { ref: "menuRef" }, {
|
|
331
|
+
default: withCtx(() => [
|
|
332
|
+
_ctx.$slots.header ? (openBlock(), createElementBlock("div", {
|
|
333
|
+
key: 0,
|
|
334
|
+
class: normalizeClass(_ctx.nsSelect.be("dropdown", "header")),
|
|
335
|
+
onClick: withModifiers(() => {
|
|
336
|
+
}, ["stop"])
|
|
337
|
+
}, [
|
|
338
|
+
renderSlot(_ctx.$slots, "header")
|
|
339
|
+
], 10, ["onClick"])) : createCommentVNode("v-if", true),
|
|
340
|
+
withDirectives(createVNode(_component_el_scrollbar, {
|
|
341
|
+
id: _ctx.contentId,
|
|
342
|
+
ref: "scrollbarRef",
|
|
343
|
+
tag: "ul",
|
|
344
|
+
"wrap-class": _ctx.nsSelect.be("dropdown", "wrap"),
|
|
345
|
+
"view-class": _ctx.nsSelect.be("dropdown", "list"),
|
|
346
|
+
class: normalizeClass([_ctx.nsSelect.is("empty", _ctx.filteredOptionsCount === 0)]),
|
|
347
|
+
role: "listbox",
|
|
348
|
+
"aria-label": _ctx.ariaLabel,
|
|
349
|
+
"aria-orientation": "vertical"
|
|
350
|
+
}, {
|
|
351
|
+
default: withCtx(() => [
|
|
352
|
+
_ctx.showNewOption ? (openBlock(), createBlock(_component_el_option, {
|
|
353
|
+
key: 0,
|
|
354
|
+
value: _ctx.states.inputValue,
|
|
355
|
+
created: true
|
|
356
|
+
}, null, 8, ["value"])) : createCommentVNode("v-if", true),
|
|
357
|
+
createVNode(_component_el_options, null, {
|
|
358
|
+
default: withCtx(() => [
|
|
359
|
+
renderSlot(_ctx.$slots, "default")
|
|
360
|
+
]),
|
|
361
|
+
_: 3
|
|
362
|
+
})
|
|
363
|
+
]),
|
|
364
|
+
_: 3
|
|
365
|
+
}, 8, ["id", "wrap-class", "view-class", "class", "aria-label"]), [
|
|
366
|
+
[vShow, _ctx.states.options.size > 0 && !_ctx.loading]
|
|
367
|
+
]),
|
|
368
|
+
_ctx.$slots.loading && _ctx.loading ? (openBlock(), createElementBlock("div", {
|
|
369
|
+
key: 1,
|
|
370
|
+
class: normalizeClass(_ctx.nsSelect.be("dropdown", "loading"))
|
|
371
|
+
}, [
|
|
372
|
+
renderSlot(_ctx.$slots, "loading")
|
|
373
|
+
], 2)) : _ctx.loading || _ctx.filteredOptionsCount === 0 ? (openBlock(), createElementBlock("div", {
|
|
374
|
+
key: 2,
|
|
375
|
+
class: normalizeClass(_ctx.nsSelect.be("dropdown", "empty"))
|
|
376
|
+
}, [
|
|
377
|
+
renderSlot(_ctx.$slots, "empty", {}, () => [
|
|
378
|
+
createElementVNode("span", null, toDisplayString(_ctx.emptyText), 1)
|
|
379
|
+
])
|
|
380
|
+
], 2)) : createCommentVNode("v-if", true),
|
|
381
|
+
_ctx.$slots.footer ? (openBlock(), createElementBlock("div", {
|
|
382
|
+
key: 3,
|
|
383
|
+
class: normalizeClass(_ctx.nsSelect.be("dropdown", "footer")),
|
|
384
|
+
onClick: withModifiers(() => {
|
|
385
|
+
}, ["stop"])
|
|
386
|
+
}, [
|
|
387
|
+
renderSlot(_ctx.$slots, "footer")
|
|
388
|
+
], 10, ["onClick"])) : createCommentVNode("v-if", true)
|
|
389
|
+
]),
|
|
390
|
+
_: 3
|
|
391
|
+
}, 512)
|
|
392
|
+
]),
|
|
393
|
+
_: 3
|
|
394
|
+
}, 8, ["visible", "placement", "teleported", "popper-class", "popper-options", "fallback-placements", "effect", "transition", "persistent", "onBeforeShow", "onHide"])
|
|
395
|
+
], 16, ["onMouseleave"])), [
|
|
396
|
+
[_directive_click_outside, _ctx.handleClickOutside, _ctx.popperRef]
|
|
397
|
+
]);
|
|
398
|
+
}
|
|
399
|
+
var Select = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "select.vue"]]);
|
|
107
400
|
|
|
108
|
-
export {
|
|
401
|
+
export { Select as default };
|
|
109
402
|
//# sourceMappingURL=select.mjs.map
|