k-vtable 1.0.26 → 1.0.28

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 (211) hide show
  1. package/cjs/ListTable.d.ts +1 -0
  2. package/cjs/ListTable.js +17 -7
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js +6 -6
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable-all.js +5 -5
  7. package/cjs/PivotTable-all.js.map +1 -1
  8. package/cjs/PivotTable.js +14 -8
  9. package/cjs/PivotTable.js.map +1 -1
  10. package/cjs/components/axis/axis.d.ts +5 -3
  11. package/cjs/components/axis/axis.js +20 -14
  12. package/cjs/components/axis/axis.js.map +1 -1
  13. package/cjs/components/axis/get-axis-attributes.d.ts +1 -0
  14. package/cjs/components/axis/get-axis-attributes.js +5 -2
  15. package/cjs/components/axis/get-axis-attributes.js.map +1 -1
  16. package/cjs/components/axis/get-axis-component-size.js +11 -5
  17. package/cjs/components/axis/get-axis-component-size.js.map +1 -1
  18. package/cjs/core/BaseTable.d.ts +3 -3
  19. package/cjs/core/BaseTable.js +16 -13
  20. package/cjs/core/BaseTable.js.map +1 -1
  21. package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
  22. package/cjs/core/TABLE_EVENT_TYPE.js +3 -1
  23. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  24. package/cjs/data/DataSource.d.ts +1 -1
  25. package/cjs/data/DataSource.js +2 -2
  26. package/cjs/data/DataSource.js.map +1 -1
  27. package/cjs/dataset/dataset.js +13 -4
  28. package/cjs/dataset/dataset.js.map +1 -1
  29. package/cjs/edit/edit-manager.d.ts +3 -2
  30. package/cjs/edit/edit-manager.js +36 -6
  31. package/cjs/edit/edit-manager.js.map +1 -1
  32. package/cjs/event/event.d.ts +9 -0
  33. package/cjs/event/event.js +161 -85
  34. package/cjs/event/event.js.map +1 -1
  35. package/cjs/event/listener/container-dom.js +15 -7
  36. package/cjs/event/listener/container-dom.js.map +1 -1
  37. package/cjs/event/self-event-listener/pivot-chart/axis-hover.js +1 -1
  38. package/cjs/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -1
  39. package/cjs/event/util.d.ts +1 -0
  40. package/cjs/event/util.js +13 -2
  41. package/cjs/event/util.js.map +1 -1
  42. package/cjs/index.d.ts +1 -1
  43. package/cjs/index.js +1 -1
  44. package/cjs/index.js.map +1 -1
  45. package/cjs/layout/chart-helper/get-axis-config.js +40 -25
  46. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  47. package/cjs/layout/chart-helper/get-chart-spec.js +6 -2
  48. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  49. package/cjs/layout/pivot-header-layout.d.ts +4 -1
  50. package/cjs/layout/pivot-header-layout.js +55 -22
  51. package/cjs/layout/pivot-header-layout.js.map +1 -1
  52. package/cjs/plugins/index.js +1 -1
  53. package/cjs/plugins/plugin-manager.d.ts +2 -0
  54. package/cjs/plugins/plugin-manager.js +13 -6
  55. package/cjs/plugins/plugin-manager.js.map +1 -1
  56. package/cjs/scenegraph/component/menu.d.ts +41 -0
  57. package/cjs/scenegraph/component/table-component.d.ts +2 -0
  58. package/cjs/scenegraph/component/table-component.js +39 -9
  59. package/cjs/scenegraph/component/table-component.js.map +1 -1
  60. package/cjs/scenegraph/debug-tool/debug-tool.js +1 -1
  61. package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -1
  62. package/cjs/scenegraph/graphic/active-cell-chart-list.d.ts +13 -0
  63. package/cjs/scenegraph/graphic/active-cell-chart-list.js +152 -0
  64. package/cjs/scenegraph/graphic/active-cell-chart-list.js.map +1 -0
  65. package/cjs/scenegraph/graphic/chart.d.ts +9 -2
  66. package/cjs/scenegraph/graphic/chart.js +95 -15
  67. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  68. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
  69. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  70. package/cjs/scenegraph/graphic/contributions/chart-render.js +3 -3
  71. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  72. package/cjs/scenegraph/group-creater/cell-helper.js +3 -3
  73. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  74. package/cjs/scenegraph/group-creater/column-helper.js +1 -1
  75. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  76. package/cjs/scenegraph/layout/compute-col-width.js +1 -1
  77. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  78. package/cjs/scenegraph/layout/frozen.js +4 -4
  79. package/cjs/scenegraph/layout/frozen.js.map +1 -1
  80. package/cjs/scenegraph/layout/update-width.js +1 -1
  81. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  82. package/cjs/scenegraph/refresh-node/update-chart.js +2 -2
  83. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  84. package/cjs/scenegraph/scenegraph.js +9 -2
  85. package/cjs/scenegraph/scenegraph.js.map +1 -1
  86. package/cjs/scenegraph/utils/text-measure.d.ts +38 -0
  87. package/cjs/state/state.js +15 -23
  88. package/cjs/state/state.js.map +1 -1
  89. package/cjs/themes/theme-define.js +22 -16
  90. package/cjs/themes/theme-define.js.map +1 -1
  91. package/cjs/ts-types/base-table.d.ts +5 -3
  92. package/cjs/ts-types/base-table.js.map +1 -1
  93. package/cjs/ts-types/events.d.ts +8 -0
  94. package/cjs/ts-types/events.js.map +1 -1
  95. package/cjs/ts-types/list-table/define/index.d.ts +9 -2
  96. package/cjs/ts-types/list-table/define/index.js.map +1 -1
  97. package/cjs/ts-types/table-engine.d.ts +17 -0
  98. package/cjs/ts-types/table-engine.js.map +1 -1
  99. package/cjs/ts-types/theme.d.ts +12 -4
  100. package/cjs/ts-types/theme.js.map +1 -1
  101. package/cjs/vrender.js.map +1 -1
  102. package/dist/vtable.js +25073 -25724
  103. package/dist/vtable.min.js +2 -2
  104. package/es/ListTable.d.ts +1 -0
  105. package/es/ListTable.js +18 -8
  106. package/es/ListTable.js.map +1 -1
  107. package/es/PivotChart.js +6 -6
  108. package/es/PivotChart.js.map +1 -1
  109. package/es/PivotTable-all.js +5 -3
  110. package/es/PivotTable-all.js.map +1 -1
  111. package/es/PivotTable.js +14 -8
  112. package/es/PivotTable.js.map +1 -1
  113. package/es/components/axis/axis.d.ts +5 -3
  114. package/es/components/axis/axis.js +19 -12
  115. package/es/components/axis/axis.js.map +1 -1
  116. package/es/components/axis/get-axis-attributes.d.ts +1 -0
  117. package/es/components/axis/get-axis-attributes.js +5 -2
  118. package/es/components/axis/get-axis-attributes.js.map +1 -1
  119. package/es/components/axis/get-axis-component-size.js +12 -4
  120. package/es/components/axis/get-axis-component-size.js.map +1 -1
  121. package/es/core/BaseTable.d.ts +3 -3
  122. package/es/core/BaseTable.js +16 -13
  123. package/es/core/BaseTable.js.map +1 -1
  124. package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
  125. package/es/core/TABLE_EVENT_TYPE.js +3 -1
  126. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  127. package/es/data/DataSource.d.ts +1 -1
  128. package/es/data/DataSource.js +2 -2
  129. package/es/data/DataSource.js.map +1 -1
  130. package/es/dataset/dataset.js +12 -4
  131. package/es/dataset/dataset.js.map +1 -1
  132. package/es/edit/edit-manager.d.ts +3 -2
  133. package/es/edit/edit-manager.js +36 -6
  134. package/es/edit/edit-manager.js.map +1 -1
  135. package/es/event/event.d.ts +9 -0
  136. package/es/event/event.js +161 -85
  137. package/es/event/event.js.map +1 -1
  138. package/es/event/listener/container-dom.js +15 -7
  139. package/es/event/listener/container-dom.js.map +1 -1
  140. package/es/event/self-event-listener/pivot-chart/axis-hover.js +1 -1
  141. package/es/event/self-event-listener/pivot-chart/axis-hover.js.map +1 -1
  142. package/es/event/util.d.ts +1 -0
  143. package/es/event/util.js +11 -0
  144. package/es/event/util.js.map +1 -1
  145. package/es/index.d.ts +1 -1
  146. package/es/index.js +1 -1
  147. package/es/index.js.map +1 -1
  148. package/es/layout/chart-helper/get-axis-config.js +39 -24
  149. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  150. package/es/layout/chart-helper/get-chart-spec.js +5 -3
  151. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  152. package/es/layout/pivot-header-layout.d.ts +4 -1
  153. package/es/layout/pivot-header-layout.js +53 -21
  154. package/es/layout/pivot-header-layout.js.map +1 -1
  155. package/es/plugins/index.js +1 -1
  156. package/es/plugins/plugin-manager.d.ts +2 -0
  157. package/es/plugins/plugin-manager.js +13 -6
  158. package/es/plugins/plugin-manager.js.map +1 -1
  159. package/es/scenegraph/component/menu.d.ts +41 -0
  160. package/es/scenegraph/component/table-component.d.ts +2 -0
  161. package/es/scenegraph/component/table-component.js +39 -9
  162. package/es/scenegraph/component/table-component.js.map +1 -1
  163. package/es/scenegraph/debug-tool/debug-tool.js +1 -1
  164. package/es/scenegraph/debug-tool/debug-tool.js.map +1 -1
  165. package/es/scenegraph/graphic/active-cell-chart-list.d.ts +13 -0
  166. package/es/scenegraph/graphic/active-cell-chart-list.js +141 -0
  167. package/es/scenegraph/graphic/active-cell-chart-list.js.map +1 -0
  168. package/es/scenegraph/graphic/chart.d.ts +9 -2
  169. package/es/scenegraph/graphic/chart.js +95 -14
  170. package/es/scenegraph/graphic/chart.js.map +1 -1
  171. package/es/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
  172. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  173. package/es/scenegraph/graphic/contributions/chart-render.js +3 -3
  174. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  175. package/es/scenegraph/group-creater/cell-helper.js +3 -3
  176. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  177. package/es/scenegraph/group-creater/column-helper.js +1 -1
  178. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  179. package/es/scenegraph/layout/compute-col-width.js +1 -1
  180. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  181. package/es/scenegraph/layout/frozen.js +4 -4
  182. package/es/scenegraph/layout/frozen.js.map +1 -1
  183. package/es/scenegraph/layout/update-width.js +1 -1
  184. package/es/scenegraph/layout/update-width.js.map +1 -1
  185. package/es/scenegraph/refresh-node/update-chart.js +2 -2
  186. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  187. package/es/scenegraph/scenegraph.js +9 -2
  188. package/es/scenegraph/scenegraph.js.map +1 -1
  189. package/es/scenegraph/utils/text-measure.d.ts +38 -0
  190. package/es/state/state.js +15 -23
  191. package/es/state/state.js.map +1 -1
  192. package/es/themes/theme-define.js +18 -12
  193. package/es/themes/theme-define.js.map +1 -1
  194. package/es/ts-types/base-table.d.ts +5 -3
  195. package/es/ts-types/base-table.js.map +1 -1
  196. package/es/ts-types/events.d.ts +8 -0
  197. package/es/ts-types/events.js.map +1 -1
  198. package/es/ts-types/list-table/define/index.d.ts +9 -2
  199. package/es/ts-types/list-table/define/index.js.map +1 -1
  200. package/es/ts-types/table-engine.d.ts +17 -0
  201. package/es/ts-types/table-engine.js.map +1 -1
  202. package/es/ts-types/theme.d.ts +12 -4
  203. package/es/ts-types/theme.js.map +1 -1
  204. package/es/vrender.js.map +1 -1
  205. package/package.json +11 -11
  206. package/cjs/layout/pivot-layout.d.ts +0 -1
  207. package/cjs/layout/pivot-layout.js +0 -1
  208. package/cjs/layout/pivot-layout.js.map +0 -1
  209. package/es/layout/pivot-layout.d.ts +0 -1
  210. package/es/layout/pivot-layout.js +0 -1
  211. package/es/layout/pivot-layout.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/chart-helper/get-chart-spec.ts"],"names":[],"mappings":"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","file":"get-chart-spec.js","sourcesContent":["import { cloneDeep, isArray, isNumber, merge } from '@visactor/vutils';\nimport type { PivotHeaderLayoutMap } from '../pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../simple-header-layout';\nimport { getAxisOption, getAxisRange, getAxisRangeAndTicks } from './get-axis-config';\nimport { getNewRangeToAlign } from './zero-align';\nimport type { IChartIndicator, IIndicator } from '../../ts-types';\nimport { cloneDeepSpec } from '@visactor/vutils-extension';\nimport { Factory } from '../../core/factory';\nimport type { GetAxisDomainRangeAndLabels } from './get-axis-domain';\nimport { DEFAULT_TEXT_FONT_SIZE } from '../../components/axis/get-axis-attributes';\nimport { convertDomainToTickData } from './../../vrender';\nimport { getTickModeFunction, getZeroAlignTickAlignTicks } from './tick-align';\n\nconst NO_AXISID_FRO_VTABLE = 'NO_AXISID_FRO_VTABLE';\n\nexport function getRawChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const chartSpec = indicatorObj?.chartSpec;\n\n if (typeof chartSpec === 'function') {\n // 动态组织spec\n const arg = {\n col,\n row,\n dataValue: layout._table.getCellOriginValue(col, row) || '',\n value: layout._table.getCellValue(col, row) || '',\n rect: layout._table.getCellRangeRelativeRect(layout._table.getCellRange(col, row)),\n table: layout._table\n };\n return chartSpec(arg);\n }\n return chartSpec;\n}\nexport function isShareChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const chartSpec = indicatorObj?.chartSpec;\n\n if (typeof chartSpec === 'function') {\n return false;\n }\n return true;\n}\nexport function isNoChartDataRenderNothing(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const noDataRenderNothing = indicatorObj?.noDataRenderNothing;\n\n return noDataRenderNothing;\n}\n/** 检查是否有直角坐标系的图表 */\nexport function checkHasCartesianChart(indicatorsDefine: (IIndicator | IChartIndicator | string)[]) {\n let isHasCartesianChart = false;\n for (let i = 0; i < indicatorsDefine.length; i++) {\n //columnObjects数量和指标数量一样 并不是每个列都有 所有会快一些\n const columnObj = indicatorsDefine[i] as IChartIndicator;\n if (columnObj.chartSpec) {\n if (\n columnObj.chartSpec.type !== 'wordCloud' &&\n columnObj.chartSpec.type !== 'radar' &&\n columnObj.chartSpec.type !== 'gauge' &&\n columnObj.chartSpec.type !== 'pie' &&\n columnObj.chartSpec.type !== 'funnel' &&\n columnObj.chartSpec.type !== 'rose' &&\n columnObj.chartSpec.type !== 'sunburst' &&\n columnObj.chartSpec.type !== 'treemap' &&\n columnObj.chartSpec.type !== 'sankey' &&\n columnObj.chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n break;\n }\n }\n }\n return isHasCartesianChart;\n}\n\n/** 检查是否有直角坐标系的图表 */\nexport function isCartesianChart(col: number, row: number, layout: PivotHeaderLayoutMap) {\n let isHasCartesianChart = true;\n const chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (\n chartSpec.type === 'pie' ||\n chartSpec.type === 'radar' ||\n chartSpec.type === 'gauge' ||\n chartSpec.type === 'wordCloud' ||\n chartSpec.type === 'funnel' ||\n chartSpec.type === 'rose' ||\n chartSpec.type === 'sunburst' ||\n chartSpec.type === 'treemap' ||\n chartSpec.type === 'sankey' ||\n chartSpec.type === 'circlePacking'\n ) {\n isHasCartesianChart = false;\n }\n } else {\n isHasCartesianChart = false;\n }\n return isHasCartesianChart;\n}\n\n/** 检查是否有直角坐标系的图表 整行或者整列去检查 */\nexport function isHasCartesianChartInline(\n col: number,\n row: number,\n checkDirection: 'col' | 'row',\n layout: PivotHeaderLayoutMap\n) {\n let isHasCartesianChart = false;\n if ((layout.indicatorsAsCol && checkDirection === 'row') || (!layout.indicatorsAsCol && checkDirection === 'col')) {\n for (let i = 0; i < layout.indicatorsDefine.length; i++) {\n //columnObjects数量和指标数量一样 并不是每个列都有 所有会快一些\n const columnObj = layout.indicatorsDefine[i] as IChartIndicator;\n if (columnObj.chartSpec) {\n if (\n columnObj.chartSpec.type !== 'pie' &&\n columnObj.chartSpec.type !== 'wordCloud' &&\n columnObj.chartSpec.type !== 'radar' &&\n columnObj.chartSpec.type !== 'gauge' &&\n columnObj.chartSpec.type !== 'funnel' &&\n columnObj.chartSpec.type !== 'rose' &&\n columnObj.chartSpec.type !== 'sunburst' &&\n columnObj.chartSpec.type !== 'treemap' &&\n columnObj.chartSpec.type !== 'sankey' &&\n columnObj.chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n break;\n }\n }\n }\n } else {\n const chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (\n chartSpec.type !== 'pie' &&\n chartSpec.type !== 'radar' &&\n chartSpec.type !== 'gauge' &&\n chartSpec.type !== 'wordCloud' &&\n chartSpec.type !== 'funnel' &&\n chartSpec.type !== 'rose' &&\n chartSpec.type !== 'sunburst' &&\n chartSpec.type !== 'treemap' &&\n chartSpec.type !== 'sankey' &&\n chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n }\n } else {\n isHasCartesianChart = false;\n }\n }\n return isHasCartesianChart;\n}\n\nexport function getChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n let chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (layout._table.isPivotChart()) {\n chartSpec = cloneDeepSpec(chartSpec);\n chartSpec.sortDataByAxis = true;\n if (isArray(chartSpec.series)) {\n chartSpec.series.forEach((serie: any) => {\n serie.sortDataByAxis = true;\n });\n }\n if (\n chartSpec.type !== 'pie' &&\n chartSpec.type !== 'radar' &&\n chartSpec.type !== 'gauge' &&\n chartSpec.type !== 'wordCloud' &&\n chartSpec.type !== 'funnel' &&\n chartSpec.type !== 'rose' &&\n chartSpec.type !== 'sunburst' &&\n chartSpec.type !== 'treemap' &&\n chartSpec.type !== 'sankey' &&\n chartSpec.type !== 'circlePacking'\n ) {\n chartSpec.axes = layout.getChartAxes(col, row);\n }\n chartSpec.padding = 0;\n chartSpec.dataZoom = []; // Do not support datazoom temply\n return chartSpec;\n }\n return chartSpec;\n }\n return null;\n}\n\nexport function getChartAxes(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const axes: any[] = [];\n if (layout.indicatorsAsCol) {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n // const colIndex = layout.getRecordIndexByCol(col);\n const colPath = layout.getColKeysPath(col, row);\n indicatorKeys.forEach((key, index) => {\n const { range, targetTicks, targetRange, axisOption, chartType } = getAxisRangeAndTicks(\n col,\n row,\n index,\n index === 0 ? 'bottom' : 'top',\n index === 0 ? 'top' : 'bottom',\n indicatorKeys,\n colPath,\n layout\n );\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n } else if (chartType === 'boxPlot') {\n range.max += (range.max - range.min) / 20;\n }\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n } else if (chartType === 'boxPlot') {\n range.min -= (range.max - range.min) / 20;\n }\n\n if (hasSameAxis(axisOption, axes)) {\n return;\n }\n\n axes.push(\n merge(\n {\n range,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type || 'linear',\n orient: index === 0 ? 'bottom' : 'top',\n // visible: true,\n label: { visible: false, flush: true },\n // label: { flush: true },\n title: { visible: false },\n domainLine: { visible: false },\n seriesIndex: axisOption?.seriesId ? undefined : index,\n // height: -1,\n tick: {\n tickMode: getTickModeFunction(targetTicks, targetRange, range, index)\n },\n sync: { axisId: NO_AXISID_FRO_VTABLE } // hack for fs\n }\n )\n );\n });\n\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row);\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[rowDimensionKey] ||\n layout.dataset.collectedValues[rowDimensionKey] ||\n ([] as string[]);\n const rowPath = layout.getRowKeysPath(col, row);\n const domain = (data as any)[rowPath ?? ''] as Set<string>;\n const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'left', layout);\n axes.push(\n // 左侧维度轴\n merge(\n {\n domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),\n range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type ?? 'band',\n orient: 'left',\n label: { visible: false },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false }\n }\n )\n );\n } else {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const rowPath = layout.getRowKeysPath(col, row);\n indicatorKeys.forEach((key, index) => {\n const { range, targetTicks, targetRange, axisOption } = getAxisRangeAndTicks(\n col,\n row,\n index,\n index === 0 ? 'left' : 'right',\n index === 0 ? 'right' : 'left',\n indicatorKeys,\n rowPath,\n layout\n );\n const { chartType } = getAxisOption(col, row, index === 0 ? 'left' : 'right', layout);\n\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n } else if (chartType === 'boxPlot') {\n range.max += (range.max - range.min) / 20;\n }\n\n if (isNumber(axisOption?.min)) {\n (range as any).min = axisOption.min;\n } else if (chartType === 'boxPlot') {\n range.min -= (range.max - range.min) / 20;\n }\n\n if (hasSameAxis(axisOption, axes)) {\n return;\n }\n\n let domain: Array<string> = [];\n if (chartType === 'heatmap') {\n //为heatmap时 需要获取维度轴的domain 因为有可能都是离散轴。这里的处理对应get-axis-config.ts中的getAxisConfigInPivotChart方法处理\n const rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row, 'yField');\n const data = layout.dataset.collectedValues[rowDimensionKey] ?? ([] as string[]);\n\n const rowPath = layout.getRowKeysPath(col, row);\n domain = ((data as any)?.[rowPath ?? ''] as Array<string>) ?? [];\n }\n axes.push(\n merge(\n {\n range,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } },\n domain: axisOption?.type === 'linear' ? undefined : Array.from(domain)\n },\n axisOption,\n {\n type: axisOption?.type || 'linear',\n orient: index === 0 ? 'left' : 'right',\n // visible: true,\n label: { visible: false, flush: true },\n // label: { flush: true },\n title: { visible: false },\n domainLine: { visible: false },\n seriesIndex: axisOption?.seriesId ? undefined : index,\n // width: -1,\n // grid: index === 0 ? undefined : { visible: false }\n tick: {\n tickMode: getTickModeFunction(targetTicks, targetRange, range, index),\n visible: false // 轴刻度不显示\n },\n sync: { axisId: NO_AXISID_FRO_VTABLE } // hack for fs\n }\n )\n );\n });\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount);\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[columnDimensionKey] ||\n layout.dataset.collectedValues[columnDimensionKey] ||\n ([] as string[]);\n const colPath = layout.getColKeysPath(col, row);\n const domain: string[] | Set<string> = ((data as any)?.[colPath ?? ''] as Set<string>) ?? [];\n\n const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'bottom', layout);\n axes.push(\n // 底部维度轴\n merge(\n {\n domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),\n range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type ?? 'band',\n orient: 'bottom',\n visible: true,\n label: { visible: false },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false }\n }\n )\n );\n }\n return axes;\n}\n/**\n * 获取单元格对应spec的dataId。\n * 如果是spec外层的dataId,则是string,否则通过series获取到的是Record<string, string> => <dataId, series-chart的指标key用于过滤数据>\n * @param col\n * @param row\n * @param layout\n * @returns\n */\nexport function getChartDataId(\n col: number,\n row: number,\n layout: PivotHeaderLayoutMap | SimpleHeaderLayoutMap\n): string | Record<string, string> {\n const chartSpec = layout.getRawChartSpec(col, row);\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n if (chartSpec?.series) {\n const dataIdfield: Record<string, string> = {};\n\n if (chartSpec.data?.id) {\n dataIdfield[chartSpec.data.id] = undefined;\n }\n chartSpec?.series.forEach((seriesSpec: any) => {\n if (!seriesSpec.data?.fromDataId) {\n if (!seriesSpec.data?.transforms) {\n const seriesField = seriesSpec.direction === 'horizontal' ? seriesSpec.xField : seriesSpec.yField;\n dataIdfield[seriesSpec.data?.id ?? chartSpec.data?.id ?? 'data'] = seriesSpec.data?.id\n ? seriesField\n : undefined;\n } else {\n dataIdfield[seriesSpec.data?.id ?? chartSpec.data?.id ?? 'data'] = undefined;\n }\n }\n });\n return dataIdfield;\n }\n return chartSpec.data.id;\n}\n\n/** 检查是否有直角坐标系的图表 */\nexport function checkHasChart(layout: PivotHeaderLayoutMap | SimpleHeaderLayoutMap) {\n let isHasChart = false;\n for (let i = 0; i < layout.columnObjects.length; i++) {\n const columnObj = layout.columnObjects[i];\n if (columnObj.chartSpec) {\n isHasChart = true;\n break;\n }\n }\n return isHasChart;\n}\n\nfunction hasSameAxis(axisOption: any, axes: any[]) {\n if (axisOption && isArray(axisOption.seriesId) && axisOption.seriesId.length > 0) {\n // find same seriesId axes\n const sameSeriesIdAxes = (axes as any[]).filter(axis => {\n // same seriesId\n if (\n axis.orient === axisOption.orient &&\n axis.seriesId &&\n axis.seriesId.length === axisOption.seriesId.length &&\n axis.seriesId.every((id: string, index: number) => id === axisOption.seriesId[index])\n ) {\n return true;\n }\n return false;\n });\n\n if (sameSeriesIdAxes.length > 0) {\n // has same seriesId axes\n return true;\n }\n }\n return false;\n}\n"]}
1
+ {"version":3,"sources":["../src/layout/chart-helper/get-chart-spec.ts"],"names":[],"mappings":";;;AAAA,6CAAgF;AAGhF,uDAAsF;AAGtF,iEAA2D;AAG3D,mFAAmF;AAEnF,6CAA+E;AAE/E,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAEpD,SAAgB,eAAe,CAAC,GAAW,EAAE,GAAW,EAAE,MAA4B;;IACpF,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,YAAY,CAAC;IACjB,IAAI,MAAM,CAAC,eAAe,EAAE;QAC1B,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,0CAAE,YAAY,CAAC;QAC9F,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;KAChG;SAAM;QACL,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,0CAAE,YAAY,CAAC;QAC9F,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;KAChG;IACD,MAAM,SAAS,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAC;IAE1C,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QAEnC,MAAM,GAAG,GAAG;YACV,GAAG;YACH,GAAG;YACH,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;YAC3D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE;YACjD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClF,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;QACF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;KACvB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAzBD,0CAyBC;AACD,SAAgB,gBAAgB,CAAC,GAAW,EAAE,GAAW,EAAE,MAA4B;;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,YAAY,CAAC;IACjB,IAAI,MAAM,CAAC,eAAe,EAAE;QAC1B,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,0CAAE,YAAY,CAAC;QAC9F,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;KAChG;SAAM;QACL,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,0CAAE,YAAY,CAAC;QAC9F,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;KAChG;IACD,MAAM,SAAS,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAC;IAE1C,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;QACnC,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAhBD,4CAgBC;AACD,SAAgB,0BAA0B,CAAC,GAAW,EAAE,GAAW,EAAE,MAA4B;;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,IAAI,YAAY,CAAC;IACjB,IAAI,MAAM,CAAC,eAAe,EAAE;QAC1B,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,0CAAE,YAAY,CAAC;QAC9F,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;KAChG;SAAM;QACL,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,0CAAE,YAAY,CAAC;QAC9F,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;KAChG;IACD,MAAM,mBAAmB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,mBAAmB,CAAC;IAE9D,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAbD,gEAaC;AAED,SAAgB,sBAAsB,CAAC,gBAA2D;IAChG,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAEhD,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAoB,CAAC;QACzD,IAAI,SAAS,CAAC,SAAS,EAAE;YACvB,IACE,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,WAAW;gBACxC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO;gBACpC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO;gBACpC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK;gBAClC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ;gBACrC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;gBACnC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU;gBACvC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;gBACtC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ;gBACrC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,eAAe,EAC5C;gBACA,mBAAmB,GAAG,IAAI,CAAC;gBAC3B,MAAM;aACP;SACF;KACF;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAxBD,wDAwBC;AAGD,SAAgB,gBAAgB,CAAC,GAAW,EAAE,GAAW,EAAE,MAA4B;IACrF,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,IAAI,SAAS,EAAE;QACb,IACE,SAAS,CAAC,IAAI,KAAK,KAAK;YACxB,SAAS,CAAC,IAAI,KAAK,OAAO;YAC1B,SAAS,CAAC,IAAI,KAAK,OAAO;YAC1B,SAAS,CAAC,IAAI,KAAK,WAAW;YAC9B,SAAS,CAAC,IAAI,KAAK,QAAQ;YAC3B,SAAS,CAAC,IAAI,KAAK,MAAM;YACzB,SAAS,CAAC,IAAI,KAAK,UAAU;YAC7B,SAAS,CAAC,IAAI,KAAK,SAAS;YAC5B,SAAS,CAAC,IAAI,KAAK,QAAQ;YAC3B,SAAS,CAAC,IAAI,KAAK,eAAe,EAClC;YACA,mBAAmB,GAAG,KAAK,CAAC;SAC7B;KACF;SAAM;QACL,mBAAmB,GAAG,KAAK,CAAC;KAC7B;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAtBD,4CAsBC;AAGD,SAAgB,yBAAyB,CACvC,GAAW,EACX,GAAW,EACX,cAA6B,EAC7B,MAA4B;IAE5B,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,cAAc,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,IAAI,cAAc,KAAK,KAAK,CAAC,EAAE;QACjH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEvD,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAoB,CAAC;YAChE,IAAI,SAAS,CAAC,SAAS,EAAE;gBACvB,IACE,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK;oBAClC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,WAAW;oBACxC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO;oBACpC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO;oBACpC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ;oBACrC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;oBACnC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU;oBACvC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;oBACtC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ;oBACrC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,eAAe,EAC5C;oBACA,mBAAmB,GAAG,IAAI,CAAC;oBAC3B,MAAM;iBACP;aACF;SACF;KACF;SAAM;QACL,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE;YACb,IACE,SAAS,CAAC,IAAI,KAAK,KAAK;gBACxB,SAAS,CAAC,IAAI,KAAK,OAAO;gBAC1B,SAAS,CAAC,IAAI,KAAK,OAAO;gBAC1B,SAAS,CAAC,IAAI,KAAK,WAAW;gBAC9B,SAAS,CAAC,IAAI,KAAK,QAAQ;gBAC3B,SAAS,CAAC,IAAI,KAAK,MAAM;gBACzB,SAAS,CAAC,IAAI,KAAK,UAAU;gBAC7B,SAAS,CAAC,IAAI,KAAK,SAAS;gBAC5B,SAAS,CAAC,IAAI,KAAK,QAAQ;gBAC3B,SAAS,CAAC,IAAI,KAAK,eAAe,EAClC;gBACA,mBAAmB,GAAG,IAAI,CAAC;aAC5B;SACF;aAAM;YACL,mBAAmB,GAAG,KAAK,CAAC;SAC7B;KACF;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAnDD,8DAmDC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,GAAW,EAAE,MAA4B;IACjF,IAAI,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,SAAS,EAAE;QACb,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;YAChC,SAAS,GAAG,IAAA,gCAAa,EAAC,SAAS,CAAC,CAAC;YACrC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;YAChC,IAAI,IAAA,gBAAO,EAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC7B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;oBACtC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;YACD,IACE,SAAS,CAAC,IAAI,KAAK,KAAK;gBACxB,SAAS,CAAC,IAAI,KAAK,OAAO;gBAC1B,SAAS,CAAC,IAAI,KAAK,OAAO;gBAC1B,SAAS,CAAC,IAAI,KAAK,WAAW;gBAC9B,SAAS,CAAC,IAAI,KAAK,QAAQ;gBAC3B,SAAS,CAAC,IAAI,KAAK,MAAM;gBACzB,SAAS,CAAC,IAAI,KAAK,UAAU;gBAC7B,SAAS,CAAC,IAAI,KAAK,SAAS;gBAC5B,SAAS,CAAC,IAAI,KAAK,QAAQ;gBAC3B,SAAS,CAAC,IAAI,KAAK,eAAe,EAClC;gBACA,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aAChD;YACD,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;YACtB,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAhCD,oCAgCC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,GAAW,EAAE,MAA4B;;IACjF,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,IAAI,MAAM,CAAC,eAAe,EAAE;QAE1B,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAElE,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,sCAAoB,EACrF,GAAG,EACH,GAAG,EACH,KAAK,EACL,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAC9B,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAC9B,aAAa,EACb,OAAO,EACP,MAAM,CACP,CAAC;YACF,IAAI,IAAA,iBAAQ,EAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,EAAE;gBAC7B,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;aAC5B;iBAAM,IAAI,SAAS,KAAK,SAAS,EAAE;gBAClC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC3C;YACD,IAAI,IAAA,iBAAQ,EAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,EAAE;gBAC7B,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;aAC5B;iBAAM,IAAI,SAAS,KAAK,SAAS,EAAE;gBAClC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC3C;YAED,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;gBACjC,OAAO;aACR;YAED,IAAI,CAAC,IAAI,CACP,IAAA,cAAK,EACH;gBACE,KAAK;gBACL,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,4CAAsB,EAAE,EAAE;aACvD,EACD,UAAU,EACV;gBACE,IAAI,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,KAAI,QAAQ;gBAClC,MAAM,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;gBAEtC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;gBAEtC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBACzB,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC9B,WAAW,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;gBAErD,IAAI,EAAE;oBACJ,QAAQ,EAAE,IAAA,gCAAmB,EAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC;iBACtE;gBACD,IAAI,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE;aACvC,CACF,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,eAAe,GAAG,MAAM,CAAC,0BAA0B,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACzF,IAAI,IAAA,gBAAO,EAAC,eAAe,CAAC,EAAE;YAC5B,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;SACtC;QACD,MAAM,IAAI,GACR,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,eAAe,CAAC;YACpD,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC;YAC9C,EAAe,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,MAAM,GAAI,IAAY,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAgB,CAAC;QAC3D,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAA,+BAAa,EAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAErF,IACE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI;YAChB,MAAM;YACN,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACtB,IAAA,gBAAO,EAAE,MAAc,CAAC,GAAG,CAAC;YAC5B,IAAA,gBAAO,EAAE,MAAc,CAAC,GAAG,CAAC;YAC5B,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,KAAK,MAAc,CAAC,GAAG,KAAM,MAAc,CAAC,GAAG,CAAC,EACjE;YACC,MAAc,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,MAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtD,MAAc,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,MAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACxD;QACD,IAAI,CAAC,IAAI,CAEP,IAAA,cAAK,EACH;YACE,MAAM,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;YACtG,KAAK,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACnF,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,4CAAsB,EAAE,EAAE;SACvD,EACD,UAAU,EACV;YACE,IAAI,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,mCAAI,MAAM;YAChC,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACzB,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YAC9B,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACxB,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3B,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAC1B,CACF,CACF,CAAC;KACH;SAAM;QAEL,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;;YACnC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAoB,EAC1E,GAAG,EACH,GAAG,EACH,KAAK,EACL,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC9B,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAC9B,aAAa,EACb,OAAO,EACP,MAAM,CACP,CAAC;YACF,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,+BAAa,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEtF,IAAI,IAAA,iBAAQ,EAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,EAAE;gBAC7B,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;aAC5B;iBAAM,IAAI,SAAS,KAAK,SAAS,EAAE;gBAClC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC3C;YAED,IAAI,IAAA,iBAAQ,EAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,EAAE;gBAC5B,KAAa,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;aACrC;iBAAM,IAAI,SAAS,KAAK,SAAS,EAAE;gBAClC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAC3C;YAED,IAAI,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;gBACjC,OAAO;aACR;YAED,IAAI,MAAM,GAAkB,EAAE,CAAC;YAC/B,IAAI,SAAS,KAAK,SAAS,EAAE;gBAE3B,MAAM,eAAe,GAAG,MAAM,CAAC,0BAA0B,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACrG,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,mCAAK,EAAe,CAAC;gBAEjF,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAChD,MAAM,GAAG,MAAE,IAAY,aAAZ,IAAI,uBAAJ,IAAI,CAAW,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAmB,mCAAI,EAAE,CAAC;aAClE;YACD,IAAI,CAAC,IAAI,CACP,IAAA,cAAK,EACH;gBACE,KAAK;gBACL,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,4CAAsB,EAAE,EAAE;gBACtD,MAAM,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;aACvE,EACD,UAAU,EACV;gBACE,IAAI,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,KAAI,QAAQ;gBAClC,MAAM,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;gBAEtC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;gBAEtC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBACzB,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC9B,WAAW,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;gBAGrD,IAAI,EAAE;oBACJ,QAAQ,EAAE,IAAA,gCAAmB,EAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC;oBACrE,OAAO,EAAE,KAAK;iBACf;gBACD,IAAI,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE;aACvC,CACF,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,kBAAkB,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC/F,IAAI,IAAA,gBAAO,EAAC,kBAAkB,CAAC,EAAE;YAC/B,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;SAC5C;QACD,MAAM,IAAI,GACR,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;YACvD,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC;YACjD,EAAe,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,MAAM,GAA2B,MAAE,IAAY,aAAZ,IAAI,uBAAJ,IAAI,CAAW,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAiB,mCAAI,EAAE,CAAC;QAE7F,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAA,+BAAa,EAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvF,IACE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI;YAChB,MAAM;YACN,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACtB,IAAA,gBAAO,EAAE,MAAc,CAAC,GAAG,CAAC;YAC5B,IAAA,gBAAO,EAAE,MAAc,CAAC,GAAG,CAAC;YAC5B,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,KAAK,MAAc,CAAC,GAAG,KAAM,MAAc,CAAC,GAAG,CAAC,EACjE;YACC,MAAc,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,MAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtD,MAAc,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,MAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACxD;QACD,IAAI,CAAC,IAAI,CAEP,IAAA,cAAK,EACH;YACE,MAAM,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;YACtG,KAAK,EAAE,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACnF,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,4CAAsB,EAAE,EAAE;SACvD,EACD,UAAU,EACV;YACE,IAAI,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,mCAAI,MAAM;YAChC,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACzB,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YAC9B,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACxB,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3B,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAC1B,CACF,CACF,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AA3ND,oCA2NC;AASD,SAAgB,cAAc,CAC5B,GAAW,EACX,GAAW,EACX,MAAoD;;IAEpD,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEnD,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,EAAE;QACrB,MAAM,WAAW,GAA2B,EAAE,CAAC;QAE/C,IAAI,MAAA,SAAS,CAAC,IAAI,0CAAE,EAAE,EAAE;YACtB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;SAC5C;QACD,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAC,OAAO,CAAC,CAAC,UAAe,EAAE,EAAE;;YAC5C,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,UAAU,CAAA,EAAE;gBAChC,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,UAAU,CAAA,EAAE;oBAChC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;oBAClG,WAAW,CAAC,MAAA,MAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,EAAE,mCAAI,MAAA,SAAS,CAAC,IAAI,0CAAE,EAAE,mCAAI,MAAM,CAAC,GAAG,CAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,EAAE;wBACpF,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,SAAS,CAAC;iBACf;qBAAM;oBACL,WAAW,CAAC,MAAA,MAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,EAAE,mCAAI,MAAA,SAAS,CAAC,IAAI,0CAAE,EAAE,mCAAI,MAAM,CAAC,GAAG,SAAS,CAAC;iBAC9E;aACF;QACH,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;KACpB;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3B,CAAC;AA5BD,wCA4BC;AAGD,SAAgB,aAAa,CAAC,MAAoD;IAChF,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,SAAS,EAAE;YACvB,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM;SACP;KACF;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAVD,sCAUC;AAED,SAAS,WAAW,CAAC,UAAe,EAAE,IAAW;IAC/C,IAAI,UAAU,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAEhF,MAAM,gBAAgB,GAAI,IAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAErD,IACE,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;gBACjC,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,QAAQ,CAAC,MAAM;gBACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EACrF;gBACA,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAE/B,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC","file":"get-chart-spec.js","sourcesContent":["import { cloneDeep, isArray, isNumber, isValid, merge } from '@visactor/vutils';\nimport type { PivotHeaderLayoutMap } from '../pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../simple-header-layout';\nimport { getAxisOption, getAxisRange, getAxisRangeAndTicks } from './get-axis-config';\nimport { getNewRangeToAlign } from './zero-align';\nimport type { IChartIndicator, IIndicator } from '../../ts-types';\nimport { cloneDeepSpec } from '@visactor/vutils-extension';\nimport { Factory } from '../../core/factory';\nimport type { GetAxisDomainRangeAndLabels } from './get-axis-domain';\nimport { DEFAULT_TEXT_FONT_SIZE } from '../../components/axis/get-axis-attributes';\nimport { convertDomainToTickData } from './../../vrender';\nimport { getTickModeFunction, getZeroAlignTickAlignTicks } from './tick-align';\n\nconst NO_AXISID_FRO_VTABLE = 'NO_AXISID_FRO_VTABLE';\n\nexport function getRawChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const chartSpec = indicatorObj?.chartSpec;\n\n if (typeof chartSpec === 'function') {\n // 动态组织spec\n const arg = {\n col,\n row,\n dataValue: layout._table.getCellOriginValue(col, row) || '',\n value: layout._table.getCellValue(col, row) || '',\n rect: layout._table.getCellRangeRelativeRect(layout._table.getCellRange(col, row)),\n table: layout._table\n };\n return chartSpec(arg);\n }\n return chartSpec;\n}\nexport function isShareChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const chartSpec = indicatorObj?.chartSpec;\n\n if (typeof chartSpec === 'function') {\n return false;\n }\n return true;\n}\nexport function isNoChartDataRenderNothing(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const paths = layout.getCellHeaderPaths(col, row);\n let indicatorObj;\n if (layout.indicatorsAsCol) {\n const indicatorKey = paths.colHeaderPaths.find(colPath => colPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n } else {\n const indicatorKey = paths.rowHeaderPaths.find(rowPath => rowPath.indicatorKey)?.indicatorKey;\n indicatorObj = layout.columnObjects.find(indicator => indicator.indicatorKey === indicatorKey);\n }\n const noDataRenderNothing = indicatorObj?.noDataRenderNothing;\n\n return noDataRenderNothing;\n}\n/** 检查是否有直角坐标系的图表 */\nexport function checkHasCartesianChart(indicatorsDefine: (IIndicator | IChartIndicator | string)[]) {\n let isHasCartesianChart = false;\n for (let i = 0; i < indicatorsDefine.length; i++) {\n //columnObjects数量和指标数量一样 并不是每个列都有 所有会快一些\n const columnObj = indicatorsDefine[i] as IChartIndicator;\n if (columnObj.chartSpec) {\n if (\n columnObj.chartSpec.type !== 'wordCloud' &&\n columnObj.chartSpec.type !== 'radar' &&\n columnObj.chartSpec.type !== 'gauge' &&\n columnObj.chartSpec.type !== 'pie' &&\n columnObj.chartSpec.type !== 'funnel' &&\n columnObj.chartSpec.type !== 'rose' &&\n columnObj.chartSpec.type !== 'sunburst' &&\n columnObj.chartSpec.type !== 'treemap' &&\n columnObj.chartSpec.type !== 'sankey' &&\n columnObj.chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n break;\n }\n }\n }\n return isHasCartesianChart;\n}\n\n/** 检查是否有直角坐标系的图表 */\nexport function isCartesianChart(col: number, row: number, layout: PivotHeaderLayoutMap) {\n let isHasCartesianChart = true;\n const chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (\n chartSpec.type === 'pie' ||\n chartSpec.type === 'radar' ||\n chartSpec.type === 'gauge' ||\n chartSpec.type === 'wordCloud' ||\n chartSpec.type === 'funnel' ||\n chartSpec.type === 'rose' ||\n chartSpec.type === 'sunburst' ||\n chartSpec.type === 'treemap' ||\n chartSpec.type === 'sankey' ||\n chartSpec.type === 'circlePacking'\n ) {\n isHasCartesianChart = false;\n }\n } else {\n isHasCartesianChart = false;\n }\n return isHasCartesianChart;\n}\n\n/** 检查是否有直角坐标系的图表 整行或者整列去检查 */\nexport function isHasCartesianChartInline(\n col: number,\n row: number,\n checkDirection: 'col' | 'row',\n layout: PivotHeaderLayoutMap\n) {\n let isHasCartesianChart = false;\n if ((layout.indicatorsAsCol && checkDirection === 'row') || (!layout.indicatorsAsCol && checkDirection === 'col')) {\n for (let i = 0; i < layout.indicatorsDefine.length; i++) {\n //columnObjects数量和指标数量一样 并不是每个列都有 所有会快一些\n const columnObj = layout.indicatorsDefine[i] as IChartIndicator;\n if (columnObj.chartSpec) {\n if (\n columnObj.chartSpec.type !== 'pie' &&\n columnObj.chartSpec.type !== 'wordCloud' &&\n columnObj.chartSpec.type !== 'radar' &&\n columnObj.chartSpec.type !== 'gauge' &&\n columnObj.chartSpec.type !== 'funnel' &&\n columnObj.chartSpec.type !== 'rose' &&\n columnObj.chartSpec.type !== 'sunburst' &&\n columnObj.chartSpec.type !== 'treemap' &&\n columnObj.chartSpec.type !== 'sankey' &&\n columnObj.chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n break;\n }\n }\n }\n } else {\n const chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (\n chartSpec.type !== 'pie' &&\n chartSpec.type !== 'radar' &&\n chartSpec.type !== 'gauge' &&\n chartSpec.type !== 'wordCloud' &&\n chartSpec.type !== 'funnel' &&\n chartSpec.type !== 'rose' &&\n chartSpec.type !== 'sunburst' &&\n chartSpec.type !== 'treemap' &&\n chartSpec.type !== 'sankey' &&\n chartSpec.type !== 'circlePacking'\n ) {\n isHasCartesianChart = true;\n }\n } else {\n isHasCartesianChart = false;\n }\n }\n return isHasCartesianChart;\n}\n\nexport function getChartSpec(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n let chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n if (layout._table.isPivotChart()) {\n chartSpec = cloneDeepSpec(chartSpec);\n chartSpec.sortDataByAxis = true;\n if (isArray(chartSpec.series)) {\n chartSpec.series.forEach((serie: any) => {\n serie.sortDataByAxis = true;\n });\n }\n if (\n chartSpec.type !== 'pie' &&\n chartSpec.type !== 'radar' &&\n chartSpec.type !== 'gauge' &&\n chartSpec.type !== 'wordCloud' &&\n chartSpec.type !== 'funnel' &&\n chartSpec.type !== 'rose' &&\n chartSpec.type !== 'sunburst' &&\n chartSpec.type !== 'treemap' &&\n chartSpec.type !== 'sankey' &&\n chartSpec.type !== 'circlePacking'\n ) {\n chartSpec.axes = layout.getChartAxes(col, row);\n }\n chartSpec.padding = 0;\n chartSpec.dataZoom = []; // Do not support datazoom temply\n return chartSpec;\n }\n return chartSpec;\n }\n return null;\n}\n\nexport function getChartAxes(col: number, row: number, layout: PivotHeaderLayoutMap): any {\n const axes: any[] = [];\n if (layout.indicatorsAsCol) {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n // const colIndex = layout.getRecordIndexByCol(col);\n const colPath = layout.getColKeysPath(col, row);\n indicatorKeys.forEach((key, index) => {\n const { range, targetTicks, targetRange, axisOption, chartType } = getAxisRangeAndTicks(\n col,\n row,\n index,\n index === 0 ? 'bottom' : 'top',\n index === 0 ? 'top' : 'bottom',\n indicatorKeys,\n colPath,\n layout\n );\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n } else if (chartType === 'boxPlot') {\n range.max += (range.max - range.min) / 20;\n }\n if (isNumber(axisOption?.min)) {\n range.min = axisOption.min;\n } else if (chartType === 'boxPlot') {\n range.min -= (range.max - range.min) / 20;\n }\n\n if (hasSameAxis(axisOption, axes)) {\n return;\n }\n\n axes.push(\n merge(\n {\n range,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type || 'linear',\n orient: index === 0 ? 'bottom' : 'top',\n // visible: true,\n label: { visible: false, flush: true },\n // label: { flush: true },\n title: { visible: false },\n domainLine: { visible: false },\n seriesIndex: axisOption?.seriesId ? undefined : index,\n // height: -1,\n tick: {\n tickMode: getTickModeFunction(targetTicks, targetRange, range, index)\n },\n sync: { axisId: NO_AXISID_FRO_VTABLE } // hack for fs\n }\n )\n );\n });\n\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row);\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[rowDimensionKey] ||\n layout.dataset.collectedValues[rowDimensionKey] ||\n ([] as string[]);\n const rowPath = layout.getRowKeysPath(col, row);\n const domain = (data as any)[rowPath ?? ''] as Set<string>;\n const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'left', layout);\n\n if (\n axisOption?.zero &&\n domain &&\n !Array.isArray(domain) &&\n isValid((domain as any).min) &&\n isValid((domain as any).max) &&\n (axisOption?.zero || (domain as any).min === (domain as any).max)\n ) {\n (domain as any).min = Math.min((domain as any).min, 0);\n (domain as any).max = Math.max((domain as any).max, 0);\n }\n axes.push(\n // 左侧维度轴\n merge(\n {\n domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),\n range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type ?? 'band',\n orient: 'left',\n label: { visible: false },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false }\n }\n )\n );\n } else {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const rowPath = layout.getRowKeysPath(col, row);\n indicatorKeys.forEach((key, index) => {\n const { range, targetTicks, targetRange, axisOption } = getAxisRangeAndTicks(\n col,\n row,\n index,\n index === 0 ? 'left' : 'right',\n index === 0 ? 'right' : 'left',\n indicatorKeys,\n rowPath,\n layout\n );\n const { chartType } = getAxisOption(col, row, index === 0 ? 'left' : 'right', layout);\n\n if (isNumber(axisOption?.max)) {\n range.max = axisOption.max;\n } else if (chartType === 'boxPlot') {\n range.max += (range.max - range.min) / 20;\n }\n\n if (isNumber(axisOption?.min)) {\n (range as any).min = axisOption.min;\n } else if (chartType === 'boxPlot') {\n range.min -= (range.max - range.min) / 20;\n }\n\n if (hasSameAxis(axisOption, axes)) {\n return;\n }\n\n let domain: Array<string> = [];\n if (chartType === 'heatmap') {\n //为heatmap时 需要获取维度轴的domain 因为有可能都是离散轴。这里的处理对应get-axis-config.ts中的getAxisConfigInPivotChart方法处理\n const rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row, 'yField');\n const data = layout.dataset.collectedValues[rowDimensionKey] ?? ([] as string[]);\n\n const rowPath = layout.getRowKeysPath(col, row);\n domain = ((data as any)?.[rowPath ?? ''] as Array<string>) ?? [];\n }\n axes.push(\n merge(\n {\n range,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } },\n domain: axisOption?.type === 'linear' ? undefined : Array.from(domain)\n },\n axisOption,\n {\n type: axisOption?.type || 'linear',\n orient: index === 0 ? 'left' : 'right',\n // visible: true,\n label: { visible: false, flush: true },\n // label: { flush: true },\n title: { visible: false },\n domainLine: { visible: false },\n seriesIndex: axisOption?.seriesId ? undefined : index,\n // width: -1,\n // grid: index === 0 ? undefined : { visible: false }\n tick: {\n tickMode: getTickModeFunction(targetTicks, targetRange, range, index),\n visible: false // 轴刻度不显示\n },\n sync: { axisId: NO_AXISID_FRO_VTABLE } // hack for fs\n }\n )\n );\n });\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount);\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[columnDimensionKey] ||\n layout.dataset.collectedValues[columnDimensionKey] ||\n ([] as string[]);\n const colPath = layout.getColKeysPath(col, row);\n const domain: string[] | Set<string> = ((data as any)?.[colPath ?? ''] as Set<string>) ?? [];\n\n const { axisOption, isPercent, chartType } = getAxisOption(col, row, 'bottom', layout);\n if (\n axisOption?.zero &&\n domain &&\n !Array.isArray(domain) &&\n isValid((domain as any).min) &&\n isValid((domain as any).max) &&\n (axisOption?.zero || (domain as any).min === (domain as any).max)\n ) {\n (domain as any).min = Math.min((domain as any).min, 0);\n (domain as any).max = Math.max((domain as any).max, 0);\n }\n axes.push(\n // 底部维度轴\n merge(\n {\n domain: axisOption?.type === 'linear' && !Array.isArray(domain) ? undefined : Array.from(domain ?? []),\n range: axisOption?.type === 'linear' && !Array.isArray(domain) ? domain : undefined,\n label: { style: { fontSize: DEFAULT_TEXT_FONT_SIZE } }\n },\n axisOption,\n {\n type: axisOption?.type ?? 'band',\n orient: 'bottom',\n visible: true,\n label: { visible: false },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false }\n }\n )\n );\n }\n return axes;\n}\n/**\n * 获取单元格对应spec的dataId。\n * 如果是spec外层的dataId,则是string,否则通过series获取到的是Record<string, string> => <dataId, series-chart的指标key用于过滤数据>\n * @param col\n * @param row\n * @param layout\n * @returns\n */\nexport function getChartDataId(\n col: number,\n row: number,\n layout: PivotHeaderLayoutMap | SimpleHeaderLayoutMap\n): string | Record<string, string> {\n const chartSpec = layout.getRawChartSpec(col, row);\n // 如果chartSpec配置了组合图 series 则需要考虑 series中存在的多个指标\n if (chartSpec?.series) {\n const dataIdfield: Record<string, string> = {};\n\n if (chartSpec.data?.id) {\n dataIdfield[chartSpec.data.id] = undefined;\n }\n chartSpec?.series.forEach((seriesSpec: any) => {\n if (!seriesSpec.data?.fromDataId) {\n if (!seriesSpec.data?.transforms) {\n const seriesField = seriesSpec.direction === 'horizontal' ? seriesSpec.xField : seriesSpec.yField;\n dataIdfield[seriesSpec.data?.id ?? chartSpec.data?.id ?? 'data'] = seriesSpec.data?.id\n ? seriesField\n : undefined;\n } else {\n dataIdfield[seriesSpec.data?.id ?? chartSpec.data?.id ?? 'data'] = undefined;\n }\n }\n });\n return dataIdfield;\n }\n return chartSpec.data.id;\n}\n\n/** 检查是否有直角坐标系的图表 */\nexport function checkHasChart(layout: PivotHeaderLayoutMap | SimpleHeaderLayoutMap) {\n let isHasChart = false;\n for (let i = 0; i < layout.columnObjects.length; i++) {\n const columnObj = layout.columnObjects[i];\n if (columnObj.chartSpec) {\n isHasChart = true;\n break;\n }\n }\n return isHasChart;\n}\n\nfunction hasSameAxis(axisOption: any, axes: any[]) {\n if (axisOption && isArray(axisOption.seriesId) && axisOption.seriesId.length > 0) {\n // find same seriesId axes\n const sameSeriesIdAxes = (axes as any[]).filter(axis => {\n // same seriesId\n if (\n axis.orient === axisOption.orient &&\n axis.seriesId &&\n axis.seriesId.length === axisOption.seriesId.length &&\n axis.seriesId.every((id: string, index: number) => id === axisOption.seriesId[index])\n ) {\n return true;\n }\n return false;\n });\n\n if (sameSeriesIdAxes.length > 0) {\n // has same seriesId axes\n return true;\n }\n }\n return false;\n}\n"]}
@@ -66,7 +66,10 @@ export declare class PivotHeaderLayoutMap implements LayoutMapAPI {
66
66
  pagination: IPagination;
67
67
  currentPageStartIndex: number;
68
68
  currentPageEndIndex: number;
69
- hasTwoIndicatorAxes: boolean;
69
+ hasLeftIndicatorAxis: boolean;
70
+ hasRightIndicatorAxis: boolean;
71
+ hasTopIndicatorAxis: boolean;
72
+ hasBottomIndicatorAxis: boolean;
70
73
  _chartItemSpanSize: number;
71
74
  _chartPaddingInner: number;
72
75
  _chartPaddingOuter: number;
@@ -21,10 +21,11 @@ class PivotHeaderLayoutMap {
21
21
  this._showColumnHeader = !0, this._indicatorShowType = "column", this.rowHierarchyTextStartAlignment = !1,
22
22
  this.rowDimensionKeys = [], this.colDimensionKeys = [], this.indicatorKeys = [],
23
23
  this.indicatorDimensionKey = global_1.IndicatorDimensionKeyPlaceholder, this._rowHeaderExtensionTree = {},
24
- this._extensionRowDimensionKeys = [], this.fullRowDimensionKeys = [], this.leftRowSeriesNumberColumnCount = 0,
25
- this.rightRowSeriesNumberColumnCount = 0, this._useGetBodyCache = !1, this._getBodyCache = new Map,
26
- this._useHeaderPathCache = !1, this._colHeaderPathCache = new Map, this._rowHeaderPathCache = new Map,
27
- this.matchDimensionPath = (paths, treeNodes, needLowestLevel, checkAxisNode = !1, pathIndex = 0) => {
24
+ this._extensionRowDimensionKeys = [], this.fullRowDimensionKeys = [], this.hasLeftIndicatorAxis = !1,
25
+ this.hasRightIndicatorAxis = !1, this.hasTopIndicatorAxis = !1, this.hasBottomIndicatorAxis = !1,
26
+ this.leftRowSeriesNumberColumnCount = 0, this.rightRowSeriesNumberColumnCount = 0,
27
+ this._useGetBodyCache = !1, this._getBodyCache = new Map, this._useHeaderPathCache = !1,
28
+ this._colHeaderPathCache = new Map, this._rowHeaderPathCache = new Map, this.matchDimensionPath = (paths, treeNodes, needLowestLevel, checkAxisNode = !1, pathIndex = 0) => {
28
29
  if (pathIndex >= paths.length) return;
29
30
  const currentPath = paths[pathIndex];
30
31
  for (let j = 0; j < treeNodes.length; j++) {
@@ -41,7 +42,7 @@ class PivotHeaderLayoutMap {
41
42
  if (!(null == children ? void 0 : children.length) || hasAxisNode) return dimension;
42
43
  const findLeafNode = nodes => {
43
44
  for (const node of nodes) {
44
- const nodeChildren = node.children, nodeHasAxis = checkAxisNode && nodeChildren.some((row => "axis" === row.dimensionKey));
45
+ const nodeChildren = node.children, nodeHasAxis = checkAxisNode && nodeChildren && nodeChildren.some((row => "axis" === row.dimensionKey));
45
46
  if (!(null == nodeChildren ? void 0 : nodeChildren.length) || nodeHasAxis) return node;
46
47
  const leaf = findLeafNode(nodeChildren);
47
48
  if (leaf) return leaf;
@@ -84,16 +85,47 @@ class PivotHeaderLayoutMap {
84
85
  this.colDimensionKeys = this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr(),
85
86
  this.rowDimensionKeys = this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr(),
86
87
  this.fullRowDimensionKeys = this.fullRowDimensionKeys.concat(this.rowDimensionKeys),
87
- this.resetRowHeaderLevelCount(), this._table.isPivotChart() && (this.hasTwoIndicatorAxes = this.indicatorsDefine.some((indicatorObject => {
88
- var _a, _b;
89
- if (indicatorObject.chartSpec && indicatorObject.chartSpec.series && indicatorObject.chartSpec.series.length > 1) {
90
- const axes = null !== (_b = null !== (_a = indicatorObject.chartSpec.axes) && void 0 !== _a ? _a : this._table.pivotChartAxes) && void 0 !== _b ? _b : [];
91
- if (!axes.length || axes.every((axis => axis.orient !== (this.indicatorsAsCol ? "top" : "right") || !1 !== axis.visible))) return !0;
88
+ this._table.isPivotChart() && (this.hasLeftIndicatorAxis = !1, this.hasRightIndicatorAxis = !1,
89
+ this.hasTopIndicatorAxis = !1, this.hasBottomIndicatorAxis = !1, this.indicatorsDefine.forEach((indicatorObject => {
90
+ var _a, _b, _c, _d;
91
+ if (indicatorObject.hasLeftIndicatorAxis = !1, indicatorObject.hasRightIndicatorAxis = !1,
92
+ indicatorObject.hasTopIndicatorAxis = !1, indicatorObject.hasBottomIndicatorAxis = !1,
93
+ !(null == indicatorObject ? void 0 : indicatorObject.chartSpec)) return;
94
+ const axes = null !== (_b = null !== (_a = indicatorObject.chartSpec.axes) && void 0 !== _a ? _a : this._table.pivotChartAxes) && void 0 !== _b ? _b : [], visibleOrients = new Set;
95
+ (null != axes ? axes : []).forEach((axis => {
96
+ (null == axis ? void 0 : axis.orient) && !1 !== axis.visible && visibleOrients.add(axis.orient);
97
+ }));
98
+ const isMultiSeries = (null === (_d = null === (_c = indicatorObject.chartSpec) || void 0 === _c ? void 0 : _c.series) || void 0 === _d ? void 0 : _d.length) > 1;
99
+ if (this.indicatorsAsCol) {
100
+ let hasTop = visibleOrients.has("top"), hasBottom = visibleOrients.has("bottom");
101
+ if (axes.length || (hasBottom = !0), isMultiSeries) {
102
+ const topHiddenExplicitly = axes.some((axis => "top" === (null == axis ? void 0 : axis.orient) && !1 === axis.visible));
103
+ if (!axes.length || !topHiddenExplicitly) {
104
+ hasTop = !0;
105
+ axes.some((axis => "bottom" === (null == axis ? void 0 : axis.orient) && !1 === axis.visible)) || (hasBottom = !0);
106
+ }
107
+ }
108
+ indicatorObject.hasTopIndicatorAxis = hasTop, indicatorObject.hasBottomIndicatorAxis = hasBottom,
109
+ indicatorObject.hasLeftIndicatorAxis = !1, indicatorObject.hasRightIndicatorAxis = !1;
110
+ } else {
111
+ let hasLeft = visibleOrients.has("left"), hasRight = visibleOrients.has("right");
112
+ if (axes.length || (hasLeft = !0), isMultiSeries) {
113
+ const rightHiddenExplicitly = axes.some((axis => "right" === (null == axis ? void 0 : axis.orient) && !1 === axis.visible));
114
+ if (!axes.length || !rightHiddenExplicitly) {
115
+ hasRight = !0;
116
+ axes.some((axis => "left" === (null == axis ? void 0 : axis.orient) && !1 === axis.visible)) || (hasLeft = !0);
117
+ }
118
+ }
119
+ indicatorObject.hasLeftIndicatorAxis = hasLeft, indicatorObject.hasRightIndicatorAxis = hasRight,
120
+ indicatorObject.hasTopIndicatorAxis = !1, indicatorObject.hasBottomIndicatorAxis = !1;
92
121
  }
93
- return !1;
94
- }))), this.resetColumnHeaderLevelCount(), this._generateColHeaderIds(), this.colIndex = 0,
95
- this._generateRowHeaderIds(), this._rowHeaderCellFullPathIds_FULL = (0, util_1.transpose)(this._rowHeaderCellFullPathIds_FULL),
96
- "tree" === table.options.rowHierarchyType && (null === (_r = this.extensionRows) || void 0 === _r ? void 0 : _r.length) >= 1 && (this.generateExtensionRowTree(),
122
+ this.hasLeftIndicatorAxis || (this.hasLeftIndicatorAxis = !!indicatorObject.hasLeftIndicatorAxis),
123
+ this.hasRightIndicatorAxis || (this.hasRightIndicatorAxis = !!indicatorObject.hasRightIndicatorAxis),
124
+ this.hasTopIndicatorAxis || (this.hasTopIndicatorAxis = !!indicatorObject.hasTopIndicatorAxis),
125
+ this.hasBottomIndicatorAxis || (this.hasBottomIndicatorAxis = !!indicatorObject.hasBottomIndicatorAxis);
126
+ }))), this.resetRowHeaderLevelCount(), this.resetColumnHeaderLevelCount(), this._generateColHeaderIds(),
127
+ this.colIndex = 0, this._generateRowHeaderIds(), this._rowHeaderCellFullPathIds_FULL = (0,
128
+ util_1.transpose)(this._rowHeaderCellFullPathIds_FULL), "tree" === table.options.rowHierarchyType && (null === (_r = this.extensionRows) || void 0 === _r ? void 0 : _r.length) >= 1 && (this.generateExtensionRowTree(),
97
129
  this.extensionRows.forEach((extensionRow => {
98
130
  const rowKeys = [];
99
131
  extensionRow.rows.forEach((row => {
@@ -700,12 +732,12 @@ class PivotHeaderLayoutMap {
700
732
  resetColumnHeaderLevelCount() {
701
733
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
702
734
  if (this.showHeader && this.showColumnHeader) {
703
- if (this._table.isPivotChart() && this.indicatorsAsCol && !(null === (_b = null === (_a = this.dataset) || void 0 === _a ? void 0 : _a.colKeys) || void 0 === _b ? void 0 : _b.length) && 0 === (null === (_d = null === (_c = this.columnDimensionTree) || void 0 === _c ? void 0 : _c.tree) || void 0 === _d ? void 0 : _d.level) && !this.hasTwoIndicatorAxes) return void (this.columnHeaderLevelCount = 0);
735
+ if (this._table.isPivotChart() && this.indicatorsAsCol && !(null === (_b = null === (_a = this.dataset) || void 0 === _a ? void 0 : _a.colKeys) || void 0 === _b ? void 0 : _b.length) && 0 === (null === (_d = null === (_c = this.columnDimensionTree) || void 0 === _c ? void 0 : _c.tree) || void 0 === _d ? void 0 : _d.level) && !this.hasTopIndicatorAxis) return void (this.columnHeaderLevelCount = 0);
704
736
  let count = this._getColumnHeaderTreeExpandedMaxLevelCount();
705
737
  return this.indicatorsAsCol && this.hideIndicatorName && this.colDimensionKeys[this.colDimensionKeys.length - 1] === this.indicatorDimensionKey && count--,
706
738
  0 === count && this.dataset && !(null === (_e = this.dataset.customColTree) || void 0 === _e ? void 0 : _e.length) ? "row" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || !this.cornerSetting.forceShowHeader ? this._table.isPivotChart() || 0 !== (null !== (_g = null === (_f = this.dataset.records) || void 0 === _f ? void 0 : _f.length) && void 0 !== _g ? _g : 0) || "column" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || (count = null !== (_h = this.columnsDefine.length) && void 0 !== _h ? _h : 0) : count = 1 : !this.dataset || this._table.isPivotChart() || 0 !== (null !== (_k = null === (_j = this.dataset.records) || void 0 === _j ? void 0 : _j.length) && void 0 !== _k ? _k : 0) || this.dataset.customColTree || "column" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || (count = null !== (_l = this.columnsDefine.length) && void 0 !== _l ? _l : 0,
707
739
  !this.hideIndicatorName && this.indicatorsAsCol && count++), this.columnHeaderTitle && (count += 1),
708
- this._table.isPivotChart() && this.indicatorsAsCol && !this.hasTwoIndicatorAxes && (0,
740
+ this._table.isPivotChart() && this.indicatorsAsCol && !this.hasTopIndicatorAxis && (0,
709
741
  get_chart_spec_1.checkHasCartesianChart)(this.indicatorsDefine) && (count -= 1),
710
742
  void (this.columnHeaderLevelCount = count);
711
743
  }
@@ -721,7 +753,8 @@ class PivotHeaderLayoutMap {
721
753
  const rowLevelCount = this._getRowHeaderTreeExpandedMaxLevelCount();
722
754
  let count = rowLevelCount;
723
755
  return 0 === count && this.dataset && !(null === (_c = this.dataset.customRowTree) || void 0 === _c ? void 0 : _c.length) ? "column" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || !this.cornerSetting.forceShowHeader ? this._table.isPivotChart() || 0 !== (null !== (_e = null === (_d = this.dataset.records) || void 0 === _d ? void 0 : _d.length) && void 0 !== _e ? _e : 0) || "row" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || (count = null !== (_f = this.rowsDefine.length) && void 0 !== _f ? _f : 0) : count = 1 : !this.dataset || this._table.isPivotChart() || 0 !== (null !== (_h = null === (_g = this.dataset.records) || void 0 === _g ? void 0 : _g.length) && void 0 !== _h ? _h : 0) || this.dataset.customRowTree || "row" !== this.cornerSetting.titleOnDimension && "all" !== this.cornerSetting.titleOnDimension || (count = this.rowsDefine.length,
724
- this.hideIndicatorName || this.indicatorsAsCol || count++), !this.indicatorsAsCol && this.hideIndicatorName && this.rowDimensionKeys[this.rowDimensionKeys.length - 1] === this.indicatorDimensionKey && (count = rowLevelCount - 1),
756
+ this.hideIndicatorName || this.indicatorsAsCol || count++), !this.indicatorsAsCol && (this.hideIndicatorName || !this.hasLeftIndicatorAxis && this._table.isPivotChart() && (0,
757
+ get_chart_spec_1.checkHasCartesianChart)(this.indicatorsDefine)) && this.rowDimensionKeys[this.rowDimensionKeys.length - 1] === this.indicatorDimensionKey && (count = rowLevelCount - 1),
725
758
  this.rowHeaderTitle && (count += 1), void (this.rowHeaderLevelCount = count);
726
759
  }
727
760
  this.rowHeaderLevelCount = this.indicatorsAsCol || this.hideIndicatorName ? 0 : 1;
@@ -763,7 +796,7 @@ class PivotHeaderLayoutMap {
763
796
  get rightFrozenColCount() {
764
797
  if (!this._table.isPivotChart()) return this._table.internalProps.rightFrozenColCount ? this.colCount - this.rowHeaderLevelCount >= this._table.internalProps.rightFrozenColCount ? this._table.internalProps.rightFrozenColCount : this.colCount - this.rowHeaderLevelCount : 0;
765
798
  const axisOption = this._table.pivotChartAxes.find((axisOption => "right" === axisOption.orient));
766
- return !1 === (null == axisOption ? void 0 : axisOption.visible) || this.indicatorsAsCol ? 0 : this.hasTwoIndicatorAxes ? 1 : 0;
799
+ return !1 === (null == axisOption ? void 0 : axisOption.visible) || this.indicatorsAsCol ? 0 : this.hasRightIndicatorAxis ? 1 : 0;
767
800
  }
768
801
  get bodyRowCount() {
769
802
  return this.rowCount - this.bottomFrozenRowCount - this.headerLevelCount;
@@ -1020,7 +1053,7 @@ class PivotHeaderLayoutMap {
1020
1053
  if ("axis" !== rowHeader.dimensionKey) {
1021
1054
  const rowHeaderPath = {};
1022
1055
  rowHeaderPath.dimensionKey = rowHeader.dimensionKey, rowHeaderPath.indicatorKey = rowHeader.indicatorKey,
1023
- rowHeaderPath.value = null !== (_c = null !== (_a = rowHeader.value) && void 0 !== _a ? _a : null === (_b = this.getIndicatorInfoByIndicatorKey(rowHeader.indicatorKey)) || void 0 === _b ? void 0 : _b.title) && void 0 !== _c ? _c : "",
1056
+ rowHeaderPath.value = null !== (_a = rowHeader.value) && void 0 !== _a ? _a : rowHeader.indicatorKey ? null !== (_c = null === (_b = this.getIndicatorInfoByIndicatorKey(rowHeader.indicatorKey)) || void 0 === _b ? void 0 : _b.title) && void 0 !== _c ? _c : "" : rowHeader.value,
1024
1057
  rowHeaderPath.virtual = rowHeader.virtual, rowHeaderPath.role = rowHeader.role,
1025
1058
  headerPaths.rowHeaderPaths.push(rowHeaderPath);
1026
1059
  }
@@ -1546,7 +1579,7 @@ class PivotHeaderLayoutMap {
1546
1579
  if (this.isBottomFrozenRow(col, row) && (0, get_chart_spec_1.isHasCartesianChartInline)(col, row, "col", this) || this.isRightFrozenColumn(col, row) && (0,
1547
1580
  get_chart_spec_1.isHasCartesianChartInline)(col, row, "row", this)) return !0;
1548
1581
  if (this.isRowHeader(col, row) && col === this.rowHeaderLevelCount - 1 && (0, get_chart_spec_1.isHasCartesianChartInline)(col, row, "row", this)) return !0;
1549
- if (this.hasTwoIndicatorAxes && this.indicatorsAsCol && row === this.columnHeaderLevelCount - 1 && (0,
1582
+ if (this.hasTopIndicatorAxis && this.indicatorsAsCol && row === this.columnHeaderLevelCount - 1 && (0,
1550
1583
  get_chart_spec_1.isHasCartesianChartInline)(col, row, "col", this)) return !0;
1551
1584
  }
1552
1585
  return !1;
@@ -1650,7 +1683,7 @@ class PivotHeaderLayoutMap {
1650
1683
  }
1651
1684
  } else {
1652
1685
  const chartSpec = this.getRawChartSpec(_col, _row);
1653
- if (chartSpec && (dimensionKey = "xField" === type ? "histogram" === chartSpec.type ? chartSpec.x2Field : null !== (_o = chartSpec.xField) && void 0 !== _o ? _o : null === (_q = null === (_p = null == chartSpec ? void 0 : chartSpec.series) || void 0 === _p ? void 0 : _p[0]) || void 0 === _q ? void 0 : _q.xField : null !== (_r = chartSpec.yField) && void 0 !== _r ? _r : null === (_t = null === (_s = null == chartSpec ? void 0 : chartSpec.series) || void 0 === _s ? void 0 : _s[0]) || void 0 === _t ? void 0 : _t.yField,
1686
+ if (chartSpec && (dimensionKey = "xField" === type ? "histogram" === chartSpec.type ? chartSpec.x2Field : null !== (_o = chartSpec.xField) && void 0 !== _o ? _o : null === (_q = null === (_p = null == chartSpec ? void 0 : chartSpec.series) || void 0 === _p ? void 0 : _p[0]) || void 0 === _q ? void 0 : _q.xField : "histogram" === chartSpec.type ? chartSpec.y2Field : null !== (_r = chartSpec.yField) && void 0 !== _r ? _r : null === (_t = null === (_s = null == chartSpec ? void 0 : chartSpec.series) || void 0 === _s ? void 0 : _s[0]) || void 0 === _t ? void 0 : _t.yField,
1654
1687
  dimensionKey)) return dimensionKey;
1655
1688
  for (let i = 0; i < this.indicatorsDefine.length; i++) {
1656
1689
  const chartSpec = this.indicatorsDefine[i].chartSpec;
@@ -1769,7 +1802,7 @@ class PivotHeaderLayoutMap {
1769
1802
  get topAxesCount() {
1770
1803
  if (!this._table.isPivotChart()) return 0;
1771
1804
  const axisOption = this._table.pivotChartAxes.find((axisOption => "top" === axisOption.orient));
1772
- return !1 === (null == axisOption ? void 0 : axisOption.visible) ? 0 : this.indicatorsAsCol && this.hasTwoIndicatorAxes ? 1 : 0;
1805
+ return !1 === (null == axisOption ? void 0 : axisOption.visible) ? 0 : this.indicatorsAsCol && this.hasTopIndicatorAxis ? 1 : 0;
1773
1806
  }
1774
1807
  get rightAxesCount() {
1775
1808
  return this.rightFrozenColCount;