You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
27 KiB
1 line
27 KiB
{"ast":null,"code":"import { defineComponent, computed, ref, nextTick, openBlock, createElementBlock, normalizeClass, unref, createVNode, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, createElementVNode, normalizeStyle, withModifiers } from 'vue';\nimport { pick } from 'lodash-unified';\nimport '../../../hooks/index.mjs';\nimport { ElInput } from '../../input/index.mjs';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport '../../../constants/index.mjs';\nimport '../../form/index.mjs';\nimport '../../../utils/index.mjs';\nimport { mentionProps, mentionEmits } from './mention.mjs';\nimport { getCursorPosition, getMentionCtx } from './helper.mjs';\nimport ElMentionDropdown from './mention-dropdown2.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { inputProps } from '../../input/src/input.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';\nimport { useId } from '../../../hooks/use-id/index.mjs';\nimport { isFunction } from '@vue/shared';\nimport { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';\nimport { useFocusController } from '../../../hooks/use-focus-controller/index.mjs';\nconst __default__ = defineComponent({\n name: \"ElMention\",\n inheritAttrs: false\n});\nconst _sfc_main = /* @__PURE__ */defineComponent({\n ...__default__,\n props: mentionProps,\n emits: mentionEmits,\n setup(__props, {\n expose,\n emit\n }) {\n const props = __props;\n const passInputProps = computed(() => pick(props, Object.keys(inputProps)));\n const ns = useNamespace(\"mention\");\n const disabled = useFormDisabled();\n const contentId = useId();\n const elInputRef = ref();\n const tooltipRef = ref();\n const dropdownRef = ref();\n const visible = ref(false);\n const cursorStyle = ref();\n const mentionCtx = ref();\n const computedPlacement = computed(() => props.showArrow ? props.placement : `${props.placement}-start`);\n const computedFallbackPlacements = computed(() => props.showArrow ? [\"bottom\", \"top\"] : [\"bottom-start\", \"top-start\"]);\n const filteredOptions = computed(() => {\n const {\n filterOption,\n options\n } = props;\n if (!mentionCtx.value || !filterOption) return options;\n return options.filter(option => filterOption(mentionCtx.value.pattern, option));\n });\n const dropdownVisible = computed(() => {\n return visible.value && (!!filteredOptions.value.length || props.loading);\n });\n const hoveringId = computed(() => {\n var _a;\n return `${contentId.value}-${(_a = dropdownRef.value) == null ? void 0 : _a.hoveringIndex}`;\n });\n const handleInputChange = value => {\n emit(\"update:modelValue\", value);\n syncAfterCursorMove();\n };\n const handleInputKeyDown = e => {\n var _a, _b, _c, _d;\n if (!(\"key\" in e)) return;\n if ((_a = elInputRef.value) == null ? void 0 : _a.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 (_b = dropdownRef.value) == null ? void 0 : _b.navigateOptions(direction);\n } else if ([\"Enter\"].includes(e.key)) {\n if (!visible.value) return;\n e.preventDefault();\n if ((_c = dropdownRef.value) == null ? void 0 : _c.hoverOption) {\n (_d = dropdownRef.value) == null ? void 0 : _d.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 {\n splitIndex,\n selectionEnd,\n pattern,\n prefixIndex,\n 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) ? props.checkIsWhole(pattern, prefix) : matchOption;\n if (isWhole && splitIndex !== -1 && splitIndex + 1 === selectionEnd) {\n e.preventDefault();\n const newValue = inputValue.slice(0, prefixIndex) + inputValue.slice(splitIndex + 1);\n emit(UPDATE_MODEL_EVENT, newValue);\n const newSelectionEnd = prefixIndex;\n nextTick(() => {\n inputEl.selectionStart = newSelectionEnd;\n inputEl.selectionEnd = newSelectionEnd;\n syncDropdownVisible();\n });\n }\n }\n }\n };\n const {\n wrapperRef\n } = useFocusController(elInputRef, {\n beforeFocus() {\n return disabled.value;\n },\n afterFocus() {\n syncAfterCursorMove();\n },\n beforeBlur(event) {\n var _a;\n return (_a = tooltipRef.value) == null ? void 0 : _a.isFocusInsideContent(event);\n },\n afterBlur() {\n visible.value = false;\n }\n });\n const handleInputMouseDown = () => {\n syncAfterCursorMove();\n };\n const handleSelect = item => {\n if (!mentionCtx.value) return;\n const inputEl = getInputEl();\n if (!inputEl) return;\n const inputValue = inputEl.value;\n const {\n split\n } = props;\n const newEndPart = inputValue.slice(mentionCtx.value.end);\n const alreadySeparated = newEndPart.startsWith(split);\n const newMiddlePart = `${item.value}${alreadySeparated ? \"\" : split}`;\n const newValue = inputValue.slice(0, mentionCtx.value.start) + newMiddlePart + newEndPart;\n emit(UPDATE_MODEL_EVENT, newValue);\n emit(\"select\", item, mentionCtx.value.prefix);\n const newSelectionEnd = mentionCtx.value.start + newMiddlePart.length + (alreadySeparated ? 1 : 0);\n nextTick(() => {\n inputEl.selectionStart = newSelectionEnd;\n inputEl.selectionEnd = newSelectionEnd;\n inputEl.focus();\n syncDropdownVisible();\n });\n };\n const getInputEl = () => {\n var _a, _b;\n return props.type === \"textarea\" ? (_a = elInputRef.value) == null ? void 0 : _a.textarea : (_b = elInputRef.value) == null ? void 0 : _b.input;\n };\n const syncAfterCursorMove = () => {\n setTimeout(() => {\n syncCursor();\n syncDropdownVisible();\n nextTick(() => {\n var _a;\n return (_a = tooltipRef.value) == null ? void 0 : _a.updatePopper();\n });\n }, 0);\n };\n const syncCursor = () => {\n const inputEl = getInputEl();\n if (!inputEl) return;\n const caretPosition = getCursorPosition(inputEl);\n const inputRect = inputEl.getBoundingClientRect();\n const elInputRect = elInputRef.value.$el.getBoundingClientRect();\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 const syncDropdownVisible = () => {\n const inputEl = getInputEl();\n if (document.activeElement !== inputEl) {\n visible.value = false;\n return;\n }\n const {\n prefix,\n split\n } = 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 expose({\n input: elInputRef,\n tooltip: tooltipRef,\n dropdownVisible\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"wrapperRef\",\n ref: wrapperRef,\n class: normalizeClass(unref(ns).b())\n }, [createVNode(unref(ElInput), mergeProps(mergeProps(unref(passInputProps), _ctx.$attrs), {\n ref_key: \"elInputRef\",\n ref: elInputRef,\n \"model-value\": _ctx.modelValue,\n disabled: unref(disabled),\n role: unref(dropdownVisible) ? \"combobox\" : void 0,\n \"aria-activedescendant\": unref(dropdownVisible) ? unref(hoveringId) || \"\" : void 0,\n \"aria-controls\": unref(dropdownVisible) ? unref(contentId) : void 0,\n \"aria-expanded\": unref(dropdownVisible) || void 0,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-autocomplete\": unref(dropdownVisible) ? \"none\" : void 0,\n \"aria-haspopup\": unref(dropdownVisible) ? \"listbox\" : void 0,\n onInput: handleInputChange,\n onKeydown: handleInputKeyDown,\n onMousedown: handleInputMouseDown\n }), createSlots({\n _: 2\n }, [renderList(_ctx.$slots, (_, name) => {\n return {\n name,\n fn: withCtx(slotProps => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps)))])\n };\n })]), 1040, [\"model-value\", \"disabled\", \"role\", \"aria-activedescendant\", \"aria-controls\", \"aria-expanded\", \"aria-label\", \"aria-autocomplete\", \"aria-haspopup\"]), createVNode(unref(ElTooltip), {\n ref_key: \"tooltipRef\",\n ref: tooltipRef,\n visible: unref(dropdownVisible),\n \"popper-class\": [unref(ns).e(\"popper\"), _ctx.popperClass],\n \"popper-options\": _ctx.popperOptions,\n placement: unref(computedPlacement),\n \"fallback-placements\": unref(computedFallbackPlacements),\n effect: \"light\",\n pure: \"\",\n offset: _ctx.offset,\n \"show-arrow\": _ctx.showArrow\n }, {\n default: withCtx(() => [createElementVNode(\"div\", {\n style: normalizeStyle(cursorStyle.value)\n }, null, 4)]),\n content: withCtx(() => {\n var _a;\n return [createVNode(ElMentionDropdown, {\n ref_key: \"dropdownRef\",\n ref: dropdownRef,\n options: unref(filteredOptions),\n disabled: unref(disabled),\n loading: _ctx.loading,\n \"content-id\": unref(contentId),\n \"aria-label\": _ctx.ariaLabel,\n onSelect: handleSelect,\n onClick: withModifiers((_a = elInputRef.value) == null ? void 0 : _a.focus, [\"stop\"])\n }, createSlots({\n _: 2\n }, [renderList(_ctx.$slots, (_, name) => {\n return {\n name,\n fn: withCtx(slotProps => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps)))])\n };\n })]), 1032, [\"options\", \"disabled\", \"loading\", \"content-id\", \"aria-label\", \"onClick\"])];\n }),\n _: 3\n }, 8, [\"visible\", \"popper-class\", \"popper-options\", \"placement\", \"fallback-placements\", \"offset\", \"show-arrow\"])], 2);\n };\n }\n});\nvar Mention = /* @__PURE__ */_export_sfc(_sfc_main, [[\"__file\", \"mention.vue\"]]);\nexport { Mention as default };","map":{"version":3,"names":["name","inheritAttrs","passInputProps","computed","pick","props","Object","keys","inputProps","ns","useNamespace","disabled","useFormDisabled","contentId","useId","elInputRef","ref","tooltipRef","dropdownRef","visible","cursorStyle","mentionCtx","computedPlacement","showArrow","placement","computedFallbackPlacements","filteredOptions","filterOption","options","value","filter","option","pattern","dropdownVisible","length","loading","hoveringId","_a","hoveringIndex","handleInputChange","emit","syncAfterCursorMove","handleInputKeyDown","e","_b","_c","_d","isComposing","includes","key","preventDefault","direction","navigateOptions","hoverOption","selectHoverOption","whole","splitIndex","selectionEnd","prefixIndex","prefix","inputEl","getInputEl","inputValue","matchOption","find","item","isWhole","isFunction","checkIsWhole","newValue","slice","UPDATE_MODEL_EVENT","newSelectionEnd","nextTick","selectionStart","syncDropdownVisible","wrapperRef","useFocusController","beforeFocus","afterFocus","beforeBlur","event","isFocusInsideContent","afterBlur","handleInputMouseDown","handleSelect","split","newEndPart","end","alreadySeparated","startsWith","newMiddlePart","start","focus","type","textarea","input","setTimeout","syncCursor","updatePopper","caretPosition","getCursorPosition","inputRect","getBoundingClientRect","elInputRect","$el","position","width","height","left","top","document","activeElement"],"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 :disabled=\"disabled\"\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 { useFormDisabled } from '@element-plus/components/form'\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 inheritAttrs: false,\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 disabled = useFormDisabled()\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 disabled.value\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 dropdownVisible,\n})\n</script>\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |