@visactor/vtable 1.13.3-alpha.5 → 1.14.0

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 (169) hide show
  1. package/cjs/ListTable.d.ts +1 -1
  2. package/cjs/ListTable.js +8 -8
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js +5 -2
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.js +3 -3
  7. package/cjs/PivotTable.js.map +1 -1
  8. package/cjs/components/axis/get-axis-component-size.js +20 -16
  9. package/cjs/components/axis/get-axis-component-size.js.map +1 -1
  10. package/cjs/components/react/react-custom-layout.js +1 -1
  11. package/cjs/components/react/react-custom-layout.js.map +1 -1
  12. package/cjs/core/BaseTable.d.ts +4 -4
  13. package/cjs/core/BaseTable.js +5 -5
  14. package/cjs/core/BaseTable.js.map +1 -1
  15. package/cjs/core/record-helper.js +3 -3
  16. package/cjs/core/record-helper.js.map +1 -1
  17. package/cjs/edit/edit-manager.d.ts +2 -2
  18. package/cjs/edit/edit-manager.js +17 -8
  19. package/cjs/edit/edit-manager.js.map +1 -1
  20. package/cjs/event/listener/table-group.js +1 -1
  21. package/cjs/event/listener/table-group.js.map +1 -1
  22. package/cjs/event/media-click.js +4 -1
  23. package/cjs/event/media-click.js.map +1 -1
  24. package/cjs/index.d.ts +1 -1
  25. package/cjs/index.js +1 -1
  26. package/cjs/index.js.map +1 -1
  27. package/cjs/layout/cell-range/simple-cell-range.js +44 -4
  28. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
  29. package/cjs/layout/chart-helper/get-axis-config.d.ts +17 -4
  30. package/cjs/layout/chart-helper/get-axis-config.js +129 -71
  31. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  32. package/cjs/layout/chart-helper/get-axis-domain.d.ts +8 -2
  33. package/cjs/layout/chart-helper/get-axis-domain.js +11 -6
  34. package/cjs/layout/chart-helper/get-axis-domain.js.map +1 -1
  35. package/cjs/layout/chart-helper/get-chart-spec.js +13 -37
  36. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  37. package/cjs/layout/chart-helper/tick-align.d.ts +12 -0
  38. package/cjs/layout/chart-helper/tick-align.js +23 -0
  39. package/cjs/layout/chart-helper/tick-align.js.map +1 -0
  40. package/cjs/layout/pivot-header-layout.js +3 -1
  41. package/cjs/layout/pivot-header-layout.js.map +1 -1
  42. package/cjs/plugins/custom-cell-style.d.ts +1 -1
  43. package/cjs/plugins/custom-cell-style.js +2 -3
  44. package/cjs/plugins/custom-cell-style.js.map +1 -1
  45. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +5 -2
  46. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  47. package/cjs/scenegraph/group-creater/cell-helper.js +1 -1
  48. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  49. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  50. package/cjs/scenegraph/group-creater/cell-type/radio-cell.js +1 -1
  51. package/cjs/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  52. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  53. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  54. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +1 -1
  55. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  56. package/cjs/scenegraph/group-creater/progress/proxy.js +8 -8
  57. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  58. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
  59. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  60. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js +3 -3
  61. package/cjs/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  62. package/cjs/scenegraph/layout/compute-row-height.js +18 -13
  63. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  64. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  65. package/cjs/scenegraph/layout/update-row.js +4 -4
  66. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  67. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  68. package/cjs/scenegraph/scenegraph.js +1 -1
  69. package/cjs/scenegraph/scenegraph.js.map +1 -1
  70. package/cjs/state/checkbox/checkbox.js +84 -51
  71. package/cjs/state/checkbox/checkbox.js.map +1 -1
  72. package/cjs/state/state.d.ts +1 -1
  73. package/cjs/state/state.js +4 -4
  74. package/cjs/state/state.js.map +1 -1
  75. package/cjs/tools/update-row.js +5 -4
  76. package/cjs/tools/update-row.js.map +1 -1
  77. package/cjs/ts-types/base-table.d.ts +7 -3
  78. package/cjs/ts-types/base-table.js.map +1 -1
  79. package/cjs/ts-types/common.d.ts +6 -1
  80. package/cjs/ts-types/common.js.map +1 -1
  81. package/cjs/ts-types/table-engine.d.ts +3 -7
  82. package/cjs/ts-types/table-engine.js.map +1 -1
  83. package/cjs/vrender.js.map +1 -1
  84. package/dist/vtable.js +547 -338
  85. package/dist/vtable.min.js +2 -2
  86. package/es/ListTable.d.ts +1 -1
  87. package/es/ListTable.js +9 -9
  88. package/es/ListTable.js.map +1 -1
  89. package/es/PivotChart.js +5 -2
  90. package/es/PivotChart.js.map +1 -1
  91. package/es/PivotTable.js +4 -4
  92. package/es/PivotTable.js.map +1 -1
  93. package/es/components/axis/get-axis-component-size.js +17 -17
  94. package/es/components/axis/get-axis-component-size.js.map +1 -1
  95. package/es/components/react/react-custom-layout.js +1 -1
  96. package/es/components/react/react-custom-layout.js.map +1 -1
  97. package/es/core/BaseTable.d.ts +4 -4
  98. package/es/core/BaseTable.js +5 -5
  99. package/es/core/BaseTable.js.map +1 -1
  100. package/es/core/record-helper.js +3 -3
  101. package/es/core/record-helper.js.map +1 -1
  102. package/es/edit/edit-manager.d.ts +2 -2
  103. package/es/edit/edit-manager.js +13 -5
  104. package/es/edit/edit-manager.js.map +1 -1
  105. package/es/event/listener/table-group.js +1 -1
  106. package/es/event/listener/table-group.js.map +1 -1
  107. package/es/event/media-click.js +4 -1
  108. package/es/event/media-click.js.map +1 -1
  109. package/es/index.d.ts +1 -1
  110. package/es/index.js +1 -1
  111. package/es/index.js.map +1 -1
  112. package/es/layout/cell-range/simple-cell-range.js +44 -4
  113. package/es/layout/cell-range/simple-cell-range.js.map +1 -1
  114. package/es/layout/chart-helper/get-axis-config.d.ts +17 -4
  115. package/es/layout/chart-helper/get-axis-config.js +127 -68
  116. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  117. package/es/layout/chart-helper/get-axis-domain.d.ts +8 -2
  118. package/es/layout/chart-helper/get-axis-domain.js +10 -6
  119. package/es/layout/chart-helper/get-axis-domain.js.map +1 -1
  120. package/es/layout/chart-helper/get-chart-spec.js +13 -40
  121. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  122. package/es/layout/chart-helper/tick-align.d.ts +12 -0
  123. package/es/layout/chart-helper/tick-align.js +16 -0
  124. package/es/layout/chart-helper/tick-align.js.map +1 -0
  125. package/es/layout/pivot-header-layout.js +3 -1
  126. package/es/layout/pivot-header-layout.js.map +1 -1
  127. package/es/plugins/custom-cell-style.d.ts +1 -1
  128. package/es/plugins/custom-cell-style.js +3 -4
  129. package/es/plugins/custom-cell-style.js.map +1 -1
  130. package/es/scenegraph/graphic/contributions/chart-render-helper.js +5 -2
  131. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  132. package/es/scenegraph/group-creater/cell-helper.js +2 -2
  133. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  134. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  135. package/es/scenegraph/group-creater/cell-type/radio-cell.js +1 -1
  136. package/es/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  137. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  138. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  139. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +1 -1
  140. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  141. package/es/scenegraph/group-creater/progress/proxy.js +8 -8
  142. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  143. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +6 -6
  144. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  145. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js +3 -3
  146. package/es/scenegraph/group-creater/progress/update-position/sort-vertical.js.map +1 -1
  147. package/es/scenegraph/layout/compute-row-height.js +17 -13
  148. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  149. package/es/scenegraph/layout/update-height.js.map +1 -1
  150. package/es/scenegraph/layout/update-row.js +4 -4
  151. package/es/scenegraph/layout/update-row.js.map +1 -1
  152. package/es/scenegraph/layout/update-width.js.map +1 -1
  153. package/es/scenegraph/scenegraph.js +1 -1
  154. package/es/scenegraph/scenegraph.js.map +1 -1
  155. package/es/state/checkbox/checkbox.js +83 -52
  156. package/es/state/checkbox/checkbox.js.map +1 -1
  157. package/es/state/state.d.ts +1 -1
  158. package/es/state/state.js +4 -4
  159. package/es/state/state.js.map +1 -1
  160. package/es/tools/update-row.js +5 -4
  161. package/es/tools/update-row.js.map +1 -1
  162. package/es/ts-types/base-table.d.ts +7 -3
  163. package/es/ts-types/base-table.js.map +1 -1
  164. package/es/ts-types/common.d.ts +6 -1
  165. package/es/ts-types/common.js.map +1 -1
  166. package/es/ts-types/table-engine.d.ts +3 -7
  167. package/es/ts-types/table-engine.js.map +1 -1
  168. package/es/vrender.js.map +1 -1
  169. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/layout/cell-range/simple-cell-range.ts"],"names":[],"mappings":"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","file":"simple-cell-range.js","sourcesContent":["import type { CellRange, TextColumnDefine } from '../../ts-types';\nimport type { SimpleHeaderLayoutMap } from '../simple-header-layout';\n\nexport function getCellRange(col: number, row: number, layout: SimpleHeaderLayoutMap): CellRange {\n if (col === -1 || row === -1) {\n return {\n start: { col, row },\n end: { col, row }\n };\n }\n if (layout._cellRangeMap.has(`$${col}$${row}`)) {\n return layout._cellRangeMap.get(`$${col}$${row}`);\n }\n let cellRange: CellRange = { start: { col, row }, end: { col, row } };\n if (layout.transpose) {\n cellRange = getCellRangeTranspose(col, row, layout);\n } else {\n // hover相关的单元格位置是-1,-1,getCellRange计算有误,先进行判断\n if (layout.headerLevelCount <= row) {\n //如果是body部分 设置了需要合并单元格 这里判断上下是否内容相同 相同的话 将cellRange范围扩大\n if (\n layout.headerLevelCount <= row &&\n (layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount]?.define as TextColumnDefine)?.mergeCell\n ) {\n const value = layout._table.getCellValue(col, row);\n for (let r = row - 1; r >= layout.headerLevelCount; r--) {\n const last_Value = layout._table.getCellValue(col, r);\n if (typeof layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell === 'boolean') {\n if (value !== last_Value) {\n break;\n }\n } else {\n if (\n !(layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell as Function)(\n value,\n last_Value\n )\n ) {\n break;\n }\n }\n cellRange.start.row = r;\n }\n for (let r = row + 1; r < layout.rowCount; r++) {\n const next_Value = layout._table.getCellValue(col, r);\n if (typeof layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell === 'boolean') {\n if (value !== next_Value) {\n break;\n }\n } else {\n if (\n !(layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell as Function)(\n value,\n next_Value\n )\n ) {\n break;\n }\n }\n cellRange.end.row = r;\n }\n }\n getTreeTitleMerge(col, row, cellRange, layout);\n // return cellRange;\n } else {\n //in header\n const id = layout.getCellId(col, row);\n for (let c = col - 1; c >= 0; c--) {\n if (id !== layout.getCellId(c, row)) {\n break;\n }\n cellRange.start.col = c;\n }\n for (let c = col + 1; c < (layout.colCount ?? 0); c++) {\n if (id !== layout.getCellId(c, row)) {\n break;\n }\n cellRange.end.col = c;\n }\n for (let r = row - 1; r >= 0; r--) {\n if (id !== layout.getCellId(col, r)) {\n break;\n }\n cellRange.start.row = r;\n }\n for (let r = row + 1; r < layout.headerLevelCount; r++) {\n if (id !== layout.getCellId(col, r)) {\n break;\n }\n cellRange.end.row = r;\n }\n // return cellRange;\n }\n }\n layout._cellRangeMap.set(`$${col}$${row}`, cellRange);\n return cellRange;\n}\n\nfunction getTreeTitleMerge(col: number, row: number, cellRange: CellRange, layout: SimpleHeaderLayoutMap) {\n if (layout.rowHierarchyType !== 'tree') {\n return;\n }\n\n const cellRecord = layout._table.getCellRawRecord(col, row);\n if (cellRecord?.vtableMerge) {\n // const vtableMergeName = cellRecord.vtableMergeName;\n cellRange.start.col = layout.rowHeaderLevelCount;\n cellRange.end.col = layout.colCount - 1;\n cellRange.start.row = cellRange.end.row = row;\n }\n}\n\nexport function getCellRangeTranspose(col: number, row: number, layout: SimpleHeaderLayoutMap): CellRange {\n const result: CellRange = { start: { col, row }, end: { col, row } };\n // hover相关的单元格位置是-1,-1,getCellRange计算有误,先进行判断\n if (layout.headerLevelCount + layout.leftRowSeriesNumberColumnCount <= col || (col === -1 && row === -1)) {\n //如果是body部分 设置了需要合并单元格 这里判断左右是否内容相同 相同的话 将cellRange范围扩大\n if (\n layout.headerLevelCount + layout.leftRowSeriesNumberColumnCount <= col &&\n layout.columnObjects[row]?.define?.mergeCell\n ) {\n const value = layout._table.getCellValue(col, row);\n for (let c = col - 1; c >= layout.headerLevelCount + layout.leftRowSeriesNumberColumnCount; c--) {\n const last_Value = layout._table.getCellValue(c, row);\n if (typeof layout.columnObjects[row].define.mergeCell === 'boolean') {\n if (value !== last_Value) {\n break;\n }\n } else {\n if (!(layout.columnObjects[row].define.mergeCell as Function)(value, last_Value)) {\n break;\n }\n }\n result.start.col = c;\n }\n for (let c = col + 1; c < (layout.colCount ?? 0); c++) {\n const next_Value = layout._table.getCellValue(c, row);\n if (typeof layout.columnObjects[row].define.mergeCell === 'boolean') {\n if (value !== next_Value) {\n break;\n }\n } else {\n if (!(layout.columnObjects[row].define.mergeCell as Function)(value, next_Value)) {\n break;\n }\n }\n result.end.col = c;\n }\n }\n return result;\n }\n //in header\n const id = layout.getCellId(col, row);\n for (let r = row - 1; r >= 0; r--) {\n if (id !== layout.getCellId(col, r)) {\n break;\n }\n result.start.row = r;\n }\n for (let r = row + 1; r < (layout.rowCount ?? 0); r++) {\n if (id !== layout.getCellId(col, r)) {\n break;\n }\n result.end.row = r;\n }\n for (let c = col - 1; c >= 0; c--) {\n if (id !== layout.getCellId(c, row)) {\n break;\n }\n result.start.col = c;\n }\n for (let c = col + 1; c < layout.headerLevelCount + layout.leftRowSeriesNumberColumnCount; c++) {\n if (id !== layout.getCellId(c, row)) {\n break;\n }\n result.end.col = c;\n }\n return result;\n}\n"]}
1
+ {"version":3,"sources":["../src/layout/cell-range/simple-cell-range.ts"],"names":[],"mappings":"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","file":"simple-cell-range.js","sourcesContent":["import type { CellRange, TextColumnDefine } from '../../ts-types';\nimport type { SimpleHeaderLayoutMap } from '../simple-header-layout';\n\nexport function getCellRange(col: number, row: number, layout: SimpleHeaderLayoutMap): CellRange {\n if (col === -1 || row === -1) {\n return {\n start: { col, row },\n end: { col, row }\n };\n }\n if (layout._cellRangeMap.has(`$${col}$${row}`)) {\n return layout._cellRangeMap.get(`$${col}$${row}`);\n }\n let cellRange: CellRange = { start: { col, row }, end: { col, row } };\n if (layout.transpose) {\n cellRange = getCellRangeTranspose(col, row, layout);\n } else {\n // hover相关的单元格位置是-1,-1,getCellRange计算有误,先进行判断\n if (layout.headerLevelCount <= row) {\n //如果是body部分 设置了需要合并单元格 这里判断上下是否内容相同 相同的话 将cellRange范围扩大\n if (\n layout.headerLevelCount <= row &&\n (layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount]?.define as TextColumnDefine)?.mergeCell\n ) {\n const value = layout._table.getCellValue(col, row);\n for (let r = row - 1; r >= layout.headerLevelCount; r--) {\n const last_Value = layout._table.getCellValue(col, r);\n if (typeof layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell === 'boolean') {\n if (value !== last_Value) {\n break;\n }\n } else {\n if (\n !(layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell as Function)(\n value,\n last_Value,\n {\n source: {\n col,\n row\n },\n target: {\n col,\n row: r\n },\n table: layout._table\n }\n )\n ) {\n break;\n }\n }\n cellRange.start.row = r;\n }\n for (let r = row + 1; r < layout.rowCount; r++) {\n const next_Value = layout._table.getCellValue(col, r);\n if (typeof layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell === 'boolean') {\n if (value !== next_Value) {\n break;\n }\n } else {\n if (\n !(layout.columnObjects[col - layout.leftRowSeriesNumberColumnCount].define.mergeCell as Function)(\n value,\n next_Value,\n {\n source: {\n col,\n row\n },\n target: {\n col,\n row: r\n },\n table: layout._table\n }\n )\n ) {\n break;\n }\n }\n cellRange.end.row = r;\n }\n }\n getTreeTitleMerge(col, row, cellRange, layout);\n // return cellRange;\n } else {\n //in header\n const id = layout.getCellId(col, row);\n for (let c = col - 1; c >= 0; c--) {\n if (id !== layout.getCellId(c, row)) {\n break;\n }\n cellRange.start.col = c;\n }\n for (let c = col + 1; c < (layout.colCount ?? 0); c++) {\n if (id !== layout.getCellId(c, row)) {\n break;\n }\n cellRange.end.col = c;\n }\n for (let r = row - 1; r >= 0; r--) {\n if (id !== layout.getCellId(col, r)) {\n break;\n }\n cellRange.start.row = r;\n }\n for (let r = row + 1; r < layout.headerLevelCount; r++) {\n if (id !== layout.getCellId(col, r)) {\n break;\n }\n cellRange.end.row = r;\n }\n // return cellRange;\n }\n }\n layout._cellRangeMap.set(`$${col}$${row}`, cellRange);\n return cellRange;\n}\n\nfunction getTreeTitleMerge(col: number, row: number, cellRange: CellRange, layout: SimpleHeaderLayoutMap) {\n if (layout.rowHierarchyType !== 'tree') {\n return;\n }\n\n const cellRecord = layout._table.getCellRawRecord(col, row);\n if (cellRecord?.vtableMerge) {\n // const vtableMergeName = cellRecord.vtableMergeName;\n cellRange.start.col = layout.rowHeaderLevelCount;\n cellRange.end.col = layout.colCount - 1;\n cellRange.start.row = cellRange.end.row = row;\n }\n}\n\nexport function getCellRangeTranspose(col: number, row: number, layout: SimpleHeaderLayoutMap): CellRange {\n const result: CellRange = { start: { col, row }, end: { col, row } };\n // hover相关的单元格位置是-1,-1,getCellRange计算有误,先进行判断\n if (layout.headerLevelCount + layout.leftRowSeriesNumberColumnCount <= col || (col === -1 && row === -1)) {\n //如果是body部分 设置了需要合并单元格 这里判断左右是否内容相同 相同的话 将cellRange范围扩大\n if (\n layout.headerLevelCount + layout.leftRowSeriesNumberColumnCount <= col &&\n layout.columnObjects[row]?.define?.mergeCell\n ) {\n const value = layout._table.getCellValue(col, row);\n for (let c = col - 1; c >= layout.headerLevelCount + layout.leftRowSeriesNumberColumnCount; c--) {\n const last_Value = layout._table.getCellValue(c, row);\n if (typeof layout.columnObjects[row].define.mergeCell === 'boolean') {\n if (value !== last_Value) {\n break;\n }\n } else {\n if (\n !(layout.columnObjects[row].define.mergeCell as Function)(value, last_Value, {\n source: {\n col,\n row\n },\n target: {\n col: c,\n row\n },\n table: layout._table\n })\n ) {\n break;\n }\n }\n result.start.col = c;\n }\n for (let c = col + 1; c < (layout.colCount ?? 0); c++) {\n const next_Value = layout._table.getCellValue(c, row);\n if (typeof layout.columnObjects[row].define.mergeCell === 'boolean') {\n if (value !== next_Value) {\n break;\n }\n } else {\n if (\n !(layout.columnObjects[row].define.mergeCell as Function)(value, next_Value, {\n source: {\n col,\n row\n },\n target: {\n col: c,\n row\n },\n table: layout._table\n })\n ) {\n break;\n }\n }\n result.end.col = c;\n }\n }\n return result;\n }\n //in header\n const id = layout.getCellId(col, row);\n for (let r = row - 1; r >= 0; r--) {\n if (id !== layout.getCellId(col, r)) {\n break;\n }\n result.start.row = r;\n }\n for (let r = row + 1; r < (layout.rowCount ?? 0); r++) {\n if (id !== layout.getCellId(col, r)) {\n break;\n }\n result.end.row = r;\n }\n for (let c = col - 1; c >= 0; c--) {\n if (id !== layout.getCellId(c, row)) {\n break;\n }\n result.start.col = c;\n }\n for (let c = col + 1; c < layout.headerLevelCount + layout.leftRowSeriesNumberColumnCount; c++) {\n if (id !== layout.getCellId(c, row)) {\n break;\n }\n result.end.col = c;\n }\n return result;\n}\n"]}
@@ -1,11 +1,16 @@
1
1
  import type { PivotHeaderLayoutMap } from '../pivot-header-layout';
2
2
  import type { CollectedValue } from '../../ts-types';
3
+ type AxisRange = {
4
+ min: number;
5
+ max: number;
6
+ };
3
7
  export type GetAxisConfigInPivotChart = (col: number, row: number, layout: PivotHeaderLayoutMap) => any;
4
8
  export declare function getAxisConfigInPivotChart(col: number, row: number, layout: PivotHeaderLayoutMap): any;
5
9
  export declare function getAxisOption(col: number, row: number, orient: string, layout: PivotHeaderLayoutMap): {
6
10
  axisOption: any;
7
11
  isPercent: any;
8
12
  isZeroAlign: boolean;
13
+ isTickAlign: boolean;
9
14
  seriesIndice: any;
10
15
  theme: any;
11
16
  chartType: any;
@@ -13,14 +18,22 @@ export declare function getAxisOption(col: number, row: number, orient: string,
13
18
  axisOption: any;
14
19
  isPercent: boolean;
15
20
  isZeroAlign: boolean;
21
+ isTickAlign: boolean;
16
22
  theme: any;
17
23
  chartType: any;
18
24
  seriesIndice?: undefined;
19
25
  };
20
- export declare function getAxisRange(collectedValues: Record<string, Record<string, CollectedValue>>, indicatorKeys: string[], isZeroAlign: boolean, colPath: string, seriesId: number | number[]): {
21
- max: number;
22
- min: number;
23
- } | null;
26
+ export declare function getAxisRange(collectedValues: Record<string, Record<string, CollectedValue>>, indicatorKeys: string[], isZeroAlign: boolean, colPath: string, seriesId: number | number[]): AxisRange | null;
24
27
  export declare function isTopOrBottomAxis(col: number, row: number, layout: PivotHeaderLayoutMap): boolean;
25
28
  export declare function isLeftOrRightAxis(col: number, row: number, layout: PivotHeaderLayoutMap): boolean;
26
29
  export declare function hasLinearAxis(spec: any, tableAxesConfig: any, isHorizontal: boolean, isThisXAxis: boolean): boolean;
30
+ export declare function getAxisRangeAndTicks(col: number, row: number, index: number, position: 'bottom' | 'top' | 'left' | 'right', subAxisPosition: 'bottom' | 'top' | 'left' | 'right', indicatorKeys: string[], path: string, layout: PivotHeaderLayoutMap): {
31
+ axisOption: any;
32
+ range: AxisRange;
33
+ targetTicks: number[];
34
+ targetRange: {
35
+ max: number;
36
+ min: number;
37
+ };
38
+ };
39
+ export {};
@@ -8,20 +8,15 @@ import { getQuadProps } from "../../scenegraph/utils/padding";
8
8
 
9
9
  import { getProp } from "../../scenegraph/utils/get-prop";
10
10
 
11
+ import { getTickModeFunction, getZeroAlignTickAlignTicks } from "./tick-align";
12
+
11
13
  export function getAxisConfigInPivotChart(col, row, layout) {
12
14
  var _a, _b, _c, _d, _e, _f, _g;
13
15
  if (layout._table.isPivotChart()) if (layout.indicatorsAsCol) {
14
16
  if (layout.hasTwoIndicatorAxes && row === layout.columnHeaderLevelCount - 1 && col >= layout.rowHeaderLevelCount && col < layout.colCount - layout.rightFrozenColCount) {
15
17
  const axisRange = getRange("top", col, row + 1, col, layout.columnHeaderLevelCount - 1, col, row, 1, layout);
16
18
  if (!axisRange) return;
17
- const chartCellStyle = layout._table._getCellStyle(col, row + 1), padding = getQuadProps(getProp("padding", chartCellStyle, col, row + 1, layout._table)), {range: range, ticks: ticks, axisOption: axisOption, isZeroAlign: isZeroAlign, theme: theme} = axisRange;
18
- if (isZeroAlign) {
19
- const subAxisRange = getRange("bottom", col, row + 1, col, layout.columnHeaderLevelCount - 1, col, row, 0, layout);
20
- if (subAxisRange) {
21
- const {range: subRange} = subAxisRange, align = getNewRangeToAlign(range, subRange);
22
- align && (range.min = align.range1[0], range.max = align.range1[1]);
23
- }
24
- }
19
+ const chartCellStyle = layout._table._getCellStyle(col, row + 1), padding = getQuadProps(getProp("padding", chartCellStyle, col, row + 1, layout._table)), {range: range, ticks: ticks, axisOption: axisOption, targetTicks: targetTicks, targetRange: targetRange, index: index, theme: theme} = axisRange;
25
20
  return isNumber(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
26
21
  range.min > 0 && (axisOption.zero = !1)), isNumber(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
27
22
  range.max < 0 && (axisOption.zero = !1)), merge({
@@ -32,13 +27,16 @@ export function getAxisConfigInPivotChart(col, row, layout) {
32
27
  label: {
33
28
  flush: !0
34
29
  },
30
+ tick: {
31
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
32
+ },
35
33
  __ticksForVTable: ticks,
36
34
  __vtableChartTheme: theme,
37
35
  __vtablePadding: padding
38
36
  });
39
37
  }
40
38
  if (row === layout.rowCount - layout.bottomFrozenRowCount && col >= layout.rowHeaderLevelCount && col < layout.colCount - layout.rightFrozenColCount) {
41
- const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);
39
+ const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
42
40
  let indicatorInfo = null;
43
41
  null == indicatorKeys || indicatorKeys.forEach((key => {
44
42
  const info = layout.getIndicatorInfo(key);
@@ -46,14 +44,7 @@ export function getAxisConfigInPivotChart(col, row, layout) {
46
44
  }));
47
45
  const axisRange = getRange("bottom", col, row - 1, col, row, col, row, 0, layout);
48
46
  if (!axisRange) return;
49
- const chartCellStyle = layout._table._getCellStyle(col, row - 1), padding = getQuadProps(getProp("padding", chartCellStyle, col, row - 1, layout._table)), {range: range, ticks: ticks, axisOption: axisOption, isZeroAlign: isZeroAlign, theme: theme} = axisRange;
50
- if (isZeroAlign) {
51
- const subAxisRange = getRange("top", col, row - 1, col, row, col, row, 1, layout);
52
- if (subAxisRange) {
53
- const {range: subRange} = subAxisRange, align = getNewRangeToAlign(range, subRange);
54
- align && (range.min = align.range1[0], range.max = align.range1[1]);
55
- }
56
- }
47
+ const chartCellStyle = layout._table._getCellStyle(col, row - 1), padding = getQuadProps(getProp("padding", chartCellStyle, col, row - 1, layout._table)), {range: range, ticks: ticks, axisOption: axisOption, index: index, targetTicks: targetTicks, targetRange: targetRange, theme: theme} = axisRange;
57
48
  return isNumber(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
58
49
  range.min > 0 && (axisOption.zero = !1)), isNumber(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
59
50
  range.max < 0 && (axisOption.zero = !1)), merge({
@@ -68,6 +59,9 @@ export function getAxisConfigInPivotChart(col, row, layout) {
68
59
  label: {
69
60
  flush: !0
70
61
  },
62
+ tick: {
63
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
64
+ },
71
65
  __ticksForVTable: ticks,
72
66
  __vtableChartTheme: theme,
73
67
  __vtablePadding: padding
@@ -95,7 +89,7 @@ export function getAxisConfigInPivotChart(col, row, layout) {
95
89
  }
96
90
  } else {
97
91
  if (col === layout.rowHeaderLevelCount - 1 && row >= layout.columnHeaderLevelCount && row < layout.rowCount - layout.bottomFrozenRowCount) {
98
- const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row).slice(0, 2);
92
+ const indicatorKeys = layout.getIndicatorKeyInChartSpec(col, row);
99
93
  let indicatorInfo = null;
100
94
  null == indicatorKeys || indicatorKeys.forEach((key => {
101
95
  const info = layout.getIndicatorInfo(key);
@@ -103,14 +97,7 @@ export function getAxisConfigInPivotChart(col, row, layout) {
103
97
  }));
104
98
  const axisRange = getRange("left", col + 1, row, col, row, col, row, 0, layout);
105
99
  if (!axisRange) return;
106
- const chartCellStyle = layout._table._getCellStyle(col + 1, row), padding = getQuadProps(getProp("padding", chartCellStyle, col + 1, row, layout._table)), {range: range, ticks: ticks, axisOption: axisOption, isZeroAlign: isZeroAlign, theme: theme} = axisRange;
107
- if (isZeroAlign) {
108
- const subAxisRange = getRange("right", col + 1, row, col, row, col, row, 1, layout);
109
- if (subAxisRange) {
110
- const {range: subRange} = subAxisRange, align = getNewRangeToAlign(range, subRange);
111
- align && (range.min = align.range1[0], range.max = align.range1[1]);
112
- }
113
- }
100
+ const chartCellStyle = layout._table._getCellStyle(col + 1, row), padding = getQuadProps(getProp("padding", chartCellStyle, col + 1, row, layout._table)), {range: range, ticks: ticks, axisOption: axisOption, index: index, targetTicks: targetTicks, targetRange: targetRange, theme: theme} = axisRange;
114
101
  return isNumber(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
115
102
  range.min > 0 && (axisOption.zero = !1)), isNumber(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
116
103
  range.max < 0 && (axisOption.zero = !1)), merge({
@@ -126,6 +113,9 @@ export function getAxisConfigInPivotChart(col, row, layout) {
126
113
  label: {
127
114
  flush: !0
128
115
  },
116
+ tick: {
117
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
118
+ },
129
119
  __ticksForVTable: ticks,
130
120
  __vtableChartTheme: theme,
131
121
  __vtablePadding: padding
@@ -134,14 +124,7 @@ export function getAxisConfigInPivotChart(col, row, layout) {
134
124
  if (col === layout.colCount - layout.rightFrozenColCount && row >= layout.columnHeaderLevelCount && row < layout.rowCount - layout.bottomFrozenRowCount) {
135
125
  const axisRange = getRange("right", col - 1, row, layout.rowHeaderLevelCount - 1, row, col, row, 1, layout);
136
126
  if (!axisRange) return;
137
- const chartCellStyle = layout._table._getCellStyle(col - 1, row), padding = getQuadProps(getProp("padding", chartCellStyle, col - 1, row, layout._table)), {range: range, ticks: ticks, axisOption: axisOption, isZeroAlign: isZeroAlign, theme: theme} = axisRange;
138
- if (isZeroAlign) {
139
- const subAxisRange = getRange("left", col - 1, row, layout.rowHeaderLevelCount - 1, row, col, row, 0, layout);
140
- if (subAxisRange) {
141
- const {range: subRange} = subAxisRange, align = getNewRangeToAlign(range, subRange);
142
- align && (range.min = align.range1[0], range.max = align.range1[1]);
143
- }
144
- }
127
+ const chartCellStyle = layout._table._getCellStyle(col - 1, row), padding = getQuadProps(getProp("padding", chartCellStyle, col - 1, row, layout._table)), {range: range, ticks: ticks, axisOption: axisOption, index: index, targetTicks: targetTicks, targetRange: targetRange, theme: theme} = axisRange;
145
128
  return isNumber(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
146
129
  range.min > 0 && (axisOption.zero = !1)), isNumber(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
147
130
  range.max < 0 && (axisOption.zero = !1)), merge({
@@ -155,6 +138,9 @@ export function getAxisConfigInPivotChart(col, row, layout) {
155
138
  label: {
156
139
  flush: !0
157
140
  },
141
+ tick: {
142
+ tickMode: getTickModeFunction(targetTicks, targetRange, range, index)
143
+ },
158
144
  __ticksForVTable: ticks,
159
145
  __vtableChartTheme: theme,
160
146
  __vtablePadding: padding
@@ -189,24 +175,28 @@ export function getAxisOption(col, row, orient, layout) {
189
175
  if (axisOption) {
190
176
  const {seriesIndex: seriesIndex, seriesId: seriesId} = axisOption;
191
177
  let seriesIndice, seriesSpec;
192
- return isValid(seriesId) && isArray(spec.series) ? seriesIndice = (isArray(seriesId) ? seriesId : [ seriesId ]).map((id => {
178
+ isValid(seriesId) && isArray(spec.series) ? seriesIndice = (isArray(seriesId) ? seriesId : [ seriesId ]).map((id => {
193
179
  const index = spec.series.findIndex((s => s.id === id));
194
180
  return index >= 0 && (seriesSpec = spec.series[index]), index;
195
- })) : isValid(seriesIndex) && isArray(spec.series) && (seriesIndice = seriesIndex),
196
- {
181
+ })) : isValid(seriesIndex) && isArray(spec.series) && (seriesIndice = seriesIndex);
182
+ const {isZeroAlign: isZeroAlign, isTickAlign: isTickAlign} = checkZeroAlign(spec, orient, layout);
183
+ return {
197
184
  axisOption: axisOption,
198
185
  isPercent: spec.percent,
199
- isZeroAlign: checkZeroAlign(spec, orient, layout),
186
+ isZeroAlign: isZeroAlign,
187
+ isTickAlign: isTickAlign,
200
188
  seriesIndice: seriesIndice,
201
189
  theme: spec.theme,
202
190
  chartType: null !== (_b = null == seriesSpec ? void 0 : seriesSpec.type) && void 0 !== _b ? _b : spec.type
203
191
  };
204
192
  }
205
193
  }
194
+ const axisOption = layout._table.pivotChartAxes.find((axisOption => axisOption.orient === orient)), {isZeroAlign: isZeroAlign, isTickAlign: isTickAlign} = checkZeroAlign(spec, orient, layout);
206
195
  return {
207
- axisOption: layout._table.pivotChartAxes.find((axisOption => axisOption.orient === orient)),
196
+ axisOption: axisOption,
208
197
  isPercent: !1,
209
- isZeroAlign: checkZeroAlign(spec, orient, layout),
198
+ isZeroAlign: isZeroAlign,
199
+ isTickAlign: isTickAlign,
210
200
  theme: spec.theme,
211
201
  chartType: spec.type
212
202
  };
@@ -215,19 +205,24 @@ export function getAxisOption(col, row, orient, layout) {
215
205
  function checkZeroAlign(spec, orient, layout) {
216
206
  const orients = [];
217
207
  let axesSpec;
218
- if ("left" === orient || "right" === orient ? orients.push("left", "right") : "top" !== orient && "bottom" !== orient || orients.push("top", "bottom"),
219
- axesSpec = spec && isArray(spec.axes) ? spec.axes : layout._table.pivotChartAxes,
220
- isArray(axesSpec)) {
208
+ "left" === orient || "right" === orient ? orients.push("left", "right") : "top" !== orient && "bottom" !== orient || orients.push("top", "bottom"),
209
+ axesSpec = spec && isArray(spec.axes) ? spec.axes : layout._table.pivotChartAxes;
210
+ let isZeroAlign = !1, isTickAlign = !1;
211
+ if (isArray(axesSpec)) {
221
212
  const axes = [];
222
213
  axesSpec.forEach((axis => {
223
214
  orients.includes(axis.orient) && axes.push(axis);
224
215
  }));
225
216
  for (let i = 0; i < axes.length; i++) {
226
217
  const axis = axes[i];
227
- if (axis.sync && axis.sync.zeroAlign && axis.sync.axisId && axes.find((axisSync => axisSync.id === axis.sync.axisId))) return !0;
218
+ axis.sync && axis.sync.axisId && axes.find((axisSync => axisSync.id === axis.sync.axisId)) && (isZeroAlign = isZeroAlign || axis.sync.zeroAlign,
219
+ isTickAlign = isTickAlign || axis.sync.tickAlign);
228
220
  }
229
221
  }
230
- return !1;
222
+ return {
223
+ isZeroAlign: isZeroAlign,
224
+ isTickAlign: isTickAlign
225
+ };
231
226
  }
232
227
 
233
228
  export function getAxisRange(collectedValues, indicatorKeys, isZeroAlign, colPath, seriesId) {
@@ -254,29 +249,6 @@ export function getAxisRange(collectedValues, indicatorKeys, isZeroAlign, colPat
254
249
  range.min === range.max && (range.min > 0 ? range.min = 0 : range.max = 0), range;
255
250
  }
256
251
 
257
- function getRange(position, colForAxisOption, rowForAxisOption, colForIndicatorKey, rowForIndicatorKey, col, row, defaultSeriesIndice, layout) {
258
- const {axisOption: axisOption, isPercent: isPercent, isZeroAlign: isZeroAlign, seriesIndice: seriesIndice, theme: theme, chartType: chartType} = getAxisOption(colForAxisOption, rowForAxisOption, position, layout);
259
- if (!1 === (null == axisOption ? void 0 : axisOption.visible)) return;
260
- const indicatorKeys = layout.getIndicatorKeyInChartSpec(colForIndicatorKey, rowForIndicatorKey).slice(0, 2);
261
- let path;
262
- path = "top" === position || "bottom" === position ? layout.getColKeysPath(col, row) : layout.getRowKeysPath(col, row);
263
- const range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, path, null != seriesIndice ? seriesIndice : defaultSeriesIndice);
264
- if (!range) return;
265
- isPercent && (range.min = range.min < 0 ? -1 : 0, range.max = range.max > 0 ? 1 : 0);
266
- const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"), {range: niceRange, ticks: ticks} = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, "bottom" === position || "top" === position ? layout._table.getColWidth(col) || layout._table.tableNoFrameWidth : layout._table.getRowHeight(row) || layout._table.tableNoFrameHeight);
267
- return range.min = isNaN(niceRange[0]) ? 0 : niceRange[0], range.max = isNaN(niceRange[1]) ? 1 : niceRange[1],
268
- isNumber(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min,
269
- range.min > 0 && (axisOption.zero = !1)), isNumber(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max,
270
- range.max < 0 && (axisOption.zero = !1)), {
271
- axisOption: axisOption,
272
- isZeroAlign: isZeroAlign,
273
- range: range,
274
- ticks: ticks,
275
- theme: theme,
276
- chartType: chartType
277
- };
278
- }
279
-
280
252
  export function isTopOrBottomAxis(col, row, layout) {
281
253
  if (!layout._table.isPivotChart()) return !1;
282
254
  if (layout.indicatorsAsCol) {
@@ -331,4 +303,91 @@ export function hasLinearAxis(spec, tableAxesConfig, isHorizontal, isThisXAxis)
331
303
  }
332
304
  return isHorizontal && isThisXAxis || !isHorizontal && !isThisXAxis;
333
305
  }
306
+
307
+ function getRange(position, colForAxisOption, rowForAxisOption, colForIndicatorKey, rowForIndicatorKey, col, row, defaultSeriesIndice, layout) {
308
+ const indicatorKeys = layout.getIndicatorKeyInChartSpec(colForIndicatorKey, rowForIndicatorKey);
309
+ let path;
310
+ path = "top" === position || "bottom" === position ? layout.getColKeysPath(col, row) : layout.getRowKeysPath(col, row);
311
+ const rangeConfig = getChartAxisRange(colForAxisOption, rowForAxisOption, defaultSeriesIndice, position, indicatorKeys, path, layout);
312
+ if (!rangeConfig) return;
313
+ const subAxisPosition = "bottom" === position ? "top" : "top" === position ? "bottom" : "left" === position ? "right" : "left", {targetRange: targetRange, targetTicks: targetTicks} = getTargetRangeAndTicks(colForAxisOption, rowForAxisOption, rangeConfig.index, rangeConfig.isZeroAlign, rangeConfig.isTickAlign, rangeConfig.range, indicatorKeys, subAxisPosition, path, layout);
314
+ if (0 !== rangeConfig.index && targetTicks) {
315
+ const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"), {range: newRange, ticks: newTicks} = getAxisDomainRangeAndLabels(rangeConfig.range.min, rangeConfig.range.max, rangeConfig.axisOption, rangeConfig.isZeroAlign, "bottom" === position || "top" === position ? layout._table.getColWidth(col) || layout._table.tableNoFrameWidth : layout._table.getRowHeight(row) || layout._table.tableNoFrameHeight, {
316
+ targetTicks: targetTicks,
317
+ targetRange: targetRange
318
+ });
319
+ rangeConfig.range.min = newRange[0], rangeConfig.range.max = newRange[1], rangeConfig.ticks = newTicks;
320
+ }
321
+ return rangeConfig.targetRange = targetRange, rangeConfig.targetTicks = targetTicks,
322
+ rangeConfig;
323
+ }
324
+
325
+ function getChartAxisRange(col, row, index, position, indicatorKeys, path, layout) {
326
+ const {axisOption: axisOption, isPercent: isPercent, isZeroAlign: isZeroAlign, isTickAlign: isTickAlign, seriesIndice: seriesIndice, theme: theme, chartType: chartType} = getAxisOption(col, row, position, layout), range = getAxisRange(layout.dataset.collectedValues, indicatorKeys, isZeroAlign, path, null != seriesIndice ? seriesIndice : index);
327
+ if (!range) return;
328
+ let ticks;
329
+ if (isPercent && (range.min = range.min < 0 ? -1 : 0, range.max = range.max > 0 ? 1 : 0),
330
+ ((null == axisOption ? void 0 : axisOption.zero) || range.min === range.max) && (range.min = Math.min(range.min, 0),
331
+ range.max = Math.max(range.max, 0)), (null == axisOption ? void 0 : axisOption.nice) || isTickAlign) {
332
+ const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"), {range: axisRange, ticks: selfTicks} = getAxisDomainRangeAndLabels(range.min, range.max, axisOption, isZeroAlign, "bottom" === position || "top" === position ? layout._table.getColWidth(col) || layout._table.tableNoFrameWidth : layout._table.getRowHeight(row) || layout._table.tableNoFrameHeight);
333
+ (null == axisOption ? void 0 : axisOption.nice) && (range.min = axisRange[0], range.max = axisRange[1]),
334
+ ticks = selfTicks;
335
+ }
336
+ return isNumber(null == axisOption ? void 0 : axisOption.min) && (range.min = axisOption.min),
337
+ isNumber(null == axisOption ? void 0 : axisOption.max) && (range.max = axisOption.max),
338
+ {
339
+ index: null != seriesIndice ? seriesIndice : index,
340
+ range: range,
341
+ ticks: ticks,
342
+ isZeroAlign: isZeroAlign,
343
+ isTickAlign: isTickAlign,
344
+ axisOption: axisOption,
345
+ theme: theme,
346
+ chartType: chartType
347
+ };
348
+ }
349
+
350
+ export function getAxisRangeAndTicks(col, row, index, position, subAxisPosition, indicatorKeys, path, layout) {
351
+ const {range: range, isZeroAlign: isZeroAlign, isTickAlign: isTickAlign, axisOption: axisOption} = getChartAxisRange(col, row, index, position, indicatorKeys, path, layout), {targetRange: targetRange, targetTicks: targetTicks} = getTargetRangeAndTicks(col, row, index, isZeroAlign, isTickAlign, range, indicatorKeys, subAxisPosition, path, layout);
352
+ if (0 !== index && targetTicks) {
353
+ const getAxisDomainRangeAndLabels = Factory.getFunction("getAxisDomainRangeAndLabels"), {range: newRange, ticks: newTicks} = getAxisDomainRangeAndLabels(range.min, range.max, merge({}, axisOption, {
354
+ nice: !0,
355
+ tick: {
356
+ forceTickCount: targetTicks.length
357
+ }
358
+ }), isZeroAlign, "bottom" === position || "top" === position ? layout._table.getColWidth(col) || layout._table.tableNoFrameWidth : layout._table.getRowHeight(row) || layout._table.tableNoFrameHeight, {
359
+ targetTicks: targetTicks,
360
+ targetRange: targetRange
361
+ });
362
+ range.min = newRange[0], range.max = newRange[1];
363
+ }
364
+ return {
365
+ axisOption: axisOption,
366
+ range: range,
367
+ targetTicks: targetTicks,
368
+ targetRange: targetRange
369
+ };
370
+ }
371
+
372
+ function getTargetRangeAndTicks(col, row, index, isZeroAlign, isTickAlign, range, indicatorKeys, subAxisPosition, path, layout) {
373
+ let targetTicks, targetRange;
374
+ if (!isZeroAlign && !isTickAlign) return {
375
+ targetTicks: targetTicks,
376
+ targetRange: targetRange
377
+ };
378
+ const subAxisRange = getChartAxisRange(col, row, indicatorKeys.length - 1 - index, subAxisPosition, indicatorKeys, path, layout);
379
+ if (subAxisRange) {
380
+ const {range: subRange, ticks: subTicks} = subAxisRange;
381
+ if (targetRange = subRange, isZeroAlign) {
382
+ const align = getNewRangeToAlign(range, subRange);
383
+ align && (range.min = align.range1[0], range.max = align.range1[1], targetRange.min = align.range2[0],
384
+ targetRange.max = align.range2[1]);
385
+ }
386
+ isTickAlign && (targetTicks = isZeroAlign ? getZeroAlignTickAlignTicks(targetRange, col, row, index, subAxisPosition, layout) : subTicks);
387
+ }
388
+ return {
389
+ targetTicks: targetTicks,
390
+ targetRange: targetRange
391
+ };
392
+ }
334
393
  //# sourceMappingURL=get-axis-config.js.map