@are-visual/virtual-table 0.10.2 → 0.11.0

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/README.md CHANGED
@@ -86,8 +86,8 @@ function App() {
86
86
  | colSpan | **表头**列合并,设置为 0 时,不渲染 | number | | |
87
87
  | title | 表头内容 | ReactNode | | |
88
88
  | align | 单元格对齐方式 | `left` \|`right` \|`center` | | |
89
- | minWidth | 列最小宽度 | number | | |
90
- | width | 列宽度 | number \| string | | |
89
+ | ~~minWidth~~ | ~~列最小宽度~~ | ~~number~~ | | `v0.11`废弃 |
90
+ | width | 列宽度 | number \| ~~string~~ | | `v0.11`废弃 `string`类型 |
91
91
  | fixed | 固定列 | `left` \| `right` | | |
92
92
  | render | 自定义单元格渲染内容 | (*value*, *record*, *index*) => ReactNode | | |
93
93
  | onHeaderCell | 设置表头单元格属性 | (column, index) => TdHTMLAttributes | | |
@@ -681,8 +681,6 @@ const {
681
681
 
682
682
  当你自定义的插件需要同步水平滚动时,可以使用这个 hook。使用 `listen` 进行滚动同步。
683
683
 
684
- 可参考 [horizontalScrollBar 水平滚动条](./packages/virtual-table/src/middleware/horizontal-scroll-bar)的实现。
685
-
686
684
  ```tsx
687
685
  import { useHorizontalScrollContext } from '@are-visual/virtual-table'
688
686
 
@@ -700,12 +698,29 @@ useEffect(() => {
700
698
  })
701
699
  }, [listen])
702
700
 
701
+ <div
702
+ ref={element}
703
+ onScroll={() => {
704
+ // element 滚动时,调用 notify 函数,同步其他容器
705
+ notify('union-key', {
706
+ scrollLeft: () => element.current.scrollLeft,
707
+ node
708
+ })
709
+ }}
710
+ />
711
+ ```
703
712
 
704
- // element 滚动时,调用 notify 函数,同步其他容器
705
- notify('union-key', {
706
- scrollLeft: () => element.scrollLeft,
707
- node
708
- })
713
+
714
+ ##### useScrollSynchronize
715
+
716
+ 基于 `useHorizontalScrollContext` 的封装。
717
+
718
+ ```tsx
719
+ import { useScrollSynchronize } from '@are-visual/virtual-table'
720
+
721
+ const nodeRef = useScrollSynchronize<HTMLDivElement>('union-key')
722
+
723
+ <div ref={nodeRef}></div>
709
724
  ```
710
725
 
711
726
  ##### useTableRowManager
@@ -743,7 +758,6 @@ interface TableRowManagerContextType {
743
758
  ```ts
744
759
  interface TableColumnsContextType {
745
760
  widthList: Map<Key, number>
746
- setWidthList: (value: Map<Key, number>) => void
747
761
  }
748
762
  ```
749
763
 
package/index.d.ts CHANGED
@@ -32,6 +32,7 @@ declare const _default$3: <T>(props: RowProps<T>) => ReactElement;
32
32
  interface TableBodyProps<T> extends Omit<NecessaryProps<T>, 'columns'>, Pick<RowProps<T>, 'onRow' | 'renderRow' | 'renderCell'> {
33
33
  className?: string;
34
34
  style?: CSSProperties;
35
+ defaultColumnWidth: number;
35
36
  columns: InnerColumnDescriptor<T>;
36
37
  bodyWrapperRef?: Ref<HTMLDivElement>;
37
38
  bodyRootRef?: Ref<HTMLTableElement>;
@@ -113,8 +114,8 @@ interface ColumnTypeCommon<T> extends ColumnExtra<T> {
113
114
  colSpan?: number;
114
115
  title?: ReactNode;
115
116
  align?: AlignType;
116
- minWidth?: number;
117
- width?: string | number;
117
+ /** @default 100 */
118
+ width?: number;
118
119
  fixed?: FixedType;
119
120
  render?: (value: any, record: T, index: number) => ReactNode;
120
121
  onHeaderCell?: (column: ColumnType<any>, index: number) => HTMLAttributes<any> & TdHTMLAttributes<any>;
@@ -142,8 +143,11 @@ interface InnerColumnDescriptor<T> {
142
143
  descriptor: ColumnDescriptor<T>[];
143
144
  columns: ColumnType<T>[];
144
145
  }
146
+ type Prettify$1<T> = {
147
+ [K in keyof T]: T[K];
148
+ } & {};
145
149
  interface TableInstanceBuildIn<T = any> {
146
- getCurrentProps: () => Readonly<VirtualTableCoreProps<T>>;
150
+ getCurrentProps: () => Prettify$1<Readonly<Omit<VirtualTableCoreProps<T>, 'defaultColumnWidth'> & Required<Pick<VirtualTableCoreProps<T>, 'estimatedRowHeight' | 'overscanRows' | 'overscanColumns' | 'defaultColumnWidth'>>>>;
147
151
  /** 获取所有 middleware 处理过的 columns */
148
152
  getColumns: () => ColumnType<T>[];
149
153
  /** 获取所有 middleware 处理过的 dataSource */
@@ -324,13 +328,12 @@ declare const _default$1: <T>(props: CellProps<T>) => ReactElement;
324
328
 
325
329
  interface ColgroupProps {
326
330
  columns: ColumnDescriptor[];
327
- onColumnSizesMeasure?: (columnSizes: Map<Key, number>) => void;
331
+ defaultColumnWidth: number;
328
332
  }
329
333
  declare const _default: react.NamedExoticComponent<ColgroupProps>;
330
334
 
331
335
  interface TableColumnsContextType {
332
336
  widthList: Map<Key, number>;
333
- setWidthList: (value: Map<Key, number>) => void;
334
337
  }
335
338
  declare function useColumnSizes(): TableColumnsContextType;
336
339
 
@@ -351,6 +354,7 @@ interface HorizontalScrollContextState {
351
354
  }) => void;
352
355
  }
353
356
  declare function useHorizontalScrollContext(): HorizontalScrollContextState;
357
+ declare function useScrollSynchronize<T extends HTMLElement>(key: string): react.RefObject<T>;
354
358
 
355
359
  interface TableRowManagerContextType {
356
360
  getRowHeightList: () => number[];
@@ -392,6 +396,8 @@ declare function createMiddleware<T, Args extends any[]>(hook: (ctx: MiddlewareC
392
396
  declare function getKey<T>(column: ColumnType<T>): Key;
393
397
  declare function getRowKey<T>(rowData: T, rowKey: NecessaryProps<T>['rowKey']): Key;
394
398
 
399
+ declare function getColumnWidth<T>(column: ColumnType<T>, defaultColumnWidth: number): number;
400
+
395
401
  interface ResizeRect {
396
402
  width: number;
397
403
  height: number;
@@ -404,5 +410,5 @@ type PossibleRef<T> = Ref<T> | undefined;
404
410
  declare function mergeRefs<T>(...refs: PossibleRef<T>[]): (node: T | null) => void;
405
411
  declare function useMergedRef<T>(...refs: PossibleRef<T>[]): (node: T | null) => void;
406
412
 
407
- export { _default as Colgroup, NormalRowHeightKey, TablePipeline, _default$2 as VirtualTable, _default$1 as VirtualTableCell, _default$3 as VirtualTableRow, createMiddleware, findLastIndex, getKey, getRelativeOffsetTop, getRowKey, getScrollElement, getScrollParent, getScrollTop, isDocument, isRoot, isValidFixed, isValidFixedLeft, isValidFixedRight, isWindow, mergeRefs, onResize, useColumnSizes, useContainerSize, useHorizontalScrollContext, useMergedRef, useShallowMemo, useStableFn, useTableInstance, useTablePipeline, useTableRowManager, useTableSticky };
413
+ export { _default as Colgroup, NormalRowHeightKey, TablePipeline, _default$2 as VirtualTable, _default$1 as VirtualTableCell, _default$3 as VirtualTableRow, createMiddleware, findLastIndex, getColumnWidth, getKey, getRelativeOffsetTop, getRowKey, getScrollElement, getScrollParent, getScrollTop, isDocument, isRoot, isValidFixed, isValidFixedLeft, isValidFixedRight, isWindow, mergeRefs, onResize, useColumnSizes, useContainerSize, useHorizontalScrollContext, useMergedRef, useScrollSynchronize, useShallowMemo, useStableFn, useTableInstance, useTablePipeline, useTableRowManager, useTableSticky };
408
414
  export type { AlignType, AnyObject, ColumnDescriptor, ColumnExtra, ColumnType, ContainerSizeState, FixedType, HorizontalScrollContextState, MergedMiddlewareRender, Middleware, MiddlewareContext, MiddlewareRender, MiddlewareRenderBody, MiddlewareRenderBodyContent, MiddlewareRenderBodyRoot, MiddlewareRenderBodyWrapper, MiddlewareRenderCell, MiddlewareRenderContent, MiddlewareRenderHeader, MiddlewareRenderHeaderCell, MiddlewareRenderHeaderRoot, MiddlewareRenderHeaderRow, MiddlewareRenderHeaderWrapper, MiddlewareRenderRoot, MiddlewareRenderRow, MiddlewareRenders, MiddlewareResult, OnRowType, PipelineRender, PipelineRenderOptions, ScrollElement, StickyContextState, TableColumnsContextType, TableInstance, TableInstanceBuildIn, TableRowManagerContextType, UseTablePipelineOptions, CellProps as VirtualTableCellProps, VirtualTableCoreProps as VirtualTableProps, RowProps as VirtualTableRowProps };