@visactor/vtable 1.26.7 → 1.26.8

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 (183) hide show
  1. package/cjs/ListTable.d.ts +1 -1
  2. package/cjs/ListTable.js +21 -13
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js +16 -16
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.d.ts +1 -1
  7. package/cjs/PivotTable.js +65 -63
  8. package/cjs/PivotTable.js.map +1 -1
  9. package/cjs/body-helper/body-helper.js +2 -1
  10. package/cjs/components/index.js +1 -2
  11. package/cjs/core/BaseTable.js +2 -2
  12. package/cjs/core/BaseTable.js.map +1 -1
  13. package/cjs/core/record-helper.d.ts +1 -1
  14. package/cjs/core/record-helper.js +60 -12
  15. package/cjs/core/record-helper.js.map +1 -1
  16. package/cjs/core/tableHelper.js +2 -1
  17. package/cjs/data/DataSource.d.ts +3 -1
  18. package/cjs/data/DataSource.js +71 -23
  19. package/cjs/data/DataSource.js.map +1 -1
  20. package/cjs/dataset/dataset.d.ts +9 -1
  21. package/cjs/dataset/dataset.js +344 -187
  22. package/cjs/dataset/dataset.js.map +1 -1
  23. package/cjs/event/event.d.ts +94 -8
  24. package/cjs/event/event.js +698 -191
  25. package/cjs/event/event.js.map +1 -1
  26. package/cjs/event/helper.js +1 -1
  27. package/cjs/event/media-click.js +4 -1
  28. package/cjs/event/media-click.js.map +1 -1
  29. package/cjs/event/scroll.js +1 -1
  30. package/cjs/event/sparkline-event.js +1 -2
  31. package/cjs/event/util.js +2 -2
  32. package/cjs/event/util.js.map +1 -1
  33. package/cjs/index.d.ts +1 -1
  34. package/cjs/index.js +1 -1
  35. package/cjs/index.js.map +1 -1
  36. package/cjs/layout/pivot-header-layout.js +33 -17
  37. package/cjs/layout/pivot-header-layout.js.map +1 -1
  38. package/cjs/plugins/custom-cell-style.js +1 -1
  39. package/cjs/plugins/index.js +2 -1
  40. package/cjs/plugins/interface.js +1 -1
  41. package/cjs/plugins/invert-highlight.js +1 -1
  42. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  43. package/cjs/plugins/plugin-manager.js +1 -1
  44. package/cjs/scenegraph/group-creater/cell-helper.js +27 -10
  45. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  46. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  47. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +14 -10
  48. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  49. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +17 -4
  50. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  51. package/cjs/scenegraph/layout/compute-col-width.js +6 -1
  52. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  53. package/cjs/scenegraph/layout/compute-row-height.js +11 -3
  54. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  55. package/cjs/scenegraph/layout/update-height.d.ts +4 -3
  56. package/cjs/scenegraph/layout/update-height.js +43 -29
  57. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  58. package/cjs/scenegraph/layout/update-width.d.ts +2 -1
  59. package/cjs/scenegraph/layout/update-width.js +49 -37
  60. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  61. package/cjs/scenegraph/scenegraph.d.ts +2 -2
  62. package/cjs/scenegraph/scenegraph.js +6 -5
  63. package/cjs/scenegraph/scenegraph.js.map +1 -1
  64. package/cjs/scenegraph/utils/corner-custom-merge.d.ts +10 -0
  65. package/cjs/scenegraph/utils/corner-custom-merge.js +68 -0
  66. package/cjs/scenegraph/utils/corner-custom-merge.js.map +1 -0
  67. package/cjs/state/resize/update-resize-column.js +25 -13
  68. package/cjs/state/resize/update-resize-column.js.map +1 -1
  69. package/cjs/state/resize/update-resize-row.js +24 -12
  70. package/cjs/state/resize/update-resize-row.js.map +1 -1
  71. package/cjs/themes.d.ts +4 -2
  72. package/cjs/themes.js +12 -4
  73. package/cjs/themes.js.map +1 -1
  74. package/cjs/tools/get-data-path/create-dataset.js +4 -4
  75. package/cjs/tools/get-data-path/create-dataset.js.map +1 -1
  76. package/cjs/tools/get-data-path/index.js +4 -4
  77. package/cjs/tools/get-data-path/index.js.map +1 -1
  78. package/cjs/tools/style.d.ts +3 -1
  79. package/cjs/tools/style.js +2 -2
  80. package/cjs/tools/style.js.map +1 -1
  81. package/cjs/ts-types/common.d.ts +1 -0
  82. package/cjs/ts-types/common.js.map +1 -1
  83. package/cjs/ts-types/dataset/aggregation.d.ts +1 -0
  84. package/cjs/ts-types/dataset/aggregation.js +21 -3
  85. package/cjs/ts-types/dataset/aggregation.js.map +1 -1
  86. package/cjs/ts-types/new-data-set.d.ts +1 -0
  87. package/cjs/ts-types/new-data-set.js.map +1 -1
  88. package/cjs/ts-types/table-engine.d.ts +3 -2
  89. package/cjs/ts-types/table-engine.js.map +1 -1
  90. package/cjs/vrender.js.map +1 -1
  91. package/dist/vtable.js +2224 -779
  92. package/dist/vtable.min.js +1 -1
  93. package/es/ListTable.d.ts +1 -1
  94. package/es/ListTable.js +21 -15
  95. package/es/ListTable.js.map +1 -1
  96. package/es/PivotChart.js +16 -16
  97. package/es/PivotChart.js.map +1 -1
  98. package/es/PivotTable.d.ts +1 -1
  99. package/es/PivotTable.js +65 -63
  100. package/es/PivotTable.js.map +1 -1
  101. package/es/body-helper/body-helper.js +2 -1
  102. package/es/components/index.js +1 -2
  103. package/es/core/BaseTable.js +2 -2
  104. package/es/core/BaseTable.js.map +1 -1
  105. package/es/core/record-helper.d.ts +1 -1
  106. package/es/core/record-helper.js +60 -12
  107. package/es/core/record-helper.js.map +1 -1
  108. package/es/core/tableHelper.js +2 -1
  109. package/es/data/DataSource.d.ts +3 -1
  110. package/es/data/DataSource.js +70 -23
  111. package/es/data/DataSource.js.map +1 -1
  112. package/es/dataset/dataset.d.ts +9 -1
  113. package/es/dataset/dataset.js +341 -187
  114. package/es/dataset/dataset.js.map +1 -1
  115. package/es/event/event.d.ts +94 -8
  116. package/es/event/event.js +696 -191
  117. package/es/event/event.js.map +1 -1
  118. package/es/event/helper.js +1 -1
  119. package/es/event/media-click.js +4 -1
  120. package/es/event/media-click.js.map +1 -1
  121. package/es/event/scroll.js +1 -1
  122. package/es/event/sparkline-event.js +1 -2
  123. package/es/event/util.js +2 -2
  124. package/es/event/util.js.map +1 -1
  125. package/es/index.d.ts +1 -1
  126. package/es/index.js +1 -1
  127. package/es/index.js.map +1 -1
  128. package/es/layout/pivot-header-layout.js +29 -17
  129. package/es/layout/pivot-header-layout.js.map +1 -1
  130. package/es/plugins/custom-cell-style.js +1 -1
  131. package/es/plugins/index.js +2 -1
  132. package/es/plugins/interface.js +1 -1
  133. package/es/plugins/invert-highlight.js +1 -1
  134. package/es/plugins/list-tree-stick-cell.js +1 -1
  135. package/es/plugins/plugin-manager.js +1 -1
  136. package/es/scenegraph/group-creater/cell-helper.js +23 -9
  137. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  138. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  139. package/es/scenegraph/group-creater/cell-type/text-cell.js +13 -8
  140. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  141. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +17 -5
  142. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  143. package/es/scenegraph/layout/compute-col-width.js +6 -1
  144. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  145. package/es/scenegraph/layout/compute-row-height.js +11 -3
  146. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  147. package/es/scenegraph/layout/update-height.d.ts +4 -3
  148. package/es/scenegraph/layout/update-height.js +40 -26
  149. package/es/scenegraph/layout/update-height.js.map +1 -1
  150. package/es/scenegraph/layout/update-width.d.ts +2 -1
  151. package/es/scenegraph/layout/update-width.js +46 -34
  152. package/es/scenegraph/layout/update-width.js.map +1 -1
  153. package/es/scenegraph/scenegraph.d.ts +2 -2
  154. package/es/scenegraph/scenegraph.js +7 -5
  155. package/es/scenegraph/scenegraph.js.map +1 -1
  156. package/es/scenegraph/utils/corner-custom-merge.d.ts +10 -0
  157. package/es/scenegraph/utils/corner-custom-merge.js +59 -0
  158. package/es/scenegraph/utils/corner-custom-merge.js.map +1 -0
  159. package/es/state/resize/update-resize-column.js +19 -10
  160. package/es/state/resize/update-resize-column.js.map +1 -1
  161. package/es/state/resize/update-resize-row.js +19 -9
  162. package/es/state/resize/update-resize-row.js.map +1 -1
  163. package/es/themes.d.ts +4 -2
  164. package/es/themes.js +11 -3
  165. package/es/themes.js.map +1 -1
  166. package/es/tools/get-data-path/create-dataset.js +4 -4
  167. package/es/tools/get-data-path/create-dataset.js.map +1 -1
  168. package/es/tools/get-data-path/index.js +4 -4
  169. package/es/tools/get-data-path/index.js.map +1 -1
  170. package/es/tools/style.d.ts +3 -1
  171. package/es/tools/style.js +2 -2
  172. package/es/tools/style.js.map +1 -1
  173. package/es/ts-types/common.d.ts +1 -0
  174. package/es/ts-types/common.js.map +1 -1
  175. package/es/ts-types/dataset/aggregation.d.ts +1 -0
  176. package/es/ts-types/dataset/aggregation.js +21 -3
  177. package/es/ts-types/dataset/aggregation.js.map +1 -1
  178. package/es/ts-types/new-data-set.d.ts +1 -0
  179. package/es/ts-types/new-data-set.js.map +1 -1
  180. package/es/ts-types/table-engine.d.ts +3 -2
  181. package/es/ts-types/table-engine.js.map +1 -1
  182. package/es/vrender.js.map +1 -1
  183. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/get-data-path/create-dataset.ts"],"names":[],"mappings":"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","file":"create-dataset.js","sourcesContent":["import { Dataset } from '../../dataset/dataset';\nimport { supplementIndicatorNodesForCustomTree } from '../../layout/layout-helper';\nimport type { ITreeLayoutHeadNode } from '../../layout/tree-helper';\nimport { DimensionTree } from '../../layout/tree-helper';\nimport type {\n AggregationRule,\n AggregationRules,\n CollectValueBy,\n IIndicator,\n PivotChartConstructorOptions,\n IPivotChartDataConfig\n} from '../../ts-types';\nimport { AggregationType } from '../../ts-types';\nimport type { IChartColumnIndicator } from '../../ts-types/pivot-table/indicator/chart-indicator';\n\nexport function createDataset(options: PivotChartConstructorOptions) {\n const layoutNodeId = { seqId: 0 };\n const dataConfig: IPivotChartDataConfig = { isPivotChart: true };\n let columnDimensionTree;\n let rowDimensionTree;\n let columnTree;\n let rowTree;\n if (options.columnTree) {\n if (options.indicatorsAsCol !== false) {\n columnTree = supplementIndicatorNodesForCustomTree(options.columnTree, options.indicators);\n }\n columnDimensionTree = new DimensionTree((options.columnTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n if (options.rowTree) {\n if (options.indicatorsAsCol === false) {\n rowTree = supplementIndicatorNodesForCustomTree(options.rowTree, options.indicators);\n }\n rowDimensionTree = new DimensionTree((options.rowTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n const rowKeys = rowDimensionTree.dimensionKeys?.count\n ? rowDimensionTree.dimensionKeys.valueArr()\n : options.rows?.reduce((keys, rowObj) => {\n if (typeof rowObj === 'string') {\n keys.push(rowObj);\n } else {\n keys.push(rowObj.dimensionKey);\n }\n return keys;\n }, []) ?? [];\n const columnKeys = columnDimensionTree.dimensionKeys?.count\n ? columnDimensionTree.dimensionKeys.valueArr()\n : options.columns?.reduce((keys, columnObj) => {\n if (typeof columnObj === 'string') {\n keys.push(columnObj);\n } else {\n keys.push(columnObj.dimensionKey);\n }\n return keys;\n }, []) ?? [];\n const indicatorKeys =\n options.indicators?.reduce((keys, indicatorObj) => {\n if (typeof indicatorObj === 'string') {\n keys.push(indicatorObj);\n } else {\n keys.push(indicatorObj.indicatorKey);\n }\n return keys;\n }, []) ?? [];\n\n dataConfig.collectValuesBy = _generateCollectValuesConfig(options, columnKeys, rowKeys);\n dataConfig.aggregationRules = _generateAggregationRules(options);\n\n const dataset = new Dataset(\n dataConfig,\n // null,\n rowKeys,\n columnKeys,\n indicatorKeys,\n options.indicators,\n options.indicatorsAsCol ?? true,\n options.records,\n undefined,\n undefined,\n columnTree || options.columnTree,\n rowTree || options.rowTree,\n true\n );\n\n return { dataset, columnDimensionTree, rowDimensionTree, layoutNodeId };\n}\n\nfunction _generateCollectValuesConfig(\n option: PivotChartConstructorOptions,\n columnKeys: string[],\n rowKeys: string[]\n): Record<string, CollectValueBy> {\n const collectValuesBy: Record<string, CollectValueBy> = {};\n\n for (let i = 0, len = option.indicators?.length; i < len; i++) {\n if (typeof option.indicators[i] !== 'string' && (option.indicators[i] as IChartColumnIndicator).chartSpec) {\n if (option.indicatorsAsCol === false) {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: rowKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const xField = typeof chartSeries.xField === 'string' ? chartSeries.xField : chartSeries.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type: chartSeries.direction !== 'horizontal' ? 'xField' : undefined,\n range: chartSeries.direction === 'horizontal',\n sortBy:\n chartSeries.direction !== 'horizontal'\n ? chartSeries?.data?.fields?.[xField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n\n const yField = chartSeries.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: chartSeries.direction !== 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && columnKeys.concat(chartSeries?.xField), // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n sortBy:\n chartSeries.direction === 'horizontal'\n ? chartSeries?.data?.fields?.[yField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n });\n } else {\n const xField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.xField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.xField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal' ? 'xField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal',\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const yField = (indicatorDefine as IChartColumnIndicator).chartSpec.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction !== 'horizontal', // direction默认为'vertical'\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField), // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n }\n } else {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: columnKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const yField = typeof chartSeries.yField === 'string' ? chartSeries.yField : chartSeries.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type: chartSeries.direction === 'horizontal' ? 'yField' : undefined,\n range: chartSeries.direction !== 'horizontal',\n sortBy:\n chartSeries.direction === 'horizontal'\n ? chartSeries?.data?.fields?.[yField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n\n const xField = chartSeries.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: chartSeries.direction === 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && rowKeys.concat(chartSeries?.yField),\n sortBy:\n chartSeries.direction !== 'horizontal'\n ? chartSeries?.data?.fields?.[xField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n });\n } else {\n const yField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.yField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.yField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal' ? 'yField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal',\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const xField = (indicatorDefine as IChartColumnIndicator).chartSpec.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction === 'horizontal', // direction默认为'vertical'\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField),\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n }\n }\n }\n }\n\n return collectValuesBy;\n}\n\nfunction _generateAggregationRules(options: PivotChartConstructorOptions) {\n const aggregationRules: AggregationRules = [];\n // indicatorFromChartSpec = true;\n options.indicators?.forEach((indicator: IIndicator | string) => {\n if (typeof indicator === 'string') {\n aggregationRules.push({\n indicatorKey: indicator, //field转为指标key\n field: indicator, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n } as AggregationRule<AggregationType.RECORD>);\n } else {\n if ((indicator as IChartColumnIndicator).chartSpec?.series) {\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n const fields: string[] = [];\n (indicator as IChartColumnIndicator).chartSpec?.series.forEach((seriesSpec: any) => {\n const seriesField = options.indicatorsAsCol === false ? seriesSpec.yField : seriesSpec.xField;\n if (fields.indexOf(seriesField) === -1) {\n fields.push(seriesField);\n }\n });\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: fields, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n } else {\n const field =\n options.indicatorsAsCol === false\n ? (indicator as IChartColumnIndicator).chartSpec.yField\n : (indicator as IChartColumnIndicator).chartSpec.xField;\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: field ?? indicator.indicatorKey, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n }\n }\n });\n\n return aggregationRules;\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/get-data-path/create-dataset.ts"],"names":[],"mappings":"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","file":"create-dataset.js","sourcesContent":["import { Dataset } from '../../dataset/dataset';\nimport { supplementIndicatorNodesForCustomTree } from '../../layout/layout-helper';\nimport type { ITreeLayoutHeadNode } from '../../layout/tree-helper';\nimport { DimensionTree } from '../../layout/tree-helper';\nimport type {\n AggregationRule,\n AggregationRules,\n CollectValueBy,\n IIndicator,\n PivotChartConstructorOptions,\n IPivotChartDataConfig\n} from '../../ts-types';\nimport { AggregationType } from '../../ts-types';\nimport type { IChartColumnIndicator } from '../../ts-types/pivot-table/indicator/chart-indicator';\n\nexport function createDataset(options: PivotChartConstructorOptions) {\n const layoutNodeId = { seqId: 0 };\n const dataConfig: IPivotChartDataConfig = { ...options.dataConfig, isPivotChart: true };\n let columnDimensionTree;\n let rowDimensionTree;\n let columnTree;\n let rowTree;\n if (options.columnTree) {\n if (options.indicatorsAsCol !== false) {\n columnTree = supplementIndicatorNodesForCustomTree(options.columnTree, options.indicators);\n }\n columnDimensionTree = new DimensionTree((options.columnTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n if (options.rowTree) {\n if (options.indicatorsAsCol === false) {\n rowTree = supplementIndicatorNodesForCustomTree(options.rowTree, options.indicators);\n }\n rowDimensionTree = new DimensionTree((options.rowTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n const rowKeys = rowDimensionTree?.dimensionKeys?.count\n ? rowDimensionTree.dimensionKeys.valueArr()\n : options.rows?.reduce((keys, rowObj) => {\n if (typeof rowObj === 'string') {\n keys.push(rowObj);\n } else {\n keys.push(rowObj.dimensionKey);\n }\n return keys;\n }, []) ?? [];\n const columnKeys = columnDimensionTree?.dimensionKeys?.count\n ? columnDimensionTree.dimensionKeys.valueArr()\n : options.columns?.reduce((keys, columnObj) => {\n if (typeof columnObj === 'string') {\n keys.push(columnObj);\n } else {\n keys.push(columnObj.dimensionKey);\n }\n return keys;\n }, []) ?? [];\n const indicatorKeys =\n options.indicators?.reduce((keys, indicatorObj) => {\n if (typeof indicatorObj === 'string') {\n keys.push(indicatorObj);\n } else {\n keys.push(indicatorObj.indicatorKey);\n }\n return keys;\n }, []) ?? [];\n\n dataConfig.collectValuesBy = _generateCollectValuesConfig(options, columnKeys, rowKeys);\n dataConfig.aggregationRules = _generateAggregationRules(options);\n\n const dataset = new Dataset(\n dataConfig,\n // null,\n rowKeys,\n columnKeys,\n indicatorKeys,\n options.indicators,\n options.indicatorsAsCol ?? true,\n options.records,\n undefined,\n undefined,\n columnTree || options.columnTree,\n rowTree || options.rowTree,\n true\n );\n\n return { dataset, columnDimensionTree, rowDimensionTree, layoutNodeId };\n}\n\nfunction _generateCollectValuesConfig(\n option: PivotChartConstructorOptions,\n columnKeys: string[],\n rowKeys: string[]\n): Record<string, CollectValueBy> {\n const collectValuesBy: Record<string, CollectValueBy> = {};\n\n for (let i = 0, len = option.indicators?.length; i < len; i++) {\n if (typeof option.indicators[i] !== 'string' && (option.indicators[i] as IChartColumnIndicator).chartSpec) {\n if (option.indicatorsAsCol === false) {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: rowKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const xField = typeof chartSeries.xField === 'string' ? chartSeries.xField : chartSeries.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type: chartSeries.direction !== 'horizontal' ? 'xField' : undefined,\n range: chartSeries.direction === 'horizontal',\n sortBy:\n chartSeries.direction !== 'horizontal'\n ? chartSeries?.data?.fields?.[xField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n\n const yField = chartSeries.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: chartSeries.direction !== 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && columnKeys.concat(chartSeries?.xField), // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n sortBy:\n chartSeries.direction === 'horizontal'\n ? chartSeries?.data?.fields?.[yField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n });\n } else {\n const xField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.xField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.xField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.xField[0];\n collectValuesBy[xField] = {\n by: columnKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal' ? 'xField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal',\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const yField = (indicatorDefine as IChartColumnIndicator).chartSpec.yField;\n collectValuesBy[yField] = {\n by: rowKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction !== 'horizontal', // direction默认为'vertical'\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false &&\n columnKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.xField), // 逻辑严谨的话 这个concat的值也需要结合 chartSeries.direction来判断是xField还是yField\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n }\n } else {\n const indicatorDefine = option.indicators[i] as IIndicator;\n // 收集指标值的范围\n collectValuesBy[indicatorDefine.indicatorKey] = {\n by: columnKeys,\n range: true,\n // 判断是否需要匹配维度值相同的进行求和计算\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec?.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField)\n };\n if ((indicatorDefine as IChartColumnIndicator).chartSpec.series) {\n (indicatorDefine as IChartColumnIndicator).chartSpec.series.forEach((chartSeries: any) => {\n const yField = typeof chartSeries.yField === 'string' ? chartSeries.yField : chartSeries.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type: chartSeries.direction === 'horizontal' ? 'yField' : undefined,\n range: chartSeries.direction !== 'horizontal',\n sortBy:\n chartSeries.direction === 'horizontal'\n ? chartSeries?.data?.fields?.[yField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n\n const xField = chartSeries.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: chartSeries.direction === 'horizontal', // direction默认为'vertical'\n sumBy: chartSeries.stack !== false && rowKeys.concat(chartSeries?.yField),\n sortBy:\n chartSeries.direction !== 'horizontal'\n ? chartSeries?.data?.fields?.[xField]?.domain ??\n (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n });\n } else {\n const yField =\n typeof (indicatorDefine as IChartColumnIndicator).chartSpec.yField === 'string'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec.yField\n : (indicatorDefine as IChartColumnIndicator).chartSpec.yField[0];\n collectValuesBy[yField] = {\n by: rowKeys,\n type:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal' ? 'yField' : undefined,\n range: (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal',\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction === 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[yField]?.domain\n : undefined\n };\n //下面这个收集的值 应该是和收集的 collectValuesBy[indicatorDefine.indicatorKey] 相同\n const xField = (indicatorDefine as IChartColumnIndicator).chartSpec.xField;\n collectValuesBy[xField] = {\n by: columnKeys,\n range: (option.indicators[i] as IChartColumnIndicator).chartSpec.direction === 'horizontal', // direction默认为'vertical'\n sumBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.stack !== false &&\n rowKeys.concat((indicatorDefine as IChartColumnIndicator).chartSpec?.yField),\n sortBy:\n (indicatorDefine as IChartColumnIndicator).chartSpec.direction !== 'horizontal'\n ? (indicatorDefine as IChartColumnIndicator).chartSpec?.data?.fields?.[xField]?.domain\n : undefined\n };\n }\n }\n }\n }\n\n return collectValuesBy;\n}\n\nfunction _generateAggregationRules(options: PivotChartConstructorOptions) {\n const aggregationRules: AggregationRules = [];\n // indicatorFromChartSpec = true;\n options.indicators?.forEach((indicator: IIndicator | string) => {\n if (typeof indicator === 'string') {\n aggregationRules.push({\n indicatorKey: indicator, //field转为指标key\n field: indicator, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n } as AggregationRule<AggregationType.RECORD>);\n } else {\n if ((indicator as IChartColumnIndicator).chartSpec?.series) {\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n const fields: string[] = [];\n (indicator as IChartColumnIndicator).chartSpec?.series.forEach((seriesSpec: any) => {\n const seriesField = options.indicatorsAsCol === false ? seriesSpec.yField : seriesSpec.xField;\n if (fields.indexOf(seriesField) === -1) {\n fields.push(seriesField);\n }\n });\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: fields, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n } else {\n const field =\n options.indicatorsAsCol === false\n ? (indicator as IChartColumnIndicator).chartSpec.yField\n : (indicator as IChartColumnIndicator).chartSpec.xField;\n aggregationRules.push({\n indicatorKey: indicator.indicatorKey, //field转为指标key\n field: field ?? indicator.indicatorKey, //指标依据字段\n aggregationType: AggregationType.RECORD //计算类型\n });\n }\n }\n });\n\n return aggregationRules;\n}\n"]}
@@ -29,11 +29,11 @@ function getDataCellPath(options, data, compareFunc) {
29
29
  for (let col = 0; col < layoutMap.colCount; col++) for (let row = 0; row < layoutMap.rowCount; row++) {
30
30
  if (layoutMap.isHeader(col, row)) continue;
31
31
  const cellDimensionPath = layoutMap.getCellHeaderPaths(col, row), colKeys = cellDimensionPath.colHeaderPaths.map((colPath => {
32
- var _a;
33
- return null !== (_a = colPath.indicatorKey) && void 0 !== _a ? _a : colPath.value;
32
+ var _a, _b;
33
+ return null !== (_b = null !== (_a = colPath.indicatorKey) && void 0 !== _a ? _a : colPath.dataValue) && void 0 !== _b ? _b : colPath.value;
34
34
  })), rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath => {
35
- var _a;
36
- return null !== (_a = rowPath.indicatorKey) && void 0 !== _a ? _a : rowPath.value;
35
+ var _a, _b;
36
+ return null !== (_b = null !== (_a = rowPath.indicatorKey) && void 0 !== _a ? _a : rowPath.dataValue) && void 0 !== _b ? _b : rowPath.value;
37
37
  })), aggregator = dataset.getAggregator(layoutMap.indicatorsAsCol ? rowKeys : rowKeys.slice(0, -1), layoutMap.indicatorsAsCol ? colKeys.slice(0, -1) : colKeys, layoutMap.getIndicatorKey(col, row)), result = compareData(aggregator.value ? aggregator.value() : void 0, data, col, row, layoutMap, compareFunc);
38
38
  if (result) return result;
39
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/get-data-path/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport type { PivotChart } from '../../PivotChart';\nimport type { IPivotTableCellHeaderPaths, PivotChartConstructorOptions } from '../../ts-types';\nimport { createDataset } from './create-dataset';\nimport { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { ITreeLayoutHeadNode } from '../../layout/tree-helper';\nimport { DimensionTree } from '../../layout/tree-helper';\nimport { IndicatorDimensionKeyPlaceholder } from '../global';\n\nexport function getDataCellPath(\n options: PivotChartConstructorOptions,\n data: Object,\n compareFunc?: (a: any, b: any) => boolean\n): IPivotTableCellHeaderPaths | undefined {\n // mock dataset\n const results = createDataset(options);\n let columnDimensionTree = results.columnDimensionTree;\n let rowDimensionTree = results.rowDimensionTree;\n\n let isNeedResetColumnDimensionTree = false;\n let isNeedResetRowDimensionTree = false;\n if (options.columnTree) {\n if (options.indicatorsAsCol && !columnDimensionTree.dimensionKeys.contain(IndicatorDimensionKeyPlaceholder)) {\n isNeedResetColumnDimensionTree = true;\n }\n }\n if (options.rowTree) {\n if (!options.indicatorsAsCol && !rowDimensionTree.dimensionKeys.contain(IndicatorDimensionKeyPlaceholder)) {\n isNeedResetRowDimensionTree = true;\n }\n }\n const { dataset, layoutNodeId } = results;\n // mock pivotChart\n const mockTable = {\n options,\n layoutNodeId,\n internalProps: options,\n isPivotChart: () => true,\n pivotChartAxes: [] as any[],\n _selectedDataItemsInChart: [] as any[],\n _getActiveChartInstance: () => {\n return {\n updateState: () => {\n // do nothing\n }\n };\n }\n };\n if (!options.columnTree || isNeedResetColumnDimensionTree) {\n columnDimensionTree = new DimensionTree((dataset.colHeaderTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n if (!options.rowTree || isNeedResetRowDimensionTree) {\n rowDimensionTree = new DimensionTree((dataset.rowHeaderTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n // mock layoutMap\n const layoutMap = new PivotHeaderLayoutMap(\n mockTable as unknown as PivotChart,\n dataset,\n columnDimensionTree,\n rowDimensionTree\n );\n\n // compare data\n for (let col = 0; col < layoutMap.colCount; col++) {\n for (let row = 0; row < layoutMap.rowCount; row++) {\n if (layoutMap.isHeader(col, row)) {\n continue;\n }\n\n const cellDimensionPath = layoutMap.getCellHeaderPaths(col, row);\n const colKeys = cellDimensionPath.colHeaderPaths.map((colPath: any) => {\n return colPath.indicatorKey ?? colPath.value;\n });\n const rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath: any) => {\n return rowPath.indicatorKey ?? rowPath.value;\n });\n // const aggregator = dataset.getAggregator(\n // rowKey[rowKey.length - 1],\n // colKey[colKey.length - 1],\n // (layoutMap as PivotHeaderLayoutMap).getIndicatorKey(col, row)\n // );\n\n const aggregator = dataset.getAggregator(\n !layoutMap.indicatorsAsCol ? rowKeys.slice(0, -1) : rowKeys,\n layoutMap.indicatorsAsCol ? colKeys.slice(0, -1) : colKeys,\n (layoutMap as PivotHeaderLayoutMap).getIndicatorKey(col, row)\n );\n\n const result = compareData(\n aggregator.value ? aggregator.value() : undefined,\n data,\n col,\n row,\n layoutMap,\n compareFunc\n );\n if (result) {\n return result;\n }\n }\n }\n return undefined;\n}\n\nfunction compareData(\n data1: Object[],\n data2: Object,\n col: number,\n row: number,\n layoutMap: PivotHeaderLayoutMap,\n compareFunc?: (a: any, b: any) => boolean\n) {\n if (isArray(data1)) {\n for (let i = 0; i < data1.length; i++) {\n if (compareFunc ? compareFunc(data1[i], data2) : defaultCompare(data1[i], data2)) {\n return layoutMap.getCellHeaderPaths(col, row);\n }\n }\n }\n return undefined;\n}\n\nfunction defaultCompare(a: any, b: any) {\n return JSON.stringify(a) === JSON.stringify(b);\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/get-data-path/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport type { PivotChart } from '../../PivotChart';\nimport type { IPivotTableCellHeaderPaths, PivotChartConstructorOptions } from '../../ts-types';\nimport { createDataset } from './create-dataset';\nimport { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { ITreeLayoutHeadNode } from '../../layout/tree-helper';\nimport { DimensionTree } from '../../layout/tree-helper';\nimport { IndicatorDimensionKeyPlaceholder } from '../global';\n\nexport function getDataCellPath(\n options: PivotChartConstructorOptions,\n data: Object,\n compareFunc?: (a: any, b: any) => boolean\n): IPivotTableCellHeaderPaths | undefined {\n // mock dataset\n const results = createDataset(options);\n let columnDimensionTree = results.columnDimensionTree;\n let rowDimensionTree = results.rowDimensionTree;\n\n let isNeedResetColumnDimensionTree = false;\n let isNeedResetRowDimensionTree = false;\n if (options.columnTree) {\n if (options.indicatorsAsCol && !columnDimensionTree.dimensionKeys.contain(IndicatorDimensionKeyPlaceholder)) {\n isNeedResetColumnDimensionTree = true;\n }\n }\n if (options.rowTree) {\n if (!options.indicatorsAsCol && !rowDimensionTree.dimensionKeys.contain(IndicatorDimensionKeyPlaceholder)) {\n isNeedResetRowDimensionTree = true;\n }\n }\n const { dataset, layoutNodeId } = results;\n // mock pivotChart\n const mockTable = {\n options,\n layoutNodeId,\n internalProps: options,\n isPivotChart: () => true,\n pivotChartAxes: [] as any[],\n _selectedDataItemsInChart: [] as any[],\n _getActiveChartInstance: () => {\n return {\n updateState: () => {\n // do nothing\n }\n };\n }\n };\n if (!options.columnTree || isNeedResetColumnDimensionTree) {\n columnDimensionTree = new DimensionTree((dataset.colHeaderTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n if (!options.rowTree || isNeedResetRowDimensionTree) {\n rowDimensionTree = new DimensionTree((dataset.rowHeaderTree as ITreeLayoutHeadNode[]) ?? [], layoutNodeId);\n }\n // mock layoutMap\n const layoutMap = new PivotHeaderLayoutMap(\n mockTable as unknown as PivotChart,\n dataset,\n columnDimensionTree,\n rowDimensionTree\n );\n\n // compare data\n for (let col = 0; col < layoutMap.colCount; col++) {\n for (let row = 0; row < layoutMap.rowCount; row++) {\n if (layoutMap.isHeader(col, row)) {\n continue;\n }\n\n const cellDimensionPath = layoutMap.getCellHeaderPaths(col, row);\n const colKeys = cellDimensionPath.colHeaderPaths.map((colPath: any) => {\n return colPath.indicatorKey ?? colPath.dataValue ?? colPath.value;\n });\n const rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath: any) => {\n return rowPath.indicatorKey ?? rowPath.dataValue ?? rowPath.value;\n });\n // const aggregator = dataset.getAggregator(\n // rowKey[rowKey.length - 1],\n // colKey[colKey.length - 1],\n // (layoutMap as PivotHeaderLayoutMap).getIndicatorKey(col, row)\n // );\n\n const aggregator = dataset.getAggregator(\n !layoutMap.indicatorsAsCol ? rowKeys.slice(0, -1) : rowKeys,\n layoutMap.indicatorsAsCol ? colKeys.slice(0, -1) : colKeys,\n (layoutMap as PivotHeaderLayoutMap).getIndicatorKey(col, row)\n );\n\n const result = compareData(\n aggregator.value ? aggregator.value() : undefined,\n data,\n col,\n row,\n layoutMap,\n compareFunc\n );\n if (result) {\n return result;\n }\n }\n }\n return undefined;\n}\n\nfunction compareData(\n data1: Object[],\n data2: Object,\n col: number,\n row: number,\n layoutMap: PivotHeaderLayoutMap,\n compareFunc?: (a: any, b: any) => boolean\n) {\n if (isArray(data1)) {\n for (let i = 0; i < data1.length; i++) {\n if (compareFunc ? compareFunc(data1[i], data2) : defaultCompare(data1[i], data2)) {\n return layoutMap.getCellHeaderPaths(col, row);\n }\n }\n }\n return undefined;\n}\n\nfunction defaultCompare(a: any, b: any) {\n return JSON.stringify(a) === JSON.stringify(b);\n}\n"]}
@@ -3,5 +3,7 @@ export declare function getHorizontalScrollBarSize(scrollStyle?: ScrollStyle): n
3
3
  export declare function getVerticalScrollBarSize(scrollStyle?: ScrollStyle): number;
4
4
  export declare function isValidStyle(style: (string | number) | (string | number)[]): boolean;
5
5
  export declare function isZeroStyle(style: number | number[]): boolean;
6
- export declare function setActiveCellRangeState(table: BaseTableAPI): void;
6
+ export declare function setActiveCellRangeState(table: BaseTableAPI, ranges?: (import("../ts-types").CellRange & {
7
+ skipBodyMerge?: boolean;
8
+ })[]): void;
7
9
  export declare function clearActiveCellRangeState(table: BaseTableAPI): void;
@@ -25,8 +25,8 @@ function isZeroStyle(style) {
25
25
  return 0 === style || (0, vutils_1.isArray)(style) && style.every((s => 0 === s));
26
26
  }
27
27
 
28
- function setActiveCellRangeState(table) {
29
- const selectRanges = table.stateManager.select.ranges, setRanges = [];
28
+ function setActiveCellRangeState(table, ranges = table.stateManager.select.ranges) {
29
+ const selectRanges = ranges, setRanges = [];
30
30
  for (let i = 0; i < selectRanges.length; i++) {
31
31
  const range = selectRanges[i];
32
32
  setRanges.push({
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/style.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAGpD,SAAgB,0BAA0B,CAAC,WAAyB;;IAClE,IACE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO;QACpB,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,KAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,MAAK,MAAM,CAAC;QAC7E,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAA,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAK,MAAM,CAAC,EACpE;QACA,OAAO,CAAC,CAAC;KACV;IACD,OAAO,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,mCAAI,CAAC,CAAC;AACjC,CAAC;AATD,gEASC;AAED,SAAgB,wBAAwB,CAAC,WAAyB;;IAChE,IACE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO;QACpB,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,KAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,MAAK,MAAM,CAAC;QACzE,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,CAAA,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAK,MAAM,CAAC,EAClE;QACA,OAAO,CAAC,CAAC;KACV;IACD,OAAO,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,mCAAI,CAAC,CAAC;AACjC,CAAC;AATD,4DASC;AAED,SAAgB,YAAY,CAAC,KAA8C;IACzE,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IACD,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,gBAAO,EAAC,CAAC,CAAC,CAAC,CAAC;KACpC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AATD,oCASC;AAED,SAAgB,WAAW,CAAC,KAAwB;IAClD,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAFD,kCAEC;AAGD,SAAgB,uBAAuB,CAAC,KAAmB;IACzD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;IACtD,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC;YACb,KAAK;YACL,KAAK,EAAE;gBACL,eAAe,EAAE,MAAM;gBACvB,mBAAmB,EAAE,CAAC;gBACtB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAC3B;SACF,CAAC,CAAC;KACJ;IACD,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC;AAfD,0DAeC;AACD,SAAgB,yBAAyB,CAAC,KAAmB;IAC3D,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAC/C,CAAC;AAFD,8DAEC","file":"style.js","sourcesContent":["import { isArray, isValid } from '@visactor/vutils';\nimport type { BaseTableAPI, ScrollStyle } from '../ts-types';\n\nexport function getHorizontalScrollBarSize(scrollStyle?: ScrollStyle): number {\n if (\n scrollStyle?.hoverOn ||\n (scrollStyle?.horizontalVisible && scrollStyle?.horizontalVisible === 'none') ||\n (!scrollStyle?.horizontalVisible && scrollStyle?.visible === 'none')\n ) {\n return 0;\n }\n return scrollStyle?.width ?? 7;\n}\n\nexport function getVerticalScrollBarSize(scrollStyle?: ScrollStyle): number {\n if (\n scrollStyle?.hoverOn ||\n (scrollStyle?.verticalVisible && scrollStyle?.verticalVisible === 'none') ||\n (!scrollStyle?.verticalVisible && scrollStyle?.visible === 'none')\n ) {\n return 0;\n }\n return scrollStyle?.width ?? 7;\n}\n\nexport function isValidStyle(style: (string | number) | (string | number)[]) {\n if (!isValid(style)) {\n return false;\n }\n if (isArray(style)) {\n return style.some(s => isValid(s));\n }\n\n return true;\n}\n\nexport function isZeroStyle(style: number | number[]) {\n return style === 0 || (isArray(style) && style.every(s => s === 0));\n}\n\n// 设置复制区域的状态 类似excel的虚线框\nexport function setActiveCellRangeState(table: BaseTableAPI) {\n const selectRanges = table.stateManager.select.ranges;\n const setRanges = [];\n for (let i = 0; i < selectRanges.length; i++) {\n const range = selectRanges[i];\n setRanges.push({\n range,\n style: {\n cellBorderColor: 'blue',\n cellBorderLineWidth: 2,\n cellBorderLineDash: [5, 5]\n }\n });\n }\n table.stateManager.setCustomSelectRanges(setRanges);\n}\nexport function clearActiveCellRangeState(table: BaseTableAPI) {\n table.stateManager.setCustomSelectRanges([]);\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/style.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAGpD,SAAgB,0BAA0B,CAAC,WAAyB;;IAClE,IACE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO;QACpB,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,KAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,MAAK,MAAM,CAAC;QAC7E,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAA,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAK,MAAM,CAAC,EACpE;QACA,OAAO,CAAC,CAAC;KACV;IACD,OAAO,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,mCAAI,CAAC,CAAC;AACjC,CAAC;AATD,gEASC;AAED,SAAgB,wBAAwB,CAAC,WAAyB;;IAChE,IACE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO;QACpB,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,KAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,MAAK,MAAM,CAAC;QACzE,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,CAAA,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAK,MAAM,CAAC,EAClE;QACA,OAAO,CAAC,CAAC;KACV;IACD,OAAO,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,mCAAI,CAAC,CAAC;AACjC,CAAC;AATD,4DASC;AAED,SAAgB,YAAY,CAAC,KAA8C;IACzE,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IACD,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,gBAAO,EAAC,CAAC,CAAC,CAAC,CAAC;KACpC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AATD,oCASC;AAED,SAAgB,WAAW,CAAC,KAAwB;IAClD,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAFD,kCAEC;AAGD,SAAgB,uBAAuB,CAAC,KAAmB,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;IACpG,MAAM,YAAY,GAAG,MAAM,CAAC;IAC5B,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC;YACb,KAAK;YACL,KAAK,EAAE;gBACL,eAAe,EAAE,MAAM;gBACvB,mBAAmB,EAAE,CAAC;gBACtB,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAC3B;SACF,CAAC,CAAC;KACJ;IACD,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC;AAfD,0DAeC;AACD,SAAgB,yBAAyB,CAAC,KAAmB;IAC3D,KAAK,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAC/C,CAAC;AAFD,8DAEC","file":"style.js","sourcesContent":["import { isArray, isValid } from '@visactor/vutils';\nimport type { BaseTableAPI, ScrollStyle } from '../ts-types';\n\nexport function getHorizontalScrollBarSize(scrollStyle?: ScrollStyle): number {\n if (\n scrollStyle?.hoverOn ||\n (scrollStyle?.horizontalVisible && scrollStyle?.horizontalVisible === 'none') ||\n (!scrollStyle?.horizontalVisible && scrollStyle?.visible === 'none')\n ) {\n return 0;\n }\n return scrollStyle?.width ?? 7;\n}\n\nexport function getVerticalScrollBarSize(scrollStyle?: ScrollStyle): number {\n if (\n scrollStyle?.hoverOn ||\n (scrollStyle?.verticalVisible && scrollStyle?.verticalVisible === 'none') ||\n (!scrollStyle?.verticalVisible && scrollStyle?.visible === 'none')\n ) {\n return 0;\n }\n return scrollStyle?.width ?? 7;\n}\n\nexport function isValidStyle(style: (string | number) | (string | number)[]) {\n if (!isValid(style)) {\n return false;\n }\n if (isArray(style)) {\n return style.some(s => isValid(s));\n }\n\n return true;\n}\n\nexport function isZeroStyle(style: number | number[]) {\n return style === 0 || (isArray(style) && style.every(s => s === 0));\n}\n\n// 设置复制区域的状态 类似excel的虚线框\nexport function setActiveCellRangeState(table: BaseTableAPI, ranges = table.stateManager.select.ranges) {\n const selectRanges = ranges;\n const setRanges = [];\n for (let i = 0; i < selectRanges.length; i++) {\n const range = selectRanges[i];\n setRanges.push({\n range,\n style: {\n cellBorderColor: 'blue',\n cellBorderLineWidth: 2,\n cellBorderLineDash: [5, 5]\n }\n });\n }\n table.stateManager.setCustomSelectRanges(setRanges);\n}\nexport function clearActiveCellRangeState(table: BaseTableAPI) {\n table.stateManager.setCustomSelectRanges([]);\n}\n"]}
@@ -82,6 +82,7 @@ export type IPivotTableCellHeaderPaths = {
82
82
  export interface IDimensionInfo {
83
83
  dimensionKey?: string;
84
84
  value?: string;
85
+ dataValue?: string;
85
86
  indicatorKey?: string;
86
87
  isPivotCorner?: boolean;
87
88
  virtual?: boolean;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ts-types/common.ts"],"names":[],"mappings":";;;AAyHA,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,uCAAqB,CAAA;IACrB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;AAC3B,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;AASD,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,+BAAe,CAAA;AACjB,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB","file":"common.js","sourcesContent":["import type { Style } from '../body-helper/style';\nimport type { ColumnStyleOption, ColumnTypeOption } from './column';\nimport type { ColumnData } from './list-table/layout-map/api';\nimport type { CellLocation, CellPivotRole, CellRange, FieldData, FieldDef } from './table-engine';\nimport type { Rect } from '../tools/Rect';\nimport type { BaseTableAPI } from './base-table';\nimport type { StylePropertyFunctionArg } from './style-define';\n\nexport type MaybePromise<T> = T | Promise<T>;\n\nexport type MaybeCall<T, A extends any[]> = T | ((...args: A) => T);\n\nexport type MaybePromiseOrUndefined = any | undefined | Promise<any | undefined>;\nexport type MaybePromiseOrCallOrUndefined = any | undefined | Promise<any | undefined> | ((...args: any) => any);\nexport type PromiseMaybeUndefOrCall<T, A extends any[]> = Promise<T | undefined> | ((...args: A) => T);\nexport type AnyFunction = (...args: any[]) => any;\n\nexport interface RectProps {\n left: number;\n right: number;\n top: number;\n bottom: number;\n width: number;\n height: number;\n}\n\nexport interface CellPosition {\n col: number;\n row: number;\n}\n\nexport type ColorsDef = string | (string | null)[];\nexport type LineWidthsDef = number | (number | null)[];\nexport type LineDashsDef = number[] | (number[] | null)[];\nexport type shadowColorsDef = { from: string; to: string } | ({ from: string; to: string } | null)[];\nexport type PaddingsDef = number | (number | null)[];\nexport type SortOption = boolean | ((v1: any, v2: any, order: SortOrder) => -1 | 0 | 1);\nexport type MergeCellOption =\n | boolean\n | ((\n v1: any,\n v2: any,\n extraArgs: {\n source: CellPosition;\n target: CellPosition;\n table: BaseTableAPI;\n }\n ) => boolean);\nexport type BaseCellInfo = {\n row: number;\n col: number;\n /**format之后的值 */\n value: FieldData;\n /**原始值 */\n dataValue: FieldData;\n};\nexport type MergeCellInfo = {\n colStart: number;\n colEnd: number;\n rowStart: number;\n rowEnd: number;\n};\nexport type CellInfo = {\n col: number;\n row: number;\n title?: string | (() => string) | undefined;\n /**维度名称 */\n field?: FieldDef;\n /**单元格行列表头paths */\n cellHeaderPaths?: ICellHeaderPaths;\n /**单元格的位置 */\n cellRange?: Rect;\n /**整条数据-原始数据 */\n originData?: any;\n /**format之后的值 */\n value?: FieldData;\n /**原始值 */\n dataValue?: FieldData;\n cellLocation?: CellLocation;\n cellType?: ColumnTypeOption;\n};\n\nexport type ICellHeaderPaths = IListTableCellHeaderPaths | IPivotTableCellHeaderPaths;\nexport type IListTableCellHeaderPaths = {\n readonly colHeaderPaths?: {\n field: FieldDef;\n // title: string | (() => string) | undefined;\n }[];\n readonly rowHeaderPaths?: {\n field: FieldDef;\n // title: string | (() => string) | undefined;\n }[];\n cellLocation: CellLocation;\n};\nexport type IPivotTableCellHeaderPaths = {\n /** 列表头各级path表头信息 */\n readonly colHeaderPaths?: IDimensionInfo[];\n /** 行表头各级path表头信息 */\n readonly rowHeaderPaths?: IDimensionInfo[];\n cellLocation: CellLocation;\n role?: CellPivotRole;\n};\n\nexport interface IDimensionInfo {\n dimensionKey?: string;\n value?: string;\n indicatorKey?: string;\n isPivotCorner?: boolean;\n virtual?: boolean;\n role?: CellPivotRole;\n}\n\n/**\n * 当前表格的交互状态:\n * Default 默认展示\n * grabing 拖拽中\n * -Resize column 改变列宽\n * -column move 调整列顺序\n * -drag select 拖拽多选\n * Scrolling 滚动中\n */\nexport enum InteractionState {\n 'default' = 'default',\n 'grabing' = 'grabing',\n 'scrolling' = 'scrolling'\n}\n/**\n * 单元格的高亮效果设置\n * single 单个单元格高亮\n * column 整列高亮\n * row 整行高量\n * cross 十字花 行列均高亮\n * none 无高亮\n */\nexport enum HighlightScope {\n 'single' = 'single',\n 'column' = 'column',\n 'row' = 'row',\n 'cross' = 'cross',\n 'none' = 'none'\n}\n\nexport type SortOrder = 'asc' | 'desc' | 'normal' | 'ASC' | 'DESC' | 'NORMAL';\n\nexport type CustomCellStyle = {\n id: string;\n style: ColumnStyleOption | ((styleArg: StylePropertyFunctionArg) => ColumnStyleOption);\n};\n\nexport type CustomCellStyleArrangement = {\n cellPosition: {\n col?: number;\n row?: number;\n range?: CellRange;\n };\n customStyleId: string;\n};\n"]}
1
+ {"version":3,"sources":["../src/ts-types/common.ts"],"names":[],"mappings":";;;AA2HA,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,uCAAqB,CAAA;IACrB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;AAC3B,CAAC,EAJW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAI3B;AASD,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,+BAAe,CAAA;AACjB,CAAC,EANW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAMzB","file":"common.js","sourcesContent":["import type { Style } from '../body-helper/style';\nimport type { ColumnStyleOption, ColumnTypeOption } from './column';\nimport type { ColumnData } from './list-table/layout-map/api';\nimport type { CellLocation, CellPivotRole, CellRange, FieldData, FieldDef } from './table-engine';\nimport type { Rect } from '../tools/Rect';\nimport type { BaseTableAPI } from './base-table';\nimport type { StylePropertyFunctionArg } from './style-define';\n\nexport type MaybePromise<T> = T | Promise<T>;\n\nexport type MaybeCall<T, A extends any[]> = T | ((...args: A) => T);\n\nexport type MaybePromiseOrUndefined = any | undefined | Promise<any | undefined>;\nexport type MaybePromiseOrCallOrUndefined = any | undefined | Promise<any | undefined> | ((...args: any) => any);\nexport type PromiseMaybeUndefOrCall<T, A extends any[]> = Promise<T | undefined> | ((...args: A) => T);\nexport type AnyFunction = (...args: any[]) => any;\n\nexport interface RectProps {\n left: number;\n right: number;\n top: number;\n bottom: number;\n width: number;\n height: number;\n}\n\nexport interface CellPosition {\n col: number;\n row: number;\n}\n\nexport type ColorsDef = string | (string | null)[];\nexport type LineWidthsDef = number | (number | null)[];\nexport type LineDashsDef = number[] | (number[] | null)[];\nexport type shadowColorsDef = { from: string; to: string } | ({ from: string; to: string } | null)[];\nexport type PaddingsDef = number | (number | null)[];\nexport type SortOption = boolean | ((v1: any, v2: any, order: SortOrder) => -1 | 0 | 1);\nexport type MergeCellOption =\n | boolean\n | ((\n v1: any,\n v2: any,\n extraArgs: {\n source: CellPosition;\n target: CellPosition;\n table: BaseTableAPI;\n }\n ) => boolean);\nexport type BaseCellInfo = {\n row: number;\n col: number;\n /**format之后的值 */\n value: FieldData;\n /**原始值 */\n dataValue: FieldData;\n};\nexport type MergeCellInfo = {\n colStart: number;\n colEnd: number;\n rowStart: number;\n rowEnd: number;\n};\nexport type CellInfo = {\n col: number;\n row: number;\n title?: string | (() => string) | undefined;\n /**维度名称 */\n field?: FieldDef;\n /**单元格行列表头paths */\n cellHeaderPaths?: ICellHeaderPaths;\n /**单元格的位置 */\n cellRange?: Rect;\n /**整条数据-原始数据 */\n originData?: any;\n /**format之后的值 */\n value?: FieldData;\n /**原始值 */\n dataValue?: FieldData;\n cellLocation?: CellLocation;\n cellType?: ColumnTypeOption;\n};\n\nexport type ICellHeaderPaths = IListTableCellHeaderPaths | IPivotTableCellHeaderPaths;\nexport type IListTableCellHeaderPaths = {\n readonly colHeaderPaths?: {\n field: FieldDef;\n // title: string | (() => string) | undefined;\n }[];\n readonly rowHeaderPaths?: {\n field: FieldDef;\n // title: string | (() => string) | undefined;\n }[];\n cellLocation: CellLocation;\n};\nexport type IPivotTableCellHeaderPaths = {\n /** 列表头各级path表头信息 */\n readonly colHeaderPaths?: IDimensionInfo[];\n /** 行表头各级path表头信息 */\n readonly rowHeaderPaths?: IDimensionInfo[];\n cellLocation: CellLocation;\n role?: CellPivotRole;\n};\n\nexport interface IDimensionInfo {\n dimensionKey?: string;\n value?: string;\n /** Internal value used to locate aggregated data when it differs from the displayed value. */\n dataValue?: string;\n indicatorKey?: string;\n isPivotCorner?: boolean;\n virtual?: boolean;\n role?: CellPivotRole;\n}\n\n/**\n * 当前表格的交互状态:\n * Default 默认展示\n * grabing 拖拽中\n * -Resize column 改变列宽\n * -column move 调整列顺序\n * -drag select 拖拽多选\n * Scrolling 滚动中\n */\nexport enum InteractionState {\n 'default' = 'default',\n 'grabing' = 'grabing',\n 'scrolling' = 'scrolling'\n}\n/**\n * 单元格的高亮效果设置\n * single 单个单元格高亮\n * column 整列高亮\n * row 整行高量\n * cross 十字花 行列均高亮\n * none 无高亮\n */\nexport enum HighlightScope {\n 'single' = 'single',\n 'column' = 'column',\n 'row' = 'row',\n 'cross' = 'cross',\n 'none' = 'none'\n}\n\nexport type SortOrder = 'asc' | 'desc' | 'normal' | 'ASC' | 'DESC' | 'NORMAL';\n\nexport type CustomCellStyle = {\n id: string;\n style: ColumnStyleOption | ((styleArg: StylePropertyFunctionArg) => ColumnStyleOption);\n};\n\nexport type CustomCellStyleArrangement = {\n cellPosition: {\n col?: number;\n row?: number;\n range?: CellRange;\n };\n customStyleId: string;\n};\n"]}
@@ -78,6 +78,7 @@ export declare class NoneAggregator extends Aggregator {
78
78
  export declare class CustomAggregator extends Aggregator {
79
79
  type: string;
80
80
  isRecord?: boolean;
81
+ recalculateFromChildren?: boolean;
81
82
  field?: string;
82
83
  aggregationFun?: Function;
83
84
  values: (string | number)[];
@@ -97,8 +97,13 @@ class CustomAggregator extends Aggregator {
97
97
  this.aggregationFun = config.aggregationFun;
98
98
  }
99
99
  push(record) {
100
- record && (this.isRecord && this.records && (record.isAggregator ? this.records.push(...record.records) : this.records.push(record)),
101
- record.isAggregator && this.children && this.children.push(record), this.field && this.values.push(record[this.field])),
100
+ if (record) {
101
+ if (this.recalculateFromChildren && record.isAggregator) return this.isRecord && this.records && this.records.push(...record.records),
102
+ this.children && this.children.push(record), this.field && this.values.push(...record.records.map((item => item[this.field]))),
103
+ void this.clearCacheValue();
104
+ this.isRecord && this.records && (record.isAggregator ? this.records.push(...record.records) : this.records.push(record)),
105
+ record.isAggregator && this.children && this.children.push(record), this.field && this.values.push(record[this.field]);
106
+ }
102
107
  this.clearCacheValue();
103
108
  }
104
109
  updateRecord(oldRecord, newRecord) {
@@ -122,7 +127,20 @@ class CustomAggregator extends Aggregator {
122
127
  this.records = [], this.children = [], this.changedValue = void 0, this.fieldValue = void 0;
123
128
  }
124
129
  recalculate() {
125
- this.fieldValue = void 0, this._formatedValue = void 0;
130
+ var _a;
131
+ this.recalculateFromChildren && (null === (_a = this.children) || void 0 === _a ? void 0 : _a.length) && this.field && (this.values = [],
132
+ this.records = [], this.children.forEach((child => {
133
+ if ((0, vutils_1.isValid)(child.changedValue)) {
134
+ const value = child.value();
135
+ this.values.push(value), this.records.push({
136
+ [this.field]: value
137
+ });
138
+ } else if (child instanceof CustomAggregator && child.recalculateFromChildren) this.values.push(...child.values),
139
+ this.records.push(...child.records); else {
140
+ const records = child.records;
141
+ this.values.push(...records.map((record => record[this.field]))), this.records.push(...records);
142
+ }
143
+ }))), this.fieldValue = void 0, this._formatedValue = void 0;
126
144
  }
127
145
  }
128
146