@visactor/vtable 1.17.4-alpha.3 → 1.17.4-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/cjs/ListTable.js +2 -2
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.js +1 -0
  4. package/cjs/PivotChart.js.map +1 -1
  5. package/cjs/PivotTable.js +2 -1
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/core/BaseTable.js +6 -5
  8. package/cjs/core/BaseTable.js.map +1 -1
  9. package/cjs/core/tableHelper.js +10 -13
  10. package/cjs/core/tableHelper.js.map +1 -1
  11. package/cjs/index.d.ts +1 -1
  12. package/cjs/index.js +1 -1
  13. package/cjs/index.js.map +1 -1
  14. package/cjs/layout/index.js +1 -2
  15. package/cjs/layout/pivot-header-layout.js +1 -1
  16. package/cjs/layout/pivot-layout.js +0 -2
  17. package/cjs/layout/row-height-map.js +1 -1
  18. package/cjs/layout/simple-header-layout.js +1 -1
  19. package/cjs/layout/tree-helper.js +1 -1
  20. package/cjs/plugins/chartModules.js +2 -1
  21. package/cjs/plugins/custom-cell-style.js +1 -1
  22. package/cjs/plugins/icons.js +1 -1
  23. package/cjs/plugins/invert-highlight.js +1 -1
  24. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  25. package/cjs/plugins/themes.js +1 -1
  26. package/cjs/scenegraph/graphic/contributions/chart-render-helper.d.ts +3 -2
  27. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +11 -5
  28. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  29. package/cjs/scenegraph/select/update-select-border.js +1 -2
  30. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  31. package/cjs/themes/theme.js +0 -4
  32. package/cjs/themes/theme.js.map +1 -1
  33. package/cjs/ts-types/theme.d.ts +0 -1
  34. package/cjs/ts-types/theme.js.map +1 -1
  35. package/cjs/vrender.js.map +1 -1
  36. package/dist/vtable.js +36 -31
  37. package/dist/vtable.min.js +2 -2
  38. package/es/ListTable.js +3 -1
  39. package/es/ListTable.js.map +1 -1
  40. package/es/PivotChart.js +2 -1
  41. package/es/PivotChart.js.map +1 -1
  42. package/es/PivotTable.js +3 -0
  43. package/es/PivotTable.js.map +1 -1
  44. package/es/core/BaseTable.js +7 -6
  45. package/es/core/BaseTable.js.map +1 -1
  46. package/es/core/tableHelper.js +10 -13
  47. package/es/core/tableHelper.js.map +1 -1
  48. package/es/index.d.ts +1 -1
  49. package/es/index.js +1 -1
  50. package/es/index.js.map +1 -1
  51. package/es/layout/index.js +1 -2
  52. package/es/layout/pivot-header-layout.js +1 -1
  53. package/es/layout/pivot-layout.js +0 -2
  54. package/es/layout/row-height-map.js +1 -1
  55. package/es/layout/simple-header-layout.js +1 -1
  56. package/es/layout/tree-helper.js +1 -1
  57. package/es/plugins/chartModules.js +2 -1
  58. package/es/plugins/custom-cell-style.js +1 -1
  59. package/es/plugins/icons.js +1 -1
  60. package/es/plugins/invert-highlight.js +1 -1
  61. package/es/plugins/list-tree-stick-cell.js +1 -1
  62. package/es/plugins/themes.js +1 -1
  63. package/es/scenegraph/graphic/contributions/chart-render-helper.d.ts +3 -2
  64. package/es/scenegraph/graphic/contributions/chart-render-helper.js +8 -4
  65. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  66. package/es/scenegraph/select/update-select-border.js +1 -2
  67. package/es/scenegraph/select/update-select-border.js.map +1 -1
  68. package/es/themes/theme.js +0 -4
  69. package/es/themes/theme.js.map +1 -1
  70. package/es/ts-types/theme.d.ts +0 -1
  71. package/es/ts-types/theme.js.map +1 -1
  72. package/es/vrender.js.map +1 -1
  73. package/package.json +4 -4
@@ -196,19 +196,16 @@ function getStyleTheme(headerStyle, table, col, row, getProp, needGetTheme = !0)
196
196
 
