@element-plus/nightly 0.0.20240830 → 0.0.20240901
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.full.js +58 -5
- package/dist/index.full.min.js +13 -13
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +19 -19
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +58 -5
- 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/backtop/index.mjs +2 -2
- package/es/components/backtop/src/backtop.mjs +54 -21
- package/es/components/backtop/src/backtop.mjs.map +1 -1
- package/es/components/backtop/src/backtop2.mjs +21 -54
- package/es/components/backtop/src/backtop2.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/index.mjs +5 -5
- 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/message/src/message.d.ts +4 -0
- package/es/components/message/src/message.mjs.map +1 -1
- package/es/components/message/src/method.mjs +14 -2
- package/es/components/message/src/method.mjs.map +1 -1
- package/es/components/popover/src/popover.vue.d.ts +1 -1
- package/es/components/popper/index.mjs +2 -2
- package/es/components/popper/src/trigger.mjs +31 -129
- package/es/components/popper/src/trigger.mjs.map +1 -1
- package/es/components/popper/src/trigger2.mjs +129 -31
- package/es/components/popper/src/trigger2.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/switch/index.mjs +2 -2
- package/es/components/switch/src/switch.mjs +229 -72
- package/es/components/switch/src/switch.mjs.map +1 -1
- package/es/components/switch/src/switch2.mjs +72 -229
- package/es/components/switch/src/switch2.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/components/tooltip/index.mjs +2 -2
- package/es/components/tooltip/src/tooltip.mjs +31 -168
- package/es/components/tooltip/src/tooltip.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip2.mjs +168 -31
- package/es/components/tooltip/src/tooltip2.mjs.map +1 -1
- package/es/components/tooltip/src/trigger.mjs +1 -1
- package/es/components/tooltip/src/trigger2.mjs +1 -1
- package/es/components/tree/src/tree-node.mjs +3 -2
- package/es/components/tree/src/tree-node.mjs.map +1 -1
- package/es/components/tree-select/src/tree.mjs +26 -2
- package/es/components/tree-select/src/tree.mjs.map +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/index.mjs +5 -5
- 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/backtop/index.js +2 -2
- package/lib/components/backtop/src/backtop.js +54 -22
- package/lib/components/backtop/src/backtop.js.map +1 -1
- package/lib/components/backtop/src/backtop2.js +22 -54
- package/lib/components/backtop/src/backtop2.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/index.js +5 -5
- 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/message/src/message.d.ts +4 -0
- package/lib/components/message/src/message.js.map +1 -1
- package/lib/components/message/src/method.js +13 -1
- package/lib/components/message/src/method.js.map +1 -1
- package/lib/components/popover/src/popover.vue.d.ts +1 -1
- package/lib/components/popper/index.js +2 -2
- package/lib/components/popper/src/trigger.js +32 -129
- package/lib/components/popper/src/trigger.js.map +1 -1
- package/lib/components/popper/src/trigger2.js +129 -32
- package/lib/components/popper/src/trigger2.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/switch/index.js +2 -2
- package/lib/components/switch/src/switch.js +228 -72
- package/lib/components/switch/src/switch.js.map +1 -1
- package/lib/components/switch/src/switch2.js +72 -228
- package/lib/components/switch/src/switch2.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/components/tooltip/index.js +2 -2
- package/lib/components/tooltip/src/tooltip.js +35 -168
- package/lib/components/tooltip/src/tooltip.js.map +1 -1
- package/lib/components/tooltip/src/tooltip2.js +168 -35
- package/lib/components/tooltip/src/tooltip2.js.map +1 -1
- package/lib/components/tooltip/src/trigger.js +1 -1
- package/lib/components/tooltip/src/trigger2.js +1 -1
- package/lib/components/tree/src/tree-node.js +3 -2
- package/lib/components/tree/src/tree-node.js.map +1 -1
- package/lib/components/tree-select/src/tree.js +25 -1
- package/lib/components/tree-select/src/tree.js.map +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/index.js +5 -5
- 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/src/date-picker/month-table.scss +1 -1
- package/theme-chalk/src/date-picker/picker.scss +1 -1
- package/theme-chalk/src/date-picker/year-table.scss +1 -1
- package/theme-chalk/src/mention.scss +1 -3
- package/theme-chalk/src/menu.scss +1 -3
- package/theme-chalk/src/upload.scss +4 -4
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mention2.js","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":["computed","pick","inputProps","useNamespace","useId","ref","isFunction","UPDATE_MODEL_EVENT","nextTick","useFocusController","getCursorPosition","getMentionCtx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mention2.js","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":["computed","pick","inputProps","useNamespace","useId","ref","isFunction","UPDATE_MODEL_EVENT","nextTick","useFocusController","getCursorPosition","getMentionCtx"],"mappings":"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"}
|
|
@@ -5,6 +5,10 @@ export declare const messageTypes: readonly ["success", "info", "warning", "erro
|
|
|
5
5
|
export declare type messageType = typeof messageTypes[number];
|
|
6
6
|
export interface MessageConfigContext {
|
|
7
7
|
max?: number;
|
|
8
|
+
grouping?: boolean;
|
|
9
|
+
duration?: number;
|
|
10
|
+
offset?: number;
|
|
11
|
+
showClose?: boolean;
|
|
8
12
|
}
|
|
9
13
|
export declare const messageDefaults: Mutable<{
|
|
10
14
|
readonly customClass: "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sources":["../../../../../../packages/components/message/src/message.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n iconPropType,\n isClient,\n mutable,\n} from '@element-plus/utils'\nimport type { AppContext, ExtractPropTypes, VNode } from 'vue'\nimport type { Mutable } from '@element-plus/utils'\nimport type MessageConstructor from './message.vue'\n\nexport const messageTypes = ['success', 'info', 'warning', 'error'] as const\n\nexport type messageType = typeof messageTypes[number]\n\nexport interface MessageConfigContext {\n max?: number\n}\n\nexport const messageDefaults = mutable({\n customClass: '',\n center: false,\n dangerouslyUseHTMLString: false,\n duration: 3000,\n icon: undefined,\n id: '',\n message: '',\n onClose: undefined,\n showClose: false,\n type: 'info',\n plain: false,\n offset: 16,\n zIndex: 0,\n grouping: false,\n repeatNum: 1,\n appendTo: isClient ? document.body : (undefined as never),\n} as const)\n\nexport const messageProps = buildProps({\n /**\n * @description custom class name for Message\n */\n customClass: {\n type: String,\n default: messageDefaults.customClass,\n },\n /**\n * @description whether to center the text\n */\n center: {\n type: Boolean,\n default: messageDefaults.center,\n },\n /**\n * @description whether `message` is treated as HTML string\n */\n dangerouslyUseHTMLString: {\n type: Boolean,\n default: messageDefaults.dangerouslyUseHTMLString,\n },\n /**\n * @description display duration, millisecond. If set to 0, it will not turn off automatically\n */\n duration: {\n type: Number,\n default: messageDefaults.duration,\n },\n /**\n * @description custom icon component, overrides `type`\n */\n icon: {\n type: iconPropType,\n default: messageDefaults.icon,\n },\n /**\n * @description message dom id\n */\n id: {\n type: String,\n default: messageDefaults.id,\n },\n /**\n * @description message text\n */\n message: {\n type: definePropType<string | VNode | (() => VNode)>([\n String,\n Object,\n Function,\n ]),\n default: messageDefaults.message,\n },\n /**\n * @description callback function when closed with the message instance as the parameter\n */\n onClose: {\n type: definePropType<() => void>(Function),\n default: messageDefaults.onClose,\n },\n /**\n * @description whether to show a close button\n */\n showClose: {\n type: Boolean,\n default: messageDefaults.showClose,\n },\n /**\n * @description message type\n */\n type: {\n type: String,\n values: messageTypes,\n default: messageDefaults.type,\n },\n /**\n * @description whether message is plain\n */\n plain: {\n type: Boolean,\n default: messageDefaults.plain,\n },\n /**\n * @description set the distance to the top of viewport\n */\n offset: {\n type: Number,\n default: messageDefaults.offset,\n },\n /**\n * @description input box size\n */\n zIndex: {\n type: Number,\n default: messageDefaults.zIndex,\n },\n /**\n * @description merge messages with the same content, type of VNode message is not supported\n */\n grouping: {\n type: Boolean,\n default: messageDefaults.grouping,\n },\n /**\n * @description The number of repetitions, similar to badge, is used as the initial number when used with `grouping`\n */\n repeatNum: {\n type: Number,\n default: messageDefaults.repeatNum,\n },\n} as const)\nexport type MessageProps = ExtractPropTypes<typeof messageProps>\n\nexport const messageEmits = {\n destroy: () => true,\n}\nexport type MessageEmits = typeof messageEmits\n\nexport type MessageInstance = InstanceType<typeof MessageConstructor>\n\nexport type MessageOptions = Partial<\n Mutable<\n Omit<MessageProps, 'id'> & {\n appendTo?: HTMLElement | string\n }\n >\n>\nexport type MessageParams = MessageOptions | MessageOptions['message']\nexport type MessageParamsNormalized = Omit<MessageProps, 'id'> & {\n /**\n * @description set the root element for the message, default to `document.body`\n */\n appendTo: HTMLElement\n}\nexport type MessageOptionsWithType = Omit<MessageOptions, 'type'>\nexport type MessageParamsWithType =\n | MessageOptionsWithType\n | MessageOptions['message']\n\nexport interface MessageHandler {\n /**\n * @description close the Message\n */\n close: () => void\n}\n\nexport type MessageFn = {\n (options?: MessageParams, appContext?: null | AppContext): MessageHandler\n closeAll(type?: messageType): void\n}\nexport type MessageTypedFn = (\n options?: MessageParamsWithType,\n appContext?: null | AppContext\n) => MessageHandler\n\nexport interface Message extends MessageFn {\n success: MessageTypedFn\n warning: MessageTypedFn\n info: MessageTypedFn\n error: MessageTypedFn\n}\n"],"names":["mutable","isClient","buildProps","iconPropType","definePropType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message.js","sources":["../../../../../../packages/components/message/src/message.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n iconPropType,\n isClient,\n mutable,\n} from '@element-plus/utils'\nimport type { AppContext, ExtractPropTypes, VNode } from 'vue'\nimport type { Mutable } from '@element-plus/utils'\nimport type MessageConstructor from './message.vue'\n\nexport const messageTypes = ['success', 'info', 'warning', 'error'] as const\n\nexport type messageType = typeof messageTypes[number]\n\nexport interface MessageConfigContext {\n max?: number\n grouping?: boolean\n duration?: number\n offset?: number\n showClose?: boolean\n}\n\nexport const messageDefaults = mutable({\n customClass: '',\n center: false,\n dangerouslyUseHTMLString: false,\n duration: 3000,\n icon: undefined,\n id: '',\n message: '',\n onClose: undefined,\n showClose: false,\n type: 'info',\n plain: false,\n offset: 16,\n zIndex: 0,\n grouping: false,\n repeatNum: 1,\n appendTo: isClient ? document.body : (undefined as never),\n} as const)\n\nexport const messageProps = buildProps({\n /**\n * @description custom class name for Message\n */\n customClass: {\n type: String,\n default: messageDefaults.customClass,\n },\n /**\n * @description whether to center the text\n */\n center: {\n type: Boolean,\n default: messageDefaults.center,\n },\n /**\n * @description whether `message` is treated as HTML string\n */\n dangerouslyUseHTMLString: {\n type: Boolean,\n default: messageDefaults.dangerouslyUseHTMLString,\n },\n /**\n * @description display duration, millisecond. If set to 0, it will not turn off automatically\n */\n duration: {\n type: Number,\n default: messageDefaults.duration,\n },\n /**\n * @description custom icon component, overrides `type`\n */\n icon: {\n type: iconPropType,\n default: messageDefaults.icon,\n },\n /**\n * @description message dom id\n */\n id: {\n type: String,\n default: messageDefaults.id,\n },\n /**\n * @description message text\n */\n message: {\n type: definePropType<string | VNode | (() => VNode)>([\n String,\n Object,\n Function,\n ]),\n default: messageDefaults.message,\n },\n /**\n * @description callback function when closed with the message instance as the parameter\n */\n onClose: {\n type: definePropType<() => void>(Function),\n default: messageDefaults.onClose,\n },\n /**\n * @description whether to show a close button\n */\n showClose: {\n type: Boolean,\n default: messageDefaults.showClose,\n },\n /**\n * @description message type\n */\n type: {\n type: String,\n values: messageTypes,\n default: messageDefaults.type,\n },\n /**\n * @description whether message is plain\n */\n plain: {\n type: Boolean,\n default: messageDefaults.plain,\n },\n /**\n * @description set the distance to the top of viewport\n */\n offset: {\n type: Number,\n default: messageDefaults.offset,\n },\n /**\n * @description input box size\n */\n zIndex: {\n type: Number,\n default: messageDefaults.zIndex,\n },\n /**\n * @description merge messages with the same content, type of VNode message is not supported\n */\n grouping: {\n type: Boolean,\n default: messageDefaults.grouping,\n },\n /**\n * @description The number of repetitions, similar to badge, is used as the initial number when used with `grouping`\n */\n repeatNum: {\n type: Number,\n default: messageDefaults.repeatNum,\n },\n} as const)\nexport type MessageProps = ExtractPropTypes<typeof messageProps>\n\nexport const messageEmits = {\n destroy: () => true,\n}\nexport type MessageEmits = typeof messageEmits\n\nexport type MessageInstance = InstanceType<typeof MessageConstructor>\n\nexport type MessageOptions = Partial<\n Mutable<\n Omit<MessageProps, 'id'> & {\n appendTo?: HTMLElement | string\n }\n >\n>\nexport type MessageParams = MessageOptions | MessageOptions['message']\nexport type MessageParamsNormalized = Omit<MessageProps, 'id'> & {\n /**\n * @description set the root element for the message, default to `document.body`\n */\n appendTo: HTMLElement\n}\nexport type MessageOptionsWithType = Omit<MessageOptions, 'type'>\nexport type MessageParamsWithType =\n | MessageOptionsWithType\n | MessageOptions['message']\n\nexport interface MessageHandler {\n /**\n * @description close the Message\n */\n close: () => void\n}\n\nexport type MessageFn = {\n (options?: MessageParams, appContext?: null | AppContext): MessageHandler\n closeAll(type?: messageType): void\n}\nexport type MessageTypedFn = (\n options?: MessageParamsWithType,\n appContext?: null | AppContext\n) => MessageHandler\n\nexport interface Message extends MessageFn {\n success: MessageTypedFn\n warning: MessageTypedFn\n info: MessageTypedFn\n error: MessageTypedFn\n}\n"],"names":["mutable","isClient","buildProps","iconPropType","definePropType"],"mappings":";;;;;;;;;;AAOY,MAAC,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE;AACxD,MAAC,eAAe,GAAGA,kBAAO,CAAC;AACvC,EAAE,WAAW,EAAE,EAAE;AACjB,EAAE,MAAM,EAAE,KAAK;AACf,EAAE,wBAAwB,EAAE,KAAK;AACjC,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,IAAI,EAAE,KAAK,CAAC;AACd,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,OAAO,EAAE,EAAE;AACb,EAAE,OAAO,EAAE,KAAK,CAAC;AACjB,EAAE,SAAS,EAAE,KAAK;AAClB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,QAAQ,EAAE,KAAK;AACjB,EAAE,SAAS,EAAE,CAAC;AACd,EAAE,QAAQ,EAAEC,aAAQ,GAAG,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;AAC7C,CAAC,EAAE;AACS,MAAC,YAAY,GAAGC,kBAAU,CAAC;AACvC,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,eAAe,CAAC,WAAW;AACxC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,eAAe,CAAC,MAAM;AACnC,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,eAAe,CAAC,wBAAwB;AACrD,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,eAAe,CAAC,QAAQ;AACrC,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAEC,iBAAY;AACtB,IAAI,OAAO,EAAE,eAAe,CAAC,IAAI;AACjC,GAAG;AACH,EAAE,EAAE,EAAE;AACN,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,eAAe,CAAC,EAAE;AAC/B,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAEC,sBAAc,CAAC;AACzB,MAAM,MAAM;AACZ,MAAM,MAAM;AACZ,MAAM,QAAQ;AACd,KAAK,CAAC;AACN,IAAI,OAAO,EAAE,eAAe,CAAC,OAAO;AACpC,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,eAAe,CAAC,OAAO;AACpC,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,eAAe,CAAC,SAAS;AACtC,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,YAAY;AACxB,IAAI,OAAO,EAAE,eAAe,CAAC,IAAI;AACjC,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,eAAe,CAAC,KAAK;AAClC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,eAAe,CAAC,MAAM;AACnC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,eAAe,CAAC,MAAM;AACnC,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,eAAe,CAAC,QAAQ;AACrC,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,eAAe,CAAC,SAAS;AACtC,GAAG;AACH,CAAC,EAAE;AACS,MAAC,YAAY,GAAG;AAC5B,EAAE,OAAO,EAAE,MAAM,IAAI;AACrB;;;;;;;"}
|
|
@@ -11,8 +11,8 @@ var instance = require('./instance.js');
|
|
|
11
11
|
var shared = require('@vue/shared');
|
|
12
12
|
var types = require('../../../utils/types.js');
|
|
13
13
|
var error = require('../../../utils/error.js');
|
|
14
|
-
var core = require('@vueuse/core');
|
|
15
14
|
var configProvider = require('../../config-provider/src/config-provider.js');
|
|
15
|
+
var core = require('@vueuse/core');
|
|
16
16
|
|
|
17
17
|
let seed = 1;
|
|
18
18
|
const normalizeOptions = (params) => {
|
|
@@ -31,6 +31,18 @@ const normalizeOptions = (params) => {
|
|
|
31
31
|
}
|
|
32
32
|
normalized.appendTo = appendTo;
|
|
33
33
|
}
|
|
34
|
+
if (types.isBoolean(configProvider.messageConfig.grouping) && !normalized.grouping) {
|
|
35
|
+
normalized.grouping = configProvider.messageConfig.grouping;
|
|
36
|
+
}
|
|
37
|
+
if (types.isNumber(configProvider.messageConfig.duration) && normalized.duration === 3e3) {
|
|
38
|
+
normalized.duration = configProvider.messageConfig.duration;
|
|
39
|
+
}
|
|
40
|
+
if (types.isNumber(configProvider.messageConfig.offset) && normalized.offset === 16) {
|
|
41
|
+
normalized.offset = configProvider.messageConfig.offset;
|
|
42
|
+
}
|
|
43
|
+
if (types.isBoolean(configProvider.messageConfig.showClose) && !normalized.showClose) {
|
|
44
|
+
normalized.showClose = configProvider.messageConfig.showClose;
|
|
45
|
+
}
|
|
34
46
|
return normalized;
|
|
35
47
|
};
|
|
36
48
|
const closeMessage = (instance$1) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method.js","sources":["../../../../../../packages/components/message/src/method.ts"],"sourcesContent":["import { createVNode, render } from 'vue'\nimport {\n debugWarn,\n isClient,\n isElement,\n isFunction,\n isNumber,\n isString,\n isVNode,\n} from '@element-plus/utils'\nimport { messageConfig } from '@element-plus/components/config-provider'\nimport MessageConstructor from './message.vue'\nimport { messageDefaults, messageTypes } from './message'\nimport { instances } from './instance'\n\nimport type { MessageContext } from './instance'\nimport type { AppContext } from 'vue'\nimport type {\n Message,\n MessageFn,\n MessageHandler,\n MessageOptions,\n MessageParams,\n MessageParamsNormalized,\n messageType,\n} from './message'\n\nlet seed = 1\n\n// TODO: Since Notify.ts is basically the same like this file. So we could do some encapsulation against them to reduce code duplication.\n\nconst normalizeOptions = (params?: MessageParams) => {\n const options: MessageOptions =\n !params || isString(params) || isVNode(params) || isFunction(params)\n ? { message: params }\n : params\n\n const normalized = {\n ...messageDefaults,\n ...options,\n }\n\n if (!normalized.appendTo) {\n normalized.appendTo = document.body\n } else if (isString(normalized.appendTo)) {\n let appendTo = document.querySelector<HTMLElement>(normalized.appendTo)\n\n // should fallback to default value with a warning\n if (!isElement(appendTo)) {\n debugWarn(\n 'ElMessage',\n 'the appendTo option is not an HTMLElement. Falling back to document.body.'\n )\n appendTo = document.body\n }\n\n normalized.appendTo = appendTo\n }\n\n return normalized as MessageParamsNormalized\n}\n\nconst closeMessage = (instance: MessageContext) => {\n const idx = instances.indexOf(instance)\n if (idx === -1) return\n\n instances.splice(idx, 1)\n const { handler } = instance\n handler.close()\n}\n\nconst createMessage = (\n { appendTo, ...options }: MessageParamsNormalized,\n context?: AppContext | null\n): MessageContext => {\n const id = `message_${seed++}`\n const userOnClose = options.onClose\n\n const container = document.createElement('div')\n\n const props = {\n ...options,\n // now the zIndex will be used inside the message.vue component instead of here.\n // zIndex: nextIndex() + options.zIndex\n id,\n onClose: () => {\n userOnClose?.()\n closeMessage(instance)\n },\n\n // clean message element preventing mem leak\n onDestroy: () => {\n // since the element is destroy, then the VNode should be collected by GC as well\n // we do not want cause any mem leak because we have returned vm as a reference to users\n // so that we manually set it to false.\n render(null, container)\n },\n }\n const vnode = createVNode(\n MessageConstructor,\n props,\n isFunction(props.message) || isVNode(props.message)\n ? {\n default: isFunction(props.message)\n ? props.message\n : () => props.message,\n }\n : null\n )\n vnode.appContext = context || message._context\n\n render(vnode, container)\n // instances will remove this item when close function gets called. So we do not need to worry about it.\n appendTo.appendChild(container.firstElementChild!)\n\n const vm = vnode.component!\n\n const handler: MessageHandler = {\n // instead of calling the onClose function directly, setting this value so that we can have the full lifecycle\n // for out component, so that all closing steps will not be skipped.\n close: () => {\n vm.exposed!.visible.value = false\n },\n }\n\n const instance: MessageContext = {\n id,\n vnode,\n vm,\n handler,\n props: (vnode.component as any).props,\n }\n\n return instance\n}\n\nconst message: MessageFn &\n Partial<Message> & { _context: AppContext | null } = (\n options = {},\n context\n) => {\n if (!isClient) return { close: () => undefined }\n\n if (isNumber(messageConfig.max) && instances.length >= messageConfig.max) {\n return { close: () => undefined }\n }\n\n const normalized = normalizeOptions(options)\n\n if (normalized.grouping && instances.length) {\n const instance = instances.find(\n ({ vnode: vm }) => vm.props?.message === normalized.message\n )\n if (instance) {\n instance.props.repeatNum += 1\n instance.props.type = normalized.type\n return instance.handler\n }\n }\n\n const instance = createMessage(normalized, context)\n\n instances.push(instance)\n return instance.handler\n}\n\nmessageTypes.forEach((type) => {\n message[type] = (options = {}, appContext) => {\n const normalized = normalizeOptions(options)\n return message({ ...normalized, type }, appContext)\n }\n})\n\nexport function closeAll(type?: messageType): void {\n for (const instance of instances) {\n if (!type || type === instance.props.type) {\n instance.handler.close()\n }\n }\n}\n\nmessage.closeAll = closeAll\nmessage._context = null\n\nexport default message as Message\n"],"names":["isString","isVNode","isFunction","messageDefaults","isElement","debugWarn","instance","instances","render","createVNode","MessageConstructor","isClient","isNumber","messageConfig","messageTypes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"method.js","sources":["../../../../../../packages/components/message/src/method.ts"],"sourcesContent":["import { createVNode, render } from 'vue'\nimport {\n debugWarn,\n isBoolean,\n isClient,\n isElement,\n isFunction,\n isNumber,\n isString,\n isVNode,\n} from '@element-plus/utils'\nimport { messageConfig } from '@element-plus/components/config-provider'\nimport MessageConstructor from './message.vue'\nimport { messageDefaults, messageTypes } from './message'\nimport { instances } from './instance'\n\nimport type { MessageContext } from './instance'\nimport type { AppContext } from 'vue'\nimport type {\n Message,\n MessageFn,\n MessageHandler,\n MessageOptions,\n MessageParams,\n MessageParamsNormalized,\n messageType,\n} from './message'\n\nlet seed = 1\n\n// TODO: Since Notify.ts is basically the same like this file. So we could do some encapsulation against them to reduce code duplication.\n\nconst normalizeOptions = (params?: MessageParams) => {\n const options: MessageOptions =\n !params || isString(params) || isVNode(params) || isFunction(params)\n ? { message: params }\n : params\n\n const normalized = {\n ...messageDefaults,\n ...options,\n }\n\n if (!normalized.appendTo) {\n normalized.appendTo = document.body\n } else if (isString(normalized.appendTo)) {\n let appendTo = document.querySelector<HTMLElement>(normalized.appendTo)\n\n // should fallback to default value with a warning\n if (!isElement(appendTo)) {\n debugWarn(\n 'ElMessage',\n 'the appendTo option is not an HTMLElement. Falling back to document.body.'\n )\n appendTo = document.body\n }\n\n normalized.appendTo = appendTo\n }\n\n // When grouping is configured globally,\n // if grouping is manually set when calling message individually and it is not equal to the default value,\n // the global configuration cannot override the current setting. default => false\n if (isBoolean(messageConfig.grouping) && !normalized.grouping) {\n normalized.grouping = messageConfig.grouping\n }\n if (isNumber(messageConfig.duration) && normalized.duration === 3000) {\n normalized.duration = messageConfig.duration\n }\n if (isNumber(messageConfig.offset) && normalized.offset === 16) {\n normalized.offset = messageConfig.offset\n }\n if (isBoolean(messageConfig.showClose) && !normalized.showClose) {\n normalized.showClose = messageConfig.showClose\n }\n\n return normalized as MessageParamsNormalized\n}\n\nconst closeMessage = (instance: MessageContext) => {\n const idx = instances.indexOf(instance)\n if (idx === -1) return\n\n instances.splice(idx, 1)\n const { handler } = instance\n handler.close()\n}\n\nconst createMessage = (\n { appendTo, ...options }: MessageParamsNormalized,\n context?: AppContext | null\n): MessageContext => {\n const id = `message_${seed++}`\n const userOnClose = options.onClose\n\n const container = document.createElement('div')\n\n const props = {\n ...options,\n // now the zIndex will be used inside the message.vue component instead of here.\n // zIndex: nextIndex() + options.zIndex\n id,\n onClose: () => {\n userOnClose?.()\n closeMessage(instance)\n },\n\n // clean message element preventing mem leak\n onDestroy: () => {\n // since the element is destroy, then the VNode should be collected by GC as well\n // we do not want cause any mem leak because we have returned vm as a reference to users\n // so that we manually set it to false.\n render(null, container)\n },\n }\n const vnode = createVNode(\n MessageConstructor,\n props,\n isFunction(props.message) || isVNode(props.message)\n ? {\n default: isFunction(props.message)\n ? props.message\n : () => props.message,\n }\n : null\n )\n vnode.appContext = context || message._context\n\n render(vnode, container)\n // instances will remove this item when close function gets called. So we do not need to worry about it.\n appendTo.appendChild(container.firstElementChild!)\n\n const vm = vnode.component!\n\n const handler: MessageHandler = {\n // instead of calling the onClose function directly, setting this value so that we can have the full lifecycle\n // for out component, so that all closing steps will not be skipped.\n close: () => {\n vm.exposed!.visible.value = false\n },\n }\n\n const instance: MessageContext = {\n id,\n vnode,\n vm,\n handler,\n props: (vnode.component as any).props,\n }\n\n return instance\n}\n\nconst message: MessageFn &\n Partial<Message> & { _context: AppContext | null } = (\n options = {},\n context\n) => {\n if (!isClient) return { close: () => undefined }\n\n if (isNumber(messageConfig.max) && instances.length >= messageConfig.max) {\n return { close: () => undefined }\n }\n\n const normalized = normalizeOptions(options)\n\n if (normalized.grouping && instances.length) {\n const instance = instances.find(\n ({ vnode: vm }) => vm.props?.message === normalized.message\n )\n if (instance) {\n instance.props.repeatNum += 1\n instance.props.type = normalized.type\n return instance.handler\n }\n }\n\n const instance = createMessage(normalized, context)\n\n instances.push(instance)\n return instance.handler\n}\n\nmessageTypes.forEach((type) => {\n message[type] = (options = {}, appContext) => {\n const normalized = normalizeOptions(options)\n return message({ ...normalized, type }, appContext)\n }\n})\n\nexport function closeAll(type?: messageType): void {\n for (const instance of instances) {\n if (!type || type === instance.props.type) {\n instance.handler.close()\n }\n }\n}\n\nmessage.closeAll = closeAll\nmessage._context = null\n\nexport default message as Message\n"],"names":["isString","isVNode","isFunction","messageDefaults","isElement","debugWarn","isBoolean","messageConfig","isNumber","instance","instances","render","createVNode","MessageConstructor","isClient","messageTypes"],"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>;
|
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
require('../../utils/index.js');
|
|
6
6
|
var popper$1 = require('./src/popper2.js');
|
|
7
7
|
var arrow = require('./src/arrow2.js');
|
|
8
|
-
var trigger = require('./src/
|
|
8
|
+
var trigger = require('./src/trigger2.js');
|
|
9
9
|
var content = require('./src/content2.js');
|
|
10
10
|
var popper = require('./src/popper.js');
|
|
11
|
-
var trigger$1 = require('./src/
|
|
11
|
+
var trigger$1 = require('./src/trigger.js');
|
|
12
12
|
var content$1 = require('./src/content.js');
|
|
13
13
|
var arrow$1 = require('./src/arrow.js');
|
|
14
14
|
var constants = require('./src/constants.js');
|
|
@@ -2,137 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var vue = require('vue');
|
|
6
|
-
var lodashUnified = require('lodash-unified');
|
|
7
|
-
var core = require('@vueuse/core');
|
|
8
|
-
require('../../slot/index.js');
|
|
9
|
-
require('../../../hooks/index.js');
|
|
10
5
|
require('../../../utils/index.js');
|
|
11
|
-
var
|
|
12
|
-
var trigger = require('./trigger2.js');
|
|
13
|
-
var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
|
|
14
|
-
var index = require('../../../hooks/use-forward-ref/index.js');
|
|
15
|
-
var types = require('../../../utils/types.js');
|
|
16
|
-
var onlyChild = require('../../slot/src/only-child.js');
|
|
6
|
+
var runtime = require('../../../utils/vue/props/runtime.js');
|
|
17
7
|
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
const popperTriggerProps = runtime.buildProps({
|
|
9
|
+
virtualRef: {
|
|
10
|
+
type: runtime.definePropType(Object)
|
|
11
|
+
},
|
|
12
|
+
virtualTriggering: Boolean,
|
|
13
|
+
onMouseenter: {
|
|
14
|
+
type: runtime.definePropType(Function)
|
|
15
|
+
},
|
|
16
|
+
onMouseleave: {
|
|
17
|
+
type: runtime.definePropType(Function)
|
|
18
|
+
},
|
|
19
|
+
onClick: {
|
|
20
|
+
type: runtime.definePropType(Function)
|
|
21
|
+
},
|
|
22
|
+
onKeydown: {
|
|
23
|
+
type: runtime.definePropType(Function)
|
|
24
|
+
},
|
|
25
|
+
onFocus: {
|
|
26
|
+
type: runtime.definePropType(Function)
|
|
27
|
+
},
|
|
28
|
+
onBlur: {
|
|
29
|
+
type: runtime.definePropType(Function)
|
|
30
|
+
},
|
|
31
|
+
onContextmenu: {
|
|
32
|
+
type: runtime.definePropType(Function)
|
|
33
|
+
},
|
|
34
|
+
id: String,
|
|
35
|
+
open: Boolean
|
|
21
36
|
});
|
|
22
|
-
const
|
|
23
|
-
...__default__,
|
|
24
|
-
props: trigger.popperTriggerProps,
|
|
25
|
-
setup(__props, { expose }) {
|
|
26
|
-
const props = __props;
|
|
27
|
-
const { role, triggerRef } = vue.inject(constants.POPPER_INJECTION_KEY, void 0);
|
|
28
|
-
index.useForwardRef(triggerRef);
|
|
29
|
-
const ariaControls = vue.computed(() => {
|
|
30
|
-
return ariaHaspopup.value ? props.id : void 0;
|
|
31
|
-
});
|
|
32
|
-
const ariaDescribedby = vue.computed(() => {
|
|
33
|
-
if (role && role.value === "tooltip") {
|
|
34
|
-
return props.open && props.id ? props.id : void 0;
|
|
35
|
-
}
|
|
36
|
-
return void 0;
|
|
37
|
-
});
|
|
38
|
-
const ariaHaspopup = vue.computed(() => {
|
|
39
|
-
if (role && role.value !== "tooltip") {
|
|
40
|
-
return role.value;
|
|
41
|
-
}
|
|
42
|
-
return void 0;
|
|
43
|
-
});
|
|
44
|
-
const ariaExpanded = vue.computed(() => {
|
|
45
|
-
return ariaHaspopup.value ? `${props.open}` : void 0;
|
|
46
|
-
});
|
|
47
|
-
let virtualTriggerAriaStopWatch = void 0;
|
|
48
|
-
const TRIGGER_ELE_EVENTS = [
|
|
49
|
-
"onMouseenter",
|
|
50
|
-
"onMouseleave",
|
|
51
|
-
"onClick",
|
|
52
|
-
"onKeydown",
|
|
53
|
-
"onFocus",
|
|
54
|
-
"onBlur",
|
|
55
|
-
"onContextmenu"
|
|
56
|
-
];
|
|
57
|
-
vue.onMounted(() => {
|
|
58
|
-
vue.watch(() => props.virtualRef, (virtualEl) => {
|
|
59
|
-
if (virtualEl) {
|
|
60
|
-
triggerRef.value = core.unrefElement(virtualEl);
|
|
61
|
-
}
|
|
62
|
-
}, {
|
|
63
|
-
immediate: true
|
|
64
|
-
});
|
|
65
|
-
vue.watch(triggerRef, (el, prevEl) => {
|
|
66
|
-
virtualTriggerAriaStopWatch == null ? void 0 : virtualTriggerAriaStopWatch();
|
|
67
|
-
virtualTriggerAriaStopWatch = void 0;
|
|
68
|
-
if (types.isElement(el)) {
|
|
69
|
-
TRIGGER_ELE_EVENTS.forEach((eventName) => {
|
|
70
|
-
var _a;
|
|
71
|
-
const handler = props[eventName];
|
|
72
|
-
if (handler) {
|
|
73
|
-
;
|
|
74
|
-
el.addEventListener(eventName.slice(2).toLowerCase(), handler);
|
|
75
|
-
(_a = prevEl == null ? void 0 : prevEl.removeEventListener) == null ? void 0 : _a.call(prevEl, eventName.slice(2).toLowerCase(), handler);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
virtualTriggerAriaStopWatch = vue.watch([ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded], (watches) => {
|
|
79
|
-
;
|
|
80
|
-
[
|
|
81
|
-
"aria-controls",
|
|
82
|
-
"aria-describedby",
|
|
83
|
-
"aria-haspopup",
|
|
84
|
-
"aria-expanded"
|
|
85
|
-
].forEach((key, idx) => {
|
|
86
|
-
lodashUnified.isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
|
|
87
|
-
});
|
|
88
|
-
}, { immediate: true });
|
|
89
|
-
}
|
|
90
|
-
if (types.isElement(prevEl)) {
|
|
91
|
-
;
|
|
92
|
-
[
|
|
93
|
-
"aria-controls",
|
|
94
|
-
"aria-describedby",
|
|
95
|
-
"aria-haspopup",
|
|
96
|
-
"aria-expanded"
|
|
97
|
-
].forEach((key) => prevEl.removeAttribute(key));
|
|
98
|
-
}
|
|
99
|
-
}, {
|
|
100
|
-
immediate: true
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
vue.onBeforeUnmount(() => {
|
|
104
|
-
virtualTriggerAriaStopWatch == null ? void 0 : virtualTriggerAriaStopWatch();
|
|
105
|
-
virtualTriggerAriaStopWatch = void 0;
|
|
106
|
-
if (triggerRef.value && types.isElement(triggerRef.value)) {
|
|
107
|
-
const el = triggerRef.value;
|
|
108
|
-
TRIGGER_ELE_EVENTS.forEach((eventName) => {
|
|
109
|
-
const handler = props[eventName];
|
|
110
|
-
if (handler) {
|
|
111
|
-
el.removeEventListener(eventName.slice(2).toLowerCase(), handler);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
triggerRef.value = void 0;
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
expose({
|
|
118
|
-
triggerRef
|
|
119
|
-
});
|
|
120
|
-
return (_ctx, _cache) => {
|
|
121
|
-
return !_ctx.virtualTriggering ? (vue.openBlock(), vue.createBlock(vue.unref(onlyChild.OnlyChild), vue.mergeProps({ key: 0 }, _ctx.$attrs, {
|
|
122
|
-
"aria-controls": vue.unref(ariaControls),
|
|
123
|
-
"aria-describedby": vue.unref(ariaDescribedby),
|
|
124
|
-
"aria-expanded": vue.unref(ariaExpanded),
|
|
125
|
-
"aria-haspopup": vue.unref(ariaHaspopup)
|
|
126
|
-
}), {
|
|
127
|
-
default: vue.withCtx(() => [
|
|
128
|
-
vue.renderSlot(_ctx.$slots, "default")
|
|
129
|
-
]),
|
|
130
|
-
_: 3
|
|
131
|
-
}, 16, ["aria-controls", "aria-describedby", "aria-expanded", "aria-haspopup"])) : vue.createCommentVNode("v-if", true);
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
var ElPopperTrigger = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "trigger.vue"]]);
|
|
37
|
+
const usePopperTriggerProps = popperTriggerProps;
|
|
136
38
|
|
|
137
|
-
exports
|
|
39
|
+
exports.popperTriggerProps = popperTriggerProps;
|
|
40
|
+
exports.usePopperTriggerProps = usePopperTriggerProps;
|
|
138
41
|
//# sourceMappingURL=trigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.js","sources":["../../../../../../packages/components/popper/src/trigger.
|
|
1
|
+
{"version":3,"file":"trigger.js","sources":["../../../../../../packages/components/popper/src/trigger.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\n\nimport type { Measurable } from './constants'\nimport type Trigger from './trigger.vue'\n\nexport const popperTriggerProps = buildProps({\n virtualRef: {\n type: definePropType<Measurable>(Object),\n },\n virtualTriggering: Boolean,\n onMouseenter: {\n type: definePropType<(e: Event) => void>(Function),\n },\n onMouseleave: {\n type: definePropType<(e: Event) => void>(Function),\n },\n onClick: {\n type: definePropType<(e: Event) => void>(Function),\n },\n onKeydown: {\n type: definePropType<(e: Event) => void>(Function),\n },\n onFocus: {\n type: definePropType<(e: Event) => void>(Function),\n },\n onBlur: {\n type: definePropType<(e: Event) => void>(Function),\n },\n onContextmenu: {\n type: definePropType<(e: Event) => void>(Function),\n },\n id: String,\n open: Boolean,\n} as const)\n\nexport type PopperTriggerProps = typeof popperTriggerProps\n\nexport type PopperTriggerInstance = InstanceType<typeof Trigger>\n\n/** @deprecated use `popperTriggerProps` instead, and it will be deprecated in the next major version */\nexport const usePopperTriggerProps = popperTriggerProps\n\n/** @deprecated use `PopperTriggerInstance` instead, and it will be deprecated in the next major version */\nexport type ElPopperArrowTrigger = PopperTriggerInstance\n"],"names":["buildProps","definePropType"],"mappings":";;;;;;;AACY,MAAC,kBAAkB,GAAGA,kBAAU,CAAC;AAC7C,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAEC,sBAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,iBAAiB,EAAE,OAAO;AAC5B,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,EAAE,EAAE,MAAM;AACZ,EAAE,IAAI,EAAE,OAAO;AACf,CAAC,EAAE;AACS,MAAC,qBAAqB,GAAG;;;;;"}
|
|
@@ -2,40 +2,137 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
var lodashUnified = require('lodash-unified');
|
|
7
|
+
var core = require('@vueuse/core');
|
|
8
|
+
require('../../slot/index.js');
|
|
9
|
+
require('../../../hooks/index.js');
|
|
5
10
|
require('../../../utils/index.js');
|
|
6
|
-
var
|
|
11
|
+
var constants = require('./constants.js');
|
|
12
|
+
var trigger = require('./trigger.js');
|
|
13
|
+
var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
|
|
14
|
+
var index = require('../../../hooks/use-forward-ref/index.js');
|
|
15
|
+
var types = require('../../../utils/types.js');
|
|
16
|
+
var onlyChild = require('../../slot/src/only-child.js');
|
|
7
17
|
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
},
|
|
12
|
-
virtualTriggering: Boolean,
|
|
13
|
-
onMouseenter: {
|
|
14
|
-
type: runtime.definePropType(Function)
|
|
15
|
-
},
|
|
16
|
-
onMouseleave: {
|
|
17
|
-
type: runtime.definePropType(Function)
|
|
18
|
-
},
|
|
19
|
-
onClick: {
|
|
20
|
-
type: runtime.definePropType(Function)
|
|
21
|
-
},
|
|
22
|
-
onKeydown: {
|
|
23
|
-
type: runtime.definePropType(Function)
|
|
24
|
-
},
|
|
25
|
-
onFocus: {
|
|
26
|
-
type: runtime.definePropType(Function)
|
|
27
|
-
},
|
|
28
|
-
onBlur: {
|
|
29
|
-
type: runtime.definePropType(Function)
|
|
30
|
-
},
|
|
31
|
-
onContextmenu: {
|
|
32
|
-
type: runtime.definePropType(Function)
|
|
33
|
-
},
|
|
34
|
-
id: String,
|
|
35
|
-
open: Boolean
|
|
18
|
+
const __default__ = vue.defineComponent({
|
|
19
|
+
name: "ElPopperTrigger",
|
|
20
|
+
inheritAttrs: false
|
|
36
21
|
});
|
|
37
|
-
const
|
|
22
|
+
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
23
|
+
...__default__,
|
|
24
|
+
props: trigger.popperTriggerProps,
|
|
25
|
+
setup(__props, { expose }) {
|
|
26
|
+
const props = __props;
|
|
27
|
+
const { role, triggerRef } = vue.inject(constants.POPPER_INJECTION_KEY, void 0);
|
|
28
|
+
index.useForwardRef(triggerRef);
|
|
29
|
+
const ariaControls = vue.computed(() => {
|
|
30
|
+
return ariaHaspopup.value ? props.id : void 0;
|
|
31
|
+
});
|
|
32
|
+
const ariaDescribedby = vue.computed(() => {
|
|
33
|
+
if (role && role.value === "tooltip") {
|
|
34
|
+
return props.open && props.id ? props.id : void 0;
|
|
35
|
+
}
|
|
36
|
+
return void 0;
|
|
37
|
+
});
|
|
38
|
+
const ariaHaspopup = vue.computed(() => {
|
|
39
|
+
if (role && role.value !== "tooltip") {
|
|
40
|
+
return role.value;
|
|
41
|
+
}
|
|
42
|
+
return void 0;
|
|
43
|
+
});
|
|
44
|
+
const ariaExpanded = vue.computed(() => {
|
|
45
|
+
return ariaHaspopup.value ? `${props.open}` : void 0;
|
|
46
|
+
});
|
|
47
|
+
let virtualTriggerAriaStopWatch = void 0;
|
|
48
|
+
const TRIGGER_ELE_EVENTS = [
|
|
49
|
+
"onMouseenter",
|
|
50
|
+
"onMouseleave",
|
|
51
|
+
"onClick",
|
|
52
|
+
"onKeydown",
|
|
53
|
+
"onFocus",
|
|
54
|
+
"onBlur",
|
|
55
|
+
"onContextmenu"
|
|
56
|
+
];
|
|
57
|
+
vue.onMounted(() => {
|
|
58
|
+
vue.watch(() => props.virtualRef, (virtualEl) => {
|
|
59
|
+
if (virtualEl) {
|
|
60
|
+
triggerRef.value = core.unrefElement(virtualEl);
|
|
61
|
+
}
|
|
62
|
+
}, {
|
|
63
|
+
immediate: true
|
|
64
|
+
});
|
|
65
|
+
vue.watch(triggerRef, (el, prevEl) => {
|
|
66
|
+
virtualTriggerAriaStopWatch == null ? void 0 : virtualTriggerAriaStopWatch();
|
|
67
|
+
virtualTriggerAriaStopWatch = void 0;
|
|
68
|
+
if (types.isElement(el)) {
|
|
69
|
+
TRIGGER_ELE_EVENTS.forEach((eventName) => {
|
|
70
|
+
var _a;
|
|
71
|
+
const handler = props[eventName];
|
|
72
|
+
if (handler) {
|
|
73
|
+
;
|
|
74
|
+
el.addEventListener(eventName.slice(2).toLowerCase(), handler);
|
|
75
|
+
(_a = prevEl == null ? void 0 : prevEl.removeEventListener) == null ? void 0 : _a.call(prevEl, eventName.slice(2).toLowerCase(), handler);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
virtualTriggerAriaStopWatch = vue.watch([ariaControls, ariaDescribedby, ariaHaspopup, ariaExpanded], (watches) => {
|
|
79
|
+
;
|
|
80
|
+
[
|
|
81
|
+
"aria-controls",
|
|
82
|
+
"aria-describedby",
|
|
83
|
+
"aria-haspopup",
|
|
84
|
+
"aria-expanded"
|
|
85
|
+
].forEach((key, idx) => {
|
|
86
|
+
lodashUnified.isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]);
|
|
87
|
+
});
|
|
88
|
+
}, { immediate: true });
|
|
89
|
+
}
|
|
90
|
+
if (types.isElement(prevEl)) {
|
|
91
|
+
;
|
|
92
|
+
[
|
|
93
|
+
"aria-controls",
|
|
94
|
+
"aria-describedby",
|
|
95
|
+
"aria-haspopup",
|
|
96
|
+
"aria-expanded"
|
|
97
|
+
].forEach((key) => prevEl.removeAttribute(key));
|
|
98
|
+
}
|
|
99
|
+
}, {
|
|
100
|
+
immediate: true
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
vue.onBeforeUnmount(() => {
|
|
104
|
+
virtualTriggerAriaStopWatch == null ? void 0 : virtualTriggerAriaStopWatch();
|
|
105
|
+
virtualTriggerAriaStopWatch = void 0;
|
|
106
|
+
if (triggerRef.value && types.isElement(triggerRef.value)) {
|
|
107
|
+
const el = triggerRef.value;
|
|
108
|
+
TRIGGER_ELE_EVENTS.forEach((eventName) => {
|
|
109
|
+
const handler = props[eventName];
|
|
110
|
+
if (handler) {
|
|
111
|
+
el.removeEventListener(eventName.slice(2).toLowerCase(), handler);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
triggerRef.value = void 0;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
expose({
|
|
118
|
+
triggerRef
|
|
119
|
+
});
|
|
120
|
+
return (_ctx, _cache) => {
|
|
121
|
+
return !_ctx.virtualTriggering ? (vue.openBlock(), vue.createBlock(vue.unref(onlyChild.OnlyChild), vue.mergeProps({ key: 0 }, _ctx.$attrs, {
|
|
122
|
+
"aria-controls": vue.unref(ariaControls),
|
|
123
|
+
"aria-describedby": vue.unref(ariaDescribedby),
|
|
124
|
+
"aria-expanded": vue.unref(ariaExpanded),
|
|
125
|
+
"aria-haspopup": vue.unref(ariaHaspopup)
|
|
126
|
+
}), {
|
|
127
|
+
default: vue.withCtx(() => [
|
|
128
|
+
vue.renderSlot(_ctx.$slots, "default")
|
|
129
|
+
]),
|
|
130
|
+
_: 3
|
|
131
|
+
}, 16, ["aria-controls", "aria-describedby", "aria-expanded", "aria-haspopup"])) : vue.createCommentVNode("v-if", true);
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
var ElPopperTrigger = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "trigger.vue"]]);
|
|
38
136
|
|
|
39
|
-
exports
|
|
40
|
-
exports.usePopperTriggerProps = usePopperTriggerProps;
|
|
137
|
+
exports["default"] = ElPopperTrigger;
|
|
41
138
|
//# sourceMappingURL=trigger2.js.map
|