xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 7.21 kB
Source Map (JSON)
{"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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"}