197
197
  function getCellCornerRadius(col, row, table) {
198
198
  const tableCornerRadius = table.theme.frameStyle.cornerRadius;
199
- if (table.theme.cellInnerBorder) {
200
- if (Array.isArray(tableCornerRadius)) {
201
- const radius = [ 0, 0, 0, 0 ];
202
- return 0 === col && 0 === row && (radius[0] = tableCornerRadius[0]), col === table.colCount - 1 && 0 === row && (radius[1] = tableCornerRadius[1]),
203
- 0 === col && row === table.rowCount - 1 && (radius[3] = tableCornerRadius[3]), col === table.colCount - 1 && row === table.rowCount - 1 && (radius[2] = tableCornerRadius[2]),
204
- radius;
205
- }
206
- if (tableCornerRadius) {
207
- const radius = [ 0, 0, 0, 0 ];
208
- return 0 === col && 0 === row && (radius[0] = tableCornerRadius), col === table.colCount - 1 && 0 === row && (radius[1] = tableCornerRadius),
209
- 0 === col && row === table.rowCount - 1 && (radius[3] = tableCornerRadius), col === table.colCount - 1 && row === table.rowCount - 1 && (radius[2] = tableCornerRadius),
210
- radius;
211
- }
199
+ if (table.theme.cellInnerBorder) if (Array.isArray(tableCornerRadius)) {
200
+ if (0 === col && 0 === row) return [ tableCornerRadius[0], 0, 0, 0 ];
201
+ if (col === table.colCount - 1 && 0 === row) return [ 0, tableCornerRadius[1], 0, 0 ];
202
+ if (0 === col && row === table.rowCount - 1) return [ 0, 0, 0, tableCornerRadius[3] ];
203
+ if (col === table.colCount - 1 && row === table.rowCount - 1) return [ 0, 0, tableCornerRadius[2], 0 ];
204
+ } else if (tableCornerRadius) {
205
+ if (0 === col && 0 === row) return [ tableCornerRadius, 0, 0, 0 ];
206
+ if (col === table.colCount - 1 && 0 === row) return [ 0, tableCornerRadius, 0, 0 ];
207
+ if (0 === col && row === table.rowCount - 1) return [ 0, 0, 0, tableCornerRadius ];
208
+ if (col === table.colCount - 1 && row === table.rowCount - 1) return [ 0, 0, tableCornerRadius, 0 ];
212
209
  }
213
210
  return 0;
214
211
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/tableHelper.ts"],"names":[],"mappings":"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","file":"tableHelper.js","sourcesContent":["import type { IThemeSpec } from './../vrender';\nimport type { BaseTable } from '../core';\nimport { CachedDataSource, DataSource } from '../data';\nimport { parseFont } from '../scenegraph/utils/font';\nimport { getQuadProps } from '../scenegraph/utils/padding';\nimport { Rect } from '../tools/Rect';\nimport * as calc from '../tools/calc';\nimport type {\n Aggregation,\n ColumnsDefine,\n CustomAggregation,\n FullExtendStyle,\n ListTableAPI,\n ListTableConstructorOptions,\n SortState\n} from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { defaultOrderFn } from '../tools/util';\nimport type { ListTable } from '../ListTable';\nimport { isValid } from '@visactor/vutils';\n\nexport function createRootElement(padding: any, className: string = 'vtable'): HTMLElement {\n const element = document.createElement('div');\n element.setAttribute('tabindex', '0');\n element.classList.add(className);\n element.style.outline = 'none';\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n\n return element;\n}\nexport function updateRootElementPadding(element: HTMLElement, padding: any): void {\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n}\nexport function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void {\n const { dataSourceEventIds } = table.internalProps;\n\n if (dataSourceEventIds) {\n dataSourceEventIds.forEach((id: any) => table.internalProps.handler.off(id));\n }\n\n fn(table);\n\n table.internalProps.dataSourceEventIds = [\n table.internalProps.handler.on(table.internalProps.dataSource, DataSource.EVENT_TYPE.CHANGE_ORDER, () => {\n if (table.dataSource.hierarchyExpandLevel) {\n table.refreshRowColCount();\n }\n table.render();\n })\n ];\n}\n/** @private */\nexport function _setRecords(table: ListTableAPI, records: any[] = []): void {\n _dealWithUpdateDataSource(table, () => {\n table.internalProps.records = records;\n const newDataSource = (table.internalProps.dataSource = CachedDataSource.ofArray(\n records,\n table.internalProps.dataConfig,\n table.pagination,\n table.internalProps.columns,\n table.internalProps.layoutMap.rowHierarchyType,\n getHierarchyExpandLevel(table)\n ));\n table.addReleaseObj(newDataSource);\n });\n}\n\nfunction getHierarchyExpandLevel(table: ListTableAPI) {\n if ((table.options as ListTableConstructorOptions).hierarchyExpandLevel) {\n return (table.options as ListTableConstructorOptions).hierarchyExpandLevel;\n } else if (table.options.groupBy) {\n return Infinity;\n }\n return table._hasHierarchyTreeHeader?.() ? 1 : undefined;\n}\n\nexport function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void {\n _dealWithUpdateDataSource(table, () => {\n table.internalProps.dataSource && table.internalProps.dataSource.release?.();\n if (dataSource) {\n if (dataSource instanceof DataSource) {\n table.internalProps.dataSource = dataSource;\n table.internalProps.dataSource.supplementConfig(\n table.pagination,\n (table.options as ListTableConstructorOptions).columns,\n table.internalProps.layoutMap.rowHierarchyType,\n getHierarchyExpandLevel(table as ListTableAPI)\n );\n } else {\n table.internalProps.dataSource = new CachedDataSource(dataSource);\n }\n } else {\n table.internalProps.dataSource = DataSource.EMPTY;\n }\n table.addReleaseObj(table.internalProps.dataSource);\n table.internalProps.records = null;\n });\n}\nexport function _getTargetFrozenRowAt(\n table: BaseTableAPI,\n absoluteY: number\n): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n} | null {\n if (!table.internalProps.frozenRowCount) {\n return null;\n }\n let { scrollTop } = table;\n const rowCount = table.internalProps.frozenRowCount;\n for (let row = 0; row < rowCount; row++) {\n const height = table.getRowHeight(row);\n const bottom = scrollTop + height;\n if (bottom > absoluteY) {\n return {\n top: scrollTop,\n row,\n bottom,\n height\n };\n }\n scrollTop = bottom;\n }\n return null;\n}\n\nexport function _getTargetFrozenColAt(\n table: BaseTableAPI,\n absoluteX: number\n): {\n left: number;\n col: number;\n right: number;\n width: number;\n} | null {\n if (!table.internalProps.frozenColCount) {\n return null;\n }\n let { scrollLeft } = table;\n const colCount = table.internalProps.frozenColCount;\n for (let col = 0; col < colCount; col++) {\n const width = table.getColWidth(col);\n const right = scrollLeft + width;\n if (right > absoluteX) {\n return {\n left: scrollLeft,\n col,\n right,\n width\n };\n }\n scrollLeft = right;\n }\n return null;\n}\n\nexport function _toPxWidth(table: BaseTable, width: string | number): number {\n return Math.round(calc.toPx(width, table.internalProps.calcWidthContext));\n}\n\nexport function _applyColWidthLimits(limits: { min?: number; max?: number } | void | null, orgWidth: number): number {\n if (!limits) {\n return orgWidth;\n }\n\n if (limits.min) {\n if (limits.min > orgWidth) {\n return limits.min;\n }\n }\n if (limits.max) {\n if (limits.max < orgWidth) {\n return limits.max;\n }\n }\n return orgWidth;\n}\n/**\n * 检查设置的width是否为'auto'\n * @param {string|number} width width definition\n * @returns {boolean}\n */\nexport function isAutoDefine(width: string | number): width is 'auto' {\n return Boolean(width && typeof width === 'string' && width.toLowerCase() === 'auto');\n}\n\nexport function _getScrollableVisibleRect(table: BaseTableAPI): Rect {\n let frozenColsWidth = 0;\n let rightFrozenColsWidth = 0;\n if (table.frozenColCount > 0) {\n //有固定列时绘制固定列\n frozenColsWidth = table.getFrozenColsWidth();\n }\n if (table.rightFrozenColCount > 0) {\n //有固定列时绘制固定列\n rightFrozenColsWidth = table.getRightFrozenColsWidth();\n }\n let frozenRowsHeight = 0;\n let bottomFrozenRowsHeight = 0;\n if (table.frozenRowCount > 0) {\n //有固定列时绘制固定列\n frozenRowsHeight = table.getFrozenRowsHeight();\n }\n if (table.bottomFrozenRowCount > 0) {\n //有固定列时绘制固定列\n bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n }\n return new Rect(\n table.scrollLeft + frozenColsWidth,\n table.scrollTop + frozenRowsHeight,\n table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth,\n table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight\n );\n}\n/**\n * @description: 从style对象里获取theme所需要的属性\n * @param {FullExtendStyle} headerStyle\n * @param {BaseTableAPI} table\n * @param {number} col\n * @param {number} row\n * @param {any} getProp\n * @return {*}\n */\nexport function getStyleTheme(\n headerStyle: FullExtendStyle,\n table: BaseTableAPI,\n col: number,\n row: number,\n getProp: any,\n needGetTheme = true\n) {\n // 属性参考IStyleOption\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n const bgColor = getProp('bgColor', headerStyle, col, row, table);\n\n const font = getProp('font', headerStyle, col, row, table);\n let fontFamily;\n let fontSize;\n let fontWeight;\n let fontStyle;\n let fontVariant;\n if (font) {\n // 后期会弃用直接设置font,而使用fontFamily fontSize fontWeight 等属性\n const { family, size, weight, style, variant } = parseFont(font);\n fontFamily = family.join(' ');\n fontSize = size;\n fontWeight = weight;\n fontStyle = style;\n fontStyle = variant;\n } else {\n fontFamily = getProp('fontFamily', headerStyle, col, row, table);\n fontSize = getProp('fontSize', headerStyle, col, row, table);\n fontWeight = getProp('fontWeight', headerStyle, col, row, table);\n fontStyle = getProp('fontStyle', headerStyle, col, row, table);\n fontVariant = getProp('fontVariant', headerStyle, col, row, table);\n }\n\n // const fontSize = getFontSize(font);\n // const fontWeight = getFontWeight(font);\n\n const textAlign = getProp('textAlign', headerStyle, col, row, table);\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table);\n const color = getProp('color', headerStyle, col, row, table);\n const strokeColor = getProp('strokeColor', headerStyle, col, row, table);\n\n const lineHeight = getProp('lineHeight', headerStyle, col, row, table);\n const underline = getProp('underline', headerStyle, col, row, table); // boolean\n // const underlineColor = getProp('underlineColor', headerStyle, col, row, table);\n const underlineDash = getProp('underlineDash', headerStyle, col, row, table);\n const underlineOffset = getProp('underlineOffset', headerStyle, col, row, table);\n const lineThrough = getProp('lineThrough', headerStyle, col, row, table); // boolean\n // const lineThroughColor = getProp('lineThroughColor', headerStyle, col, row, table);\n // const lineThroughDash = getProp('lineThroughDash', headerStyle, col, row, table);\n const textDecorationWidth = Math.max(1, Math.floor(fontSize / 10));\n\n const textOverflow = getProp('textOverflow', headerStyle, col, row, table); // 'clip' | 'ellipsis' | string\n const borderColor = getProp('borderColor', headerStyle, col, row, table); // string | string[]\n const borderLineWidth = getProp('borderLineWidth', headerStyle, col, row, table); // number | number[]\n const borderLineDash = getProp('borderLineDash', headerStyle, col, row, table); // number[] | (number[] | null)[]\n\n const marked = getProp('marked', headerStyle, col, row, table); // boolean\n const cursor = getProp('cursor', headerStyle, col, row, table); // boolean\n\n const hasFunctionPros =\n !padding ||\n !bgColor ||\n !font ||\n !textAlign ||\n !textBaseline ||\n !color ||\n !textOverflow ||\n !borderColor ||\n !borderLineWidth ||\n !borderLineDash ||\n typeof underline !== 'boolean' ||\n typeof lineThrough !== 'boolean' ||\n typeof marked !== 'boolean';\n if (!needGetTheme) {\n return { hasFunctionPros };\n }\n const theme: IThemeSpec & { _vtable: any } = {\n text: {\n fontFamily,\n fontSize,\n fontWeight,\n fontStyle,\n fontVariant,\n fill: color,\n stroke: strokeColor ?? false,\n textAlign,\n textBaseline,\n lineHeight: lineHeight ?? fontSize,\n underline: underline ? textDecorationWidth : undefined,\n underlineDash,\n underlineOffset,\n lineThrough: lineThrough ? textDecorationWidth : undefined,\n ellipsis:\n textOverflow === 'clip'\n ? ''\n : textOverflow === 'ellipsis'\n ? '...'\n : isValid(textOverflow)\n ? textOverflow\n : undefined\n },\n group: {\n fill: bgColor,\n lineDash: borderLineDash,\n lineWidth: borderLineWidth,\n stroke: borderColor,\n cursor: cursor === 'auto' || cursor === 'default' ? undefined : cursor\n // cornerRadius: getCellCornerRadius(col, row, table)\n },\n _vtable: {\n padding,\n marked\n }\n };\n\n if (Array.isArray(borderLineWidth)) {\n (theme.group as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n }\n if (Array.isArray(borderColor)) {\n const strokeColors = getQuadProps(borderColor);\n (theme.group as any).stroke = strokeColors.every(color => !color) ? false : strokeColors; // deal width strokeColor: [null, null, null, null]\n (theme.group as any).strokeArrayColor = getQuadProps(borderColor);\n }\n\n return {\n theme,\n hasFunctionPros\n };\n}\n\nexport function getCellCornerRadius(col: number, row: number, table: BaseTableAPI) {\n const tableCornerRadius = table.theme.frameStyle.cornerRadius;\n if (table.theme.cellInnerBorder) {\n if (Array.isArray(tableCornerRadius)) {\n const radius = [0, 0, 0, 0];\n if (col === 0 && row === 0) {\n // return [tableCornerRadius[0], 0, 0, 0];\n radius[0] = tableCornerRadius[0];\n }\n if (col === table.colCount - 1 && row === 0) {\n // return [0, tableCornerRadius[1], 0, 0];\n radius[1] = tableCornerRadius[1];\n }\n if (col === 0 && row === table.rowCount - 1) {\n // return [0, 0, 0, tableCornerRadius[3]];\n radius[3] = tableCornerRadius[3];\n }\n if (col === table.colCount - 1 && row === table.rowCount - 1) {\n // return [0, 0, tableCornerRadius[2], 0];\n radius[2] = tableCornerRadius[2];\n }\n return radius;\n } else if (tableCornerRadius) {\n const radius = [0, 0, 0, 0];\n if (col === 0 && row === 0) {\n // return [tableCornerRadius, 0, 0, 0];\n radius[0] = tableCornerRadius;\n }\n if (col === table.colCount - 1 && row === 0) {\n // return [0, tableCornerRadius, 0, 0];\n radius[1] = tableCornerRadius;\n }\n if (col === 0 && row === table.rowCount - 1) {\n // return [0, 0, 0, tableCornerRadius];\n radius[3] = tableCornerRadius;\n }\n if (col === table.colCount - 1 && row === table.rowCount - 1) {\n // return [0, 0, tableCornerRadius, 0];\n radius[2] = tableCornerRadius;\n }\n return radius;\n }\n }\n return 0;\n}\n\nexport function parseMarkLineGetExtendRange(markLine: any): number | 'sum' | 'max' {\n if (markLine) {\n if (Array.isArray(markLine)) {\n let extendRange: number | 'sum' | 'max';\n for (let i = 0; i < markLine.length; i++) {\n if (markLine[i].autoRange) {\n if (\n markLine[i].y === 'sum' ||\n markLine[i].x === 'sum' ||\n markLine[i].y1 === 'sum' ||\n markLine[i].x1 === 'sum'\n ) {\n return 'sum';\n }\n if (\n markLine[i].y === 'max' ||\n markLine[i].x === 'max' ||\n markLine[i].y1 === 'max' ||\n markLine[i].x1 === 'max'\n ) {\n extendRange = 'max';\n }\n if (typeof markLine[i].y === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].y);\n }\n if (typeof markLine[i].x === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].x);\n }\n if (typeof markLine[i].y1 === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].y1);\n }\n if (typeof markLine[i].x1 === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].x1);\n }\n }\n }\n return extendRange;\n } else if (markLine.autoRange) {\n if (markLine.y === 'sum' || markLine.x === 'sum' || markLine.y1 === 'sum' || markLine.x1 === 'sum') {\n return 'sum';\n }\n if (markLine.y === 'max' || markLine.x === 'max' || markLine.y1 === 'max' || markLine.x1 === 'max') {\n return 'max';\n }\n if (typeof markLine.y === 'number') {\n return markLine.y;\n }\n if (typeof markLine.x === 'number') {\n return markLine.x;\n }\n if (typeof markLine.y1 === 'number') {\n return markLine.y1;\n }\n if (typeof markLine.x1 === 'number') {\n return markLine.x1;\n }\n }\n }\n return undefined;\n}\n\nexport function generateAggregationForColumn(table: ListTable) {\n for (let col = 0; col < table.internalProps.columns.length; col++) {\n const colDef = table.internalProps.columns[col];\n if (colDef.aggregation) {\n } else if (table.options.aggregation) {\n let aggregation;\n if (typeof table.options.aggregation === 'function') {\n aggregation = table.options.aggregation({\n col: col,\n field: colDef.field as string\n });\n } else {\n aggregation = table.options.aggregation;\n }\n\n if (aggregation) {\n if (Array.isArray(aggregation)) {\n const aggregations: (Aggregation | CustomAggregation)[] = [];\n aggregation.forEach(item => {\n aggregations.push(Object.assign({ showOnTop: false }, item));\n });\n colDef.aggregation = aggregations;\n } else {\n colDef.aggregation = Object.assign({ showOnTop: false }, aggregation);\n }\n }\n }\n }\n}\n\nexport function checkHasAggregationOnColumnDefine(colDefs: ColumnsDefine) {\n for (let i = 0; i < colDefs.length; i++) {\n const colDef = colDefs[i];\n if (colDef.aggregation) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * 检查是否有列设置了autoWidth\n * @param table\n * @returns\n */\nexport function checkHasColumnAutoWidth(table: BaseTableAPI) {\n if (table.options.widthMode === 'autoWidth') {\n return true;\n }\n if (\n table.options.defaultHeaderColWidth === 'auto' ||\n (Array.isArray(table.options.defaultHeaderColWidth) && table.options.defaultHeaderColWidth.includes('auto'))\n ) {\n return true;\n }\n const columnObjects = table.internalProps.layoutMap.columnObjects;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if (column.width === 'auto') {\n return true;\n }\n }\n\n return false;\n}\n"]}
1
+ {"version":3,"sources":["../src/core/tableHelper.ts"],"names":[],"mappings":"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","file":"tableHelper.js","sourcesContent":["import type { IThemeSpec } from './../vrender';\nimport type { BaseTable } from '../core';\nimport { CachedDataSource, DataSource } from '../data';\nimport { parseFont } from '../scenegraph/utils/font';\nimport { getQuadProps } from '../scenegraph/utils/padding';\nimport { Rect } from '../tools/Rect';\nimport * as calc from '../tools/calc';\nimport type {\n Aggregation,\n ColumnsDefine,\n CustomAggregation,\n FullExtendStyle,\n ListTableAPI,\n ListTableConstructorOptions,\n SortState\n} from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { defaultOrderFn } from '../tools/util';\nimport type { ListTable } from '../ListTable';\nimport { isValid } from '@visactor/vutils';\n\nexport function createRootElement(padding: any, className: string = 'vtable'): HTMLElement {\n const element = document.createElement('div');\n element.setAttribute('tabindex', '0');\n element.classList.add(className);\n element.style.outline = 'none';\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n\n return element;\n}\nexport function updateRootElementPadding(element: HTMLElement, padding: any): void {\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n}\nexport function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void {\n const { dataSourceEventIds } = table.internalProps;\n\n if (dataSourceEventIds) {\n dataSourceEventIds.forEach((id: any) => table.internalProps.handler.off(id));\n }\n\n fn(table);\n\n table.internalProps.dataSourceEventIds = [\n table.internalProps.handler.on(table.internalProps.dataSource, DataSource.EVENT_TYPE.CHANGE_ORDER, () => {\n if (table.dataSource.hierarchyExpandLevel) {\n table.refreshRowColCount();\n }\n table.render();\n })\n ];\n}\n/** @private */\nexport function _setRecords(table: ListTableAPI, records: any[] = []): void {\n _dealWithUpdateDataSource(table, () => {\n table.internalProps.records = records;\n const newDataSource = (table.internalProps.dataSource = CachedDataSource.ofArray(\n records,\n table.internalProps.dataConfig,\n table.pagination,\n table.internalProps.columns,\n table.internalProps.layoutMap.rowHierarchyType,\n getHierarchyExpandLevel(table)\n ));\n table.addReleaseObj(newDataSource);\n });\n}\n\nfunction getHierarchyExpandLevel(table: ListTableAPI) {\n if ((table.options as ListTableConstructorOptions).hierarchyExpandLevel) {\n return (table.options as ListTableConstructorOptions).hierarchyExpandLevel;\n } else if (table.options.groupBy) {\n return Infinity;\n }\n return table._hasHierarchyTreeHeader?.() ? 1 : undefined;\n}\n\nexport function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void {\n _dealWithUpdateDataSource(table, () => {\n table.internalProps.dataSource && table.internalProps.dataSource.release?.();\n if (dataSource) {\n if (dataSource instanceof DataSource) {\n table.internalProps.dataSource = dataSource;\n table.internalProps.dataSource.supplementConfig(\n table.pagination,\n (table.options as ListTableConstructorOptions).columns,\n table.internalProps.layoutMap.rowHierarchyType,\n getHierarchyExpandLevel(table as ListTableAPI)\n );\n } else {\n table.internalProps.dataSource = new CachedDataSource(dataSource);\n }\n } else {\n table.internalProps.dataSource = DataSource.EMPTY;\n }\n table.addReleaseObj(table.internalProps.dataSource);\n table.internalProps.records = null;\n });\n}\nexport function _getTargetFrozenRowAt(\n table: BaseTableAPI,\n absoluteY: number\n): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n} | null {\n if (!table.internalProps.frozenRowCount) {\n return null;\n }\n let { scrollTop } = table;\n const rowCount = table.internalProps.frozenRowCount;\n for (let row = 0; row < rowCount; row++) {\n const height = table.getRowHeight(row);\n const bottom = scrollTop + height;\n if (bottom > absoluteY) {\n return {\n top: scrollTop,\n row,\n bottom,\n height\n };\n }\n scrollTop = bottom;\n }\n return null;\n}\n\nexport function _getTargetFrozenColAt(\n table: BaseTableAPI,\n absoluteX: number\n): {\n left: number;\n col: number;\n right: number;\n width: number;\n} | null {\n if (!table.internalProps.frozenColCount) {\n return null;\n }\n let { scrollLeft } = table;\n const colCount = table.internalProps.frozenColCount;\n for (let col = 0; col < colCount; col++) {\n const width = table.getColWidth(col);\n const right = scrollLeft + width;\n if (right > absoluteX) {\n return {\n left: scrollLeft,\n col,\n right,\n width\n };\n }\n scrollLeft = right;\n }\n return null;\n}\n\nexport function _toPxWidth(table: BaseTable, width: string | number): number {\n return Math.round(calc.toPx(width, table.internalProps.calcWidthContext));\n}\n\nexport function _applyColWidthLimits(limits: { min?: number; max?: number } | void | null, orgWidth: number): number {\n if (!limits) {\n return orgWidth;\n }\n\n if (limits.min) {\n if (limits.min > orgWidth) {\n return limits.min;\n }\n }\n if (limits.max) {\n if (limits.max < orgWidth) {\n return limits.max;\n }\n }\n return orgWidth;\n}\n/**\n * 检查设置的width是否为'auto'\n * @param {string|number} width width definition\n * @returns {boolean}\n */\nexport function isAutoDefine(width: string | number): width is 'auto' {\n return Boolean(width && typeof width === 'string' && width.toLowerCase() === 'auto');\n}\n\nexport function _getScrollableVisibleRect(table: BaseTableAPI): Rect {\n let frozenColsWidth = 0;\n let rightFrozenColsWidth = 0;\n if (table.frozenColCount > 0) {\n //有固定列时绘制固定列\n frozenColsWidth = table.getFrozenColsWidth();\n }\n if (table.rightFrozenColCount > 0) {\n //有固定列时绘制固定列\n rightFrozenColsWidth = table.getRightFrozenColsWidth();\n }\n let frozenRowsHeight = 0;\n let bottomFrozenRowsHeight = 0;\n if (table.frozenRowCount > 0) {\n //有固定列时绘制固定列\n frozenRowsHeight = table.getFrozenRowsHeight();\n }\n if (table.bottomFrozenRowCount > 0) {\n //有固定列时绘制固定列\n bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n }\n return new Rect(\n table.scrollLeft + frozenColsWidth,\n table.scrollTop + frozenRowsHeight,\n table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth,\n table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight\n );\n}\n/**\n * @description: 从style对象里获取theme所需要的属性\n * @param {FullExtendStyle} headerStyle\n * @param {BaseTableAPI} table\n * @param {number} col\n * @param {number} row\n * @param {any} getProp\n * @return {*}\n */\nexport function getStyleTheme(\n headerStyle: FullExtendStyle,\n table: BaseTableAPI,\n col: number,\n row: number,\n getProp: any,\n needGetTheme = true\n) {\n // 属性参考IStyleOption\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n const bgColor = getProp('bgColor', headerStyle, col, row, table);\n\n const font = getProp('font', headerStyle, col, row, table);\n let fontFamily;\n let fontSize;\n let fontWeight;\n let fontStyle;\n let fontVariant;\n if (font) {\n // 后期会弃用直接设置font,而使用fontFamily fontSize fontWeight 等属性\n const { family, size, weight, style, variant } = parseFont(font);\n fontFamily = family.join(' ');\n fontSize = size;\n fontWeight = weight;\n fontStyle = style;\n fontStyle = variant;\n } else {\n fontFamily = getProp('fontFamily', headerStyle, col, row, table);\n fontSize = getProp('fontSize', headerStyle, col, row, table);\n fontWeight = getProp('fontWeight', headerStyle, col, row, table);\n fontStyle = getProp('fontStyle', headerStyle, col, row, table);\n fontVariant = getProp('fontVariant', headerStyle, col, row, table);\n }\n\n // const fontSize = getFontSize(font);\n // const fontWeight = getFontWeight(font);\n\n const textAlign = getProp('textAlign', headerStyle, col, row, table);\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table);\n const color = getProp('color', headerStyle, col, row, table);\n const strokeColor = getProp('strokeColor', headerStyle, col, row, table);\n\n const lineHeight = getProp('lineHeight', headerStyle, col, row, table);\n const underline = getProp('underline', headerStyle, col, row, table); // boolean\n // const underlineColor = getProp('underlineColor', headerStyle, col, row, table);\n const underlineDash = getProp('underlineDash', headerStyle, col, row, table);\n const underlineOffset = getProp('underlineOffset', headerStyle, col, row, table);\n const lineThrough = getProp('lineThrough', headerStyle, col, row, table); // boolean\n // const lineThroughColor = getProp('lineThroughColor', headerStyle, col, row, table);\n // const lineThroughDash = getProp('lineThroughDash', headerStyle, col, row, table);\n const textDecorationWidth = Math.max(1, Math.floor(fontSize / 10));\n\n const textOverflow = getProp('textOverflow', headerStyle, col, row, table); // 'clip' | 'ellipsis' | string\n const borderColor = getProp('borderColor', headerStyle, col, row, table); // string | string[]\n const borderLineWidth = getProp('borderLineWidth', headerStyle, col, row, table); // number | number[]\n const borderLineDash = getProp('borderLineDash', headerStyle, col, row, table); // number[] | (number[] | null)[]\n\n const marked = getProp('marked', headerStyle, col, row, table); // boolean\n const cursor = getProp('cursor', headerStyle, col, row, table); // boolean\n\n const hasFunctionPros =\n !padding ||\n !bgColor ||\n !font ||\n !textAlign ||\n !textBaseline ||\n !color ||\n !textOverflow ||\n !borderColor ||\n !borderLineWidth ||\n !borderLineDash ||\n typeof underline !== 'boolean' ||\n typeof lineThrough !== 'boolean' ||\n typeof marked !== 'boolean';\n if (!needGetTheme) {\n return { hasFunctionPros };\n }\n const theme: IThemeSpec & { _vtable: any } = {\n text: {\n fontFamily,\n fontSize,\n fontWeight,\n fontStyle,\n fontVariant,\n fill: color,\n stroke: strokeColor ?? false,\n textAlign,\n textBaseline,\n lineHeight: lineHeight ?? fontSize,\n underline: underline ? textDecorationWidth : undefined,\n underlineDash,\n underlineOffset,\n lineThrough: lineThrough ? textDecorationWidth : undefined,\n ellipsis:\n textOverflow === 'clip'\n ? ''\n : textOverflow === 'ellipsis'\n ? '...'\n : isValid(textOverflow)\n ? textOverflow\n : undefined\n },\n group: {\n fill: bgColor,\n lineDash: borderLineDash,\n lineWidth: borderLineWidth,\n stroke: borderColor,\n cursor: cursor === 'auto' || cursor === 'default' ? undefined : cursor\n // cornerRadius: getCellCornerRadius(col, row, table)\n },\n _vtable: {\n padding,\n marked\n }\n };\n\n if (Array.isArray(borderLineWidth)) {\n (theme.group as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n }\n if (Array.isArray(borderColor)) {\n const strokeColors = getQuadProps(borderColor);\n (theme.group as any).stroke = strokeColors.every(color => !color) ? false : strokeColors; // deal width strokeColor: [null, null, null, null]\n (theme.group as any).strokeArrayColor = getQuadProps(borderColor);\n }\n\n return {\n theme,\n hasFunctionPros\n };\n}\n\nexport function getCellCornerRadius(col: number, row: number, table: BaseTableAPI) {\n const tableCornerRadius = table.theme.frameStyle.cornerRadius;\n if (table.theme.cellInnerBorder) {\n if (Array.isArray(tableCornerRadius)) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius[0], 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius[1], 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius[3]];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius[2], 0];\n }\n } else if (tableCornerRadius) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius, 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius, 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius, 0];\n }\n }\n }\n return 0;\n}\n\nexport function parseMarkLineGetExtendRange(markLine: any): number | 'sum' | 'max' {\n if (markLine) {\n if (Array.isArray(markLine)) {\n let extendRange: number | 'sum' | 'max';\n for (let i = 0; i < markLine.length; i++) {\n if (markLine[i].autoRange) {\n if (\n markLine[i].y === 'sum' ||\n markLine[i].x === 'sum' ||\n markLine[i].y1 === 'sum' ||\n markLine[i].x1 === 'sum'\n ) {\n return 'sum';\n }\n if (\n markLine[i].y === 'max' ||\n markLine[i].x === 'max' ||\n markLine[i].y1 === 'max' ||\n markLine[i].x1 === 'max'\n ) {\n extendRange = 'max';\n }\n if (typeof markLine[i].y === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].y);\n }\n if (typeof markLine[i].x === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].x);\n }\n if (typeof markLine[i].y1 === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].y1);\n }\n if (typeof markLine[i].x1 === 'number' && typeof (extendRange ?? 0) === 'number') {\n extendRange = Math.max(<number>extendRange ?? 0, markLine[i].x1);\n }\n }\n }\n return extendRange;\n } else if (markLine.autoRange) {\n if (markLine.y === 'sum' || markLine.x === 'sum' || markLine.y1 === 'sum' || markLine.x1 === 'sum') {\n return 'sum';\n }\n if (markLine.y === 'max' || markLine.x === 'max' || markLine.y1 === 'max' || markLine.x1 === 'max') {\n return 'max';\n }\n if (typeof markLine.y === 'number') {\n return markLine.y;\n }\n if (typeof markLine.x === 'number') {\n return markLine.x;\n }\n if (typeof markLine.y1 === 'number') {\n return markLine.y1;\n }\n if (typeof markLine.x1 === 'number') {\n return markLine.x1;\n }\n }\n }\n return undefined;\n}\n\nexport function generateAggregationForColumn(table: ListTable) {\n for (let col = 0; col < table.internalProps.columns.length; col++) {\n const colDef = table.internalProps.columns[col];\n if (colDef.aggregation) {\n } else if (table.options.aggregation) {\n let aggregation;\n if (typeof table.options.aggregation === 'function') {\n aggregation = table.options.aggregation({\n col: col,\n field: colDef.field as string\n });\n } else {\n aggregation = table.options.aggregation;\n }\n\n if (aggregation) {\n if (Array.isArray(aggregation)) {\n const aggregations: (Aggregation | CustomAggregation)[] = [];\n aggregation.forEach(item => {\n aggregations.push(Object.assign({ showOnTop: false }, item));\n });\n colDef.aggregation = aggregations;\n } else {\n colDef.aggregation = Object.assign({ showOnTop: false }, aggregation);\n }\n }\n }\n }\n}\n\nexport function checkHasAggregationOnColumnDefine(colDefs: ColumnsDefine) {\n for (let i = 0; i < colDefs.length; i++) {\n const colDef = colDefs[i];\n if (colDef.aggregation) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * 检查是否有列设置了autoWidth\n * @param table\n * @returns\n */\nexport function checkHasColumnAutoWidth(table: BaseTableAPI) {\n if (table.options.widthMode === 'autoWidth') {\n return true;\n }\n if (\n table.options.defaultHeaderColWidth === 'auto' ||\n (Array.isArray(table.options.defaultHeaderColWidth) && table.options.defaultHeaderColWidth.includes('auto'))\n ) {\n return true;\n }\n const columnObjects = table.internalProps.layoutMap.columnObjects;\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if (column.width === 'auto') {\n return true;\n }\n }\n\n return false;\n}\n"]}
package/cjs/index.d.ts CHANGED
@@ -20,7 +20,7 @@ export { getDataCellPath } from './tools/get-data-path';
20
20
  export * from './render/jsx';
21
21
  export { getTargetCell } from './event/util';
22
22
  export { Icon } from './scenegraph/graphic/icon';
23
- export declare const version = "1.17.4-alpha.3";
23
+ export declare const version = "1.17.4-alpha.4";
24
24
  export { TYPES, core, ListTable, ListTableSimple, ListTableConstructorOptions, PivotTable, PivotTableSimple, PivotTableConstructorOptions, PivotChartConstructorOptions, PivotChart, IHeaderTreeDefine, IDimension, IIndicator, ITitleDefine, ICornerDefine, ColumnsDefine, ColumnDefine, LinkColumnDefine, ChartColumnDefine, ImageColumnDefine, SparklineColumnDefine, ProgressbarColumnDefine, TextColumnDefine, GroupColumnDefine, TextAlignType, TextBaselineType, themes, data, MousePointerCellEvent, getIcons, clearGlobal, register, DataStatistics, CustomLayout, updateCell, renderChart, graphicUtil, setCustomAlphabetCharSet, restoreMeasureText };
25
25
  declare function getIcons(): {
26
26
  [key: string]: TYPES.ColumnIconOption;
package/cjs/index.js CHANGED
@@ -178,7 +178,7 @@ Object.defineProperty(exports, "Icon", {
178
178
  get: function() {
179
179
  return icon_1.Icon;
180
180
  }
181
- }), exports.version = "1.17.4-alpha.3", exports.getIcons = getIcons, exports.clearGlobal = clearGlobal,
181
+ }), exports.version = "1.17.4-alpha.4", exports.getIcons = getIcons, exports.clearGlobal = clearGlobal,
182
182
  TYPES.AggregationType, __exportStar(require("./components"), exports), __exportStar(require("./scenegraph/group-creater/cell-type"), exports);
183
183
 
184
184
  var TABLE_EVENT_TYPE_1 = require("./core/TABLE_EVENT_TYPE");
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA4D;AAyG1D,4FAzGO,qBAAW,OAyGP;AAxGb,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AA8DlC,sBAAK;AA7DP,6CAA+B;AA8D7B,oBAAI;AA7DN,6CAA+B;AAuF7B,oBAAI;AAtFN,+CAAiC;AACjC,qDAAuC;AA0FrC,4BAAQ;AAzFV,iDAAmC;AAmFjC,wBAAM;AAlFR,yEAA2D;AA4FzD,wCAAc;AAtEhB,mDAA4D;AAoC1D,0FApCuB,4BAAS,OAoCvB;AAnCX,yDAAqD;AAoCnD,gGApCO,kCAAe,OAoCP;AAlCjB,qDAA+D;AAoC7D,2FApCwB,8BAAU,OAoCxB;AAnCZ,2DAAuD;AAoCrD,iGApCO,oCAAgB,OAoCP;AAnClB,6CAA0C;AAsCxC,2FAtCO,uBAAU,OAsCP;AApCZ,8DAAgD;AAgE9C,oCAAY;AA9Dd,wEAAoE;AA+DlE,2FA/DO,wBAAU,OA+DP;AA9DZ,gGAAqF;AA+DnF,4FA/DO,iCAAW,OA+DP;AA9Db,kEAA+F;AAiE7F,mGAjEO,iCAAkB,OAiEP;AADlB,yGAhE2B,uCAAwB,OAgE3B;AA3D1B,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AAEtB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AAKA,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAyDxC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAvBC,4BAAQ;AAyBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA5BC,kCAAW;AA6Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { graphicUtil, registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet } from './scenegraph/utils/text-measure';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\n\nexport { Icon } from './scenegraph/graphic/icon';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.17.4-alpha.3\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableSimple,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableSimple,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout,\n updateCell,\n renderChart,\n graphicUtil,\n setCustomAlphabetCharSet,\n restoreMeasureText\n\n // VRender // should use import {xxx} from '@visactor/vtable/es/vrender'\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n\nexport * from './components';\nexport * from './scenegraph/group-creater/cell-type';\n\nexport { TABLE_EVENT_TYPE } from './core/TABLE_EVENT_TYPE';\nexport { PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\n\nexport { EventTarget } from './event/EventTarget';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAA4D;AAyG1D,4FAzGO,qBAAW,OAyGP;AAxGb,IAAA,4BAAkB,GAAE,CAAC;AAErB,kDAAoC;AA8DlC,sBAAK;AA7DP,6CAA+B;AA8D7B,oBAAI;AA7DN,6CAA+B;AAuF7B,oBAAI;AAtFN,+CAAiC;AACjC,qDAAuC;AA0FrC,4BAAQ;AAzFV,iDAAmC;AAmFjC,wBAAM;AAlFR,yEAA2D;AA4FzD,wCAAc;AAtEhB,mDAA4D;AAoC1D,0FApCuB,4BAAS,OAoCvB;AAnCX,yDAAqD;AAoCnD,gGApCO,kCAAe,OAoCP;AAlCjB,qDAA+D;AAoC7D,2FApCwB,8BAAU,OAoCxB;AAnCZ,2DAAuD;AAoCrD,iGApCO,oCAAgB,OAoCP;AAnClB,6CAA0C;AAsCxC,2FAtCO,uBAAU,OAsCP;AApCZ,8DAAgD;AAgE9C,oCAAY;AA9Dd,wEAAoE;AA+DlE,2FA/DO,wBAAU,OA+DP;AA9DZ,gGAAqF;AA+DnF,4FA/DO,iCAAW,OA+DP;AA9Db,kEAA+F;AAiE7F,mGAjEO,iCAAkB,OAiEP;AADlB,yGAhE2B,uCAAwB,OAgE3B;AA3D1B,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,+CAA6B;AAC7B,qCAA6C;AAApC,qGAAA,aAAa,OAAA;AAEtB,kDAAiD;AAAxC,4FAAA,IAAI,OAAA;AAKA,QAAA,OAAO,GAAG,gBAAgB,CAAC;AAyDxC,SAAS,QAAQ;IAGf,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC;AAvBC,4BAAQ;AAyBV,SAAS,WAAW;IAClB,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAGtB,CAAC;AA5BC,kCAAW;AA6Bb,KAAK,CAAC,eAAe,CAAC;AAEtB,+CAA6B;AAC7B,uEAAqD;AAErD,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,wFAA+G;AAAtG,gIAAA,sBAAsB,OAAA;AAAE,gIAAA,sBAAsB,OAAA;AAEvD,mDAAkD;AAAzC,0GAAA,WAAW,OAAA","file":"index.js","sourcesContent":["/* eslint-disable sort-imports */\nimport { graphicUtil, registerForVrender } from './vrender';\nregisterForVrender();\n\nimport * as TYPES from './ts-types';\nimport * as core from './core';\nimport * as data from './data';\nimport * as icons from './icons';\nimport * as register from './register';\nimport * as themes from './themes';\nimport * as DataStatistics from './dataset/DataStatistics';\nimport type {\n ColumnDefine,\n ColumnsDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n ListTableConstructorOptions,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n TextAlignType,\n TextBaselineType\n} from './ts-types';\nimport { ListTableAll as ListTable } from './ListTable-all';\nimport { ListTableSimple } from './ListTable-simple';\n// import { PivotTable } from './PivotTable';\nimport { PivotTableAll as PivotTable } from './PivotTable-all';\nimport { PivotTableSimple } from './PivotTable-simple';\nimport { PivotChart } from './PivotChart';\nimport type { MousePointerCellEvent } from './ts-types/events';\nimport * as CustomLayout from './render/layout';\n\nimport { updateCell } from './scenegraph/group-creater/cell-helper';\nimport { renderChart } from './scenegraph/graphic/contributions/chart-render-helper';\nimport { restoreMeasureText, setCustomAlphabetCharSet } from './scenegraph/utils/text-measure';\n\n// import { container, loadCanvasPicker } from '@src/vrender';\n// loadCanvasPicker(container);\n\nexport { getDataCellPath } from './tools/get-data-path';\nexport * from './render/jsx';\nexport { getTargetCell } from './event/util';\n\nexport { Icon } from './scenegraph/graphic/icon';\n\n// export * as VRender from './vrender';\n// import * as VRender from './vrender';\n\nexport const version = \"1.17.4-alpha.4\";\n/**\n * @namespace VTable\n */\nexport {\n /**\n * Types\n * @namespace VTable.TYPES\n */\n TYPES,\n core,\n ListTable,\n ListTableSimple,\n ListTableConstructorOptions,\n PivotTable,\n PivotTableSimple,\n PivotTableConstructorOptions,\n PivotChartConstructorOptions,\n PivotChart,\n IHeaderTreeDefine,\n IDimension,\n IIndicator,\n ITitleDefine,\n ICornerDefine,\n ColumnsDefine,\n ColumnDefine,\n LinkColumnDefine,\n ChartColumnDefine,\n ImageColumnDefine,\n SparklineColumnDefine,\n ProgressbarColumnDefine,\n TextColumnDefine,\n GroupColumnDefine,\n TextAlignType,\n TextBaselineType,\n themes,\n data,\n MousePointerCellEvent,\n getIcons,\n clearGlobal,\n //plugin registers\n register,\n /**\n * 暂不推荐使用\n */\n DataStatistics,\n CustomLayout,\n updateCell,\n renderChart,\n graphicUtil,\n setCustomAlphabetCharSet,\n restoreMeasureText\n\n // VRender // should use import {xxx} from '@visactor/vtable/es/vrender'\n};\n\n/** @private */\nfunction getIcons(): {\n [key: string]: TYPES.ColumnIconOption;\n} {\n return icons.get();\n}\n/** 清理内部的全局变量 如注册的icon theme等 以及共享的header column类实例 */\nfunction clearGlobal() {\n register.clearAll();\n // headers.type.clearGlobal();\n // columns.type.clearGlobal();\n}\nTYPES.AggregationType;\n\nexport * from './components';\nexport * from './scenegraph/group-creater/cell-type';\n\nexport { TABLE_EVENT_TYPE } from './core/TABLE_EVENT_TYPE';\nexport { PIVOT_CHART_EVENT_TYPE, PIVOT_TABLE_EVENT_TYPE } from './ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE';\n\nexport { EventTarget } from './event/EventTarget';\n"]}
@@ -11,5 +11,4 @@ Object.defineProperty(exports, "SimpleHeaderLayoutMap", {
11
11
  get: function() {
12
12
  return simple_header_layout_1.SimpleHeaderLayoutMap;
13
13
  }
14
- });
15
- //# sourceMappingURL=index.js.map
14
+ });
@@ -1838,5 +1838,5 @@ function bandSpace(count, paddingInner, paddingOuter) {
1838
1838
  count ? space > 0 ? space : 1 : 0;
1839
1839
  }
