@visactor/vtable 0.9.3-alpha.3 → 0.9.3-alpha.5

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 (273) hide show
  1. package/cjs/ListTable.js +10 -11
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.d.ts +11 -8
  4. package/cjs/PivotChart.js +34 -33
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.js +12 -13
  7. package/cjs/PivotTable.js.map +1 -1
  8. package/cjs/components/axis/axis.js +6 -5
  9. package/cjs/components/axis/axis.js.map +1 -1
  10. package/cjs/components/axis/get-axis-component-size.d.ts +3 -0
  11. package/cjs/components/axis/get-axis-component-size.js +50 -0
  12. package/cjs/components/axis/get-axis-component-size.js.map +1 -0
  13. package/cjs/components/axis/linear-scale.js +2 -1
  14. package/cjs/components/axis/linear-scale.js.map +1 -1
  15. package/cjs/components/legend/legend.d.ts +1 -1
  16. package/cjs/components/legend/legend.js +4 -4
  17. package/cjs/components/legend/legend.js.map +1 -1
  18. package/cjs/components/menu/dom/BaseMenu.d.ts +1 -1
  19. package/cjs/components/menu/dom/BaseMenu.js +2 -2
  20. package/cjs/components/menu/dom/BaseMenu.js.map +1 -1
  21. package/cjs/components/menu/dom/MenuHandler.d.ts +1 -1
  22. package/cjs/components/menu/dom/MenuHandler.js +5 -5
  23. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  24. package/cjs/components/menu/dom/logic/MenuContainer.d.ts +1 -1
  25. package/cjs/components/menu/dom/logic/MenuContainer.js +2 -2
  26. package/cjs/components/menu/dom/logic/MenuContainer.js.map +1 -1
  27. package/cjs/components/menu/dom/logic/MenuElement.d.ts +1 -1
  28. package/cjs/components/menu/dom/logic/MenuElement.js +2 -2
  29. package/cjs/components/menu/dom/logic/MenuElement.js.map +1 -1
  30. package/cjs/components/title/title.d.ts +1 -1
  31. package/cjs/components/title/title.js +4 -4
  32. package/cjs/components/title/title.js.map +1 -1
  33. package/cjs/components/tooltip/BaseTooltip.d.ts +1 -1
  34. package/cjs/components/tooltip/BaseTooltip.js +2 -2
  35. package/cjs/components/tooltip/BaseTooltip.js.map +1 -1
  36. package/cjs/components/tooltip/TooltipHandler.d.ts +1 -1
  37. package/cjs/components/tooltip/TooltipHandler.js +7 -7
  38. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  39. package/cjs/components/tooltip/logic/BubbleTooltipElement.d.ts +1 -1
  40. package/cjs/components/tooltip/logic/BubbleTooltipElement.js +2 -2
  41. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  42. package/cjs/core/BaseTable.d.ts +9 -8
  43. package/cjs/core/BaseTable.js +36 -64
  44. package/cjs/core/BaseTable.js.map +1 -1
  45. package/cjs/core/FouseInput.d.ts +1 -1
  46. package/cjs/core/FouseInput.js +1 -1
  47. package/cjs/core/FouseInput.js.map +1 -1
  48. package/cjs/core/tableHelper.js +3 -3
  49. package/cjs/core/tableHelper.js.map +1 -1
  50. package/cjs/data/CachedDataSource.d.ts +1 -1
  51. package/cjs/data/CachedDataSource.js +2 -2
  52. package/cjs/data/CachedDataSource.js.map +1 -1
  53. package/cjs/data/DataSource.d.ts +1 -1
  54. package/cjs/data/DataSource.js +2 -2
  55. package/cjs/data/DataSource.js.map +1 -1
  56. package/cjs/data/FilterDataSource.js.map +1 -1
  57. package/cjs/dataset/dataset.d.ts +4 -4
  58. package/cjs/dataset/dataset.js +16 -13
  59. package/cjs/dataset/dataset.js.map +1 -1
  60. package/cjs/event/EventHandler.d.ts +1 -1
  61. package/cjs/event/EventHandler.js +1 -1
  62. package/cjs/event/EventHandler.js.map +1 -1
  63. package/cjs/event/EventTarget.d.ts +3 -3
  64. package/cjs/event/EventTarget.js +5 -5
  65. package/cjs/event/EventTarget.js.map +1 -1
  66. package/cjs/event/drill.js +1 -1
  67. package/cjs/event/drill.js.map +1 -1
  68. package/cjs/event/event.d.ts +1 -1
  69. package/cjs/event/event.js +11 -7
  70. package/cjs/event/event.js.map +1 -1
  71. package/cjs/event/listener/table-group.js +3 -1
  72. package/cjs/event/listener/table-group.js.map +1 -1
  73. package/cjs/event/media-click.js +1 -1
  74. package/cjs/event/media-click.js.map +1 -1
  75. package/cjs/event/pivot-chart/axis-hover.js +2 -2
  76. package/cjs/event/pivot-chart/axis-hover.js.map +1 -1
  77. package/cjs/event/sparkline-event.js +2 -2
  78. package/cjs/event/sparkline-event.js.map +1 -1
  79. package/cjs/index.d.ts +1 -1
  80. package/cjs/index.js +1 -1
  81. package/cjs/index.js.map +1 -1
  82. package/cjs/layout/chart-helper/get-axis-config.d.ts +2 -0
  83. package/cjs/layout/chart-helper/get-axis-config.js +70 -45
  84. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  85. package/cjs/layout/chart-helper/get-chart-spec.js +29 -17
  86. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  87. package/cjs/layout/pivot-header-layout.d.ts +4 -0
  88. package/cjs/layout/pivot-header-layout.js +16 -0
  89. package/cjs/layout/pivot-header-layout.js.map +1 -1
  90. package/cjs/layout/pivot-layout.d.ts +5 -0
  91. package/cjs/layout/pivot-layout.js +27 -0
  92. package/cjs/layout/pivot-layout.js.map +1 -1
  93. package/cjs/layout/simple-header-layout.d.ts +4 -0
  94. package/cjs/layout/simple-header-layout.js +16 -0
  95. package/cjs/layout/simple-header-layout.js.map +1 -1
  96. package/cjs/scenegraph/component/menu.d.ts +1 -1
  97. package/cjs/scenegraph/component/menu.js +1 -1
  98. package/cjs/scenegraph/component/menu.js.map +1 -1
  99. package/cjs/scenegraph/graphic/chart.d.ts +6 -6
  100. package/cjs/scenegraph/graphic/chart.js +16 -2
  101. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  102. package/cjs/scenegraph/graphic/contributions/chart-render.js +1 -1
  103. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  104. package/cjs/scenegraph/graphic/icon.d.ts +2 -2
  105. package/cjs/scenegraph/graphic/icon.js.map +1 -1
  106. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +0 -6
  107. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  108. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +7 -7
  109. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  110. package/cjs/scenegraph/group-creater/progress/proxy.js +6 -3
  111. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  112. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +4 -4
  113. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  114. package/cjs/scenegraph/layout/compute-col-width.js +23 -4
  115. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  116. package/cjs/scenegraph/layout/compute-row-height.js +10 -2
  117. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  118. package/cjs/scenegraph/refresh-node/update-chart.js +1 -7
  119. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  120. package/cjs/scenegraph/scenegraph.js +1 -1
  121. package/cjs/scenegraph/scenegraph.js.map +1 -1
  122. package/cjs/scenegraph/utils/text-icon-layout.js +1 -1
  123. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  124. package/cjs/state/state.js +5 -2
  125. package/cjs/state/state.js.map +1 -1
  126. package/cjs/ts-types/base-table.d.ts +20 -14
  127. package/cjs/ts-types/base-table.js.map +1 -1
  128. package/cjs/ts-types/component/axis.d.ts +1 -1
  129. package/cjs/ts-types/component/axis.js.map +1 -1
  130. package/cjs/ts-types/events.d.ts +2 -0
  131. package/cjs/ts-types/events.js.map +1 -1
  132. package/cjs/ts-types/list-table/layout-map/api.d.ts +1 -0
  133. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  134. package/cjs/ts-types/table-engine.d.ts +6 -1
  135. package/cjs/ts-types/table-engine.js.map +1 -1
  136. package/dist/vtable.js +713 -506
  137. package/dist/vtable.min.js +3 -3
  138. package/es/ListTable.js +10 -10
  139. package/es/ListTable.js.map +1 -1
  140. package/es/PivotChart.d.ts +11 -8
  141. package/es/PivotChart.js +34 -32
  142. package/es/PivotChart.js.map +1 -1
  143. package/es/PivotTable.js +12 -12
  144. package/es/PivotTable.js.map +1 -1
  145. package/es/components/axis/axis.js +4 -4
  146. package/es/components/axis/axis.js.map +1 -1
  147. package/es/components/axis/get-axis-component-size.d.ts +3 -0
  148. package/es/components/axis/get-axis-component-size.js +44 -0
  149. package/es/components/axis/get-axis-component-size.js.map +1 -0
  150. package/es/components/axis/linear-scale.js +2 -1
  151. package/es/components/axis/linear-scale.js.map +1 -1
  152. package/es/components/legend/legend.d.ts +1 -1
  153. package/es/components/legend/legend.js +4 -4
  154. package/es/components/legend/legend.js.map +1 -1
  155. package/es/components/menu/dom/BaseMenu.d.ts +1 -1
  156. package/es/components/menu/dom/BaseMenu.js +2 -2
  157. package/es/components/menu/dom/BaseMenu.js.map +1 -1
  158. package/es/components/menu/dom/MenuHandler.d.ts +1 -1
  159. package/es/components/menu/dom/MenuHandler.js +5 -5
  160. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  161. package/es/components/menu/dom/logic/MenuContainer.d.ts +1 -1
  162. package/es/components/menu/dom/logic/MenuContainer.js +2 -2
  163. package/es/components/menu/dom/logic/MenuContainer.js.map +1 -1
  164. package/es/components/menu/dom/logic/MenuElement.d.ts +1 -1
  165. package/es/components/menu/dom/logic/MenuElement.js +2 -2
  166. package/es/components/menu/dom/logic/MenuElement.js.map +1 -1
  167. package/es/components/title/title.d.ts +1 -1
  168. package/es/components/title/title.js +4 -4
  169. package/es/components/title/title.js.map +1 -1
  170. package/es/components/tooltip/BaseTooltip.d.ts +1 -1
  171. package/es/components/tooltip/BaseTooltip.js +2 -2
  172. package/es/components/tooltip/BaseTooltip.js.map +1 -1
  173. package/es/components/tooltip/TooltipHandler.d.ts +1 -1
  174. package/es/components/tooltip/TooltipHandler.js +7 -7
  175. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  176. package/es/components/tooltip/logic/BubbleTooltipElement.d.ts +1 -1
  177. package/es/components/tooltip/logic/BubbleTooltipElement.js +2 -2
  178. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  179. package/es/core/BaseTable.d.ts +9 -8
  180. package/es/core/BaseTable.js +37 -64
  181. package/es/core/BaseTable.js.map +1 -1
  182. package/es/core/FouseInput.d.ts +1 -1
  183. package/es/core/FouseInput.js +1 -1
  184. package/es/core/FouseInput.js.map +1 -1
  185. package/es/core/tableHelper.js +3 -3
  186. package/es/core/tableHelper.js.map +1 -1
  187. package/es/data/CachedDataSource.d.ts +1 -1
  188. package/es/data/CachedDataSource.js +2 -2
  189. package/es/data/CachedDataSource.js.map +1 -1
  190. package/es/data/DataSource.d.ts +1 -1
  191. package/es/data/DataSource.js +2 -2
  192. package/es/data/DataSource.js.map +1 -1
  193. package/es/data/FilterDataSource.js.map +1 -1
  194. package/es/dataset/dataset.d.ts +4 -4
  195. package/es/dataset/dataset.js +15 -12
  196. package/es/dataset/dataset.js.map +1 -1
  197. package/es/event/EventHandler.d.ts +1 -1
  198. package/es/event/EventHandler.js +1 -1
  199. package/es/event/EventHandler.js.map +1 -1
  200. package/es/event/EventTarget.d.ts +3 -3
  201. package/es/event/EventTarget.js +5 -5
  202. package/es/event/EventTarget.js.map +1 -1
  203. package/es/event/drill.js +1 -1
  204. package/es/event/drill.js.map +1 -1
  205. package/es/event/event.d.ts +1 -1
  206. package/es/event/event.js +12 -6
  207. package/es/event/event.js.map +1 -1
  208. package/es/event/listener/table-group.js +3 -1
  209. package/es/event/listener/table-group.js.map +1 -1
  210. package/es/event/media-click.js +1 -1
  211. package/es/event/media-click.js.map +1 -1
  212. package/es/event/pivot-chart/axis-hover.js +2 -2
  213. package/es/event/pivot-chart/axis-hover.js.map +1 -1
  214. package/es/event/sparkline-event.js +2 -2
  215. package/es/event/sparkline-event.js.map +1 -1
  216. package/es/index.d.ts +1 -1
  217. package/es/index.js +1 -1
  218. package/es/index.js.map +1 -1
  219. package/es/layout/chart-helper/get-axis-config.d.ts +2 -0
  220. package/es/layout/chart-helper/get-axis-config.js +67 -43
  221. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  222. package/es/layout/chart-helper/get-chart-spec.js +26 -16
  223. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  224. package/es/layout/pivot-header-layout.d.ts +4 -0
  225. package/es/layout/pivot-header-layout.js +16 -0
  226. package/es/layout/pivot-header-layout.js.map +1 -1
  227. package/es/layout/pivot-layout.d.ts +5 -0
  228. package/es/layout/pivot-layout.js +27 -0
  229. package/es/layout/pivot-layout.js.map +1 -1
  230. package/es/layout/simple-header-layout.d.ts +4 -0
  231. package/es/layout/simple-header-layout.js +16 -0
  232. package/es/layout/simple-header-layout.js.map +1 -1
  233. package/es/scenegraph/component/menu.d.ts +1 -1
  234. package/es/scenegraph/component/menu.js +1 -1
  235. package/es/scenegraph/component/menu.js.map +1 -1
  236. package/es/scenegraph/graphic/chart.d.ts +6 -6
  237. package/es/scenegraph/graphic/chart.js +16 -2
  238. package/es/scenegraph/graphic/chart.js.map +1 -1
  239. package/es/scenegraph/graphic/contributions/chart-render.js +1 -1
  240. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  241. package/es/scenegraph/graphic/icon.d.ts +2 -2
  242. package/es/scenegraph/graphic/icon.js.map +1 -1
  243. package/es/scenegraph/group-creater/cell-type/chart-cell.js +0 -6
  244. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  245. package/es/scenegraph/group-creater/cell-type/image-cell.js +4 -4
  246. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  247. package/es/scenegraph/group-creater/progress/proxy.js +6 -3
  248. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  249. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +4 -4
  250. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  251. package/es/scenegraph/layout/compute-col-width.js +26 -3
  252. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  253. package/es/scenegraph/layout/compute-row-height.js +10 -2
  254. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  255. package/es/scenegraph/refresh-node/update-chart.js +1 -7
  256. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  257. package/es/scenegraph/scenegraph.js +1 -1
  258. package/es/scenegraph/scenegraph.js.map +1 -1
  259. package/es/scenegraph/utils/text-icon-layout.js +1 -1
  260. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  261. package/es/state/state.js +5 -2
  262. package/es/state/state.js.map +1 -1
  263. package/es/ts-types/base-table.d.ts +20 -14
  264. package/es/ts-types/base-table.js.map +1 -1
  265. package/es/ts-types/component/axis.d.ts +1 -1
  266. package/es/ts-types/component/axis.js.map +1 -1
  267. package/es/ts-types/events.d.ts +2 -0
  268. package/es/ts-types/events.js.map +1 -1
  269. package/es/ts-types/list-table/layout-map/api.d.ts +1 -0
  270. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  271. package/es/ts-types/table-engine.d.ts +6 -1
  272. package/es/ts-types/table-engine.js.map +1 -1
  273. package/package.json +10 -10
