You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
38 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, computed, reactive, toRefs, provide, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, normalizeClass, createVNode, withCtx, createElementVNode, withModifiers, renderSlot, createCommentVNode, Fragment, renderList, normalizeStyle, createTextVNode, toDisplayString, createBlock, withKeys, vModelText, resolveDynamicComponent, vShow, createSlots, normalizeProps, guardReactiveProps } from 'vue';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport { ElTag } from '../../tag/index.mjs';\nimport { ElIcon } from '../../icon/index.mjs';\nimport ElSelectMenu from './select-dropdown.mjs';\nimport useSelect from './useSelect.mjs';\nimport { SelectProps, selectEmits } from './defaults.mjs';\nimport { selectV2InjectionKey } from './token.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport ClickOutside from '../../../directives/click-outside/index.mjs';\nimport { isArray } from '@vue/shared';\nimport { useCalcInputWidth } from '../../../hooks/use-calc-input-width/index.mjs';\nconst _sfc_main = defineComponent({\n name: \"ElSelectV2\",\n components: {\n ElSelectMenu,\n ElTag,\n ElTooltip,\n ElIcon\n },\n directives: {\n ClickOutside\n },\n props: SelectProps,\n emits: selectEmits,\n setup(props, {\n emit\n }) {\n const modelValue = computed(() => {\n const {\n modelValue: rawModelValue,\n multiple\n } = props;\n const fallback = multiple ? [] : void 0;\n if (isArray(rawModelValue)) {\n return multiple ? rawModelValue : fallback;\n }\n return multiple ? fallback : rawModelValue;\n });\n const API = useSelect(reactive({\n ...toRefs(props),\n modelValue\n }), emit);\n const {\n calculatorRef,\n inputStyle\n } = useCalcInputWidth();\n provide(selectV2InjectionKey, {\n props: reactive({\n ...toRefs(props),\n height: API.popupHeight,\n modelValue\n }),\n expanded: API.expanded,\n tooltipRef: API.tooltipRef,\n onSelect: API.onSelect,\n onHover: API.onHover,\n onKeyboardNavigate: API.onKeyboardNavigate,\n onKeyboardSelect: API.onKeyboardSelect\n });\n const selectedLabel = computed(() => {\n if (!props.multiple) {\n return API.states.selectedLabel;\n }\n return API.states.cachedOptions.map(i => i.label);\n });\n return {\n ...API,\n modelValue,\n selectedLabel,\n calculatorRef,\n inputStyle\n };\n }\n});\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_tag = resolveComponent(\"el-tag\");\n const _component_el_tooltip = resolveComponent(\"el-tooltip\");\n const _component_el_icon = resolveComponent(\"el-icon\");\n const _component_el_select_menu = resolveComponent(\"el-select-menu\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"div\", {\n ref: \"selectRef\",\n class: normalizeClass([_ctx.nsSelect.b(), _ctx.nsSelect.m(_ctx.selectSize)]),\n onMouseenter: $event => _ctx.states.inputHovering = true,\n onMouseleave: $event => _ctx.states.inputHovering = false\n }, [createVNode(_component_el_tooltip, {\n ref: \"tooltipRef\",\n visible: _ctx.dropdownMenuVisible,\n teleported: _ctx.teleported,\n \"popper-class\": [_ctx.nsSelect.e(\"popper\"), _ctx.popperClass],\n \"gpu-acceleration\": false,\n \"stop-popper-mouse-event\": false,\n \"popper-options\": _ctx.popperOptions,\n \"fallback-placements\": _ctx.fallbackPlacements,\n effect: _ctx.effect,\n placement: _ctx.placement,\n pure: \"\",\n transition: `${_ctx.nsSelect.namespace.value}-zoom-in-top`,\n trigger: \"click\",\n persistent: _ctx.persistent,\n \"append-to\": _ctx.appendTo,\n \"show-arrow\": _ctx.showArrow,\n offset: _ctx.offset,\n onBeforeShow: _ctx.handleMenuEnter,\n onHide: $event => _ctx.states.isBeforeHide = false\n }, {\n de