1840
1840
 
1841
- exports.PivotHeaderLayoutMap = PivotHeaderLayoutMap;
1842
1841
  //# sourceMappingURL=pivot-header-layout.js.map
1842
+ exports.PivotHeaderLayoutMap = PivotHeaderLayoutMap;
@@ -1,3 +1 @@
1
-
2
-
3
1
  //# sourceMappingURL=pivot-layout.js.map
@@ -172,5 +172,5 @@ function indexFirst(arr, elm) {
172
172
  return high < 0 ? 0 : high;
173
173
  }
174
174
 
175
- exports.NumberRangeMap = NumberRangeMap;
176
175
  //# sourceMappingURL=row-height-map.js.map
176
+ exports.NumberRangeMap = NumberRangeMap;
@@ -776,4 +776,4 @@ class SimpleHeaderLayoutMap {
776
776
  }
777
777
 
778
778
  exports.SimpleHeaderLayoutMap = SimpleHeaderLayoutMap;
779
- //# sourceMappingURL=simple-header-layout.js.map
779
+ //# sourceMappingURL=simple-header-layout.js.map
@@ -402,4 +402,4 @@ function deleteTreeHideNode(tree_children, dimensionPath, indicators, hasHideNod
402
402
  exports.DimensionTree = DimensionTree, exports.generateLayoutTree = generateLayoutTree,
403
403
  exports.countLayoutTree = countLayoutTree, exports.dealHeader = dealHeader, exports.dealHeaderForGridTreeMode = dealHeaderForGridTreeMode,
404
404
  exports.dealHeaderForTreeMode = dealHeaderForTreeMode, exports.deleteTreeHideNode = deleteTreeHideNode;
405
- //# sourceMappingURL=tree-helper.js.map
405
+ //# sourceMappingURL=tree-helper.js.map
@@ -2,4 +2,5 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.chartTypes = void 0, exports.chartTypes = {};
5
+ }), exports.chartTypes = void 0, exports.chartTypes = {};
6
+ //# sourceMappingURL=chartModules.js.map
@@ -110,4 +110,4 @@ const registerCustomCellStylePlugin = () => {
110
110
  };
