{"version":3,"file":"select.mjs","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n  <div\n    ref=\"selectWrapper\"\n    v-click-outside:[popperPaneRef]=\"handleClose\"\n    :class=\"wrapperKls\"\n    data-test-name=\"select\"\n    data-test-variant=\"\"\n    data-test-state=\"\"\n    @mouseenter=\"handleMouseEnter\"\n    @mouseleave=\"handleMouseLeave\"\n    @click.stop=\"toggleMenu\"\n  >\n    <b-tooltip\n      ref=\"tooltipRef\"\n      :visible=\"dropMenuVisible\"\n      :placement=\"placement\"\n      :teleported=\"teleported\"\n      :popper-class=\"[nsSelect.e('popper'), popperClass]\"\n      :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\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      @show=\"handleMenuEnter\"\n    >\n      <template #default>\n        <div\n          class=\"select-trigger\"\n          @mouseenter=\"inputHovering = true\"\n          @mouseleave=\"inputHovering = false\"\n        >\n          <div\n            v-if=\"multiple\"\n            ref=\"tags\"\n            :class=\"nsSelect.e('tags')\"\n            :style=\"selectTagsStyle\"\n          >\n            <span\n              v-if=\"collapseTags && selected.length\"\n              :class=\"[\n                nsSelect.b('tags-wrapper'),\n                { 'has-prefix': prefixWidth && selected.length },\n              ]\"\n            >\n              <b-tag\n                :closable=\"!selectDisabled && !selected[0].isDisabled\"\n                :size=\"collapseTagSize\"\n                :hit=\"selected[0].hitState\"\n                :type=\"tagType\"\n                disable-transitions\n                @close=\"deleteTag($event, selected[0])\"\n              >\n                <span :class=\"nsSelect.e('tags-text')\" :style=\"tagTextStyle\">\n                  {{ selected[0].currentLabel }}\n                </span>\n              </b-tag>\n              <b-tag\n                v-if=\"selected.length > 1\"\n                :closable=\"false\"\n                :size=\"collapseTagSize\"\n                :type=\"tagType\"\n                disable-transitions\n              >\n                <b-tooltip\n                  v-if=\"collapseTagsTooltip\"\n                  :disabled=\"dropMenuVisible\"\n                  :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n                  :effect=\"effect\"\n                  placement=\"bottom\"\n                  :teleported=\"teleported\"\n                >\n                  <template #default>\n                    <span :class=\"nsSelect.e('tags-text')\"\n                      >+ {{ selected.length - 1 }}</span\n                    >\n                  </template>\n                  <template #content>\n                    <div :class=\"nsSelect.e('collapse-tags')\">\n                      <div\n                        v-for=\"(item, idx) in selected.slice(1)\"\n                        :key=\"idx\"\n                        :class=\"nsSelect.e('collapse-tag')\"\n                      >\n                        <b-tag\n                          :key=\"getValueKey(item)\"\n                          class=\"in-tooltip\"\n                          :closable=\"!selectDisabled && !item.isDisabled\"\n                          :size=\"collapseTagSize\"\n                          :hit=\"item.hitState\"\n                          :type=\"tagType\"\n                          disable-transitions\n                          :style=\"{ margin: '2px' }\"\n                          @close=\"deleteTag($event, item)\"\n                        >\n                          <span\n                            :class=\"nsSelect.e('tags-text')\"\n                            :style=\"{\n                              maxWidth: inputWidth - 75 + 'px',\n                            }\"\n                            >{{ item.currentLabel }}</span\n                          >\n                        </b-tag>\n                      </div>\n                    </div>\n                  </template>\n                </b-tooltip>\n                <span v-else :class=\"nsSelect.e('tags-text')\"\n                  >+ {{ selected.length - 1 }}</span\n                >\n              </b-tag>\n            </span>\n            <!-- <div> -->\n            <transition v-if=\"!collapseTags\" @after-leave=\"resetInputHeight\">\n              <span\n                :class=\"[\n                  nsSelect.b('tags-wrapper'),\n                  { 'has-prefix': prefixWidth && selected.length },\n                ]\"\n              >\n                <b-tag\n                  v-for=\"item in selected\"\n                  :key=\"getValueKey(item)\"\n                  :closable=\"!selectDisabled && !item.isDisabled\"\n                  :size=\"collapseTagSize\"\n                  :hit=\"item.hitState\"\n                  :type=\"tagType\"\n                  disable-transitions\n                  @close=\"deleteTag($event, item)\"\n                >\n                  <span\n                    :class=\"nsSelect.e('tags-text')\"\n                    :style=\"{ maxWidth: inputWidth - 75 + 'px' }\"\n                    >{{ item.currentLabel }}</span\n                  >\n                </b-tag>\n              </span>\n            </transition>\n            <!-- </div> -->\n            <input\n              v-if=\"filterable\"\n              ref=\"input\"\n              v-model=\"query\"\n              type=\"text\"\n              :class=\"[nsSelect.e('input'), nsSelect.is(selectSize)]\"\n              :disabled=\"selectDisabled\"\n              :autocomplete=\"autocomplete\"\n              :style=\"{\n                marginLeft:\n                  (prefixWidth && !selected.length) || tagInMultiLine\n                    ? `${prefixWidth}px`\n                    : '',\n                flexGrow: 1,\n                width: `${inputLength / (inputWidth - 32)}%`,\n                maxWidth: `${inputWidth - 42}px`,\n              }\"\n              @focus=\"handleFocus\"\n              @blur=\"handleBlur\"\n              @keyup=\"managePlaceholder\"\n              @keydown=\"resetInputState\"\n              @keydown.down.prevent=\"navigateOptions('next')\"\n              @keydown.up.prevent=\"navigateOptions('prev')\"\n              @keydown.esc=\"handleKeydownEscape\"\n              @keydown.enter.stop.prevent=\"selectOption\"\n              @keydown.delete=\"deletePrevTag\"\n              @keydown.tab=\"visible = false\"\n              @compositionstart=\"handleComposition\"\n              @compositionupdate=\"handleComposition\"\n              @compositionend=\"handleComposition\"\n              @input=\"debouncedQueryChange\"\n            />\n          </div>\n          <b-input\n            :id=\"id\"\n            ref=\"reference\"\n            v-model=\"selectedLabel\"\n            type=\"text\"\n            :placeholder=\"currentPlaceholder\"\n            :name=\"name\"\n            :autocomplete=\"autocomplete\"\n            :size=\"selectSize\"\n            :large=\"large\"\n            :small=\"small\"\n            :disabled=\"selectDisabled\"\n            :readonly=\"readonly\"\n            :validate-event=\"false\"\n            :class=\"[nsSelect.is('focus', visible)]\"\n            :tabindex=\"multiple && filterable ? -1 : undefined\"\n            suffix-class=\"is-action\"\n            @focus=\"handleFocus\"\n            @blur=\"handleBlur\"\n            @input=\"debouncedOnInputChange\"\n            @paste=\"debouncedOnInputChange\"\n            @compositionstart=\"handleComposition\"\n            @compositionupdate=\"handleComposition\"\n            @compositionend=\"handleComposition\"\n            @keydown.down.stop.prevent=\"navigateOptions('next')\"\n            @keydown.up.stop.prevent=\"navigateOptions('prev')\"\n            @keydown.enter.stop.prevent=\"selectOption\"\n            @keydown.esc=\"handleKeydownEscape\"\n            @keydown.tab=\"visible = false\"\n          >\n            <template v-if=\"$slots.prefix\" #prefix>\n              <slot name=\"prefix\" />\n            </template>\n            <template #suffix>\n              <b-icon\n                v-if=\"iconComponent && !showClose\"\n                :class=\"[nsSelect.e('caret'), nsSelect.e('icon'), iconReverse]\"\n              >\n                <component :is=\"iconComponent\" />\n              </b-icon>\n              <b-icon\n                v-if=\"showClose && clearIcon\"\n                :class=\"[nsSelect.e('caret'), nsSelect.e('icon')]\"\n                @click=\"handleClearClick\"\n              >\n                <component :is=\"clearIcon\" />\n              </b-icon>\n            </template>\n            <template v-if=\"$slots.selected\" #content>\n              <slot\n                name=\"selected\"\n                :value=\"selected.value\"\n                :label=\"selectedLabel\"\n              />\n            </template>\n          </b-input>\n        </div>\n      </template>\n      <template #content>\n        <b-select-menu>\n          <b-scrollbar\n            v-show=\"options.size > 0 && !loading\"\n            ref=\"scrollbar\"\n            tag=\"ul\"\n            :wrap-class=\"nsSelect.be('dropdown', 'wrap')\"\n            :view-class=\"nsSelect.be('dropdown', 'list')\"\n            :class=\"[\n              nsSelect.is(\n                'empty',\n                !allowCreate && Boolean(query) && filteredOptionsCount === 0\n              ),\n            ]\"\n          >\n            <b-option v-if=\"showNewOption\" :value=\"query\" :created=\"true\" />\n            <slot />\n          </b-scrollbar>\n          <template\n            v-if=\"\n              emptyText &&\n              (!allowCreate || loading || (allowCreate && options.size === 0))\n            \"\n          >\n            <slot v-if=\"$slots.empty\" name=\"empty\" />\n            <p v-else :class=\"nsSelect.be('dropdown', 'empty')\">\n              {{ emptyText }}\n            </p>\n          </template>\n          <template v-if=\"$slots.dropdownHeader\" #header>\n            <slot name=\"dropdownHeader\" />\n          </template>\n          <template v-if=\"$slots.dropdownFooter\" #footer>\n            <slot name=\"dropdownFooter\" />\n          </template>\n        </b-select-menu>\n      </template>\n    </b-tooltip>\n  </div>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport {\n  computed,\n  defineComponent,\n  nextTick,\n  onMounted,\n  provide,\n  reactive,\n  toRefs,\n  unref,\n} from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { placements } from '@bigin/popperjs-es'\nimport { ClickOutside } from '@bigin/directives'\nimport { useFocus, useLocale, useNamespace } from '@bigin/hooks'\nimport BInput from '@bigin/components/input'\nimport BTooltip, { useTooltipContentProps } from '@bigin/components/tooltip'\nimport BScrollbar from '@bigin/components/scrollbar'\nimport BTag, { tagProps } from '@bigin/components/tag'\nimport BIcon from '@bigin/components/icon'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@bigin/constants'\nimport { iconPropType, isValidComponentSize } from '@bigin/utils'\nimport { ActionDown, Clear } from '@bigin/icons-vue'\nimport BOption from './option.vue'\nimport BSelectMenu from './select-dropdown.vue'\nimport { useSelect, useSelectStates } from './useSelect'\nimport { selectKey } from './token'\n\nimport type { PropType } from 'vue'\nimport type { ComponentSize } from '@bigin/constants'\nimport type { SelectContext } from './token'\n\nconst COMPONENT_NAME = 'BSelect'\nexport default defineComponent({\n  name: COMPONENT_NAME,\n  componentName: COMPONENT_NAME,\n  components: {\n    BInput,\n    BSelectMenu,\n    BOption,\n    BTag,\n    BScrollbar,\n    BTooltip,\n    BIcon,\n  },\n  directives: { ClickOutside },\n  props: {\n    name: String,\n    id: String,\n    modelValue: {\n      type: [Array, String, Number, Boolean, Object],\n      default: undefined,\n    },\n    autocomplete: {\n      type: String,\n      default: 'off',\n    },\n    automaticDropdown: Boolean,\n    size: {\n      type: String as PropType<ComponentSize>,\n      validator: isValidComponentSize,\n    },\n    effect: {\n      type: String as PropType<'light' | 'dark' | string>,\n      default: 'light',\n    },\n    disabled: Boolean,\n    clearable: Boolean,\n    filterable: Boolean,\n    allowCreate: Boolean,\n    loading: Boolean,\n    popperClass: {\n      type: String,\n      default: '',\n    },\n    remote: Boolean,\n    loadingText: String,\n    noMatchText: String,\n    noDataText: String,\n    remoteMethod: Function,\n    filterMethod: Function,\n    multiple: Boolean,\n    multipleLimit: {\n      type: Number,\n      default: 0,\n    },\n    placeholder: {\n      type: String,\n    },\n    defaultFirstOption: Boolean,\n    reserveKeyword: {\n      type: Boolean,\n      default: true,\n    },\n    valueKey: {\n      type: String,\n      default: 'value',\n    },\n    collapseTags: Boolean,\n    collapseTagsTooltip: {\n      type: Boolean,\n      default: false,\n    },\n    teleported: useTooltipContentProps.teleported,\n    persistent: {\n      type: Boolean,\n      default: true,\n    },\n    clearIcon: {\n      type: iconPropType,\n      default: Clear,\n    },\n    fitInputWidth: {\n      type: Boolean,\n      default: false,\n    },\n    suffixIcon: {\n      type: iconPropType,\n      default: ActionDown,\n    },\n    // eslint-disable-next-line vue/require-prop-types\n    tagType: { ...tagProps.type, default: 'info' },\n    large: {\n      type: Boolean,\n      default: false,\n    },\n    small: {\n      type: Boolean,\n      default: false,\n    },\n    remoteShowSuffix: {\n      type: Boolean,\n      default: false,\n    },\n    suffixTransition: {\n      type: Boolean,\n      default: true,\n    },\n    placement: {\n      type: String,\n      values: placements,\n      default: 'bottom-start',\n    },\n  },\n  emits: [\n    UPDATE_MODEL_EVENT,\n    CHANGE_EVENT,\n    'remove-tag',\n    'clear',\n    'visible-change',\n    'focus',\n    'blur',\n  ],\n\n  setup(props, ctx) {\n    const nsSelect = useNamespace('select')\n    const nsInput = useNamespace('input')\n    const { t } = useLocale()\n    const states = useSelectStates(props)\n    const {\n      optionsArray,\n      selectSize,\n      readonly,\n      handleResize,\n      collapseTagSize,\n      debouncedOnInputChange,\n      debouncedQueryChange,\n      deletePrevTag,\n      deleteTag,\n      deleteSelected,\n      handleOptionSelect,\n      scrollToOption,\n      setSelected,\n      resetInputHeight,\n      managePlaceholder,\n      showClose,\n      selectDisabled,\n      iconComponent,\n      iconReverse,\n      showNewOption,\n      emptyText,\n      toggleLastOptionHitState,\n      resetInputState,\n      handleComposition,\n      onOptionCreate,\n      onOptionDestroy,\n      handleMenuEnter,\n      handleFocus,\n      blur,\n      handleBlur,\n      handleClearClick,\n      handleClose,\n      handleKeydownEscape,\n      toggleMenu,\n      selectOption,\n      getValueKey,\n      navigateOptions,\n      dropMenuVisible,\n\n      reference,\n      input,\n      tooltipRef,\n      tags,\n      selectWrapper,\n      scrollbar,\n      queryChange,\n      groupQueryChange,\n      handleMouseEnter,\n      handleMouseLeave,\n    } = useSelect(props, states, ctx)\n\n    const { focus } = useFocus(reference)\n\n    const {\n      inputWidth,\n      selected,\n      inputLength,\n      filteredOptionsCount,\n      visible,\n      softFocus,\n      selectedLabel,\n      hoverIndex,\n      query,\n      inputHovering,\n      currentPlaceholder,\n      menuVisibleOnFocus,\n      isOnComposition,\n      isSilentBlur,\n      options,\n      cachedOptions,\n      optionsCount,\n      prefixWidth,\n      tagInMultiLine,\n    } = toRefs(states)\n\n    const wrapperKls = computed(() => {\n      const classList = [nsSelect.b()]\n      const _selectSize = unref(selectSize)\n      if (_selectSize) {\n        classList.push(nsSelect.m(_selectSize))\n      }\n      if (props.disabled) {\n        classList.push(nsSelect.m('disabled'))\n      }\n      return classList\n    })\n\n    const selectTagsStyle = computed(() => ({\n      maxWidth: `${unref(inputWidth) - 32}px`,\n      width: '100%',\n    }))\n\n    const tagTextStyle = computed(() => {\n      const maxWidth =\n        unref(inputWidth) > 123\n          ? unref(inputWidth) - 123\n          : unref(inputWidth) - 75\n      return { maxWidth: `${maxWidth}px` }\n    })\n\n    provide(\n      selectKey,\n      reactive({\n        props,\n        options,\n        optionsArray,\n        cachedOptions,\n        optionsCount,\n        filteredOptionsCount,\n        hoverIndex,\n        handleOptionSelect,\n        onOptionCreate,\n        onOptionDestroy,\n        selectWrapper,\n        selected,\n        setSelected,\n        queryChange,\n        groupQueryChange,\n      }) as unknown as SelectContext\n    )\n\n    onMounted(() => {\n      states.cachedPlaceHolder = currentPlaceholder.value =\n        props.placeholder || t('b.select.placeholder')\n      if (\n        props.multiple &&\n        Array.isArray(props.modelValue) &&\n        props.modelValue.length > 0\n      ) {\n        currentPlaceholder.value = ''\n      }\n      useResizeObserver(selectWrapper, handleResize)\n      if (props.remote && props.multiple) {\n        resetInputHeight()\n      }\n      nextTick(() => {\n        const refEl = reference.value && reference.value.$el\n        if (!refEl) return\n        inputWidth.value = refEl.getBoundingClientRect().width\n\n        if (ctx.slots.prefix) {\n          const prefix = refEl.querySelector(`.${nsInput.e('prefix')}`)\n          prefixWidth.value = Math.max(\n            prefix.getBoundingClientRect().width + 5,\n            30\n          )\n        }\n      })\n      setSelected()\n    })\n\n    if (props.multiple && !Array.isArray(props.modelValue)) {\n      ctx.emit(UPDATE_MODEL_EVENT, [])\n    }\n    if (!props.multiple && Array.isArray(props.modelValue)) {\n      ctx.emit(UPDATE_MODEL_EVENT, '')\n    }\n\n    const popperPaneRef = computed(() => {\n      return tooltipRef.value?.popperRef?.contentRef\n    })\n\n    return {\n      tagInMultiLine,\n      prefixWidth,\n      selectSize,\n      readonly,\n      handleResize,\n      collapseTagSize,\n      debouncedOnInputChange,\n      debouncedQueryChange,\n      deletePrevTag,\n      deleteTag,\n      deleteSelected,\n      handleOptionSelect,\n      scrollToOption,\n      inputWidth,\n      selected,\n      inputLength,\n      filteredOptionsCount,\n      visible,\n      softFocus,\n      selectedLabel,\n      hoverIndex,\n      query,\n      inputHovering,\n      currentPlaceholder,\n      menuVisibleOnFocus,\n      isOnComposition,\n      isSilentBlur,\n      options,\n      resetInputHeight,\n      managePlaceholder,\n      showClose,\n      selectDisabled,\n      iconComponent,\n      iconReverse,\n      showNewOption,\n      emptyText,\n      toggleLastOptionHitState,\n      resetInputState,\n      handleComposition,\n      handleMenuEnter,\n      handleFocus,\n      blur,\n      handleBlur,\n      handleClearClick,\n      handleClose,\n      handleKeydownEscape,\n      toggleMenu,\n      selectOption,\n      getValueKey,\n      navigateOptions,\n      dropMenuVisible,\n      focus,\n\n      reference,\n      input,\n      tooltipRef,\n      popperPaneRef,\n      tags,\n      selectWrapper,\n      scrollbar,\n\n      wrapperKls,\n      selectTagsStyle,\n      nsSelect,\n      tagTextStyle,\n      handleMouseEnter,\n      handleMouseLeave,\n    }\n  },\n})\n</script>\n"],"names":["BOption","_createElementBlock","_normalizeClass","_createVNode","_withCtx","_createElementVNode","_openBlock","_normalizeStyle","_toDisplayString","_createBlock","_Fragment","_renderList","_createCommentVNode","_Transition","_withKeys","_withModifiers","_resolveDynamicComponent","_renderSlot","_createSlots","_withDirectives"],"mappings":"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"}