@koi-design/uxd-ui 14.0.41 → 14.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/es/components/Select/Selection/MultipleBase.d.ts +1 -1
  2. package/es/components/Select/Selection/MultipleBase.mjs +5 -4
  3. package/es/components/Select/Selection/MultipleBase.mjs.map +1 -1
  4. package/es/components/Table/BaseTable.mjs +10 -9
  5. package/es/components/Table/BaseTable.mjs.map +1 -1
  6. package/es/components/Table/BaseTable.vue.d.ts +2 -2
  7. package/es/components/Table/BodyTable.vue.d.ts +2 -2
  8. package/es/components/Table/HeadTable.vue.d.ts +2 -2
  9. package/es/components/Table/Table.vue.d.ts +4 -4
  10. package/es/components/Table/TableBox.vue.d.ts +4 -4
  11. package/lib/components/Select/Selection/MultipleBase.d.ts +1 -1
  12. package/lib/components/Select/Selection/MultipleBase.js +5 -4
  13. package/lib/components/Select/Selection/MultipleBase.js.map +1 -1
  14. package/lib/components/Table/BaseTable.js +10 -9
  15. package/lib/components/Table/BaseTable.js.map +1 -1
  16. package/lib/components/Table/BaseTable.vue.d.ts +2 -2
  17. package/lib/components/Table/BodyTable.vue.d.ts +2 -2
  18. package/lib/components/Table/HeadTable.vue.d.ts +2 -2
  19. package/lib/components/Table/Table.vue.d.ts +4 -4
  20. package/lib/components/Table/TableBox.vue.d.ts +4 -4
  21. package/package.json +1 -1
  22. package/styles/components/form/index.css +1 -1
  23. package/styles/components/form/index.less +3 -5
  24. package/styles/index.css +1 -1
  25. package/types/components/Select/Selection/MultipleBase.d.ts +1 -1
  26. package/types/components/Table/BaseTable.vue.d.ts +2 -2
  27. package/types/components/Table/BodyTable.vue.d.ts +2 -2
  28. package/types/components/Table/HeadTable.vue.d.ts +2 -2
  29. package/types/components/Table/Table.vue.d.ts +4 -4
  30. package/types/components/Table/TableBox.vue.d.ts +4 -4
  31. package/uxd-ui.css +1 -1
  32. package/uxd-ui.esm.min.mjs +3 -3
  33. package/uxd-ui.esm.mjs +16 -14
  34. package/uxd-ui.umd.js +16 -14
  35. package/uxd-ui.umd.min.js +6 -6
@@ -78,7 +78,7 @@ export declare const multipleBaseProps: {
78
78
  };
79
79
  };
80
80
  export declare const multipleBaseEmits: string[];