@@ -5,17 +5,15 @@ export function getAxisConfigInPivotChart(col, row, layout) {
5
5
  if (layout.hasTwoIndicatorAxes && row === layout.columnHeaderLevelCount - 1 && col >= layout.rowHeaderLevelCount && col < layout.colCount - layout.rightFrozenColCount) {
6
6
  let defaultKey = layout.getIndicatorKeyInChartSpec(col, layout.columnHeaderLevelCount - 1)[1];
7
7
  if (isArray(defaultKey) && (defaultKey = defaultKey[0]), !defaultKey) return;
8
- const data = layout.dataset.collectedValues[defaultKey + "_align"] ? layout.dataset.collectedValues[defaultKey + "_align"] : layout.dataset.collectedValues[defaultKey], index = layout.getRecordIndexByCol(col), range = data[layout.getColKeysPath()[index][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]], axisOption = layout._table.pivotChartAxes.find((axisOption => "top" === axisOption.orient));
8
+ const isZeroAlign = checkZeroAlign(col, row, "top", layout), data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? "_align" : "")] ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? "_align" : "")] : layout.dataset.collectedValues[defaultKey], index = layout.getRecordIndexByCol(col), range = data[layout.getColKeysPath()[index][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]], axisOption = getAxisOption(col, row, "top", layout);
9
9
  if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
