@element-plus/nightly 0.0.20221012 → 0.0.20221013
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/dist/index.full.js +135 -42
- package/dist/index.full.min.js +18 -18
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +16 -16
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +135 -42
- 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.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/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/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/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/index.d.ts +6 -6
- package/es/components/autocomplete/src/autocomplete.vue.d.ts +6 -6
- package/es/components/cascader/index.d.ts +8 -8
- package/es/components/cascader/src/index.mjs +1 -1
- package/es/components/cascader/src/index.mjs.map +1 -1
- package/es/components/cascader/src/index.vue.d.ts +4 -4
- package/es/components/color-picker/index.d.ts +6 -6
- package/es/components/color-picker/src/color-picker.vue.d.ts +6 -6
- package/es/components/dropdown/index.d.ts +4 -4
- package/es/components/dropdown/src/dropdown.vue.d.ts +4 -4
- package/es/components/focus-trap/index.mjs +2 -2
- package/es/components/focus-trap/src/focus-trap.mjs +49 -15
- package/es/components/focus-trap/src/focus-trap.mjs.map +1 -1
- package/es/components/focus-trap/src/tokens.d.ts +2 -0
- package/es/components/focus-trap/src/tokens.mjs +6 -1
- package/es/components/focus-trap/src/tokens.mjs.map +1 -1
- package/es/components/focus-trap/src/utils.d.ts +11 -0
- package/es/components/focus-trap/src/utils.mjs +49 -1
- package/es/components/focus-trap/src/utils.mjs.map +1 -1
- package/es/components/pagination/src/components/sizes.vue.d.ts +4 -4
- package/es/components/popconfirm/index.d.ts +6 -6
- package/es/components/popconfirm/src/popconfirm.vue.d.ts +6 -6
- package/es/components/popover/index.d.ts +6 -6
- package/es/components/popover/src/popover.vue.d.ts +6 -6
- package/es/components/popper/src/content.vue.d.ts +2 -2
- package/es/components/popper/src/content2.mjs +10 -9
- package/es/components/popper/src/content2.mjs.map +1 -1
- package/es/components/select/index.d.ts +4 -4
- package/es/components/select/src/select.vue.d.ts +4 -4
- package/es/components/select/src/useSelect.d.ts +4 -4
- package/es/components/select/src/useSelect.mjs +3 -1
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/index.d.ts +8 -8
- package/es/components/select-v2/src/select.vue.d.ts +4 -4
- package/es/components/select-v2/src/useSelect.d.ts +4 -4
- package/es/components/slider/index.d.ts +10 -10
- package/es/components/slider/src/button.vue.d.ts +2 -2
- package/es/components/slider/src/composables/use-slide.d.ts +8 -8
- package/es/components/slider/src/slider.vue.d.ts +10 -10
- package/es/components/table/index.d.ts +4 -0
- package/es/components/table/index.mjs.map +1 -1
- package/es/components/table/src/filter-panel.vue.d.ts +4 -4
- package/es/components/tabs/index.d.ts +17 -17
- package/es/components/tabs/src/tab-nav.d.ts +4 -4
- package/es/components/tabs/src/tab-nav.mjs.map +1 -1
- package/es/components/tabs/src/tabs.d.ts +26 -26
- package/es/components/tabs/src/tabs.mjs +4 -4
- package/es/components/tabs/src/tabs.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.mjs +9 -4
- package/es/components/time-picker/src/common/picker.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue.d.ts +6 -6
- package/es/components/time-select/index.d.ts +16 -16
- package/es/components/time-select/src/time-select.vue.d.ts +8 -8
- package/es/components/tooltip/index.d.ts +2 -2
- package/es/components/tooltip/src/content.vue.d.ts +2 -2
- package/es/components/tooltip/src/tooltip.vue.d.ts +2 -2
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/autocomplete/index.d.ts +6 -6
- package/lib/components/autocomplete/src/autocomplete.vue.d.ts +6 -6
- package/lib/components/cascader/index.d.ts +8 -8
- package/lib/components/cascader/src/index.js +1 -1
- package/lib/components/cascader/src/index.js.map +1 -1
- package/lib/components/cascader/src/index.vue.d.ts +4 -4
- package/lib/components/color-picker/index.d.ts +6 -6
- package/lib/components/color-picker/src/color-picker.vue.d.ts +6 -6
- package/lib/components/dropdown/index.d.ts +4 -4
- package/lib/components/dropdown/src/dropdown.vue.d.ts +4 -4
- package/lib/components/focus-trap/index.js +5 -0
- package/lib/components/focus-trap/index.js.map +1 -1
- package/lib/components/focus-trap/src/focus-trap.js +48 -14
- package/lib/components/focus-trap/src/focus-trap.js.map +1 -1
- package/lib/components/focus-trap/src/tokens.d.ts +2 -0
- package/lib/components/focus-trap/src/tokens.js +7 -0
- package/lib/components/focus-trap/src/tokens.js.map +1 -1
- package/lib/components/focus-trap/src/utils.d.ts +11 -0
- package/lib/components/focus-trap/src/utils.js +51 -0
- package/lib/components/focus-trap/src/utils.js.map +1 -1
- package/lib/components/pagination/src/components/sizes.vue.d.ts +4 -4
- package/lib/components/popconfirm/index.d.ts +6 -6
- package/lib/components/popconfirm/src/popconfirm.vue.d.ts +6 -6
- package/lib/components/popover/index.d.ts +6 -6
- package/lib/components/popover/src/popover.vue.d.ts +6 -6
- package/lib/components/popper/src/content.vue.d.ts +2 -2
- package/lib/components/popper/src/content2.js +10 -9
- package/lib/components/popper/src/content2.js.map +1 -1
- package/lib/components/select/index.d.ts +4 -4
- package/lib/components/select/src/select.vue.d.ts +4 -4
- package/lib/components/select/src/useSelect.d.ts +4 -4
- package/lib/components/select/src/useSelect.js +3 -1
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/index.d.ts +8 -8
- package/lib/components/select-v2/src/select.vue.d.ts +4 -4
- package/lib/components/select-v2/src/useSelect.d.ts +4 -4
- package/lib/components/slider/index.d.ts +10 -10
- package/lib/components/slider/src/button.vue.d.ts +2 -2
- package/lib/components/slider/src/composables/use-slide.d.ts +8 -8
- package/lib/components/slider/src/slider.vue.d.ts +10 -10
- package/lib/components/table/index.d.ts +4 -0
- package/lib/components/table/index.js.map +1 -1
- package/lib/components/table/src/filter-panel.vue.d.ts +4 -4
- package/lib/components/tabs/index.d.ts +17 -17
- package/lib/components/tabs/src/tab-nav.d.ts +4 -4
- package/lib/components/tabs/src/tab-nav.js.map +1 -1
- package/lib/components/tabs/src/tabs.d.ts +26 -26
- package/lib/components/tabs/src/tabs.js +4 -4
- package/lib/components/tabs/src/tabs.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.js +8 -3
- package/lib/components/time-picker/src/common/picker.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue.d.ts +6 -6
- package/lib/components/time-select/index.d.ts +16 -16
- package/lib/components/time-select/src/time-select.vue.d.ts +8 -8
- package/lib/components/tooltip/index.d.ts +2 -2
- package/lib/components/tooltip/src/content.vue.d.ts +2 -2
- package/lib/components/tooltip/src/tooltip.vue.d.ts +2 -2
- 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/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../packages/components/cascader/src/index.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n :visible=\"popperVisible\"\n :teleported=\"teleported\"\n :popper-class=\"[nsCascader.e('dropdown'), popperClass]\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"[\n 'bottom-start',\n 'bottom',\n 'top-start',\n 'top',\n 'right',\n 'left',\n ]\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n placement=\"bottom-start\"\n :transition=\"`${nsCascader.namespace.value}-zoom-in-top`\"\n effect=\"light\"\n pure\n persistent\n @hide=\"hideSuggestionPanel\"\n >\n <template #default>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n nsCascader.b(),\n nsCascader.m(realSize),\n nsCascader.is('disabled', isDisabled),\n $attrs.class,\n ]\"\n :style=\"$attrs.style\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model=\"inputValue\"\n :placeholder=\"searchInputValue ? '' : inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"nsCascader.is('focus', popperVisible)\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n :class=\"[nsInput.e('icon'), 'icon-circle-close']\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n nsInput.e('icon'),\n 'icon-arrow-down',\n nsCascader.is('reverse', popperVisible),\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" :class=\"nsCascader.e('tags')\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <template v-if=\"tag.isCollapseTag === false\">\n <span>{{ tag.text }}</span>\n </template>\n <template v-else>\n <el-tooltip\n :teleported=\"false\"\n :disabled=\"popperVisible || !collapseTagsTooltip\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n placement=\"bottom\"\n effect=\"light\"\n >\n <template #default>\n <span>{{ tag.text }}</span>\n </template>\n <template #content>\n <div :class=\"nsCascader.e('collapse-tags')\">\n <div\n v-for=\"(tag2, idx) in allPresentTags.slice(1)\"\n :key=\"idx\"\n :class=\"nsCascader.e('collapse-tag')\"\n >\n <el-tag\n :key=\"tag2.key\"\n class=\"in-tooltip\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :hit=\"tag2.hitState\"\n :closable=\"tag2.closable\"\n disable-transitions\n @close=\"deleteTag(tag2)\"\n >\n <span>{{ tag2.text }}</span>\n </el-tag>\n </div>\n </div>\n </template>\n </el-tooltip>\n </template>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model=\"searchInputValue\"\n type=\"text\"\n :class=\"nsCascader.e('search-input')\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #content>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"$nextTick(() => togglePopperVisible(false))\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n :class=\"nsCascader.e('suggestion-panel')\"\n :view-class=\"nsCascader.e('suggestion-list')\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n nsCascader.e('suggestion-item'),\n nsCascader.is('checked', item.checked),\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\">\n <check />\n </el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li :class=\"nsCascader.e('empty-text')\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport { computed, defineComponent, nextTick, onMounted, ref, watch } from 'vue'\nimport { isPromise } from '@vue/shared'\nimport { debounce } from 'lodash-unified'\n\nimport { isClient, useResizeObserver } from '@vueuse/core'\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip, {\n useTooltipContentProps,\n} from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag, { tagProps } from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport {\n useFormItem,\n useLocale,\n useNamespace,\n useSize,\n} from '@element-plus/hooks'\n\nimport {\n debugWarn,\n focusNode,\n getSibling,\n isKorean,\n isValidComponentSize,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { ArrowDown, Check, CircleClose } from '@element-plus/icons-vue'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type {\n CascaderNode,\n CascaderValue,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/constants'\n\ntype cascaderPanelType = InstanceType<typeof ElCascaderPanel>\ntype tooltipType = InstanceType<typeof ElTooltip>\ntype inputType = InstanceType<typeof ElInput>\ntype suggestionPanelType = InstanceType<typeof ElScrollbar>\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n large: 36,\n default: 32,\n small: 28,\n}\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state as any\n if (['right', 'left', 'bottom', 'top'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\nconst COMPONENT_NAME = 'ElCascader'\nexport default defineComponent({\n name: COMPONENT_NAME,\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElTooltip,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n collapseTagsTooltip: {\n type: Boolean,\n default: false,\n },\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n teleported: useTooltipContentProps.teleported,\n // eslint-disable-next-line vue/require-prop-types\n tagType: { ...tagProps.type, default: 'info' },\n validateEvent: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const nsCascader = useNamespace('cascader')\n const nsInput = useNamespace('input')\n\n const { t } = useLocale()\n const { form, formItem } = useFormItem()\n\n const tooltipRef: Ref<tooltipType | null> = ref(null)\n const input: Ref<inputType | null> = ref(null)\n const tagWrapper = ref(null)\n const panel: Ref<cascaderPanelType | null> = ref(null)\n const suggestionPanel: Ref<suggestionPanelType | null> = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const allPresentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || form?.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize = useSize()\n const tagSize = computed(() =>\n ['small'].includes(realSize.value) ? 'small' : 'default'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ' '\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n })\n\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue as CascaderValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n if (props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n },\n })\n\n const popperPaneRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n })\n\n const togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n syncPresentTextValue()\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(() => {\n tooltipRef.value?.updatePopper()\n })\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n isCollapseTag: false,\n }\n }\n\n const deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n panel.value?.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n const allTags: Tag[] = []\n nodes.forEach((node) => allTags.push(genTag(node)))\n allPresentTags.value = allTags\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n isCollapseTag: true,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n allPresentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n `.${nsCascader.e('suggestion-item')}`\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n `.${nsCascader.b('node')}[tabindex=\"-1\"]`\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (!isClient || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n `.${nsCascader.e('suggestion-list')}`\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value?.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n if (popperVisible.value === true) {\n e.preventDefault()\n e.stopPropagation()\n togglePopperVisible(false)\n }\n break\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value?.clearCheckedNodes()\n if (!popperVisible.value && props.filterable) {\n syncPresentTextValue()\n }\n togglePopperVisible(false)\n }\n\n const syncPresentTextValue = () => {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n `.${nsCascader.e('suggestion-item')}[tabindex=\"-1\"]`\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (\n !lastTag ||\n !pressDeleteCount ||\n (props.collapseTags && tags.length > 1)\n )\n return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value?.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n useResizeObserver(inputEl, updateStyle)\n })\n\n return {\n popperOptions,\n tooltipRef,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n allPresentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n\n nsCascader,\n nsInput,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElCascaderPanel","ElInput","ElTooltip","ElScrollbar","ElTag","ElIcon","CircleClose","Check","ArrowDown","Clickoutside","CommonProps","isValidComponentSize","useTooltipContentProps","tagProps","UPDATE_MODEL_EVENT","CHANGE_EVENT","useNamespace","useLocale","useFormItem","ref","computed","useSize","debugWarn","nextTick","isClient","isKorean","EVENT_CODE","focusNode","getSibling","debounce","isPromise","watch","onMounted","useResizeObserver","_resolveComponent","_resolveDirective","_openBlock","_createBlock","_withCtx","_withDirectives","_createElementBlock","_normalizeClass","_normalizeStyle","_createVNode","_withModifiers","_Fragment","_renderList","_toDisplayString","_createElementVNode","_withKeys","_createCommentVNode","_vShow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../packages/components/cascader/src/index.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n :visible=\"popperVisible\"\n :teleported=\"teleported\"\n :popper-class=\"[nsCascader.e('dropdown'), popperClass]\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"[\n 'bottom-start',\n 'bottom',\n 'top-start',\n 'top',\n 'right',\n 'left',\n ]\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n placement=\"bottom-start\"\n :transition=\"`${nsCascader.namespace.value}-zoom-in-top`\"\n effect=\"light\"\n pure\n persistent\n @hide=\"hideSuggestionPanel\"\n >\n <template #default>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n nsCascader.b(),\n nsCascader.m(realSize),\n nsCascader.is('disabled', isDisabled),\n $attrs.class,\n ]\"\n :style=\"$attrs.style\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model=\"inputValue\"\n :placeholder=\"searchInputValue ? '' : inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"nsCascader.is('focus', popperVisible)\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n :class=\"[nsInput.e('icon'), 'icon-circle-close']\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n nsInput.e('icon'),\n 'icon-arrow-down',\n nsCascader.is('reverse', popperVisible),\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" :class=\"nsCascader.e('tags')\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <template v-if=\"tag.isCollapseTag === false\">\n <span>{{ tag.text }}</span>\n </template>\n <template v-else>\n <el-tooltip\n :teleported=\"false\"\n :disabled=\"popperVisible || !collapseTagsTooltip\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n placement=\"bottom\"\n effect=\"light\"\n >\n <template #default>\n <span>{{ tag.text }}</span>\n </template>\n <template #content>\n <div :class=\"nsCascader.e('collapse-tags')\">\n <div\n v-for=\"(tag2, idx) in allPresentTags.slice(1)\"\n :key=\"idx\"\n :class=\"nsCascader.e('collapse-tag')\"\n >\n <el-tag\n :key=\"tag2.key\"\n class=\"in-tooltip\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :hit=\"tag2.hitState\"\n :closable=\"tag2.closable\"\n disable-transitions\n @close=\"deleteTag(tag2)\"\n >\n <span>{{ tag2.text }}</span>\n </el-tag>\n </div>\n </div>\n </template>\n </el-tooltip>\n </template>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model=\"searchInputValue\"\n type=\"text\"\n :class=\"nsCascader.e('search-input')\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #content>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"$nextTick(() => togglePopperVisible(false))\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n :class=\"nsCascader.e('suggestion-panel')\"\n :view-class=\"nsCascader.e('suggestion-list')\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n nsCascader.e('suggestion-item'),\n nsCascader.is('checked', item.checked),\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\">\n <check />\n </el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li :class=\"nsCascader.e('empty-text')\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport { computed, defineComponent, nextTick, onMounted, ref, watch } from 'vue'\nimport { isPromise } from '@vue/shared'\nimport { debounce } from 'lodash-unified'\n\nimport { isClient, useResizeObserver } from '@vueuse/core'\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip, {\n useTooltipContentProps,\n} from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag, { tagProps } from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport {\n useFormItem,\n useLocale,\n useNamespace,\n useSize,\n} from '@element-plus/hooks'\n\nimport {\n debugWarn,\n focusNode,\n getSibling,\n isKorean,\n isValidComponentSize,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { ArrowDown, Check, CircleClose } from '@element-plus/icons-vue'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type {\n CascaderNode,\n CascaderValue,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/constants'\n\ntype cascaderPanelType = InstanceType<typeof ElCascaderPanel>\ntype tooltipType = InstanceType<typeof ElTooltip>\ntype inputType = InstanceType<typeof ElInput>\ntype suggestionPanelType = InstanceType<typeof ElScrollbar>\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n large: 36,\n default: 32,\n small: 28,\n}\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state as any\n if (['right', 'left', 'bottom', 'top'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\nconst COMPONENT_NAME = 'ElCascader'\nexport default defineComponent({\n name: COMPONENT_NAME,\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElTooltip,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n collapseTagsTooltip: {\n type: Boolean,\n default: false,\n },\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n teleported: useTooltipContentProps.teleported,\n // eslint-disable-next-line vue/require-prop-types\n tagType: { ...tagProps.type, default: 'info' },\n validateEvent: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const nsCascader = useNamespace('cascader')\n const nsInput = useNamespace('input')\n\n const { t } = useLocale()\n const { form, formItem } = useFormItem()\n\n const tooltipRef: Ref<tooltipType | null> = ref(null)\n const input: Ref<inputType | null> = ref(null)\n const tagWrapper = ref(null)\n const panel: Ref<cascaderPanelType | null> = ref(null)\n const suggestionPanel: Ref<suggestionPanelType | null> = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const allPresentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || form?.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize = useSize()\n const tagSize = computed(() =>\n ['small'].includes(realSize.value) ? 'small' : 'default'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ' '\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n })\n\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue as CascaderValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n if (props.validateEvent) {\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n },\n })\n\n const popperPaneRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n })\n\n const togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n syncPresentTextValue()\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(() => {\n tooltipRef.value?.updatePopper()\n })\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n isCollapseTag: false,\n }\n }\n\n const deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n panel.value?.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n const allTags: Tag[] = []\n nodes.forEach((node) => allTags.push(genTag(node)))\n allPresentTags.value = allTags\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n isCollapseTag: true,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n allPresentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n `.${nsCascader.e('suggestion-item')}`\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n `.${nsCascader.b('node')}[tabindex=\"-1\"]`\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (!isClient || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n `.${nsCascader.e('suggestion-list')}`\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value?.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n if (popperVisible.value === true) {\n e.preventDefault()\n e.stopPropagation()\n togglePopperVisible(false)\n }\n break\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value?.clearCheckedNodes()\n if (!popperVisible.value && props.filterable) {\n syncPresentTextValue()\n }\n togglePopperVisible(false)\n }\n\n const syncPresentTextValue = () => {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n `.${nsCascader.e('suggestion-item')}[tabindex=\"-1\"]`\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (\n !lastTag ||\n !pressDeleteCount ||\n (props.collapseTags && tags.length > 1)\n )\n return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, syncPresentTextValue, { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value?.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n useResizeObserver(inputEl, updateStyle)\n })\n\n return {\n popperOptions,\n tooltipRef,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n allPresentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n\n nsCascader,\n nsInput,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElCascaderPanel","ElInput","ElTooltip","ElScrollbar","ElTag","ElIcon","CircleClose","Check","ArrowDown","Clickoutside","CommonProps","isValidComponentSize","useTooltipContentProps","tagProps","UPDATE_MODEL_EVENT","CHANGE_EVENT","useNamespace","useLocale","useFormItem","ref","computed","useSize","debugWarn","nextTick","isClient","isKorean","EVENT_CODE","focusNode","getSibling","debounce","isPromise","watch","onMounted","useResizeObserver","_resolveComponent","_resolveDirective","_openBlock","_createBlock","_withCtx","_withDirectives","_createElementBlock","_normalizeClass","_normalizeStyle","_createVNode","_withModifiers","_Fragment","_renderList","_toDisplayString","_createElementVNode","_withKeys","_createCommentVNode","_vShow"],"mappings":"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"}
|
|
@@ -2661,9 +2661,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
2661
2661
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
2662
2662
|
togglePopperAlive: () => void;
|
|
2663
2663
|
onFocusAfterTrapped: () => void;
|
|
2664
|
-
onFocusAfterReleased: () => void;
|
|
2664
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
2665
2665
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
2666
|
-
onFocusoutPrevented: () => void;
|
|
2666
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
2667
2667
|
onReleaseRequested: () => void;
|
|
2668
2668
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
2669
2669
|
loop: BooleanConstructor;
|
|
@@ -5532,9 +5532,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
5532
5532
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
5533
5533
|
togglePopperAlive: () => void;
|
|
5534
5534
|
onFocusAfterTrapped: () => void;
|
|
5535
|
-
onFocusAfterReleased: () => void;
|
|
5535
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
5536
5536
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
5537
|
-
onFocusoutPrevented: () => void;
|
|
5537
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
5538
5538
|
onReleaseRequested: () => void;
|
|
5539
5539
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
5540
5540
|
loop: BooleanConstructor;
|
|
@@ -3011,9 +3011,9 @@ export declare const ElColorPicker: import("element-plus/es/utils").SFCWithInsta
|
|
|
3011
3011
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
3012
3012
|
togglePopperAlive: () => void;
|
|
3013
3013
|
onFocusAfterTrapped: () => void;
|
|
3014
|
-
onFocusAfterReleased: () => void;
|
|
3014
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
3015
3015
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
3016
|
-
onFocusoutPrevented: () => void;
|
|
3016
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
3017
3017
|
onReleaseRequested: () => void;
|
|
3018
3018
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
3019
3019
|
loop: BooleanConstructor;
|
|
@@ -5882,9 +5882,9 @@ export declare const ElColorPicker: import("element-plus/es/utils").SFCWithInsta
|
|
|
5882
5882
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
5883
5883
|
togglePopperAlive: () => void;
|
|
5884
5884
|
onFocusAfterTrapped: () => void;
|
|
5885
|
-
onFocusAfterReleased: () => void;
|
|
5885
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
5886
5886
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
5887
|
-
onFocusoutPrevented: () => void;
|
|
5887
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
5888
5888
|
onReleaseRequested: () => void;
|
|
5889
5889
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
5890
5890
|
loop: BooleanConstructor;
|
|
@@ -9036,9 +9036,9 @@ export declare const ElColorPicker: import("element-plus/es/utils").SFCWithInsta
|
|
|
9036
9036
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
9037
9037
|
togglePopperAlive: () => void;
|
|
9038
9038
|
onFocusAfterTrapped: () => void;
|
|
9039
|
-
onFocusAfterReleased: () => void;
|
|
9039
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
9040
9040
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
9041
|
-
onFocusoutPrevented: () => void;
|
|
9041
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
9042
9042
|
onReleaseRequested: () => void;
|
|
9043
9043
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
9044
9044
|
loop: BooleanConstructor;
|
|
@@ -3013,9 +3013,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
3013
3013
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
3014
3014
|
togglePopperAlive: () => void;
|
|
3015
3015
|
onFocusAfterTrapped: () => void;
|
|
3016
|
-
onFocusAfterReleased: () => void;
|
|
3016
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
3017
3017
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
3018
|
-
onFocusoutPrevented: () => void;
|
|
3018
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
3019
3019
|
onReleaseRequested: () => void;
|
|
3020
3020
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
3021
3021
|
loop: BooleanConstructor;
|
|
@@ -5884,9 +5884,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
5884
5884
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
5885
5885
|
togglePopperAlive: () => void;
|
|
5886
5886
|
onFocusAfterTrapped: () => void;
|
|
5887
|
-
onFocusAfterReleased: () => void;
|
|
5887
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
5888
5888
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
5889
|
-
onFocusoutPrevented: () => void;
|
|
5889
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
5890
5890
|
onReleaseRequested: () => void;
|
|
5891
5891
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
5892
5892
|
loop: BooleanConstructor;
|
|
@@ -9038,9 +9038,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
9038
9038
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
9039
9039
|
togglePopperAlive: () => void;
|
|
9040
9040
|
onFocusAfterTrapped: () => void;
|
|
9041
|
-
onFocusAfterReleased: () => void;
|
|
9041
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
9042
9042
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
9043
|
-
onFocusoutPrevented: () => void;
|
|
9043
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
9044
9044
|
onReleaseRequested: () => void;
|
|
9045
9045
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
9046
9046
|
loop: BooleanConstructor;
|
|
@@ -2665,9 +2665,9 @@ export declare const ElDropdown: import("element-plus/es/utils").SFCWithInstall<
|
|
|
2665
2665
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
2666
2666
|
togglePopperAlive: () => void;
|
|
2667
2667
|
onFocusAfterTrapped: () => void;
|
|
2668
|
-
onFocusAfterReleased: () => void;
|
|
2668
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
2669
2669
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
2670
|
-
onFocusoutPrevented: () => void;
|
|
2670
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
2671
2671
|
onReleaseRequested: () => void;
|
|
2672
2672
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
2673
2673
|
loop: BooleanConstructor;
|
|
@@ -5536,9 +5536,9 @@ export declare const ElDropdown: import("element-plus/es/utils").SFCWithInstall<
|
|
|
5536
5536
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
5537
5537
|
togglePopperAlive: () => void;
|
|
5538
5538
|
onFocusAfterTrapped: () => void;
|
|
5539
|
-
onFocusAfterReleased: () => void;
|
|
5539
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
5540
5540
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
5541
|
-
onFocusoutPrevented: () => void;
|
|
5541
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
5542
5542
|
onReleaseRequested: () => void;
|
|
5543
5543
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
5544
5544
|
loop: BooleanConstructor;
|
|
@@ -2666,9 +2666,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
2666
2666
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
2667
2667
|
togglePopperAlive: () => void;
|
|
2668
2668
|
onFocusAfterTrapped: () => void;
|
|
2669
|
-
onFocusAfterReleased: () => void;
|
|
2669
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
2670
2670
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
2671
|
-
onFocusoutPrevented: () => void;
|
|
2671
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
2672
2672
|
onReleaseRequested: () => void;
|
|
2673
2673
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
2674
2674
|
loop: BooleanConstructor;
|
|
@@ -5537,9 +5537,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
5537
5537
|
updatePopper: (shouldUpdateZIndex?: boolean) => void;
|
|
5538
5538
|
togglePopperAlive: () => void;
|
|
5539
5539
|
onFocusAfterTrapped: () => void;
|
|
5540
|
-
onFocusAfterReleased: () => void;
|
|
5540
|
+
onFocusAfterReleased: (event: CustomEvent<any>) => void;
|
|
5541
5541
|
onFocusInTrap: (event: FocusEvent) => void;
|
|
5542
|
-
onFocusoutPrevented: () => void;
|
|
5542
|
+
onFocusoutPrevented: (event: CustomEvent<any>) => void;
|
|
5543
5543
|
onReleaseRequested: () => void;
|
|
5544
5544
|
ElFocusTrap: import("vue").DefineComponent<{
|
|
5545
5545
|
loop: BooleanConstructor;
|
|
@@ -10,17 +10,22 @@ var utils = require('./src/utils.js');
|
|
|
10
10
|
|
|
11
11
|
exports.ElFocusTrap = focusTrap["default"];
|
|
12
12
|
exports["default"] = focusTrap["default"];
|
|
13
|
+
exports.FOCUSOUT_PREVENTED = tokens.FOCUSOUT_PREVENTED;
|
|
14
|
+
exports.FOCUSOUT_PREVENTED_OPTS = tokens.FOCUSOUT_PREVENTED_OPTS;
|
|
13
15
|
exports.FOCUS_AFTER_RELEASED = tokens.FOCUS_AFTER_RELEASED;
|
|
14
16
|
exports.FOCUS_AFTER_TRAPPED = tokens.FOCUS_AFTER_TRAPPED;
|
|
15
17
|
exports.FOCUS_AFTER_TRAPPED_OPTS = tokens.FOCUS_AFTER_TRAPPED_OPTS;
|
|
16
18
|
exports.FOCUS_TRAP_INJECTION_KEY = tokens.FOCUS_TRAP_INJECTION_KEY;
|
|
17
19
|
exports.ON_RELEASE_FOCUS_EVT = tokens.ON_RELEASE_FOCUS_EVT;
|
|
18
20
|
exports.ON_TRAP_FOCUS_EVT = tokens.ON_TRAP_FOCUS_EVT;
|
|
21
|
+
exports.createFocusOutPreventedEvent = utils.createFocusOutPreventedEvent;
|
|
19
22
|
exports.focusFirstDescendant = utils.focusFirstDescendant;
|
|
20
23
|
exports.focusableStack = utils.focusableStack;
|
|
21
24
|
exports.getEdges = utils.getEdges;
|
|
22
25
|
exports.getVisibleElement = utils.getVisibleElement;
|
|
26
|
+
exports.isFocusCausedByUserEvent = utils.isFocusCausedByUserEvent;
|
|
23
27
|
exports.isHidden = utils.isHidden;
|
|
24
28
|
exports.obtainAllFocusableElements = utils.obtainAllFocusableElements;
|
|
25
29
|
exports.tryFocus = utils.tryFocus;
|
|
30
|
+
exports.useFocusReason = utils.useFocusReason;
|
|
26
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -38,6 +38,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
38
38
|
const forwardRef = vue.ref();
|
|
39
39
|
let lastFocusBeforeTrapped;
|
|
40
40
|
let lastFocusAfterTrapped;
|
|
41
|
+
const { focusReason } = utils.useFocusReason();
|
|
41
42
|
index.useEscapeKeydown((event) => {
|
|
42
43
|
if (props.trapped && !focusLayer.paused) {
|
|
43
44
|
emit("release-requested", event);
|
|
@@ -67,20 +68,35 @@ const _sfc_main = vue.defineComponent({
|
|
|
67
68
|
const isTabbable = first && last;
|
|
68
69
|
if (!isTabbable) {
|
|
69
70
|
if (currentFocusingEl === container) {
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
const focusoutPreventedEvent = utils.createFocusOutPreventedEvent({
|
|
72
|
+
focusReason: focusReason.value
|
|
73
|
+
});
|
|
74
|
+
emit("focusout-prevented", focusoutPreventedEvent);
|
|
75
|
+
if (!focusoutPreventedEvent.defaultPrevented) {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
}
|
|
72
78
|
}
|
|
73
79
|
} else {
|
|
74
80
|
if (!shiftKey && currentFocusingEl === last) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
emit("focusout-prevented");
|
|
81
|
+
const focusoutPreventedEvent = utils.createFocusOutPreventedEvent({
|
|
82
|
+
focusReason: focusReason.value
|
|
83
|
+
});
|
|
84
|
+
emit("focusout-prevented", focusoutPreventedEvent);
|
|
85
|
+
if (!focusoutPreventedEvent.defaultPrevented) {
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
if (loop)
|
|
88
|
+
utils.tryFocus(first, true);
|
|
89
|
+
}
|
|
79
90
|
} else if (shiftKey && [first, container].includes(currentFocusingEl)) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
emit("focusout-prevented");
|
|
91
|
+
const focusoutPreventedEvent = utils.createFocusOutPreventedEvent({
|
|
92
|
+
focusReason: focusReason.value
|
|
93
|
+
});
|
|
94
|
+
emit("focusout-prevented", focusoutPreventedEvent);
|
|
95
|
+
if (!focusoutPreventedEvent.defaultPrevented) {
|
|
96
|
+
e.preventDefault();
|
|
97
|
+
if (loop)
|
|
98
|
+
utils.tryFocus(last, true);
|
|
99
|
+
}
|
|
84
100
|
}
|
|
85
101
|
}
|
|
86
102
|
}
|
|
@@ -115,7 +131,14 @@ const _sfc_main = vue.defineComponent({
|
|
|
115
131
|
if (!trapContainer)
|
|
116
132
|
return;
|
|
117
133
|
const target = e.target;
|
|
134
|
+
const relatedTarget = e.relatedTarget;
|
|
118
135
|
const isFocusedInTrap = target && trapContainer.contains(target);
|
|
136
|
+
if (!props.trapped) {
|
|
137
|
+
const isPrevFocusedInTrap = relatedTarget && trapContainer.contains(relatedTarget);
|
|
138
|
+
if (!isPrevFocusedInTrap) {
|
|
139
|
+
lastFocusBeforeTrapped = relatedTarget;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
119
142
|
if (isFocusedInTrap)
|
|
120
143
|
emit("focusin", e);
|
|
121
144
|
if (focusLayer.paused)
|
|
@@ -137,7 +160,13 @@ const _sfc_main = vue.defineComponent({
|
|
|
137
160
|
if (!lodashUnified.isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {
|
|
138
161
|
setTimeout(() => {
|
|
139
162
|
if (!focusLayer.paused && props.trapped) {
|
|
140
|
-
utils.
|
|
163
|
+
const focusoutPreventedEvent = utils.createFocusOutPreventedEvent({
|
|
164
|
+
focusReason: focusReason.value
|
|
165
|
+
});
|
|
166
|
+
emit("focusout-prevented", focusoutPreventedEvent);
|
|
167
|
+
if (!focusoutPreventedEvent.defaultPrevented) {
|
|
168
|
+
utils.tryFocus(lastFocusAfterTrapped, true);
|
|
169
|
+
}
|
|
141
170
|
}
|
|
142
171
|
}, 0);
|
|
143
172
|
}
|
|
@@ -153,7 +182,7 @@ const _sfc_main = vue.defineComponent({
|
|
|
153
182
|
const trapContainer = vue.unref(forwardRef);
|
|
154
183
|
if (trapContainer) {
|
|
155
184
|
utils.focusableStack.push(focusLayer);
|
|
156
|
-
const prevFocusedElement = document.activeElement;
|
|
185
|
+
const prevFocusedElement = trapContainer.contains(document.activeElement) ? lastFocusBeforeTrapped : document.activeElement;
|
|
157
186
|
lastFocusBeforeTrapped = prevFocusedElement;
|
|
158
187
|
const isPrevFocusContained = trapContainer.contains(prevFocusedElement);
|
|
159
188
|
if (!isPrevFocusContained) {
|
|
@@ -184,10 +213,15 @@ const _sfc_main = vue.defineComponent({
|
|
|
184
213
|
const trapContainer = vue.unref(forwardRef);
|
|
185
214
|
if (trapContainer) {
|
|
186
215
|
trapContainer.removeEventListener(tokens.FOCUS_AFTER_TRAPPED, trapOnFocus);
|
|
187
|
-
const releasedEvent = new
|
|
216
|
+
const releasedEvent = new CustomEvent(tokens.FOCUS_AFTER_RELEASED, {
|
|
217
|
+
...tokens.FOCUS_AFTER_TRAPPED_OPTS,
|
|
218
|
+
detail: {
|
|
219
|
+
focusReason: focusReason.value
|
|
220
|
+
}
|
|
221
|
+
});
|
|
188
222
|
trapContainer.addEventListener(tokens.FOCUS_AFTER_RELEASED, releaseOnFocus);
|
|
189
223
|
trapContainer.dispatchEvent(releasedEvent);
|
|
190
|
-
if (!releasedEvent.defaultPrevented) {
|
|
224
|
+
if (!releasedEvent.defaultPrevented && (focusReason.value == "keyboard" || !utils.isFocusCausedByUserEvent())) {
|
|
191
225
|
utils.tryFocus(lastFocusBeforeTrapped != null ? lastFocusBeforeTrapped : document.body, true);
|
|
192
226
|
}
|
|
193
227
|
trapContainer.removeEventListener(tokens.FOCUS_AFTER_RELEASED, trapOnFocus);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-trap.js","sources":["../../../../../../packages/components/focus-trap/src/focus-trap.vue"],"sourcesContent":["<template>\n <slot :handle-keydown=\"onKeydown\" />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n unref,\n watch,\n} from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useEscapeKeydown } from '@element-plus/hooks'\nimport { isString } from '@element-plus/utils'\nimport {\n focusFirstDescendant,\n focusableStack,\n getEdges,\n obtainAllFocusableElements,\n tryFocus,\n} from './utils'\nimport {\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS,\n FOCUS_TRAP_INJECTION_KEY,\n ON_RELEASE_FOCUS_EVT,\n ON_TRAP_FOCUS_EVT,\n} from './tokens'\n\nimport type { PropType } from 'vue'\nimport type { FocusLayer } from './utils'\n\nexport default defineComponent({\n name: 'ElFocusTrap',\n inheritAttrs: false,\n props: {\n loop: Boolean,\n trapped: Boolean,\n focusTrapEl: Object as PropType<HTMLElement>,\n focusStartEl: {\n type: [Object, String] as PropType<'container' | 'first' | HTMLElement>,\n default: 'first',\n },\n },\n emits: [\n ON_TRAP_FOCUS_EVT,\n ON_RELEASE_FOCUS_EVT,\n 'focusin',\n 'focusout',\n 'focusout-prevented',\n 'release-requested',\n ],\n setup(props, { emit }) {\n const forwardRef = ref<HTMLElement | undefined>()\n let lastFocusBeforeTrapped: HTMLElement | null\n let lastFocusAfterTrapped: HTMLElement | null\n\n useEscapeKeydown((event) => {\n if (props.trapped && !focusLayer.paused) {\n emit('release-requested', event)\n }\n })\n\n const focusLayer: FocusLayer = {\n paused: false,\n pause() {\n this.paused = true\n },\n resume() {\n this.paused = false\n },\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (!props.loop && !props.trapped) return\n if (focusLayer.paused) return\n\n const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e\n const { loop } = props\n const isTabbing =\n key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey\n\n const currentFocusingEl = document.activeElement\n if (isTabbing && currentFocusingEl) {\n const container = currentTarget as HTMLElement\n const [first, last] = getEdges(container)\n const isTabbable = first && last\n if (!isTabbable) {\n if (currentFocusingEl === container) {\n e.preventDefault()\n emit('focusout-prevented')\n }\n } else {\n if (!shiftKey && currentFocusingEl === last) {\n e.preventDefault()\n if (loop) tryFocus(first, true)\n emit('focusout-prevented')\n } else if (\n shiftKey &&\n [first, container].includes(currentFocusingEl as HTMLElement)\n ) {\n e.preventDefault()\n if (loop) tryFocus(last, true)\n emit('focusout-prevented')\n }\n }\n }\n }\n\n provide(FOCUS_TRAP_INJECTION_KEY, {\n focusTrapRef: forwardRef,\n onKeydown,\n })\n\n watch(\n () => props.focusTrapEl,\n (focusTrapEl) => {\n if (focusTrapEl) {\n forwardRef.value = focusTrapEl\n }\n },\n { immediate: true }\n )\n\n watch([forwardRef], ([forwardRef], [oldForwardRef]) => {\n if (forwardRef) {\n forwardRef.addEventListener('keydown', onKeydown)\n forwardRef.addEventListener('focusin', onFocusIn)\n forwardRef.addEventListener('focusout', onFocusOut)\n }\n if (oldForwardRef) {\n oldForwardRef.removeEventListener('keydown', onKeydown)\n oldForwardRef.removeEventListener('focusin', onFocusIn)\n oldForwardRef.removeEventListener('focusout', onFocusOut)\n }\n })\n\n const trapOnFocus = (e: Event) => {\n emit(ON_TRAP_FOCUS_EVT, e)\n }\n const releaseOnFocus = (e: Event) => emit(ON_RELEASE_FOCUS_EVT, e)\n\n const onFocusIn = (e: Event) => {\n const trapContainer = unref(forwardRef)\n if (!trapContainer) return\n\n const target = e.target as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n if (isFocusedInTrap) emit('focusin', e)\n\n if (focusLayer.paused) return\n\n if (props.trapped) {\n if (isFocusedInTrap) {\n lastFocusAfterTrapped = target\n } else {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }\n\n const onFocusOut = (e: Event) => {\n const trapContainer = unref(forwardRef)\n if (focusLayer.paused || !trapContainer) return\n\n if (props.trapped) {\n const relatedTarget = (e as FocusEvent)\n .relatedTarget as HTMLElement | null\n if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {\n // Give embedded focus layer time to pause this layer before reclaiming focus\n // And only reclaim focus if it should currently be trapping\n setTimeout(() => {\n if (!focusLayer.paused && props.trapped) {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }, 0)\n }\n } else {\n const target = e.target as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n if (!isFocusedInTrap) emit('focusout', e)\n }\n }\n\n async function startTrap() {\n // Wait for forwardRef to resolve\n await nextTick()\n const trapContainer = unref(forwardRef)\n if (trapContainer) {\n focusableStack.push(focusLayer)\n const prevFocusedElement = document.activeElement\n lastFocusBeforeTrapped = prevFocusedElement as HTMLElement | null\n const isPrevFocusContained = trapContainer.contains(prevFocusedElement)\n if (!isPrevFocusContained) {\n const focusEvent = new Event(\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS\n )\n trapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n trapContainer.dispatchEvent(focusEvent)\n if (!focusEvent.defaultPrevented) {\n nextTick(() => {\n let focusStartEl = props.focusStartEl\n if (!isString(focusStartEl)) {\n tryFocus(focusStartEl)\n if (document.activeElement !== focusStartEl) {\n focusStartEl = 'first'\n }\n }\n if (focusStartEl === 'first') {\n focusFirstDescendant(\n obtainAllFocusableElements(trapContainer),\n true\n )\n }\n if (\n document.activeElement === prevFocusedElement ||\n focusStartEl === 'container'\n ) {\n tryFocus(trapContainer)\n }\n })\n }\n }\n }\n }\n\n function stopTrap() {\n const trapContainer = unref(forwardRef)\n\n if (trapContainer) {\n trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\n const releasedEvent = new Event(\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED_OPTS\n )\n trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus)\n trapContainer.dispatchEvent(releasedEvent)\n\n if (!releasedEvent.defaultPrevented) {\n tryFocus(lastFocusBeforeTrapped ?? document.body, true)\n }\n\n trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, trapOnFocus)\n focusableStack.remove(focusLayer)\n }\n }\n\n onMounted(() => {\n if (props.trapped) {\n startTrap()\n }\n\n watch(\n () => props.trapped,\n (trapped) => {\n if (trapped) {\n startTrap()\n } else {\n stopTrap()\n }\n }\n )\n })\n\n onBeforeUnmount(() => {\n if (props.trapped) {\n stopTrap()\n }\n })\n\n return {\n onKeydown,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ON_TRAP_FOCUS_EVT","ON_RELEASE_FOCUS_EVT","ref","useEscapeKeydown","EVENT_CODE","getEdges","tryFocus","provide","FOCUS_TRAP_INJECTION_KEY","watch","unref","isNil","nextTick","focusableStack","FOCUS_AFTER_TRAPPED","FOCUS_AFTER_TRAPPED_OPTS","isString","focusFirstDescendant","obtainAllFocusableElements","FOCUS_AFTER_RELEASED","onMounted","onBeforeUnmount","_renderSlot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"focus-trap.js","sources":["../../../../../../packages/components/focus-trap/src/focus-trap.vue"],"sourcesContent":["<template>\n <slot :handle-keydown=\"onKeydown\" />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n unref,\n watch,\n} from 'vue'\nimport { isNil } from 'lodash-unified'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useEscapeKeydown } from '@element-plus/hooks'\nimport { isString } from '@element-plus/utils'\nimport {\n createFocusOutPreventedEvent,\n focusFirstDescendant,\n focusableStack,\n getEdges,\n isFocusCausedByUserEvent,\n obtainAllFocusableElements,\n tryFocus,\n useFocusReason,\n} from './utils'\nimport {\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS,\n FOCUS_TRAP_INJECTION_KEY,\n ON_RELEASE_FOCUS_EVT,\n ON_TRAP_FOCUS_EVT,\n} from './tokens'\n\nimport type { PropType } from 'vue'\nimport type { FocusLayer } from './utils'\n\nexport default defineComponent({\n name: 'ElFocusTrap',\n inheritAttrs: false,\n props: {\n loop: Boolean,\n trapped: Boolean,\n focusTrapEl: Object as PropType<HTMLElement>,\n focusStartEl: {\n type: [Object, String] as PropType<'container' | 'first' | HTMLElement>,\n default: 'first',\n },\n },\n emits: [\n ON_TRAP_FOCUS_EVT,\n ON_RELEASE_FOCUS_EVT,\n 'focusin',\n 'focusout',\n 'focusout-prevented',\n 'release-requested',\n ],\n setup(props, { emit }) {\n const forwardRef = ref<HTMLElement | undefined>()\n let lastFocusBeforeTrapped: HTMLElement | null\n let lastFocusAfterTrapped: HTMLElement | null\n\n const { focusReason } = useFocusReason()\n\n useEscapeKeydown((event) => {\n if (props.trapped && !focusLayer.paused) {\n emit('release-requested', event)\n }\n })\n\n const focusLayer: FocusLayer = {\n paused: false,\n pause() {\n this.paused = true\n },\n resume() {\n this.paused = false\n },\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (!props.loop && !props.trapped) return\n if (focusLayer.paused) return\n\n const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e\n const { loop } = props\n const isTabbing =\n key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey\n\n const currentFocusingEl = document.activeElement\n if (isTabbing && currentFocusingEl) {\n const container = currentTarget as HTMLElement\n const [first, last] = getEdges(container)\n const isTabbable = first && last\n if (!isTabbable) {\n if (currentFocusingEl === container) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n }\n }\n } else {\n if (!shiftKey && currentFocusingEl === last) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(first, true)\n }\n } else if (\n shiftKey &&\n [first, container].includes(currentFocusingEl as HTMLElement)\n ) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(last, true)\n }\n }\n }\n }\n }\n\n provide(FOCUS_TRAP_INJECTION_KEY, {\n focusTrapRef: forwardRef,\n onKeydown,\n })\n\n watch(\n () => props.focusTrapEl,\n (focusTrapEl) => {\n if (focusTrapEl) {\n forwardRef.value = focusTrapEl\n }\n },\n { immediate: true }\n )\n\n watch([forwardRef], ([forwardRef], [oldForwardRef]) => {\n if (forwardRef) {\n forwardRef.addEventListener('keydown', onKeydown)\n forwardRef.addEventListener('focusin', onFocusIn)\n forwardRef.addEventListener('focusout', onFocusOut)\n }\n if (oldForwardRef) {\n oldForwardRef.removeEventListener('keydown', onKeydown)\n oldForwardRef.removeEventListener('focusin', onFocusIn)\n oldForwardRef.removeEventListener('focusout', onFocusOut)\n }\n })\n\n const trapOnFocus = (e: Event) => {\n emit(ON_TRAP_FOCUS_EVT, e)\n }\n const releaseOnFocus = (e: Event) => emit(ON_RELEASE_FOCUS_EVT, e)\n\n const onFocusIn = (e: FocusEvent) => {\n const trapContainer = unref(forwardRef)\n if (!trapContainer) return\n\n const target = e.target as HTMLElement | null\n const relatedTarget = e.relatedTarget as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n\n if (!props.trapped) {\n const isPrevFocusedInTrap =\n relatedTarget && trapContainer.contains(relatedTarget)\n if (!isPrevFocusedInTrap) {\n lastFocusBeforeTrapped = relatedTarget\n }\n }\n\n if (isFocusedInTrap) emit('focusin', e)\n\n if (focusLayer.paused) return\n\n if (props.trapped) {\n if (isFocusedInTrap) {\n lastFocusAfterTrapped = target\n } else {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }\n\n const onFocusOut = (e: Event) => {\n const trapContainer = unref(forwardRef)\n if (focusLayer.paused || !trapContainer) return\n\n if (props.trapped) {\n const relatedTarget = (e as FocusEvent)\n .relatedTarget as HTMLElement | null\n if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {\n // Give embedded focus layer time to pause this layer before reclaiming focus\n // And only reclaim focus if it should currently be trapping\n setTimeout(() => {\n if (!focusLayer.paused && props.trapped) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }, 0)\n }\n } else {\n const target = e.target as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n if (!isFocusedInTrap) emit('focusout', e)\n }\n }\n\n async function startTrap() {\n // Wait for forwardRef to resolve\n await nextTick()\n const trapContainer = unref(forwardRef)\n if (trapContainer) {\n focusableStack.push(focusLayer)\n const prevFocusedElement = trapContainer.contains(\n document.activeElement\n )\n ? lastFocusBeforeTrapped\n : document.activeElement\n lastFocusBeforeTrapped = prevFocusedElement as HTMLElement | null\n const isPrevFocusContained = trapContainer.contains(prevFocusedElement)\n if (!isPrevFocusContained) {\n const focusEvent = new Event(\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS\n )\n trapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n trapContainer.dispatchEvent(focusEvent)\n if (!focusEvent.defaultPrevented) {\n nextTick(() => {\n let focusStartEl = props.focusStartEl\n if (!isString(focusStartEl)) {\n tryFocus(focusStartEl)\n if (document.activeElement !== focusStartEl) {\n focusStartEl = 'first'\n }\n }\n if (focusStartEl === 'first') {\n focusFirstDescendant(\n obtainAllFocusableElements(trapContainer),\n true\n )\n }\n if (\n document.activeElement === prevFocusedElement ||\n focusStartEl === 'container'\n ) {\n tryFocus(trapContainer)\n }\n })\n }\n }\n }\n }\n\n function stopTrap() {\n const trapContainer = unref(forwardRef)\n\n if (trapContainer) {\n trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\n const releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, {\n ...FOCUS_AFTER_TRAPPED_OPTS,\n detail: {\n focusReason: focusReason.value,\n },\n })\n trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus)\n trapContainer.dispatchEvent(releasedEvent)\n\n if (\n !releasedEvent.defaultPrevented &&\n (focusReason.value == 'keyboard' || !isFocusCausedByUserEvent())\n ) {\n tryFocus(lastFocusBeforeTrapped ?? document.body, true)\n }\n\n trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, trapOnFocus)\n focusableStack.remove(focusLayer)\n }\n }\n\n onMounted(() => {\n if (props.trapped) {\n startTrap()\n }\n\n watch(\n () => props.trapped,\n (trapped) => {\n if (trapped) {\n startTrap()\n } else {\n stopTrap()\n }\n }\n )\n })\n\n onBeforeUnmount(() => {\n if (props.trapped) {\n stopTrap()\n }\n })\n\n return {\n onKeydown,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ON_TRAP_FOCUS_EVT","ON_RELEASE_FOCUS_EVT","ref","useFocusReason","useEscapeKeydown","EVENT_CODE","getEdges","createFocusOutPreventedEvent","tryFocus","provide","FOCUS_TRAP_INJECTION_KEY","watch","unref","isNil","nextTick","focusableStack","FOCUS_AFTER_TRAPPED","FOCUS_AFTER_TRAPPED_OPTS","isString","focusFirstDescendant","obtainAllFocusableElements","FOCUS_AFTER_RELEASED","isFocusCausedByUserEvent","onMounted","onBeforeUnmount","_renderSlot"],"mappings":"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"}
|