111
111
 
112
112
  exports.registerCustomCellStylePlugin = registerCustomCellStylePlugin;
113
- //# sourceMappingURL=custom-cell-style.js.map
113
+ //# sourceMappingURL=custom-cell-style.js.map
@@ -23,4 +23,4 @@ class IconCache {
23
23
  }
24
24
 
25
25
  exports.IconCache = IconCache, IconCache.cache = new Map;
26
- //# sourceMappingURL=icons.js.map
26
+ //# sourceMappingURL=icons.js.map
@@ -20,4 +20,4 @@ function onBeforeAttributeUpdateForInvertHighlight(val, attribute) {
20
20
  }
21
21
 
22
22
  exports.onBeforeAttributeUpdateForInvertHighlight = onBeforeAttributeUpdateForInvertHighlight;
23
- //# sourceMappingURL=invert-highlight.js.map
23
+ //# sourceMappingURL=invert-highlight.js.map
@@ -177,4 +177,4 @@ const registerListTreeStickCellPlugin = () => {
177
177
  };
178
178
 
179
179
  exports.registerListTreeStickCellPlugin = registerListTreeStickCellPlugin;
180
- //# sourceMappingURL=list-tree-stick-cell.js.map
180
+ //# sourceMappingURL=list-tree-stick-cell.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  }), exports.themes = void 0, exports.themes = {};
6
- //# sourceMappingURL=themes.js.map
6
+ //# sourceMappingURL=themes.js.map
@@ -1,9 +1,10 @@
1
1
  import { type IStage } from './../../../vrender';