10
- return merge({}, axisOption, {
10
+ return merge({
11
+ range: range
12
+ }, axisOption, {
11
13
  orient: "top",
12
14
  type: "linear",
13
- range: range,
14
15
  label: {
15
16
  flush: !0
16
- },
17
- title: {
18
- visible: !1
19
17
  }
20
18
  });
21
19
  }
@@ -23,39 +21,39 @@ export function getAxisConfigInPivotChart(col, row, layout) {
23
21
  const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
24
22
  let defaultKey = indicatorKeys[0];
25
23
  isArray(defaultKey) && (defaultKey = defaultKey[0]);
26
- const data = layout.dataset.collectedValues[defaultKey + "_align"] ? layout.dataset.collectedValues[defaultKey + "_align"] : layout.dataset.collectedValues[defaultKey], index = layout.getRecordIndexByCol(col), range = data[layout.getColKeysPath()[index][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]];
24
+ const isZeroAlign = checkZeroAlign(col, row, "bottom", layout), data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? "_align" : "")] ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? "_align" : "")] : layout.dataset.collectedValues[defaultKey], index = layout.getRecordIndexByCol(col), range = data[layout.getColKeysPath()[index][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]];
27
25
  let indicatorInfo = null;
28
26
  indicatorKeys.forEach((key => {
29
27
  const info = layout.getIndicatorInfo(key);
30
28
  info && (indicatorInfo = info);
31
29
  }));
32
- const axisOption = layout._table.pivotChartAxes.find((axisOption => "bottom" === axisOption.orient));
30
+ const axisOption = getAxisOption(col, row, "bottom", layout);
33
31
  if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
34
- return merge({}, axisOption, {
32
+ return merge({
33
+ title: {
34
+ visible: !0,
35
+ text: null == indicatorInfo ? void 0 : indicatorInfo.caption,
36
+ autoRotate: !0
37
+ },
38
+ range: range
39
+ }, axisOption, {
35
40
  orient: "bottom",
36
41
  type: "linear",
37
- range: range,
38
42
  label: {
39
43
  flush: !0
40
- },
41
- title: {
42
- text: null == indicatorInfo ? void 0 : indicatorInfo.caption,
43
- autoRotate: !0
44
44
  }
45
45
  });
46
46
  }
47
- if (col === layout.rowHeaderLevelCount - 1 && row >= layout.rowHeaderLevelCount && row < layout.rowCount - layout.bottomFrozenRowCount) {
47
+ if (col === layout.rowHeaderLevelCount - 1 && row >= layout.columnHeaderLevelCount && row < layout.rowCount - layout.bottomFrozenRowCount) {
48
48
  let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row)[0];
49
49
  isArray(rowDimensionKey) && (rowDimensionKey = rowDimensionKey[0]);
50
- const data = layout.dataset.collectedValues[rowDimensionKey], recordRow = layout.getRecordIndexByRow(row), rowPath = layout.getRowKeysPath()[recordRow], domain = data[rowPath[rowPath.length - 1]], axisOption = layout._table.pivotChartAxes.find((axisOption => "left" === axisOption.orient));
50
+ const data = layout.dataset.collectedValues[rowDimensionKey], recordRow = layout.getRecordIndexByRow(row), rowPath = layout.getRowKeysPath()[recordRow], domain = data[rowPath[rowPath.length - 1]], axisOption = getAxisOption(col, row, "left", layout);
51
51
  if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
52
- return merge({}, axisOption, {
52
+ return merge({
53
+ domain: Array.from(domain).reverse()
54
+ }, axisOption, {
53
55
  orient: "left",
54
- type: "band",
55
- data: Array.from(domain).reverse(),
56
- title: {
57
- visible: !1
58
- }
56
+ type: "band"
59
57
  });
60
58
  }
61
59
  } else {
@@ -63,58 +61,84 @@ export function getAxisConfigInPivotChart(col, row, layout) {
63
61
  const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
64
62
  let defaultKey = indicatorKeys[0];
65
63
  isArray(defaultKey) && (defaultKey = defaultKey[0]);
66
- const data = layout.dataset.collectedValues[defaultKey + "_align"] ? layout.dataset.collectedValues[defaultKey + "_align"] : layout.dataset.collectedValues[defaultKey], index = layout.getRecordIndexByRow(row), range = data[layout.getRowKeysPath()[index][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]];
64
+ const isZeroAlign = checkZeroAlign(col, row, "left", layout), data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? "_align" : "")] ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? "_align" : "")] : layout.dataset.collectedValues[defaultKey], index = layout.getRecordIndexByRow(row), range = data[layout.getRowKeysPath()[index][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]];
67
65
  let indicatorInfo = null;
68
66
  indicatorKeys.forEach((key => {
69
67
  const info = layout.getIndicatorInfo(key);
70
68
  info && (indicatorInfo = info);
71
69
  }));
72
- const axisOption = layout._table.pivotChartAxes.find((axisOption => "left" === axisOption.orient));
70
+ const axisOption = getAxisOption(col, row, "left", layout);
73
71
  if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
74
- return merge({}, axisOption, {
72
+ return merge({
73
+ title: {
74
+ visible: !0,
75
+ text: null == indicatorInfo ? void 0 : indicatorInfo.caption,
76
+ autoRotate: !0
77
+ },
78
+ range: range
79
+ }, axisOption, {
75
80
  orient: "left",
76
81
  type: "linear",
77
- range: range,
78
82
  label: {
79
83
  flush: !0
80
- },
81
- title: {
82
- text: null == indicatorInfo ? void 0 : indicatorInfo.caption,
83
- autoRotate: !0
84
84
  }
85
85
  });
86
86
  }
87
87
  if (col === layout.colCount - layout.rightFrozenColCount && row >= layout.columnHeaderLevelCount && row < layout.rowCount - layout.bottomFrozenRowCount) {
88
88
  let defaultKey = layout.getIndicatorKeyInChartSpec(layout.rowHeaderLevelCount - 1, row)[1];
89
89
  if (isArray(defaultKey) && (defaultKey = defaultKey[0]), !defaultKey) return;
90
- const data = layout.dataset.collectedValues[defaultKey + "_align"] ? layout.dataset.collectedValues[defaultKey + "_align"] : layout.dataset.collectedValues[defaultKey], index = layout.getRecordIndexByRow(row), range = data[layout.getRowKeysPath()[index][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]], axisOption = layout._table.pivotChartAxes.find((axisOption => "right" === axisOption.orient));
90
+ const isZeroAlign = checkZeroAlign(col, row, "right", layout), data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? "_align" : "")] ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? "_align" : "")] : layout.dataset.collectedValues[defaultKey], index = layout.getRecordIndexByRow(row), range = data[layout.getRowKeysPath()[index][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]], axisOption = getAxisOption(col, row, "right", layout);
91
91
  if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
