{"version":3,"file":"select2.mjs","names":[],"sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n  <div\n    ref=\"selectRef\"\n    v-click-outside:[popperRef]=\"handleClickOutside\"\n    :class=\"[nsSelect.b(), nsSelect.m(selectSize)]\"\n    @[mouseEnterEventName]=\"states.inputHovering = true\"\n    @mouseleave=\"states.inputHovering = false\"\n  >\n    <el-tooltip\n      ref=\"tooltipRef\"\n      :visible=\"dropdownMenuVisible\"\n      :placement=\"placement\"\n      :teleported=\"teleported\"\n      :popper-class=\"[nsSelect.e('popper'), popperClass]\"\n      :popper-style=\"popperStyle\"\n      :popper-options=\"popperOptions\"\n      :fallback-placements=\"fallbackPlacements\"\n      :effect=\"effect\"\n      pure\n      trigger=\"click\"\n      :transition=\"`${nsSelect.namespace.value}-zoom-in-top`\"\n      :stop-popper-mouse-event=\"false\"\n      :gpu-acceleration=\"false\"\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 && !!states.selected.length\n              ),\n            ]\"\n          >\n            <slot\n              v-if=\"multiple\"\n              name=\"tag\"\n              :data=\"states.selected\"\n              :delete-tag=\"deleteTag\"\n              :select-disabled=\"selectDisabled\"\n            >\n              <div\n                v-for=\"item in showTagList\"\n                :key=\"getValueKey(item)\"\n                :class=\"nsSelect.e('selected-item')\"\n              >\n                <el-tag\n                  :closable=\"!selectDisabled && !item.isDisabled\"\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=\"item.index\"\n                      :label=\"item.currentLabel\"\n                      :value=\"item.value\"\n                    >\n                      {{ item.currentLabel }}\n                    </slot>\n                  </span>\n                </el-tag>\n              </div>\n\n              <el-tooltip\n                v-if=\"collapseTags && states.selected.length > maxCollapseTags\"\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                      disable-transitions\n                      :style=\"collapseTagStyle\"\n                    >\n                      <span :class=\"nsSelect.e('tags-text')\">\n                        + {{ states.selected.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=\"item in collapseTagList\"\n                      :key=\"getValueKey(item)\"\n                      :class=\"nsSelect.e('selected-item')\"\n                    >\n                      <el-tag\n                        class=\"in-tooltip\"\n                        :closable=\"!selectDisabled && !item.isDisabled\"\n                        :size=\"collapseTagSize\"\n                        :type=\"tagType\"\n                        :effect=\"tagEffect\"\n                        disable-transitions\n                        @close=\"deleteTag($event, item)\"\n                      >\n                        <span :class=\"nsSelect.e('tags-text')\">\n                          <slot\n                            name=\"label\"\n                            :index=\"item.index\"\n                            :label=\"item.currentLabel\"\n                            :value=\"item.value\"\n                          >\n                            {{ item.currentLabel }}\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                type=\"text\"\n                :name=\"name\"\n                :class=\"[nsSelect.e('input'), nsSelect.is(selectSize)]\"\n                :disabled=\"selectDisabled\"\n                :autocomplete=\"autocomplete\"\n                :style=\"inputStyle\"\n                :tabindex=\"tabindex\"\n                role=\"combobox\"\n                :readonly=\"!filterable\"\n                spellcheck=\"false\"\n                :aria-activedescendant=\"hoverOption?.id || ''\"\n                :aria-controls=\"contentId\"\n                :aria-expanded=\"dropdownMenuVisible\"\n                :aria-label=\"ariaLabel\"\n                aria-autocomplete=\"none\"\n                aria-haspopup=\"listbox\"\n                @keydown=\"handleKeydown\"\n                @compositionstart=\"handleCompositionStart\"\n                @compositionupdate=\"handleCompositionUpdate\"\n                @compositionend=\"handleCompositionEnd\"\n                @input=\"onInput\"\n                @change.stop\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=\"getOption(modelValue!).index\"\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 && !showClearBtn\"\n              :class=\"[nsSelect.e('caret'), nsSelect.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                nsSelect.e('icon'),\n                nsSelect.e('clear'),\n              ]\"\n              @click=\"handleClearClick\"\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 ref=\"menuRef\">\n          <div\n            v-if=\"$slots.header\"\n            :class=\"nsSelect.be('dropdown', 'header')\"\n            @click.stop\n          >\n            <slot name=\"header\" />\n          </div>\n          <el-scrollbar\n            v-show=\"states.options.size > 0 && !loading\"\n            :id=\"contentId\"\n            ref=\"scrollbarRef\"\n            tag=\"ul\"\n            :wrap-class=\"nsSelect.be('dropdown', 'wrap')\"\n            :view-class=\"nsSelect.be('dropdown', 'list')\"\n            :class=\"[nsSelect.is('empty', filteredOptionsCount === 0)]\"\n            role=\"listbox\"\n            :aria-label=\"ariaLabel\"\n            aria-orientation=\"vertical\"\n            @scroll=\"popupScroll\"\n          >\n            <el-option\n              v-if=\"showNewOption\"\n              :value=\"states.inputValue\"\n              :created=\"true\"\n            />\n            <el-options>\n              <slot>\n                <template v-for=\"(option, index) in options\" :key=\"index\">\n                  <el-option-group\n                    v-if=\"getOptions(option)?.length\"\n                    :label=\"getLabel(option)\"\n                    :disabled=\"getDisabled(option)\"\n                  >\n                    <el-option\n                      v-for=\"item in getOptions(option)\"\n                      :key=\"getValue(item)\"\n                      v-bind=\"getOptionProps(item)\"\n                    />\n                  </el-option-group>\n                  <el-option v-else v-bind=\"getOptionProps(option)\" />\n                </template>\n              </slot>\n            </el-options>\n          </el-scrollbar>\n          <div\n            v-if=\"$slots.loading && loading\"\n            :class=\"nsSelect.be('dropdown', 'loading')\"\n          >\n            <slot name=\"loading\" />\n          </div>\n          <div\n            v-else-if=\"loading || filteredOptionsCount === 0\"\n            :class=\"nsSelect.be('dropdown', 'empty')\"\n          >\n            <slot name=\"empty\">\n              <span>{{ emptyText }}</span>\n            </slot>\n          </div>\n          <div\n            v-if=\"$slots.footer\"\n            :class=\"nsSelect.be('dropdown', 'footer')\"\n            @click.stop\n          >\n            <slot name=\"footer\" />\n          </div>\n        </el-select-menu>\n      </template>\n    </el-tooltip>\n  </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n  computed,\n  defineComponent,\n  getCurrentInstance,\n  onBeforeUnmount,\n  provide,\n  reactive,\n  toRefs,\n  watch,\n} from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { flattedChildren, isArray, isObject } from '@element-plus/utils'\nimport { useCalcInputWidth } from '@element-plus/hooks'\nimport { useProps } from '@element-plus/components/select-v2/src/useProps'\nimport ElOption from './option.vue'\nimport ElSelectMenu from './select-dropdown.vue'\nimport { useSelect } from './useSelect'\nimport { selectKey } from './token'\nimport ElOptions from './options'\nimport { selectProps } from './select'\nimport ElOptionGroup from './option-group.vue'\n\nimport type { AppConfig, AppContext, VNode } from 'vue'\nimport type { SelectContext } from './type'\n\nconst COMPONENT_NAME = 'ElSelect'\n\ntype WarnHandler = AppConfig['warnHandler']\n\ninterface WarnHandlerRecord {\n  originalWarnHandler: WarnHandler\n  handler: WarnHandler\n  count: number\n}\n\nconst warnHandlerMap = new WeakMap<AppContext, WarnHandlerRecord>()\n\nconst createSelectWarnHandler = (appContext: AppContext): WarnHandler => {\n  return (...args) => {\n    // Overrides warnings about slots not being executable outside of a render function.\n    // We call slot below just to simulate data when persist is false, this warning message should be ignored\n    const message = args[0]\n    if (\n      !message ||\n      (message.includes(\n        'Slot \"default\" invoked outside of the render function'\n      ) &&\n        args[2]?.includes('ElTreeSelect'))\n    )\n      return\n    const original = warnHandlerMap.get(appContext)?.originalWarnHandler\n    if (original) {\n      original(...args)\n      return\n    }\n    // eslint-disable-next-line no-console\n    console.warn(...args)\n  }\n}\n\nconst getWarnHandlerRecord = (appContext: AppContext): WarnHandlerRecord => {\n  let record = warnHandlerMap.get(appContext)\n  if (!record) {\n    record = {\n      originalWarnHandler: appContext.config.warnHandler,\n      handler: createSelectWarnHandler(appContext),\n      count: 0,\n    }\n    warnHandlerMap.set(appContext, record)\n  }\n  return record\n}\nexport default defineComponent({\n  name: COMPONENT_NAME,\n  componentName: COMPONENT_NAME,\n  components: {\n    ElSelectMenu,\n    ElOption,\n    ElOptions,\n    ElOptionGroup,\n    ElTag,\n    ElScrollbar,\n    ElTooltip,\n    ElIcon,\n  },\n  directives: { ClickOutside },\n  props: selectProps,\n  emits: [\n    UPDATE_MODEL_EVENT,\n    CHANGE_EVENT,\n    'remove-tag',\n    'clear',\n    'visible-change',\n    'focus',\n    'blur',\n    'popup-scroll',\n  ],\n\n  setup(props, { emit, slots }) {\n    const instance = getCurrentInstance()!\n    const warnRecord = getWarnHandlerRecord(instance.appContext)\n    warnRecord.count += 1\n    instance.appContext.config.warnHandler = warnRecord.handler\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\n      return multiple ? fallback : rawModelValue\n    })\n\n    const _props = reactive({\n      ...toRefs(props),\n      modelValue,\n    })\n\n    const API = useSelect(_props, emit)\n    const { calculatorRef, inputStyle } = useCalcInputWidth()\n    const { getLabel, getValue, getOptions, getDisabled } = useProps(props)\n\n    const getOptionProps = (option: Record<string, any>) => ({\n      label: getLabel(option),\n      value: getValue(option),\n      disabled: getDisabled(option),\n    })\n\n    const flatTreeSelectData = (data: any[]) => {\n      return data.reduce((acc, item) => {\n        acc.push(item)\n        if (item.children && item.children.length > 0) {\n          acc.push(...flatTreeSelectData(item.children))\n        }\n        return acc\n      }, [])\n    }\n\n    const manuallyRenderSlots = (vnodes: VNode[] | undefined) => {\n      // After option rendering is completed, the useSelect internal state can collect the value of each option.\n      // If the persistent value is false, option will not be rendered by default, so in this case,\n      // manually render and load option data here.\n      const children = flattedChildren(vnodes || []) as VNode[]\n      children.forEach((item) => {\n        if (\n          isObject(item) &&\n          // @ts-expect-error\n          (item.type.name === 'ElOption' || item.type.name === 'ElTree')\n        ) {\n          // @ts-expect-error\n          const _name = item.type.name\n          if (_name === 'ElTree') {\n            // tree-select component is a special case.\n            // So we need to handle it separately.\n            const treeData = item.props?.data || []\n            const flatData = flatTreeSelectData(treeData)\n            flatData.forEach((treeItem: any) => {\n              treeItem.currentLabel =\n                treeItem.label ||\n                (isObject(treeItem.value) ? '' : treeItem.value)\n              API.onOptionCreate(treeItem)\n            })\n          } else if (_name === 'ElOption') {\n            const obj = { ...item.props } as any\n            obj.currentLabel =\n              obj.label || (isObject(obj.value) ? '' : obj.value)\n            API.onOptionCreate(obj)\n          }\n        }\n      })\n    }\n    watch(\n      () => [\n        props.persistent || API.expanded.value || !slots.default\n          ? undefined\n          : slots.default?.(),\n        modelValue.value,\n      ],\n      () => {\n        // When persistent is false and the dropdown is closed, the menu is unmounted.\n        // We should always re-hydrate option data from slots so labels stay in sync\n        // with dynamic option list updates. Skip only when persistent is true or\n        // when the dropdown is currently expanded (mounted options will manage themselves).\n        if (props.persistent || API.expanded.value) {\n          // If persistent is true, we don't need to manually render slots.\n          return\n        }\n        // Reset current options snapshot before re-collecting from slots.\n        API.states.options.clear()\n        manuallyRenderSlots(slots.default?.())\n      },\n      {\n        immediate: true,\n      }\n    )\n\n    provide(\n      selectKey,\n      reactive({\n        props: _props,\n        states: API.states,\n        selectRef: API.selectRef,\n        optionsArray: API.optionsArray,\n        setSelected: API.setSelected,\n        handleOptionSelect: API.handleOptionSelect,\n        onOptionCreate: API.onOptionCreate,\n        onOptionDestroy: API.onOptionDestroy,\n      }) satisfies SelectContext\n    )\n\n    const selectedLabel = computed(() => {\n      if (!props.multiple) {\n        return API.states.selectedLabel\n      }\n      return API.states.selected.map((i) => i.currentLabel as string)\n    })\n\n    onBeforeUnmount(() => {\n      // https://github.com/element-plus/element-plus/issues/21279\n      const record = warnHandlerMap.get(instance.appContext)\n      if (!record) return\n      record.count -= 1\n      if (record.count <= 0) {\n        instance.appContext.config.warnHandler = record.originalWarnHandler\n        warnHandlerMap.delete(instance.appContext)\n      }\n    })\n\n    return {\n      ...API,\n      modelValue,\n      selectedLabel,\n      calculatorRef,\n      inputStyle,\n      getLabel,\n      getValue,\n      getOptions,\n      getDisabled,\n      getOptionProps,\n    }\n  },\n})\n</script>\n"],"mappings":"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"}