2
2
  import type { Chart } from '../chart';
3
3
  export declare const cancelRenderChartQueue = false;
4
- export declare const chartRenderKeys: string[];
5
- export declare const chartRenderQueueList: Chart[];
4
+ export declare let chartRenderKeys: string[];
5
+ export declare let chartRenderQueueList: Chart[];
6
6
  export declare function setBatchRenderChartCount(count: number): void;
7
+ export declare function clearChartRenderQueue(): void;
7
8
  export declare function IsHandlingChartQueue(): boolean;
8
9
  export declare function renderChart(chart: Chart): void;
9
10
  export declare function startRenderChartQueue(table: any): void;
@@ -2,18 +2,23 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.cacheStageCanvas = exports.startRenderChartQueue = exports.renderChart = exports.IsHandlingChartQueue = exports.setBatchRenderChartCount = exports.chartRenderQueueList = exports.chartRenderKeys = exports.cancelRenderChartQueue = void 0;
5
+ }), exports.cacheStageCanvas = exports.startRenderChartQueue = exports.renderChart = exports.IsHandlingChartQueue = exports.clearChartRenderQueue = exports.setBatchRenderChartCount = exports.chartRenderQueueList = exports.chartRenderKeys = exports.cancelRenderChartQueue = void 0;
6
6
 
