{"version":3,"file":"MultipleSelector.mjs","sources":["../../../../../../../packages/vue-components/vc-select/src/Selector/MultipleSelector.tsx"],"sourcesContent":["import type { VueNode } from '@antdv/types';\n\n/* eslint-disable style/jsx-one-expression-per-line */\nimport type { PropType, Ref } from 'vue';\nimport type { CustomTagProps, DisplayValueType, RawValueType, RenderNode } from '../BaseSelect';\nimport type { BaseOptionType } from '../Select';\nimport type { InnerSelectorProps } from './interface';\nimport { classNames, pickAttrs, PropTypes } from '@antdv/utils';\nimport {\n  computed,\n  defineComponent,\n  onMounted,\n  ref,\n  shallowRef,\n  watch,\n  watchEffect,\n} from 'vue';\nimport { VcOverflow } from '../../../vc-overflow';\nimport useInjectLegacySelectContext from '../../../vc-tree-select/src/LegacyContext';\nimport TransBtn from '../TransBtn';\nimport Input from './Input';\n\ntype SelectorProps = InnerSelectorProps & {\n  // Icon\n  removeIcon?: RenderNode;\n\n  // Tags\n  maxTagCount?: number | 'responsive';\n  maxTagTextLength?: number;\n  maxTagPlaceholder?: VueNode | ((omittedValues: DisplayValueType[]) => VueNode);\n  tokenSeparators?: string[];\n  tagRender?: (props: CustomTagProps) => VueNode;\n  onToggleOpen: any;\n  compositionStatus: boolean;\n  // Motion\n  choiceTransitionName?: string;\n\n  // Event\n  onRemove: (value: DisplayValueType) => void;\n};\n\nconst props = {\n  id: String,\n  prefixCls: String,\n  values: PropTypes.array,\n  open: { type: Boolean, default: undefined },\n  searchValue: String,\n  inputRef: PropTypes.any,\n  placeholder: PropTypes.any,\n  disabled: { type: Boolean, default: undefined },\n  mode: String,\n  showSearch: { type: Boolean, default: undefined },\n  autofocus: { type: Boolean, default: undefined },\n  autocomplete: String,\n  activeDescendantId: String,\n  tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  compositionStatus: Boolean,\n  removeIcon: PropTypes.any,\n  choiceTransitionName: String,\n\n  maxTagCount: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  maxTagTextLength: Number,\n  maxTagPlaceholder: PropTypes.any.def(\n    () => (omittedValues: DisplayValueType[]) => `+ ${omittedValues.length} ...`,\n  ),\n  tagRender: Function,\n\n  onToggleOpen: { type: Function as PropType<(open?: boolean) => void> },\n  onRemove: Function,\n  onInputChange: Function,\n  onInputPaste: Function,\n  onInputKeyDown: Function,\n  onInputMouseDown: Function,\n  onInputCompositionStart: Function,\n  onInputCompositionEnd: Function,\n};\n\nfunction onPreventMouseDown(event: MouseEvent) {\n  event.preventDefault();\n  event.stopPropagation();\n}\n\nconst SelectSelector = defineComponent<SelectorProps>({\n  name: 'MultipleSelectSelector',\n  inheritAttrs: false,\n  props: props as any,\n  setup(props) {\n    const measureRef = shallowRef();\n    const inputWidth = shallowRef(0);\n    const focused = shallowRef(false);\n    const legacyTreeSelectContext = useInjectLegacySelectContext();\n    const selectionPrefixCls = computed(() => `${props.prefixCls}-selection`);\n\n    // ===================== Search ======================\n    const inputValue = computed(() =>\n      props.open || props.mode === 'tags' ? props.searchValue : '',\n    );\n    const inputEditable: Ref<boolean> = computed(\n      () =>\n        props.mode === 'tags' || ((props.showSearch && (props.open || focused.value)) as boolean),\n    );\n    const targetValue = ref('');\n    watchEffect(() => {\n      targetValue.value = inputValue.value;\n    });\n    // We measure width and set to the input immediately\n    onMounted(() => {\n      watch(\n        targetValue,\n        () => {\n          inputWidth.value = measureRef.value.scrollWidth;\n        },\n        { flush: 'post', immediate: true },\n      );\n    });\n\n    // ===================== Render ======================\n    // >>> Render Selector Node. Includes Item & Rest\n    function defaultRenderSelector(\n      title: VueNode,\n      content: VueNode,\n      itemDisabled: boolean,\n      closable?: boolean,\n      onClose?: (e: MouseEvent) => void,\n    ) {\n      return (\n        <span\n          class={classNames(`${selectionPrefixCls.value}-item`, {\n            [`${selectionPrefixCls.value}-item-disabled`]: itemDisabled,\n          })}\n          title={\n            typeof title === 'string' || typeof title === 'number' ? title.toString() : undefined\n          }\n        >\n          <span class={`${selectionPrefixCls.value}-item-content`}>{content}</span>\n          {closable && (\n            <TransBtn\n              class={`${selectionPrefixCls.value}-item-remove`}\n              onMousedown={onPreventMouseDown}\n              onClick={onClose}\n              customizeIcon={props.removeIcon}\n            >\n              ×\n            </TransBtn>\n          )}\n        </span>\n      );\n    }\n\n    function customizeRenderSelector(\n      value: RawValueType,\n      content: VueNode,\n      itemDisabled: boolean,\n      closable: boolean,\n      onClose: (e: MouseEvent) => void,\n      option: BaseOptionType,\n    ) {\n      const onMouseDown = (e: MouseEvent) => {\n        onPreventMouseDown(e);\n        props.onToggleOpen(!open);\n      };\n      let originData = option;\n      // For TreeSelect\n      if (legacyTreeSelectContext.keyEntities)\n        originData = legacyTreeSelectContext.keyEntities[value]?.node || {};\n\n      return (\n        <span key={value} onMousedown={onMouseDown}>\n          {props.tagRender({\n            label: content,\n            value,\n            disabled: itemDisabled,\n            closable,\n            onClose,\n            option: originData,\n          })}\n        </span>\n      );\n    }\n\n    function renderItem(valueItem: DisplayValueType) {\n      const { disabled: itemDisabled, label, value, option } = valueItem;\n      const closable = !props.disabled && !itemDisabled;\n\n      let displayLabel = label;\n\n      if (typeof props.maxTagTextLength === 'number') {\n        if (typeof label === 'string' || typeof label === 'number') {\n          const strLabel = String(displayLabel);\n\n          if (strLabel.length > props.maxTagTextLength)\n            displayLabel = `${strLabel.slice(0, props.maxTagTextLength)}...`;\n        }\n      }\n      const onClose = (event?: MouseEvent) => {\n        if (event) event.stopPropagation();\n        props.onRemove?.(valueItem);\n      };\n\n      return typeof props.tagRender === 'function'\n        ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose, option)\n        : defaultRenderSelector(label, displayLabel, itemDisabled, closable, onClose);\n    }\n\n    function renderRest(omittedValues: DisplayValueType[]) {\n      const { maxTagPlaceholder = omittedValues => `+ ${omittedValues.length} ...` } = props;\n      const content\n        = typeof maxTagPlaceholder === 'function'\n          ? maxTagPlaceholder(omittedValues)\n          : maxTagPlaceholder;\n\n      return defaultRenderSelector(content, content, false);\n    }\n    const handleInput = (e: Event) => {\n      const composing = (e.target as any).composing;\n      targetValue.value = (e.target as any).value;\n      if (!composing)\n        props.onInputChange(e);\n    };\n    return () => {\n      const {\n        id,\n        prefixCls,\n        values,\n        open,\n        inputRef,\n        placeholder,\n        disabled,\n        autofocus,\n        autocomplete,\n        activeDescendantId,\n        tabindex,\n        compositionStatus,\n        onInputPaste,\n        onInputKeyDown,\n        onInputMouseDown,\n        onInputCompositionStart,\n        onInputCompositionEnd,\n      } = props;\n\n      // >>> Input Node\n      const inputNode = (\n        <div\n          class={`${selectionPrefixCls.value}-search`}\n          style={{ width: `${inputWidth.value}px` }}\n          key=\"input\"\n        >\n          <Input\n            inputRef={inputRef}\n            open={open}\n            prefixCls={prefixCls}\n            id={id}\n            inputElement={null}\n            disabled={disabled}\n            autofocus={autofocus}\n            autocomplete={autocomplete}\n            editable={inputEditable.value}\n            activeDescendantId={activeDescendantId}\n            value={targetValue.value}\n            onKeydown={onInputKeyDown}\n            onMousedown={onInputMouseDown}\n            onChange={handleInput}\n            onPaste={onInputPaste}\n            onCompositionstart={onInputCompositionStart}\n            onCompositionend={onInputCompositionEnd}\n            tabindex={tabindex}\n            attrs={pickAttrs(props, true)}\n            onFocus={() => (focused.value = true)}\n            onBlur={() => (focused.value = false)}\n          />\n\n          {/* Measure Node */}\n          <span ref={measureRef} class={`${selectionPrefixCls.value}-search-mirror`} aria-hidden>\n            {targetValue.value}&nbsp;\n          </span>\n        </div>\n      );\n\n      // >>> Selections\n      const selectionNode = (\n        <VcOverflow\n          prefixCls={`${selectionPrefixCls.value}-overflow`}\n          data={values}\n          renderItem={renderItem}\n          renderRest={renderRest}\n          suffix={inputNode}\n          itemKey=\"key\"\n          maxCount={props.maxTagCount}\n          key=\"overflow\"\n        />\n      );\n      return (\n        <>\n          {selectionNode}\n          {!values.length && !inputValue.value && !compositionStatus && (\n            <span class={`${selectionPrefixCls.value}-placeholder`}>{placeholder}</span>\n          )}\n        </>\n      );\n    };\n  },\n});\n\nexport default SelectSelector;\n"],"names":["props","id","String","prefixCls","values","PropTypes","array","open","type","Boolean","default","undefined","searchValue","inputRef","any","placeholder","disabled","mode","showSearch","autofocus","autocomplete","activeDescendantId","tabindex","oneOfType","number","string","compositionStatus","removeIcon","choiceTransitionName","maxTagCount","maxTagTextLength","Number","maxTagPlaceholder","def","omittedValues","length","tagRender","Function","onToggleOpen","onRemove","onInputChange","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","onPreventMouseDown","event","preventDefault","stopPropagation","SelectSelector","name","inheritAttrs","setup","measureRef","shallowRef","inputWidth","focused","legacyTreeSelectContext","useInjectLegacySelectContext","selectionPrefixCls","computed","inputValue","inputEditable","value","targetValue","ref","watchEffect","onMounted","watch","scrollWidth","flush","immediate","defaultRenderSelector","title","content","itemDisabled","closable","onClose","_createVNode","classNames","toString","TransBtn","_createTextVNode","customizeRenderSelector","option","onMouseDown","e","originData","keyEntities","node","label","renderItem","valueItem","displayLabel","strLabel","slice","renderRest","handleInput","composing","target","inputNode","width","Input","pickAttrs","onFocus","onBlur","selectionNode","VcOverflow","_Fragment"],"mappings":"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"}