92
- return merge({}, axisOption, {
92
+ return merge({
93
+ range: range
94
+ }, axisOption, {
93
95
  orient: "right",
94
96
  type: "linear",
95
- range: range,
96
97
  label: {
97
98
  flush: !0
98
- },
99
- title: {
100
- visible: !1
101
99
  }
102
100
  });
103
101
  }
104
102
  if (row === layout.rowCount - layout.bottomFrozenRowCount && col >= layout.rowHeaderLevelCount && col < layout.colCount - layout.rightFrozenColCount) {
105
103
  let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount)[0];
106
104
  isArray(columnDimensionKey) && (columnDimensionKey = columnDimensionKey[0]);
107
- const data = layout.dataset.collectedValues[columnDimensionKey], recordCol = layout.getRecordIndexByCol(col), colPath = layout.getColKeysPath()[recordCol], domain = data[colPath[colPath.length - 1]], axisOption = layout._table.pivotChartAxes.find((axisOption => "bottom" === axisOption.orient));
105
+ const data = layout.dataset.collectedValues[columnDimensionKey], recordCol = layout.getRecordIndexByCol(col), colPath = layout.getColKeysPath()[recordCol], domain = data[colPath[colPath.length - 1]], axisOption = getAxisOption(col, row, "bottom", layout);
108
106
  if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
109
- return merge({}, axisOption, {
107
+ return merge({
108
+ domain: Array.from(domain)
109
+ }, axisOption, {
110
110
  orient: "bottom",
111
- type: "band",
112
- data: Array.from(domain),
113
- title: {
114
- visible: !1
115
- }
111
+ type: "band"
116
112
  });
117
113
  }
118
114
  }
119
115
  }
116
+
117
+ export function getAxisOption(col, row, orient, layout) {
118
+ const spec = layout.getRawChartSpec(col, row);
119
+ if (spec && isArray(spec.axes)) {
120
+ const axisOption = spec.axes.find((axis => axis.orient === orient));
121
+ if (axisOption) return axisOption;
122
+ }
123
+ return layout._table.pivotChartAxes.find((axisOption => axisOption.orient === orient));
124
+ }
125
+
126
+ export function checkZeroAlign(col, row, orient, layout) {
127
+ const orients = [];
128
+ "left" === orient || "right" === orient ? orients.push("left", "right") : "top" !== orient && "bottom" !== orient || orients.push("top", "bottom");
129
+ const spec = layout.getRawChartSpec(col, row);
130
+ let axesSpec;
131
+ if (axesSpec = spec && isArray(spec.axes) ? spec.axes : layout._table.pivotChartAxes,
132
+ isArray(axesSpec)) {
133
+ const axes = [];
134
+ axesSpec.forEach((axis => {
135
+ orients.includes(axis.orient) && axes.push(axis);
136
+ }));
137
+ for (let i = 0; i < axes.length; i++) {
138
+ const axis = axes[i];
139
+ if (axis.sync && axis.sync.zeroAlign && axis.sync.axisId && axes.find((axisSync => axisSync.id === axis.sync.axisId))) return !0;
140
+ }
141
+ }
142
+ return !1;
143
+ }
120
144
  //# sourceMappingURL=get-axis-config.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["layout/chart-helper/get-axis-config.ts"],"names":[],"mappings":"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","file":"get-axis-config.js","sourcesContent":["import { isArray, merge } from '@visactor/vutils';\nimport type { PivotLayoutMap } from '../pivot-layout';\nimport type { ITableAxisOption } from '../../ts-types/component/axis';\nimport type { PivotChart } from '../../PivotChart';\n\nexport function getAxisConfigInPivotChart(col: number, row: number, layout: PivotLayoutMap): any {\n if (!layout._table.isPivotChart()) {\n return undefined;\n }\n\n // 是否是指标\n if (layout.indicatorsAsCol) {\n if (\n layout.hasTwoIndicatorAxes &&\n row === layout.columnHeaderLevelCount - 1 &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, layout.columnHeaderLevelCount - 1);\n let defaultKey = indicatorKeys[1];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n if (!defaultKey) {\n return undefined;\n }\n // const data = layout.dataset.collectedValues[defaultKey];\n const data = layout.dataset.collectedValues[defaultKey + '_align']\n ? layout.dataset.collectedValues[defaultKey + '_align']\n : layout.dataset.collectedValues[defaultKey];\n const index = layout.getRecordIndexByCol(col);\n const range =\n data[layout.getColKeysPath()[index][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]];\n\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === 'top';\n });\n if (axisOption?.visible === false) {\n return;\n }\n // 顶部副指标轴\n return merge({}, axisOption, {\n orient: 'top',\n type: 'linear',\n range: range,\n label: {\n flush: true\n },\n // grid: {\n // visible: true\n // },\n title: {\n visible: false\n }\n });\n } else if (\n row === layout.rowCount - layout.bottomFrozenRowCount &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n let defaultKey = indicatorKeys[0];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n // const data = layout.dataset.collectedValues[defaultKey];\n const data = layout.dataset.collectedValues[defaultKey + '_align']\n ? layout.dataset.collectedValues[defaultKey + '_align']\n : layout.dataset.collectedValues[defaultKey];\n const index = layout.getRecordIndexByCol(col);\n const range =\n data[layout.getColKeysPath()[index][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]];\n let indicatorInfo = null;\n indicatorKeys.forEach(key => {\n const info = layout.getIndicatorInfo(key);\n if (info) {\n indicatorInfo = info;\n }\n });\n\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === 'bottom';\n });\n if (axisOption?.visible === false) {\n return;\n }\n // 底侧指标轴\n return merge({}, axisOption, {\n orient: 'bottom',\n type: 'linear',\n range: range,\n label: {\n flush: true\n },\n // grid: {\n // visible: true\n // },\n title: {\n // visible: true,\n text: (indicatorInfo as any)?.caption,\n autoRotate: true\n }\n });\n } else if (\n col === layout.rowHeaderLevelCount - 1 &&\n row >= layout.rowHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row)[0];\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data = layout.dataset.collectedValues[rowDimensionKey];\n\n const recordRow = layout.getRecordIndexByRow(row);\n const rowPath = layout.getRowKeysPath()[recordRow];\n const domain = data[rowPath[rowPath.length - 1]] as Array<string>;\n\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === 'left';\n });\n if (axisOption?.visible === false) {\n return;\n }\n // 左侧维度轴\n return merge({}, axisOption, {\n orient: 'left',\n type: 'band',\n data: Array.from(domain).reverse(),\n title: {\n visible: false\n }\n });\n }\n } else {\n if (\n col === layout.rowHeaderLevelCount - 1 &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n let defaultKey = indicatorKeys[0];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n // const data = layout.dataset.collectedValues[defaultKey];\n const data = layout.dataset.collectedValues[defaultKey + '_align']\n ? layout.dataset.collectedValues[defaultKey + '_align']\n : layout.dataset.collectedValues[defaultKey];\n const index = layout.getRecordIndexByRow(row);\n const range =\n data[layout.getRowKeysPath()[index][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]];\n let indicatorInfo = null;\n indicatorKeys.forEach(key => {\n const info = layout.getIndicatorInfo(key);\n if (info) {\n indicatorInfo = info;\n }\n });\n\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === 'left';\n });\n if (axisOption?.visible === false) {\n return;\n }\n // 左侧指标轴\n return merge({}, axisOption, {\n orient: 'left',\n type: 'linear',\n range: range,\n label: {\n flush: true\n },\n // grid: {\n // visible: true\n // },\n title: {\n // visible: true,\n text: (indicatorInfo as any)?.caption,\n autoRotate: true\n }\n });\n } else if (\n col === layout.colCount - layout.rightFrozenColCount &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(layout.rowHeaderLevelCount - 1, row);\n let defaultKey = indicatorKeys[1];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n\n if (!defaultKey) {\n return undefined;\n }\n // const data = layout.dataset.collectedValues[defaultKey];\n const data = layout.dataset.collectedValues[defaultKey + '_align']\n ? layout.dataset.collectedValues[defaultKey + '_align']\n : layout.dataset.collectedValues[defaultKey];\n const index = layout.getRecordIndexByRow(row);\n const range =\n data[layout.getRowKeysPath()[index][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]];\n\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === 'right';\n });\n if (axisOption?.visible === false) {\n return;\n }\n // 右侧副指标轴\n return merge({}, axisOption, {\n orient: 'right',\n type: 'linear',\n range: range,\n label: {\n flush: true\n },\n // grid: {\n // visible: true\n // },\n title: {\n visible: false\n }\n });\n } else if (\n row === layout.rowCount - layout.bottomFrozenRowCount &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount)[0];\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data = layout.dataset.collectedValues[columnDimensionKey];\n\n const recordCol = layout.getRecordIndexByCol(col);\n const colPath = layout.getColKeysPath()[recordCol];\n const domain = data[colPath[colPath.length - 1]] as Array<string>;\n\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === 'bottom';\n });\n if (axisOption?.visible === false) {\n return;\n }\n // 底部维度轴\n return merge({}, axisOption, {\n orient: 'bottom',\n type: 'band',\n data: Array.from(domain),\n title: {\n visible: false\n }\n });\n }\n }\n\n return undefined;\n}\n"]}
