@visactor/react-vtable 1.14.4-alpha.2 → 1.14.4-alpha.3

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/cjs/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from './tables';
2
2
  export * from './table-components';
3
3
  export * from './components';
4
- export declare const version = "1.14.4-alpha.2";
4
+ export declare const version = "1.14.4-alpha.3";
package/cjs/index.js CHANGED
@@ -18,5 +18,5 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
20
  }), exports.version = void 0, __exportStar(require("./tables"), exports), __exportStar(require("./table-components"), exports),
21
- __exportStar(require("./components"), exports), exports.version = "1.14.4-alpha.2";
21
+ __exportStar(require("./components"), exports), exports.version = "1.14.4-alpha.3";
22
22
  //# sourceMappingURL=index.js.map
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,qDAAmC;AACnC,+CAA6B;AAEhB,QAAA,OAAO,GAAG,gBAAgB,CAAC","file":"index.js","sourcesContent":["export * from './tables';\nexport * from './table-components';\nexport * from './components';\n\nexport const version = \"1.14.4-alpha.2\";\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,qDAAmC;AACnC,+CAA6B;AAEhB,QAAA,OAAO,GAAG,gBAAgB,CAAC","file":"index.js","sourcesContent":["export * from './tables';\nexport * from './table-components';\nexport * from './components';\n\nexport const version = \"1.14.4-alpha.3\";\n"]}
@@ -13,7 +13,6 @@ export type BaseTableProps = EventsProps & IOption & {
13
13
  width?: number;
14
14
  height?: number;
15
15
  skipFunctionDiff?: boolean;
16
- keepColumnWidthChange?: boolean;
17
16
  ReactDOM?: any;
18
17
  onReady?: (instance: IVTable, isInitial: boolean) => void;
19
18
  onError?: (err: Error) => void;
@@ -45,7 +45,7 @@ const notOptionKeys = [ ...constants_1.REACT_PRIVATE_PROPS, ...eventsUtils_1.TAB
45
45
  const optionResult = parseOption((0, vutils_1.isNil)(child.props.componentId) ? Object.assign(Object.assign({}, child.props), {
46
46
  componentId: getComponentId(child, index)
47
47
  }) : child.props);
48
- child.key && (optionResult.option.key = child.key), optionResult.isSingle ? optionFromChildren[optionResult.optionName] = optionResult.option : (optionFromChildren[optionResult.optionName] || (optionFromChildren[optionResult.optionName] = []),
48
+ optionResult.isSingle ? optionFromChildren[optionResult.optionName] = optionResult.option : (optionFromChildren[optionResult.optionName] || (optionFromChildren[optionResult.optionName] = []),
49
49
  optionFromChildren[optionResult.optionName].push(optionResult.option));
50
50
  }
51
51
  })), optionFromChildren;
@@ -57,9 +57,8 @@ const notOptionKeys = [ ...constants_1.REACT_PRIVATE_PROPS, ...eventsUtils_1.TAB
57
57
  }));