81
- export declare function renderSelectionItem(item: DisplayOption, props: any, { prefixCls, isNotRender, closable, onClose, values }: {
81
+ export declare function renderSelectionItem(item: DisplayOption, props: any, { prefixCls, isNotRender, closable, onClose, values, displayRest }: {
82
82
  prefixCls: string;
83
83
  isNotRender: boolean;
84
84
  closable: (displayItem: DisplayOption) => boolean;
@@ -91,7 +91,8 @@ function renderSelectionItem(item, props, {
91
91
  isNotRender,
92
92
  closable,
93
93
  onClose,
94
- values
94
+ values,
95
+ displayRest
95
96
  }) {
96
97
  const {
97
98
  tagRender,
@@ -108,7 +109,7 @@ function renderSelectionItem(item, props, {
108
109
  [`${prefixCls}-selection-item`]: true,
109
110
  [`${prefixCls}-selection-item-disabled`]: item.disabled
110
111
  }
111
- }, [item.key === REST_TAG_KEY || isShowTagTooltip ? createVNode(UPopover, mergeProps({
112
+ }, [item.key === REST_TAG_KEY && (props.maxTagTextLength !== "responsive" || displayRest) || isShowTagTooltip ? createVNode(UPopover, mergeProps({
112
113
  "disabled": !maxTagTooltip,
113
114
  "trigger": "hover",
114
115
  "dropdown-class": `${prefixCls}-dropdown-tooltip`,
@@ -284,7 +285,7 @@ var MultipleBase = defineComponent({
284
285
  disabled: props.disabled,
285
286
  inputEditable: baseState.inputEditable.value,
286
287
  inputValue: inputValue.value,
287
- inputWidth,
288
+ inputWidth: inputWidth.value,
288
289
  measureRef,
289
290
  onInputMouseDown,
290
291
  onInputChange,
@@ -300,7 +301,7 @@ var MultipleBase = defineComponent({
300
301
  disabled: props.disabled,
301
302
  inputEditable: baseState.inputEditable.value,
302
303
  inputValue: inputValue.value,
303
- inputWidth,
304
+ inputWidth: inputWidth.value,
304
305
  measureRef,
305
306
  onInputMouseDown,
306
307
  onInputChange,
@@ -1 +1 @@
1
- {"version":3,"file":"MultipleBase.mjs","sources":["../../../../../src/components/Select/Selection/MultipleBase.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\nimport type { PropType, ComponentPublicInstance, VNodeChild } from 'vue';\nimport UIcon from '@uxd-ui/components/Icon';\nimport UPopover from '@uxd-ui/components/Popover';\nimport { X } from 'lucide-vue-next';\nimport type { JSX } from 'vue/jsx-runtime';\nimport ResizeObserver from '../../base/ResizeObserver';\nimport { getRender } from '../../../utils/slots';\nimport useMultipleBase, { REST_TAG_KEY } from '../hooks/useMultipleBase';\nimport SelectInput from './Input.vue';\nimport type { DisplayOption, SingleValueType, TagRenderFunction } from '../Select.type';\nimport type { IconPropType } from '../../../utils/globalType';\nimport type { PopoverProps } from '../../Popover';\n\nconst defaultMaxTagPlaceholder = (ommittedValus: string[]) => `+ ${ommittedValus.length}...`;\n\nexport const multipleBaseProps = {\n prefixCls: {\n type: String\n },\n values: {\n type: Array as PropType<DisplayOption[]>,\n default: () => [] as DisplayOption[]\n },\n searchValue: {\n type: String\n },\n filterable: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: undefined as undefined\n },\n open: {\n type: Boolean,\n default: undefined as undefined\n },\n inputRef: {\n type: Function as PropType<(el: Element | ComponentPublicInstance | null) => void>\n },\n tagTransitionName: {\n type: String\n },\n maxTagCount: {\n type: Number\n },\n maxTagTextLength: {\n type: [Number, String] as PropType<number | 'responsive'>\n },\n maxTagPlaceholder: {\n type: Function as PropType<(rest: DisplayOption[]) => string | VNodeChild | JSX.Element>,\n default: defaultMaxTagPlaceholder\n },\n maxTagTooltip: {\n type: Boolean,\n default: false\n },\n maxTagTooltipWidth: {\n type: Number,\n default: 99900\n },\n tagRender: {\n type: Function as PropType<TagRenderFunction>\n },\n removeIcon: {\n type: [String, Object] as PropType<IconPropType>\n },\n isShowTagTooltip: {\n type: Boolean,\n default: false\n },\n popoverProps: {\n type: Object as PropType<PopoverProps>,\n default: () => ({})\n },\n\n itemWidth: {\n type: Number,\n default: 10\n },\n containerWrapperWidth: {\n type: [Number, null] as PropType<number | null>,\n default: null as null\n },\n enableOverflow: {\n type: Boolean,\n default: false\n }\n};\n\nexport const multipleBaseEmits = [\n 'select',\n 'input-mousedown',\n 'input-change',\n 'input-keydown',\n 'input-compositionstart',\n 'input-compositionend',\n 'input-paste'\n];\n\nexport function renderSelectionItem(\n item: DisplayOption,\n props: any,\n {\n prefixCls,\n isNotRender,\n closable,\n onClose,\n values\n }: {\n prefixCls: string;\n isNotRender: boolean;\n closable: (displayItem: DisplayOption) => boolean;\n onClose: (value: SingleValueType, e: any) => void;\n values: DisplayOption[];\n displayRest: boolean;\n }\n) {\n const { tagRender, removeIcon, maxTagTooltip, maxTagTooltipWidth, popoverProps, isShowTagTooltip } = props;\n\n if (isNotRender) {\n const content = (\n <span\n class={{\n [`${item.class}`]: item.class,\n [`${prefixCls}-selection-item`]: true,\n [`${prefixCls}-selection-item-disabled`]: item.disabled\n }}\n >\n {item.key === REST_TAG_KEY || isShowTagTooltip ? (\n <UPopover\n disabled={!maxTagTooltip}\n trigger=\"hover\"\n dropdown-class={`${prefixCls}-dropdown-tooltip`}\n show-arrow={true}\n placement=\"top\"\n {...popoverProps}\n >\n {{\n default: () => (\n <span class={`${prefixCls}-selection-item-content`} title={item.title}>\n {getRender(item.displayLabel)()}\n </span>\n ),\n content: () => (\n <div class={`${prefixCls}-selection-tooltip`} style={{ maxWidth: `${maxTagTooltipWidth}px` }}>\n {values.map((tipItem) => (\n <span\n key={tipItem.key}\n class={{\n [`${prefixCls}-selection-item`]: true\n }}\n >\n <span class={`${prefixCls}-selection-item-content`} title={tipItem.title}>\n {getRender(tipItem.displayLabel)()}\n </span>\n {closable(tipItem) && (\n <UIcon\n class={`${prefixCls}-selection-item-remove`}\n {...({\n onMousedown: (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n } as any)}\n onClick={(e: any) => onClose(tipItem.value, e)}\n >\n <X />\n </UIcon>\n )}\n </span>\n ))}\n </div>\n )\n }}\n </UPopover>\n ) : (\n <>\n <span class={`${prefixCls}-selection-item-content`} title={item.title}>\n {getRender(item.displayLabel)()}\n </span>\n {closable(item) && (\n <UIcon\n class={`${prefixCls}-selection-item-remove`}\n {...({\n onMousedown: (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n } as any)}\n onClick={(e: any) => onClose(item.value, e)}\n >\n {removeIcon ? <component is={removeIcon} /> : <X />}\n </UIcon>\n )}\n </>\n )}\n </span>\n );\n\n return content;\n }\n return (\n <span\n class={item.class}\n onMousedown={(e: any) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {tagRender?.({\n ...item,\n closable: closable(item),\n onClose: (e: any) => {\n onClose(item.value, e);\n }\n })}\n </span>\n );\n}\n\nexport function renderSearchInput(\n props: any,\n {\n prefixCls,\n inputRef,\n disabled,\n inputEditable,\n inputValue,\n inputWidth,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n }: any\n) {\n return (\n <span class={`${prefixCls}-selection-search`} style={{ width: `${inputWidth}px` }}>\n <SelectInput\n input-ref={inputRef}\n prefix-cls={prefixCls}\n autocomplete=\"off\"\n disabled={disabled}\n editable={inputEditable}\n value={inputValue}\n onMousedown={onInputMouseDown}\n onChange={onInputChange}\n onKeydown={onInputKeydown}\n onCompositionstart={onInputCompositionStart}\n onCompositionend={onInputCompositionEnd}\n onPaste={onInputPaste}\n />\n <span ref={measureRef} class={`${prefixCls}-selection-search-mirror`} aria-hidden>\n {inputValue}&nbsp;\n </span>\n </span>\n );\n}\n\nexport function renderPlaceholder(showPlaceholder: boolean, prefixCls: string, slots: any) {\n return showPlaceholder ? <div class={`${prefixCls}-selection-placeholder`}>{slots.placeholder?.()}</div> : null;\n}\n\nexport default defineComponent({\n name: 'MultipleBase',\n props: multipleBaseProps,\n emits: multipleBaseEmits,\n setup(props, { emit, slots }) {\n const baseState = useMultipleBase(props, emit);\n\n return () => {\n const {\n displayValues,\n isNotRender,\n closable,\n onClose,\n inputValue,\n inputWidth,\n measureRef,\n showPlaceholder,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste,\n onOverflowItemResize,\n onSuffixResize,\n displayRest\n } = baseState;\n\n return (\n <>\n {displayValues.value.map((item: DisplayOption, index: number) => {\n const content = renderSelectionItem(item, props, {\n prefixCls: props.prefixCls,\n isNotRender: isNotRender.value,\n displayRest: displayRest.value,\n closable,\n onClose,\n values: props.values\n });\n\n return props.enableOverflow ? (\n <ResizeObserver key={item.key} onResize={(e) => onOverflowItemResize(e, item)}>\n <div\n class={`${props.prefixCls}-selection-item-wrapper`}\n style={{\n opacity:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 0\n : 1,\n height:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 0\n : undefined,\n overflowY:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'hidden'\n : undefined,\n pointerEvents:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'none'\n : undefined,\n position:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'absolute'\n : undefined\n }}\n >\n {content}\n </div>\n </ResizeObserver>\n ) : (\n content\n );\n })}\n\n {props.enableOverflow ? (\n <ResizeObserver onResize={onSuffixResize}>\n {renderSearchInput(props, {\n prefixCls: props.prefixCls,\n inputRef: props.inputRef,\n disabled: props.disabled,\n inputEditable: baseState.inputEditable.value,\n inputValue: inputValue.value,\n inputWidth,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n })}\n </ResizeObserver>\n ) : (\n renderSearchInput(props, {\n prefixCls: props.prefixCls,\n inputRef: props.inputRef,\n disabled: props.disabled,\n inputEditable: baseState.inputEditable.value,\n inputValue: inputValue.value,\n inputWidth,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n })\n )}\n\n {renderPlaceholder(showPlaceholder.value, props.prefixCls, slots)}\n </>\n );\n };\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defaultMaxTagPlaceholder","ommittedValus","length","multipleBaseProps","prefixCls","type","String","values","Array","default","searchValue","filterable","Boolean","disabled","undefined","open","inputRef","Function","tagTransitionName","maxTagCount","Number","maxTagTextLength","maxTagPlaceholder","maxTagTooltip","maxTagTooltipWidth","tagRender","removeIcon","isShowTagTooltip","popoverProps","itemWidth","containerWrapperWidth","enableOverflow","multipleBaseEmits","renderSelectionItem","item","props","isNotRender","closable","onClose","content","_createVNode","class","key","REST_TAG_KEY","UPopover","_mergeProps","title","getRender","displayLabel","maxWidth","map","tipItem","UIcon","onMousedown","e","stopPropagation","preventDefault","value","X","_Fragment","_resolveComponent","renderSearchInput","inputEditable","inputValue","inputWidth","measureRef","onInputMouseDown","onInputChange","onInputKeydown","onInputCompositionStart","onInputCompositionEnd","onInputPaste","width","SelectInput","_createTextVNode","renderPlaceholder","showPlaceholder","slots","placeholder","defineComponent","name","emits","setup","emit","baseState","useMultipleBase","_slot","displayValues","onOverflowItemResize","onSuffixResize","displayRest","index","ResizeObserver","opacity","mergedDisplayCount","height","overflowY","pointerEvents","position"],"mappings":"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"}
1
+ {"version":3,"file":"MultipleBase.mjs","sources":["../../../../../src/components/Select/Selection/MultipleBase.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\nimport type { PropType, ComponentPublicInstance, VNodeChild } from 'vue';\nimport UIcon from '@uxd-ui/components/Icon';\nimport UPopover from '@uxd-ui/components/Popover';\nimport { X } from 'lucide-vue-next';\nimport type { JSX } from 'vue/jsx-runtime';\nimport ResizeObserver from '../../base/ResizeObserver';\nimport { getRender } from '../../../utils/slots';\nimport useMultipleBase, { REST_TAG_KEY } from '../hooks/useMultipleBase';\nimport SelectInput from './Input.vue';\nimport type { DisplayOption, SingleValueType, TagRenderFunction } from '../Select.type';\nimport type { IconPropType } from '../../../utils/globalType';\nimport type { PopoverProps } from '../../Popover';\n\nconst defaultMaxTagPlaceholder = (ommittedValus: string[]) => `+ ${ommittedValus.length}...`;\n\nexport const multipleBaseProps = {\n prefixCls: {\n type: String\n },\n values: {\n type: Array as PropType<DisplayOption[]>,\n default: () => [] as DisplayOption[]\n },\n searchValue: {\n type: String\n },\n filterable: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: undefined as undefined\n },\n open: {\n type: Boolean,\n default: undefined as undefined\n },\n inputRef: {\n type: Function as PropType<(el: Element | ComponentPublicInstance | null) => void>\n },\n tagTransitionName: {\n type: String\n },\n maxTagCount: {\n type: Number\n },\n maxTagTextLength: {\n type: [Number, String] as PropType<number | 'responsive'>\n },\n maxTagPlaceholder: {\n type: Function as PropType<(rest: DisplayOption[]) => string | VNodeChild | JSX.Element>,\n default: defaultMaxTagPlaceholder\n },\n maxTagTooltip: {\n type: Boolean,\n default: false\n },\n maxTagTooltipWidth: {\n type: Number,\n default: 99900\n },\n tagRender: {\n type: Function as PropType<TagRenderFunction>\n },\n removeIcon: {\n type: [String, Object] as PropType<IconPropType>\n },\n isShowTagTooltip: {\n type: Boolean,\n default: false\n },\n popoverProps: {\n type: Object as PropType<PopoverProps>,\n default: () => ({})\n },\n\n itemWidth: {\n type: Number,\n default: 10\n },\n containerWrapperWidth: {\n type: [Number, null] as PropType<number | null>,\n default: null as null\n },\n enableOverflow: {\n type: Boolean,\n default: false\n }\n};\n\nexport const multipleBaseEmits = [\n 'select',\n 'input-mousedown',\n 'input-change',\n 'input-keydown',\n 'input-compositionstart',\n 'input-compositionend',\n 'input-paste'\n];\n\nexport function renderSelectionItem(\n item: DisplayOption,\n props: any,\n {\n prefixCls,\n isNotRender,\n closable,\n onClose,\n values,\n displayRest\n }: {\n prefixCls: string;\n isNotRender: boolean;\n closable: (displayItem: DisplayOption) => boolean;\n onClose: (value: SingleValueType, e: any) => void;\n values: DisplayOption[];\n displayRest: boolean;\n }\n) {\n const { tagRender, removeIcon, maxTagTooltip, maxTagTooltipWidth, popoverProps, isShowTagTooltip } = props;\n\n if (isNotRender) {\n const content = (\n <span\n class={{\n [`${item.class}`]: item.class,\n [`${prefixCls}-selection-item`]: true,\n [`${prefixCls}-selection-item-disabled`]: item.disabled\n }}\n >\n {(item.key === REST_TAG_KEY && (props.maxTagTextLength !== 'responsive' || displayRest)) || isShowTagTooltip ? (\n <UPopover\n disabled={!maxTagTooltip}\n trigger=\"hover\"\n dropdown-class={`${prefixCls}-dropdown-tooltip`}\n show-arrow={true}\n placement=\"top\"\n {...popoverProps}\n >\n {{\n default: () => (\n <span class={`${prefixCls}-selection-item-content`} title={item.title}>\n {getRender(item.displayLabel)()}\n </span>\n ),\n content: () => (\n <div class={`${prefixCls}-selection-tooltip`} style={{ maxWidth: `${maxTagTooltipWidth}px` }}>\n {values.map((tipItem) => (\n <span\n key={tipItem.key}\n class={{\n [`${prefixCls}-selection-item`]: true\n }}\n >\n <span class={`${prefixCls}-selection-item-content`} title={tipItem.title}>\n {getRender(tipItem.displayLabel)()}\n </span>\n {closable(tipItem) && (\n <UIcon\n class={`${prefixCls}-selection-item-remove`}\n {...({\n onMousedown: (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n } as any)}\n onClick={(e: any) => onClose(tipItem.value, e)}\n >\n <X />\n </UIcon>\n )}\n </span>\n ))}\n </div>\n )\n }}\n </UPopover>\n ) : (\n <>\n <span class={`${prefixCls}-selection-item-content`} title={item.title}>\n {getRender(item.displayLabel)()}\n </span>\n {closable(item) && (\n <UIcon\n class={`${prefixCls}-selection-item-remove`}\n {...({\n onMousedown: (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n } as any)}\n onClick={(e: any) => onClose(item.value, e)}\n >\n {removeIcon ? <component is={removeIcon} /> : <X />}\n </UIcon>\n )}\n </>\n )}\n </span>\n );\n\n return content;\n }\n return (\n <span\n class={item.class}\n onMousedown={(e: any) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {tagRender?.({\n ...item,\n closable: closable(item),\n onClose: (e: any) => {\n onClose(item.value, e);\n }\n })}\n </span>\n );\n}\n\nexport function renderSearchInput(\n props: any,\n {\n prefixCls,\n inputRef,\n disabled,\n inputEditable,\n inputValue,\n inputWidth,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n }: any\n) {\n return (\n <span class={`${prefixCls}-selection-search`} style={{ width: `${inputWidth}px` }}>\n <SelectInput\n input-ref={inputRef}\n prefix-cls={prefixCls}\n autocomplete=\"off\"\n disabled={disabled}\n editable={inputEditable}\n value={inputValue}\n onMousedown={onInputMouseDown}\n onChange={onInputChange}\n onKeydown={onInputKeydown}\n onCompositionstart={onInputCompositionStart}\n onCompositionend={onInputCompositionEnd}\n onPaste={onInputPaste}\n />\n <span ref={measureRef} class={`${prefixCls}-selection-search-mirror`} aria-hidden>\n {inputValue}&nbsp;\n </span>\n </span>\n );\n}\n\nexport function renderPlaceholder(showPlaceholder: boolean, prefixCls: string, slots: any) {\n return showPlaceholder ? <div class={`${prefixCls}-selection-placeholder`}>{slots.placeholder?.()}</div> : null;\n}\n\nexport default defineComponent({\n name: 'MultipleBase',\n props: multipleBaseProps,\n emits: multipleBaseEmits,\n setup(props, { emit, slots }) {\n const baseState = useMultipleBase(props, emit);\n\n return () => {\n const {\n displayValues,\n isNotRender,\n closable,\n onClose,\n inputValue,\n inputWidth,\n measureRef,\n showPlaceholder,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste,\n onOverflowItemResize,\n onSuffixResize,\n displayRest\n } = baseState;\n\n return (\n <>\n {displayValues.value.map((item: DisplayOption, index: number) => {\n const content = renderSelectionItem(item, props, {\n prefixCls: props.prefixCls,\n isNotRender: isNotRender.value,\n displayRest: displayRest.value,\n closable,\n onClose,\n values: props.values\n });\n\n return props.enableOverflow ? (\n <ResizeObserver key={item.key} onResize={(e) => onOverflowItemResize(e, item)}>\n <div\n class={`${props.prefixCls}-selection-item-wrapper`}\n style={{\n opacity:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 0\n : 1,\n height:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 0\n : undefined,\n overflowY:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'hidden'\n : undefined,\n pointerEvents:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'none'\n : undefined,\n position:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'absolute'\n : undefined\n }}\n >\n {content}\n </div>\n </ResizeObserver>\n ) : (\n content\n );\n })}\n\n {props.enableOverflow ? (\n <ResizeObserver onResize={onSuffixResize}>\n {renderSearchInput(props, {\n prefixCls: props.prefixCls,\n inputRef: props.inputRef,\n disabled: props.disabled,\n inputEditable: baseState.inputEditable.value,\n inputValue: inputValue.value,\n inputWidth: inputWidth.value,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n })}\n </ResizeObserver>\n ) : (\n renderSearchInput(props, {\n prefixCls: props.prefixCls,\n inputRef: props.inputRef,\n disabled: props.disabled,\n inputEditable: baseState.inputEditable.value,\n inputValue: inputValue.value,\n inputWidth: inputWidth.value,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n })\n )}\n\n {renderPlaceholder(showPlaceholder.value, props.prefixCls, slots)}\n </>\n );\n };\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defaultMaxTagPlaceholder","ommittedValus","length","multipleBaseProps","prefixCls","type","String","values","Array","default","searchValue","filterable","Boolean","disabled","undefined","open","inputRef","Function","tagTransitionName","maxTagCount","Number","maxTagTextLength","maxTagPlaceholder","maxTagTooltip","maxTagTooltipWidth","tagRender","removeIcon","isShowTagTooltip","popoverProps","itemWidth","containerWrapperWidth","enableOverflow","multipleBaseEmits","renderSelectionItem","item","props","isNotRender","closable","onClose","displayRest","content","_createVNode","class","key","REST_TAG_KEY","UPopover","_mergeProps","title","getRender","displayLabel","maxWidth","map","tipItem","UIcon","onMousedown","e","stopPropagation","preventDefault","value","X","_Fragment","_resolveComponent","renderSearchInput","inputEditable","inputValue","inputWidth","measureRef","onInputMouseDown","onInputChange","onInputKeydown","onInputCompositionStart","onInputCompositionEnd","onInputPaste","width","SelectInput","_createTextVNode","renderPlaceholder","showPlaceholder","slots","placeholder","defineComponent","name","emits","setup","emit","baseState","useMultipleBase","_slot","displayValues","onOverflowItemResize","onSuffixResize","index","ResizeObserver","opacity","mergedDisplayCount","height","overflowY","pointerEvents","position"],"mappings":"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"}
@@ -30,7 +30,7 @@ const _sfc_main = defineComponent({
30
30
  const {
31
31
  prefixCls,
32
32
  props: { width },
33
- size: { tableWidth }
33
+ size: { tableWidth, columnWidths }
34
34
  } = inject("tableContext", {});
35
35
  const tableRef = ref(null);
36
36
  const tableStyle = computed(() => {
@@ -47,7 +47,7 @@ const _sfc_main = defineComponent({
47
47
  }
48
48
  return style;
49
49
  });
50
- const getColumns = () => {
50
+ const computedColumns = computed(() => {
51
51
  let left = 0;
52
52
  let right = props.columns.filter((x) => x.fixed === "right").reduce((sum, column) => {
53
53
  var _a;
@@ -55,35 +55,36 @@ const _sfc_main = defineComponent({
55
55
  return sum + w;
56
56
  }, 0);
57
57
  return props.columns.map((column) => {
58
- var _a, _b;
58
+ var _a, _b, _c, _d;
59
59
  const rst = {
60
60
  ...column,
61
61
  className: column.fixed ? `${column.className || ""} ${prefixCls.value}-fixed-column ${prefixCls.value}-fixed-column-${column.fixed}` : column.className
62
62
  };
63
63
  if (column.fixed === "left") {
64
64
  rst.left = left;
65
- const w = getWidth((_a = column.width) != null ? _a : column.minWidth, tableWidth.value);
65
+ const w = getWidth((_b = (_a = columnWidths.value[column.key]) != null ? _a : column.width) != null ? _b : column.minWidth, tableWidth.value);
66
66
  left += w;
67
67
  if (column.lastLeft) {
68
68
  rst.className = `${rst.className || ""} ${prefixCls.value}-fixed-column-${column.fixed}-last`;
69
69
  }
70
70
  }
71
71
  if (column.fixed === "right") {
72
- const w = getWidth((_b = column.width) != null ? _b : column.minWidth, tableWidth.value);
72
+ const w = getWidth((_d = (_c = columnWidths.value[column.key]) != null ? _c : column.width) != null ? _d : column.minWidth, tableWidth.value);
73
73
  right -= w;
74
74
  rst.right = right;
75
75
  if (column.firstRight) {
76
76
  rst.className = `${rst.className || ""} ${prefixCls.value}-fixed-column-${column.fixed}-first`;
77
77
  }
78
78
  }
79
+ console.log(rst);
79
80
  return rst;
80
81
  });
81
- };
82
+ });
82
83
  return {
83
84
  tableRef,
84
85
  prefixCls,
85
86
  tableStyle,
86
- getColumns
87
+ computedColumns
87
88
  };
88
89
  }
89
90
  });
@@ -101,11 +102,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
101
102
  }, null, 8, ["columns", "is-head-table"]),
102
103
  _ctx.showHeader ? (openBlock(), createBlock(_component_TableHeader, {
103
104
  key: 0,
104
- columns: _ctx.getColumns()
105
+ columns: _ctx.computedColumns
105
106
  }, null, 8, ["columns"])) : createCommentVNode("v-if", true),
106
107
  _ctx.showBody ? (openBlock(), createBlock(_component_TableBody, {
107
108
  key: 1,
108
- columns: _ctx.getColumns()
109
+ columns: _ctx.computedColumns
109
110
  }, null, 8, ["columns"])) : createCommentVNode("v-if", true)
110
111
  ], 4);
111
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTable.mjs","sources":["../../../../src/components/Table/BaseTable.vue"],"sourcesContent":["<template>\n <table ref=\"tableRef\" :style=\"tableStyle\">\n <ColGroup :columns=\"columns\" :is-head-table=\"!showBody\" />\n <TableHeader v-if=\"showHeader\" :columns=\"getColumns()\" />\n <TableBody v-if=\"showBody\" :columns=\"getColumns()\" />\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, inject, ref } from 'vue';\nimport type { PropType, CSSProperties } from 'vue';\nimport ColGroup from './tableUnits/ColGroup.vue';\nimport TableHeader from './tableUnits/TableHeader.vue';\nimport TableBody from './tableUnits/TableBody.vue';\n// import useResizeObserver from '../base/hooks/useResizeObserver';\nimport type { InnerColumn, TableContext } from './Table.type';\nimport { getWidth } from './hooks/useTableResize';\n// import { debounce } from '../../utils/tools';\n\nexport default defineComponent({\n name: 'BaseTable',\n components: {\n ColGroup,\n TableHeader,\n TableBody\n },\n props: {\n showHeader: {\n type: Boolean,\n default: false\n },\n showBody: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Array as PropType<InnerColumn[]>,\n default: () => [] as InnerColumn[]\n }\n },\n setup(props) {\n const {\n prefixCls,\n props: { width },\n size: { tableWidth }\n } = inject<TableContext>('tableContext', {} as TableContext);\n const tableRef = ref<HTMLElement | null>(null);\n\n const tableStyle = computed(() => {\n const style = {} as CSSProperties;\n if (width.value) {\n style.width = typeof width.value === 'number' ? `${width.value}px` : width.value;\n } else if (props.columns.some((x) => x.fixed)) {\n // style.width = 'max-content';\n style.minWidth = '100%';\n }\n if (props.columns.some((x) => x.ellipsis) || props.columns.some((x) => x.resizable) || props.columns.some((x) => x.fixed)) {\n style.tableLayout = 'fixed';\n } else {\n style.tableLayout = 'auto';\n }\n\n return style;\n });\n\n const getColumns = () => {\n let left = 0;\n let right = props.columns\n .filter((x) => x.fixed === 'right')\n .reduce((sum, column) => {\n const w = getWidth(column.width ?? column.minWidth, tableWidth.value);\n return sum + w;\n }, 0);\n return props.columns.map((column) => {\n const rst = {\n ...column,\n className: column.fixed\n ? `${column.className || ''} ${prefixCls.value}-fixed-column ${prefixCls.value}-fixed-column-${column.fixed}`\n : column.className\n };\n if (column.fixed === 'left') {\n rst.left = left;\n const w = getWidth(column.width ?? column.minWidth, tableWidth.value);\n left += w;\n if (column.lastLeft) {\n rst.className = `${rst.className || ''} ${prefixCls.value}-fixed-column-${column.fixed}-last`;\n }\n }\n if (column.fixed === 'right') {\n const w = getWidth(column.width ?? column.minWidth, tableWidth.value);\n right -= w;\n rst.right = right;\n if (column.firstRight) {\n rst.className = `${rst.className || ''} ${prefixCls.value}-fixed-column-${column.fixed}-first`;\n }\n }\n\n return rst;\n });\n };\n\n // const debouncedHandleResize = debounce(syncFixedTableRowHeight, 150);\n // useResizeObserver(tableRef, debouncedHandleResize);\n\n return {\n tableRef,\n prefixCls,\n tableStyle,\n getColumns\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeStyle","_createVNode","_createBlock"],"mappings":";;;;;;;AAmBA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AACF,EACA,OAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAM;AAAC;AAClB;AACF,EACA,MAAM,OAAO;UACL;AAAA,MACJ;AAAA,MACA,OAAO,EAAE;AAAM,MACf,MAAM,EAAE;AAAW,QACjB,OAAqB,gBAAgB,EAAkB;UACrD,WAAW,IAAwB,IAAI;UAEvC,aAAa,SAAS,MAAM;YAC1B,QAAQ;UACV,MAAM,OAAO;cACT,QAAQ,OAAO,MAAM,UAAU,WAAW,GAAG,MAAM,YAAY,MAAM;AAAA,iBAClE,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG;cAEvC,WAAW;AAAA;UAEf,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG;cACnH,cAAc;AAAA,aACf;cACC,cAAc;AAAA;aAGf;AAAA,KACR;UAEK,aAAa,MAAM;UACnB,OAAO;UACP,QAAQ,MAAM,QACf,OAAO,CAAC,MAAM,EAAE,UAAU,OAAO,EACjC,OAAO,CAAC,KAAK,WAAW;AA5DjC;cA6DgB,IAAI,UAAS,YAAO,UAAP,YAAgB,OAAO,UAAU,WAAW,KAAK;eAC7D,MAAM;AAAA,SACZ,CAAC;aACC,MAAM,QAAQ,IAAI,CAAC,WAAW;AAhE3C;cAiEc,MAAM;AAAA,UACV,GAAG;AAAA,UACH,WAAW,OAAO,QACd,GAAG,OAAO,aAAa,MAAM,UAAU,sBAAsB,UAAU,sBAAsB,OAAO,UACpG,OAAO;AAAA;YAET,OAAO,UAAU,QAAQ;cACvB,OAAO;gBACL,IAAI,UAAS,YAAO,UAAP,YAAgB,OAAO,UAAU,WAAW,KAAK;kBAC5D;cACJ,OAAO,UAAU;gBACf,YAAY,GAAG,IAAI,aAAa,MAAM,UAAU,sBAAsB,OAAO;AAAA;AACnF;YAEE,OAAO,UAAU,SAAS;gBACtB,IAAI,UAAS,YAAO,UAAP,YAAgB,OAAO,UAAU,WAAW,KAAK;mBAC3D;cACL,QAAQ;cACR,OAAO,YAAY;gBACjB,YAAY,GAAG,IAAI,aAAa,MAAM,UAAU,sBAAsB,OAAO;AAAA;AACnF;eAGK;AAAA,OACR;AAAA;WAMI;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;;sBA9GCA,mBAIQ;IAJD,KAAI;AAAA,IAAY,OAAKC,eAAE,eAAU;AAAA;IACtCC,YAA0D;MAA/C,SAAS;MAAU,iBAAa,CAAG;;IAC3B,gCAAnBC,YAAyD;;MAAzB,SAAS;AAAU;IAClC,8BAAjBA,YAAqD;;MAAzB,SAAS;AAAU;;;;;;;"}
1
+ {"version":3,"file":"BaseTable.mjs","sources":["../../../../src/components/Table/BaseTable.vue"],"sourcesContent":["<template>\n <table ref=\"tableRef\" :style=\"tableStyle\">\n <ColGroup :columns=\"columns\" :is-head-table=\"!showBody\" />\n <TableHeader v-if=\"showHeader\" :columns=\"computedColumns\" />\n <TableBody v-if=\"showBody\" :columns=\"computedColumns\" />\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, inject, ref } from 'vue';\nimport type { PropType, CSSProperties } from 'vue';\nimport ColGroup from './tableUnits/ColGroup.vue';\nimport TableHeader from './tableUnits/TableHeader.vue';\nimport TableBody from './tableUnits/TableBody.vue';\n// import useResizeObserver from '../base/hooks/useResizeObserver';\nimport type { InnerColumn, TableContext } from './Table.type';\nimport { getWidth } from './hooks/useTableResize';\n// import { debounce } from '../../utils/tools';\n\nexport default defineComponent({\n name: 'BaseTable',\n components: {\n ColGroup,\n TableHeader,\n TableBody\n },\n props: {\n showHeader: {\n type: Boolean,\n default: false\n },\n showBody: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Array as PropType<InnerColumn[]>,\n default: () => [] as InnerColumn[]\n }\n },\n setup(props) {\n const {\n prefixCls,\n props: { width },\n size: { tableWidth, columnWidths }\n } = inject<TableContext>('tableContext', {} as TableContext);\n const tableRef = ref<HTMLElement | null>(null);\n\n const tableStyle = computed(() => {\n const style = {} as CSSProperties;\n if (width.value) {\n style.width = typeof width.value === 'number' ? `${width.value}px` : width.value;\n } else if (props.columns.some((x) => x.fixed)) {\n // style.width = 'max-content';\n style.minWidth = '100%';\n }\n if (props.columns.some((x) => x.ellipsis) || props.columns.some((x) => x.resizable) || props.columns.some((x) => x.fixed)) {\n style.tableLayout = 'fixed';\n } else {\n style.tableLayout = 'auto';\n }\n\n return style;\n });\n\n const computedColumns = computed(() => {\n let left = 0;\n let right = props.columns\n .filter((x) => x.fixed === 'right')\n .reduce((sum, column) => {\n const w = getWidth(column.width ?? column.minWidth, tableWidth.value);\n return sum + w;\n }, 0);\n return props.columns.map((column) => {\n const rst = {\n ...column,\n className: column.fixed\n ? `${column.className || ''} ${prefixCls.value}-fixed-column ${prefixCls.value}-fixed-column-${column.fixed}`\n : column.className\n };\n if (column.fixed === 'left') {\n rst.left = left;\n const w = getWidth(columnWidths.value[column.key] ?? column.width ?? column.minWidth, tableWidth.value);\n left += w;\n if (column.lastLeft) {\n rst.className = `${rst.className || ''} ${prefixCls.value}-fixed-column-${column.fixed}-last`;\n }\n }\n if (column.fixed === 'right') {\n const w = getWidth(columnWidths.value[column.key] ?? column.width ?? column.minWidth, tableWidth.value);\n right -= w;\n rst.right = right;\n if (column.firstRight) {\n rst.className = `${rst.className || ''} ${prefixCls.value}-fixed-column-${column.fixed}-first`;\n }\n }\n console.log(rst);\n return rst;\n });\n });\n\n // const debouncedHandleResize = debounce(syncFixedTableRowHeight, 150);\n // useResizeObserver(tableRef, debouncedHandleResize);\n\n return {\n tableRef,\n prefixCls,\n tableStyle,\n computedColumns\n };\n }\n});\n</script>\n"],"names":["_createElementBlock","_normalizeStyle","_createVNode","_createBlock"],"mappings":";;;;;;;AAmBA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AACF,EACA,OAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AACX,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAM;AAAC;AAClB;AACF,EACA,MAAM,OAAO;UACL;AAAA,MACJ;AAAA,MACA,OAAO,EAAE;AAAM,MACf,MAAM,EAAE,YAAY;AAAa,QAC/B,OAAqB,gBAAgB,EAAkB;UACrD,WAAW,IAAwB,IAAI;UAEvC,aAAa,SAAS,MAAM;YAC1B,QAAQ;UACV,MAAM,OAAO;cACT,QAAQ,OAAO,MAAM,UAAU,WAAW,GAAG,MAAM,YAAY,MAAM;AAAA,iBAClE,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG;cAEvC,WAAW;AAAA;UAEf,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,QAAQ,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG;cACnH,cAAc;AAAA,aACf;cACC,cAAc;AAAA;aAGf;AAAA,KACR;UAEK,kBAAkB,SAAS,MAAM;UACjC,OAAO;UACP,QAAQ,MAAM,QACf,OAAO,CAAC,MAAM,EAAE,UAAU,OAAO,EACjC,OAAO,CAAC,KAAK,WAAW;AA5DjC;cA6DgB,IAAI,UAAS,YAAO,UAAP,YAAgB,OAAO,UAAU,WAAW,KAAK;eAC7D,MAAM;AAAA,SACZ,CAAC;aACC,MAAM,QAAQ,IAAI,CAAC,WAAW;AAhE3C;cAiEc,MAAM;AAAA,UACV,GAAG;AAAA,UACH,WAAW,OAAO,QACd,GAAG,OAAO,aAAa,MAAM,UAAU,sBAAsB,UAAU,sBAAsB,OAAO,UACpG,OAAO;AAAA;YAET,OAAO,UAAU,QAAQ;cACvB,OAAO;gBACL,IAAI,UAAS,wBAAa,MAAM,OAAO,SAA1B,YAAkC,OAAO,UAAzC,YAAkD,OAAO,UAAU,WAAW,KAAK;kBAC9F;cACJ,OAAO,UAAU;gBACf,YAAY,GAAG,IAAI,aAAa,MAAM,UAAU,sBAAsB,OAAO;AAAA;AACnF;YAEE,OAAO,UAAU,SAAS;gBACtB,IAAI,UAAS,wBAAa,MAAM,OAAO,SAA1B,YAAkC,OAAO,UAAzC,YAAkD,OAAO,UAAU,WAAW,KAAK;mBAC7F;cACL,QAAQ;cACR,OAAO,YAAY;gBACjB,YAAY,GAAG,IAAI,aAAa,MAAM,UAAU,sBAAsB,OAAO;AAAA;AACnF;gBAEM,IAAI,GAAG;eACR;AAAA,OACR;AAAA,KACF;WAKM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;;;;sBA9GCA,mBAIQ;IAJD,KAAI;AAAA,IAAY,OAAKC,eAAE,eAAU;AAAA;IACtCC,YAA0D;MAA/C,SAAS;MAAU,iBAAa,CAAG;;IAC3B,gCAAnBC,YAA4D;;MAA5B,SAAS;;IACxB,8BAAjBA,YAAwD;;MAA5B,SAAS;;;;;;;;"}
@@ -17,7 +17,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
17
17
  tableRef: import("vue").Ref<HTMLElement, HTMLElement>;
18
18
  prefixCls: import("vue").ComputedRef<string>;
19
19
  tableStyle: import("vue").ComputedRef<CSSProperties>;
20
- getColumns: () => {
20
+ computedColumns: import("vue").ComputedRef<{
21
21
  className: string;
22
22
  _index?: number;
23
23
  rowSpan?: number;
@@ -64,7 +64,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
64
64
  autoSummary?: boolean;
65
65
  tips?: string;
66
66
  skeleton?: import("./Table.type").TableColumnSkeleton[];
67
- }[];
67
+ }[]>;
68
68
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
69
69
  showHeader: {
70
70
  type: BooleanConstructor;
@@ -36,7 +36,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
36
36
  tableRef: import("vue").Ref<HTMLElement, HTMLElement>;
37
37
  prefixCls: import("vue").ComputedRef<string>;
38
38
  tableStyle: import("vue").ComputedRef<CSSProperties>;
39
- getColumns: () => {
39
+ computedColumns: import("vue").ComputedRef<{
40
40
  className: string;
41
41
  _index?: number;
42
42
  rowSpan?: number;
@@ -83,7 +83,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
83
83
  autoSummary?: boolean;
84
84
  tips?: string;
85
85
  skeleton?: import("./Table.type").TableColumnSkeleton[];
86
- }[];
86
+ }[]>;
87
87
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
88
88
  showHeader: {
89
89
  type: BooleanConstructor;
@@ -33,7 +33,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
33
33
  tableRef: import("vue").Ref<HTMLElement, HTMLElement>;
34
34
  prefixCls: import("vue").ComputedRef<string>;
35
35
  tableStyle: import("vue").ComputedRef<import("vue").CSSProperties>;
36
- getColumns: () => {
36
+ computedColumns: import("vue").ComputedRef<{
37
37
  className: string;
38
38
  _index?: number;
39
39
  rowSpan?: number;
@@ -80,7 +80,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
80
80
  autoSummary?: boolean;
81
81
  tips?: string;
82
82
  skeleton?: import("./Table.type").TableColumnSkeleton[];
83
- }[];
83
+ }[]>;
84
84
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
85
85
  showHeader: {
86
86
  type: BooleanConstructor;
@@ -387,7 +387,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
387
387
  tableRef: import("vue").Ref<HTMLElement, HTMLElement>;
388
388
  prefixCls: import("vue").ComputedRef<string>;
389
389
  tableStyle: import("vue").ComputedRef<import("vue").CSSProperties>;
390
- getColumns: () => {
390
+ computedColumns: import("vue").ComputedRef<{
391
391
  className: string;
392
392
  _index?: number;
393
393
  rowSpan?: number;
@@ -434,7 +434,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
434
434
  autoSummary?: boolean;
435
435
  tips?: string;
436
436
  skeleton?: import("./Table.type").TableColumnSkeleton[];
437
- }[];
437
+ }[]>;
438
438
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
439
439
  showHeader: {
440
440
  type: BooleanConstructor;
@@ -7327,7 +7327,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7327
7327
  tableRef: import("vue").Ref<HTMLElement, HTMLElement>;
7328
7328
  prefixCls: import("vue").ComputedRef<string>;
7329
7329
  tableStyle: import("vue").ComputedRef<import("vue").CSSProperties>;
7330
- getColumns: () => {
7330
+ computedColumns: import("vue").ComputedRef<{
7331
7331
  className: string;
7332
7332
  _index?: number;
7333
7333
  rowSpan?: number;
@@ -7374,7 +7374,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7374
7374
  autoSummary?: boolean;
7375
7375
  tips?: string;
7376
7376
  skeleton?: import("./Table.type").TableColumnSkeleton[];
7377
- }[];
7377
+ }[]>;
7378
7378
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
7379
7379
  showHeader: {
7380
7380
  type: BooleanConstructor;
@@ -50,7 +50,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
50
50
  tableRef: import("vue").Ref<HTMLElement, HTMLElement>;
51
51
  prefixCls: import("vue").ComputedRef<string>;
52
52
  tableStyle: import("vue").ComputedRef<import("vue").CSSProperties>;
53
- getColumns: () => {
53
+ computedColumns: import("vue").ComputedRef<{
54
54
  className: string;
55
55
  _index?: number;
56
56
  rowSpan?: number;
@@ -97,7 +97,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
97
97
  autoSummary?: boolean;
98
98
  tips?: string;
99
99
  skeleton?: import("./Table.type").TableColumnSkeleton[];
100
- }[];
100
+ }[]>;
101
101
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
102
102
  showHeader: {
103
103
  type: BooleanConstructor;
@@ -6990,7 +6990,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
6990
6990
  tableRef: import("vue").Ref<HTMLElement, HTMLElement>;
6991
6991
  prefixCls: import("vue").ComputedRef<string>;
6992
6992
  tableStyle: import("vue").ComputedRef<import("vue").CSSProperties>;
6993
- getColumns: () => {
6993
+ computedColumns: import("vue").ComputedRef<{
6994
6994
  className: string;
6995
6995
  _index?: number;
6996
6996
  rowSpan?: number;
@@ -7037,7 +7037,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
7037
7037
  autoSummary?: boolean;
7038
7038
  tips?: string;
7039
7039
  skeleton?: import("./Table.type").TableColumnSkeleton[];
7040
- }[];
7040
+ }[]>;
7041
7041
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
7042
7042
  showHeader: {
7043
7043
  type: BooleanConstructor;
@@ -78,7 +78,7 @@ export declare const multipleBaseProps: {
78
78
  };
79
79
  };
80
80
  export declare const multipleBaseEmits: string[];
81
- export declare function renderSelectionItem(item: DisplayOption, props: any, { prefixCls, isNotRender, closable, onClose, values }: {
81
+ export declare function renderSelectionItem(item: DisplayOption, props: any, { prefixCls, isNotRender, closable, onClose, values, displayRest }: {
82
82
  prefixCls: string;
83
83
  isNotRender: boolean;
84
84
  closable: (displayItem: DisplayOption) => boolean;
@@ -95,7 +95,8 @@ function renderSelectionItem(item, props, {
95
95
  isNotRender,
96
96
  closable,
97
97
  onClose,
98
- values
98
+ values,
99
+ displayRest
99
100
  }) {
100
101
  const {
101
102
  tagRender,
@@ -112,7 +113,7 @@ function renderSelectionItem(item, props, {
112
113
  [`${prefixCls}-selection-item`]: true,
113
114
  [`${prefixCls}-selection-item-disabled`]: item.disabled
114
115
  }
115
- }, [item.key === useMultipleBase.REST_TAG_KEY || isShowTagTooltip ? vue.createVNode(index.UPopover, vue.mergeProps({
116
+ }, [item.key === useMultipleBase.REST_TAG_KEY && (props.maxTagTextLength !== "responsive" || displayRest) || isShowTagTooltip ? vue.createVNode(index.UPopover, vue.mergeProps({
116
117
  "disabled": !maxTagTooltip,
117
118
  "trigger": "hover",
118
119
  "dropdown-class": `${prefixCls}-dropdown-tooltip`,
@@ -288,7 +289,7 @@ var MultipleBase = vue.defineComponent({
288
289
  disabled: props.disabled,
289
290
  inputEditable: baseState.inputEditable.value,
290
291
  inputValue: inputValue.value,
291
- inputWidth,
292
+ inputWidth: inputWidth.value,
292
293
  measureRef,
293
294
  onInputMouseDown,
294
295
  onInputChange,
@@ -304,7 +305,7 @@ var MultipleBase = vue.defineComponent({
304
305
  disabled: props.disabled,
305
306
  inputEditable: baseState.inputEditable.value,
306
307
  inputValue: inputValue.value,
307
- inputWidth,
308
+ inputWidth: inputWidth.value,
308
309
  measureRef,
309
310
  onInputMouseDown,
310
311
  onInputChange,
@@ -1 +1 @@
1
- {"version":3,"file":"MultipleBase.js","sources":["../../../../../src/components/Select/Selection/MultipleBase.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\nimport type { PropType, ComponentPublicInstance, VNodeChild } from 'vue';\nimport UIcon from '@uxd-ui/components/Icon';\nimport UPopover from '@uxd-ui/components/Popover';\nimport { X } from 'lucide-vue-next';\nimport type { JSX } from 'vue/jsx-runtime';\nimport ResizeObserver from '../../base/ResizeObserver';\nimport { getRender } from '../../../utils/slots';\nimport useMultipleBase, { REST_TAG_KEY } from '../hooks/useMultipleBase';\nimport SelectInput from './Input.vue';\nimport type { DisplayOption, SingleValueType, TagRenderFunction } from '../Select.type';\nimport type { IconPropType } from '../../../utils/globalType';\nimport type { PopoverProps } from '../../Popover';\n\nconst defaultMaxTagPlaceholder = (ommittedValus: string[]) => `+ ${ommittedValus.length}...`;\n\nexport const multipleBaseProps = {\n prefixCls: {\n type: String\n },\n values: {\n type: Array as PropType<DisplayOption[]>,\n default: () => [] as DisplayOption[]\n },\n searchValue: {\n type: String\n },\n filterable: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: undefined as undefined\n },\n open: {\n type: Boolean,\n default: undefined as undefined\n },\n inputRef: {\n type: Function as PropType<(el: Element | ComponentPublicInstance | null) => void>\n },\n tagTransitionName: {\n type: String\n },\n maxTagCount: {\n type: Number\n },\n maxTagTextLength: {\n type: [Number, String] as PropType<number | 'responsive'>\n },\n maxTagPlaceholder: {\n type: Function as PropType<(rest: DisplayOption[]) => string | VNodeChild | JSX.Element>,\n default: defaultMaxTagPlaceholder\n },\n maxTagTooltip: {\n type: Boolean,\n default: false\n },\n maxTagTooltipWidth: {\n type: Number,\n default: 99900\n },\n tagRender: {\n type: Function as PropType<TagRenderFunction>\n },\n removeIcon: {\n type: [String, Object] as PropType<IconPropType>\n },\n isShowTagTooltip: {\n type: Boolean,\n default: false\n },\n popoverProps: {\n type: Object as PropType<PopoverProps>,\n default: () => ({})\n },\n\n itemWidth: {\n type: Number,\n default: 10\n },\n containerWrapperWidth: {\n type: [Number, null] as PropType<number | null>,\n default: null as null\n },\n enableOverflow: {\n type: Boolean,\n default: false\n }\n};\n\nexport const multipleBaseEmits = [\n 'select',\n 'input-mousedown',\n 'input-change',\n 'input-keydown',\n 'input-compositionstart',\n 'input-compositionend',\n 'input-paste'\n];\n\nexport function renderSelectionItem(\n item: DisplayOption,\n props: any,\n {\n prefixCls,\n isNotRender,\n closable,\n onClose,\n values\n }: {\n prefixCls: string;\n isNotRender: boolean;\n closable: (displayItem: DisplayOption) => boolean;\n onClose: (value: SingleValueType, e: any) => void;\n values: DisplayOption[];\n displayRest: boolean;\n }\n) {\n const { tagRender, removeIcon, maxTagTooltip, maxTagTooltipWidth, popoverProps, isShowTagTooltip } = props;\n\n if (isNotRender) {\n const content = (\n <span\n class={{\n [`${item.class}`]: item.class,\n [`${prefixCls}-selection-item`]: true,\n [`${prefixCls}-selection-item-disabled`]: item.disabled\n }}\n >\n {item.key === REST_TAG_KEY || isShowTagTooltip ? (\n <UPopover\n disabled={!maxTagTooltip}\n trigger=\"hover\"\n dropdown-class={`${prefixCls}-dropdown-tooltip`}\n show-arrow={true}\n placement=\"top\"\n {...popoverProps}\n >\n {{\n default: () => (\n <span class={`${prefixCls}-selection-item-content`} title={item.title}>\n {getRender(item.displayLabel)()}\n </span>\n ),\n content: () => (\n <div class={`${prefixCls}-selection-tooltip`} style={{ maxWidth: `${maxTagTooltipWidth}px` }}>\n {values.map((tipItem) => (\n <span\n key={tipItem.key}\n class={{\n [`${prefixCls}-selection-item`]: true\n }}\n >\n <span class={`${prefixCls}-selection-item-content`} title={tipItem.title}>\n {getRender(tipItem.displayLabel)()}\n </span>\n {closable(tipItem) && (\n <UIcon\n class={`${prefixCls}-selection-item-remove`}\n {...({\n onMousedown: (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n } as any)}\n onClick={(e: any) => onClose(tipItem.value, e)}\n >\n <X />\n </UIcon>\n )}\n </span>\n ))}\n </div>\n )\n }}\n </UPopover>\n ) : (\n <>\n <span class={`${prefixCls}-selection-item-content`} title={item.title}>\n {getRender(item.displayLabel)()}\n </span>\n {closable(item) && (\n <UIcon\n class={`${prefixCls}-selection-item-remove`}\n {...({\n onMousedown: (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n } as any)}\n onClick={(e: any) => onClose(item.value, e)}\n >\n {removeIcon ? <component is={removeIcon} /> : <X />}\n </UIcon>\n )}\n </>\n )}\n </span>\n );\n\n return content;\n }\n return (\n <span\n class={item.class}\n onMousedown={(e: any) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {tagRender?.({\n ...item,\n closable: closable(item),\n onClose: (e: any) => {\n onClose(item.value, e);\n }\n })}\n </span>\n );\n}\n\nexport function renderSearchInput(\n props: any,\n {\n prefixCls,\n inputRef,\n disabled,\n inputEditable,\n inputValue,\n inputWidth,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n }: any\n) {\n return (\n <span class={`${prefixCls}-selection-search`} style={{ width: `${inputWidth}px` }}>\n <SelectInput\n input-ref={inputRef}\n prefix-cls={prefixCls}\n autocomplete=\"off\"\n disabled={disabled}\n editable={inputEditable}\n value={inputValue}\n onMousedown={onInputMouseDown}\n onChange={onInputChange}\n onKeydown={onInputKeydown}\n onCompositionstart={onInputCompositionStart}\n onCompositionend={onInputCompositionEnd}\n onPaste={onInputPaste}\n />\n <span ref={measureRef} class={`${prefixCls}-selection-search-mirror`} aria-hidden>\n {inputValue}&nbsp;\n </span>\n </span>\n );\n}\n\nexport function renderPlaceholder(showPlaceholder: boolean, prefixCls: string, slots: any) {\n return showPlaceholder ? <div class={`${prefixCls}-selection-placeholder`}>{slots.placeholder?.()}</div> : null;\n}\n\nexport default defineComponent({\n name: 'MultipleBase',\n props: multipleBaseProps,\n emits: multipleBaseEmits,\n setup(props, { emit, slots }) {\n const baseState = useMultipleBase(props, emit);\n\n return () => {\n const {\n displayValues,\n isNotRender,\n closable,\n onClose,\n inputValue,\n inputWidth,\n measureRef,\n showPlaceholder,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste,\n onOverflowItemResize,\n onSuffixResize,\n displayRest\n } = baseState;\n\n return (\n <>\n {displayValues.value.map((item: DisplayOption, index: number) => {\n const content = renderSelectionItem(item, props, {\n prefixCls: props.prefixCls,\n isNotRender: isNotRender.value,\n displayRest: displayRest.value,\n closable,\n onClose,\n values: props.values\n });\n\n return props.enableOverflow ? (\n <ResizeObserver key={item.key} onResize={(e) => onOverflowItemResize(e, item)}>\n <div\n class={`${props.prefixCls}-selection-item-wrapper`}\n style={{\n opacity:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 0\n : 1,\n height:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 0\n : undefined,\n overflowY:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'hidden'\n : undefined,\n pointerEvents:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'none'\n : undefined,\n position:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'absolute'\n : undefined\n }}\n >\n {content}\n </div>\n </ResizeObserver>\n ) : (\n content\n );\n })}\n\n {props.enableOverflow ? (\n <ResizeObserver onResize={onSuffixResize}>\n {renderSearchInput(props, {\n prefixCls: props.prefixCls,\n inputRef: props.inputRef,\n disabled: props.disabled,\n inputEditable: baseState.inputEditable.value,\n inputValue: inputValue.value,\n inputWidth,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n })}\n </ResizeObserver>\n ) : (\n renderSearchInput(props, {\n prefixCls: props.prefixCls,\n inputRef: props.inputRef,\n disabled: props.disabled,\n inputEditable: baseState.inputEditable.value,\n inputValue: inputValue.value,\n inputWidth,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n })\n )}\n\n {renderPlaceholder(showPlaceholder.value, props.prefixCls, slots)}\n </>\n );\n };\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defaultMaxTagPlaceholder","ommittedValus","length","multipleBaseProps","prefixCls","type","String","values","Array","default","searchValue","filterable","Boolean","disabled","undefined","open","inputRef","Function","tagTransitionName","maxTagCount","Number","maxTagTextLength","maxTagPlaceholder","maxTagTooltip","maxTagTooltipWidth","tagRender","removeIcon","isShowTagTooltip","popoverProps","itemWidth","containerWrapperWidth","enableOverflow","multipleBaseEmits","renderSelectionItem","item","props","isNotRender","closable","onClose","content","_createVNode","class","key","REST_TAG_KEY","UPopover","_mergeProps","title","getRender","displayLabel","maxWidth","map","tipItem","UIcon","onMousedown","e","stopPropagation","preventDefault","value","X","_Fragment","_resolveComponent","renderSearchInput","inputEditable","inputValue","inputWidth","measureRef","onInputMouseDown","onInputChange","onInputKeydown","onInputCompositionStart","onInputCompositionEnd","onInputPaste","width","SelectInput","_createTextVNode","renderPlaceholder","showPlaceholder","slots","placeholder","defineComponent","name","emits","setup","emit","baseState","useMultipleBase","_slot","displayValues","onOverflowItemResize","onSuffixResize","displayRest","index","ResizeObserver","opacity","mergedDisplayCount","height","overflowY","pointerEvents","position"],"mappings":"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"}
1
+ {"version":3,"file":"MultipleBase.js","sources":["../../../../../src/components/Select/Selection/MultipleBase.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\nimport type { PropType, ComponentPublicInstance, VNodeChild } from 'vue';\nimport UIcon from '@uxd-ui/components/Icon';\nimport UPopover from '@uxd-ui/components/Popover';\nimport { X } from 'lucide-vue-next';\nimport type { JSX } from 'vue/jsx-runtime';\nimport ResizeObserver from '../../base/ResizeObserver';\nimport { getRender } from '../../../utils/slots';\nimport useMultipleBase, { REST_TAG_KEY } from '../hooks/useMultipleBase';\nimport SelectInput from './Input.vue';\nimport type { DisplayOption, SingleValueType, TagRenderFunction } from '../Select.type';\nimport type { IconPropType } from '../../../utils/globalType';\nimport type { PopoverProps } from '../../Popover';\n\nconst defaultMaxTagPlaceholder = (ommittedValus: string[]) => `+ ${ommittedValus.length}...`;\n\nexport const multipleBaseProps = {\n prefixCls: {\n type: String\n },\n values: {\n type: Array as PropType<DisplayOption[]>,\n default: () => [] as DisplayOption[]\n },\n searchValue: {\n type: String\n },\n filterable: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: undefined as undefined\n },\n open: {\n type: Boolean,\n default: undefined as undefined\n },\n inputRef: {\n type: Function as PropType<(el: Element | ComponentPublicInstance | null) => void>\n },\n tagTransitionName: {\n type: String\n },\n maxTagCount: {\n type: Number\n },\n maxTagTextLength: {\n type: [Number, String] as PropType<number | 'responsive'>\n },\n maxTagPlaceholder: {\n type: Function as PropType<(rest: DisplayOption[]) => string | VNodeChild | JSX.Element>,\n default: defaultMaxTagPlaceholder\n },\n maxTagTooltip: {\n type: Boolean,\n default: false\n },\n maxTagTooltipWidth: {\n type: Number,\n default: 99900\n },\n tagRender: {\n type: Function as PropType<TagRenderFunction>\n },\n removeIcon: {\n type: [String, Object] as PropType<IconPropType>\n },\n isShowTagTooltip: {\n type: Boolean,\n default: false\n },\n popoverProps: {\n type: Object as PropType<PopoverProps>,\n default: () => ({})\n },\n\n itemWidth: {\n type: Number,\n default: 10\n },\n containerWrapperWidth: {\n type: [Number, null] as PropType<number | null>,\n default: null as null\n },\n enableOverflow: {\n type: Boolean,\n default: false\n }\n};\n\nexport const multipleBaseEmits = [\n 'select',\n 'input-mousedown',\n 'input-change',\n 'input-keydown',\n 'input-compositionstart',\n 'input-compositionend',\n 'input-paste'\n];\n\nexport function renderSelectionItem(\n item: DisplayOption,\n props: any,\n {\n prefixCls,\n isNotRender,\n closable,\n onClose,\n values,\n displayRest\n }: {\n prefixCls: string;\n isNotRender: boolean;\n closable: (displayItem: DisplayOption) => boolean;\n onClose: (value: SingleValueType, e: any) => void;\n values: DisplayOption[];\n displayRest: boolean;\n }\n) {\n const { tagRender, removeIcon, maxTagTooltip, maxTagTooltipWidth, popoverProps, isShowTagTooltip } = props;\n\n if (isNotRender) {\n const content = (\n <span\n class={{\n [`${item.class}`]: item.class,\n [`${prefixCls}-selection-item`]: true,\n [`${prefixCls}-selection-item-disabled`]: item.disabled\n }}\n >\n {(item.key === REST_TAG_KEY && (props.maxTagTextLength !== 'responsive' || displayRest)) || isShowTagTooltip ? (\n <UPopover\n disabled={!maxTagTooltip}\n trigger=\"hover\"\n dropdown-class={`${prefixCls}-dropdown-tooltip`}\n show-arrow={true}\n placement=\"top\"\n {...popoverProps}\n >\n {{\n default: () => (\n <span class={`${prefixCls}-selection-item-content`} title={item.title}>\n {getRender(item.displayLabel)()}\n </span>\n ),\n content: () => (\n <div class={`${prefixCls}-selection-tooltip`} style={{ maxWidth: `${maxTagTooltipWidth}px` }}>\n {values.map((tipItem) => (\n <span\n key={tipItem.key}\n class={{\n [`${prefixCls}-selection-item`]: true\n }}\n >\n <span class={`${prefixCls}-selection-item-content`} title={tipItem.title}>\n {getRender(tipItem.displayLabel)()}\n </span>\n {closable(tipItem) && (\n <UIcon\n class={`${prefixCls}-selection-item-remove`}\n {...({\n onMousedown: (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n } as any)}\n onClick={(e: any) => onClose(tipItem.value, e)}\n >\n <X />\n </UIcon>\n )}\n </span>\n ))}\n </div>\n )\n }}\n </UPopover>\n ) : (\n <>\n <span class={`${prefixCls}-selection-item-content`} title={item.title}>\n {getRender(item.displayLabel)()}\n </span>\n {closable(item) && (\n <UIcon\n class={`${prefixCls}-selection-item-remove`}\n {...({\n onMousedown: (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n } as any)}\n onClick={(e: any) => onClose(item.value, e)}\n >\n {removeIcon ? <component is={removeIcon} /> : <X />}\n </UIcon>\n )}\n </>\n )}\n </span>\n );\n\n return content;\n }\n return (\n <span\n class={item.class}\n onMousedown={(e: any) => {\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n {tagRender?.({\n ...item,\n closable: closable(item),\n onClose: (e: any) => {\n onClose(item.value, e);\n }\n })}\n </span>\n );\n}\n\nexport function renderSearchInput(\n props: any,\n {\n prefixCls,\n inputRef,\n disabled,\n inputEditable,\n inputValue,\n inputWidth,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n }: any\n) {\n return (\n <span class={`${prefixCls}-selection-search`} style={{ width: `${inputWidth}px` }}>\n <SelectInput\n input-ref={inputRef}\n prefix-cls={prefixCls}\n autocomplete=\"off\"\n disabled={disabled}\n editable={inputEditable}\n value={inputValue}\n onMousedown={onInputMouseDown}\n onChange={onInputChange}\n onKeydown={onInputKeydown}\n onCompositionstart={onInputCompositionStart}\n onCompositionend={onInputCompositionEnd}\n onPaste={onInputPaste}\n />\n <span ref={measureRef} class={`${prefixCls}-selection-search-mirror`} aria-hidden>\n {inputValue}&nbsp;\n </span>\n </span>\n );\n}\n\nexport function renderPlaceholder(showPlaceholder: boolean, prefixCls: string, slots: any) {\n return showPlaceholder ? <div class={`${prefixCls}-selection-placeholder`}>{slots.placeholder?.()}</div> : null;\n}\n\nexport default defineComponent({\n name: 'MultipleBase',\n props: multipleBaseProps,\n emits: multipleBaseEmits,\n setup(props, { emit, slots }) {\n const baseState = useMultipleBase(props, emit);\n\n return () => {\n const {\n displayValues,\n isNotRender,\n closable,\n onClose,\n inputValue,\n inputWidth,\n measureRef,\n showPlaceholder,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste,\n onOverflowItemResize,\n onSuffixResize,\n displayRest\n } = baseState;\n\n return (\n <>\n {displayValues.value.map((item: DisplayOption, index: number) => {\n const content = renderSelectionItem(item, props, {\n prefixCls: props.prefixCls,\n isNotRender: isNotRender.value,\n displayRest: displayRest.value,\n closable,\n onClose,\n values: props.values\n });\n\n return props.enableOverflow ? (\n <ResizeObserver key={item.key} onResize={(e) => onOverflowItemResize(e, item)}>\n <div\n class={`${props.prefixCls}-selection-item-wrapper`}\n style={{\n opacity:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 0\n : 1,\n height:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 0\n : undefined,\n overflowY:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'hidden'\n : undefined,\n pointerEvents:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'none'\n : undefined,\n position:\n (index > baseState.mergedDisplayCount.value && item.key !== REST_TAG_KEY) || (!displayRest.value && item.key === REST_TAG_KEY)\n ? 'absolute'\n : undefined\n }}\n >\n {content}\n </div>\n </ResizeObserver>\n ) : (\n content\n );\n })}\n\n {props.enableOverflow ? (\n <ResizeObserver onResize={onSuffixResize}>\n {renderSearchInput(props, {\n prefixCls: props.prefixCls,\n inputRef: props.inputRef,\n disabled: props.disabled,\n inputEditable: baseState.inputEditable.value,\n inputValue: inputValue.value,\n inputWidth: inputWidth.value,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n })}\n </ResizeObserver>\n ) : (\n renderSearchInput(props, {\n prefixCls: props.prefixCls,\n inputRef: props.inputRef,\n disabled: props.disabled,\n inputEditable: baseState.inputEditable.value,\n inputValue: inputValue.value,\n inputWidth: inputWidth.value,\n measureRef,\n onInputMouseDown,\n onInputChange,\n onInputKeydown,\n onInputCompositionStart,\n onInputCompositionEnd,\n onInputPaste\n })\n )}\n\n {renderPlaceholder(showPlaceholder.value, props.prefixCls, slots)}\n </>\n );\n };\n }\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defaultMaxTagPlaceholder","ommittedValus","length","multipleBaseProps","prefixCls","type","String","values","Array","default","searchValue","filterable","Boolean","disabled","undefined","open","inputRef","Function","tagTransitionName","maxTagCount","Number","maxTagTextLength","maxTagPlaceholder","maxTagTooltip","maxTagTooltipWidth","tagRender","removeIcon","isShowTagTooltip","popoverProps","itemWidth","containerWrapperWidth","enableOverflow","multipleBaseEmits","renderSelectionItem","item","props","isNotRender","closable","onClose","displayRest","content","_createVNode","class","key","REST_TAG_KEY","UPopover","_mergeProps","title","getRender","displayLabel","maxWidth","map","tipItem","UIcon","onMousedown","e","stopPropagation","preventDefault","value","X","_Fragment","_resolveComponent","renderSearchInput","inputEditable","inputValue","inputWidth","measureRef","onInputMouseDown","onInputChange","onInputKeydown","onInputCompositionStart","onInputCompositionEnd","onInputPaste","width","SelectInput","_createTextVNode","renderPlaceholder","showPlaceholder","slots","placeholder","defineComponent","name","emits","setup","emit","baseState","useMultipleBase","_slot","displayValues","onOverflowItemResize","onSuffixResize","index","ResizeObserver","opacity","mergedDisplayCount","height","overflowY","pointerEvents","position"],"mappings":";;;;;;;;;;;;;AASsC,SAAAA,QAAAC;AAAA,gBAAAA,oBAAAC,OAAAC,UAAAC,SAAAC,KAAAJ,CAAA,4BAAAK,YAAAL,CAAA;AAAA;AAKtC,MAAMM,2BAA4BC,mBAA4B,KAAKA,cAAcC;MAEpEC,oBAAoB;AAAA,EAC/BC,WAAW;AAAA,IACTC,MAAMC;AAAAA;AACR,EACAC,QAAQ;AAAA,IACNF,MAAMG;AAAAA,IACNC,SAASA,MAAM;;AACjB,EACAC,aAAa;AAAA,IACXL,MAAMC;AAAAA;AACR,EACAK,YAAY;AAAA,IACVN,MAAMO;AAAAA,IACNH,SAAS;AAAA;AACX,EACAI,UAAU;AAAA,IACRR,MAAMO;AAAAA,IACNH,SAASK;AAAAA;AACX,EACAC,MAAM;AAAA,IACJV,MAAMO;AAAAA,IACNH,SAASK;AAAAA;AACX,EACAE,UAAU;AAAA,IACRX,MAAMY;AAAAA;AACR,EACAC,mBAAmB;AAAA,IACjBb,MAAMC;AAAAA;AACR,EACAa,aAAa;AAAA,IACXd,MAAMe;AAAAA;AACR,EACAC,kBAAkB;AAAA,IAChBhB,MAAM,CAACe,QAAQd,MAAM;AAAA;AACvB,EACAgB,mBAAmB;AAAA,IACjBjB,MAAMY;AAAAA,IACNR,SAAST;AAAAA;AACX,EACAuB,eAAe;AAAA,IACblB,MAAMO;AAAAA,IACNH,SAAS;AAAA;AACX,EACAe,oBAAoB;AAAA,IAClBnB,MAAMe;AAAAA,IACNX,SAAS;AAAA;AACX,EACAgB,WAAW;AAAA,IACTpB,MAAMY;AAAAA;AACR,EACAS,YAAY;AAAA,IACVrB,MAAM,CAACC,QAAQX,MAAM;AAAA;AACvB,EACAgC,kBAAkB;AAAA,IAChBtB,MAAMO;AAAAA,IACNH,SAAS;AAAA;AACX,EACAmB,cAAc;AAAA,IACZvB,MAAMV;AAAAA,IACNc,SAASA,OAAO;AAAC;AACnB,EAEAoB,WAAW;AAAA,IACTxB,MAAMe;AAAAA,IACNX,SAAS;AAAA;AACX,EACAqB,uBAAuB;AAAA,IACrBzB,MAAM,CAACe,QAAQ,IAAI;AAAA,IACnBX,SAAS;AAAA;AACX,EACAsB,gBAAgB;AAAA,IACd1B,MAAMO;AAAAA,IACNH,SAAS;AAAA;AAEb;MAEauB,oBAAoB,CAC/B,UACA,mBACA,gBACA,iBACA,0BACA,wBACA,aAAa;SAGCC,oBACdC,MACAC,OACA;AAAA,EACE/B;AAAAA,EACAgC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA/B;AAAAA,EACAgC;AAQF,GACA;AACA,QAAM;AAAA,IAAEd;AAAAA,IAAWC;AAAAA,IAAYH;AAAAA,IAAeC;AAAAA,IAAoBI;AAAAA,IAAcD;AAAAA,MAAqBQ;AAErG,MAAIC,aAAa;AACf,UAAMI,UAAOC;MAAA,SAEF;AAAA,QACL,CAAC,GAAGP,KAAKQ,UAAUR,KAAKQ;AAAAA,QACxB,CAAC,GAAGtC,6BAA6B;AAAA,QACjC,CAAC,GAAGA,sCAAsC8B,KAAKrB;AAAAA;AACjD,QAEEqB,KAAKS,QAAQC,iCAAiBT,MAAMd,qBAAqB,gBAAgBkB,gBAAiBZ,mBAAgBc,gBAAAI,gBAAAC;MAAA,YAE9F,CAACvB;AAAAA,MAAa;MAAA,kBAER,GAAGnB;AAAAA,MAA4B,cACnC;AAAA,MAAI;OAEZwB,YAAY;MAGdnB,SAASA,MAAAgC;QAAA,SACM,GAAGrC;AAAAA,QAAkC,SAAS8B,KAAKa;AAAAA,UAC7DC,gBAAUd,KAAKe,YAAY,GAAG;MAGnCT,SAASA,MAAAC;QAAA,SACK,GAAGrC;AAAAA,QAA6B,SAAS;AAAA,UAAE8C,UAAU,GAAG1B;AAAAA;AAAuB,UACxFjB,OAAO4C,IAAKC,aAAOX;QAAA,OAEXW,QAAQT;AAAAA,QAAG,SACT;AAAA,UACL,CAAC,GAAGvC,6BAA6B;AAAA;AACnC,UAACqC;QAAA,SAEY,GAAGrC;AAAAA,QAAkC,SAASgD,QAAQL;AAAAA,UAChEC,gBAAUI,QAAQH,YAAY,GAAG,IAEnCZ,SAASe,OAAO,KAACX,gBAAAY,eAAAP;QAAA,SAEP,GAAG1C;AAAAA;QAERkD,aAAcC,OAAkB;AAC9BA,YAAEC;AACFD,YAAEE;AAAe;AACnB;QAAC,WAEOF,OAAWjB,QAAQc,QAAQM,OAAOH,CAAC;AAAA;QAAC9C,SAAAA,OAAAgC,gBAAAkB;QAIjD,EAEJ,CAAC;SAELlB,gBAAAmB,qBAAAnB;MAAA,SAKU,GAAGrC;AAAAA,MAAkC,SAAS8B,KAAKa;AAAAA,QAC7DC,gBAAUd,KAAKe,YAAY,GAAG,IAEhCZ,SAASH,IAAI,KAACO,gBAAAY,eAAAP;MAAA,SAEJ,GAAG1C;AAAAA;MAERkD,aAAcC,OAAkB;AAC9BA,UAAEC;AACFD,UAAEE;AAAe;AACnB;MAAC,WAEOF,OAAWjB,QAAQJ,KAAKwB,OAAOH,CAAC;AAAA;MAAC9C,SAAAA,OAE1CiB,aAAUe,gBAAAoB;QAAA,MAAkBnC;AAAAA,iBAAUe,gBAAAkB,4BAAY;AAAA,MAEtD,EAEJ;AAIL,WAAOnB;AAAAA;AAET,SAAAC;IAAA,SAEWP,KAAKQ;AAAAA,IAAK,eACHa,OAAW;AACvBA,QAAEC;AACFD,QAAEE;AAAe;AACnB,MAEChC,uCAAY;AAAA,IACX,GAAGS;AAAAA,IACHG,UAAUA,SAASH,IAAI;AAAA,IACvBI,SAAUiB,OAAW;AACnBjB,cAAQJ,KAAKwB,OAAOH,CAAC;AAAA;AACvB,IACA;AAGR;SAEgBO,kBACd3B,OACA;AAAA,EACE/B;AAAAA,EACAY;AAAAA,EACAH;AAAAA,EACAkD;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AACG,GACL;AACA,SAAA/B;IAAA,SACe,GAAGrC;AAAAA,IAA4B,SAAS;AAAA,MAAEqE,OAAO,GAAGR;AAAAA;AAAe,MAACxB,gBAAAiC;IAAA,aAElE1D;AAAAA,IAAQ,cACPZ;AAAAA,IAAS;IAAA,YAEXS;AAAAA,IAAQ,YACRkD;AAAAA,IAAa,SAChBC;AAAAA,IAAU,eACJG;AAAAA,IAAgB,YACnBC;AAAAA,IAAa,aACZC;AAAAA,IAAc,sBACLC;AAAAA,IAAuB,oBACzBC;AAAAA,IAAqB,WAC9BC;AAAAA,YAAY/B;IAAA,OAEZyB;AAAAA,IAAU,SAAS,GAAG9D;AAAAA,IAAmC;MACjE4D,YAAUW;AAInB;SAEgBC,kBAAkBC,iBAA0BzE,WAAmB0E,OAAY;AAzQ3F;AA0QE,SAAOD,kBAAepC;IAAA,SAAe,GAAGrC;AAAAA,OAAoC0E,WAAMC,gBAAND,8BAAqB,KAAU;AAC7G;AAEA,mBAAeE,oBAAgB;AAAA,EAC7BC,MAAM;AAAA,EACN9C,OAAOhC;AAAAA,EACP+E,OAAOlD;AAAAA,EACPmD,MAAMhD,OAAO;AAAA,IAAEiD;AAAAA,IAAMN;AAAAA,KAAS;AAC5B,UAAMO,YAAYC,2BAAgBnD,OAAOiD,IAAI;AAE7C,WAAO,MAAM;AAAA,UAAAG;AACX,YAAM;AAAA,QACJC;AAAAA,QACApD;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACA0B;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAW;AAAAA,QACAV;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAiB;AAAAA,QACAC;AAAAA,QACAnD;AAAAA,UACE8C;AAEJ,aAAA5C,gBAAAmB,qBAEK4B,cAAc9B,MAAMP,IAAI,CAACjB,MAAqByD,UAAkB;AAC/D,cAAMnD,UAAUP,oBAAoBC,MAAMC,OAAO;AAAA,UAC/C/B,WAAW+B,MAAM/B;AAAAA,UACjBgC,aAAaA,YAAYsB;AAAAA,UACzBnB,aAAaA,YAAYmB;AAAAA,UACzBrB;AAAAA,UACAC;AAAAA,UACA/B,QAAQ4B,MAAM5B;AAAAA,SACf;AAED,eAAO4B,MAAMJ,iBAAcU,gBAAAmD;UAAA,OACJ1D,KAAKS;AAAAA,UAAG,YAAaY,OAAMkC,qBAAqBlC,GAAGrB,IAAI;AAAA;UAACzB,SAAAA,OAAAgC;YAAA,SAElE,GAAGN,MAAM/B;AAAAA,YAAkC,SAC3C;AAAA,cACLyF,SACGF,QAAQN,UAAUS,mBAAmBpC,SAASxB,KAAKS,QAAQC,gCAAkB,CAACL,YAAYmB,SAASxB,KAAKS,QAAQC,+BAC7G,IACA;AAAA,cACNmD,QACGJ,QAAQN,UAAUS,mBAAmBpC,SAASxB,KAAKS,QAAQC,gCAAkB,CAACL,YAAYmB,SAASxB,KAAKS,QAAQC,+BAC7G,IACA9B;AAAAA,cACNkF,WACGL,QAAQN,UAAUS,mBAAmBpC,SAASxB,KAAKS,QAAQC,gCAAkB,CAACL,YAAYmB,SAASxB,KAAKS,QAAQC,+BAC7G,WACA9B;AAAAA,cACNmF,eACGN,QAAQN,UAAUS,mBAAmBpC,SAASxB,KAAKS,QAAQC,gCAAkB,CAACL,YAAYmB,SAASxB,KAAKS,QAAQC,+BAC7G,SACA9B;AAAAA,cACNoF,UACGP,QAAQN,UAAUS,mBAAmBpC,SAASxB,KAAKS,QAAQC,gCAAkB,CAACL,YAAYmB,SAASxB,KAAKS,QAAQC,+BAC7G,aACA9B;AAAAA;AACR,cAEC0B,OAAO;aAIZA;AAAAA,OAEH,GAEAL,MAAMJ,iBAAcU,gBAAAmD;QAAA,YACOF;AAAAA,SAAcjG,QAAA8F,QACrCzB,kBAAkB3B,OAAO;AAAA,QACxB/B,WAAW+B,MAAM/B;AAAAA,QACjBY,UAAUmB,MAAMnB;AAAAA,QAChBH,UAAUsB,MAAMtB;AAAAA,QAChBkD,eAAesB,UAAUtB,cAAcL;AAAAA,QACvCM,YAAYA,WAAWN;AAAAA,QACvBO,YAAYA,WAAWP;AAAAA,QACvBQ;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,OACD,CAAC,IAAAe;QAAA9E,SAAAA,OAAA8E,KAAA;AAAA,WAGJzB,kBAAkB3B,OAAO;AAAA,QACvB/B,WAAW+B,MAAM/B;AAAAA,QACjBY,UAAUmB,MAAMnB;AAAAA,QAChBH,UAAUsB,MAAMtB;AAAAA,QAChBkD,eAAesB,UAAUtB,cAAcL;AAAAA,QACvCM,YAAYA,WAAWN;AAAAA,QACvBO,YAAYA,WAAWP;AAAAA,QACvBQ;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,OACD,GAGFI,kBAAkBC,gBAAgBnB,OAAOvB,MAAM/B,WAAW0E,KAAK,CAAC;;AAGvE;AAEJ,CAAC;;;;;;;;;"}
@@ -34,7 +34,7 @@ const _sfc_main = vue.defineComponent({
34
34
  const {
35
35
  prefixCls,
36
36
  props: { width },
37
- size: { tableWidth }
37
+ size: { tableWidth, columnWidths }
38
38
  } = vue.inject("tableContext", {});
39
39
  const tableRef = vue.ref(null);
40
40
  const tableStyle = vue.computed(() => {
@@ -51,7 +51,7 @@ const _sfc_main = vue.defineComponent({
51
51
  }
52
52
  return style;
53
53
  });
54
- const getColumns = () => {
54
+ const computedColumns = vue.computed(() => {
55
55
  let left = 0;
56
56
  let right = props.columns.filter((x) => x.fixed === "right").reduce((sum, column) => {
57
57
  var _a;
@@ -59,35 +59,36 @@ const _sfc_main = vue.defineComponent({
59
59
  return sum + w;
60
60
  }, 0);
61
61
  return props.columns.map((column) => {
62
- var _a, _b;
62
+ var _a, _b, _c, _d;
63
63
  const rst = {
64
64
  ...column,
65
65
  className: column.fixed ? `${column.className || ""} ${prefixCls.value}-fixed-column ${prefixCls.value}-fixed-column-${column.fixed}` : column.className
66
66
  };
67
67
  if (column.fixed === "left") {
68
68
  rst.left = left;
69
- const w = useTableResize.getWidth((_a = column.width) != null ? _a : column.minWidth, tableWidth.value);
69
+ const w = useTableResize.getWidth((_b = (_a = columnWidths.value[column.key]) != null ? _a : column.width) != null ? _b : column.minWidth, tableWidth.value);
70
70
  left += w;
71
71
  if (column.lastLeft) {
72
72
  rst.className = `${rst.className || ""} ${prefixCls.value}-fixed-column-${column.fixed}-last`;
73
73
  }
74
74
  }
75
75
  if (column.fixed === "right") {
76
- const w = useTableResize.getWidth((_b = column.width) != null ? _b : column.minWidth, tableWidth.value);
76
+ const w = useTableResize.getWidth((_d = (_c = columnWidths.value[column.key]) != null ? _c : column.width) != null ? _d : column.minWidth, tableWidth.value);
77
77
  right -= w;
78
78
  rst.right = right;
79
79
  if (column.firstRight) {
80
80
  rst.className = `${rst.className || ""} ${prefixCls.value}-fixed-column-${column.fixed}-first`;
81
81
  }
82
82
  }
83
+ console.log(rst);
83
84
  return rst;
84
85
  });
85
- };
86
+ });
86
87
  return {
87
88
  tableRef,
88
89
  prefixCls,
89
90
  tableStyle,
90
- getColumns
91
+ computedColumns
91
92
  };
92
93
  }
93
94
  });
@@ -105,11 +106,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
105
106
  }, null, 8, ["columns", "is-head-table"]),
106
107
  _ctx.showHeader ? (vue.openBlock(), vue.createBlock(_component_TableHeader, {
107
108
  key: 0,
108
- columns: _ctx.getColumns()
109
+ columns: _ctx.computedColumns
109
110
  }, null, 8, ["columns"])) : vue.createCommentVNode("v-if", true),
110
111
  _ctx.showBody ? (vue.openBlock(), vue.createBlock(_component_TableBody, {
111
112
  key: 1,
112
- columns: _ctx.getColumns()
113
+ columns: _ctx.computedColumns
113
114
  }, null, 8, ["columns"])) : vue.createCommentVNode("v-if", true)
114
115
  ], 4);
115
116
  }