1
+ {"version":3,"sources":["layout/chart-helper/get-axis-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,UAAU,yBAAyB,CAAC,GAAW,EAAE,GAAW,EAAE,MAAsB;IACxF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;QACjC,OAAO,SAAS,CAAC;KAClB;IAGD,IAAI,MAAM,CAAC,eAAe,EAAE;QAC1B,IACE,MAAM,CAAC,mBAAmB;YAC1B,GAAG,KAAK,MAAM,CAAC,sBAAsB,GAAG,CAAC;YACzC,GAAG,IAAI,MAAM,CAAC,mBAAmB;YACjC,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,mBAAmB,EAClD;YACA,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,MAAM,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC;YAChG,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;gBACvB,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO,SAAS,CAAC;aAClB;YAED,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAE5D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5E,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,sBAAsB,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE7G,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1D,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,MAAK,KAAK,EAAE;gBACjC,OAAO;aACR;YAED,OAAO,KAAK,CACV;gBACE,KAAK,EAAE,KAAK;aACb,EACD,UAAU,EACV;gBACE,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI;iBACZ;aACF,CACF,CAAC;SACH;aAAM,IACL,GAAG,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,oBAAoB;YACrD,GAAG,IAAI,MAAM,CAAC,mBAAmB;YACjC,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,mBAAmB,EAClD;YACA,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClE,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;gBACvB,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;aAC5B;YAED,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE/D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5E,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,sBAAsB,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7G,IAAI,aAAa,GAAG,IAAI,CAAC;YACzB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,IAAI,EAAE;oBACR,aAAa,GAAG,IAAI,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,MAAK,KAAK,EAAE;gBACjC,OAAO;aACR;YAED,OAAO,KAAK,CACV;gBACE,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAG,aAAqB,aAArB,aAAa,uBAAb,aAAa,CAAU,OAAO;oBACrC,UAAU,EAAE,IAAI;iBACjB;gBACD,KAAK,EAAE,KAAK;aACb,EACD,UAAU,EACV;gBACE,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI;iBACZ;aACF,CACF,CAAC;SACH;aAAM,IACL,GAAG,KAAK,MAAM,CAAC,mBAAmB,GAAG,CAAC;YACtC,GAAG,IAAI,MAAM,CAAC,sBAAsB;YACpC,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,oBAAoB,EACnD;YACA,IAAI,eAAe,GAAG,MAAM,CAAC,0BAA0B,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;gBAC5B,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;aACtC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAE7D,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAkB,CAAC;YAElE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,MAAK,KAAK,EAAE;gBACjC,OAAO;aACR;YAED,OAAO,KAAK,CACV;gBACE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;aACrC,EACD,UAAU,EACV;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,MAAM;aACb,CACF,CAAC;SACH;KACF;SAAM;QACL,IACE,GAAG,KAAK,MAAM,CAAC,mBAAmB,GAAG,CAAC;YACtC,GAAG,IAAI,MAAM,CAAC,sBAAsB;YACpC,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,oBAAoB,EACnD;YACA,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClE,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;gBACvB,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;aAC5B;YAED,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAE7D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5E,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC3G,IAAI,aAAa,GAAG,IAAI,CAAC;YACzB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,IAAI,EAAE;oBACR,aAAa,GAAG,IAAI,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,MAAK,KAAK,EAAE;gBACjC,OAAO;aACR;YAED,OAAO,KAAK,CACV;gBACE,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAG,aAAqB,aAArB,aAAa,uBAAb,aAAa,CAAU,OAAO;oBACrC,UAAU,EAAE,IAAI;iBACjB;gBACD,KAAK,EAAE,KAAK;aACb,EACD,UAAU,EACV;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI;iBACZ;aACF,CACF,CAAC;SACH;aAAM,IACL,GAAG,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,mBAAmB;YACpD,GAAG,IAAI,MAAM,CAAC,sBAAsB;YACpC,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,oBAAoB,EACnD;YACA,MAAM,aAAa,GAAG,MAAM,CAAC,0BAA0B,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC7F,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;gBACvB,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;aAC5B;YAED,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO,SAAS,CAAC;aAClB;YAED,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAE9D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5E,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAE3G,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5D,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,MAAK,KAAK,EAAE;gBACjC,OAAO;aACR;YAED,OAAO,KAAK,CACV;gBACE,KAAK,EAAE,KAAK;aACb,EACD,UAAU,EACV;gBACE,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI;iBACZ;aACF,CACF,CAAC;SACH;aAAM,IACL,GAAG,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,oBAAoB;YACrD,GAAG,IAAI,MAAM,CAAC,mBAAmB;YACjC,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,mBAAmB,EAClD;YAGA,IAAI,kBAAkB,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;YAClG,IAAI,OAAO,CAAC,kBAAkB,CAAC,EAAE;gBAC/B,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;aAC5C;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;YAEhE,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAkB,CAAC;YAElE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,MAAK,KAAK,EAAE;gBACjC,OAAO;aACR;YAED,OAAO,KAAK,CACV;gBACE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,EACD,UAAU,EACV;gBACE,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,MAAM;aACb,CACF,CAAC;SACH;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,GAAW,EAAE,MAAc,EAAE,MAAsB;IAC5F,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE;YAC9C,OAAO,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,EAAE;YACd,OAAO,UAAU,CAAC;SACnB;KACF;IACD,MAAM,UAAU,GAAK,MAAM,CAAC,MAAqB,CAAC,cAAqC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;QACxG,OAAO,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,GAAW,EAAE,MAAc,EAAE,MAAsB;IAI7F,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE;QAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B;SAAM,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,EAAE;QAClD,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC/B;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC;IACb,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;KACtB;SAAM;QACL,QAAQ,GAAI,MAAM,CAAC,MAAqB,CAAC,cAAoC,CAAC;KAC/E;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;QACrB,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YAC7B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjB;QACH,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IACE,IAAI,CAAC,IAAI;gBACT,IAAI,CAAC,IAAI,CAAC,SAAS;gBACnB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBACnB,OAAO,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1C,CAAC,CAAC,EACF;gBACA,OAAO,IAAI,CAAC;aACb;SACF;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC","file":"get-axis-config.js","sourcesContent":["import { isArray, merge } from '@visactor/vutils';\nimport type { PivotLayoutMap } from '../pivot-layout';\nimport type { ITableAxisOption } from '../../ts-types/component/axis';\nimport type { PivotChart } from '../../PivotChart';\n\nexport function getAxisConfigInPivotChart(col: number, row: number, layout: PivotLayoutMap): any {\n if (!layout._table.isPivotChart()) {\n return undefined;\n }\n\n // 是否是指标\n if (layout.indicatorsAsCol) {\n if (\n layout.hasTwoIndicatorAxes &&\n row === layout.columnHeaderLevelCount - 1 &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, layout.columnHeaderLevelCount - 1);\n let defaultKey = indicatorKeys[1];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n if (!defaultKey) {\n return undefined;\n }\n\n const isZeroAlign = checkZeroAlign(col, row, 'top', layout);\n // const data = layout.dataset.collectedValues[defaultKey];\n const data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n : layout.dataset.collectedValues[defaultKey];\n const index = layout.getRecordIndexByCol(col);\n const range =\n data[layout.getColKeysPath()[index][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]];\n\n const axisOption = getAxisOption(col, row, 'top', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 顶部副指标轴\n return merge(\n {\n range: range\n },\n axisOption,\n {\n orient: 'top',\n type: 'linear',\n label: {\n flush: true\n }\n }\n );\n } else if (\n row === layout.rowCount - layout.bottomFrozenRowCount &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n let defaultKey = indicatorKeys[0];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n\n const isZeroAlign = checkZeroAlign(col, row, 'bottom', layout);\n\n const data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n : layout.dataset.collectedValues[defaultKey];\n const index = layout.getRecordIndexByCol(col);\n const range =\n data[layout.getColKeysPath()[index][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]];\n let indicatorInfo = null;\n indicatorKeys.forEach(key => {\n const info = layout.getIndicatorInfo(key);\n if (info) {\n indicatorInfo = info;\n }\n });\n\n const axisOption = getAxisOption(col, row, 'bottom', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 底侧指标轴\n return merge(\n {\n title: {\n visible: true,\n text: (indicatorInfo as any)?.caption,\n autoRotate: true\n },\n range: range\n },\n axisOption,\n {\n orient: 'bottom',\n type: 'linear',\n label: {\n flush: true\n }\n }\n );\n } else if (\n col === layout.rowHeaderLevelCount - 1 &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, row)[0];\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data = layout.dataset.collectedValues[rowDimensionKey];\n\n const recordRow = layout.getRecordIndexByRow(row);\n const rowPath = layout.getRowKeysPath()[recordRow];\n const domain = data[rowPath[rowPath.length - 1]] as Array<string>;\n\n const axisOption = getAxisOption(col, row, 'left', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 左侧维度轴\n return merge(\n {\n domain: Array.from(domain).reverse()\n },\n axisOption,\n {\n orient: 'left',\n type: 'band'\n }\n );\n }\n } else {\n if (\n col === layout.rowHeaderLevelCount - 1 &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n let defaultKey = indicatorKeys[0];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n\n const isZeroAlign = checkZeroAlign(col, row, 'left', layout);\n\n const data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n : layout.dataset.collectedValues[defaultKey];\n const index = layout.getRecordIndexByRow(row);\n const range =\n data[layout.getRowKeysPath()[index][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]];\n let indicatorInfo = null;\n indicatorKeys.forEach(key => {\n const info = layout.getIndicatorInfo(key);\n if (info) {\n indicatorInfo = info;\n }\n });\n\n const axisOption = getAxisOption(col, row, 'left', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 左侧指标轴\n return merge(\n {\n title: {\n visible: true,\n text: (indicatorInfo as any)?.caption,\n autoRotate: true\n },\n range: range\n },\n axisOption,\n {\n orient: 'left',\n type: 'linear',\n label: {\n flush: true\n }\n }\n );\n } else if (\n col === layout.colCount - layout.rightFrozenColCount &&\n row >= layout.columnHeaderLevelCount &&\n row < layout.rowCount - layout.bottomFrozenRowCount\n ) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(layout.rowHeaderLevelCount - 1, row);\n let defaultKey = indicatorKeys[1];\n if (isArray(defaultKey)) {\n defaultKey = defaultKey[0];\n }\n\n if (!defaultKey) {\n return undefined;\n }\n\n const isZeroAlign = checkZeroAlign(col, row, 'right', layout);\n\n const data = layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n ? layout.dataset.collectedValues[defaultKey + (isZeroAlign ? '_align' : '')]\n : layout.dataset.collectedValues[defaultKey];\n const index = layout.getRecordIndexByRow(row);\n const range =\n data[layout.getRowKeysPath()[index][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]];\n\n const axisOption = getAxisOption(col, row, 'right', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 右侧副指标轴\n return merge(\n {\n range: range\n },\n axisOption,\n {\n orient: 'right',\n type: 'linear',\n label: {\n flush: true\n }\n }\n );\n } else if (\n row === layout.rowCount - layout.bottomFrozenRowCount &&\n col >= layout.rowHeaderLevelCount &&\n col < layout.colCount - layout.rightFrozenColCount\n ) {\n // const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount)[0];\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data = layout.dataset.collectedValues[columnDimensionKey];\n\n const recordCol = layout.getRecordIndexByCol(col);\n const colPath = layout.getColKeysPath()[recordCol];\n const domain = data[colPath[colPath.length - 1]] as Array<string>;\n\n const axisOption = getAxisOption(col, row, 'bottom', layout);\n if (axisOption?.visible === false) {\n return;\n }\n // 底部维度轴\n return merge(\n {\n domain: Array.from(domain)\n },\n axisOption,\n {\n orient: 'bottom',\n type: 'band'\n }\n );\n }\n }\n\n return undefined;\n}\n\nexport function getAxisOption(col: number, row: number, orient: string, layout: PivotLayoutMap) {\n const spec = layout.getRawChartSpec(col, row);\n if (spec && isArray(spec.axes)) {\n const axisOption = spec.axes.find((axis: any) => {\n return axis.orient === orient;\n });\n if (axisOption) {\n return axisOption;\n }\n }\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === orient;\n });\n return axisOption;\n}\n\nexport function checkZeroAlign(col: number, row: number, orient: string, layout: PivotLayoutMap) {\n // check condition:\n // 1. two axes and one set sync\n // 2. axisId in sync is another\n const orients: string[] = [];\n if (orient === 'left' || orient === 'right') {\n orients.push('left', 'right');\n } else if (orient === 'top' || orient === 'bottom') {\n orients.push('top', 'bottom');\n }\n const spec = layout.getRawChartSpec(col, row);\n let axesSpec;\n if (spec && isArray(spec.axes)) {\n axesSpec = spec.axes;\n } else {\n axesSpec = (layout._table as PivotChart).pivotChartAxes as ITableAxisOption[];\n }\n if (isArray(axesSpec)) {\n const axes: any[] = [];\n axesSpec.forEach((axis: any) => {\n if (orients.includes(axis.orient)) {\n axes.push(axis);\n }\n });\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n if (\n axis.sync &&\n axis.sync.zeroAlign &&\n axis.sync.axisId &&\n axes.find(axisSync => {\n return axisSync.id === axis.sync.axisId;\n })\n ) {\n return true;\n }\n }\n }\n\n return false;\n}\n"]}
@@ -1,5 +1,7 @@
1
1
  import { cloneDeep, isArray, merge } from "@visactor/vutils";
2
2
 
3
+ import { checkZeroAlign, getAxisOption } from "./get-axis-config";
4
+
3
5
  export function getRawChartSpec(col, row, layout) {
4
6
  var _a, _b;
5
7
  const paths = layout.getCellHeaderPaths(col, row);
@@ -26,8 +28,11 @@ export function getChartAxes(col, row, layout) {
26
28
  const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row), colIndex = layout.getRecordIndexByCol(col);
27
29
  indicatorKeys.forEach(((key, index) => {
28
30
  isArray(key) && (key = key[0]);
29
- const range = (layout.dataset.collectedValues[key + "_align"] ? layout.dataset.collectedValues[key + "_align"] : layout.dataset.collectedValues[key])[layout.getColKeysPath()[colIndex][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]], axisOption = layout._table.pivotChartAxes.find((axisOption => axisOption.orient === (0 === index ? "bottom" : "top")));
30
- axes.push(merge({}, axisOption, {
31
+ const isZeroAlign = checkZeroAlign(col, row, 0 === index ? "bottom" : "top", layout), range = (layout.dataset.collectedValues[key + (isZeroAlign ? "_align" : "")] ? layout.dataset.collectedValues[key + (isZeroAlign ? "_align" : "")] : layout.dataset.collectedValues[key])[layout.getColKeysPath()[colIndex][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]], axisOption = getAxisOption(col, row, 0 === index ? "bottom" : "top", layout);
32
+ (null == axisOption ? void 0 : axisOption.zero) && (range.min = Math.min(range.min, 0),
33
+ range.max = Math.max(range.max, 0)), axes.push(merge({
34
+ range: range
35
+ }, axisOption, {
31
36
  type: "linear",
32
37
  orient: 0 === index ? "bottom" : "top",
33
38
  label: {
@@ -36,14 +41,16 @@ export function getChartAxes(col, row, layout) {
36
41
  title: {
37
42
  visible: !1
38
43
  },
39
- range: range,
40
- seriesIndex: index
44
+ seriesIndex: index,
45
+ height: -1
41
46
  }));
42
47
  }));
43
48
  let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, col)[0];
44
49
  isArray(rowDimensionKey) && (rowDimensionKey = rowDimensionKey[0]);
45
- const data = layout.dataset.cacheCollectedValues[rowDimensionKey] || layout.dataset.collectedValues[rowDimensionKey], recordRow = layout.getRecordIndexByRow(row), rowPath = layout.getRowKeysPath()[recordRow], domain = data[rowPath[rowPath.length - 1]], axisOption = layout._table.pivotChartAxes.find((axisOption => "left" === axisOption.orient));
46
- axes.push(merge({}, axisOption, {
50
+ const data = layout.dataset.cacheCollectedValues[rowDimensionKey] || layout.dataset.collectedValues[rowDimensionKey], recordRow = layout.getRecordIndexByRow(row), rowPath = layout.getRowKeysPath()[recordRow], domain = data[rowPath[rowPath.length - 1]], axisOption = getAxisOption(col, row, "left", layout);
51
+ axes.push(merge({
52
+ domain: Array.from(domain)
53
+ }, axisOption, {
47
54
  type: "band",
48
55
  orient: "left",
49
56
  label: {
@@ -62,15 +69,17 @@ export function getChartAxes(col, row, layout) {
62
69
  title: {
63
70
  visible: !1
64
71
  },
65
- width: -1,
66
- domain: Array.from(domain)
72
+ width: -1
67
73
  }));
68
74
  } else {
69
75
  const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row), rowIndex = layout.getRecordIndexByRow(row);
70
76
  indicatorKeys.forEach(((key, index) => {
71
77
  isArray(key) && (key = key[0]);
72
- const range = (layout.dataset.collectedValues[key + "_align"] ? layout.dataset.collectedValues[key + "_align"] : layout.dataset.collectedValues[key])[layout.getRowKeysPath()[rowIndex][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]], axisOption = layout._table.pivotChartAxes.find((axisOption => axisOption.orient === (0 === index ? "left" : "right")));
73
- axes.push(merge({}, axisOption, {
78
+ const isZeroAlign = checkZeroAlign(col, row, 0 === index ? "left" : "right", layout), range = (layout.dataset.collectedValues[key + (isZeroAlign ? "_align" : "")] ? layout.dataset.collectedValues[key + (isZeroAlign ? "_align" : "")] : layout.dataset.collectedValues[key])[layout.getRowKeysPath()[rowIndex][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]], axisOption = getAxisOption(col, row, 0 === index ? "left" : "right", layout);
79
+ (null == axisOption ? void 0 : axisOption.zero) && (range.min = Math.min(range.min, 0),
80
+ range.max = Math.max(range.max, 0)), axes.push(merge({
81
+ range: range
82
+ }, axisOption, {
74
83
  type: "linear",
75
84
  orient: 0 === index ? "left" : "right",
76
85
  label: {
@@ -79,14 +88,16 @@ export function getChartAxes(col, row, layout) {
79
88
  title: {
80
89
  visible: !1
81
90
  },
82
- range: range,
83
- seriesIndex: index
91
+ seriesIndex: index,
92
+ width: -1
84
93
  }));
85
94
  }));
86
95
  let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount)[0];
87
96
  isArray(columnDimensionKey) && (columnDimensionKey = columnDimensionKey[0]);
88
- const data = layout.dataset.cacheCollectedValues[columnDimensionKey] || layout.dataset.collectedValues[columnDimensionKey], recordCol = layout.getRecordIndexByCol(col), colPath = layout.getColKeysPath()[recordCol], domain = data[colPath[colPath.length - 1]], axisOption = layout._table.pivotChartAxes.find((axisOption => "bottom" === axisOption.orient));
89
- axes.push(merge({}, axisOption, {
97
+ const data = layout.dataset.cacheCollectedValues[columnDimensionKey] || layout.dataset.collectedValues[columnDimensionKey], recordCol = layout.getRecordIndexByCol(col), colPath = layout.getColKeysPath()[recordCol], domain = data[colPath[colPath.length - 1]], axisOption = getAxisOption(col, row, "bottom", layout);
98
+ axes.push(merge({
99
+ domain: Array.from(domain)
100
+ }, axisOption, {
90
101
  type: "band",
91
102
  orient: "bottom",
92
103
  visible: !0,
@@ -106,8 +117,7 @@ export function getChartAxes(col, row, layout) {
106
117
  title: {
107
118
  visible: !1
108
119
  },
109
- height: -1,
110
- domain: Array.from(domain)
120
+ height: -1
111
121
  }));
112
122
  }
113
123
  return axes;
@@ -1 +1 @@
1
- {"version":3,"sources":["layout/chart-helper/get-chart-spec.ts"],"names":[],"mappings":"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","file":"get-chart-spec.js","sourcesContent":["import { cloneDeep, isArray, merge } from '@visactor/vutils';\nimport type { PivotLayoutMap } from '../pivot-layout';\nimport type { PivotChart } from '../../PivotChart';\nimport type { ITableAxisOption } from '../../ts-types/component/axis';\nimport type { PivotHeaderLayoutMap } from '../pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../simple-header-layout';\n\nexport function getRawChartSpec(col: number, row: number, layout: PivotLayoutMap | 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 indicatorKeys: string[] = [];\n const chartSpec = indicatorObj?.chartSpec;\n\n return chartSpec;\n}\n\nexport function getChartSpec(col: number, row: number, layout: PivotLayoutMap): any {\n let chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n chartSpec = cloneDeep(chartSpec);\n chartSpec.axes = layout.getChartAxes(col, row);\n chartSpec.padding = 0;\n return chartSpec;\n }\n return null;\n}\n\nexport function getChartAxes(col: number, row: number, layout: PivotLayoutMap): any {\n const axes = [];\n if (layout.indicatorsAsCol) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const colIndex = layout.getRecordIndexByCol(col);\n indicatorKeys.forEach((key, index) => {\n if (isArray(key)) {\n key = key[0];\n }\n // const data = layout.dataset.collectedValues[key];\n const data = layout.dataset.collectedValues[key + '_align']\n ? layout.dataset.collectedValues[key + '_align']\n : layout.dataset.collectedValues[key];\n const range =\n data[layout.getColKeysPath()[colIndex][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]];\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === (index === 0 ? 'bottom' : 'top');\n });\n axes.push(\n merge({}, axisOption, {\n type: 'linear',\n orient: index === 0 ? 'bottom' : 'top',\n // visible: true,\n label: { visible: false },\n title: { visible: false },\n range,\n seriesIndex: index\n })\n );\n });\n\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, col)[0];\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[rowDimensionKey] || layout.dataset.collectedValues[rowDimensionKey];\n const recordRow = layout.getRecordIndexByRow(row);\n const rowPath = layout.getRowKeysPath()[recordRow];\n const domain = data[rowPath[rowPath.length - 1]] as Set<string>;\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === 'left';\n });\n axes.push(\n merge({}, axisOption, {\n type: 'band',\n orient: 'left',\n // visible: true,\n label: { visible: false, space: 0 },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false },\n // height: -1,\n width: -1,\n // autoIndent: false,\n domain: Array.from(domain)\n })\n );\n } else {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const rowIndex = layout.getRecordIndexByRow(row);\n indicatorKeys.forEach((key, index) => {\n if (isArray(key)) {\n key = key[0];\n }\n const data = layout.dataset.collectedValues[key + '_align']\n ? layout.dataset.collectedValues[key + '_align']\n : layout.dataset.collectedValues[key];\n const range =\n data[layout.getRowKeysPath()[rowIndex][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]];\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === (index === 0 ? 'left' : 'right');\n });\n axes.push(\n merge({}, axisOption, {\n type: 'linear',\n orient: index === 0 ? 'left' : 'right',\n // visible: true,\n label: { visible: false },\n title: { visible: false },\n range,\n seriesIndex: index\n // grid: index === 0 ? undefined : { visible: false }\n })\n );\n });\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount)[0];\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[columnDimensionKey] || layout.dataset.collectedValues[columnDimensionKey];\n const recordCol = layout.getRecordIndexByCol(col);\n const colPath = layout.getColKeysPath()[recordCol];\n const domain = data[colPath[colPath.length - 1]] as Set<string>;\n const axisOption = ((layout._table as PivotChart).pivotChartAxes as ITableAxisOption[]).find(axisOption => {\n return axisOption.orient === 'bottom';\n });\n axes.push(\n merge({}, axisOption, {\n type: 'band',\n orient: 'bottom',\n visible: true,\n label: { visible: false, space: 0 },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false },\n height: -1,\n // autoIndent: false,\n domain: Array.from(domain)\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: PivotLayoutMap | 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"]}
1
+ {"version":3,"sources":["layout/chart-helper/get-chart-spec.ts"],"names":[],"mappings":"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","file":"get-chart-spec.js","sourcesContent":["import { cloneDeep, isArray, merge } from '@visactor/vutils';\nimport type { PivotLayoutMap } from '../pivot-layout';\nimport type { PivotChart } from '../../PivotChart';\nimport type { ITableAxisOption } from '../../ts-types/component/axis';\nimport type { PivotHeaderLayoutMap } from '../pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../simple-header-layout';\nimport { checkZeroAlign, getAxisOption } from './get-axis-config';\n\nexport function getRawChartSpec(col: number, row: number, layout: PivotLayoutMap | 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 indicatorKeys: string[] = [];\n const chartSpec = indicatorObj?.chartSpec;\n\n return chartSpec;\n}\n\nexport function getChartSpec(col: number, row: number, layout: PivotLayoutMap): any {\n let chartSpec = layout.getRawChartSpec(col, row);\n if (chartSpec) {\n chartSpec = cloneDeep(chartSpec);\n chartSpec.axes = layout.getChartAxes(col, row);\n chartSpec.padding = 0;\n return chartSpec;\n }\n return null;\n}\n\nexport function getChartAxes(col: number, row: number, layout: PivotLayoutMap): any {\n const axes = [];\n if (layout.indicatorsAsCol) {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const colIndex = layout.getRecordIndexByCol(col);\n indicatorKeys.forEach((key, index) => {\n if (isArray(key)) {\n key = key[0];\n }\n\n const isZeroAlign = checkZeroAlign(col, row, index === 0 ? 'bottom' : 'top', layout);\n\n const data = layout.dataset.collectedValues[key + (isZeroAlign ? '_align' : '')]\n ? layout.dataset.collectedValues[key + (isZeroAlign ? '_align' : '')]\n : layout.dataset.collectedValues[key];\n const range = data[\n layout.getColKeysPath()[colIndex][Math.max(0, layout.columnHeaderLevelCount - 1 - layout.topAxesCount)]\n ] as { max?: number; min?: number };\n\n const axisOption = getAxisOption(col, row, index === 0 ? 'bottom' : 'top', layout);\n if (axisOption?.zero) {\n range.min = Math.min(range.min, 0);\n range.max = Math.max(range.max, 0);\n }\n axes.push(\n merge(\n {\n range\n },\n axisOption,\n {\n type: 'linear',\n orient: index === 0 ? 'bottom' : 'top',\n // visible: true,\n label: { visible: false },\n title: { visible: false },\n seriesIndex: index,\n height: -1\n }\n )\n );\n });\n\n let rowDimensionKey = layout.getDimensionKeyInChartSpec(layout.rowHeaderLevelCount, col)[0];\n if (isArray(rowDimensionKey)) {\n rowDimensionKey = rowDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[rowDimensionKey] || layout.dataset.collectedValues[rowDimensionKey];\n const recordRow = layout.getRecordIndexByRow(row);\n const rowPath = layout.getRowKeysPath()[recordRow];\n const domain = data[rowPath[rowPath.length - 1]] as Set<string>;\n\n const axisOption = getAxisOption(col, row, 'left', layout);\n axes.push(\n merge(\n {\n domain: Array.from(domain)\n },\n axisOption,\n {\n type: 'band',\n orient: 'left',\n // visible: true,\n label: { visible: false, space: 0 },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false },\n // height: -1,\n width: -1\n // autoIndent: false,\n }\n )\n );\n } else {\n const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);\n const rowIndex = layout.getRecordIndexByRow(row);\n indicatorKeys.forEach((key, index) => {\n if (isArray(key)) {\n key = key[0];\n }\n\n const isZeroAlign = checkZeroAlign(col, row, index === 0 ? 'left' : 'right', layout);\n\n const data = layout.dataset.collectedValues[key + (isZeroAlign ? '_align' : '')]\n ? layout.dataset.collectedValues[key + (isZeroAlign ? '_align' : '')]\n : layout.dataset.collectedValues[key];\n const range = data[\n layout.getRowKeysPath()[rowIndex][Math.max(0, layout.rowHeaderLevelCount - 1 - layout.leftAxesCount)]\n ] as { max?: number; min?: number };\n\n const axisOption = getAxisOption(col, row, index === 0 ? 'left' : 'right', layout);\n if (axisOption?.zero) {\n range.min = Math.min(range.min, 0);\n range.max = Math.max(range.max, 0);\n }\n axes.push(\n merge(\n {\n range\n },\n axisOption,\n {\n type: 'linear',\n orient: index === 0 ? 'left' : 'right',\n // visible: true,\n label: { visible: false },\n title: { visible: false },\n seriesIndex: index,\n width: -1\n // grid: index === 0 ? undefined : { visible: false }\n }\n )\n );\n });\n\n let columnDimensionKey = layout.getDimensionKeyInChartSpec(col, layout.columnHeaderLevelCount)[0];\n if (isArray(columnDimensionKey)) {\n columnDimensionKey = columnDimensionKey[0];\n }\n const data =\n layout.dataset.cacheCollectedValues[columnDimensionKey] || layout.dataset.collectedValues[columnDimensionKey];\n const recordCol = layout.getRecordIndexByCol(col);\n const colPath = layout.getColKeysPath()[recordCol];\n const domain = data[colPath[colPath.length - 1]] as Set<string>;\n\n const axisOption = getAxisOption(col, row, 'bottom', layout);\n axes.push(\n merge(\n {\n domain: Array.from(domain)\n },\n axisOption,\n {\n type: 'band',\n orient: 'bottom',\n visible: true,\n label: { visible: false, space: 0 },\n domainLine: { visible: false },\n tick: { visible: false },\n subTick: { visible: false },\n title: { visible: false },\n height: -1\n // autoIndent: 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: PivotLayoutMap | 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"]}
@@ -101,6 +101,9 @@ export declare class PivotHeaderLayoutMap implements LayoutMapAPI {
101
101
  isRowHeader(col: number, row: number): boolean;
102
102
  isRightFrozenColumn(col: number, row: number): boolean;
103
103
  isBottomFrozenRow(col: number, row: number): boolean;
104
+ isLeftBottomCorner(col: number, row: number): boolean;
105
+ isRightTopCorner(col: number, row: number): boolean;
106
+ isRightBottomCorner(col: number, row: number): boolean;
104
107
  getColumnHeaderRange(): CellRange;
105
108
  getRowHeaderRange(): CellRange;
106
109
  getCornerHeaderRange(): CellRange;
@@ -164,5 +167,6 @@ export declare class PivotHeaderLayoutMap implements LayoutMapAPI {
164
167
  getChartAxes(col: number, row: number): any[];
165
168
  getRawChartSpec(col: number, row: number): any;
166
169
  getChartDataId(col: number, row: number): any;
170
+ release(): void;
167
171
  }
168
172
  export {};
@@ -402,6 +402,15 @@ export class PivotHeaderLayoutMap {
402
402
  isBottomFrozenRow(col, row) {
403
403
  return col >= this.rowHeaderLevelCount && row >= this.rowCount - this.bottomFrozenRowCount && col < this.colCount - this.rightFrozenColCount;
404
404
  }
405
+ isLeftBottomCorner(col, row) {
406
+ return col < this.rowHeaderLevelCount && row >= this.rowCount - this.bottomFrozenRowCount;
407
+ }
408
+ isRightTopCorner(col, row) {
409
+ return col >= this.colCount - this.rightFrozenColCount && row < this.columnHeaderLevelCount;
410
+ }
411
+ isRightBottomCorner(col, row) {
412
+ return col >= this.colCount - this.rightFrozenColCount && row >= this.rowCount - this.bottomFrozenRowCount;
413
+ }
405
414
  getColumnHeaderRange() {
406
415
  return {
407
416
  start: {
@@ -951,5 +960,12 @@ export class PivotHeaderLayoutMap {
951
960
  getChartDataId(col, row) {
952
961
  return getChartDataId(col, row, this);
953
962
  }
963
+ release() {
964
+ const activeChartInstance = this._table._getActiveChartInstance();
965
+ null == activeChartInstance || activeChartInstance.release(), this._indicators.forEach((indicatorObject => {
966
+ var _a;
967
+ null === (_a = indicatorObject.chartInstance) || void 0 === _a || _a.release();
968
+ }));
969
+ }
954
970
  }
955
971
  //# sourceMappingURL=pivot-header-layout.js.map