{"version":3,"file":"select-input.mjs","sources":["../../src/select-input/select-input.tsx"],"sourcesContent":["import { computed, defineComponent, ref, SetupContext, toRefs } from 'vue';\nimport Popup from '../popup';\nimport props from './props';\nimport { TdSelectInputProps } from './type';\nimport useSingle from './useSingle';\nimport useMultiple from './useMultiple';\nimport useOverlayInnerStyle from './useOverlayInnerStyle';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks';\n\nconst useComponentClassName = () => {\n  return {\n    NAME_CLASS: usePrefixClass('select-input'),\n    BASE_CLASS_BORDERLESS: usePrefixClass('select-input--borderless'),\n    BASE_CLASS_MULTIPLE: usePrefixClass('select-input--multiple'),\n    BASE_CLASS_POPUP_VISIBLE: usePrefixClass('select-input--popup-visible'),\n    BASE_CLASS_EMPTY: usePrefixClass('select-input--empty'),\n  };\n};\n\nexport default defineComponent({\n  name: 'XSelectInput',\n\n  props: { ...props },\n\n  setup(props: TdSelectInputProps, context: SetupContext) {\n    const { NAME_CLASS, BASE_CLASS_BORDERLESS, BASE_CLASS_MULTIPLE, BASE_CLASS_POPUP_VISIBLE, BASE_CLASS_EMPTY } =\n      useComponentClassName();\n    const classPrefix = usePrefixClass();\n    const renderTNodeJSX = useTNodeJSX();\n\n    const selectInputRef = ref();\n    const popupRef = ref();\n    const { multiple, value, popupVisible, borderless } = toRefs(props);\n    const { commonInputProps, onInnerClear, renderSelectSingle } = useSingle(props, context);\n    const { renderSelectMultiple } = useMultiple(props, context);\n    const { tOverlayInnerStyle, innerPopupVisible, onInnerPopupVisibleChange } = useOverlayInnerStyle(props);\n\n    const classes = computed(() => [\n      `${NAME_CLASS.value}`,\n      {\n        [BASE_CLASS_MULTIPLE.value]: multiple.value,\n        [BASE_CLASS_BORDERLESS.value]: borderless.value,\n        [BASE_CLASS_POPUP_VISIBLE.value]: popupVisible.value ?? innerPopupVisible.value,\n        [BASE_CLASS_EMPTY.value]: value.value instanceof Array ? !value.value.length : !value.value,\n      },\n    ]);\n\n    return {\n      classPrefix,\n      NAME_CLASS,\n      innerPopupVisible,\n      commonInputProps,\n      tOverlayInnerStyle,\n      selectInputRef,\n      popupRef,\n      classes,\n      onInnerClear,\n      renderTNodeJSX,\n      renderSelectSingle,\n      renderSelectMultiple,\n      onInnerPopupVisibleChange,\n    };\n  },\n\n  render() {\n    // 浮层显示的受控与非受控\n    const visibleProps = { visible: this.popupVisible ?? this.innerPopupVisible };\n\n    const mainContent = (\n      <Popup\n        ref=\"popupRef\"\n        trigger={(this.popupProps as TdSelectInputProps['popupProps'])?.trigger || 'click'}\n        placement=\"bottom-left\"\n        {...visibleProps}\n        content={this.panel}\n        v-slots={{ ...this.$slots, content: this.$slots.panel }}\n        hideEmptyPopup={true}\n        {...{\n          onVisibleChange: this.onInnerPopupVisibleChange,\n          ...(this.popupProps as TdSelectInputProps['popupProps']),\n          overlayInnerStyle: this.tOverlayInnerStyle,\n        }}\n      >\n        {this.multiple\n          ? this.renderSelectMultiple({\n              commonInputProps: this.commonInputProps,\n              onInnerClear: this.onInnerClear,\n              popupVisible: visibleProps.visible,\n              allowInput: this.allowInput,\n            })\n          : this.renderSelectSingle(visibleProps.visible)}\n      </Popup>\n    );\n\n    const tipsNode = this.renderTNodeJSX('tips');\n\n    const tipsClasses = [\n      `${this.classPrefix}-input__tips`,\n      `${this.classPrefix}-tips`,\n      `${this.classPrefix}-is-${this.status}`,\n    ];\n\n    return (\n      <div ref=\"selectInputRef\" class={this.classes}>\n        {mainContent}\n        {tipsNode && <div class={tipsClasses}>{tipsNode}</div>}\n      </div>\n    );\n  },\n});\n"],"names":["NAME_CLASS","BASE_CLASS_BORDERLESS","BASE_CLASS_MULTIPLE","BASE_CLASS_POPUP_VISIBLE","name","props","setup","classPrefix","innerPopupVisible","commonInputProps","tOverlayInnerStyle","selectInputRef","popupRef","classes","onInnerClear","renderTNodeJSX","renderSelectSingle","renderSelectMultiple","onInnerPopupVisibleChange","visible","_createVNode","_mergeProps","content"],"mappings":"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"}