SourceTermAnalysisSystem_vue/node_modules/element-plus/es/components/mention/src/mention2.mjs.map
2026-05-15 10:22:44 +08:00

1 line
18 KiB
Plaintext

{"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 :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 {\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { getEventCode, isFunction } from '@element-plus/utils'\nimport { mentionDefaultProps, 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 aliasProps = computed(() => ({\n ...mentionDefaultProps,\n ...props.props,\n}))\n\nconst mapOption = (option: MentionOption) => {\n const base = {\n label: option[aliasProps.value.label],\n value: option[aliasProps.value.value],\n disabled: option[aliasProps.value.disabled],\n }\n return { ...option, ...base }\n}\n\nconst options = computed(() => props.options.map(mapOption))\n\nconst filteredOptions = computed(() => {\n const { filterOption } = props\n if (!mentionCtx.value || !filterOption) return options.value\n return options.value.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_MODEL_EVENT, value)\n emit(INPUT_EVENT, value)\n syncAfterCursorMove()\n}\n\nconst handleInputKeyDown = (event: KeyboardEvent | Event) => {\n if (elInputRef.value?.isComposing) return\n const code = getEventCode(event as KeyboardEvent)\n\n switch (code) {\n case EVENT_CODE.left:\n case EVENT_CODE.right:\n syncAfterCursorMove()\n break\n case EVENT_CODE.up:\n case EVENT_CODE.down:\n if (!visible.value) return\n event.preventDefault()\n dropdownRef.value?.navigateOptions(\n code === EVENT_CODE.up ? 'prev' : 'next'\n )\n break\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n if (!visible.value) {\n props.type !== 'textarea' && syncAfterCursorMove()\n return\n }\n event.preventDefault()\n if (dropdownRef.value?.hoverOption) {\n dropdownRef.value?.selectHoverOption()\n } else {\n visible.value = false\n }\n break\n case EVENT_CODE.esc:\n if (!visible.value) return\n event.preventDefault()\n visible.value = false\n break\n case EVENT_CODE.backspace:\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 = options.value.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 event.preventDefault()\n const newValue =\n inputValue.slice(0, prefixIndex) + inputValue.slice(splitIndex + 1)\n emit(UPDATE_MODEL_EVENT, newValue)\n emit(INPUT_EVENT, newValue)\n emit('whole-remove', pattern, prefix)\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 disabled,\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\n// Ensure that the original option passed by users is returned\nconst getOriginalOption = (mentionOption: MentionOption) => {\n return props.options.find((option: MentionOption) => {\n return mentionOption.value === option[aliasProps.value.value]\n })\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(INPUT_EVENT, newValue)\n emit('select', getOriginalOption(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 wrapperRect = wrapperRef.value!.getBoundingClientRect()\n\n cursorStyle.value = {\n position: 'absolute',\n width: 0,\n height: `${caretPosition.height}px`,\n left: `${caretPosition.left + inputRect.left - wrapperRect.left}px`,\n top: `${caretPosition.top + inputRect.top - wrapperRect.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"],"names":[],"mappings":"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"}