@element-plus/nightly 0.0.20220110 → 0.0.20220111
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.css +1 -1
- package/dist/index.full.js +361 -425
- package/dist/index.full.min.js +8 -8
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +8 -8
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +365 -430
- package/es/components/calendar/src/calendar.vue_vue_type_script_lang.mjs +4 -4
- package/es/components/calendar/src/calendar.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/calendar/src/calendar.vue_vue_type_template_id_76705c76_lang.mjs.map +1 -1
- package/es/components/cascader/index.d.ts +18 -2
- package/es/components/cascader/src/index.vue.d.ts +9 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.mjs +6 -0
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_template_id_78e07aa7_lang.mjs.map +1 -1
- package/es/components/dropdown/index.d.ts +11 -1
- package/es/components/dropdown/src/dropdown-item-impl.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item-impl.vue_vue_type_template_id_6daab4f2_lang.mjs +32 -26
- package/es/components/dropdown/src/dropdown-item-impl.vue_vue_type_template_id_6daab4f2_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -0
- package/es/components/dropdown/src/dropdown-menu.vue_vue_type_script_lang.mjs +5 -7
- package/es/components/dropdown/src/dropdown-menu.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-menu.vue_vue_type_template_id_617b3492_lang.mjs +1 -1
- package/es/components/dropdown/src/dropdown-menu.vue_vue_type_template_id_617b3492_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown.vue.d.ts +9 -1
- package/es/components/index.mjs +1 -0
- package/es/components/index.mjs.map +1 -1
- package/es/components/popover/index.d.ts +18 -2
- package/es/components/popover/src/index.vue.d.ts +9 -1
- package/es/components/popper/src/content.vue_vue_type_script_lang.mjs +2 -1
- package/es/components/popper/src/content.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/popper/src/content.vue_vue_type_template_id_611b76f0_lang.mjs.map +1 -1
- package/es/components/popper/src/trigger.vue.d.ts +3 -3
- package/es/components/popper/src/trigger.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/popper/src/trigger.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/popper/src/trigger.vue_vue_type_template_id_4fb6e0af_lang.mjs.map +1 -1
- package/es/components/select/index.d.ts +9 -1
- package/es/components/select/src/select.vue.d.ts +9 -1
- package/es/components/select/src/useSelect.d.ts +9 -1
- package/es/components/select-v2/index.d.ts +18 -2
- package/es/components/select-v2/src/select.vue.d.ts +9 -1
- package/es/components/select-v2/src/useSelect.d.ts +9 -1
- package/es/components/table/src/filter-panel.vue.d.ts +9 -1
- package/es/components/time-picker/src/common/picker.vue.d.ts +9 -1
- package/es/components/time-picker/src/common/picker.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.mjs +4 -2
- package/es/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.mjs.map +1 -1
- package/es/components/tooltip/index.d.ts +5 -0
- package/es/components/tooltip/index.mjs +1 -0
- package/es/components/tooltip/index.mjs.map +1 -1
- package/es/components/tooltip/src/content.vue.d.ts +13 -6
- package/es/components/tooltip/src/content.vue_vue_type_script_lang.mjs +42 -67
- package/es/components/tooltip/src/content.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tooltip/src/content.vue_vue_type_template_id_20254f8d_lang.mjs +53 -56
- package/es/components/tooltip/src/content.vue_vue_type_template_id_20254f8d_lang.mjs.map +1 -1
- package/es/components/tooltip/src/tokens.d.ts +1 -0
- package/es/components/tooltip/src/tokens.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip.d.ts +2 -0
- package/es/components/tooltip/src/tooltip.mjs +8 -0
- package/es/components/tooltip/src/tooltip.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip.vue.d.ts +4 -0
- package/es/components/tooltip/src/tooltip.vue_vue_type_script_lang.mjs +2 -1
- package/es/components/tooltip/src/tooltip.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip.vue_vue_type_template_id_694d1617_lang.mjs +2 -1
- package/es/components/tooltip/src/tooltip.vue_vue_type_template_id_694d1617_lang.mjs.map +1 -1
- package/es/components/tooltip/src/trigger.vue.d.ts +1 -1
- package/es/components/tooltip/src/trigger.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/tooltip/src/trigger.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tooltip/src/trigger.vue_vue_type_template_id_0ec0b94c_lang.mjs +2 -2
- package/es/components/tooltip/src/trigger.vue_vue_type_template_id_0ec0b94c_lang.mjs.map +1 -1
- package/es/components/tree/src/model/useDragNode.mjs +1 -1
- package/es/components/tree/src/model/useDragNode.mjs.map +1 -1
- package/es/components/tree/src/tree-node.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/tree/src/tree-node.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tree/src/tree-node.vue_vue_type_template_id_62959aba_lang.mjs.map +1 -1
- package/es/index.mjs +1 -0
- package/es/index.mjs.map +1 -1
- package/es/packages/components/cascader/index.d.ts +18 -2
- package/es/packages/components/cascader/src/index.vue.d.ts +9 -1
- package/es/packages/components/descriptions/index.d.ts +4 -4
- package/es/packages/components/descriptions/src/description-item.d.ts +2 -2
- package/es/packages/components/dropdown/index.d.ts +13 -3
- package/es/packages/components/dropdown/src/dropdown-menu.vue.d.ts +1 -0
- package/es/packages/components/dropdown/src/dropdown.vue.d.ts +11 -3
- package/es/packages/components/message-box/src/index.vue.d.ts +2 -2
- package/es/packages/components/pagination/index.d.ts +2 -2
- package/es/packages/components/pagination/src/pagination.d.ts +2 -2
- package/es/packages/components/popover/index.d.ts +18 -2
- package/es/packages/components/popover/src/index.vue.d.ts +9 -1
- package/es/packages/components/popper/src/trigger.vue.d.ts +3 -3
- package/es/packages/components/roving-focus-group/src/roving-focus-group-impl.vue.d.ts +1 -1
- package/es/packages/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
- package/es/packages/components/select/index.d.ts +9 -1
- package/es/packages/components/select/src/select.vue.d.ts +9 -1
- package/es/packages/components/select/src/useSelect.d.ts +9 -1
- package/es/packages/components/select-v2/index.d.ts +18 -2
- package/es/packages/components/select-v2/src/select.vue.d.ts +9 -1
- package/es/packages/components/select-v2/src/useSelect.d.ts +9 -1
- package/es/packages/components/table/src/filter-panel.vue.d.ts +9 -1
- package/es/packages/components/time-picker/src/common/picker.vue.d.ts +9 -1
- package/es/packages/components/tooltip/index.d.ts +5 -0
- package/es/packages/components/tooltip/src/content.vue.d.ts +13 -6
- package/es/packages/components/tooltip/src/tokens.d.ts +1 -0
- package/es/packages/components/tooltip/src/tooltip.d.ts +2 -0
- package/es/packages/components/tooltip/src/tooltip.vue.d.ts +4 -0
- package/es/packages/components/tooltip/src/trigger.vue.d.ts +1 -1
- package/es/packages/components/tree-v2/src/tree-node.vue.d.ts +1 -1
- package/es/packages/components/virtual-list/src/builders/build-grid.d.ts +2 -2
- package/es/packages/components/virtual-list/src/builders/build-list.d.ts +2 -2
- package/es/packages/components/virtual-list/src/components/dynamic-size-grid.d.ts +2 -2
- package/es/packages/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
- package/es/packages/components/virtual-list/src/components/fixed-size-grid.d.ts +2 -2
- package/es/packages/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
- package/es/packages/version.d.ts +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/calendar/src/calendar.vue_vue_type_script_lang.js +4 -4
- package/lib/components/calendar/src/calendar.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/calendar/src/calendar.vue_vue_type_template_id_76705c76_lang.js.map +1 -1
- package/lib/components/cascader/index.d.ts +18 -2
- package/lib/components/cascader/src/index.vue.d.ts +9 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.js +6 -0
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_template_id_78e07aa7_lang.js.map +1 -1
- package/lib/components/dropdown/index.d.ts +11 -1
- package/lib/components/dropdown/src/dropdown-item-impl.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item-impl.vue_vue_type_template_id_6daab4f2_lang.js +31 -25
- package/lib/components/dropdown/src/dropdown-item-impl.vue_vue_type_template_id_6daab4f2_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -0
- package/lib/components/dropdown/src/dropdown-menu.vue_vue_type_script_lang.js +4 -6
- package/lib/components/dropdown/src/dropdown-menu.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-menu.vue_vue_type_template_id_617b3492_lang.js +1 -1
- package/lib/components/dropdown/src/dropdown-menu.vue_vue_type_template_id_617b3492_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown.vue.d.ts +9 -1
- package/lib/components/index.js +2 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/popover/index.d.ts +18 -2
- package/lib/components/popover/src/index.vue.d.ts +9 -1
- package/lib/components/popper/src/content.vue_vue_type_script_lang.js +2 -1
- package/lib/components/popper/src/content.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/popper/src/content.vue_vue_type_template_id_611b76f0_lang.js.map +1 -1
- package/lib/components/popper/src/trigger.vue.d.ts +3 -3
- package/lib/components/popper/src/trigger.vue_vue_type_script_lang.js +2 -2
- package/lib/components/popper/src/trigger.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/popper/src/trigger.vue_vue_type_template_id_4fb6e0af_lang.js.map +1 -1
- package/lib/components/select/index.d.ts +9 -1
- package/lib/components/select/src/select.vue.d.ts +9 -1
- package/lib/components/select/src/useSelect.d.ts +9 -1
- package/lib/components/select-v2/index.d.ts +18 -2
- package/lib/components/select-v2/src/select.vue.d.ts +9 -1
- package/lib/components/select-v2/src/useSelect.d.ts +9 -1
- package/lib/components/table/src/filter-panel.vue.d.ts +9 -1
- package/lib/components/time-picker/src/common/picker.vue.d.ts +9 -1
- package/lib/components/time-picker/src/common/picker.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.js +4 -2
- package/lib/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.js.map +1 -1
- package/lib/components/tooltip/index.d.ts +5 -0
- package/lib/components/tooltip/index.js +2 -0
- package/lib/components/tooltip/index.js.map +1 -1
- package/lib/components/tooltip/src/content.vue.d.ts +13 -6
- package/lib/components/tooltip/src/content.vue_vue_type_script_lang.js +43 -68
- package/lib/components/tooltip/src/content.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tooltip/src/content.vue_vue_type_template_id_20254f8d_lang.js +52 -55
- package/lib/components/tooltip/src/content.vue_vue_type_template_id_20254f8d_lang.js.map +1 -1
- package/lib/components/tooltip/src/tokens.d.ts +1 -0
- package/lib/components/tooltip/src/tokens.js.map +1 -1
- package/lib/components/tooltip/src/tooltip.d.ts +2 -0
- package/lib/components/tooltip/src/tooltip.js +8 -0
- package/lib/components/tooltip/src/tooltip.js.map +1 -1
- package/lib/components/tooltip/src/tooltip.vue.d.ts +4 -0
- package/lib/components/tooltip/src/tooltip.vue_vue_type_script_lang.js +2 -1
- package/lib/components/tooltip/src/tooltip.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tooltip/src/tooltip.vue_vue_type_template_id_694d1617_lang.js +2 -1
- package/lib/components/tooltip/src/tooltip.vue_vue_type_template_id_694d1617_lang.js.map +1 -1
- package/lib/components/tooltip/src/trigger.vue.d.ts +1 -1
- package/lib/components/tooltip/src/trigger.vue_vue_type_script_lang.js +2 -2
- package/lib/components/tooltip/src/trigger.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tooltip/src/trigger.vue_vue_type_template_id_0ec0b94c_lang.js +2 -2
- package/lib/components/tooltip/src/trigger.vue_vue_type_template_id_0ec0b94c_lang.js.map +1 -1
- package/lib/components/tree/src/model/useDragNode.js +1 -1
- package/lib/components/tree/src/model/useDragNode.js.map +1 -1
- package/lib/components/tree/src/tree-node.vue_vue_type_script_lang.js +1 -1
- package/lib/components/tree/src/tree-node.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tree/src/tree-node.vue_vue_type_template_id_62959aba_lang.js.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/packages/components/cascader/index.d.ts +18 -2
- package/lib/packages/components/cascader/src/index.vue.d.ts +9 -1
- package/lib/packages/components/descriptions/index.d.ts +4 -4
- package/lib/packages/components/descriptions/src/description-item.d.ts +2 -2
- package/lib/packages/components/dropdown/index.d.ts +13 -3
- package/lib/packages/components/dropdown/src/dropdown-menu.vue.d.ts +1 -0
- package/lib/packages/components/dropdown/src/dropdown.vue.d.ts +11 -3
- package/lib/packages/components/message-box/src/index.vue.d.ts +2 -2
- package/lib/packages/components/pagination/index.d.ts +2 -2
- package/lib/packages/components/pagination/src/pagination.d.ts +2 -2
- package/lib/packages/components/popover/index.d.ts +18 -2
- package/lib/packages/components/popover/src/index.vue.d.ts +9 -1
- package/lib/packages/components/popper/src/trigger.vue.d.ts +3 -3
- package/lib/packages/components/roving-focus-group/src/roving-focus-group-impl.vue.d.ts +1 -1
- package/lib/packages/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
- package/lib/packages/components/select/index.d.ts +9 -1
- package/lib/packages/components/select/src/select.vue.d.ts +9 -1
- package/lib/packages/components/select/src/useSelect.d.ts +9 -1
- package/lib/packages/components/select-v2/index.d.ts +18 -2
- package/lib/packages/components/select-v2/src/select.vue.d.ts +9 -1
- package/lib/packages/components/select-v2/src/useSelect.d.ts +9 -1
- package/lib/packages/components/table/src/filter-panel.vue.d.ts +9 -1
- package/lib/packages/components/time-picker/src/common/picker.vue.d.ts +9 -1
- package/lib/packages/components/tooltip/index.d.ts +5 -0
- package/lib/packages/components/tooltip/src/content.vue.d.ts +13 -6
- package/lib/packages/components/tooltip/src/tokens.d.ts +1 -0
- package/lib/packages/components/tooltip/src/tooltip.d.ts +2 -0
- package/lib/packages/components/tooltip/src/tooltip.vue.d.ts +4 -0
- package/lib/packages/components/tooltip/src/trigger.vue.d.ts +1 -1
- package/lib/packages/components/tree-v2/src/tree-node.vue.d.ts +1 -1
- package/lib/packages/components/virtual-list/src/builders/build-grid.d.ts +2 -2
- package/lib/packages/components/virtual-list/src/builders/build-list.d.ts +2 -2
- package/lib/packages/components/virtual-list/src/components/dynamic-size-grid.d.ts +2 -2
- package/lib/packages/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
- package/lib/packages/components/virtual-list/src/components/fixed-size-grid.d.ts +2 -2
- package/lib/packages/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
- package/lib/packages/version.d.ts +1 -1
- 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/tags.json +1 -1
- package/theme-chalk/el-dropdown.css +1 -1
- package/theme-chalk/el-tree.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/dropdown.scss +13 -18
- package/theme-chalk/src/tree.scss +2 -1
- package/web-types.json +1 -1
package/lib/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.js
CHANGED
|
@@ -85,8 +85,10 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
85
85
|
"el-date-editor--" + _ctx.type,
|
|
86
86
|
_ctx.pickerSize ? `el-range-editor--${_ctx.pickerSize}` : "",
|
|
87
87
|
_ctx.pickerDisabled ? "is-disabled" : "",
|
|
88
|
-
_ctx.pickerVisible ? "is-active" : ""
|
|
88
|
+
_ctx.pickerVisible ? "is-active" : "",
|
|
89
|
+
_ctx.$attrs.class || void 0
|
|
89
90
|
]]),
|
|
91
|
+
style: vue.normalizeStyle(_ctx.$attrs.style || void 0),
|
|
90
92
|
onClick: _cache[7] || (_cache[7] = (...args) => _ctx.handleFocus && _ctx.handleFocus(...args)),
|
|
91
93
|
onMouseenter: _cache[8] || (_cache[8] = (...args) => _ctx.onMouseEnter && _ctx.onMouseEnter(...args)),
|
|
92
94
|
onMouseleave: _cache[9] || (_cache[9] = (...args) => _ctx.onMouseLeave && _ctx.onMouseLeave(...args)),
|
|
@@ -143,7 +145,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
143
145
|
]),
|
|
144
146
|
_: 1
|
|
145
147
|
}, 8, ["class", "onClick"])) : vue.createCommentVNode("v-if", true)
|
|
146
|
-
],
|
|
148
|
+
], 38))
|
|
147
149
|
]),
|
|
148
150
|
content: vue.withCtx(() => [
|
|
149
151
|
vue.renderSlot(_ctx.$slots, "default", {
|
package/lib/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker.vue_vue_type_template_id_1d54be91_lang.js","sources":["../../../../../../../packages/components/time-picker/src/common/picker.vue?vue&type=template&id=1d54be91&lang.js"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"refPopper\"\n v-model:visible=\"pickerVisible\"\n effect=\"light\"\n pure\n trigger=\"click\"\n v-bind=\"$attrs\"\n append-to-body\n transition=\"el-zoom-in-top\"\n :popper-class=\"`el-picker__popper ${popperClass}`\"\n :popper-options=\"elPopperOptions\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :gpu-acceleration=\"false\"\n :stop-popper-mouse-event=\"false\"\n :hide-after=\"0\"\n persistent\n @show=\"pickerActualVisible = true\"\n @hide=\"pickerActualVisible = false\"\n >\n <template #default>\n <el-input\n v-if=\"!isRangeInput\"\n :id=\"id\"\n ref=\"inputRef\"\n :model-value=\"displayValue\"\n :name=\"name\"\n :size=\"pickerSize\"\n :disabled=\"pickerDisabled\"\n :placeholder=\"placeholder\"\n class=\"el-date-editor\"\n :class=\"['el-date-editor--' + type, $attrs.class || undefined]\"\n :style=\"$attrs.style || undefined\"\n :readonly=\"!editable || readonly || isDatesPicker || type === 'week'\"\n @input=\"onUserInput\"\n @focus=\"handleFocus\"\n @keydown=\"handleKeydown\"\n @change=\"handleChange\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @click.stop\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n class=\"el-input__icon\"\n @click=\"handleFocus\"\n >\n <component :is=\"triggerIcon\"></component>\n </el-icon>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"showClose && clearIcon\"\n class=\"el-input__icon clear-icon\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n <div\n v-else\n ref=\"inputRef\"\n class=\"el-date-editor el-range-editor el-input__inner\"\n :class=\"[\n 'el-date-editor--' + type,\n pickerSize ? `el-range-editor--${pickerSize}` : '',\n pickerDisabled ? 'is-disabled' : '',\n pickerVisible ? 'is-active' : '',\n ]\"\n @click=\"handleFocus\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @keydown=\"handleKeydown\"\n >\n <el-icon\n v-if=\"triggerIcon\"\n class=\"el-input__icon el-range__icon\"\n @click=\"handleFocus\"\n >\n <component :is=\"triggerIcon\"></component>\n </el-icon>\n <input\n :id=\"id && id[0]\"\n autocomplete=\"off\"\n :name=\"name && name[0]\"\n :placeholder=\"startPlaceholder\"\n :value=\"displayValue && displayValue[0]\"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n class=\"el-range-input\"\n @input=\"handleStartInput\"\n @change=\"handleStartChange\"\n @focus=\"handleFocus\"\n />\n <slot name=\"range-separator\">\n <span class=\"el-range-separator\">{{ rangeSeparator }}</span>\n </slot>\n <input\n :id=\"id && id[1]\"\n autocomplete=\"off\"\n :name=\"name && name[1]\"\n :placeholder=\"endPlaceholder\"\n :value=\"displayValue && displayValue[1]\"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n class=\"el-range-input\"\n @focus=\"handleFocus\"\n @input=\"handleEndInput\"\n @change=\"handleEndChange\"\n />\n <el-icon\n v-if=\"clearIcon\"\n class=\"el-input__icon el-range__close-icon\"\n :class=\"{\n 'el-range__close-icon--hidden': !showClose,\n }\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </div>\n </template>\n <template #content>\n <slot\n :visible=\"pickerVisible\"\n :actual-visible=\"pickerActualVisible\"\n :parsed-value=\"parsedValue\"\n :format=\"format\"\n :unlink-panels=\"unlinkPanels\"\n :type=\"type\"\n :default-value=\"defaultValue\"\n @pick=\"onPick\"\n @select-range=\"setSelectionRange\"\n @set-picker-option=\"onSetPickerOption\"\n @calendar-change=\"onCalendarChange\"\n @mousedown.stop\n ></slot>\n </template>\n </el-tooltip>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n ref,\n computed,\n nextTick,\n inject,\n watch,\n provide,\n unref,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport isEqual from 'lodash/isEqual'\nimport { onClickOutside } from '@vueuse/core'\nimport { useLocale, useSize } from '@element-plus/hooks'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport ElInput from '@element-plus/components/input'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport { isEmpty } from '@element-plus/utils/util'\nimport { Clock, Calendar } from '@element-plus/icons-vue'\nimport { timePickerDefaultProps } from './props'\n\nimport type { Dayjs } from 'dayjs'\nimport type { ComponentPublicInstance } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { Options } from '@popperjs/core'\n\ninterface PickerOptions {\n isValidValue: (date: Dayjs) => boolean\n handleKeydown: (event: KeyboardEvent) => void\n parseUserInput: (value: Dayjs) => dayjs.Dayjs\n formatToString: (value: Dayjs) => string | string[]\n getRangeAvailableTime: (date: Dayjs) => dayjs.Dayjs\n getDefaultValue: () => Dayjs\n panelReady: boolean\n handleClear: () => void\n}\n\n// Date object and string\nconst dateEquals = function (a: Date | any, b: Date | any) {\n const aIsDate = a instanceof Date\n const bIsDate = b instanceof Date\n if (aIsDate && bIsDate) {\n return a.getTime() === b.getTime()\n }\n if (!aIsDate && !bIsDate) {\n return a === b\n }\n return false\n}\n\nconst valueEquals = function (a: Array<Date> | any, b: Array<Date> | any) {\n const aIsArray = a instanceof Array\n const bIsArray = b instanceof Array\n if (aIsArray && bIsArray) {\n if (a.length !== b.length) {\n return false\n }\n return (a as Array<Date>).every((item, index) => dateEquals(item, b[index]))\n }\n if (!aIsArray && !bIsArray) {\n return dateEquals(a, b)\n }\n return false\n}\n\nconst parser = function (\n date: Date | string,\n format: string,\n lang: string\n): Dayjs {\n const day =\n isEmpty(format) || format === 'x'\n ? dayjs(date).locale(lang)\n : dayjs(date, format).locale(lang)\n return day.isValid() ? day : undefined\n}\n\nconst formatter = function (date: number | Date, format: string, lang: string) {\n if (isEmpty(format)) return date\n if (format === 'x') return +date\n return dayjs(date).locale(lang).format(format)\n}\n\nexport default defineComponent({\n name: 'Picker',\n components: {\n ElInput,\n ElTooltip,\n ElIcon,\n },\n props: timePickerDefaultProps,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'calendar-change'],\n setup(props, ctx) {\n const { lang } = useLocale()\n\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n const elPopperOptions = inject('ElPopperOptions', {} as Options)\n\n const refPopper = ref<InstanceType<typeof ElTooltip>>()\n const inputRef = ref<HTMLElement | ComponentPublicInstance>()\n const pickerVisible = ref(false)\n const pickerActualVisible = ref(false)\n const valueOnOpen = ref(null)\n\n watch(pickerVisible, (val) => {\n if (!val) {\n userInput.value = null\n nextTick(() => {\n emitChange(props.modelValue)\n })\n ctx.emit('blur')\n blurInput()\n props.validateEvent && elFormItem.validate?.('blur')\n } else {\n valueOnOpen.value = props.modelValue\n }\n })\n const emitChange = (val, isClear?: boolean) => {\n // determine user real change only\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n ctx.emit('change', val)\n props.validateEvent && elFormItem.validate?.('change')\n }\n }\n const emitInput = (val) => {\n if (!valueEquals(props.modelValue, val)) {\n let formatValue\n if (Array.isArray(val)) {\n formatValue = val.map((_) =>\n formatter(_, props.valueFormat, lang.value)\n )\n } else if (val) {\n formatValue = formatter(val, props.valueFormat, lang.value)\n }\n ctx.emit('update:modelValue', val ? formatValue : val, lang.value)\n }\n }\n const refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n const _r = isRangeInput.value\n ? inputRef.value\n : (inputRef.value as any as ComponentPublicInstance).$el\n return Array.from<HTMLInputElement>(_r.querySelectorAll('input'))\n }\n return []\n })\n const refStartInput = computed(() => {\n return refInput?.value[0]\n })\n const refEndInput = computed(() => {\n return refInput?.value[1]\n })\n const setSelectionRange = (start, end, pos) => {\n const _inputs = refInput.value\n if (!_inputs.length) return\n if (!pos || pos === 'min') {\n _inputs[0].setSelectionRange(start, end)\n _inputs[0].focus()\n } else if (pos === 'max') {\n _inputs[1].setSelectionRange(start, end)\n _inputs[1].focus()\n }\n }\n const onPick = (date: any = '', visible = false) => {\n pickerVisible.value = visible\n let result\n if (Array.isArray(date)) {\n result = date.map((_) => _.toDate())\n } else {\n // clear btn emit null\n result = date ? date.toDate() : date\n }\n userInput.value = null\n emitInput(result)\n }\n\n const focus = (focusStartInput = true) => {\n let input = refStartInput.value\n if (!focusStartInput && isRangeInput.value) {\n input = refEndInput.value\n }\n if (input) {\n input.focus()\n }\n }\n\n const handleFocus = (e) => {\n if (props.readonly || pickerDisabled.value || pickerVisible.value) return\n pickerVisible.value = true\n ctx.emit('focus', e)\n }\n\n const handleBlur = () => {\n refPopper.value?.onClose()\n blurInput()\n }\n\n const pickerDisabled = computed(() => {\n return props.disabled || elForm.disabled\n })\n\n const parsedValue = computed(() => {\n let result\n if (valueIsEmpty.value) {\n if (pickerOptions.value.getDefaultValue) {\n result = pickerOptions.value.getDefaultValue()\n }\n } else {\n if (Array.isArray(props.modelValue)) {\n result = props.modelValue.map((_) =>\n parser(_, props.valueFormat, lang.value)\n )\n } else {\n result = parser(props.modelValue, props.valueFormat, lang.value)\n }\n }\n\n if (pickerOptions.value.getRangeAvailableTime) {\n const availableResult =\n pickerOptions.value.getRangeAvailableTime(result)\n if (!isEqual(availableResult, result)) {\n result = availableResult\n emitInput(\n Array.isArray(result)\n ? result.map((_) => _.toDate())\n : result.toDate()\n )\n }\n }\n if (Array.isArray(result) && result.some((_) => !_)) {\n result = []\n }\n return result\n })\n\n const displayValue = computed(() => {\n if (!pickerOptions.value.panelReady) return\n const formattedValue = formatDayjsToString(parsedValue.value)\n if (Array.isArray(userInput.value)) {\n return [\n userInput.value[0] || (formattedValue && formattedValue[0]) || '',\n userInput.value[1] || (formattedValue && formattedValue[1]) || '',\n ]\n } else if (userInput.value !== null) {\n return userInput.value\n }\n if (!isTimePicker.value && valueIsEmpty.value) return\n if (!pickerVisible.value && valueIsEmpty.value) return\n if (formattedValue) {\n return isDatesPicker.value\n ? (formattedValue as Array<string>).join(', ')\n : formattedValue\n }\n return ''\n })\n\n const isTimeLikePicker = computed(() => props.type.includes('time'))\n\n const isTimePicker = computed(() => props.type.startsWith('time'))\n\n const isDatesPicker = computed(() => props.type === 'dates')\n\n const triggerIcon = computed(\n () => props.prefixIcon || (isTimeLikePicker.value ? Clock : Calendar)\n )\n\n const showClose = ref(false)\n\n const onClearIconClick = (event) => {\n if (props.readonly || pickerDisabled.value) return\n if (showClose.value) {\n event.stopPropagation()\n emitInput(null)\n emitChange(null, true)\n showClose.value = false\n pickerVisible.value = false\n pickerOptions.value.handleClear && pickerOptions.value.handleClear()\n }\n }\n const valueIsEmpty = computed(() => {\n return (\n !props.modelValue ||\n (Array.isArray(props.modelValue) && !props.modelValue.length)\n )\n })\n const onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value) return\n if (!valueIsEmpty.value && props.clearable) {\n showClose.value = true\n }\n }\n const onMouseLeave = () => {\n showClose.value = false\n }\n const isRangeInput = computed(() => {\n return props.type.indexOf('range') > -1\n })\n\n const pickerSize = useSize()\n\n const popperPaneRef = computed(() => {\n return refPopper.value?.popperRef?.contentRef\n })\n\n const popperEl = computed(() => unref(refPopper)?.popperRef?.contentRef)\n const actualInputRef = computed(() => {\n if (unref(isRangeInput)) {\n return unref(inputRef)\n }\n\n return (unref(inputRef) as ComponentPublicInstance)?.$el\n })\n\n onClickOutside(actualInputRef, (e: PointerEvent) => {\n const unrefedPopperEl = unref(popperEl)\n const inputEl = unref(actualInputRef)\n if (\n (unrefedPopperEl &&\n (e.target === unrefedPopperEl ||\n e.composedPath().includes(unrefedPopperEl))) ||\n e.target === inputEl ||\n e.composedPath().includes(inputEl)\n )\n return\n pickerVisible.value = false\n })\n\n const userInput = ref(null)\n\n const handleChange = () => {\n if (userInput.value) {\n const value = parseUserInputToDayjs(displayValue.value)\n if (value) {\n if (isValidValue(value)) {\n emitInput(\n Array.isArray(value)\n ? value.map((_) => _.toDate())\n : value.toDate()\n )\n userInput.value = null\n }\n }\n }\n if (userInput.value === '') {\n emitInput(null)\n emitChange(null)\n userInput.value = null\n }\n }\n\n const blurInput = () => {\n refInput.value.forEach((input) => input.blur())\n }\n\n const parseUserInputToDayjs = (value) => {\n if (!value) return null\n return pickerOptions.value.parseUserInput(value)\n }\n\n const formatDayjsToString = (value) => {\n if (!value) return null\n return pickerOptions.value.formatToString(value)\n }\n\n const isValidValue = (value) => {\n return pickerOptions.value.isValidValue(value)\n }\n\n const handleKeydown = (event) => {\n const code = event.code\n\n if (code === EVENT_CODE.esc) {\n pickerVisible.value = false\n event.stopPropagation()\n return\n }\n\n if (code === EVENT_CODE.tab) {\n if (!isRangeInput.value) {\n handleChange()\n pickerVisible.value = false\n event.stopPropagation()\n } else {\n // user may change focus between two input\n setTimeout(() => {\n if (refInput.value.indexOf(document.activeElement) === -1) {\n pickerVisible.value = false\n blurInput()\n }\n }, 0)\n }\n return\n }\n\n if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {\n if (\n userInput.value === null ||\n userInput.value === '' ||\n isValidValue(parseUserInputToDayjs(displayValue.value))\n ) {\n handleChange()\n pickerVisible.value = false\n }\n event.stopPropagation()\n return\n }\n\n // if user is typing, do not let picker handle key input\n if (userInput.value) {\n event.stopPropagation()\n return\n }\n\n if (pickerOptions.value.handleKeydown) {\n pickerOptions.value.handleKeydown(event)\n }\n }\n const onUserInput = (e) => {\n userInput.value = e\n }\n\n const handleStartInput = (event) => {\n if (userInput.value) {\n userInput.value = [event.target.value, userInput.value[1]]\n } else {\n userInput.value = [event.target.value, null]\n }\n }\n\n const handleEndInput = (event) => {\n if (userInput.value) {\n userInput.value = [userInput.value[0], event.target.value]\n } else {\n userInput.value = [null, event.target.value]\n }\n }\n\n const handleStartChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[0])\n if (value && value.isValid()) {\n userInput.value = [formatDayjsToString(value), displayValue.value[1]]\n const newValue = [value, parsedValue.value && parsedValue.value[1]]\n if (isValidValue(newValue)) {\n emitInput(newValue)\n userInput.value = null\n }\n }\n }\n\n const handleEndChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[1])\n if (value && value.isValid()) {\n userInput.value = [displayValue.value[0], formatDayjsToString(value)]\n const newValue = [parsedValue.value && parsedValue.value[0], value]\n if (isValidValue(newValue)) {\n emitInput(newValue)\n userInput.value = null\n }\n }\n }\n\n const pickerOptions = ref<Partial<PickerOptions>>({})\n const onSetPickerOption = <T extends keyof PickerOptions>(\n e: [T, PickerOptions[T]]\n ) => {\n pickerOptions.value[e[0]] = e[1]\n pickerOptions.value.panelReady = true\n }\n\n const onCalendarChange = (e) => {\n ctx.emit('calendar-change', e)\n }\n\n provide('EP_PICKER_BASE', {\n props,\n })\n\n return {\n // injected popper options\n elPopperOptions,\n\n isDatesPicker,\n handleEndChange,\n handleStartChange,\n handleStartInput,\n handleEndInput,\n onUserInput,\n handleChange,\n handleKeydown,\n popperPaneRef,\n onClickOutside,\n pickerSize,\n isRangeInput,\n onMouseLeave,\n onMouseEnter,\n onClearIconClick,\n showClose,\n triggerIcon,\n onPick,\n handleFocus,\n handleBlur,\n pickerVisible,\n pickerActualVisible,\n displayValue,\n parsedValue,\n setSelectionRange,\n refPopper,\n inputRef,\n pickerDisabled,\n onSetPickerOption,\n onCalendarChange,\n focus,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;0BAiGqB;;;;;;;;wBAhGnB;IACE;IACQ;;UACF;IACN;IACA;;IAEA,kBAAA;IACA;IACC;IACA;IACA;IACA;IACA,gCAA8B;IAC9B,cAAY,CAAC;IACd;IACC;;;;QAKU;;;YACN,EAAE;;yBAES;;;yCAGa;;iBAEpB;iBAEC;uBACM;;;uBAGF;YACT,QAAM;;2BAEI;;;YAGA;;;;4BAGF,EAAC;;;;;;;;;;;;;;;2BAUA;;;2EAEU;;;;;;;;;;;oCAOd;;;;;;mBAOA;;;0EAGI;;aAGF;;;kBACN,OAAM;;;;;;;;;;;;uBAQC,aAAQ;mDACe;;;cAG7B,WAAW;;cAEX,OAAK;;qBAEA;;;;;;kBAMD,WAAM;;;;;;;mBAON;;;yEAGI;;aAGH;;;;;;;;;;;;;;;;;;;QAcP;;QAEA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"picker.vue_vue_type_template_id_1d54be91_lang.js","sources":["../../../../../../../packages/components/time-picker/src/common/picker.vue?vue&type=template&id=1d54be91&lang.js"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"refPopper\"\n v-model:visible=\"pickerVisible\"\n effect=\"light\"\n pure\n trigger=\"click\"\n v-bind=\"$attrs\"\n append-to-body\n transition=\"el-zoom-in-top\"\n :popper-class=\"`el-picker__popper ${popperClass}`\"\n :popper-options=\"elPopperOptions\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n :gpu-acceleration=\"false\"\n :stop-popper-mouse-event=\"false\"\n :hide-after=\"0\"\n persistent\n @show=\"pickerActualVisible = true\"\n @hide=\"pickerActualVisible = false\"\n >\n <template #default>\n <el-input\n v-if=\"!isRangeInput\"\n :id=\"id\"\n ref=\"inputRef\"\n :model-value=\"displayValue\"\n :name=\"name\"\n :size=\"pickerSize\"\n :disabled=\"pickerDisabled\"\n :placeholder=\"placeholder\"\n class=\"el-date-editor\"\n :class=\"['el-date-editor--' + type, $attrs.class || undefined]\"\n :style=\"$attrs.style || undefined\"\n :readonly=\"!editable || readonly || isDatesPicker || type === 'week'\"\n @input=\"onUserInput\"\n @focus=\"handleFocus\"\n @keydown=\"handleKeydown\"\n @change=\"handleChange\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @click.stop\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n class=\"el-input__icon\"\n @click=\"handleFocus\"\n >\n <component :is=\"triggerIcon\"></component>\n </el-icon>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"showClose && clearIcon\"\n class=\"el-input__icon clear-icon\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n <div\n v-else\n ref=\"inputRef\"\n class=\"el-date-editor el-range-editor el-input__inner\"\n :class=\"[\n 'el-date-editor--' + type,\n pickerSize ? `el-range-editor--${pickerSize}` : '',\n pickerDisabled ? 'is-disabled' : '',\n pickerVisible ? 'is-active' : '',\n $attrs.class || undefined,\n ]\"\n :style=\"$attrs.style || undefined\"\n @click=\"handleFocus\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @keydown=\"handleKeydown\"\n >\n <el-icon\n v-if=\"triggerIcon\"\n class=\"el-input__icon el-range__icon\"\n @click=\"handleFocus\"\n >\n <component :is=\"triggerIcon\"></component>\n </el-icon>\n <input\n :id=\"id && id[0]\"\n autocomplete=\"off\"\n :name=\"name && name[0]\"\n :placeholder=\"startPlaceholder\"\n :value=\"displayValue && displayValue[0]\"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n class=\"el-range-input\"\n @input=\"handleStartInput\"\n @change=\"handleStartChange\"\n @focus=\"handleFocus\"\n />\n <slot name=\"range-separator\">\n <span class=\"el-range-separator\">{{ rangeSeparator }}</span>\n </slot>\n <input\n :id=\"id && id[1]\"\n autocomplete=\"off\"\n :name=\"name && name[1]\"\n :placeholder=\"endPlaceholder\"\n :value=\"displayValue && displayValue[1]\"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n class=\"el-range-input\"\n @focus=\"handleFocus\"\n @input=\"handleEndInput\"\n @change=\"handleEndChange\"\n />\n <el-icon\n v-if=\"clearIcon\"\n class=\"el-input__icon el-range__close-icon\"\n :class=\"{\n 'el-range__close-icon--hidden': !showClose,\n }\"\n @click=\"onClearIconClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </div>\n </template>\n <template #content>\n <slot\n :visible=\"pickerVisible\"\n :actual-visible=\"pickerActualVisible\"\n :parsed-value=\"parsedValue\"\n :format=\"format\"\n :unlink-panels=\"unlinkPanels\"\n :type=\"type\"\n :default-value=\"defaultValue\"\n @pick=\"onPick\"\n @select-range=\"setSelectionRange\"\n @set-picker-option=\"onSetPickerOption\"\n @calendar-change=\"onCalendarChange\"\n @mousedown.stop\n ></slot>\n </template>\n </el-tooltip>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n ref,\n computed,\n nextTick,\n inject,\n watch,\n provide,\n unref,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport isEqual from 'lodash/isEqual'\nimport { onClickOutside } from '@vueuse/core'\nimport { useLocale, useSize } from '@element-plus/hooks'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport ElInput from '@element-plus/components/input'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport { isEmpty } from '@element-plus/utils/util'\nimport { Clock, Calendar } from '@element-plus/icons-vue'\nimport { timePickerDefaultProps } from './props'\n\nimport type { Dayjs } from 'dayjs'\nimport type { ComponentPublicInstance } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { Options } from '@popperjs/core'\n\ninterface PickerOptions {\n isValidValue: (date: Dayjs) => boolean\n handleKeydown: (event: KeyboardEvent) => void\n parseUserInput: (value: Dayjs) => dayjs.Dayjs\n formatToString: (value: Dayjs) => string | string[]\n getRangeAvailableTime: (date: Dayjs) => dayjs.Dayjs\n getDefaultValue: () => Dayjs\n panelReady: boolean\n handleClear: () => void\n}\n\n// Date object and string\nconst dateEquals = function (a: Date | any, b: Date | any) {\n const aIsDate = a instanceof Date\n const bIsDate = b instanceof Date\n if (aIsDate && bIsDate) {\n return a.getTime() === b.getTime()\n }\n if (!aIsDate && !bIsDate) {\n return a === b\n }\n return false\n}\n\nconst valueEquals = function (a: Array<Date> | any, b: Array<Date> | any) {\n const aIsArray = a instanceof Array\n const bIsArray = b instanceof Array\n if (aIsArray && bIsArray) {\n if (a.length !== b.length) {\n return false\n }\n return (a as Array<Date>).every((item, index) => dateEquals(item, b[index]))\n }\n if (!aIsArray && !bIsArray) {\n return dateEquals(a, b)\n }\n return false\n}\n\nconst parser = function (\n date: Date | string,\n format: string,\n lang: string\n): Dayjs {\n const day =\n isEmpty(format) || format === 'x'\n ? dayjs(date).locale(lang)\n : dayjs(date, format).locale(lang)\n return day.isValid() ? day : undefined\n}\n\nconst formatter = function (date: number | Date, format: string, lang: string) {\n if (isEmpty(format)) return date\n if (format === 'x') return +date\n return dayjs(date).locale(lang).format(format)\n}\n\nexport default defineComponent({\n name: 'Picker',\n components: {\n ElInput,\n ElTooltip,\n ElIcon,\n },\n props: timePickerDefaultProps,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'calendar-change'],\n setup(props, ctx) {\n const { lang } = useLocale()\n\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n const elPopperOptions = inject('ElPopperOptions', {} as Options)\n\n const refPopper = ref<InstanceType<typeof ElTooltip>>()\n const inputRef = ref<HTMLElement | ComponentPublicInstance>()\n const pickerVisible = ref(false)\n const pickerActualVisible = ref(false)\n const valueOnOpen = ref(null)\n\n watch(pickerVisible, (val) => {\n if (!val) {\n userInput.value = null\n nextTick(() => {\n emitChange(props.modelValue)\n })\n ctx.emit('blur')\n blurInput()\n props.validateEvent && elFormItem.validate?.('blur')\n } else {\n valueOnOpen.value = props.modelValue\n }\n })\n const emitChange = (val, isClear?: boolean) => {\n // determine user real change only\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n ctx.emit('change', val)\n props.validateEvent && elFormItem.validate?.('change')\n }\n }\n const emitInput = (val) => {\n if (!valueEquals(props.modelValue, val)) {\n let formatValue\n if (Array.isArray(val)) {\n formatValue = val.map((_) =>\n formatter(_, props.valueFormat, lang.value)\n )\n } else if (val) {\n formatValue = formatter(val, props.valueFormat, lang.value)\n }\n ctx.emit('update:modelValue', val ? formatValue : val, lang.value)\n }\n }\n const refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n const _r = isRangeInput.value\n ? inputRef.value\n : (inputRef.value as any as ComponentPublicInstance).$el\n return Array.from<HTMLInputElement>(_r.querySelectorAll('input'))\n }\n return []\n })\n const refStartInput = computed(() => {\n return refInput?.value[0]\n })\n const refEndInput = computed(() => {\n return refInput?.value[1]\n })\n const setSelectionRange = (start, end, pos) => {\n const _inputs = refInput.value\n if (!_inputs.length) return\n if (!pos || pos === 'min') {\n _inputs[0].setSelectionRange(start, end)\n _inputs[0].focus()\n } else if (pos === 'max') {\n _inputs[1].setSelectionRange(start, end)\n _inputs[1].focus()\n }\n }\n const onPick = (date: any = '', visible = false) => {\n pickerVisible.value = visible\n let result\n if (Array.isArray(date)) {\n result = date.map((_) => _.toDate())\n } else {\n // clear btn emit null\n result = date ? date.toDate() : date\n }\n userInput.value = null\n emitInput(result)\n }\n\n const focus = (focusStartInput = true) => {\n let input = refStartInput.value\n if (!focusStartInput && isRangeInput.value) {\n input = refEndInput.value\n }\n if (input) {\n input.focus()\n }\n }\n\n const handleFocus = (e) => {\n if (props.readonly || pickerDisabled.value || pickerVisible.value) return\n pickerVisible.value = true\n ctx.emit('focus', e)\n }\n\n const handleBlur = () => {\n refPopper.value?.onClose()\n blurInput()\n }\n\n const pickerDisabled = computed(() => {\n return props.disabled || elForm.disabled\n })\n\n const parsedValue = computed(() => {\n let result\n if (valueIsEmpty.value) {\n if (pickerOptions.value.getDefaultValue) {\n result = pickerOptions.value.getDefaultValue()\n }\n } else {\n if (Array.isArray(props.modelValue)) {\n result = props.modelValue.map((_) =>\n parser(_, props.valueFormat, lang.value)\n )\n } else {\n result = parser(props.modelValue, props.valueFormat, lang.value)\n }\n }\n\n if (pickerOptions.value.getRangeAvailableTime) {\n const availableResult =\n pickerOptions.value.getRangeAvailableTime(result)\n if (!isEqual(availableResult, result)) {\n result = availableResult\n emitInput(\n Array.isArray(result)\n ? result.map((_) => _.toDate())\n : result.toDate()\n )\n }\n }\n if (Array.isArray(result) && result.some((_) => !_)) {\n result = []\n }\n return result\n })\n\n const displayValue = computed(() => {\n if (!pickerOptions.value.panelReady) return\n const formattedValue = formatDayjsToString(parsedValue.value)\n if (Array.isArray(userInput.value)) {\n return [\n userInput.value[0] || (formattedValue && formattedValue[0]) || '',\n userInput.value[1] || (formattedValue && formattedValue[1]) || '',\n ]\n } else if (userInput.value !== null) {\n return userInput.value\n }\n if (!isTimePicker.value && valueIsEmpty.value) return\n if (!pickerVisible.value && valueIsEmpty.value) return\n if (formattedValue) {\n return isDatesPicker.value\n ? (formattedValue as Array<string>).join(', ')\n : formattedValue\n }\n return ''\n })\n\n const isTimeLikePicker = computed(() => props.type.includes('time'))\n\n const isTimePicker = computed(() => props.type.startsWith('time'))\n\n const isDatesPicker = computed(() => props.type === 'dates')\n\n const triggerIcon = computed(\n () => props.prefixIcon || (isTimeLikePicker.value ? Clock : Calendar)\n )\n\n const showClose = ref(false)\n\n const onClearIconClick = (event) => {\n if (props.readonly || pickerDisabled.value) return\n if (showClose.value) {\n event.stopPropagation()\n emitInput(null)\n emitChange(null, true)\n showClose.value = false\n pickerVisible.value = false\n pickerOptions.value.handleClear && pickerOptions.value.handleClear()\n }\n }\n const valueIsEmpty = computed(() => {\n return (\n !props.modelValue ||\n (Array.isArray(props.modelValue) && !props.modelValue.length)\n )\n })\n const onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value) return\n if (!valueIsEmpty.value && props.clearable) {\n showClose.value = true\n }\n }\n const onMouseLeave = () => {\n showClose.value = false\n }\n const isRangeInput = computed(() => {\n return props.type.indexOf('range') > -1\n })\n\n const pickerSize = useSize()\n\n const popperPaneRef = computed(() => {\n return refPopper.value?.popperRef?.contentRef\n })\n\n const popperEl = computed(() => unref(refPopper)?.popperRef?.contentRef)\n const actualInputRef = computed(() => {\n if (unref(isRangeInput)) {\n return unref(inputRef)\n }\n\n return (unref(inputRef) as ComponentPublicInstance)?.$el\n })\n\n onClickOutside(actualInputRef, (e: PointerEvent) => {\n const unrefedPopperEl = unref(popperEl)\n const inputEl = unref(actualInputRef)\n if (\n (unrefedPopperEl &&\n (e.target === unrefedPopperEl ||\n e.composedPath().includes(unrefedPopperEl))) ||\n e.target === inputEl ||\n e.composedPath().includes(inputEl)\n )\n return\n pickerVisible.value = false\n })\n\n const userInput = ref(null)\n\n const handleChange = () => {\n if (userInput.value) {\n const value = parseUserInputToDayjs(displayValue.value)\n if (value) {\n if (isValidValue(value)) {\n emitInput(\n Array.isArray(value)\n ? value.map((_) => _.toDate())\n : value.toDate()\n )\n userInput.value = null\n }\n }\n }\n if (userInput.value === '') {\n emitInput(null)\n emitChange(null)\n userInput.value = null\n }\n }\n\n const blurInput = () => {\n refInput.value.forEach((input) => input.blur())\n }\n\n const parseUserInputToDayjs = (value) => {\n if (!value) return null\n return pickerOptions.value.parseUserInput(value)\n }\n\n const formatDayjsToString = (value) => {\n if (!value) return null\n return pickerOptions.value.formatToString(value)\n }\n\n const isValidValue = (value) => {\n return pickerOptions.value.isValidValue(value)\n }\n\n const handleKeydown = (event) => {\n const code = event.code\n\n if (code === EVENT_CODE.esc) {\n pickerVisible.value = false\n event.stopPropagation()\n return\n }\n\n if (code === EVENT_CODE.tab) {\n if (!isRangeInput.value) {\n handleChange()\n pickerVisible.value = false\n event.stopPropagation()\n } else {\n // user may change focus between two input\n setTimeout(() => {\n if (refInput.value.indexOf(document.activeElement) === -1) {\n pickerVisible.value = false\n blurInput()\n }\n }, 0)\n }\n return\n }\n\n if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {\n if (\n userInput.value === null ||\n userInput.value === '' ||\n isValidValue(parseUserInputToDayjs(displayValue.value))\n ) {\n handleChange()\n pickerVisible.value = false\n }\n event.stopPropagation()\n return\n }\n\n // if user is typing, do not let picker handle key input\n if (userInput.value) {\n event.stopPropagation()\n return\n }\n\n if (pickerOptions.value.handleKeydown) {\n pickerOptions.value.handleKeydown(event)\n }\n }\n const onUserInput = (e) => {\n userInput.value = e\n }\n\n const handleStartInput = (event) => {\n if (userInput.value) {\n userInput.value = [event.target.value, userInput.value[1]]\n } else {\n userInput.value = [event.target.value, null]\n }\n }\n\n const handleEndInput = (event) => {\n if (userInput.value) {\n userInput.value = [userInput.value[0], event.target.value]\n } else {\n userInput.value = [null, event.target.value]\n }\n }\n\n const handleStartChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[0])\n if (value && value.isValid()) {\n userInput.value = [formatDayjsToString(value), displayValue.value[1]]\n const newValue = [value, parsedValue.value && parsedValue.value[1]]\n if (isValidValue(newValue)) {\n emitInput(newValue)\n userInput.value = null\n }\n }\n }\n\n const handleEndChange = () => {\n const value = parseUserInputToDayjs(userInput.value && userInput.value[1])\n if (value && value.isValid()) {\n userInput.value = [displayValue.value[0], formatDayjsToString(value)]\n const newValue = [parsedValue.value && parsedValue.value[0], value]\n if (isValidValue(newValue)) {\n emitInput(newValue)\n userInput.value = null\n }\n }\n }\n\n const pickerOptions = ref<Partial<PickerOptions>>({})\n const onSetPickerOption = <T extends keyof PickerOptions>(\n e: [T, PickerOptions[T]]\n ) => {\n pickerOptions.value[e[0]] = e[1]\n pickerOptions.value.panelReady = true\n }\n\n const onCalendarChange = (e) => {\n ctx.emit('calendar-change', e)\n }\n\n provide('EP_PICKER_BASE', {\n props,\n })\n\n return {\n // injected popper options\n elPopperOptions,\n\n isDatesPicker,\n handleEndChange,\n handleStartChange,\n handleStartInput,\n handleEndInput,\n onUserInput,\n handleChange,\n handleKeydown,\n popperPaneRef,\n onClickOutside,\n pickerSize,\n isRangeInput,\n onMouseLeave,\n onMouseEnter,\n onClearIconClick,\n showClose,\n triggerIcon,\n onPick,\n handleFocus,\n handleBlur,\n pickerVisible,\n pickerActualVisible,\n displayValue,\n parsedValue,\n setSelectionRange,\n refPopper,\n inputRef,\n pickerDisabled,\n onSetPickerOption,\n onCalendarChange,\n focus,\n }\n },\n})\n</script>\n"],"names":["_normalizeStyle"],"mappings":";;;;;;;;0BAmGqB;;;;;;;;wBAlGnB;IACE;IACQ;;UACF;IACN;IACA;;IAEA,kBAAA;IACA;IACC;IACA;IACA;IACA;IACA,gCAA8B;IAC9B,cAAY,CAAC;IACd;IACC;;;;QAKU;;;YACN,EAAE;;yBAES;;;yCAGa;;iBAEpB;iBAEC;uBACM;;;uBAGF;YACT,QAAM;;2BAEI;;;YAGA;;;;4BAGF,EAAC;;;;;;;;;;;;;;;2BAUA;;;2EAEU;;;;;;;;;;eAMjBA;iBACE;;;;;;;iBAQC;mBACA;;;0EAGI;;aAGF;;;kBACN,OAAM;;;;;;;;;;;;uBAQC,aAAQ;mDACe;;;cAG7B,WAAW;;cAEX,OAAK;;qBAEA;;;;;;kBAMD,WAAM;;;;;;;mBAON;;;yEAGI;;aAGH;;;;;;;;;;;;;;;;;;;QAcP;;QAEA;;;;;;"}
|
|
@@ -11,6 +11,7 @@ export declare const ElTooltip: import("../../utils/types").SFCWithInstall<impor
|
|
|
11
11
|
};
|
|
12
12
|
virtualRef: import("../../utils/props").BuildPropReturn<import("../../utils/props").PropWrapper<import("..").Measurable>, unknown, unknown, unknown, unknown>;
|
|
13
13
|
virtualTriggering: import("../../utils/props").BuildPropReturn<BooleanConstructor, unknown, unknown, unknown, unknown>;
|
|
14
|
+
appendTo: import("../../utils/props").BuildPropReturn<import("../../utils/props").PropWrapper<string | HTMLElement>, string | (() => string) | undefined, unknown, unknown, unknown>;
|
|
14
15
|
content: import("../../utils/props").BuildPropReturn<StringConstructor, string | (() => string) | undefined, unknown, unknown, unknown>;
|
|
15
16
|
rawContent: import("../../utils/props").BuildPropReturn<BooleanConstructor, boolean | (() => true) | (() => false) | undefined, unknown, unknown, unknown>;
|
|
16
17
|
persistent: BooleanConstructor;
|
|
@@ -187,6 +188,7 @@ export declare const ElTooltip: import("../../utils/types").SFCWithInstall<impor
|
|
|
187
188
|
trigger?: unknown;
|
|
188
189
|
virtualRef?: unknown;
|
|
189
190
|
virtualTriggering?: unknown;
|
|
191
|
+
appendTo?: unknown;
|
|
190
192
|
content?: unknown;
|
|
191
193
|
rawContent?: unknown;
|
|
192
194
|
persistent?: unknown;
|
|
@@ -245,6 +247,7 @@ export declare const ElTooltip: import("../../utils/types").SFCWithInstall<impor
|
|
|
245
247
|
} | any)[])[])[])[])[])[])[])[])[])[])[];
|
|
246
248
|
disabled: boolean;
|
|
247
249
|
effect: string;
|
|
250
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
248
251
|
showAfter: number;
|
|
249
252
|
hideAfter: number;
|
|
250
253
|
placement: import("../../utils/props").BuildPropType<(new (...args: any[]) => import("../../utils/props").BuildPropType<StringConstructor, import("@popperjs/core").Placement, unknown> & {}) | (() => import("../../utils/props").BuildPropType<StringConstructor, import("@popperjs/core").Placement, unknown>) | ((new (...args: any[]) => import("../../utils/props").BuildPropType<StringConstructor, import("@popperjs/core").Placement, unknown> & {}) | (() => import("../../utils/props").BuildPropType<StringConstructor, import("@popperjs/core").Placement, unknown>))[], unknown, unknown>;
|
|
@@ -331,6 +334,7 @@ export declare const ElTooltip: import("../../utils/types").SFCWithInstall<impor
|
|
|
331
334
|
} | any)[])[])[])[])[])[])[])[])[])[])[];
|
|
332
335
|
disabled: boolean;
|
|
333
336
|
effect: string;
|
|
337
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
334
338
|
showAfter: number;
|
|
335
339
|
hideAfter: number;
|
|
336
340
|
placement: import("../../utils/props").BuildPropType<(new (...args: any[]) => import("../../utils/props").BuildPropType<StringConstructor, import("@popperjs/core").Placement, unknown> & {}) | (() => import("../../utils/props").BuildPropType<StringConstructor, import("@popperjs/core").Placement, unknown>) | ((new (...args: any[]) => import("../../utils/props").BuildPropType<StringConstructor, import("@popperjs/core").Placement, unknown> & {}) | (() => import("../../utils/props").BuildPropType<StringConstructor, import("@popperjs/core").Placement, unknown>))[], unknown, unknown>;
|
|
@@ -381,4 +385,5 @@ export declare const ElTooltip: import("../../utils/types").SFCWithInstall<impor
|
|
|
381
385
|
trigger: "click" | "contextmenu" | "focus" | "hover" | ("click" | "contextmenu" | "focus" | "hover")[];
|
|
382
386
|
}>> & Record<string, any>;
|
|
383
387
|
export * from './src/tooltip';
|
|
388
|
+
export * from './src/tokens';
|
|
384
389
|
export default ElTooltip;
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var withInstall = require('../../utils/with-install.js');
|
|
6
6
|
require('./src/tooltip2.js');
|
|
7
7
|
var tooltip = require('./src/tooltip.js');
|
|
8
|
+
var tokens = require('./src/tokens.js');
|
|
8
9
|
var tooltip_vue_vue_type_script_lang = require('./src/tooltip.vue_vue_type_script_lang.js');
|
|
9
10
|
|
|
10
11
|
const ElTooltip = withInstall.withInstall(tooltip_vue_vue_type_script_lang["default"]);
|
|
@@ -12,6 +13,7 @@ const ElTooltip = withInstall.withInstall(tooltip_vue_vue_type_script_lang["defa
|
|
|
12
13
|
exports.useTooltipContentProps = tooltip.useTooltipContentProps;
|
|
13
14
|
exports.useTooltipProps = tooltip.useTooltipProps;
|
|
14
15
|
exports.useTooltipTriggerProps = tooltip.useTooltipTriggerProps;
|
|
16
|
+
exports.TOOLTIP_INJECTION_KEY = tokens.TOOLTIP_INJECTION_KEY;
|
|
15
17
|
exports.ElTooltip = ElTooltip;
|
|
16
18
|
exports["default"] = ElTooltip;
|
|
17
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../packages/components/tooltip/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils/with-install'\nimport Tooltip from './src/tooltip.vue'\n\nexport const ElTooltip = withInstall(Tooltip)\nexport * from './src/tooltip'\nexport default ElTooltip\n"],"names":["withInstall","Tooltip"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../packages/components/tooltip/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils/with-install'\nimport Tooltip from './src/tooltip.vue'\n\nexport const ElTooltip = withInstall(Tooltip)\nexport * from './src/tooltip'\nexport * from './src/tokens'\nexport default ElTooltip\n"],"names":["withInstall","Tooltip"],"mappings":";;;;;;;;;;AAEY,MAAC,SAAS,GAAGA,uBAAW,CAACC,2CAAO;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { nextTick } from 'vue';
|
|
2
1
|
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
appendTo: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<string | HTMLElement>, string | (() => string) | undefined, unknown, unknown, unknown>;
|
|
3
3
|
content: import("../../../utils/props").BuildPropReturn<StringConstructor, string | (() => string) | undefined, unknown, unknown, unknown>;
|
|
4
4
|
rawContent: import("../../../utils/props").BuildPropReturn<BooleanConstructor, boolean | (() => true) | (() => false) | undefined, unknown, unknown, unknown>;
|
|
5
5
|
persistent: BooleanConstructor;
|
|
@@ -7,6 +7,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
7
7
|
visible: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<boolean | null>, (() => null) | null | undefined, unknown, unknown, unknown>;
|
|
8
8
|
transition: import("../../../utils/props").BuildPropReturn<StringConstructor, string | (() => string) | undefined, unknown, unknown, unknown>;
|
|
9
9
|
teleported: import("../../../utils/props").BuildPropReturn<BooleanConstructor, boolean | (() => true) | (() => false) | undefined, unknown, unknown, unknown>;
|
|
10
|
+
disabled: import("../../../utils/props").BuildPropReturn<BooleanConstructor, boolean | (() => true) | (() => false) | undefined, unknown, unknown, unknown>;
|
|
10
11
|
style: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<import("vue").StyleValue>, string | import("vue").CSSProperties | (() => string) | (() => import("vue").CSSProperties) | (() => import("vue").StyleValue[]) | undefined, unknown, unknown, unknown>;
|
|
11
12
|
className: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<string | {
|
|
12
13
|
[x: string]: any;
|
|
@@ -500,7 +501,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
500
501
|
errorCaptured?: (((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}>> | null, info: string) => boolean | void)[]) | undefined;
|
|
501
502
|
};
|
|
502
503
|
$forceUpdate: () => void;
|
|
503
|
-
$nextTick: typeof nextTick;
|
|
504
|
+
$nextTick: typeof import("vue").nextTick;
|
|
504
505
|
$watch(source: string | Function, cb: Function, options?: import("vue").WatchOptions<boolean> | undefined): import("vue").WatchStopHandle;
|
|
505
506
|
} & Readonly<{
|
|
506
507
|
style?: unknown;
|
|
@@ -621,15 +622,16 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
621
622
|
} | any)[])[])[])[])[])[])[])[])[])[])[])[]>;
|
|
622
623
|
updatePopper: () => void;
|
|
623
624
|
}> & {} & {} & import("vue").ComponentCustomProperties) | null>;
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
shouldShowPopperContent: import("vue").ComputedRef<boolean>;
|
|
625
|
+
shouldRender: import("vue").ComputedRef<boolean>;
|
|
626
|
+
shouldShow: import("vue").ComputedRef<boolean>;
|
|
627
627
|
open: import("vue").Ref<boolean>;
|
|
628
|
-
|
|
628
|
+
onAfterShow: () => void;
|
|
629
|
+
onBeforeEnter: () => void;
|
|
629
630
|
onContentEnter: (event: unknown) => void;
|
|
630
631
|
onContentLeave: (event: unknown) => void;
|
|
631
632
|
onTransitionLeave: () => void;
|
|
632
633
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
634
|
+
appendTo?: unknown;
|
|
633
635
|
content?: unknown;
|
|
634
636
|
rawContent?: unknown;
|
|
635
637
|
persistent?: unknown;
|
|
@@ -637,6 +639,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
637
639
|
visible?: unknown;
|
|
638
640
|
transition?: unknown;
|
|
639
641
|
teleported?: unknown;
|
|
642
|
+
disabled?: unknown;
|
|
640
643
|
style?: unknown;
|
|
641
644
|
className?: unknown;
|
|
642
645
|
effect?: unknown;
|
|
@@ -687,7 +690,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
687
690
|
} | (string | {
|
|
688
691
|
[x: string]: any;
|
|
689
692
|
} | any)[])[])[])[])[])[])[])[])[])[])[];
|
|
693
|
+
disabled: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
690
694
|
effect: string;
|
|
695
|
+
appendTo: import("../../../utils/props").BuildPropType<import("../../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
691
696
|
showAfter: number;
|
|
692
697
|
hideAfter: number;
|
|
693
698
|
placement: import("../../../utils/props").BuildPropType<(new (...args: any[]) => import("../../../utils/props").BuildPropType<StringConstructor, import("@element-plus/components/popper").Placement, unknown> & {}) | (() => import("../../../utils/props").BuildPropType<StringConstructor, import("@element-plus/components/popper").Placement, unknown>) | ((new (...args: any[]) => import("../../../utils/props").BuildPropType<StringConstructor, import("@element-plus/components/popper").Placement, unknown> & {}) | (() => import("../../../utils/props").BuildPropType<StringConstructor, import("@element-plus/components/popper").Placement, unknown>))[], unknown, unknown>;
|
|
@@ -763,7 +768,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
763
768
|
} | (string | {
|
|
764
769
|
[x: string]: any;
|
|
765
770
|
} | any)[])[])[])[])[])[])[])[])[])[])[];
|
|
771
|
+
disabled: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
766
772
|
effect: string;
|
|
773
|
+
appendTo: import("../../../utils/props").BuildPropType<import("../../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
767
774
|
showAfter: number;
|
|
768
775
|
hideAfter: number;
|
|
769
776
|
placement: import("../../../utils/props").BuildPropType<(new (...args: any[]) => import("../../../utils/props").BuildPropType<StringConstructor, import("@element-plus/components/popper").Placement, unknown> & {}) | (() => import("../../../utils/props").BuildPropType<StringConstructor, import("@element-plus/components/popper").Placement, unknown>) | ((new (...args: any[]) => import("../../../utils/props").BuildPropType<StringConstructor, import("@element-plus/components/popper").Placement, unknown> & {}) | (() => import("../../../utils/props").BuildPropType<StringConstructor, import("@element-plus/components/popper").Placement, unknown>))[], unknown, unknown>;
|
|
@@ -3,23 +3,20 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
+
var core = require('@vueuse/core');
|
|
6
7
|
require('../../popper/index.js');
|
|
7
8
|
require('../../visual-hidden/index.js');
|
|
8
|
-
var index = require('../../teleport/index.js');
|
|
9
9
|
var dom = require('../../../utils/dom.js');
|
|
10
10
|
require('../../../hooks/index.js');
|
|
11
11
|
var tooltip = require('./tooltip.js');
|
|
12
12
|
var tokens = require('./tokens.js');
|
|
13
13
|
var content_vue_vue_type_script_lang = require('../../popper/src/content.vue_vue_type_script_lang.js');
|
|
14
14
|
var visualHidden_vue_vue_type_script_lang = require('../../visual-hidden/src/visual-hidden.vue_vue_type_script_lang.js');
|
|
15
|
-
var index
|
|
16
|
-
var index$2 = require('../../../hooks/use-intermediate-render/index.js');
|
|
17
|
-
var index$3 = require('../../../hooks/use-popper-container/index.js');
|
|
15
|
+
var index = require('../../../hooks/use-escape-keydown/index.js');
|
|
18
16
|
|
|
19
17
|
var script = vue.defineComponent({
|
|
20
18
|
name: "ElTooltipContent",
|
|
21
19
|
components: {
|
|
22
|
-
ElTeleport: index.ElTeleport,
|
|
23
20
|
ElPopperContent: content_vue_vue_type_script_lang["default"],
|
|
24
21
|
ElVisuallyHidden: visualHidden_vue_vue_type_script_lang["default"]
|
|
25
22
|
},
|
|
@@ -37,76 +34,27 @@ var script = vue.defineComponent({
|
|
|
37
34
|
}
|
|
38
35
|
return props.persistent;
|
|
39
36
|
});
|
|
37
|
+
const shouldRender = vue.computed(() => {
|
|
38
|
+
return vue.unref(persistentRef) ? true : vue.unref(open);
|
|
39
|
+
});
|
|
40
|
+
const shouldShow = vue.computed(() => {
|
|
41
|
+
return props.disabled ? false : vue.unref(open);
|
|
42
|
+
});
|
|
40
43
|
const contentStyle = vue.computed(() => {
|
|
41
44
|
var _a;
|
|
42
45
|
return (_a = props.style) != null ? _a : {};
|
|
43
46
|
});
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
return true;
|
|
47
|
-
return vue.unref(vue.unref(entering) ? open : intermediateOpen);
|
|
48
|
-
});
|
|
49
|
-
const shouldRenderPopperContent = vue.computed(() => {
|
|
50
|
-
if (vue.unref(persistentRef))
|
|
51
|
-
return true;
|
|
52
|
-
return vue.unref(vue.unref(leaving) ? open : intermediateOpen);
|
|
53
|
-
});
|
|
54
|
-
const shouldShowPopperContent = vue.computed(() => {
|
|
55
|
-
if (vue.unref(persistentRef)) {
|
|
56
|
-
return vue.unref(vue.unref(leaving) ? open : intermediateOpen);
|
|
57
|
-
}
|
|
58
|
-
return true;
|
|
59
|
-
});
|
|
60
|
-
const ariaHidden = vue.computed(() => !(vue.unref(shouldRenderPopperContent) && vue.unref(shouldShowPopperContent)));
|
|
61
|
-
index$1.useEscapeKeydown(onClose);
|
|
62
|
-
index$2.useDelayedRender({
|
|
63
|
-
indicator: open,
|
|
64
|
-
intermediateIndicator: intermediateOpen,
|
|
65
|
-
shouldSetIntermediate: (step) => {
|
|
66
|
-
return step === "hide" ? false : true;
|
|
67
|
-
},
|
|
68
|
-
beforeShow: () => {
|
|
69
|
-
if (vue.unref(leaving)) {
|
|
70
|
-
leaving.value = false;
|
|
71
|
-
intermediateOpen.value = false;
|
|
72
|
-
}
|
|
73
|
-
entering.value = true;
|
|
74
|
-
},
|
|
75
|
-
beforeHide: () => {
|
|
76
|
-
if (vue.unref(entering)) {
|
|
77
|
-
entering.value = false;
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
leaving.value = true;
|
|
81
|
-
},
|
|
82
|
-
afterShow: () => {
|
|
83
|
-
if (!vue.unref(open))
|
|
84
|
-
return;
|
|
85
|
-
entering.value = false;
|
|
86
|
-
onShow();
|
|
87
|
-
vue.nextTick(() => {
|
|
88
|
-
var _a;
|
|
89
|
-
(_a = vue.unref(contentRef)) == null ? void 0 : _a.updatePopper();
|
|
90
|
-
});
|
|
91
|
-
},
|
|
92
|
-
afterHide: () => {
|
|
93
|
-
if (vue.unref(open))
|
|
94
|
-
return;
|
|
95
|
-
onHide();
|
|
96
|
-
}
|
|
97
|
-
});
|
|
47
|
+
const ariaHidden = vue.computed(() => !vue.unref(open));
|
|
48
|
+
index.useEscapeKeydown(onClose);
|
|
98
49
|
const onTransitionLeave = () => {
|
|
99
|
-
|
|
100
|
-
return;
|
|
101
|
-
leaving.value = false;
|
|
102
|
-
intermediateOpen.value = false;
|
|
50
|
+
onHide();
|
|
103
51
|
};
|
|
104
52
|
const stopWhenControlled = () => {
|
|
105
53
|
if (vue.unref(controlled))
|
|
106
54
|
return true;
|
|
107
55
|
};
|
|
108
56
|
const onContentEnter = dom.composeEventHandlers(stopWhenControlled, () => {
|
|
109
|
-
if (props.enterable) {
|
|
57
|
+
if (props.enterable && vue.unref(trigger) === "hover") {
|
|
110
58
|
onOpen();
|
|
111
59
|
}
|
|
112
60
|
});
|
|
@@ -115,6 +63,33 @@ var script = vue.defineComponent({
|
|
|
115
63
|
onClose();
|
|
116
64
|
}
|
|
117
65
|
});
|
|
66
|
+
const onBeforeEnter = () => {
|
|
67
|
+
var _a, _b;
|
|
68
|
+
(_b = (_a = contentRef.value) == null ? void 0 : _a.updatePopper) == null ? void 0 : _b.call(_a);
|
|
69
|
+
};
|
|
70
|
+
const onAfterShow = () => {
|
|
71
|
+
onShow();
|
|
72
|
+
};
|
|
73
|
+
let stopHandle;
|
|
74
|
+
vue.watch(() => vue.unref(open), (val) => {
|
|
75
|
+
if (val) {
|
|
76
|
+
stopHandle = core.onClickOutside(vue.computed(() => {
|
|
77
|
+
var _a;
|
|
78
|
+
return (_a = contentRef.value) == null ? void 0 : _a.popperContentRef;
|
|
79
|
+
}), () => {
|
|
80
|
+
if (vue.unref(controlled))
|
|
81
|
+
return;
|
|
82
|
+
const $trigger = vue.unref(trigger);
|
|
83
|
+
if ($trigger !== "hover") {
|
|
84
|
+
onClose();
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
} else {
|
|
88
|
+
stopHandle == null ? void 0 : stopHandle();
|
|
89
|
+
}
|
|
90
|
+
}, {
|
|
91
|
+
flush: "post"
|
|
92
|
+
});
|
|
118
93
|
return {
|
|
119
94
|
ariaHidden,
|
|
120
95
|
entering,
|
|
@@ -123,11 +98,11 @@ var script = vue.defineComponent({
|
|
|
123
98
|
intermediateOpen,
|
|
124
99
|
contentStyle,
|
|
125
100
|
contentRef,
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
shouldShowPopperContent,
|
|
101
|
+
shouldRender,
|
|
102
|
+
shouldShow,
|
|
129
103
|
open,
|
|
130
|
-
|
|
104
|
+
onAfterShow,
|
|
105
|
+
onBeforeEnter,
|
|
131
106
|
onContentEnter,
|
|
132
107
|
onContentLeave,
|
|
133
108
|
onTransitionLeave
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.vue_vue_type_script_lang.js","sources":["../../../../../../packages/components/tooltip/src/content.vue"],"sourcesContent":["<template>\n <
|
|
1
|
+
{"version":3,"file":"content.vue_vue_type_script_lang.js","sources":["../../../../../../packages/components/tooltip/src/content.vue"],"sourcesContent":["<template>\n <teleport :disabled=\"!teleported\" :to=\"appendTo\">\n <transition\n :name=\"transition\"\n @after-leave=\"onTransitionLeave\"\n @before-enter=\"onBeforeEnter\"\n @after-enter=\"onAfterShow\"\n >\n <el-popper-content\n v-if=\"shouldRender\"\n v-show=\"shouldShow\"\n ref=\"contentRef\"\n v-bind=\"$attrs\"\n :aria-hidden=\"ariaHidden\"\n :boundaries-padding=\"boundariesPadding\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"gpuAcceleration\"\n :offset=\"offset\"\n :placement=\"placement\"\n :popper-options=\"popperOptions\"\n :strategy=\"strategy\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :pure=\"pure\"\n :popper-class=\"popperClass\"\n :popper-style=\"[popperStyle, contentStyle]\"\n :reference-el=\"referenceEl\"\n :z-index=\"zIndex\"\n @mouseenter=\"onContentEnter\"\n @mouseleave=\"onContentLeave\"\n >\n <slot />\n <el-visually-hidden :id=\"id\" role=\"tooltip\">\n {{ ariaLabel }}\n </el-visually-hidden>\n </el-popper-content>\n </transition>\n </teleport>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject, ref, unref, watch } from 'vue'\nimport { onClickOutside } from '@vueuse/core'\nimport { ElPopperContent } from '@element-plus/components/popper'\nimport { ElVisuallyHidden } from '@element-plus/components/visual-hidden'\nimport { composeEventHandlers } from '@element-plus/utils/dom'\nimport { useEscapeKeydown } from '@element-plus/hooks'\n\nimport { useTooltipContentProps } from './tooltip'\nimport { TOOLTIP_INJECTION_KEY } from './tokens'\n\nexport default defineComponent({\n name: 'ElTooltipContent',\n components: {\n ElPopperContent,\n ElVisuallyHidden,\n },\n inheritAttrs: false,\n props: useTooltipContentProps,\n setup(props) {\n const contentRef = ref<InstanceType<typeof ElPopperContent> | null>(null)\n const intermediateOpen = ref(false)\n const entering = ref(false)\n const leaving = ref(false)\n const { controlled, id, open, trigger, onClose, onOpen, onShow, onHide } =\n inject(TOOLTIP_INJECTION_KEY, undefined)!\n const persistentRef = computed(() => {\n // For testing, we would always want the content to be rendered\n // to the DOM, so we need to return true here.\n if (process.env.NODE_ENV === 'test') {\n return true\n }\n return props.persistent\n })\n\n const shouldRender = computed(() => {\n return unref(persistentRef) ? true : unref(open)\n })\n\n const shouldShow = computed(() => {\n return props.disabled ? false : unref(open)\n })\n\n const contentStyle = computed(() => (props.style ?? {}) as any)\n\n const ariaHidden = computed(() => !unref(open))\n\n useEscapeKeydown(onClose)\n\n const onTransitionLeave = () => {\n onHide()\n }\n\n const stopWhenControlled = () => {\n if (unref(controlled)) return true\n }\n\n const onContentEnter = composeEventHandlers(stopWhenControlled, () => {\n if (props.enterable && unref(trigger) === 'hover') {\n onOpen()\n }\n })\n\n const onContentLeave = composeEventHandlers(stopWhenControlled, () => {\n if (unref(trigger) === 'hover') {\n onClose()\n }\n })\n\n const onBeforeEnter = () => {\n contentRef.value?.updatePopper?.()\n }\n\n const onAfterShow = () => {\n onShow()\n }\n\n let stopHandle: ReturnType<typeof onClickOutside>\n\n watch(\n () => unref(open),\n (val) => {\n if (val) {\n stopHandle = onClickOutside(\n computed(() => {\n return contentRef.value?.popperContentRef\n }),\n () => {\n if (unref(controlled)) return\n const $trigger = unref(trigger)\n if ($trigger !== 'hover') {\n onClose()\n }\n }\n )\n } else {\n stopHandle?.()\n }\n },\n {\n flush: 'post',\n }\n )\n\n return {\n ariaHidden,\n entering,\n leaving,\n id,\n intermediateOpen,\n contentStyle,\n contentRef,\n shouldRender,\n shouldShow,\n open,\n onAfterShow,\n onBeforeEnter,\n onContentEnter,\n onContentLeave,\n onTransitionLeave,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElPopperContent","ElVisuallyHidden","useTooltipContentProps","ref","computed","unref","useEscapeKeydown","composeEventHandlers"],"mappings":";;;;;;;;;;;;;;;;AAgDA,aAAeA,mBAAe;AAC9B,EAAE,wBAAwB;;AAE1B,qBAAIC,2CAAe;sBACfC,gDAAgB;GACjB;cACW,EAAE;OACT,EAAEC;EACP;IACE,MAAM,UAAU;IAChB,MAAM,gBAAgB,GAAGC;IACzB,MAAM;IACN,MAAM,OAAO,UAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC9B,MAAM,aAAa,GAAGC;MACpB,IAAI,QAAQ,GAAG,CAAC;QACd,OAAO,IAAI,CAAC;OACb;MACD,OAAO,KAAK,CAAC,UAAU,CAAC;MACxB,CAAC;UACG,YAAY,GAAGA,YAAQ,OAAO;MAClC,OAAOC,SAAK,CAAC,aAAa,CAAC,GAAG,IAAI,GAAGA;;;MAGrC,OAAO,KAAK,CAAC,QAAQ;KACtB;;MAEC,IAAI,EAAE,CAAC;MACP,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,SAAS,KAAK,GAAG,EAAE,CAAC;KAC7C;;IAEDC,uBAAiB,OAAO,CAAC,CAAC;UACpB,oBAAoB,MAAM;;;IAGhC,MAAM,kBAAkB,GAAG,MAAM;;QAE7B,OAAO,IAAI;;IAEf,MAAM,cAAc,GAAGC;;QAEnB,MAAM,EAAE,CAAC;OACV;;;MAGD,IAAIF,SAAK,CAAC,OAAO,CAAC,KAAK;eACd,EAAE,CAAC;;;IAGd,MAAM,aAAa,SAAS;MAC1B,IAAI,EAAE,EAAE,EAAE,CAAC;SACR,GAAG,CAAC,EAAE;MACT;IACF;;KAEC,CAAC;kBACY,CAAC;aACV,CAAC,MAAMA;MACV;;;UAGI,OAAO,CAAC,EAAE;SACX,CAAC,EAAE,MAAM;;;UAGR,MAAM,QAAQ,GAAGA;UACjB;;;SAGD,CAAC,CAAC;;QAEH;OACD;OACA;WACI,EAAE;;;gBAGG;cACF;aACD;;sBAES;kBACJ;gBACF;;;UAGN;;mBAES;;MAEb;MACA;;;;;;;"}
|
|
@@ -7,62 +7,59 @@ var vue = require('vue');
|
|
|
7
7
|
function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
8
8
|
const _component_el_visually_hidden = vue.resolveComponent("el-visually-hidden");
|
|
9
9
|
const _component_el_popper_content = vue.resolveComponent("el-popper-content");
|
|
10
|
-
|
|
11
|
-
return _ctx.shouldRenderTeleport ? (vue.openBlock(), vue.createBlock(_component_el_teleport, {
|
|
12
|
-
key: 0,
|
|
10
|
+
return vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
13
11
|
disabled: !_ctx.teleported,
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
])
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
]),
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
])
|
|
64
|
-
|
|
65
|
-
}, 8, ["disabled", "container"])) : vue.createCommentVNode("v-if", true);
|
|
12
|
+
to: _ctx.appendTo
|
|
13
|
+
}, [
|
|
14
|
+
vue.createVNode(vue.Transition, {
|
|
15
|
+
name: _ctx.transition,
|
|
16
|
+
onAfterLeave: _ctx.onTransitionLeave,
|
|
17
|
+
onBeforeEnter: _ctx.onBeforeEnter,
|
|
18
|
+
onAfterEnter: _ctx.onAfterShow
|
|
19
|
+
}, {
|
|
20
|
+
default: vue.withCtx(() => [
|
|
21
|
+
_ctx.shouldRender ? vue.withDirectives((vue.openBlock(), vue.createBlock(_component_el_popper_content, vue.mergeProps({
|
|
22
|
+
key: 0,
|
|
23
|
+
ref: "contentRef"
|
|
24
|
+
}, _ctx.$attrs, {
|
|
25
|
+
"aria-hidden": _ctx.ariaHidden,
|
|
26
|
+
"boundaries-padding": _ctx.boundariesPadding,
|
|
27
|
+
"fallback-placements": _ctx.fallbackPlacements,
|
|
28
|
+
"gpu-acceleration": _ctx.gpuAcceleration,
|
|
29
|
+
offset: _ctx.offset,
|
|
30
|
+
placement: _ctx.placement,
|
|
31
|
+
"popper-options": _ctx.popperOptions,
|
|
32
|
+
strategy: _ctx.strategy,
|
|
33
|
+
effect: _ctx.effect,
|
|
34
|
+
enterable: _ctx.enterable,
|
|
35
|
+
pure: _ctx.pure,
|
|
36
|
+
"popper-class": _ctx.popperClass,
|
|
37
|
+
"popper-style": [_ctx.popperStyle, _ctx.contentStyle],
|
|
38
|
+
"reference-el": _ctx.referenceEl,
|
|
39
|
+
"z-index": _ctx.zIndex,
|
|
40
|
+
onMouseenter: _ctx.onContentEnter,
|
|
41
|
+
onMouseleave: _ctx.onContentLeave
|
|
42
|
+
}), {
|
|
43
|
+
default: vue.withCtx(() => [
|
|
44
|
+
vue.renderSlot(_ctx.$slots, "default"),
|
|
45
|
+
vue.createVNode(_component_el_visually_hidden, {
|
|
46
|
+
id: _ctx.id,
|
|
47
|
+
role: "tooltip"
|
|
48
|
+
}, {
|
|
49
|
+
default: vue.withCtx(() => [
|
|
50
|
+
vue.createTextVNode(vue.toDisplayString(_ctx.ariaLabel), 1)
|
|
51
|
+
]),
|
|
52
|
+
_: 1
|
|
53
|
+
}, 8, ["id"])
|
|
54
|
+
]),
|
|
55
|
+
_: 3
|
|
56
|
+
}, 16, ["aria-hidden", "boundaries-padding", "fallback-placements", "gpu-acceleration", "offset", "placement", "popper-options", "strategy", "effect", "enterable", "pure", "popper-class", "popper-style", "reference-el", "z-index", "onMouseenter", "onMouseleave"])), [
|
|
57
|
+
[vue.vShow, _ctx.shouldShow]
|
|
58
|
+
]) : vue.createCommentVNode("v-if", true)
|
|
59
|
+
]),
|
|
60
|
+
_: 3
|
|
61
|
+
}, 8, ["name", "onAfterLeave", "onBeforeEnter", "onAfterEnter"])
|
|
62
|
+
], 8, ["disabled", "to"]);
|
|
66
63
|
}
|
|
67
64
|
|
|
68
65
|
exports.render = render;
|