58
58
  const hasOption = !!props.option, hasRecords = !!props.records, isUnmount = (0,
59
59
  react_1.useRef)(!1), prevOption = (0, react_1.useRef)((0, vutils_1.pickWithout)(props, notOptionKeys)), optionFromChildren = (0,
60
- react_1.useRef)(null), prevRecords = (0, react_1.useRef)(props.records), eventsBinded = react_1.default.useRef(null), skipFunctionDiff = !!props.skipFunctionDiff, keepColumnWidthChange = !!props.keepColumnWidthChange, columnWidths = (0,
61
- react_1.useRef)(new Map), pivotColumnWidths = (0, react_1.useRef)([]), pivotHeaderColumnWidths = (0,
62
- react_1.useRef)([]), parseOption = (0, react_1.useCallback)((props => hasOption && props.option ? hasRecords && props.records ? Object.assign(Object.assign({}, props.option), {
60
+ react_1.useRef)(null), prevRecords = (0, react_1.useRef)(props.records), eventsBinded = react_1.default.useRef(null), skipFunctionDiff = !!props.skipFunctionDiff, parseOption = (0,
61
+ react_1.useCallback)((props => hasOption && props.option ? hasRecords && props.records ? Object.assign(Object.assign({}, props.option), {
63
62
  clearDOM: !1,
64
63
  records: props.records
65
64
  }) : Object.assign(Object.assign({}, props.option), {
@@ -76,28 +75,7 @@ const notOptionKeys = [ ...constants_1.REACT_PRIVATE_PROPS, ...eventsUtils_1.TAB
76
75
  vtable.scenegraph.stage.reactAttribute = props.ReactDOM, vtable.scenegraph.stage.pluginService.register(new vtable_react_attribute_plugin_1.VTableReactAttributePlugin),
77
76
  vtable.scenegraph.stage.params.ReactDOM = props.ReactDOM, tableContext.current = Object.assign(Object.assign({}, tableContext.current), {
78
77
  table: vtable
79
- }), isUnmount.current = !1, columnWidths.current.clear(), pivotColumnWidths.current = [],
80
- pivotHeaderColumnWidths.current = [], vtable.on("resize_column_end", (args => {
81
- const table = tableContext.current.table;
82
- if (!keepColumnWidthChange) return;
83
- const {col: col, colWidths: colWidths} = args, width = colWidths[col];
84
- if (vtable.isPivotTable()) {
85
- const path = table.getCellHeaderPaths(col, table.columnHeaderLevelCount);
86
- let dimensions;
87
- dimensions = "rowHeader" === path.cellLocation ? path.rowHeaderPaths : path.colHeaderPaths;
88
- let found = !1;
89
- pivotColumnWidths.current.forEach((item => {
90
- JSON.stringify(item.dimensions) === JSON.stringify(dimensions) && (item.width = width,
91
- found = !0);
92
- })), found || pivotColumnWidths.current.push({
93
- dimensions: dimensions,
94
- width: width
95
- });
96
- } else {
97
- const define = table.getBodyColumnDefine(col, 0);
98
- (null == define ? void 0 : define.key) && columnWidths.current.set(define.key, width);
99
- }
100
- }));
78
+ }), isUnmount.current = !1;
101
79
  }), [ parseOption ]), handleTableRender = (0, react_1.useCallback)((() => {
102
80
  if (!isUnmount.current) {
103
81
  if (!tableContext.current || !tableContext.current.table) return;
@@ -120,30 +98,16 @@ const notOptionKeys = [ ...constants_1.REACT_PRIVATE_PROPS, ...eventsUtils_1.TAB
120
98
  eventsBinded.current = props) : (tableContext.current.table.updateOption(parseOption(props)),
121
99
  handleTableRender(), eventsBinded.current = props));
122
100
  const newOption = (0, vutils_1.pickWithout)(props, notOptionKeys);
123
- if ((0, vutils_1.isEqual)(newOption, prevOption.current, {
101
+ (0, vutils_1.isEqual)(newOption, prevOption.current, {
124
102
  skipFunction: skipFunctionDiff
125
103
  }) && (0, vutils_1.isEqual)(newOptionFromChildren, optionFromChildren.current, {
126
104
  skipFunction: skipFunctionDiff
127
- })) {
128
- if (hasRecords && !(0, vutils_1.isEqual)(props.records, prevRecords.current, {
129
- skipFunction: skipFunctionDiff
130
- })) {
131
- if (prevRecords.current = props.records, keepColumnWidthChange) {
132
- const columnWidthConfig = updateWidthCache(columnWidths.current, pivotColumnWidths.current, tableContext.current.table);
133
- tableContext.current.table.internalProps.columnWidthConfig = columnWidthConfig,
134
- tableContext.current.table.internalProps.columnWidthConfigForRowHeader = columnWidthConfig;
135
- }
136
- tableContext.current.table.setRecords(props.records), handleTableRender(), eventsBinded.current = props;
137
- }
138
- } else {
139
- prevOption.current = newOption, optionFromChildren.current = newOptionFromChildren;
140
- const option = parseOption(props);
141
- if (keepColumnWidthChange) {
142
- const columnWidthConfig = updateWidthCache(columnWidths.current, pivotColumnWidths.current, tableContext.current.table);
143
- option.columnWidthConfig = columnWidthConfig, option.columnWidthConfigForRowHeader = columnWidthConfig;
144
- }
145
- tableContext.current.table.updateOption(option), handleTableRender(), eventsBinded.current = props;
146
- }
105
+ }) ? hasRecords && !(0, vutils_1.isEqual)(props.records, prevRecords.current, {
106
+ skipFunction: skipFunctionDiff
107
+ }) && (prevRecords.current = props.records, tableContext.current.table.setRecords(props.records),
108
+ handleTableRender(), eventsBinded.current = props) : (prevOption.current = newOption,
109
+ optionFromChildren.current = newOptionFromChildren, tableContext.current.table.updateOption(parseOption(props)),
110
+ handleTableRender(), eventsBinded.current = props);
147
111
  }), [ createTable, hasOption, hasRecords, parseOption, handleTableRender, renderTable, skipFunctionDiff, props ]),
148
112
  (0, react_1.useEffect)((() => () => {
149
113
  tableContext && tableContext.current && tableContext.current.table && (tableContext.current.table.release(),
@@ -166,16 +130,5 @@ const notOptionKeys = [ ...constants_1.REACT_PRIVATE_PROPS, ...eventsUtils_1.TAB
166
130
  return Com.displayName = componentName, Com;
167
131
  };
168
132
 
169
- function updateWidthCache(columnWidths, pivotColumnWidths, table) {
170
- if (table.isPivotTable()) return pivotColumnWidths;
171
- const columnWidthConfig = [];
172
- return columnWidths.forEach(((width, key) => {
173
- columnWidthConfig.push({
174
- key: key,
175
- width: width
176
- });
177
- })), columnWidthConfig;
178
- }
179
-
180
- //# sourceMappingURL=base-table.js.map
181
- exports.createTable = createTable;
133
+ exports.createTable = createTable;
134
+ //# sourceMappingURL=base-table.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["tables/base-table.tsx"],"names":[],"mappings":"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","file":"base-table.js","sourcesContent":["/* eslint-disable react/display-name */\n// import * as VTable from '@visactor/vtable';\n// import { VTable } from '../vtable';\nimport React, { useState, useEffect, useRef, useImperativeHandle, useCallback } from 'react';\nimport type { ContainerProps } from '../containers/withContainer';\nimport withContainer from '../containers/withContainer';\nimport type { TableContextType } from '../context/table';\nimport RootTableContext from '../context/table';\nimport { isEqual, isNil, isNumber, pickWithout } from '@visactor/vutils';\nimport { toArray } from '../util';\nimport { REACT_PRIVATE_PROPS } from '../constants';\nimport type { IMarkElement } from '../table-components';\nimport type {\n EventsProps\n // LegendEventProps,\n // ScrollBarEventProps,\n // BrushEventProps,\n // DataZoomEventProps,\n // PlayerEventProps,\n // DimensionEventProps,\n // HierarchyEventProps,\n // TableLifeCycleEventProps\n} from '../eventsUtils';\nimport { bindEventsToTable, TABLE_EVENTS_KEYS, TABLE_EVENTS } from '../eventsUtils';\nimport { VTableReactAttributePlugin } from '../table-components/custom/vtable-react-attribute-plugin';\nimport { reactEnvModule } from '../table-components/custom/vtable-browser-env-contribution';\nimport { container, isBrowserEnv } from '@visactor/vtable/es/vrender';\nimport type {\n ListTable,\n PivotTable,\n PivotChart,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions\n} from '@visactor/vtable';\nimport type { TYPES } from '@visactor/vtable';\n\nexport type IVTable = ListTable | PivotTable | PivotChart;\nexport type IOption = ListTableConstructorOptions | PivotTableConstructorOptions | PivotChartConstructorOptions;\n\nexport type BaseTableProps = EventsProps &\n IOption & {\n vtableConstrouctor?: any;\n type?: string;\n /** 上层container */\n container?: HTMLDivElement;\n /** option */\n option?: IOption;\n /** 数据 */\n records?: Record<string, unknown>[];\n /** 画布宽度 */\n width?: number;\n /** 画布高度 */\n height?: number;\n skipFunctionDiff?: boolean;\n keepColumnWidthChange?: boolean;\n\n ReactDOM?: any;\n\n /** 表格渲染完成事件 */\n onReady?: (instance: IVTable, isInitial: boolean) => void;\n /** throw error when chart run into an error */\n onError?: (err: Error) => void;\n };\n\n// for react-vtable\nif (isBrowserEnv()) {\n container.load(reactEnvModule);\n}\n\ntype Props = React.PropsWithChildren<BaseTableProps>;\n\nconst notOptionKeys = [\n ...REACT_PRIVATE_PROPS,\n ...TABLE_EVENTS_KEYS,\n 'skipFunctionDiff',\n 'onError',\n 'onReady',\n 'option',\n 'records',\n 'container',\n 'vtableConstrouctor'\n];\n\nconst getComponentId = (child: React.ReactNode, index: number) => {\n const componentName = child && (child as any).type && ((child as any).type.displayName || (child as any).type.name);\n return `${componentName}-${index}`;\n};\n\nconst parseOptionFromChildren = (props: Props) => {\n const optionFromChildren: Omit<IOption, 'type' | 'data' | 'width' | 'height'> = {} as any;\n\n toArray(props.children).map((child, index) => {\n const parseOption = child && (child as any).type && (child as any).type.parseOption;\n\n if (parseOption && (child as any).props) {\n const childProps = isNil((child as any).props.componentId)\n ? {\n ...(child as any).props,\n componentId: getComponentId(child, index)\n }\n : (child as any).props;\n\n const optionResult = parseOption(childProps) as {\n optionName: keyof Omit<IOption, 'type' | 'data' | 'width' | 'height'>;\n isSingle: boolean;\n option: any;\n };\n\n if ((child as React.ReactElement).key) {\n optionResult.option.key = (child as React.ReactElement).key;\n }\n\n if (optionResult.isSingle) {\n optionFromChildren[optionResult.optionName] = optionResult.option as never;\n } else {\n if (!optionFromChildren[optionResult.optionName]) {\n optionFromChildren[optionResult.optionName] = [] as never;\n }\n\n optionFromChildren[optionResult.optionName].push(optionResult.option);\n }\n }\n });\n\n return optionFromChildren;\n};\n\nconst BaseTable: React.FC<Props> = React.forwardRef((props, ref) => {\n const [updateId, setUpdateId] = useState<number>(0);\n const tableContext = useRef<TableContextType>({});\n useImperativeHandle(ref, () => tableContext.current?.table);\n const hasOption = !!props.option;\n const hasRecords = !!props.records;\n const isUnmount = useRef<boolean>(false);\n const prevOption = useRef(pickWithout(props, notOptionKeys));\n const optionFromChildren = useRef<Omit<IOption, 'records'>>(null);\n const prevRecords = useRef(props.records);\n const eventsBinded = React.useRef<BaseTableProps>(null);\n const skipFunctionDiff = !!props.skipFunctionDiff;\n const keepColumnWidthChange = !!props.keepColumnWidthChange;\n const columnWidths = useRef<Map<string, number>>(new Map());\n const pivotColumnWidths = useRef<{ dimensions: TYPES.IDimensionInfo[]; width: number }[]>([]);\n const pivotHeaderColumnWidths = useRef<number[]>([]);\n\n const parseOption = useCallback(\n (props: Props) => {\n if (hasOption && props.option) {\n if (hasRecords && props.records) {\n return {\n ...props.option,\n clearDOM: false,\n records: props.records\n };\n }\n return {\n ...props.option,\n clearDOM: false\n };\n }\n\n return {\n records: props.records,\n ...prevOption.current,\n ...optionFromChildren.current,\n clearDOM: false,\n customConfig: {\n ...prevOption.current.customConfig,\n createReactContainer: true\n }\n // ...tableContext.current?.optionFromChildren\n };\n },\n [hasOption, hasRecords]\n );\n\n const createTable = useCallback(\n (props: Props) => {\n const vtable = new props.vtableConstrouctor(props.container, parseOption(props));\n vtable.scenegraph.stage.reactAttribute = props.ReactDOM;\n vtable.scenegraph.stage.pluginService.register(new VTableReactAttributePlugin());\n vtable.scenegraph.stage.params.ReactDOM = props.ReactDOM;\n tableContext.current = { ...tableContext.current, table: vtable };\n isUnmount.current = false;\n\n columnWidths.current.clear();\n pivotColumnWidths.current = [];\n pivotHeaderColumnWidths.current = [];\n\n vtable.on('resize_column_end', (args: { col: number; colWidths: number[] }) => {\n const table = tableContext.current.table;\n if (!keepColumnWidthChange) {\n return;\n }\n const { col, colWidths } = args;\n const width = colWidths[col];\n if (vtable.isPivotTable()) {\n const path = (table as PivotTable).getCellHeaderPaths(col, table.columnHeaderLevelCount);\n let dimensions;\n if (path.cellLocation === 'rowHeader') {\n dimensions = path.rowHeaderPaths as TYPES.IDimensionInfo[];\n } else {\n dimensions = path.colHeaderPaths as TYPES.IDimensionInfo[];\n }\n\n let found = false;\n pivotColumnWidths.current.forEach(item => {\n if (JSON.stringify(item.dimensions) === JSON.stringify(dimensions)) {\n item.width = width;\n found = true;\n }\n });\n if (!found) {\n pivotColumnWidths.current.push({ dimensions, width });\n }\n } else {\n const define = table.getBodyColumnDefine(col, 0);\n if ((define as any)?.key) {\n columnWidths.current.set((define as any).key, width);\n }\n }\n });\n },\n [parseOption]\n );\n\n const handleTableRender = useCallback(() => {\n if (!isUnmount.current) {\n if (!tableContext.current || !tableContext.current.table) {\n return;\n }\n // rebind events after render\n bindEventsToTable(tableContext.current.table, props, eventsBinded.current, TABLE_EVENTS);\n\n // to be fixed\n // will cause another useEffect\n setUpdateId(updateId + 1);\n if (props.onReady) {\n props.onReady(tableContext.current.table, updateId === 0);\n }\n }\n }, [updateId, setUpdateId, props]);\n\n const renderTable = useCallback(() => {\n if (tableContext.current.table) {\n // eslint-disable-next-line promise/catch-or-return\n tableContext.current.table.render();\n handleTableRender();\n }\n }, [handleTableRender]);\n\n useEffect(() => {\n const newOptionFromChildren = hasOption ? null : parseOptionFromChildren(props);\n\n if (!tableContext.current?.table) {\n if (!hasOption) {\n optionFromChildren.current = newOptionFromChildren;\n }\n\n createTable(props);\n renderTable();\n // bindEventsToTable(tableContext.current.table, props, null, TABLE_EVENTS);\n // tableContext.current = {\n // ...tableContext.current,\n // isChildrenUpdated: false\n // };\n eventsBinded.current = props;\n return;\n }\n\n if (hasOption) {\n if (!isEqual(eventsBinded.current.option, props.option, { skipFunction: skipFunctionDiff })) {\n // eslint-disable-next-line promise/catch-or-return\n tableContext.current.table.updateOption(parseOption(props) as any);\n handleTableRender();\n eventsBinded.current = props;\n } else if (\n hasRecords &&\n !isEqual(eventsBinded.current.records, props.records, { skipFunction: skipFunctionDiff })\n ) {\n tableContext.current.table.setRecords(props.records as any[]);\n handleTableRender();\n eventsBinded.current = props;\n }\n return;\n }\n\n const newOption = pickWithout(props, notOptionKeys);\n\n if (\n !isEqual(newOption, prevOption.current, { skipFunction: skipFunctionDiff }) ||\n // tableContext.current.isChildrenUpdated\n !isEqual(newOptionFromChildren, optionFromChildren.current, { skipFunction: skipFunctionDiff })\n ) {\n prevOption.current = newOption;\n optionFromChildren.current = newOptionFromChildren;\n\n const option = parseOption(props);\n if (keepColumnWidthChange) {\n const columnWidthConfig = updateWidthCache(\n columnWidths.current,\n pivotColumnWidths.current,\n tableContext.current.table\n );\n (option as any).columnWidthConfig = columnWidthConfig;\n (option as any).columnWidthConfigForRowHeader = columnWidthConfig;\n }\n tableContext.current.table.updateOption(option as any);\n\n // columnWidths.current = [];\n handleTableRender();\n eventsBinded.current = props;\n } else if (hasRecords && !isEqual(props.records, prevRecords.current, { skipFunction: skipFunctionDiff })) {\n prevRecords.current = props.records;\n\n if (keepColumnWidthChange) {\n const columnWidthConfig = updateWidthCache(\n columnWidths.current,\n pivotColumnWidths.current,\n tableContext.current.table\n );\n (tableContext.current.table.internalProps as any).columnWidthConfig = columnWidthConfig;\n (tableContext.current.table.internalProps as any).columnWidthConfigForRowHeader = columnWidthConfig;\n }\n\n tableContext.current.table.setRecords(props.records);\n handleTableRender();\n eventsBinded.current = props;\n }\n // tableContext.current = {\n // ...tableContext.current,\n // isChildrenUpdated: false\n // };\n }, [createTable, hasOption, hasRecords, parseOption, handleTableRender, renderTable, skipFunctionDiff, props]);\n\n useEffect(() => {\n return () => {\n if (tableContext) {\n if (tableContext.current && tableContext.current.table) {\n tableContext.current.table.release();\n tableContext.current = null;\n }\n }\n eventsBinded.current = null;\n isUnmount.current = true;\n };\n }, []);\n\n return (\n <RootTableContext.Provider value={tableContext.current}>\n {toArray(props.children).map((child: React.ReactNode, index: number) => {\n if (typeof child === 'string') {\n return;\n }\n\n const childId = getComponentId(child, index);\n\n // const componentName =\n // child && (child as any).type && ((child as any).type.displayName || (child as any).type.name);\n // const childId = `${componentName}-${index}`;\n\n return (\n // <React.Fragment key={(child as any)?.props?.id ?? (child as any)?.id ?? `child-${index}`}>\n // {React.cloneElement(child as IMarkElement, {\n // updateId: updateId\n // })}\n // </React.Fragment>\n <React.Fragment key={childId}>\n {React.cloneElement(child as React.ReactElement<any, React.JSXElementConstructor<any>>, {\n updateId: updateId,\n componentId: childId,\n componentIndex: index\n })}\n </React.Fragment>\n );\n })}\n </RootTableContext.Provider>\n );\n});\n\nexport const createTable = <T extends Props>(\n componentName: string,\n defaultProps?: Partial<T>,\n callback?: (props: T) => T\n) => {\n const Com = withContainer<ContainerProps, T>(BaseTable as any, componentName, (props: T) => {\n // props.type = type;\n\n if (defaultProps) {\n return Object.assign(props, defaultProps);\n }\n\n // if (callback) {\n // return callback(props);\n // }\n\n // if (type) {\n // return { ...props, type };\n // }\n return props;\n });\n Com.displayName = componentName;\n return Com;\n};\n\nfunction updateWidthCache(\n columnWidths: Map<string, number>,\n pivotColumnWidths: { dimensions: TYPES.IDimensionInfo[]; width: number }[],\n table: IVTable\n) {\n if (table.isPivotTable()) {\n return pivotColumnWidths;\n }\n const columnWidthConfig: { key: string; width: number }[] = [];\n columnWidths.forEach((width, key) => {\n columnWidthConfig.push({\n key,\n width\n });\n });\n return columnWidthConfig;\n}\n"]}
1
+ {"version":3,"sources":["tables/base-table.tsx"],"names":[],"mappings":"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","file":"base-table.js","sourcesContent":["/* eslint-disable react/display-name */\n// import * as VTable from '@visactor/vtable';\n// import { VTable } from '../vtable';\nimport React, { useState, useEffect, useRef, useImperativeHandle, useCallback } from 'react';\nimport type { ContainerProps } from '../containers/withContainer';\nimport withContainer from '../containers/withContainer';\nimport type { TableContextType } from '../context/table';\nimport RootTableContext from '../context/table';\nimport { isEqual, isNil, pickWithout } from '@visactor/vutils';\nimport { toArray } from '../util';\nimport { REACT_PRIVATE_PROPS } from '../constants';\nimport type { IMarkElement } from '../table-components';\nimport type {\n EventsProps\n // LegendEventProps,\n // ScrollBarEventProps,\n // BrushEventProps,\n // DataZoomEventProps,\n // PlayerEventProps,\n // DimensionEventProps,\n // HierarchyEventProps,\n // TableLifeCycleEventProps\n} from '../eventsUtils';\nimport { bindEventsToTable, TABLE_EVENTS_KEYS, TABLE_EVENTS } from '../eventsUtils';\nimport { VTableReactAttributePlugin } from '../table-components/custom/vtable-react-attribute-plugin';\nimport { reactEnvModule } from '../table-components/custom/vtable-browser-env-contribution';\nimport { container, isBrowserEnv } from '@visactor/vtable/es/vrender';\nimport type {\n ListTable,\n PivotTable,\n PivotChart,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions\n} from '@visactor/vtable';\n\nexport type IVTable = ListTable | PivotTable | PivotChart;\nexport type IOption = ListTableConstructorOptions | PivotTableConstructorOptions | PivotChartConstructorOptions;\n\nexport type BaseTableProps = EventsProps &\n IOption & {\n vtableConstrouctor?: any;\n type?: string;\n /** 上层container */\n container?: HTMLDivElement;\n /** option */\n option?: IOption;\n /** 数据 */\n records?: Record<string, unknown>[];\n /** 画布宽度 */\n width?: number;\n /** 画布高度 */\n height?: number;\n skipFunctionDiff?: boolean;\n\n ReactDOM?: any;\n\n /** 表格渲染完成事件 */\n onReady?: (instance: IVTable, isInitial: boolean) => void;\n /** throw error when chart run into an error */\n onError?: (err: Error) => void;\n };\n\n// for react-vtable\nif (isBrowserEnv()) {\n container.load(reactEnvModule);\n}\n\ntype Props = React.PropsWithChildren<BaseTableProps>;\n\nconst notOptionKeys = [\n ...REACT_PRIVATE_PROPS,\n ...TABLE_EVENTS_KEYS,\n 'skipFunctionDiff',\n 'onError',\n 'onReady',\n 'option',\n 'records',\n 'container',\n 'vtableConstrouctor'\n];\n\nconst getComponentId = (child: React.ReactNode, index: number) => {\n const componentName = child && (child as any).type && ((child as any).type.displayName || (child as any).type.name);\n return `${componentName}-${index}`;\n};\n\nconst parseOptionFromChildren = (props: Props) => {\n const optionFromChildren: Omit<IOption, 'type' | 'data' | 'width' | 'height'> = {} as any;\n\n toArray(props.children).map((child, index) => {\n const parseOption = child && (child as any).type && (child as any).type.parseOption;\n\n if (parseOption && (child as any).props) {\n const childProps = isNil((child as any).props.componentId)\n ? {\n ...(child as any).props,\n componentId: getComponentId(child, index)\n }\n : (child as any).props;\n\n const optionResult = parseOption(childProps) as {\n optionName: keyof Omit<IOption, 'type' | 'data' | 'width' | 'height'>;\n isSingle: boolean;\n option: any;\n };\n\n if (optionResult.isSingle) {\n optionFromChildren[optionResult.optionName] = optionResult.option as never;\n } else {\n if (!optionFromChildren[optionResult.optionName]) {\n optionFromChildren[optionResult.optionName] = [] as never;\n }\n\n optionFromChildren[optionResult.optionName].push(optionResult.option);\n }\n }\n });\n\n return optionFromChildren;\n};\n\nconst BaseTable: React.FC<Props> = React.forwardRef((props, ref) => {\n const [updateId, setUpdateId] = useState<number>(0);\n const tableContext = useRef<TableContextType>({});\n useImperativeHandle(ref, () => tableContext.current?.table);\n const hasOption = !!props.option;\n const hasRecords = !!props.records;\n const isUnmount = useRef<boolean>(false);\n const prevOption = useRef(pickWithout(props, notOptionKeys));\n const optionFromChildren = useRef<Omit<IOption, 'records'>>(null);\n const prevRecords = useRef(props.records);\n const eventsBinded = React.useRef<BaseTableProps>(null);\n const skipFunctionDiff = !!props.skipFunctionDiff;\n\n const parseOption = useCallback(\n (props: Props) => {\n if (hasOption && props.option) {\n if (hasRecords && props.records) {\n return {\n ...props.option,\n clearDOM: false,\n records: props.records\n };\n }\n return {\n ...props.option,\n clearDOM: false\n };\n }\n return {\n records: props.records,\n ...prevOption.current,\n ...optionFromChildren.current,\n clearDOM: false,\n customConfig: {\n ...prevOption.current.customConfig,\n createReactContainer: true\n }\n // ...tableContext.current?.optionFromChildren\n };\n },\n [hasOption, hasRecords]\n );\n\n const createTable = useCallback(\n (props: Props) => {\n // let vtable;\n // if (props.type === 'pivot-table') {\n // vtable = new VTable.PivotTable(props.container, parseOption(props));\n // } else if (props.type === 'pivot-chart') {\n // vtable = new VTable.PivotChart(props.container, parseOption(props));\n // } else {\n // vtable = new VTable.ListTable(props.container, parseOption(props));\n // }\n const vtable = new props.vtableConstrouctor(props.container, parseOption(props));\n // vtable.scenegraph.stage.enableReactAttribute(ReactDOM);\n vtable.scenegraph.stage.reactAttribute = props.ReactDOM;\n vtable.scenegraph.stage.pluginService.register(new VTableReactAttributePlugin());\n vtable.scenegraph.stage.params.ReactDOM = props.ReactDOM;\n tableContext.current = { ...tableContext.current, table: vtable };\n isUnmount.current = false;\n },\n [parseOption]\n );\n\n const handleTableRender = useCallback(() => {\n if (!isUnmount.current) {\n if (!tableContext.current || !tableContext.current.table) {\n return;\n }\n // rebind events after render\n bindEventsToTable(tableContext.current.table, props, eventsBinded.current, TABLE_EVENTS);\n\n // to be fixed\n // will cause another useEffect\n setUpdateId(updateId + 1);\n if (props.onReady) {\n props.onReady(tableContext.current.table, updateId === 0);\n }\n }\n }, [updateId, setUpdateId, props]);\n\n const renderTable = useCallback(() => {\n if (tableContext.current.table) {\n // eslint-disable-next-line promise/catch-or-return\n tableContext.current.table.render();\n handleTableRender();\n }\n }, [handleTableRender]);\n\n useEffect(() => {\n const newOptionFromChildren = hasOption ? null : parseOptionFromChildren(props);\n\n if (!tableContext.current?.table) {\n if (!hasOption) {\n optionFromChildren.current = newOptionFromChildren;\n }\n\n createTable(props);\n renderTable();\n // bindEventsToTable(tableContext.current.table, props, null, TABLE_EVENTS);\n // tableContext.current = {\n // ...tableContext.current,\n // isChildrenUpdated: false\n // };\n eventsBinded.current = props;\n return;\n }\n\n if (hasOption) {\n if (!isEqual(eventsBinded.current.option, props.option, { skipFunction: skipFunctionDiff })) {\n // eslint-disable-next-line promise/catch-or-return\n tableContext.current.table.updateOption(parseOption(props) as any);\n handleTableRender();\n eventsBinded.current = props;\n } else if (\n hasRecords &&\n !isEqual(eventsBinded.current.records, props.records, { skipFunction: skipFunctionDiff })\n ) {\n tableContext.current.table.setRecords(props.records as any[]);\n handleTableRender();\n eventsBinded.current = props;\n }\n return;\n }\n\n const newOption = pickWithout(props, notOptionKeys);\n\n if (\n !isEqual(newOption, prevOption.current, { skipFunction: skipFunctionDiff }) ||\n // tableContext.current.isChildrenUpdated\n !isEqual(newOptionFromChildren, optionFromChildren.current, { skipFunction: skipFunctionDiff })\n ) {\n prevOption.current = newOption;\n optionFromChildren.current = newOptionFromChildren;\n\n // eslint-disable-next-line promise/catch-or-return\n tableContext.current.table.updateOption(parseOption(props) as any);\n handleTableRender();\n eventsBinded.current = props;\n } else if (hasRecords && !isEqual(props.records, prevRecords.current, { skipFunction: skipFunctionDiff })) {\n prevRecords.current = props.records;\n tableContext.current.table.setRecords(props.records);\n handleTableRender();\n eventsBinded.current = props;\n }\n // tableContext.current = {\n // ...tableContext.current,\n // isChildrenUpdated: false\n // };\n }, [createTable, hasOption, hasRecords, parseOption, handleTableRender, renderTable, skipFunctionDiff, props]);\n\n useEffect(() => {\n return () => {\n if (tableContext) {\n if (tableContext.current && tableContext.current.table) {\n tableContext.current.table.release();\n tableContext.current = null;\n }\n }\n eventsBinded.current = null;\n isUnmount.current = true;\n };\n }, []);\n\n return (\n <RootTableContext.Provider value={tableContext.current}>\n {toArray(props.children).map((child: React.ReactNode, index: number) => {\n if (typeof child === 'string') {\n return;\n }\n\n const childId = getComponentId(child, index);\n\n // const componentName =\n // child && (child as any).type && ((child as any).type.displayName || (child as any).type.name);\n // const childId = `${componentName}-${index}`;\n\n return (\n // <React.Fragment key={(child as any)?.props?.id ?? (child as any)?.id ?? `child-${index}`}>\n // {React.cloneElement(child as IMarkElement, {\n // updateId: updateId\n // })}\n // </React.Fragment>\n <React.Fragment key={childId}>\n {React.cloneElement(child as React.ReactElement<any, React.JSXElementConstructor<any>>, {\n updateId: updateId,\n componentId: childId,\n componentIndex: index\n })}\n </React.Fragment>\n );\n })}\n </RootTableContext.Provider>\n );\n});\n\nexport const createTable = <T extends Props>(\n componentName: string,\n defaultProps?: Partial<T>,\n callback?: (props: T) => T\n) => {\n const Com = withContainer<ContainerProps, T>(BaseTable as any, componentName, (props: T) => {\n // props.type = type;\n\n if (defaultProps) {\n return Object.assign(props, defaultProps);\n }\n\n // if (callback) {\n // return callback(props);\n // }\n\n // if (type) {\n // return { ...props, type };\n // }\n return props;\n });\n Com.displayName = componentName;\n return Com;\n};\n"]}
@@ -12856,9 +12856,6 @@
12856
12856
  }
12857
12857
  : child.props;
12858
12858
  const optionResult = parseOption(childProps);
12859
- if (child.key) {
12860
- optionResult.option.key = child.key;
12861
- }
12862
12859
  if (optionResult.isSingle) {
12863
12860
  optionFromChildren[optionResult.optionName] = optionResult.option;
12864
12861
  }
@@ -12884,10 +12881,6 @@
12884
12881
  const prevRecords = React.useRef(props.records);
12885
12882
  const eventsBinded = React.useRef(null);
12886
12883
  const skipFunctionDiff = !!props.skipFunctionDiff;
12887
- const keepColumnWidthChange = !!props.keepColumnWidthChange;
12888
- const columnWidths = React.useRef(new Map());
12889
- const pivotColumnWidths = React.useRef([]);
12890
- const pivotHeaderColumnWidths = React.useRef([]);
12891
12884
  const parseOption = React.useCallback((props) => {
12892
12885
  if (hasOption && props.option) {
12893
12886
  if (hasRecords && props.records) {
@@ -12920,43 +12913,6 @@
12920
12913
  vtable.scenegraph.stage.params.ReactDOM = props.ReactDOM;
12921
12914
  tableContext.current = { ...tableContext.current, table: vtable };
12922
12915
  isUnmount.current = false;
12923
- columnWidths.current.clear();
12924
- pivotColumnWidths.current = [];
12925
- pivotHeaderColumnWidths.current = [];
12926
- vtable.on('resize_column_end', (args) => {
12927
- const table = tableContext.current.table;
12928
- if (!keepColumnWidthChange) {
12929
- return;
12930
- }
12931
- const { col, colWidths } = args;
12932
- const width = colWidths[col];
12933
- if (vtable.isPivotTable()) {
12934
- const path = table.getCellHeaderPaths(col, table.columnHeaderLevelCount);
12935
- let dimensions;
12936
- if (path.cellLocation === 'rowHeader') {
12937
- dimensions = path.rowHeaderPaths;
12938
- }
12939
- else {
12940
- dimensions = path.colHeaderPaths;
12941
- }
12942
- let found = false;
12943
- pivotColumnWidths.current.forEach(item => {
12944
- if (JSON.stringify(item.dimensions) === JSON.stringify(dimensions)) {
12945
- item.width = width;
12946
- found = true;
12947
- }
12948
- });
12949
- if (!found) {
12950
- pivotColumnWidths.current.push({ dimensions, width });
12951
- }
12952
- }
12953
- else {
12954
- const define = table.getBodyColumnDefine(col, 0);
12955
- if (define?.key) {
12956
- columnWidths.current.set(define.key, width);
12957
- }
12958
- }
12959
- });
12960
12916
  }, [parseOption]);
12961
12917
  const handleTableRender = React.useCallback(() => {
12962
12918
  if (!isUnmount.current) {
@@ -13006,23 +12962,12 @@
13006
12962
  !isEqual(newOptionFromChildren, optionFromChildren.current, { skipFunction: skipFunctionDiff })) {
13007
12963
  prevOption.current = newOption;
13008
12964
  optionFromChildren.current = newOptionFromChildren;
13009
- const option = parseOption(props);
13010
- if (keepColumnWidthChange) {
13011
- const columnWidthConfig = updateWidthCache(columnWidths.current, pivotColumnWidths.current, tableContext.current.table);
13012
- option.columnWidthConfig = columnWidthConfig;
13013
- option.columnWidthConfigForRowHeader = columnWidthConfig;
13014
- }
13015
- tableContext.current.table.updateOption(option);
12965
+ tableContext.current.table.updateOption(parseOption(props));
13016
12966
  handleTableRender();
13017
12967
  eventsBinded.current = props;
13018
12968
  }
13019
12969
  else if (hasRecords && !isEqual(props.records, prevRecords.current, { skipFunction: skipFunctionDiff })) {
13020
12970
  prevRecords.current = props.records;
13021
- if (keepColumnWidthChange) {
13022
- const columnWidthConfig = updateWidthCache(columnWidths.current, pivotColumnWidths.current, tableContext.current.table);
13023
- tableContext.current.table.internalProps.columnWidthConfig = columnWidthConfig;
13024
- tableContext.current.table.internalProps.columnWidthConfigForRowHeader = columnWidthConfig;
13025
- }
13026
12971
  tableContext.current.table.setRecords(props.records);
13027
12972
  handleTableRender();
13028
12973
  eventsBinded.current = props;
@@ -13062,19 +13007,6 @@
13062
13007
  Com.displayName = componentName;
13063
13008
  return Com;
13064
13009
  };
13065
- function updateWidthCache(columnWidths, pivotColumnWidths, table) {
13066
- if (table.isPivotTable()) {
13067
- return pivotColumnWidths;
13068
- }
13069
- const columnWidthConfig = [];
13070
- columnWidths.forEach((width, key) => {
13071
- columnWidthConfig.push({
13072
- key,
13073
- width
13074
- });
13075
- });
13076
- return columnWidthConfig;
13077
- }
13078
13010
 
13079
13011
  const ListTable = createTable('ListTable', {
13080
13012
  type: 'list-table',
@@ -19670,7 +19602,7 @@
19670
19602
  const Checkbox = React.forwardRef(CheckboxComponent);
19671
19603
  Checkbox.displayName = 'Checkbox';
19672
19604
 
19673
- const version = "1.14.4-alpha.2";
19605
+ const version = "1.14.4-alpha.3";
19674
19606
 
19675
19607
  Object.defineProperty(exports, 'register', {
19676
19608
  enumerable: true,