7
7
  const vrender_1 = require("./../../../vrender"), vutils_1 = require("@visactor/vutils");
8
8
 
9
9
  exports.cancelRenderChartQueue = !1, exports.chartRenderKeys = [], exports.chartRenderQueueList = [];
10
10
 
11
- let batchRenderChartCount = 5, isHandlingChartQueue = !1;
11
+ let requestAnimationFrameId, batchRenderChartCount = 5, isHandlingChartQueue = !1;
12
12
 
13
13
  function setBatchRenderChartCount(count) {
14
14
  (0, vutils_1.isValid)(count) && (batchRenderChartCount = count);
15
15
  }
16
16
 
17
+ function clearChartRenderQueue() {
18
+ exports.chartRenderKeys = [], exports.chartRenderQueueList = [], isHandlingChartQueue = !1,
19
+ cancelAnimationFrame(requestAnimationFrameId);
20
+ }
21
+
17
22
  function IsHandlingChartQueue() {
18
23
  return isHandlingChartQueue;
19
24
  }
@@ -95,7 +100,7 @@ function renderChart(chart) {
95
100
  }
96
101
 
97
102
  function startRenderChartQueue(table) {
98
- isHandlingChartQueue = !0, exports.chartRenderQueueList.length > 0 ? requestAnimationFrame((() => {
103
+ isHandlingChartQueue = !0, exports.chartRenderQueueList.length > 0 ? requestAnimationFrameId = requestAnimationFrame((() => {
99
104
  const chartsToRender = exports.chartRenderQueueList.splice(0, batchRenderChartCount);
100
105
  exports.chartRenderKeys.splice(0, batchRenderChartCount), chartsToRender.forEach((chart => {
101
106
  renderChart(chart), chart.addUpdateBoundTag();
@@ -103,8 +108,9 @@ function startRenderChartQueue(table) {
103
108
  })) : isHandlingChartQueue = !1;
104
109
  }
105
110
 
106
- exports.setBatchRenderChartCount = setBatchRenderChartCount, exports.IsHandlingChartQueue = IsHandlingChartQueue,
107
- exports.renderChart = renderChart, exports.startRenderChartQueue = startRenderChartQueue;
111
+ exports.setBatchRenderChartCount = setBatchRenderChartCount, exports.clearChartRenderQueue = clearChartRenderQueue,
112
+ exports.IsHandlingChartQueue = IsHandlingChartQueue, exports.renderChart = renderChart,
113
+ exports.startRenderChartQueue = startRenderChartQueue;
108
114
 
109
115
  const cacheCanvasSizeLimit = 2e3;
110
116
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/graphic/contributions/chart-render-helper.ts"],"names":[],"mappings":"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","file":"chart-render-helper.js","sourcesContent":["import { container, VWindow, type IStage, type IWindow } from './../../../vrender';\nimport type { Chart } from '../chart';\nimport type { IAABBBounds } from '@visactor/vutils';\nimport { Bounds, isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nexport const cancelRenderChartQueue = false;\nexport const chartRenderKeys: string[] = [];\nexport const chartRenderQueueList: Chart[] = [];\ninterface chartRenderQueueItem {\n chart: Chart;\n}\n//每次消费的图表数量\nlet batchRenderChartCount = 5;\nlet isHandlingChartQueue = false;\nexport function setBatchRenderChartCount(count: number) {\n if (isValid(count)) {\n batchRenderChartCount = count;\n }\n}\nexport function IsHandlingChartQueue() {\n return isHandlingChartQueue;\n}\nexport function renderChart(chart: Chart) {\n const { axes, dataId, data, spec, ClassType, canvas, mode, modeParams, dpr } = chart.attribute;\n let { chartInstance } = chart;\n if (!chartInstance) {\n chartInstance = new ClassType(spec, {\n renderCanvas: canvas,\n mode: mode === 'node' ? 'node' : 'desktop-browser',\n modeParams: modeParams,\n canvasControled: false,\n viewBox: { x1: 0, x2: 0, y1: 0, y2: 0 },\n dpr: dpr,\n interactive: false,\n animation: false,\n autoFit: false\n });\n chartInstance.renderSync();\n chart.chartInstance = chartInstance;\n }\n const viewBox = chart.getViewBox();\n\n // avoid canvas size 0\n if (viewBox.x2 <= viewBox.x1) {\n viewBox.x2 = viewBox.x1 + 1;\n }\n if (viewBox.y2 <= viewBox.y1) {\n viewBox.y2 = viewBox.y1 + 1;\n }\n\n // use vrender trasnform, viewbox starts from 0,0\n chartInstance.updateViewBox(\n // {\n // x1: viewBox.x1 - (chart.getRootNode() as any).table.scrollLeft,\n // x2: viewBox.x2 - (chart.getRootNode() as any).table.scrollLeft,\n // y1: viewBox.y1 - (chart.getRootNode() as any).table.scrollTop,\n // y2: viewBox.y2 - (chart.getRootNode() as any).table.scrollTop\n // },\n {\n x1: 0,\n x2: viewBox.x2 - viewBox.x1,\n y1: 0,\n y2: viewBox.y2 - viewBox.y1\n },\n false,\n false\n );\n\n const chartStage = chartInstance.getStage();\n const matrix = chart.globalTransMatrix.clone();\n const stageMatrix = chart.stage.window.getViewBoxTransform();\n matrix.multiply(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f);\n chartStage.window.setViewBoxTransform &&\n chartStage.window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);\n // to be fixed: update state everytimes render, need be fix by vchart\n // 测试的没发现问题 这里应该能去掉吧 留着每次都要调用一次\n // const table = (chart.getRootNode() as any).table as BaseTableAPI;\n // (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(chartInstance);\n\n const { table } = chart.getRootNode() as any;\n\n let updateSpec = false;\n if (table.options.specFormat) {\n const formatResult = table.options.specFormat(chart.attribute.spec, chartInstance, chart);\n if (formatResult.needFormatSpec && formatResult.spec) {\n const spec = formatResult.spec;\n chartInstance.updateSpecSync(spec);\n updateSpec = formatResult.updateSpec ?? true;\n }\n }\n\n if (!updateSpec) {\n axes?.forEach((axis: any, index: number) => {\n if (axis.type === 'band') {\n // const chartAxis = chartInstance._chart._components[index];\n // chartAxis._spec.domain = axis.domain.slice(0);\n // chartAxis.updateScaleDomain();\n chartInstance.updateModelSpec({ type: 'axes', index }, { domain: axis.domain.slice(0) }, true);\n } else {\n // const chartAxis = chartInstance._chart._components[index];\n // chartAxis._domain = {\n // min: axis.range?.min ?? 0,\n // max: axis.range?.max ?? 0\n // };\n chartInstance.updateModelSpecSync(\n { type: 'axes', index },\n {\n min: axis.range?.min ?? 0,\n max: axis.range?.max ?? 0,\n tick: {\n tickMode: axis.tick?.tickMode\n }\n },\n true\n );\n }\n });\n\n // to be fixed: update state everytimes render, need be fix by vchart\n (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(chartInstance);\n\n if (typeof dataId === 'string') {\n chartInstance.updateDataSync(dataId, data ?? []);\n } else {\n const dataBatch = [];\n for (const dataIdStr in dataId) {\n const dataIdAndField = dataId[dataIdStr];\n const series = spec.series.find((item: any) => item?.data?.id === dataIdStr);\n dataBatch.push({\n id: dataIdStr,\n values: dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? [],\n fields: series?.data?.fields\n });\n // 判断是否有updateFullDataSync 木有的话 还是循环调用updateDataSync\n if (!chartInstance.updateFullDataSync) {\n chartInstance.updateDataSync(\n dataIdStr,\n dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? []\n );\n }\n }\n chartInstance.updateFullDataSync?.(dataBatch);\n }\n }\n\n const sg = chartInstance.getStage();\n cacheStageCanvas(sg, chart);\n // chart.cacheCanvas = sg.toCanvas();\n\n // debugger;\n // chart.cacheCanvas[] = sg.toCanvas(fullImage, viewBox);\n // chart.cacheCanvas = sg.toCanvas(false, {\n // x1: 0,\n // y1: 0,\n // x2: 500,\n // y2: 300,\n // width: () => 500,\n // height: () => 300\n // });\n // 截图空白问题 因为开启了动画 首屏截图是无数据的TODO\n}\n\nexport function startRenderChartQueue(table: any) {\n isHandlingChartQueue = true;\n\n // 检查是否还有未渲染的图表\n if (chartRenderQueueList.length > 0) {\n // 使用 requestAnimationFrame 或 setTimeout 来调度下一批图表的渲染\n // requestAnimationFrame(() => renderChartQueue(table));\n requestAnimationFrame(() => {\n // 从集合中获取要渲染的图表上下文\n const chartsToRender = chartRenderQueueList.splice(0, batchRenderChartCount);\n chartRenderKeys.splice(0, batchRenderChartCount);\n // 渲染图表\n chartsToRender.forEach(chart => {\n // 在正确的位置渲染图表\n renderChart(chart);\n chart.addUpdateBoundTag();\n });\n table.render();\n startRenderChartQueue(table);\n });\n // setTimeout(() => {\n // // debugger;\n // renderChartQueue(table);\n // }, 0);\n } else {\n isHandlingChartQueue = false;\n }\n}\n\nconst cacheCanvasSizeLimit = 2000;\nexport function cacheStageCanvas(stage: IStage, chart: Chart) {\n const { viewWidth, viewHeight } = stage;\n if (viewWidth < cacheCanvasSizeLimit && viewHeight < cacheCanvasSizeLimit) {\n chart.cacheCanvas = toCanvas(stage);\n if (!chart.isShareChartSpec) {\n // 不能整列共享chart的情况 生成完图片后即将chartInstance清除\n chart.chartInstance?.release();\n chart.chartInstance = null;\n chart.setAttribute('chartInstance', null);\n }\n return;\n }\n\n const rows = Math.ceil(viewHeight / cacheCanvasSizeLimit);\n const columns = Math.ceil(viewWidth / cacheCanvasSizeLimit);\n\n const cacheCanvas = [];\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < columns; col++) {\n const startX = col * cacheCanvasSizeLimit;\n const startY = row * cacheCanvasSizeLimit;\n const endX = startX + cacheCanvasSizeLimit > viewWidth ? viewWidth : startX + cacheCanvasSizeLimit;\n const endY = startY + cacheCanvasSizeLimit > viewHeight ? viewHeight : startY + cacheCanvasSizeLimit;\n const width = endX - startX;\n const height = endY - startY;\n const bounds = new Bounds();\n bounds.setValue(startX, startY, endX, endY);\n\n const canvas = toCanvas(stage, false, bounds);\n cacheCanvas.push({\n canvas,\n x: startX,\n y: startY,\n width,\n height\n });\n }\n }\n\n chart.cacheCanvas = cacheCanvas;\n}\n\nfunction toCanvas(stage: IStage, fullImage: boolean = true, viewBox?: IAABBBounds): HTMLCanvasElement | null {\n if ((stage as any).releaseStatus === 'released') {\n return null;\n }\n const matrix = stage.window.getViewBoxTransform();\n const window = renderToNewWindow(stage, fullImage, viewBox);\n window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, 0, 0);\n (stage as any).renderTo(window);\n const c = window.getNativeHandler();\n if (c.nativeCanvas) {\n return c.nativeCanvas;\n }\n return null;\n}\n\nfunction renderToNewWindow(stage: IStage, fullImage: boolean = true, viewBox?: IAABBBounds): IWindow {\n const matrix = stage.window.getViewBoxTransform();\n const window = container.get<IWindow>(VWindow);\n const x1 = viewBox ? -viewBox.x1 : 0;\n const y1 = viewBox ? -viewBox.y1 : 0;\n const x2 = viewBox ? viewBox.x2 : stage.viewWidth;\n const y2 = viewBox ? viewBox.y2 : stage.viewHeight;\n const width = viewBox ? viewBox.width() : stage.viewWidth;\n const height = viewBox ? viewBox.height() : stage.viewHeight;\n if (fullImage) {\n window.create({\n viewBox: { x1, y1, x2, y2 },\n width: width * matrix.a,\n height: height * matrix.d,\n dpr: stage.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n } else {\n window.create({\n viewBox: { x1, y1, x2, y2 },\n width: width * matrix.a,\n height: height * matrix.d,\n dpr: stage.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n }\n\n (stage as any).renderTo(window);\n return window;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/graphic/contributions/chart-render-helper.ts"],"names":[],"mappings":"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","file":"chart-render-helper.js","sourcesContent":["import { container, VWindow, type IStage, type IWindow } from './../../../vrender';\nimport type { Chart } from '../chart';\nimport type { IAABBBounds } from '@visactor/vutils';\nimport { Bounds, isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nexport const cancelRenderChartQueue = false;\nexport let chartRenderKeys: string[] = [];\nexport let chartRenderQueueList: Chart[] = [];\ninterface chartRenderQueueItem {\n chart: Chart;\n}\n//每次消费的图表数量\nlet batchRenderChartCount = 5;\nlet isHandlingChartQueue = false;\nlet requestAnimationFrameId: number;\nexport function setBatchRenderChartCount(count: number) {\n if (isValid(count)) {\n batchRenderChartCount = count;\n }\n}\nexport function clearChartRenderQueue() {\n chartRenderKeys = [];\n chartRenderQueueList = [];\n isHandlingChartQueue = false;\n cancelAnimationFrame(requestAnimationFrameId);\n}\nexport function IsHandlingChartQueue() {\n return isHandlingChartQueue;\n}\nexport function renderChart(chart: Chart) {\n const { axes, dataId, data, spec, ClassType, canvas, mode, modeParams, dpr } = chart.attribute;\n let { chartInstance } = chart;\n if (!chartInstance) {\n chartInstance = new ClassType(spec, {\n renderCanvas: canvas,\n mode: mode === 'node' ? 'node' : 'desktop-browser',\n modeParams: modeParams,\n canvasControled: false,\n viewBox: { x1: 0, x2: 0, y1: 0, y2: 0 },\n dpr: dpr,\n interactive: false,\n animation: false,\n autoFit: false\n });\n chartInstance.renderSync();\n chart.chartInstance = chartInstance;\n }\n const viewBox = chart.getViewBox();\n\n // avoid canvas size 0\n if (viewBox.x2 <= viewBox.x1) {\n viewBox.x2 = viewBox.x1 + 1;\n }\n if (viewBox.y2 <= viewBox.y1) {\n viewBox.y2 = viewBox.y1 + 1;\n }\n\n // use vrender trasnform, viewbox starts from 0,0\n chartInstance.updateViewBox(\n // {\n // x1: viewBox.x1 - (chart.getRootNode() as any).table.scrollLeft,\n // x2: viewBox.x2 - (chart.getRootNode() as any).table.scrollLeft,\n // y1: viewBox.y1 - (chart.getRootNode() as any).table.scrollTop,\n // y2: viewBox.y2 - (chart.getRootNode() as any).table.scrollTop\n // },\n {\n x1: 0,\n x2: viewBox.x2 - viewBox.x1,\n y1: 0,\n y2: viewBox.y2 - viewBox.y1\n },\n false,\n false\n );\n\n const chartStage = chartInstance.getStage();\n const matrix = chart.globalTransMatrix.clone();\n const stageMatrix = chart.stage.window.getViewBoxTransform();\n matrix.multiply(stageMatrix.a, stageMatrix.b, stageMatrix.c, stageMatrix.d, stageMatrix.e, stageMatrix.f);\n chartStage.window.setViewBoxTransform &&\n chartStage.window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);\n // to be fixed: update state everytimes render, need be fix by vchart\n // 测试的没发现问题 这里应该能去掉吧 留着每次都要调用一次\n // const table = (chart.getRootNode() as any).table as BaseTableAPI;\n // (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(chartInstance);\n\n const { table } = chart.getRootNode() as any;\n\n let updateSpec = false;\n if (table.options.specFormat) {\n const formatResult = table.options.specFormat(chart.attribute.spec, chartInstance, chart);\n if (formatResult.needFormatSpec && formatResult.spec) {\n const spec = formatResult.spec;\n chartInstance.updateSpecSync(spec);\n updateSpec = formatResult.updateSpec ?? true;\n }\n }\n\n if (!updateSpec) {\n axes?.forEach((axis: any, index: number) => {\n if (axis.type === 'band') {\n // const chartAxis = chartInstance._chart._components[index];\n // chartAxis._spec.domain = axis.domain.slice(0);\n // chartAxis.updateScaleDomain();\n chartInstance.updateModelSpec({ type: 'axes', index }, { domain: axis.domain.slice(0) }, true);\n } else {\n // const chartAxis = chartInstance._chart._components[index];\n // chartAxis._domain = {\n // min: axis.range?.min ?? 0,\n // max: axis.range?.max ?? 0\n // };\n chartInstance.updateModelSpecSync(\n { type: 'axes', index },\n {\n min: axis.range?.min ?? 0,\n max: axis.range?.max ?? 0,\n tick: {\n tickMode: axis.tick?.tickMode\n }\n },\n true\n );\n }\n });\n\n // to be fixed: update state everytimes render, need be fix by vchart\n (table.internalProps.layoutMap as any)?.updateDataStateToActiveChartInstance?.(chartInstance);\n\n if (typeof dataId === 'string') {\n chartInstance.updateDataSync(dataId, data ?? []);\n } else {\n const dataBatch = [];\n for (const dataIdStr in dataId) {\n const dataIdAndField = dataId[dataIdStr];\n const series = spec.series.find((item: any) => item?.data?.id === dataIdStr);\n dataBatch.push({\n id: dataIdStr,\n values: dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? [],\n fields: series?.data?.fields\n });\n // 判断是否有updateFullDataSync 木有的话 还是循环调用updateDataSync\n if (!chartInstance.updateFullDataSync) {\n chartInstance.updateDataSync(\n dataIdStr,\n dataIdAndField\n ? data?.filter((item: any) => {\n return item.hasOwnProperty(dataIdAndField);\n }) ?? []\n : data ?? []\n );\n }\n }\n chartInstance.updateFullDataSync?.(dataBatch);\n }\n }\n\n const sg = chartInstance.getStage();\n cacheStageCanvas(sg, chart);\n // chart.cacheCanvas = sg.toCanvas();\n\n // debugger;\n // chart.cacheCanvas[] = sg.toCanvas(fullImage, viewBox);\n // chart.cacheCanvas = sg.toCanvas(false, {\n // x1: 0,\n // y1: 0,\n // x2: 500,\n // y2: 300,\n // width: () => 500,\n // height: () => 300\n // });\n // 截图空白问题 因为开启了动画 首屏截图是无数据的TODO\n}\n\nexport function startRenderChartQueue(table: any) {\n isHandlingChartQueue = true;\n\n // 检查是否还有未渲染的图表\n if (chartRenderQueueList.length > 0) {\n // 使用 requestAnimationFrame 或 setTimeout 来调度下一批图表的渲染\n // requestAnimationFrame(() => renderChartQueue(table));\n requestAnimationFrameId = requestAnimationFrame(() => {\n // 从集合中获取要渲染的图表上下文\n const chartsToRender = chartRenderQueueList.splice(0, batchRenderChartCount);\n chartRenderKeys.splice(0, batchRenderChartCount);\n // 渲染图表\n chartsToRender.forEach(chart => {\n // 在正确的位置渲染图表\n renderChart(chart);\n chart.addUpdateBoundTag();\n });\n table.render();\n startRenderChartQueue(table);\n });\n // setTimeout(() => {\n // // debugger;\n // renderChartQueue(table);\n // }, 0);\n } else {\n isHandlingChartQueue = false;\n }\n}\n\nconst cacheCanvasSizeLimit = 2000;\nexport function cacheStageCanvas(stage: IStage, chart: Chart) {\n const { viewWidth, viewHeight } = stage;\n if (viewWidth < cacheCanvasSizeLimit && viewHeight < cacheCanvasSizeLimit) {\n chart.cacheCanvas = toCanvas(stage);\n if (!chart.isShareChartSpec) {\n // 不能整列共享chart的情况 生成完图片后即将chartInstance清除\n chart.chartInstance?.release();\n chart.chartInstance = null;\n chart.setAttribute('chartInstance', null);\n }\n return;\n }\n\n const rows = Math.ceil(viewHeight / cacheCanvasSizeLimit);\n const columns = Math.ceil(viewWidth / cacheCanvasSizeLimit);\n\n const cacheCanvas = [];\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < columns; col++) {\n const startX = col * cacheCanvasSizeLimit;\n const startY = row * cacheCanvasSizeLimit;\n const endX = startX + cacheCanvasSizeLimit > viewWidth ? viewWidth : startX + cacheCanvasSizeLimit;\n const endY = startY + cacheCanvasSizeLimit > viewHeight ? viewHeight : startY + cacheCanvasSizeLimit;\n const width = endX - startX;\n const height = endY - startY;\n const bounds = new Bounds();\n bounds.setValue(startX, startY, endX, endY);\n\n const canvas = toCanvas(stage, false, bounds);\n cacheCanvas.push({\n canvas,\n x: startX,\n y: startY,\n width,\n height\n });\n }\n }\n\n chart.cacheCanvas = cacheCanvas;\n}\n\nfunction toCanvas(stage: IStage, fullImage: boolean = true, viewBox?: IAABBBounds): HTMLCanvasElement | null {\n if ((stage as any).releaseStatus === 'released') {\n return null;\n }\n const matrix = stage.window.getViewBoxTransform();\n const window = renderToNewWindow(stage, fullImage, viewBox);\n window.setViewBoxTransform(matrix.a, matrix.b, matrix.c, matrix.d, 0, 0);\n (stage as any).renderTo(window);\n const c = window.getNativeHandler();\n if (c.nativeCanvas) {\n return c.nativeCanvas;\n }\n return null;\n}\n\nfunction renderToNewWindow(stage: IStage, fullImage: boolean = true, viewBox?: IAABBBounds): IWindow {\n const matrix = stage.window.getViewBoxTransform();\n const window = container.get<IWindow>(VWindow);\n const x1 = viewBox ? -viewBox.x1 : 0;\n const y1 = viewBox ? -viewBox.y1 : 0;\n const x2 = viewBox ? viewBox.x2 : stage.viewWidth;\n const y2 = viewBox ? viewBox.y2 : stage.viewHeight;\n const width = viewBox ? viewBox.width() : stage.viewWidth;\n const height = viewBox ? viewBox.height() : stage.viewHeight;\n if (fullImage) {\n window.create({\n viewBox: { x1, y1, x2, y2 },\n width: width * matrix.a,\n height: height * matrix.d,\n dpr: stage.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n } else {\n window.create({\n viewBox: { x1, y1, x2, y2 },\n width: width * matrix.a,\n height: height * matrix.d,\n dpr: stage.window.dpr,\n canvasControled: true,\n offscreen: true,\n title: ''\n });\n }\n\n (stage as any).renderTo(window);\n return window;\n}\n"]}
@@ -78,8 +78,7 @@ function updateComponent(selectComp, key, scene) {
78
78
  if (!isNearBottomColHeader && table.bottomFrozenRowCount && endRow < table.rowCount - table.bottomFrozenRowCount) {
79
79
  table.getRowsHeight(0, endRow) - table.scrollTop > table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() && (isNearBottomColHeader = !0);
80
80
  }
81
- const {dynamicUpdateSelectionSize: dynamicUpdateSelectionSize} = table.theme.selectionStyle;
82
- if (isNearRowHeader && (selectComp.rect.attribute.stroke[3] || dynamicUpdateSelectionSize) || isNearRightRowHeader && (selectComp.rect.attribute.stroke[1] || dynamicUpdateSelectionSize) || isNearColHeader && (selectComp.rect.attribute.stroke[0] || dynamicUpdateSelectionSize) || isNearBottomColHeader && (selectComp.rect.attribute.stroke[2] || dynamicUpdateSelectionSize)) {
81
+ if (isNearRowHeader && selectComp.rect.attribute.stroke[3] || isNearRightRowHeader && selectComp.rect.attribute.stroke[1] || isNearColHeader && selectComp.rect.attribute.stroke[0] || isNearBottomColHeader && selectComp.rect.attribute.stroke[2]) {
83
82
  if (isNearRowHeader && selectComp.rect.attribute.stroke[3] && scene.tableGroup.insertAfter(selectComp.rect, "columnHeader" === selectComp.role ? scene.cornerHeaderGroup : "bottomFrozen" === selectComp.role ? scene.leftBottomCornerGroup : scene.rowHeaderGroup),
84
83
  isNearBottomColHeader && selectComp.rect.attribute.stroke[2] && scene.tableGroup.insertAfter(selectComp.rect, "rowHeader" === selectComp.role ? scene.leftBottomCornerGroup : "rightFrozen" === selectComp.role ? scene.rightBottomCornerGroup : scene.bottomFrozenGroup),
85
84
  isNearColHeader && selectComp.rect.attribute.stroke[0] && scene.tableGroup.insertAfter(selectComp.rect, "rowHeader" === selectComp.role ? scene.cornerHeaderGroup : "rightFrozen" === selectComp.role ? scene.rightTopCornerGroup : scene.colHeaderGroup),