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.

0 lines
27 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, computed, ref, openBlock, createElementBlock, normalizeClass, unref, createVNode, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, createElementVNode, normalizeStyle, withModifiers, nextTick } from 'vue';\nimport { pick } from 'lodash-unified';\nimport { ElInput } from '../../input/index.mjs';\nimport { ElTooltip } from '../../tooltip/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 { useFocusController } from '../../../hooks/use-focus-controller/index.mjs';\nimport { EVENT_CODE } from '../../../constants/aria.mjs';\nimport { isFunction } from '@vue/shared';\nimport { UPDATE_MODEL_EVENT } from '../../../constants/event.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 = event => {\n var _a, _b, _c, _d;\n if (!(\"code\" in event) || ((_a = elInputRef.value) == null ? void 0 : _a.isComposing)) return;\n switch (event.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 (_b = dropdownRef.value) == null ? void 0 : _b.navigateOptions(event.code === EVENT_CODE.up ? \"prev\" : \"next\");\n break;\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n if (!visible.value) return;\n event.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 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 cons