@koi-design/uxd-ui 14.0.13 → 14.0.14
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.
- package/es/components/Table/BaseTable.mjs +4 -1
- package/es/components/Table/BaseTable.mjs.map +1 -1
- package/es/components/Table/BaseTable.vue.d.ts +18 -2
- package/es/components/Table/BodyTable.vue.d.ts +18 -2
- package/es/components/Table/HeadTable.vue.d.ts +18 -2
- package/es/components/Table/Table.mjs +6 -2
- package/es/components/Table/Table.mjs.map +1 -1
- package/es/components/Table/Table.type.d.ts +2 -0
- package/es/components/Table/Table.type.mjs.map +1 -1
- package/es/components/Table/Table.vue.d.ts +36 -4
- package/es/components/Table/TableBox.vue.d.ts +36 -4
- package/es/components/Table/hooks/useTableResize.d.ts +2 -0
- package/es/components/Table/hooks/useTableResize.mjs +8 -1
- package/es/components/Table/hooks/useTableResize.mjs.map +1 -1
- package/es/components/Table/tableUnits/ColGroup.mjs +14 -3
- package/es/components/Table/tableUnits/ColGroup.mjs.map +1 -1
- package/es/components/Table/tableUnits/ColGroup.vue.d.ts +10 -0
- package/es/components/Table/tableUnits/ExpandRows.vue.d.ts +4 -1
- package/es/components/Table/tableUnits/TableBody.vue.d.ts +8 -2
- package/es/components/Table/tableUnits/TableCell.mjs +6 -4
- package/es/components/Table/tableUnits/TableCell.mjs.map +1 -1
- package/es/components/Table/tableUnits/TableCell.vue.d.ts +4 -1
- package/es/components/Table/tableUnits/TableRow.vue.d.ts +4 -1
- package/lib/components/Table/BaseTable.js +4 -1
- package/lib/components/Table/BaseTable.js.map +1 -1
- package/lib/components/Table/BaseTable.vue.d.ts +18 -2
- package/lib/components/Table/BodyTable.vue.d.ts +18 -2
- package/lib/components/Table/HeadTable.vue.d.ts +18 -2
- package/lib/components/Table/Table.js +6 -2
- package/lib/components/Table/Table.js.map +1 -1
- package/lib/components/Table/Table.type.d.ts +2 -0
- package/lib/components/Table/Table.type.js.map +1 -1
- package/lib/components/Table/Table.vue.d.ts +36 -4
- package/lib/components/Table/TableBox.vue.d.ts +36 -4
- package/lib/components/Table/hooks/useTableResize.d.ts +2 -0
- package/lib/components/Table/hooks/useTableResize.js +8 -1
- package/lib/components/Table/hooks/useTableResize.js.map +1 -1
- package/lib/components/Table/tableUnits/ColGroup.js +14 -3
- package/lib/components/Table/tableUnits/ColGroup.js.map +1 -1
- package/lib/components/Table/tableUnits/ColGroup.vue.d.ts +10 -0
- package/lib/components/Table/tableUnits/ExpandRows.vue.d.ts +4 -1
- package/lib/components/Table/tableUnits/TableBody.vue.d.ts +8 -2
- package/lib/components/Table/tableUnits/TableCell.js +6 -4
- package/lib/components/Table/tableUnits/TableCell.js.map +1 -1
- package/lib/components/Table/tableUnits/TableCell.vue.d.ts +4 -1
- package/lib/components/Table/tableUnits/TableRow.vue.d.ts +4 -1
- package/package.json +1 -1
- package/types/components/Table/BaseTable.vue.d.ts +18 -2
- package/types/components/Table/BodyTable.vue.d.ts +18 -2
- package/types/components/Table/HeadTable.vue.d.ts +18 -2
- package/types/components/Table/Table.type.d.ts +2 -0
- package/types/components/Table/Table.vue.d.ts +36 -4
- package/types/components/Table/TableBox.vue.d.ts +36 -4
- package/types/components/Table/hooks/useTableResize.d.ts +2 -0
- package/types/components/Table/tableUnits/ColGroup.vue.d.ts +10 -0
- package/types/components/Table/tableUnits/ExpandRows.vue.d.ts +4 -1
- package/types/components/Table/tableUnits/TableBody.vue.d.ts +8 -2
- package/types/components/Table/tableUnits/TableCell.vue.d.ts +4 -1
- package/types/components/Table/tableUnits/TableRow.vue.d.ts +4 -1
- package/uxd-ui.esm.min.mjs +6 -6
- package/uxd-ui.esm.mjs +39 -11
- package/uxd-ui.umd.js +39 -11
- package/uxd-ui.umd.min.js +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sources":["../../../../src/components/Table/Table.vue"],"sourcesContent":["<template>\n <ResizeObserver @resize=\"debouncedHandleResize\">\n <div :class=\"[`${prefixCls}-wrapper`]\">\n <div\n v-if=\"showPagination && pagination && (pagination.position === 'top' || pagination.position === 'both')\"\n :class=\"{\n [`${prefixCls}-pagination`]: true,\n [`${prefixCls}-pagination-top`]: true,\n [`${prefixCls}-pagination-right`]: pagination && pagination.align === 'right'\n }\"\n >\n <Pagination v-bind=\"paginationOptions\" :total=\"computedPageTotal\" @change=\"handlePageChange\" @page-size-change=\"handlePageSizeChange\" />\n </div>\n <div\n :ref=\"saveRef('table')\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${size}`,\n {\n [`${prefixCls}-${variant}`]: !isBorder,\n [`${prefixCls}-border`]: !!isBorder,\n [`${prefixCls}-radius`]: variant !== 'ghost' && !border && radius,\n [`${prefixCls}-empty`]: !data.length,\n [`${prefixCls}-without-column-header`]: !showHeader,\n [`${prefixCls}-fixed-header`]: !!maxHeight,\n [`${prefixCls}-scroll-position-left`]: scrollPosition === 'left' || scrollPosition === 'both',\n [`${prefixCls}-scroll-position-right`]: scrollPosition === 'right' || scrollPosition === 'both',\n [`${prefixCls}-dragging`]: showResizeLine,\n [`${prefixCls}-stripe`]: stripe\n }\n ]\"\n >\n <div v-if=\"$slots.title\" :class=\"`${prefixCls}-title`\">\n <slot name=\"title\" />\n </div>\n <div :class=\"`${prefixCls}-content`\">\n <TableBox :columns=\"updatedColumns\" @head-scroll=\"handleBodyScrollX\" @body-scroll=\"handleBodyScroll\" />\n <div v-if=\"!currentDatas.length\" :class=\"`${prefixCls}-placeholder`\">\n <slot name=\"empty\">\n {{ emptyText }}\n </slot>\n </div>\n </div>\n <div v-show=\"showResizeLine\" :ref=\"saveRef('resizeLine')\" :class=\"`${prefixCls}-resize-line`\" />\n <Spin v-if=\"loadingType === 'spinner'\" fix :loading=\"loading\" />\n </div>\n <div v-if=\"$slots.footer\" :class=\"`${prefixCls}-footer`\">\n <slot name=\"footer\" />\n </div>\n <div\n v-if=\"showPagination && ((pagination && pagination.position !== 'top') || !pagination)\"\n :class=\"{\n [`${prefixCls}-pagination`]: true,\n [`${prefixCls}-pagination-bottom`]: true,\n [`${prefixCls}-pagination-right`]: pagination && pagination.align === 'right'\n }\"\n >\n <Pagination v-bind=\"paginationOptions\" :total=\"computedPageTotal\" @change=\"handlePageChange\" @page-size-change=\"handlePageSizeChange\" />\n </div>\n </div>\n </ResizeObserver>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, provide, reactive, toRefs, ref, onMounted, nextTick, onBeforeUnmount, onUpdated, watch } from 'vue';\nimport Spin from '@uxd-ui/components/Spin';\nimport Pagination from '@uxd-ui/components/Pagination';\nimport { debounce } from '../../utils/tools';\n// import Container from '../base/Container';\nimport TableBox from './TableBox.vue';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport ResizeObserver from '../base/ResizeObserver';\nimport useUpdateColumns from './hooks/useUpdateColumns';\nimport useUpdateDatas from './hooks/useUpdateDatas';\nimport useTableResize from './hooks/useTableResize';\nimport useExpander from './hooks/useExpander';\nimport useSelection from './hooks/useSelection';\nimport useDraggable from './hooks/useDraggable';\nimport useFilterSortPage from './hooks/useFilterSortPage';\nimport { tableProps, tableEmits, type SaveRef, type TableRefs, type TableColumn, type InnerColumn } from './Table.type';\n\nexport default defineComponent({\n name: 'UTable',\n components: {\n TableBox,\n Spin,\n Pagination,\n ResizeObserver\n },\n props: tableProps,\n emits: tableEmits,\n setup(props, { slots, emit }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('table');\n const showResizeLine = ref(false);\n const tableRefs = reactive({} as TableRefs);\n const saveRef: SaveRef = (key: string) => {\n return (el: any) => {\n tableRefs[key] = el;\n };\n };\n\n const locale = computed(() => {\n return { ...globalConfig.locale.table, ...props.locale };\n });\n\n const isBorder = computed(() => {\n const b = props.variant === 'border' || props.border;\n return b;\n });\n\n // ============ datas ===============\n const { updatedDatas } = useUpdateDatas(props);\n\n // ============= sort & fitler =============\n const {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n handlePageChange,\n handlePageSizeChange\n } = useFilterSortPage(props, updatedDatas, emit);\n\n // ================ draggable ====================\n const { setRowRefs, draggableColumn } = useDraggable(props, tableRefs);\n\n // ================ expander ====================\n const {\n expandedRowKeys,\n showChildrenRowKeys,\n handleExpandChange,\n isRowExpanded,\n expandedRowRender,\n isTreeTable,\n expandColumn,\n expandIconColumnIndex\n } = useExpander(props, slots, currentDatas, emit);\n\n const { selectionColumn } = useSelection(props, updatedDatas, currentDatas, prefixCls, locale);\n\n // ============ columns ===============\n const { updatedColumns, isColumnFixed, isLeftFixed, isRightFixed, leftColumns, rightColumns } = useUpdateColumns(props, slots, {\n draggableColumn,\n expandColumn,\n selectionColumn\n });\n\n // ============ resize ==============\n // #region\n const {\n // sizesMap,\n handleResize,\n isScrollX,\n // fixedHeadRowsHeight,\n // fixedBodyRowsHeight,\n scrollPosition,\n // syncFixedTableRowHeight,\n setScrollPositionClass,\n resetScrollX,\n tableWidth,\n resizeColumns,\n clearResizeTimer,\n setResizeWidth\n } = useTableResize(updatedColumns, tableRefs, prefixCls, isColumnFixed, props);\n\n const debouncedHandleResize = debounce(handleResize, 150);\n\n onMounted(() => {\n nextTick(() => {\n setTimeout(() => {\n handleResize();\n resetScrollX();\n }, 0);\n });\n });\n\n onUpdated(() => {\n nextTick(() => {\n handleResize();\n });\n });\n\n onBeforeUnmount(() => {\n if (debouncedHandleResize) {\n debouncedHandleResize.cancel();\n }\n clearResizeTimer();\n });\n // #endregion\n\n // ============ scroll ===============\n // #region\n const scrollable = computed(() => {\n return props.maxHeight || isScrollX.value || isColumnFixed.value;\n });\n\n let lastScrollLeft = 0;\n const handleBodyScrollX = (e: any) => {\n if (e.currentTarget !== e.target) {\n return;\n }\n\n const { target } = e;\n const { bodyTable, headTable } = tableRefs;\n\n if (target.scrollLeft !== lastScrollLeft && isScrollX.value) {\n if (target === (bodyTable as any).wrapRef && headTable) {\n (headTable as any).setScrollLeft(target.scrollLeft);\n } else if (target === (headTable as any)?.wrapRef && bodyTable) {\n (bodyTable as any).setScrollLeft(target.scrollLeft);\n }\n setScrollPositionClass();\n }\n lastScrollLeft = target.scrollLeft;\n };\n\n const handleBodyScroll = (e: any) => {\n handleBodyScrollX(e);\n };\n\n watch(\n () => props.data,\n (val) => {\n if (val.length === 0 && isScrollX.value) {\n nextTick(() => {\n resetScrollX();\n });\n }\n }\n );\n // #endregion\n // ============ empty ================\n const emptyText = computed(() => {\n return props.data.length ? locale.value.notFoundText : locale.value.noDataText;\n });\n\n // ===========row hover & event ================\n // #region\n const currentHoverKey = ref(null);\n const onRowMouseEnter = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-mouseenter', data, index, e);\n };\n const onRowMouseLeave = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-mouseleave', data, index, e);\n };\n const onRowClick = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-click', data, index, e);\n };\n const onRowDoubleClick = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-doubleclick', data, index, e);\n };\n const onRowContextMenu = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-contextmenu', data, index, e);\n };\n // #endregion\n\n // ============= other event =================\n // #region\n const onHeaderCellClick = (column: TableColumn, e: Event) => {\n emit('header-click', column, e);\n };\n\n const handleColumnResize = (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) => {\n emit('column-resize', columnWidth, changeWidth, column, event);\n };\n // #endregion\n\n // ============= provide =================\n\n const { showHeader, maxHeight, expandIcon, rowClassName, indentSize, showSummary, disabledHover, expandIndent, headerSticky, loading, width } =\n toRefs(props);\n\n provide('tableContext', {\n prefixCls,\n locale,\n data: currentDatas,\n saveRef,\n tableRefs,\n showResizeLine,\n props: {\n showHeader,\n maxHeight,\n expandIcon,\n rowClassName,\n indentSize,\n emptyText,\n showSummary,\n disabledHover,\n expandIndent,\n headerSticky,\n loading,\n width\n },\n slots,\n expand: {\n expandedRowRender,\n expandedRowKeys,\n showChildrenRowKeys,\n isRowExpanded,\n expandIconColumnIndex,\n handleExpandChange,\n isTreeTable\n },\n size: {\n tableWidth,\n // sizesMap,\n resizeColumns,\n isScrollX,\n setResizeWidth,\n handleColumnResize,\n debouncedHandleResize\n },\n fixed: {\n isColumnFixed,\n currentHoverKey\n },\n draggable: {\n setRowRefs\n },\n rowEvents: {\n onRowMouseEnter,\n onRowMouseLeave,\n onRowClick,\n onRowDoubleClick,\n onRowContextMenu\n },\n headerEvents: {\n onHeaderCellClick\n },\n filterAndSorter: {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter\n },\n pagination: paginationOptions\n });\n return {\n prefixCls,\n saveRef,\n showResizeLine,\n updatedColumns,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n isBorder,\n isLeftFixed,\n leftColumns,\n isRightFixed,\n rightColumns,\n scrollable,\n scrollPosition,\n handleBodyScroll,\n handleBodyScrollX,\n emptyText,\n debouncedHandleResize,\n handlePageChange,\n handlePageSizeChange\n };\n }\n});\n</script>\n"],"names":["defineComponent","TableBox","Spin","Pagination","ResizeObserver","tableProps","tableEmits","useGlobalConfig","ref","reactive","computed","useUpdateDatas","useFilterSortPage","useDraggable","useExpander","useSelection","useUpdateColumns","useTableResize","debounce","toRefs","_createBlock","_createElementVNode","_normalizeClass","_createElementBlock","_createVNode","_mergeProps","_renderSlot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../../../src/components/Table/Table.vue"],"sourcesContent":["<template>\n <ResizeObserver @resize=\"debouncedHandleResize\">\n <div :class=\"[`${prefixCls}-wrapper`]\">\n <div\n v-if=\"showPagination && pagination && (pagination.position === 'top' || pagination.position === 'both')\"\n :class=\"{\n [`${prefixCls}-pagination`]: true,\n [`${prefixCls}-pagination-top`]: true,\n [`${prefixCls}-pagination-right`]: pagination && pagination.align === 'right'\n }\"\n >\n <Pagination v-bind=\"paginationOptions\" :total=\"computedPageTotal\" @change=\"handlePageChange\" @page-size-change=\"handlePageSizeChange\" />\n </div>\n <div\n :ref=\"saveRef('table')\"\n :class=\"[\n prefixCls,\n `${prefixCls}-${size}`,\n {\n [`${prefixCls}-${variant}`]: !isBorder,\n [`${prefixCls}-border`]: !!isBorder,\n [`${prefixCls}-radius`]: variant !== 'ghost' && !border && radius,\n [`${prefixCls}-empty`]: !data.length,\n [`${prefixCls}-without-column-header`]: !showHeader,\n [`${prefixCls}-fixed-header`]: !!maxHeight,\n [`${prefixCls}-scroll-position-left`]: scrollPosition === 'left' || scrollPosition === 'both',\n [`${prefixCls}-scroll-position-right`]: scrollPosition === 'right' || scrollPosition === 'both',\n [`${prefixCls}-dragging`]: showResizeLine,\n [`${prefixCls}-stripe`]: stripe\n }\n ]\"\n >\n <div v-if=\"$slots.title\" :class=\"`${prefixCls}-title`\">\n <slot name=\"title\" />\n </div>\n <div :class=\"`${prefixCls}-content`\">\n <TableBox :columns=\"updatedColumns\" @head-scroll=\"handleBodyScrollX\" @body-scroll=\"handleBodyScroll\" />\n <div v-if=\"!currentDatas.length\" :class=\"`${prefixCls}-placeholder`\">\n <slot name=\"empty\">\n {{ emptyText }}\n </slot>\n </div>\n </div>\n <div v-show=\"showResizeLine\" :ref=\"saveRef('resizeLine')\" :class=\"`${prefixCls}-resize-line`\" />\n <Spin v-if=\"loadingType === 'spinner'\" fix :loading=\"loading\" />\n </div>\n <div v-if=\"$slots.footer\" :class=\"`${prefixCls}-footer`\">\n <slot name=\"footer\" />\n </div>\n <div\n v-if=\"showPagination && ((pagination && pagination.position !== 'top') || !pagination)\"\n :class=\"{\n [`${prefixCls}-pagination`]: true,\n [`${prefixCls}-pagination-bottom`]: true,\n [`${prefixCls}-pagination-right`]: pagination && pagination.align === 'right'\n }\"\n >\n <Pagination v-bind=\"paginationOptions\" :total=\"computedPageTotal\" @change=\"handlePageChange\" @page-size-change=\"handlePageSizeChange\" />\n </div>\n </div>\n </ResizeObserver>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, provide, reactive, toRefs, ref, onMounted, nextTick, onBeforeUnmount, onUpdated, watch } from 'vue';\nimport Spin from '@uxd-ui/components/Spin';\nimport Pagination from '@uxd-ui/components/Pagination';\nimport { debounce } from '../../utils/tools';\n// import Container from '../base/Container';\nimport TableBox from './TableBox.vue';\nimport useGlobalConfig from '../base/hooks/useGlobalConfig';\nimport ResizeObserver from '../base/ResizeObserver';\nimport useUpdateColumns from './hooks/useUpdateColumns';\nimport useUpdateDatas from './hooks/useUpdateDatas';\nimport useTableResize from './hooks/useTableResize';\nimport useExpander from './hooks/useExpander';\nimport useSelection from './hooks/useSelection';\nimport useDraggable from './hooks/useDraggable';\nimport useFilterSortPage from './hooks/useFilterSortPage';\nimport { tableProps, tableEmits, type SaveRef, type TableRefs, type TableColumn, type InnerColumn } from './Table.type';\n\nexport default defineComponent({\n name: 'UTable',\n components: {\n TableBox,\n Spin,\n Pagination,\n ResizeObserver\n },\n props: tableProps,\n emits: tableEmits,\n setup(props, { slots, emit }) {\n const { prefixCls, config: globalConfig } = useGlobalConfig('table');\n const showResizeLine = ref(false);\n const tableRefs = reactive({} as TableRefs);\n const saveRef: SaveRef = (key: string) => {\n return (el: any) => {\n tableRefs[key] = el;\n };\n };\n\n const locale = computed(() => {\n return { ...globalConfig.locale.table, ...props.locale };\n });\n\n const isBorder = computed(() => {\n const b = props.variant === 'border' || props.border;\n return b;\n });\n\n // ============ datas ===============\n const { updatedDatas } = useUpdateDatas(props);\n\n // ============= sort & fitler =============\n const {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n handlePageChange,\n handlePageSizeChange\n } = useFilterSortPage(props, updatedDatas, emit);\n\n // ================ draggable ====================\n const { setRowRefs, draggableColumn } = useDraggable(props, tableRefs);\n\n // ================ expander ====================\n const {\n expandedRowKeys,\n showChildrenRowKeys,\n handleExpandChange,\n isRowExpanded,\n expandedRowRender,\n isTreeTable,\n expandColumn,\n expandIconColumnIndex\n } = useExpander(props, slots, currentDatas, emit);\n\n const { selectionColumn } = useSelection(props, updatedDatas, currentDatas, prefixCls, locale);\n\n // ============ columns ===============\n const { updatedColumns, isColumnFixed, isLeftFixed, isRightFixed, leftColumns, rightColumns } = useUpdateColumns(props, slots, {\n draggableColumn,\n expandColumn,\n selectionColumn\n });\n\n // ============ resize ==============\n // #region\n const {\n // sizesMap,\n handleResize,\n isScrollX,\n // fixedHeadRowsHeight,\n // fixedBodyRowsHeight,\n scrollPosition,\n // syncFixedTableRowHeight,\n setScrollPositionClass,\n resetScrollX,\n tableWidth,\n resizeColumns,\n clearResizeTimer,\n setResizeWidth,\n syncColumnWidth,\n columnWidths\n } = useTableResize(updatedColumns, tableRefs, prefixCls, isColumnFixed, props);\n\n const debouncedHandleResize = debounce(handleResize, 150);\n\n onMounted(() => {\n nextTick(() => {\n setTimeout(() => {\n handleResize();\n resetScrollX();\n }, 0);\n });\n });\n\n onUpdated(() => {\n nextTick(() => {\n handleResize();\n });\n });\n\n onBeforeUnmount(() => {\n if (debouncedHandleResize) {\n debouncedHandleResize.cancel();\n }\n clearResizeTimer();\n });\n // #endregion\n\n // ============ scroll ===============\n // #region\n const scrollable = computed(() => {\n return props.maxHeight || isScrollX.value || isColumnFixed.value;\n });\n\n let lastScrollLeft = 0;\n const handleBodyScrollX = (e: any) => {\n if (e.currentTarget !== e.target) {\n return;\n }\n\n const { target } = e;\n const { bodyTable, headTable } = tableRefs;\n\n if (target.scrollLeft !== lastScrollLeft && isScrollX.value) {\n if (target === (bodyTable as any).wrapRef && headTable) {\n (headTable as any).setScrollLeft(target.scrollLeft);\n } else if (target === (headTable as any)?.wrapRef && bodyTable) {\n (bodyTable as any).setScrollLeft(target.scrollLeft);\n }\n setScrollPositionClass();\n }\n lastScrollLeft = target.scrollLeft;\n };\n\n const handleBodyScroll = (e: any) => {\n handleBodyScrollX(e);\n };\n\n watch(\n () => props.data,\n (val) => {\n if (val.length === 0 && isScrollX.value) {\n nextTick(() => {\n resetScrollX();\n });\n }\n }\n );\n // #endregion\n // ============ empty ================\n const emptyText = computed(() => {\n return props.data.length ? locale.value.notFoundText : locale.value.noDataText;\n });\n\n // ===========row hover & event ================\n // #region\n const currentHoverKey = ref(null);\n const onRowMouseEnter = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-mouseenter', data, index, e);\n };\n const onRowMouseLeave = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-mouseleave', data, index, e);\n };\n const onRowClick = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-click', data, index, e);\n };\n const onRowDoubleClick = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-doubleclick', data, index, e);\n };\n const onRowContextMenu = (data: Record<string, any>, index: number, e: Event) => {\n emit('row-contextmenu', data, index, e);\n };\n // #endregion\n\n // ============= other event =================\n // #region\n const onHeaderCellClick = (column: TableColumn, e: Event) => {\n emit('header-click', column, e);\n };\n\n const handleColumnResize = (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) => {\n emit('column-resize', columnWidth, changeWidth, column, event);\n };\n // #endregion\n\n // ============= provide =================\n\n const { showHeader, maxHeight, expandIcon, rowClassName, indentSize, showSummary, disabledHover, expandIndent, headerSticky, loading, width } =\n toRefs(props);\n\n provide('tableContext', {\n prefixCls,\n locale,\n data: currentDatas,\n saveRef,\n tableRefs,\n showResizeLine,\n props: {\n showHeader,\n maxHeight,\n expandIcon,\n rowClassName,\n indentSize,\n emptyText,\n showSummary,\n disabledHover,\n expandIndent,\n headerSticky,\n loading,\n width\n },\n slots,\n expand: {\n expandedRowRender,\n expandedRowKeys,\n showChildrenRowKeys,\n isRowExpanded,\n expandIconColumnIndex,\n handleExpandChange,\n isTreeTable\n },\n size: {\n tableWidth,\n // sizesMap,\n resizeColumns,\n isScrollX,\n setResizeWidth,\n handleColumnResize,\n debouncedHandleResize,\n syncColumnWidth,\n columnWidths\n },\n fixed: {\n isColumnFixed,\n currentHoverKey\n },\n draggable: {\n setRowRefs\n },\n rowEvents: {\n onRowMouseEnter,\n onRowMouseLeave,\n onRowClick,\n onRowDoubleClick,\n onRowContextMenu\n },\n headerEvents: {\n onHeaderCellClick\n },\n filterAndSorter: {\n hasAction,\n hasSorters,\n hasFilters,\n isSortColumn,\n isAscend,\n isDescend,\n hasAscend,\n hasDescend,\n toggleSortOrder,\n setColumnFilter\n },\n pagination: paginationOptions\n });\n return {\n prefixCls,\n saveRef,\n showResizeLine,\n updatedColumns,\n currentDatas,\n paginationOptions,\n computedPageTotal,\n isBorder,\n isLeftFixed,\n leftColumns,\n isRightFixed,\n rightColumns,\n scrollable,\n scrollPosition,\n handleBodyScroll,\n handleBodyScrollX,\n emptyText,\n debouncedHandleResize,\n handlePageChange,\n handlePageSizeChange\n };\n }\n});\n</script>\n"],"names":["defineComponent","TableBox","Spin","Pagination","ResizeObserver","tableProps","tableEmits","useGlobalConfig","ref","reactive","computed","useUpdateDatas","useFilterSortPage","useDraggable","useExpander","useSelection","useUpdateColumns","useTableResize","debounce","toRefs","_createBlock","_createElementVNode","_normalizeClass","_createElementBlock","_createVNode","_mergeProps","_renderSlot"],"mappings":"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"}
|
|
@@ -294,6 +294,8 @@ export interface TableContext {
|
|
|
294
294
|
size: {
|
|
295
295
|
tableWidth: Ref<number>;
|
|
296
296
|
resizeColumns: Ref<InnerColumn[]>;
|
|
297
|
+
columnWidths: Ref<Record<string, number>>;
|
|
298
|
+
syncColumnWidth: (width: number, column: InnerColumn) => void;
|
|
297
299
|
isScrollX: ComputedRef<boolean>;
|
|
298
300
|
setResizeWidth: (column: InnerColumn, width: number) => void;
|
|
299
301
|
handleColumnResize: (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.type.js","sources":["../../../../src/components/Table/Table.type.ts"],"sourcesContent":["import type { Component, ComputedRef, CSSProperties, ExtractPropTypes, PropType, Ref, Slot, Slots, VNodeChild } from 'vue';\nimport type { JSX } from 'vue/jsx-runtime';\nimport { normalSizeMap } from '../../utils/globalType';\nimport { oneOf } from '../../utils/propsValidators';\nimport type { EmitFn, NormalSizeMap } from '../../utils/globalType';\nimport type { TableLocal } from '../locale/default';\nimport type { PaginationProps } from '../Pagination/Pagination.type';\nimport type Table from './Table.vue';\nimport type { RowData } from './hooks/useDraggable';\n\nexport type ColumnFixed = boolean | 'left' | 'right';\nexport type ColumnAlign = 'left' | 'right' | 'center';\nexport type ColumnSortOrder = 'ascend' | 'descend';\nexport type ColumnSortFn = (a: any, b: any) => number;\nexport interface ColumnFilter {\n label: string;\n value: string | number;\n}\nexport type ColumnFilterFn = (value: string | number, row: any) => boolean;\nexport interface ColumnSlotParams {\n row: any;\n index: number;\n rowKey: string | number;\n pagination: Partial<PaginationProps>;\n column: InnerColumn;\n}\n\nexport interface TableColProps {\n width: string;\n key: string;\n fixed: boolean;\n minWidth: string;\n resizeWidth: string;\n}\n\nexport interface ColumnFilterSlotParams {\n selectedKeys: (string | number)[];\n setSelectedKeys: (keys: (string | number)[]) => void;\n confirm: () => void;\n column: InnerColumn;\n}\n\nexport interface TableColumnSkeleton {\n type: 'circle' | 'rect' | 'text' | 'p' | 'image';\n style: CSSProperties;\n}\nexport interface TableColumn {\n key: string;\n title?: string;\n dataIndex?: string;\n width?: number | string;\n minWidth?: number;\n children?: TableColumn[];\n fixed?: ColumnFixed;\n align?: ColumnAlign;\n ellipsis?: boolean;\n sortable?: boolean | 'custom';\n sortOrder?: ColumnSortOrder;\n sortDirections?: ColumnSortOrder[];\n sortFn?: ColumnSortFn;\n filterable?: boolean;\n filters?: ColumnFilter[];\n filterFn?: ColumnFilterFn;\n filterIcon?: string | Component;\n filterIconStyle?: CSSProperties;\n filterMultiple?: boolean;\n filteredValue?: (string | number)[];\n onFilterDropdownVisibleChange?: (visible: boolean) => void;\n slot?: string;\n titleSlot?: string;\n filterSlot?: string;\n render?: (param: ColumnSlotParams) => VNodeChild | JSX.Element;\n titleRender?: (column: TableColumn) => VNodeChild | JSX.Element;\n filterRender?: (param: ColumnFilterSlotParams) => VNodeChild | JSX.Element;\n resizable?: boolean;\n customCell?: (row: any, index: number) => Record<string, any>;\n className?: string;\n hideSummary?: boolean;\n summarySlot?: string;\n summaryRender?: (sum?: number) => VNodeChild | JSX.Element;\n customSummaryCell?: () => Record<string, any>;\n autoSummary?: boolean;\n tips?: string;\n skeleton?: TableColumnSkeleton[];\n\n // draggable?: boolean;\n // handleDragStart?: (event: MouseEvent, param: ColumnSlotParams) => void;\n // render?: (param: ColumnSlotParams, handleDragStart?: (event: MouseEvent, DragParam: ColumnSlotParams) => void) => VNodeChild | JSX.Element;\n}\n\nexport interface InnerColumn extends TableColumn {\n _index?: number;\n rowSpan?: number;\n colSpan?: number;\n children?: InnerColumn[];\n type?: string;\n summaryRender?: (sum?: number) => VNodeChild | JSX.Element;\n left?: number;\n right?: number;\n lastLeft?: boolean;\n firstRight?: boolean;\n _isRightEdge?: boolean;\n}\n\nexport type SelectionType = 'checkbox' | 'radio';\nexport interface SelectionMenu {\n key: string;\n text: string;\n onSelect?: (rows: any[]) => void;\n}\nexport interface SelectionConfig {\n selectedKeys: (string | number)[] | undefined;\n type?: SelectionType;\n setSelectionProps?: (row: any, index: any) => Record<string, any>;\n selectionMenus?: SelectionMenu[];\n hideDefaultMenus?: boolean;\n onChange?: (keys: (string | number)[], selectedRows: any[]) => void;\n onSelect?: (data: any, checked: boolean, selectedRows: any[], event: any) => void;\n onSelectMultiple?: (checked: boolean, selectedRows: any[], changeRows: any[]) => void;\n onSelectAll?: (checked: boolean, selectedRows: any[], changeRows: any[]) => void;\n onSelectInvert?: (keys: (string | number)[]) => void;\n columnWidth?: number;\n fixed?: ColumnFixed;\n showCheckAll?: boolean;\n}\n\nexport interface DraggableConfig {\n fixed?: ColumnFixed;\n onDragDrop: (sourceRowKey: string | number, targetRowKey: string | number) => void;\n}\n\nexport type PaginationPosition = 'top' | 'bottom' | 'both' | undefined;\nexport type PaginationAlign = 'left' | 'right' | undefined;\nexport interface PaginationConfig extends Partial<PaginationProps> {\n position: PaginationPosition;\n align: PaginationAlign;\n}\n\nexport interface InnerDataItem {\n _index: number;\n _key: string | number;\n _isSkeleton?: boolean;\n dataRef: Record<string, any>;\n children?: InnerColumn[];\n}\n\nexport type RowClassName = (row: Record<string, any>, index: number) => string;\nexport type GetRowKey = (row: Record<string, any>, index: number) => string | number;\n\nexport const tableProps = {\n data: {\n type: Array as PropType<Record<string, any>[]>,\n default: () => [] as Record<string, any>[]\n },\n columns: {\n type: Array as PropType<TableColumn[]>,\n default: () => [] as TableColumn[]\n },\n border: {\n type: Boolean,\n default: false\n },\n showHeader: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String]\n },\n maxHeight: {\n type: [Number, String]\n },\n loading: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as PropType<NormalSizeMap>,\n default: 'default',\n validator: oneOf(normalSizeMap)\n },\n disabledHover: {\n type: Boolean,\n default: false\n },\n rowKey: {\n type: [Function, String] as PropType<string | GetRowKey>,\n default: 'key'\n },\n rowClassName: {\n type: Function as PropType<RowClassName>\n },\n expandIcon: {\n type: String\n },\n defaultExpandAllRows: {\n type: Boolean,\n default: false\n },\n expandedRowKeys: {\n type: Array as PropType<string[]>\n },\n treeIconColumnIndex: {\n type: Number\n },\n defaultShowAllChildren: {\n type: Boolean,\n default: false\n },\n showChildrenRowKeys: {\n type: Array as PropType<string[]>\n },\n indentSize: {\n type: Number,\n default: 20\n },\n selection: {\n type: Object as PropType<SelectionConfig>\n },\n locale: {\n type: Object as PropType<TableLocal>\n },\n stripe: {\n type: Boolean,\n default: false\n },\n showPagination: {\n type: Boolean,\n default: false\n },\n pagination: {\n type: Object as PropType<PaginationConfig>\n },\n showSummary: {\n type: Boolean,\n default: false\n },\n expandFix: {\n type: Boolean,\n default: false\n },\n expandIndent: {\n type: Boolean,\n default: true\n },\n draggable: {\n type: Object as PropType<DraggableConfig>\n },\n headerSticky: {\n type: Number,\n default: undefined as undefined\n },\n variant: {\n type: String as PropType<'surface' | 'ghost' | 'border'>,\n default: 'ghost'\n },\n radius: {\n type: Boolean,\n default: false\n },\n loadingType: {\n type: String as PropType<'spinner' | 'skeleton'>,\n default: 'spinner'\n },\n skeletonRows: {\n type: Number,\n default: 3\n }\n};\nexport type TableProps = ExtractPropTypes<typeof tableProps>;\n\nexport type SaveRef = (key: string) => (el: any) => void;\nexport type TableRefs = Record<string, any>;\nexport interface ExpandParams {\n row: any;\n rowKey: string | number;\n async?: boolean;\n done?: () => void;\n tree?: boolean;\n}\nexport interface TableContext {\n prefixCls: ComputedRef<string>;\n locale: ComputedRef<TableLocal>;\n data: ComputedRef<InnerDataItem[]>;\n saveRef: SaveRef;\n tableRefs: TableRefs;\n showResizeLine: Ref<boolean>;\n props: {\n showHeader: Ref<boolean>;\n maxHeight: Ref<string | number | undefined>;\n expandIcon: Ref<string | undefined>;\n rowClassName: Ref<RowClassName>;\n indentSize: Ref<number>;\n emptyText: ComputedRef<string>;\n showSummary: Ref<boolean>;\n disabledHover: Ref<boolean>;\n expandIndent: Ref<boolean>;\n headerSticky: Ref<number | undefined>;\n loading: Ref<boolean>;\n width: Ref<string | number | undefined>;\n };\n slots: Slots;\n expand: {\n expandedRowRender: ComputedRef<Slot | undefined>;\n expandedRowKeys: Ref<(string | number)[]>;\n showChildrenRowKeys: Ref<(string | number)[]>;\n isRowExpanded: (rowKey: string | number, tree: boolean) => boolean;\n expandIconColumnIndex: ComputedRef<number>;\n handleExpandChange: ({ row, rowKey, async, done, tree }: ExpandParams, e: Event) => void;\n isTreeTable: ComputedRef<boolean>;\n };\n size: {\n tableWidth: Ref<number>;\n resizeColumns: Ref<InnerColumn[]>;\n // sizesMap: Record<string, number>;\n isScrollX: ComputedRef<boolean>;\n setResizeWidth: (column: InnerColumn, width: number) => void;\n handleColumnResize: (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) => void;\n debouncedHandleResize: any;\n };\n fixed: {\n isColumnFixed: ComputedRef<boolean>;\n currentHoverKey: Ref<string | number | null>;\n };\n draggable: {\n setRowRefs: (val: RowData) => void;\n };\n rowEvents: {\n onRowMouseEnter: (data: Record<string, any>, index: number, e: Event) => void;\n onRowMouseLeave: (data: Record<string, any>, index: number, e: Event) => void;\n onRowClick: (data: Record<string, any>, index: number, e: Event) => void;\n onRowDoubleClick: (data: Record<string, any>, index: number, e: Event) => void;\n onRowContextMenu: (data: Record<string, any>, index: number, e: Event) => void;\n };\n headerEvents: {\n onHeaderCellClick: (column: InnerColumn, e: any) => void;\n };\n filterAndSorter: {\n hasAction: (column: InnerColumn) => boolean;\n hasSorters: (column: InnerColumn) => boolean;\n hasFilters: (column: InnerColumn) => boolean;\n isSortColumn: (column: InnerColumn) => boolean;\n isAscend: (column: InnerColumn) => boolean;\n isDescend: (column: InnerColumn) => boolean;\n hasAscend: (column: InnerColumn) => boolean;\n hasDescend: (column: InnerColumn) => boolean;\n toggleSortOrder: (column: InnerColumn) => void;\n setColumnFilter: (column: InnerColumn, selectedKeys: (string | number)[]) => void;\n };\n isSummary: boolean;\n pagination: PaginationProps;\n}\n\nconst rowEmitFn = (data: Record<string, any>, index: number, e: Event) => typeof data === 'object' && typeof index === 'number' && e instanceof Event;\nexport const tableEmits = {\n 'row-mouseenter': rowEmitFn,\n 'row-mouseleave': rowEmitFn,\n 'row-click': rowEmitFn,\n 'row-doubleclick': rowEmitFn,\n 'row-contextmenu': rowEmitFn,\n 'header-click': (column: TableColumn, e: Event) => typeof column === 'object' && e instanceof Event,\n 'column-resize': (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) =>\n typeof columnWidth === 'number' && typeof changeWidth === 'number' && typeof column === 'object' && event instanceof Event,\n expand: (expanded: boolean, row: Record<string, any>, type: string) =>\n typeof expanded === 'boolean' && typeof row === 'object' && typeof type === 'string',\n 'async-expand': (row: any, done: (() => void) | undefined, keys: (string | number)[]) =>\n typeof row === 'object' && Array.isArray(keys) && typeof done === 'function',\n change: (\n pagination: PaginationProps,\n sort: { column: TableColumn | null; order: ColumnSortOrder | null },\n filter: Record<string, (string | number)[]> | null\n ) => !(pagination === null && sort === null && filter === null)\n};\n\nexport type TableEmits = typeof tableEmits;\nexport type TableEmit = EmitFn<TableEmits>;\nexport type TableInstanceType = InstanceType<typeof Table>;\n"],"names":["oneOf","normalSizeMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Table.type.js","sources":["../../../../src/components/Table/Table.type.ts"],"sourcesContent":["import type { Component, ComputedRef, CSSProperties, ExtractPropTypes, PropType, Ref, Slot, Slots, VNodeChild } from 'vue';\nimport type { JSX } from 'vue/jsx-runtime';\nimport { normalSizeMap } from '../../utils/globalType';\nimport { oneOf } from '../../utils/propsValidators';\nimport type { EmitFn, NormalSizeMap } from '../../utils/globalType';\nimport type { TableLocal } from '../locale/default';\nimport type { PaginationProps } from '../Pagination/Pagination.type';\nimport type Table from './Table.vue';\nimport type { RowData } from './hooks/useDraggable';\n\nexport type ColumnFixed = boolean | 'left' | 'right';\nexport type ColumnAlign = 'left' | 'right' | 'center';\nexport type ColumnSortOrder = 'ascend' | 'descend';\nexport type ColumnSortFn = (a: any, b: any) => number;\nexport interface ColumnFilter {\n label: string;\n value: string | number;\n}\nexport type ColumnFilterFn = (value: string | number, row: any) => boolean;\nexport interface ColumnSlotParams {\n row: any;\n index: number;\n rowKey: string | number;\n pagination: Partial<PaginationProps>;\n column: InnerColumn;\n}\n\nexport interface TableColProps {\n width: string;\n key: string;\n fixed: boolean;\n minWidth: string;\n resizeWidth: string;\n}\n\nexport interface ColumnFilterSlotParams {\n selectedKeys: (string | number)[];\n setSelectedKeys: (keys: (string | number)[]) => void;\n confirm: () => void;\n column: InnerColumn;\n}\n\nexport interface TableColumnSkeleton {\n type: 'circle' | 'rect' | 'text' | 'p' | 'image';\n style: CSSProperties;\n}\nexport interface TableColumn {\n key: string;\n title?: string;\n dataIndex?: string;\n width?: number | string;\n minWidth?: number;\n children?: TableColumn[];\n fixed?: ColumnFixed;\n align?: ColumnAlign;\n ellipsis?: boolean;\n sortable?: boolean | 'custom';\n sortOrder?: ColumnSortOrder;\n sortDirections?: ColumnSortOrder[];\n sortFn?: ColumnSortFn;\n filterable?: boolean;\n filters?: ColumnFilter[];\n filterFn?: ColumnFilterFn;\n filterIcon?: string | Component;\n filterIconStyle?: CSSProperties;\n filterMultiple?: boolean;\n filteredValue?: (string | number)[];\n onFilterDropdownVisibleChange?: (visible: boolean) => void;\n slot?: string;\n titleSlot?: string;\n filterSlot?: string;\n render?: (param: ColumnSlotParams) => VNodeChild | JSX.Element;\n titleRender?: (column: TableColumn) => VNodeChild | JSX.Element;\n filterRender?: (param: ColumnFilterSlotParams) => VNodeChild | JSX.Element;\n resizable?: boolean;\n customCell?: (row: any, index: number) => Record<string, any>;\n className?: string;\n hideSummary?: boolean;\n summarySlot?: string;\n summaryRender?: (sum?: number) => VNodeChild | JSX.Element;\n customSummaryCell?: () => Record<string, any>;\n autoSummary?: boolean;\n tips?: string;\n skeleton?: TableColumnSkeleton[];\n\n // draggable?: boolean;\n // handleDragStart?: (event: MouseEvent, param: ColumnSlotParams) => void;\n // render?: (param: ColumnSlotParams, handleDragStart?: (event: MouseEvent, DragParam: ColumnSlotParams) => void) => VNodeChild | JSX.Element;\n}\n\nexport interface InnerColumn extends TableColumn {\n _index?: number;\n rowSpan?: number;\n colSpan?: number;\n children?: InnerColumn[];\n type?: string;\n summaryRender?: (sum?: number) => VNodeChild | JSX.Element;\n left?: number;\n right?: number;\n lastLeft?: boolean;\n firstRight?: boolean;\n _isRightEdge?: boolean;\n}\n\nexport type SelectionType = 'checkbox' | 'radio';\nexport interface SelectionMenu {\n key: string;\n text: string;\n onSelect?: (rows: any[]) => void;\n}\nexport interface SelectionConfig {\n selectedKeys: (string | number)[] | undefined;\n type?: SelectionType;\n setSelectionProps?: (row: any, index: any) => Record<string, any>;\n selectionMenus?: SelectionMenu[];\n hideDefaultMenus?: boolean;\n onChange?: (keys: (string | number)[], selectedRows: any[]) => void;\n onSelect?: (data: any, checked: boolean, selectedRows: any[], event: any) => void;\n onSelectMultiple?: (checked: boolean, selectedRows: any[], changeRows: any[]) => void;\n onSelectAll?: (checked: boolean, selectedRows: any[], changeRows: any[]) => void;\n onSelectInvert?: (keys: (string | number)[]) => void;\n columnWidth?: number;\n fixed?: ColumnFixed;\n showCheckAll?: boolean;\n}\n\nexport interface DraggableConfig {\n fixed?: ColumnFixed;\n onDragDrop: (sourceRowKey: string | number, targetRowKey: string | number) => void;\n}\n\nexport type PaginationPosition = 'top' | 'bottom' | 'both' | undefined;\nexport type PaginationAlign = 'left' | 'right' | undefined;\nexport interface PaginationConfig extends Partial<PaginationProps> {\n position: PaginationPosition;\n align: PaginationAlign;\n}\n\nexport interface InnerDataItem {\n _index: number;\n _key: string | number;\n _isSkeleton?: boolean;\n dataRef: Record<string, any>;\n children?: InnerColumn[];\n}\n\nexport type RowClassName = (row: Record<string, any>, index: number) => string;\nexport type GetRowKey = (row: Record<string, any>, index: number) => string | number;\n\nexport const tableProps = {\n data: {\n type: Array as PropType<Record<string, any>[]>,\n default: () => [] as Record<string, any>[]\n },\n columns: {\n type: Array as PropType<TableColumn[]>,\n default: () => [] as TableColumn[]\n },\n border: {\n type: Boolean,\n default: false\n },\n showHeader: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String]\n },\n maxHeight: {\n type: [Number, String]\n },\n loading: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as PropType<NormalSizeMap>,\n default: 'default',\n validator: oneOf(normalSizeMap)\n },\n disabledHover: {\n type: Boolean,\n default: false\n },\n rowKey: {\n type: [Function, String] as PropType<string | GetRowKey>,\n default: 'key'\n },\n rowClassName: {\n type: Function as PropType<RowClassName>\n },\n expandIcon: {\n type: String\n },\n defaultExpandAllRows: {\n type: Boolean,\n default: false\n },\n expandedRowKeys: {\n type: Array as PropType<string[]>\n },\n treeIconColumnIndex: {\n type: Number\n },\n defaultShowAllChildren: {\n type: Boolean,\n default: false\n },\n showChildrenRowKeys: {\n type: Array as PropType<string[]>\n },\n indentSize: {\n type: Number,\n default: 20\n },\n selection: {\n type: Object as PropType<SelectionConfig>\n },\n locale: {\n type: Object as PropType<TableLocal>\n },\n stripe: {\n type: Boolean,\n default: false\n },\n showPagination: {\n type: Boolean,\n default: false\n },\n pagination: {\n type: Object as PropType<PaginationConfig>\n },\n showSummary: {\n type: Boolean,\n default: false\n },\n expandFix: {\n type: Boolean,\n default: false\n },\n expandIndent: {\n type: Boolean,\n default: true\n },\n draggable: {\n type: Object as PropType<DraggableConfig>\n },\n headerSticky: {\n type: Number,\n default: undefined as undefined\n },\n variant: {\n type: String as PropType<'surface' | 'ghost' | 'border'>,\n default: 'ghost'\n },\n radius: {\n type: Boolean,\n default: false\n },\n loadingType: {\n type: String as PropType<'spinner' | 'skeleton'>,\n default: 'spinner'\n },\n skeletonRows: {\n type: Number,\n default: 3\n }\n};\nexport type TableProps = ExtractPropTypes<typeof tableProps>;\n\nexport type SaveRef = (key: string) => (el: any) => void;\nexport type TableRefs = Record<string, any>;\nexport interface ExpandParams {\n row: any;\n rowKey: string | number;\n async?: boolean;\n done?: () => void;\n tree?: boolean;\n}\nexport interface TableContext {\n prefixCls: ComputedRef<string>;\n locale: ComputedRef<TableLocal>;\n data: ComputedRef<InnerDataItem[]>;\n saveRef: SaveRef;\n tableRefs: TableRefs;\n showResizeLine: Ref<boolean>;\n props: {\n showHeader: Ref<boolean>;\n maxHeight: Ref<string | number | undefined>;\n expandIcon: Ref<string | undefined>;\n rowClassName: Ref<RowClassName>;\n indentSize: Ref<number>;\n emptyText: ComputedRef<string>;\n showSummary: Ref<boolean>;\n disabledHover: Ref<boolean>;\n expandIndent: Ref<boolean>;\n headerSticky: Ref<number | undefined>;\n loading: Ref<boolean>;\n width: Ref<string | number | undefined>;\n };\n slots: Slots;\n expand: {\n expandedRowRender: ComputedRef<Slot | undefined>;\n expandedRowKeys: Ref<(string | number)[]>;\n showChildrenRowKeys: Ref<(string | number)[]>;\n isRowExpanded: (rowKey: string | number, tree: boolean) => boolean;\n expandIconColumnIndex: ComputedRef<number>;\n handleExpandChange: ({ row, rowKey, async, done, tree }: ExpandParams, e: Event) => void;\n isTreeTable: ComputedRef<boolean>;\n };\n size: {\n tableWidth: Ref<number>;\n resizeColumns: Ref<InnerColumn[]>;\n columnWidths: Ref<Record<string, number>>;\n syncColumnWidth: (width: number, column: InnerColumn) => void;\n // sizesMap: Record<string, number>;\n isScrollX: ComputedRef<boolean>;\n setResizeWidth: (column: InnerColumn, width: number) => void;\n handleColumnResize: (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) => void;\n debouncedHandleResize: any;\n };\n fixed: {\n isColumnFixed: ComputedRef<boolean>;\n currentHoverKey: Ref<string | number | null>;\n };\n draggable: {\n setRowRefs: (val: RowData) => void;\n };\n rowEvents: {\n onRowMouseEnter: (data: Record<string, any>, index: number, e: Event) => void;\n onRowMouseLeave: (data: Record<string, any>, index: number, e: Event) => void;\n onRowClick: (data: Record<string, any>, index: number, e: Event) => void;\n onRowDoubleClick: (data: Record<string, any>, index: number, e: Event) => void;\n onRowContextMenu: (data: Record<string, any>, index: number, e: Event) => void;\n };\n headerEvents: {\n onHeaderCellClick: (column: InnerColumn, e: any) => void;\n };\n filterAndSorter: {\n hasAction: (column: InnerColumn) => boolean;\n hasSorters: (column: InnerColumn) => boolean;\n hasFilters: (column: InnerColumn) => boolean;\n isSortColumn: (column: InnerColumn) => boolean;\n isAscend: (column: InnerColumn) => boolean;\n isDescend: (column: InnerColumn) => boolean;\n hasAscend: (column: InnerColumn) => boolean;\n hasDescend: (column: InnerColumn) => boolean;\n toggleSortOrder: (column: InnerColumn) => void;\n setColumnFilter: (column: InnerColumn, selectedKeys: (string | number)[]) => void;\n };\n isSummary: boolean;\n pagination: PaginationProps;\n}\n\nconst rowEmitFn = (data: Record<string, any>, index: number, e: Event) => typeof data === 'object' && typeof index === 'number' && e instanceof Event;\nexport const tableEmits = {\n 'row-mouseenter': rowEmitFn,\n 'row-mouseleave': rowEmitFn,\n 'row-click': rowEmitFn,\n 'row-doubleclick': rowEmitFn,\n 'row-contextmenu': rowEmitFn,\n 'header-click': (column: TableColumn, e: Event) => typeof column === 'object' && e instanceof Event,\n 'column-resize': (columnWidth: number, changeWidth: number, column: InnerColumn, event: Event) =>\n typeof columnWidth === 'number' && typeof changeWidth === 'number' && typeof column === 'object' && event instanceof Event,\n expand: (expanded: boolean, row: Record<string, any>, type: string) =>\n typeof expanded === 'boolean' && typeof row === 'object' && typeof type === 'string',\n 'async-expand': (row: any, done: (() => void) | undefined, keys: (string | number)[]) =>\n typeof row === 'object' && Array.isArray(keys) && typeof done === 'function',\n change: (\n pagination: PaginationProps,\n sort: { column: TableColumn | null; order: ColumnSortOrder | null },\n filter: Record<string, (string | number)[]> | null\n ) => !(pagination === null && sort === null && filter === null)\n};\n\nexport type TableEmits = typeof tableEmits;\nexport type TableEmit = EmitFn<TableEmits>;\nexport type TableInstanceType = InstanceType<typeof Table>;\n"],"names":["oneOf","normalSizeMap"],"mappings":"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"}
|
|
@@ -458,15 +458,25 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
458
458
|
type: import("vue").PropType<InnerColumn[]>;
|
|
459
459
|
default: () => InnerColumn[];
|
|
460
460
|
};
|
|
461
|
+
isHeadTable: {
|
|
462
|
+
type: BooleanConstructor;
|
|
463
|
+
default: boolean;
|
|
464
|
+
};
|
|
461
465
|
}>, {
|
|
462
466
|
cols: import("vue").ComputedRef<import("./Table.type").TableColProps[]>;
|
|
467
|
+
getWidth: (col: import("./Table.type").TableColProps) => string;
|
|
463
468
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
464
469
|
columns: {
|
|
465
470
|
type: import("vue").PropType<InnerColumn[]>;
|
|
466
471
|
default: () => InnerColumn[];
|
|
467
472
|
};
|
|
473
|
+
isHeadTable: {
|
|
474
|
+
type: BooleanConstructor;
|
|
475
|
+
default: boolean;
|
|
476
|
+
};
|
|
468
477
|
}>> & Readonly<{}>, {
|
|
469
478
|
columns: InnerColumn[];
|
|
479
|
+
isHeadTable: boolean;
|
|
470
480
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
471
481
|
TableHeader: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
472
482
|
columns: {
|
|
@@ -4787,7 +4797,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4787
4797
|
cellRef: import("vue").Ref<any, any>;
|
|
4788
4798
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
4789
4799
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
4790
|
-
|
|
4800
|
+
checkWidth: ({ target, width }: {
|
|
4801
|
+
target: HTMLElement;
|
|
4802
|
+
width: number;
|
|
4803
|
+
}) => void;
|
|
4791
4804
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
4792
4805
|
prefixCls: {
|
|
4793
4806
|
type: StringConstructor;
|
|
@@ -6086,7 +6099,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
6086
6099
|
cellRef: import("vue").Ref<any, any>;
|
|
6087
6100
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
6088
6101
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
6089
|
-
|
|
6102
|
+
checkWidth: ({ target, width }: {
|
|
6103
|
+
target: HTMLElement;
|
|
6104
|
+
width: number;
|
|
6105
|
+
}) => void;
|
|
6090
6106
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
6091
6107
|
prefixCls: {
|
|
6092
6108
|
type: StringConstructor;
|
|
@@ -7403,15 +7419,25 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
7403
7419
|
type: import("vue").PropType<InnerColumn[]>;
|
|
7404
7420
|
default: () => InnerColumn[];
|
|
7405
7421
|
};
|
|
7422
|
+
isHeadTable: {
|
|
7423
|
+
type: BooleanConstructor;
|
|
7424
|
+
default: boolean;
|
|
7425
|
+
};
|
|
7406
7426
|
}>, {
|
|
7407
7427
|
cols: import("vue").ComputedRef<import("./Table.type").TableColProps[]>;
|
|
7428
|
+
getWidth: (col: import("./Table.type").TableColProps) => string;
|
|
7408
7429
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
7409
7430
|
columns: {
|
|
7410
7431
|
type: import("vue").PropType<InnerColumn[]>;
|
|
7411
7432
|
default: () => InnerColumn[];
|
|
7412
7433
|
};
|
|
7434
|
+
isHeadTable: {
|
|
7435
|
+
type: BooleanConstructor;
|
|
7436
|
+
default: boolean;
|
|
7437
|
+
};
|
|
7413
7438
|
}>> & Readonly<{}>, {
|
|
7414
7439
|
columns: InnerColumn[];
|
|
7440
|
+
isHeadTable: boolean;
|
|
7415
7441
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
7416
7442
|
TableHeader: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
7417
7443
|
columns: {
|
|
@@ -11732,7 +11758,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
11732
11758
|
cellRef: import("vue").Ref<any, any>;
|
|
11733
11759
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
11734
11760
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
11735
|
-
|
|
11761
|
+
checkWidth: ({ target, width }: {
|
|
11762
|
+
target: HTMLElement;
|
|
11763
|
+
width: number;
|
|
11764
|
+
}) => void;
|
|
11736
11765
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
11737
11766
|
prefixCls: {
|
|
11738
11767
|
type: StringConstructor;
|
|
@@ -13031,7 +13060,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
13031
13060
|
cellRef: import("vue").Ref<any, any>;
|
|
13032
13061
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
13033
13062
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
13034
|
-
|
|
13063
|
+
checkWidth: ({ target, width }: {
|
|
13064
|
+
target: HTMLElement;
|
|
13065
|
+
width: number;
|
|
13066
|
+
}) => void;
|
|
13035
13067
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
13036
13068
|
prefixCls: {
|
|
13037
13069
|
type: StringConstructor;
|
|
@@ -121,15 +121,25 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
121
121
|
type: PropType<import("./Table.type").InnerColumn[]>;
|
|
122
122
|
default: () => import("./Table.type").InnerColumn[];
|
|
123
123
|
};
|
|
124
|
+
isHeadTable: {
|
|
125
|
+
type: BooleanConstructor;
|
|
126
|
+
default: boolean;
|
|
127
|
+
};
|
|
124
128
|
}>, {
|
|
125
129
|
cols: import("vue").ComputedRef<import("./Table.type").TableColProps[]>;
|
|
130
|
+
getWidth: (col: import("./Table.type").TableColProps) => string;
|
|
126
131
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
127
132
|
columns: {
|
|
128
133
|
type: PropType<import("./Table.type").InnerColumn[]>;
|
|
129
134
|
default: () => import("./Table.type").InnerColumn[];
|
|
130
135
|
};
|
|
136
|
+
isHeadTable: {
|
|
137
|
+
type: BooleanConstructor;
|
|
138
|
+
default: boolean;
|
|
139
|
+
};
|
|
131
140
|
}>> & Readonly<{}>, {
|
|
132
141
|
columns: import("./Table.type").InnerColumn[];
|
|
142
|
+
isHeadTable: boolean;
|
|
133
143
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
134
144
|
TableHeader: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
135
145
|
columns: {
|
|
@@ -4450,7 +4460,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
4450
4460
|
cellRef: import("vue").Ref<any, any>;
|
|
4451
4461
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
4452
4462
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
4453
|
-
|
|
4463
|
+
checkWidth: ({ target, width }: {
|
|
4464
|
+
target: HTMLElement;
|
|
4465
|
+
width: number;
|
|
4466
|
+
}) => void;
|
|
4454
4467
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
4455
4468
|
prefixCls: {
|
|
4456
4469
|
type: StringConstructor;
|
|
@@ -5749,7 +5762,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
5749
5762
|
cellRef: import("vue").Ref<any, any>;
|
|
5750
5763
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
5751
5764
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
5752
|
-
|
|
5765
|
+
checkWidth: ({ target, width }: {
|
|
5766
|
+
target: HTMLElement;
|
|
5767
|
+
width: number;
|
|
5768
|
+
}) => void;
|
|
5753
5769
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
5754
5770
|
prefixCls: {
|
|
5755
5771
|
type: StringConstructor;
|
|
@@ -7066,15 +7082,25 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
7066
7082
|
type: PropType<import("./Table.type").InnerColumn[]>;
|
|
7067
7083
|
default: () => import("./Table.type").InnerColumn[];
|
|
7068
7084
|
};
|
|
7085
|
+
isHeadTable: {
|
|
7086
|
+
type: BooleanConstructor;
|
|
7087
|
+
default: boolean;
|
|
7088
|
+
};
|
|
7069
7089
|
}>, {
|
|
7070
7090
|
cols: import("vue").ComputedRef<import("./Table.type").TableColProps[]>;
|
|
7091
|
+
getWidth: (col: import("./Table.type").TableColProps) => string;
|
|
7071
7092
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
7072
7093
|
columns: {
|
|
7073
7094
|
type: PropType<import("./Table.type").InnerColumn[]>;
|
|
7074
7095
|
default: () => import("./Table.type").InnerColumn[];
|
|
7075
7096
|
};
|
|
7097
|
+
isHeadTable: {
|
|
7098
|
+
type: BooleanConstructor;
|
|
7099
|
+
default: boolean;
|
|
7100
|
+
};
|
|
7076
7101
|
}>> & Readonly<{}>, {
|
|
7077
7102
|
columns: import("./Table.type").InnerColumn[];
|
|
7103
|
+
isHeadTable: boolean;
|
|
7078
7104
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
7079
7105
|
TableHeader: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
7080
7106
|
columns: {
|
|
@@ -11395,7 +11421,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
11395
11421
|
cellRef: import("vue").Ref<any, any>;
|
|
11396
11422
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
11397
11423
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
11398
|
-
|
|
11424
|
+
checkWidth: ({ target, width }: {
|
|
11425
|
+
target: HTMLElement;
|
|
11426
|
+
width: number;
|
|
11427
|
+
}) => void;
|
|
11399
11428
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
11400
11429
|
prefixCls: {
|
|
11401
11430
|
type: StringConstructor;
|
|
@@ -12694,7 +12723,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
12694
12723
|
cellRef: import("vue").Ref<any, any>;
|
|
12695
12724
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
12696
12725
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
12697
|
-
|
|
12726
|
+
checkWidth: ({ target, width }: {
|
|
12727
|
+
target: HTMLElement;
|
|
12728
|
+
width: number;
|
|
12729
|
+
}) => void;
|
|
12698
12730
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
12699
12731
|
prefixCls: {
|
|
12700
12732
|
type: StringConstructor;
|
|
@@ -11,4 +11,6 @@ export default function useTableResize(updatedColumns: Ref<InnerColumn[]>, table
|
|
|
11
11
|
resetScrollX: () => void;
|
|
12
12
|
clearResizeTimer: () => void;
|
|
13
13
|
setResizeWidth: (column: InnerColumn, width: number) => void;
|
|
14
|
+
syncColumnWidth: (width: number, column: InnerColumn) => void;
|
|
15
|
+
columnWidths: Ref<Record<string, number>, Record<string, number>>;
|
|
14
16
|
};
|
|
@@ -22,6 +22,7 @@ function getWidth(width, tableWidth) {
|
|
|
22
22
|
function useTableResize(updatedColumns, tableRefs, prefixCls, isColumnFixed, props) {
|
|
23
23
|
const tableWidth = vue.ref(void 0);
|
|
24
24
|
const resizeColumns = vue.shallowRef([]);
|
|
25
|
+
const columnWidths = vue.ref({});
|
|
25
26
|
const syncColumnsWidth = () => {
|
|
26
27
|
const { bodyTable } = tableRefs;
|
|
27
28
|
if (!bodyTable || bodyTable.getWidth() === void 0) {
|
|
@@ -39,6 +40,9 @@ function useTableResize(updatedColumns, tableRefs, prefixCls, isColumnFixed, pro
|
|
|
39
40
|
tableWidth.value = void 0;
|
|
40
41
|
}
|
|
41
42
|
};
|
|
43
|
+
const syncColumnWidth = (width, column) => {
|
|
44
|
+
columnWidths.value[utils.getColumnKey(column)] = width;
|
|
45
|
+
};
|
|
42
46
|
let syncHeightTimer = null;
|
|
43
47
|
const scrollPosition = vue.ref("left");
|
|
44
48
|
const setScrollPositionClass = () => {
|
|
@@ -77,6 +81,7 @@ function useTableResize(updatedColumns, tableRefs, prefixCls, isColumnFixed, pro
|
|
|
77
81
|
_column.width = width;
|
|
78
82
|
}
|
|
79
83
|
resizeColumns.value = columns;
|
|
84
|
+
syncColumnWidth(width, _column);
|
|
80
85
|
};
|
|
81
86
|
const isScrollX = vue.computed(() => {
|
|
82
87
|
const { table } = tableRefs;
|
|
@@ -110,7 +115,9 @@ function useTableResize(updatedColumns, tableRefs, prefixCls, isColumnFixed, pro
|
|
|
110
115
|
setScrollPositionClass,
|
|
111
116
|
resetScrollX,
|
|
112
117
|
clearResizeTimer,
|
|
113
|
-
setResizeWidth
|
|
118
|
+
setResizeWidth,
|
|
119
|
+
syncColumnWidth,
|
|
120
|
+
columnWidths
|
|
114
121
|
};
|
|
115
122
|
}
|
|
116
123
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableResize.js","sources":["../../../../../src/components/Table/hooks/useTableResize.ts"],"sourcesContent":["import { computed, ref, shallowRef } from 'vue';\nimport type { ComputedRef, Ref } from 'vue';\nimport { getLeafColumns, getColumnKey } from '../utils';\n// import { shallowequal } from '../../../utils/tools';\nimport type { InnerColumn, TableProps, TableRefs } from '../Table.type';\n\nexport function getWidth(width: string | number, tableWidth: number) {\n let _width = 0;\n if (typeof width === 'number') {\n _width = width;\n } else if (/^\\d*px$/.test(width)) {\n _width = Number(width.replace('px', ''));\n } else if (/^[\\d.]*%$/.test(width)) {\n const percent = Number(width.replace('%', ''));\n if (!Number.isNaN(percent)) {\n _width = Math.floor((percent / 100) * tableWidth);\n }\n }\n return _width;\n}\nexport default function useTableResize(\n updatedColumns: Ref<InnerColumn[]>,\n tableRefs: TableRefs,\n prefixCls: Ref<string>,\n isColumnFixed: ComputedRef<boolean>,\n props: TableProps\n) {\n const tableWidth = ref<number | undefined>(undefined);\n const resizeColumns = shallowRef<InnerColumn[]>([]);\n\n const syncColumnsWidth = () => {\n const { bodyTable } = tableRefs;\n if (!bodyTable || (bodyTable as any).getWidth() === undefined) {\n return;\n }\n // const wrapWidth = props.border ? bodyTable.clientWidth - 1 : bodyTable.clientWidth;\n const wrapWidth = (bodyTable as any).getWidth();\n\n const columns = getLeafColumns(updatedColumns.value);\n\n const totalWidth = columns.reduce((sum, col) => sum + getWidth(col.width ?? col.minWidth, wrapWidth), 0);\n if (totalWidth > wrapWidth) {\n tableWidth.value = totalWidth;\n } else {\n tableWidth.value = undefined;\n }\n };\n\n let syncHeightTimer: any = null;\n const scrollPosition = ref('left');\n\n const setScrollPositionClass = () => {\n const { bodyTable } = tableRefs;\n const bodyDom = (bodyTable as any).wrapRef;\n if (!bodyDom) {\n return;\n }\n\n const scrollToLeft = bodyDom.scrollLeft === 0;\n const scrollToRight = bodyDom.scrollLeft + 1 >= bodyDom.children[0].getBoundingClientRect().width - bodyDom.getBoundingClientRect().width;\n if (scrollToLeft && scrollToRight) {\n scrollPosition.value = 'both';\n } else if (scrollToLeft) {\n scrollPosition.value = 'left';\n } else if (scrollToRight) {\n scrollPosition.value = 'right';\n } else {\n scrollPosition.value = 'middle';\n }\n };\n const handleResize = () => {\n syncColumnsWidth();\n\n if (isColumnFixed.value) {\n syncHeightTimer = setTimeout(() => {\n // syncFixedTableRowHeight();\n setScrollPositionClass();\n }, 0);\n }\n setTimeout(() => {\n (tableRefs.bodyTable as any).update();\n }, 0);\n };\n\n const setResizeWidth = (column: InnerColumn, width: number) => {\n const columns = getLeafColumns(updatedColumns.value);\n const _column = columns.find((c) => c === column || getColumnKey(c) === getColumnKey(column));\n if (_column) {\n _column.width = width;\n }\n resizeColumns.value = columns;\n };\n const isScrollX = computed(() => {\n const { table } = tableRefs;\n if (table) {\n const wrapWidth = props.border ? table.offsetWidth - 1 : table.offsetWidth;\n return tableWidth.value && tableWidth.value > wrapWidth;\n }\n return false;\n });\n\n const resetScrollX = () => {\n const { bodyTable, headTable } = tableRefs;\n if (bodyTable) {\n (bodyTable as any).setScrollLeft(0);\n }\n if (headTable) {\n (headTable as any).setScrollLeft(0);\n }\n };\n const clearResizeTimer = () => {\n if (syncHeightTimer) {\n clearTimeout(syncHeightTimer);\n syncHeightTimer = null;\n }\n };\n return {\n // sizesMap,\n tableWidth,\n isScrollX,\n scrollPosition,\n resizeColumns,\n handleResize,\n setScrollPositionClass,\n resetScrollX,\n clearResizeTimer,\n setResizeWidth\n };\n}\n"],"names":["ref","shallowRef","getLeafColumns","getColumnKey","computed"],"mappings":";;;;;;;SAMgB,SAAS,OAAwB,YAAoB;AACnE,MAAI,SAAS;AACb,MAAI,OAAO,UAAU,UAAU;AAC7B,aAAS;AAAA,aACA,UAAU,KAAK,KAAK,GAAG;AAChC,aAAS,OAAO,MAAM,QAAQ,MAAM,EAAE,CAAC;AAAA,aAC9B,YAAY,KAAK,KAAK,GAAG;AAClC,UAAM,UAAU,OAAO,MAAM,QAAQ,KAAK,EAAE,CAAC;AAC7C,QAAI,CAAC,OAAO,MAAM,OAAO,GAAG;AAC1B,eAAS,KAAK,MAAO,UAAU,MAAO,UAAU;AAAA;AAClD;AAEF,SAAO;AACT;SACwB,eACtB,gBACA,WACA,WACA,eACA,OACA;AACA,QAAM,aAAaA,QAAwB,MAAS;AACpD,QAAM,gBAAgBC,eAA0B,EAAE;
|
|
1
|
+
{"version":3,"file":"useTableResize.js","sources":["../../../../../src/components/Table/hooks/useTableResize.ts"],"sourcesContent":["import { computed, ref, shallowRef } from 'vue';\nimport type { ComputedRef, Ref } from 'vue';\nimport { getLeafColumns, getColumnKey } from '../utils';\n// import { shallowequal } from '../../../utils/tools';\nimport type { InnerColumn, TableProps, TableRefs } from '../Table.type';\n\nexport function getWidth(width: string | number, tableWidth: number) {\n let _width = 0;\n if (typeof width === 'number') {\n _width = width;\n } else if (/^\\d*px$/.test(width)) {\n _width = Number(width.replace('px', ''));\n } else if (/^[\\d.]*%$/.test(width)) {\n const percent = Number(width.replace('%', ''));\n if (!Number.isNaN(percent)) {\n _width = Math.floor((percent / 100) * tableWidth);\n }\n }\n return _width;\n}\nexport default function useTableResize(\n updatedColumns: Ref<InnerColumn[]>,\n tableRefs: TableRefs,\n prefixCls: Ref<string>,\n isColumnFixed: ComputedRef<boolean>,\n props: TableProps\n) {\n const tableWidth = ref<number | undefined>(undefined);\n const resizeColumns = shallowRef<InnerColumn[]>([]);\n const columnWidths = ref<Record<string, number>>({});\n\n const syncColumnsWidth = () => {\n const { bodyTable } = tableRefs;\n if (!bodyTable || (bodyTable as any).getWidth() === undefined) {\n return;\n }\n // const wrapWidth = props.border ? bodyTable.clientWidth - 1 : bodyTable.clientWidth;\n const wrapWidth = (bodyTable as any).getWidth();\n\n const columns = getLeafColumns(updatedColumns.value);\n\n const totalWidth = columns.reduce((sum, col) => sum + getWidth(col.width ?? col.minWidth, wrapWidth), 0);\n if (totalWidth > wrapWidth) {\n tableWidth.value = totalWidth;\n } else {\n tableWidth.value = undefined;\n }\n };\n\n const syncColumnWidth = (width: number, column: InnerColumn) => {\n columnWidths.value[getColumnKey(column)] = width;\n };\n\n let syncHeightTimer: any = null;\n const scrollPosition = ref('left');\n\n const setScrollPositionClass = () => {\n const { bodyTable } = tableRefs;\n const bodyDom = (bodyTable as any).wrapRef;\n if (!bodyDom) {\n return;\n }\n\n const scrollToLeft = bodyDom.scrollLeft === 0;\n const scrollToRight = bodyDom.scrollLeft + 1 >= bodyDom.children[0].getBoundingClientRect().width - bodyDom.getBoundingClientRect().width;\n if (scrollToLeft && scrollToRight) {\n scrollPosition.value = 'both';\n } else if (scrollToLeft) {\n scrollPosition.value = 'left';\n } else if (scrollToRight) {\n scrollPosition.value = 'right';\n } else {\n scrollPosition.value = 'middle';\n }\n };\n const handleResize = () => {\n syncColumnsWidth();\n\n if (isColumnFixed.value) {\n syncHeightTimer = setTimeout(() => {\n // syncFixedTableRowHeight();\n setScrollPositionClass();\n }, 0);\n }\n setTimeout(() => {\n (tableRefs.bodyTable as any).update();\n }, 0);\n };\n\n const setResizeWidth = (column: InnerColumn, width: number) => {\n const columns = getLeafColumns(updatedColumns.value);\n const _column = columns.find((c) => c === column || getColumnKey(c) === getColumnKey(column));\n if (_column) {\n _column.width = width;\n }\n resizeColumns.value = columns;\n syncColumnWidth(width, _column);\n };\n const isScrollX = computed(() => {\n const { table } = tableRefs;\n if (table) {\n const wrapWidth = props.border ? table.offsetWidth - 1 : table.offsetWidth;\n return tableWidth.value && tableWidth.value > wrapWidth;\n }\n return false;\n });\n\n const resetScrollX = () => {\n const { bodyTable, headTable } = tableRefs;\n if (bodyTable) {\n (bodyTable as any).setScrollLeft(0);\n }\n if (headTable) {\n (headTable as any).setScrollLeft(0);\n }\n };\n const clearResizeTimer = () => {\n if (syncHeightTimer) {\n clearTimeout(syncHeightTimer);\n syncHeightTimer = null;\n }\n };\n return {\n // sizesMap,\n tableWidth,\n isScrollX,\n scrollPosition,\n resizeColumns,\n handleResize,\n setScrollPositionClass,\n resetScrollX,\n clearResizeTimer,\n setResizeWidth,\n syncColumnWidth,\n columnWidths\n };\n}\n"],"names":["ref","shallowRef","getLeafColumns","getColumnKey","computed"],"mappings":"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"}
|
|
@@ -12,11 +12,15 @@ const _sfc_main = vue.defineComponent({
|
|
|
12
12
|
columns: {
|
|
13
13
|
type: Array,
|
|
14
14
|
default: () => []
|
|
15
|
+
},
|
|
16
|
+
isHeadTable: {
|
|
17
|
+
type: Boolean,
|
|
18
|
+
default: false
|
|
15
19
|
}
|
|
16
20
|
},
|
|
17
21
|
setup(props) {
|
|
18
22
|
const {
|
|
19
|
-
size: { resizeColumns }
|
|
23
|
+
size: { resizeColumns, columnWidths }
|
|
20
24
|
} = vue.inject("tableContext", {});
|
|
21
25
|
const cols = vue.computed(() => {
|
|
22
26
|
let rst = [];
|
|
@@ -37,8 +41,15 @@ const _sfc_main = vue.defineComponent({
|
|
|
37
41
|
);
|
|
38
42
|
return rst;
|
|
39
43
|
});
|
|
44
|
+
const getWidth = (col) => {
|
|
45
|
+
if (props.isHeadTable) {
|
|
46
|
+
return `${columnWidths.value[col.key]}px`;
|
|
47
|
+
}
|
|
48
|
+
return col.resizeWidth ? col.resizeWidth : col.width;
|
|
49
|
+
};
|
|
40
50
|
return {
|
|
41
|
-
cols
|
|
51
|
+
cols,
|
|
52
|
+
getWidth
|
|
42
53
|
};
|
|
43
54
|
}
|
|
44
55
|
});
|
|
@@ -47,7 +58,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
47
58
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.cols, (col) => {
|
|
48
59
|
return vue.openBlock(), vue.createElementBlock("col", {
|
|
49
60
|
key: col.key,
|
|
50
|
-
style: vue.normalizeStyle({ width:
|
|
61
|
+
style: vue.normalizeStyle({ width: _ctx.getWidth(col), minWidth: col.minWidth, maxWidth: col.fixed ? col.width : "" })
|
|
51
62
|
}, null, 4);
|
|
52
63
|
}), 128))
|
|
53
64
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColGroup.js","sources":["../../../../../src/components/Table/tableUnits/ColGroup.vue"],"sourcesContent":["<template>\n <colgroup>\n <col
|
|
1
|
+
{"version":3,"file":"ColGroup.js","sources":["../../../../../src/components/Table/tableUnits/ColGroup.vue"],"sourcesContent":["<template>\n <colgroup>\n <col v-for=\"col in cols\" :key=\"col.key\" :style=\"{ width: getWidth(col), minWidth: col.minWidth, maxWidth: col.fixed ? col.width : '' }\" />\n </colgroup>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, inject } from 'vue';\nimport type { PropType } from 'vue';\nimport type { TableColProps, InnerColumn, TableContext } from '../Table.type';\nimport { getColumnKey, getLeafColumns } from '../utils';\n\nexport default defineComponent({\n name: 'TableColGroup',\n props: {\n columns: {\n type: Array as PropType<InnerColumn[]>,\n default: () => [] as InnerColumn[]\n },\n isHeadTable: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n const {\n size: { resizeColumns, columnWidths }\n } = inject<TableContext>('tableContext', {} as TableContext);\n\n const cols = computed(() => {\n let rst: TableColProps[] = [];\n rst = rst.concat(\n getLeafColumns(props.columns).map((col) => {\n const { fixed } = col;\n const colKey = getColumnKey(col);\n const resizeWidth = resizeColumns.value.find((x) => x.key === colKey)?.width;\n return {\n width: typeof col.width === 'number' ? `${col.width}px` : col.width,\n minWidth: typeof col.minWidth === 'number' ? `${col.minWidth}px` : col.minWidth,\n key: colKey,\n fixed: !!fixed,\n resizeWidth: resizeWidth ? `${resizeWidth}px` : undefined\n } as any;\n })\n );\n return rst;\n });\n\n const getWidth = (col: TableColProps) => {\n if (props.isHeadTable) {\n return `${columnWidths.value[col.key]}px`;\n }\n return col.resizeWidth ? col.resizeWidth : col.width;\n };\n\n return {\n cols,\n getWidth\n };\n }\n});\n</script>\n"],"names":["defineComponent","inject","computed","getLeafColumns","getColumnKey","_createElementBlock","_Fragment","_normalizeStyle"],"mappings":";;;;;;;;AAYA,MAAK,YAAaA,oBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAM;AAAC;AAClB,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AACX;AACF,EACA,MAAM,OAAO;UACL;AAAA,MACJ,MAAM,EAAE,eAAe;AAAa,QAClCC,WAAqB,gBAAgB,EAAkB;UAErD,OAAOC,aAAS,MAAM;UACtB,MAAuB;YACrB,IAAI;AAAA,QACRC,qBAAe,MAAM,OAAO,EAAE,IAAI,CAAC,QAAQ;AAzBnD;gBA0BgB,EAAE,UAAU;gBACZ,SAASC,mBAAa,GAAG;gBACzB,eAAc,mBAAc,MAAM,KAAK,CAAC,MAAM,EAAE,QAAQ,MAAM,MAAhD,mBAAmD;iBAChE;AAAA,YACL,OAAO,OAAO,IAAI,UAAU,WAAW,GAAG,IAAI,YAAY,IAAI;AAAA,YAC9D,UAAU,OAAO,IAAI,aAAa,WAAW,GAAG,IAAI,eAAe,IAAI;AAAA,YACvE,KAAK;AAAA,YACL,OAAO,CAAC,CAAC;AAAA,YACT,aAAa,cAAc,GAAG,kBAAkB;AAAA;AAClD,SACD;AAAA;aAEI;AAAA,KACR;UAEK,WAAW,CAAC,QAAuB;UACnC,MAAM,aAAa;eACd,GAAG,aAAa,MAAM,IAAI;AAAA;aAE5B,IAAI,cAAc,IAAI,cAAc,IAAI;AAAA;WAG1C;AAAA,MACL;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;0BA3DCC,uBAEW;0BADTA,uBAA0IC,mCAAvH,WAAI,CAAX,QAAG;8BAAfD,uBAA0I;QAAhH,KAAK,IAAI;AAAA,QAAM,OAAKE,4BAAW,cAAS,GAAG,aAAa,IAAI,UAAQ,UAAY,IAAI,QAAQ,IAAI,QAAK;;;;;;;;;"}
|
|
@@ -5,14 +5,24 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
5
5
|
type: PropType<InnerColumn[]>;
|
|
6
6
|
default: () => InnerColumn[];
|
|
7
7
|
};
|
|
8
|
+
isHeadTable: {
|
|
9
|
+
type: BooleanConstructor;
|
|
10
|
+
default: boolean;
|
|
11
|
+
};
|
|
8
12
|
}>, {
|
|
9
13
|
cols: import("vue").ComputedRef<TableColProps[]>;
|
|
14
|
+
getWidth: (col: TableColProps) => string;
|
|
10
15
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
11
16
|
columns: {
|
|
12
17
|
type: PropType<InnerColumn[]>;
|
|
13
18
|
default: () => InnerColumn[];
|
|
14
19
|
};
|
|
20
|
+
isHeadTable: {
|
|
21
|
+
type: BooleanConstructor;
|
|
22
|
+
default: boolean;
|
|
23
|
+
};
|
|
15
24
|
}>> & Readonly<{}>, {
|
|
16
25
|
columns: InnerColumn[];
|
|
26
|
+
isHeadTable: boolean;
|
|
17
27
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
18
28
|
export default _default;
|
|
@@ -205,7 +205,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
205
205
|
cellRef: import("vue").Ref<any, any>;
|
|
206
206
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
207
207
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
208
|
-
|
|
208
|
+
checkWidth: ({ target, width }: {
|
|
209
|
+
target: HTMLElement;
|
|
210
|
+
width: number;
|
|
211
|
+
}) => void;
|
|
209
212
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
210
213
|
prefixCls: {
|
|
211
214
|
type: StringConstructor;
|
|
@@ -170,7 +170,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
170
170
|
cellRef: import("vue").Ref<any, any>;
|
|
171
171
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
172
172
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
173
|
-
|
|
173
|
+
checkWidth: ({ target, width }: {
|
|
174
|
+
target: HTMLElement;
|
|
175
|
+
width: number;
|
|
176
|
+
}) => void;
|
|
174
177
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
175
178
|
prefixCls: {
|
|
176
179
|
type: StringConstructor;
|
|
@@ -1469,7 +1472,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
1469
1472
|
cellRef: import("vue").Ref<any, any>;
|
|
1470
1473
|
ellipsisSpanRef: import("vue").Ref<any, any>;
|
|
1471
1474
|
isOverflow: import("vue").Ref<boolean, boolean>;
|
|
1472
|
-
|
|
1475
|
+
checkWidth: ({ target, width }: {
|
|
1476
|
+
target: HTMLElement;
|
|
1477
|
+
width: number;
|
|
1478
|
+
}) => void;
|
|
1473
1479
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
1474
1480
|
prefixCls: {
|
|
1475
1481
|
type: StringConstructor;
|