{"version":3,"file":"select.mjs","names":[],"sources":["../../../../../../packages/components/select-v2/src/select.vue"],"sourcesContent":["<template>\n  <div\n    ref=\"selectRef\"\n    v-click-outside:[popperRef]=\"handleClickOutside\"\n    :class=\"[nsSelect.b(), nsSelect.m(selectSize)]\"\n    @mouseenter=\"states.inputHovering = true\"\n    @mouseleave=\"states.inputHovering = false\"\n  >\n    <el-tooltip\n      ref=\"tooltipRef\"\n      :visible=\"dropdownMenuVisible\"\n      :teleported=\"teleported\"\n      :popper-class=\"[nsSelect.e('popper'), popperClass!]\"\n      :popper-style=\"popperStyle\"\n      :gpu-acceleration=\"false\"\n      :stop-popper-mouse-event=\"false\"\n      :popper-options=\"popperOptions\"\n      :fallback-placements=\"fallbackPlacements\"\n      :effect=\"effect\"\n      :placement=\"placement\"\n      pure\n      :transition=\"`${nsSelect.namespace.value}-zoom-in-top`\"\n      trigger=\"click\"\n      :persistent=\"persistent\"\n      :append-to=\"appendTo\"\n      :show-arrow=\"showArrow\"\n      :offset=\"offset\"\n      @before-show=\"handleMenuEnter\"\n      @hide=\"states.isBeforeHide = false\"\n    >\n      <template #default>\n        <div\n          ref=\"wrapperRef\"\n          :class=\"[\n            nsSelect.e('wrapper'),\n            nsSelect.is('focused', isFocused),\n            nsSelect.is('hovering', states.inputHovering),\n            nsSelect.is('filterable', filterable),\n            nsSelect.is('disabled', selectDisabled),\n          ]\"\n          @click.prevent=\"toggleMenu\"\n        >\n          <div\n            v-if=\"$slots.prefix\"\n            ref=\"prefixRef\"\n            :class=\"nsSelect.e('prefix')\"\n          >\n            <slot name=\"prefix\" />\n          </div>\n          <div\n            ref=\"selectionRef\"\n            :class=\"[\n              nsSelect.e('selection'),\n              nsSelect.is(\n                'near',\n                multiple && !$slots.prefix && !!modelValue.length\n              ),\n            ]\"\n          >\n            <slot\n              v-if=\"multiple\"\n              name=\"tag\"\n              :data=\"states.cachedOptions\"\n              :delete-tag=\"deleteTag\"\n              :select-disabled=\"selectDisabled\"\n            >\n              <div\n                v-for=\"item in showTagList\"\n                :key=\"getValueKey(getValue(item))\"\n                :class=\"nsSelect.e('selected-item')\"\n              >\n                <el-tag\n                  :closable=\"!selectDisabled && !getDisabled(item)\"\n                  :size=\"collapseTagSize\"\n                  :type=\"tagType\"\n                  :effect=\"tagEffect\"\n                  disable-transitions\n                  :style=\"tagStyle\"\n                  @close=\"deleteTag($event, item)\"\n                >\n                  <span :class=\"nsSelect.e('tags-text')\">\n                    <slot\n                      name=\"label\"\n                      :index=\"getIndex(item)\"\n                      :label=\"getLabel(item)\"\n                      :value=\"getValue(item)\"\n                    >\n                      {{ getLabel(item) }}\n                    </slot>\n                  </span>\n                </el-tag>\n              </div>\n\n              <el-tooltip\n                v-if=\"\n                  collapseTags && states.cachedOptions.length > maxCollapseTags\n                \"\n                ref=\"tagTooltipRef\"\n                :disabled=\"dropdownMenuVisible || !collapseTagsTooltip\"\n                :fallback-placements=\"\n                  tagTooltip?.fallbackPlacements ?? [\n                    'bottom',\n                    'top',\n                    'right',\n                    'left',\n                  ]\n                \"\n                :effect=\"tagTooltip?.effect ?? effect\"\n                :placement=\"tagTooltip?.placement ?? 'bottom'\"\n                :popper-class=\"tagTooltip?.popperClass ?? popperClass\"\n                :popper-style=\"tagTooltip?.popperStyle ?? popperStyle\"\n                :teleported=\"tagTooltip?.teleported ?? teleported\"\n                :append-to=\"tagTooltip?.appendTo ?? appendTo\"\n                :popper-options=\"tagTooltip?.popperOptions ?? popperOptions\"\n                :transition=\"tagTooltip?.transition\"\n                :show-after=\"tagTooltip?.showAfter\"\n                :hide-after=\"tagTooltip?.hideAfter\"\n                :auto-close=\"tagTooltip?.autoClose\"\n                :offset=\"tagTooltip?.offset\"\n              >\n                <template #default>\n                  <div\n                    ref=\"collapseItemRef\"\n                    :class=\"nsSelect.e('selected-item')\"\n                  >\n                    <el-tag\n                      :closable=\"false\"\n                      :size=\"collapseTagSize\"\n                      :type=\"tagType\"\n                      :effect=\"tagEffect\"\n                      :style=\"collapseTagStyle\"\n                      disable-transitions\n                    >\n                      <span :class=\"nsSelect.e('tags-text')\">\n                        + {{ states.cachedOptions.length - maxCollapseTags }}\n                      </span>\n                    </el-tag>\n                  </div>\n                </template>\n                <template #content>\n                  <div ref=\"tagMenuRef\" :class=\"nsSelect.e('selection')\">\n                    <div\n                      v-for=\"selected in collapseTagList\"\n                      :key=\"getValueKey(getValue(selected))\"\n                      :class=\"nsSelect.e('selected-item')\"\n                    >\n                      <el-tag\n                        class=\"in-tooltip\"\n                        :closable=\"!selectDisabled && !getDisabled(selected)\"\n                        :size=\"collapseTagSize\"\n                        :type=\"tagType\"\n                        :effect=\"tagEffect\"\n                        disable-transitions\n                        @close=\"deleteTag($event, selected)\"\n                      >\n                        <span :class=\"nsSelect.e('tags-text')\">\n                          <slot\n                            name=\"label\"\n                            :index=\"getIndex(selected)\"\n                            :label=\"getLabel(selected)\"\n                            :value=\"getValue(selected)\"\n                          >\n                            {{ getLabel(selected) }}\n                          </slot>\n                        </span>\n                      </el-tag>\n                    </div>\n                  </div>\n                </template>\n              </el-tooltip>\n            </slot>\n            <div\n              :class=\"[\n                nsSelect.e('selected-item'),\n                nsSelect.e('input-wrapper'),\n                nsSelect.is(\n                  'hidden',\n                  !filterable ||\n                    selectDisabled ||\n                    (!states.inputValue && !isFocused)\n                ),\n              ]\"\n            >\n              <input\n                :id=\"inputId\"\n                ref=\"inputRef\"\n                :value=\"states.inputValue\"\n                :style=\"inputStyle\"\n                :autocomplete=\"autocomplete\"\n                :tabindex=\"tabindex\"\n                aria-autocomplete=\"none\"\n                aria-haspopup=\"listbox\"\n                autocapitalize=\"off\"\n                :aria-expanded=\"expanded\"\n                :aria-label=\"ariaLabel\"\n                :class=\"[nsSelect.e('input'), nsSelect.is(selectSize)]\"\n                :disabled=\"selectDisabled\"\n                role=\"combobox\"\n                :aria-controls=\"contentId\"\n                :aria-activedescendant=\"\n                  states.hoveringIndex >= 0\n                    ? `${contentId}-${states.hoveringIndex}`\n                    : ''\n                \"\n                :readonly=\"!filterable\"\n                spellcheck=\"false\"\n                type=\"text\"\n                :name=\"name\"\n                @input=\"onInput\"\n                @change.stop\n                @compositionstart=\"handleCompositionStart\"\n                @compositionupdate=\"handleCompositionUpdate\"\n                @compositionend=\"handleCompositionEnd\"\n                @keydown.up.stop.prevent=\"onKeyboardNavigate('backward')\"\n                @keydown.down.stop.prevent=\"onKeyboardNavigate('forward')\"\n                @keydown.enter.stop.prevent=\"onKeyboardSelect\"\n                @keydown.esc.stop.prevent=\"handleEsc\"\n                @keydown.delete.stop=\"handleDel\"\n                @click.stop=\"toggleMenu\"\n              />\n              <span\n                v-if=\"filterable\"\n                ref=\"calculatorRef\"\n                aria-hidden=\"true\"\n                :class=\"nsSelect.e('input-calculator')\"\n                v-text=\"states.inputValue\"\n              />\n            </div>\n            <div\n              v-if=\"shouldShowPlaceholder\"\n              :class=\"[\n                nsSelect.e('selected-item'),\n                nsSelect.e('placeholder'),\n                nsSelect.is(\n                  'transparent',\n                  !hasModelValue || (expanded && !states.inputValue)\n                ),\n              ]\"\n            >\n              <slot\n                v-if=\"hasModelValue\"\n                name=\"label\"\n                :index=\"allOptionsValueMap.get(modelValue)?.index ?? -1\"\n                :label=\"currentPlaceholder\"\n                :value=\"modelValue\"\n              >\n                <span>{{ currentPlaceholder }}</span>\n              </slot>\n              <span v-else>{{ currentPlaceholder }}</span>\n            </div>\n          </div>\n          <div ref=\"suffixRef\" :class=\"nsSelect.e('suffix')\">\n            <el-icon\n              v-if=\"iconComponent\"\n              v-show=\"!showClearBtn\"\n              :class=\"[nsSelect.e('caret'), nsInput.e('icon'), iconReverse]\"\n            >\n              <component :is=\"iconComponent\" />\n            </el-icon>\n            <el-icon\n              v-if=\"showClearBtn && clearIcon\"\n              :class=\"[\n                nsSelect.e('caret'),\n                nsInput.e('icon'),\n                nsSelect.e('clear'),\n              ]\"\n              @click.prevent.stop=\"handleClear\"\n            >\n              <component :is=\"clearIcon\" />\n            </el-icon>\n            <el-icon\n              v-if=\"validateState && validateIcon && needStatusIcon\"\n              :class=\"[\n                nsInput.e('icon'),\n                nsInput.e('validateIcon'),\n                nsInput.is('loading', validateState === 'validating'),\n              ]\"\n            >\n              <component :is=\"validateIcon\" />\n            </el-icon>\n          </div>\n        </div>\n      </template>\n      <template #content>\n        <el-select-menu\n          :id=\"contentId\"\n          ref=\"menuRef\"\n          :data=\"filteredOptions\"\n          :width=\"popperSize - BORDER_HORIZONTAL_WIDTH\"\n          :hovering-index=\"states.hoveringIndex\"\n          :scrollbar-always-on=\"scrollbarAlwaysOn\"\n          :aria-label=\"ariaLabel\"\n        >\n          <template v-if=\"$slots.header\" #header>\n            <div :class=\"nsSelect.be('dropdown', 'header')\" @click.stop>\n              <slot name=\"header\" />\n            </div>\n          </template>\n          <template #default=\"scope\">\n            <slot v-bind=\"scope\" />\n          </template>\n          <template v-if=\"$slots.loading && loading\" #loading>\n            <div :class=\"nsSelect.be('dropdown', 'loading')\">\n              <slot name=\"loading\" />\n            </div>\n          </template>\n          <template v-else-if=\"loading || filteredOptions.length === 0\" #empty>\n            <div :class=\"nsSelect.be('dropdown', 'empty')\">\n              <slot name=\"empty\">\n                <span>{{ emptyText }}</span>\n              </slot>\n            </div>\n          </template>\n          <template v-if=\"$slots.footer\" #footer>\n            <div :class=\"nsSelect.be('dropdown', 'footer')\" @click.stop>\n              <slot name=\"footer\" />\n            </div>\n          </template>\n        </el-select-menu>\n      </template>\n    </el-tooltip>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, provide, reactive, toRefs } from 'vue'\nimport { isArray } from '@element-plus/utils'\nimport { ClickOutside } from '@element-plus/directives'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { useCalcInputWidth, useId } from '@element-plus/hooks'\nimport ElSelectMenu from './select-dropdown'\nimport useSelect from './useSelect'\nimport { selectV2Emits, selectV2Props } from './defaults'\nimport { selectV2InjectionKey } from './token'\nimport { BORDER_HORIZONTAL_WIDTH } from '@element-plus/constants'\n\nexport default defineComponent({\n  name: 'ElSelectV2',\n  components: {\n    ElSelectMenu,\n    ElTag,\n    ElTooltip,\n    ElIcon,\n  },\n  directives: { ClickOutside },\n  props: selectV2Props,\n  emits: selectV2Emits,\n  setup(props, { emit }) {\n    const modelValue = computed(() => {\n      const { modelValue: rawModelValue, multiple } = props\n      const fallback = multiple ? [] : undefined\n      // When it is array, we check if this is multi-select.\n      // Based on the result we get\n      if (isArray(rawModelValue)) {\n        return multiple ? rawModelValue : fallback\n      }\n      return multiple ? fallback : rawModelValue\n    })\n\n    const API = useSelect(\n      reactive({\n        ...toRefs(props),\n        modelValue,\n      }),\n      emit\n    )\n    const { calculatorRef, inputStyle } = useCalcInputWidth()\n    const contentId = useId()\n\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      contentId,\n      onSelect: API.onSelect,\n      onHover: API.onHover,\n      onKeyboardNavigate: API.onKeyboardNavigate,\n      onKeyboardSelect: API.onKeyboardSelect,\n    })\n\n    const selectedLabel = computed(() => {\n      if (!props.multiple) {\n        return API.states.selectedLabel\n      }\n      return API.states.cachedOptions.map((i) => API.getLabel(i) as string)\n    })\n\n    return {\n      ...API,\n      modelValue,\n      selectedLabel,\n      calculatorRef,\n      inputStyle,\n      contentId,\n      BORDER_HORIZONTAL_WIDTH,\n    }\n  },\n})\n</script>\n"],"mappings":"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"}