k-vtable 1.0.34 → 1.0.35

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 (189) hide show
  1. package/cjs/ListTable.d.ts +1 -0
  2. package/cjs/ListTable.js +184 -25
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js +3 -2
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.d.ts +1 -0
  7. package/cjs/PivotTable.js +95 -15
  8. package/cjs/PivotTable.js.map +1 -1
  9. package/cjs/core/BaseTable.d.ts +14 -0
  10. package/cjs/core/BaseTable.js +149 -41
  11. package/cjs/core/BaseTable.js.map +1 -1
  12. package/cjs/core/TABLE_EVENT_TYPE.d.ts +2 -0
  13. package/cjs/core/TABLE_EVENT_TYPE.js +2 -0
  14. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  15. package/cjs/core/record-helper.js +83 -13
  16. package/cjs/core/record-helper.js.map +1 -1
  17. package/cjs/core/tableHelper.js +5 -3
  18. package/cjs/core/tableHelper.js.map +1 -1
  19. package/cjs/core/utils/get-cell-position.js +23 -12
  20. package/cjs/core/utils/get-cell-position.js.map +1 -1
  21. package/cjs/data/DataSource.js +3 -2
  22. package/cjs/data/DataSource.js.map +1 -1
  23. package/cjs/dataset/dataset.js +5 -1
  24. package/cjs/dataset/dataset.js.map +1 -1
  25. package/cjs/edit/edit-manager.js +24 -16
  26. package/cjs/edit/edit-manager.js.map +1 -1
  27. package/cjs/event/EventTarget.js +3 -1
  28. package/cjs/event/EventTarget.js.map +1 -1
  29. package/cjs/event/helper.js +1 -1
  30. package/cjs/event/listener/container-dom.js +11 -6
  31. package/cjs/event/listener/container-dom.js.map +1 -1
  32. package/cjs/event/listener/scroll-bar.js +77 -6
  33. package/cjs/event/listener/scroll-bar.js.map +1 -1
  34. package/cjs/event/listener/table-group.js +53 -23
  35. package/cjs/event/listener/table-group.js.map +1 -1
  36. package/cjs/event/media-click.js +1 -1
  37. package/cjs/event/scroll.js +35 -12
  38. package/cjs/event/scroll.js.map +1 -1
  39. package/cjs/event/sparkline-event.js +1 -1
  40. package/cjs/event/util.d.ts +2 -0
  41. package/cjs/event/util.js +29 -4
  42. package/cjs/event/util.js.map +1 -1
  43. package/cjs/header-helper/header-helper.js +2 -2
  44. package/cjs/header-helper/header-helper.js.map +1 -1
  45. package/cjs/header-helper/style.js +2 -1
  46. package/cjs/index.d.ts +3 -3
  47. package/cjs/index.js +51 -12
  48. package/cjs/index.js.map +1 -1
  49. package/cjs/layout/cell-range/simple-cell-range.js +14 -5
  50. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
  51. package/cjs/plugins/index.js +1 -1
  52. package/cjs/plugins/interface.js +1 -1
  53. package/cjs/plugins/invert-highlight.js +1 -1
  54. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  55. package/cjs/plugins/plugin-manager.js +1 -1
  56. package/cjs/scenegraph/component/table-component.d.ts +6 -1
  57. package/cjs/scenegraph/component/table-component.js +143 -17
  58. package/cjs/scenegraph/component/table-component.js.map +1 -1
  59. package/cjs/scenegraph/component/util.js +5 -2
  60. package/cjs/scenegraph/component/util.js.map +1 -1
  61. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +29 -10
  62. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  63. package/cjs/scenegraph/group-creater/cell-helper.js +7 -4
  64. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  65. package/cjs/scenegraph/group-creater/init-scenegraph.js +37 -7
  66. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  67. package/cjs/scenegraph/group-creater/progress/proxy.js +4 -2
  68. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  69. package/cjs/scenegraph/scenegraph.d.ts +13 -0
  70. package/cjs/scenegraph/scenegraph.js +194 -23
  71. package/cjs/scenegraph/scenegraph.js.map +1 -1
  72. package/cjs/scenegraph/select/create-select-border.js +9 -10
  73. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  74. package/cjs/scenegraph/select/delete-select-border.js.map +1 -1
  75. package/cjs/scenegraph/select/move-select-border.js.map +1 -1
  76. package/cjs/scenegraph/select/update-custom-select-border.js +9 -9
  77. package/cjs/scenegraph/select/update-custom-select-border.js.map +1 -1
  78. package/cjs/scenegraph/select/update-select-border.js +27 -122
  79. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  80. package/cjs/scenegraph/select/update-select-style.js.map +1 -1
  81. package/cjs/state/select/update-position.js +2 -1
  82. package/cjs/state/select/update-position.js.map +1 -1
  83. package/cjs/state/state.d.ts +8 -1
  84. package/cjs/state/state.js +82 -40
  85. package/cjs/state/state.js.map +1 -1
  86. package/cjs/ts-types/base-table.d.ts +15 -0
  87. package/cjs/ts-types/base-table.js.map +1 -1
  88. package/cjs/ts-types/dataset/aggregation.js +94 -39
  89. package/cjs/ts-types/dataset/aggregation.js.map +1 -1
  90. package/cjs/ts-types/events.d.ts +16 -0
  91. package/cjs/ts-types/events.js.map +1 -1
  92. package/cjs/ts-types/table-engine.js.map +1 -1
  93. package/cjs/vrender.js.map +1 -1
  94. package/dist/vtable.js +2381 -733
  95. package/dist/vtable.min.js +1 -15
  96. package/es/ListTable.d.ts +1 -0
  97. package/es/ListTable.js +178 -25
  98. package/es/ListTable.js.map +1 -1
  99. package/es/PivotChart.js +2 -2
  100. package/es/PivotChart.js.map +1 -1
  101. package/es/PivotTable.d.ts +1 -0
  102. package/es/PivotTable.js +93 -15
  103. package/es/PivotTable.js.map +1 -1
  104. package/es/core/BaseTable.d.ts +14 -0
  105. package/es/core/BaseTable.js +148 -40
  106. package/es/core/BaseTable.js.map +1 -1
  107. package/es/core/TABLE_EVENT_TYPE.d.ts +2 -0
  108. package/es/core/TABLE_EVENT_TYPE.js +2 -0
  109. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  110. package/es/core/record-helper.js +83 -12
  111. package/es/core/record-helper.js.map +1 -1
  112. package/es/core/tableHelper.js +5 -3
  113. package/es/core/tableHelper.js.map +1 -1
  114. package/es/core/utils/get-cell-position.js +23 -12
  115. package/es/core/utils/get-cell-position.js.map +1 -1
  116. package/es/data/DataSource.js +3 -2
  117. package/es/data/DataSource.js.map +1 -1
  118. package/es/dataset/dataset.js +5 -1
  119. package/es/dataset/dataset.js.map +1 -1
  120. package/es/edit/edit-manager.js +22 -16
  121. package/es/edit/edit-manager.js.map +1 -1
  122. package/es/event/EventTarget.js +3 -1
  123. package/es/event/EventTarget.js.map +1 -1
  124. package/es/event/helper.js +1 -1
  125. package/es/event/listener/container-dom.js +10 -5
  126. package/es/event/listener/container-dom.js.map +1 -1
  127. package/es/event/listener/scroll-bar.js +75 -6
  128. package/es/event/listener/scroll-bar.js.map +1 -1
  129. package/es/event/listener/table-group.js +53 -24
  130. package/es/event/listener/table-group.js.map +1 -1
  131. package/es/event/media-click.js +1 -1
  132. package/es/event/scroll.js +35 -12
  133. package/es/event/scroll.js.map +1 -1
  134. package/es/event/sparkline-event.js +1 -1
  135. package/es/event/util.d.ts +2 -0
  136. package/es/event/util.js +25 -1
  137. package/es/event/util.js.map +1 -1
  138. package/es/header-helper/header-helper.js +2 -2
  139. package/es/header-helper/header-helper.js.map +1 -1
  140. package/es/header-helper/style.js +2 -1
  141. package/es/index.d.ts +3 -3
  142. package/es/index.js +5 -3
  143. package/es/index.js.map +1 -1
  144. package/es/layout/cell-range/simple-cell-range.js +14 -5
  145. package/es/layout/cell-range/simple-cell-range.js.map +1 -1
  146. package/es/plugins/index.js +1 -1
  147. package/es/plugins/interface.js +1 -1
  148. package/es/plugins/invert-highlight.js +1 -1
  149. package/es/plugins/list-tree-stick-cell.js +1 -1
  150. package/es/plugins/plugin-manager.js +1 -1
  151. package/es/scenegraph/component/table-component.d.ts +6 -1
  152. package/es/scenegraph/component/table-component.js +141 -17
  153. package/es/scenegraph/component/table-component.js.map +1 -1
  154. package/es/scenegraph/component/util.js +5 -2
  155. package/es/scenegraph/component/util.js.map +1 -1
  156. package/es/scenegraph/graphic/contributions/group-contribution-render.js +29 -10
  157. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  158. package/es/scenegraph/group-creater/cell-helper.js +7 -4
  159. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  160. package/es/scenegraph/group-creater/init-scenegraph.js +37 -7
  161. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  162. package/es/scenegraph/group-creater/progress/proxy.js +4 -2
  163. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  164. package/es/scenegraph/scenegraph.d.ts +13 -0
  165. package/es/scenegraph/scenegraph.js +185 -18
  166. package/es/scenegraph/scenegraph.js.map +1 -1
  167. package/es/scenegraph/select/create-select-border.js +9 -10
  168. package/es/scenegraph/select/create-select-border.js.map +1 -1
  169. package/es/scenegraph/select/delete-select-border.js.map +1 -1
  170. package/es/scenegraph/select/move-select-border.js.map +1 -1
  171. package/es/scenegraph/select/update-custom-select-border.js +9 -9
  172. package/es/scenegraph/select/update-custom-select-border.js.map +1 -1
  173. package/es/scenegraph/select/update-select-border.js +25 -118
  174. package/es/scenegraph/select/update-select-border.js.map +1 -1
  175. package/es/scenegraph/select/update-select-style.js.map +1 -1
  176. package/es/state/select/update-position.js +3 -0
  177. package/es/state/select/update-position.js.map +1 -1
  178. package/es/state/state.d.ts +8 -1
  179. package/es/state/state.js +81 -40
  180. package/es/state/state.js.map +1 -1
  181. package/es/ts-types/base-table.d.ts +15 -0
  182. package/es/ts-types/base-table.js.map +1 -1
  183. package/es/ts-types/dataset/aggregation.js +68 -38
  184. package/es/ts-types/dataset/aggregation.js.map +1 -1
  185. package/es/ts-types/events.d.ts +16 -0
  186. package/es/ts-types/events.js.map +1 -1
  187. package/es/ts-types/table-engine.js.map +1 -1
  188. package/es/vrender.js.map +1 -1
  189. package/package.json +12 -11
@@ -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 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 if (layout._table.internalProps.groupCellMerge) {\n return layout._table.internalProps.groupCellMerge(col, row, cellRange, layout);\n }\n\n const cellRecord = layout._table.getCellRawRecord(col, row);\n if (layout._table.internalProps.groupTitleCheckbox && layout._table.internalProps.rowSeriesNumber) {\n if (cellRecord?.vtableMerge && col >= layout.leftRowSeriesNumberColumnCount) {\n cellRange.start.col = layout.rowHeaderLevelCount + layout.leftRowSeriesNumberColumnCount;\n cellRange.end.col = layout.colCount - 1;\n cellRange.start.row = cellRange.end.row = row;\n }\n } else {\n if (cellRecord?.vtableMerge) {\n cellRange.start.col = layout.rowHeaderLevelCount;\n cellRange.end.col = layout.colCount - 1;\n cellRange.start.row = cellRange.end.row = row;\n }\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
+ {"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 table: any = layout._table;\n const internalProps = table.internalProps || {};\n const isGroupMode = !!internalProps.groupBy;\n const cellRecord = table.getCellRawRecord(col, row);\n\n if (!cellRecord?.vtableMerge) {\n return;\n }\n\n const treeTitleStartCol =\n internalProps.groupTitleCheckbox && internalProps.rowSeriesNumber\n ? layout.rowHeaderLevelCount + layout.leftRowSeriesNumberColumnCount\n : layout.rowHeaderLevelCount;\n if (col < treeTitleStartCol) {\n return;\n }\n cellRange.start.col = treeTitleStartCol;\n cellRange.end.col = layout.colCount - 1;\n cellRange.start.row = cellRange.end.row = row;\n\n // 特殊处理:分组模式下且仅有一列数据列时,分组标题行本质上仍应视为“整行合并”\n // 为了在这种情况下正确展示分组标题文本(尤其是 vtableMerge/vtableMergeName 与 groupTitleFieldFormat),\n // 这里在源记录上补充该单列对应字段的值,避免依赖多列合并逻辑。\n if (isGroupMode && layout.columnObjects?.length === 1) {\n const onlyColumn = layout.columnObjects[0];\n const field = onlyColumn?.field;\n if (field != null) {\n let text = cellRecord.vtableMergeName;\n const groupTitleFieldFormat = internalProps.groupTitleFieldFormat;\n if (typeof groupTitleFieldFormat === 'function') {\n text = groupTitleFieldFormat(cellRecord, col, row, table);\n }\n const current = (cellRecord as any)[field as any];\n if (current == null && text != null) {\n (cellRecord as any)[field as any] = text;\n }\n }\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"]}
@@ -21,4 +21,4 @@ Object.defineProperty(exports, "CustomCellStylePlugin", {
21
21
  return custom_cell_style_1.CustomCellStylePlugin;
22
22
  }
23
23
  });
24
- //# sourceMappingURL=index.js.map
24
+ //# sourceMappingURL=index.js.map
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- //# sourceMappingURL=interface.js.map
6
+ //# sourceMappingURL=interface.js.map
@@ -20,4 +20,4 @@ function onBeforeAttributeUpdateForInvertHighlight(val, attribute) {
20
20
  }
21
21
 
22
22
  exports.onBeforeAttributeUpdateForInvertHighlight = onBeforeAttributeUpdateForInvertHighlight;
23
- //# sourceMappingURL=invert-highlight.js.map
23
+ //# sourceMappingURL=invert-highlight.js.map
@@ -177,4 +177,4 @@ const registerListTreeStickCellPlugin = () => {
177
177
  };
178
178
 
179
179
  exports.registerListTreeStickCellPlugin = registerListTreeStickCellPlugin;
180
- //# sourceMappingURL=list-tree-stick-cell.js.map
180
+ //# sourceMappingURL=list-tree-stick-cell.js.map
@@ -59,4 +59,4 @@ class PluginManager {
59
59
  }
60
60
 
61
61
  exports.PluginManager = PluginManager;
62
- //# sourceMappingURL=plugin-manager.js.map
62
+ //# sourceMappingURL=plugin-manager.js.map
@@ -7,6 +7,7 @@ import { CellMover } from './cell-mover';
7
7
  import type { BaseTableAPI } from '../../ts-types/base-table';
8
8
  export declare class TableComponent {
9
9
  table: BaseTableAPI;
10
+ _horizontalScrollBarTarget?: 'body' | 'frozen' | 'rightFrozen' | 'all';
10
11
  border: IRect;
11
12
  columnResizeLine: ILine;
12
13
  columnResizeBgLine: ILine;
@@ -17,6 +18,8 @@ export declare class TableComponent {
17
18
  menu: MenuHandler;
18
19
  vScrollBar: ScrollBar;
19
20
  hScrollBar: ScrollBar;
21
+ frozenHScrollBar: ScrollBar;
22
+ rightFrozenHScrollBar: ScrollBar;
20
23
  frozenShadowLine: IRect;
21
24
  rightFrozenShadowLine: IRect;
22
25
  topFrozenShadowLine: IRect;
@@ -51,9 +54,11 @@ export declare class TableComponent {
51
54
  hideVerticalScrollBar(): void;
52
55
  showVerticalScrollBar(): void;
53
56
  hideHorizontalScrollBar(): void;
54
- showHorizontalScrollBar(): void;
57
+ showHorizontalScrollBar(target?: 'body' | 'frozen' | 'rightFrozen' | 'all'): void;
55
58
  updateVerticalScrollBarPos(topRatio: number): void;
56
59
  updateHorizontalScrollBarPos(leftRatio: number): void;
60
+ updateFrozenHorizontalScrollBarPos(leftRatio: number): void;
61
+ updateRightFrozenHorizontalScrollBarPos(leftRatio: number): void;
57
62
  updateHorizontalFrozenShadowLine: (rightRatio: number) => void;
58
63
  updateVerticalFrozenShadowLine: (topRatio: number) => void;
59
64
  updateStyle(): void;
@@ -242,7 +242,9 @@ class TableComponent {
242
242
  componentGroup.addChild(this.columnResizeLabel), componentGroup.addChild(this.rowResizeBgLine),
243
243
  componentGroup.addChild(this.rowResizeLine), componentGroup.addChild(this.rowResizeLabel);
244
244
  this.table.theme.scrollStyle.hoverOn && !this.table.theme.scrollStyle.barToSide ? (componentGroup.addChild(this.hScrollBar),
245
+ componentGroup.addChild(this.frozenHScrollBar), componentGroup.addChild(this.rightFrozenHScrollBar),
245
246
  componentGroup.addChild(this.vScrollBar)) : (componentGroup.stage.defaultLayer.addChild(this.hScrollBar),
247
+ componentGroup.stage.defaultLayer.addChild(this.frozenHScrollBar), componentGroup.stage.defaultLayer.addChild(this.rightFrozenHScrollBar),
246
248
  componentGroup.stage.defaultLayer.addChild(this.vScrollBar)), this.menu.bindTableComponent(componentGroup),
247
249
  this.drillIcon.appand(componentGroup), this.cellMover.appand(componentGroup);
248
250
  }
@@ -268,7 +270,33 @@ class TableComponent {
268
270
  sliderStyle: sliderStyle,
269
271
  range: [ 0, .1 ],
270
272
  visible: !1
271
- }), this.hScrollBar.render(), this.hScrollBar.hideAll(), this.vScrollBar = new vrender_2.ScrollBar({
273
+ }), this.hScrollBar.render(), this.hScrollBar.hideAll(), this.frozenHScrollBar = new vrender_2.ScrollBar({
274
+ direction: "horizontal",
275
+ x: 2 * -this.table.tableNoFrameWidth,
276
+ y: 2 * -this.table.tableNoFrameHeight,
277
+ width: this.table.tableNoFrameWidth,
278
+ height: width,
279
+ padding: horizontalPadding,
280
+ railStyle: {
281
+ fill: scrollRailColor
282
+ },
283
+ sliderStyle: sliderStyle,
284
+ range: [ 0, .1 ],
285
+ visible: !1
286
+ }), this.frozenHScrollBar.render(), this.frozenHScrollBar.hideAll(), this.rightFrozenHScrollBar = new vrender_2.ScrollBar({
287
+ direction: "horizontal",
288
+ x: 2 * -this.table.tableNoFrameWidth,
289
+ y: 2 * -this.table.tableNoFrameHeight,
290
+ width: this.table.tableNoFrameWidth,
291
+ height: width,
292
+ padding: horizontalPadding,
293
+ railStyle: {
294
+ fill: scrollRailColor
295
+ },
296
+ sliderStyle: sliderStyle,
297
+ range: [ 0, .1 ],
298
+ visible: !1
299
+ }), this.rightFrozenHScrollBar.render(), this.rightFrozenHScrollBar.hideAll(), this.vScrollBar = new vrender_2.ScrollBar({
272
300
  direction: "vertical",
273
301
  x: 2 * -this.table.tableNoFrameWidth,
274
302
  y: 2 * -this.table.tableNoFrameHeight,
@@ -284,14 +312,15 @@ class TableComponent {
284
312
  }), this.vScrollBar.render(), this.vScrollBar.hideAll();
285
313
  }
286
314
  updateScrollBar() {
287
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
288
- const oldHorizontalBarPos = this.table.stateManager.scroll.horizontalBarPos, oldVerticalBarPos = this.table.stateManager.scroll.verticalBarPos, theme = this.table.theme, width = null === (_a = theme.scrollStyle) || void 0 === _a ? void 0 : _a.width, visible1 = null === (_b = theme.scrollStyle) || void 0 === _b ? void 0 : _b.visible, horizontalVisible = null !== (_d = null === (_c = theme.scrollStyle) || void 0 === _c ? void 0 : _c.horizontalVisible) && void 0 !== _d ? _d : visible1, verticalVisible = null !== (_f = null === (_e = theme.scrollStyle) || void 0 === _e ? void 0 : _e.verticalVisible) && void 0 !== _f ? _f : visible1, tableWidth = Math.ceil(this.table.tableNoFrameWidth), tableHeight = Math.ceil(this.table.tableNoFrameHeight), totalHeight = this.table.getAllRowsHeight(), totalWidth = this.table.getAllColsWidth(), frozenRowsHeight = this.table.getFrozenRowsHeight(), frozenColsWidth = this.table.getFrozenColsWidth(), bottomFrozenRowsHeight = this.table.getBottomFrozenRowsHeight(), rightFrozenColsWidth = this.table.getRightFrozenColsWidth(), hoverOn = this.table.theme.scrollStyle.hoverOn, sizeTolerance = (null === (_g = this.table.options.customConfig) || void 0 === _g ? void 0 : _g._disableColumnAndRowSizeRound) ? 1 : 0;
315
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
316
+ const oldHorizontalBarPos = this.table.stateManager.scroll.horizontalBarPos, oldVerticalBarPos = this.table.stateManager.scroll.verticalBarPos, oldFrozenHorizontalBarPos = this.table.stateManager.scroll.frozenHorizontalBarPos, oldRightFrozenHorizontalBarPos = this.table.stateManager.scroll.rightFrozenHorizontalBarPos, theme = this.table.theme, width = null === (_a = theme.scrollStyle) || void 0 === _a ? void 0 : _a.width, visible1 = null === (_b = theme.scrollStyle) || void 0 === _b ? void 0 : _b.visible, horizontalVisible = null !== (_d = null === (_c = theme.scrollStyle) || void 0 === _c ? void 0 : _c.horizontalVisible) && void 0 !== _d ? _d : visible1, verticalVisible = null !== (_f = null === (_e = theme.scrollStyle) || void 0 === _e ? void 0 : _e.verticalVisible) && void 0 !== _f ? _f : visible1, tableWidth = Math.ceil(this.table.tableNoFrameWidth), tableHeight = Math.ceil(this.table.tableNoFrameHeight), totalHeight = this.table.getAllRowsHeight(), totalWidth = this.table.getAllColsWidth(), frozenRowsHeight = this.table.getFrozenRowsHeight(), frozenColsWidth = this.table.getFrozenColsWidth(), frozenColsContentWidth = null !== (_j = null === (_h = (_g = this.table).getFrozenColsContentWidth) || void 0 === _h ? void 0 : _h.call(_g)) && void 0 !== _j ? _j : frozenColsWidth, bottomFrozenRowsHeight = this.table.getBottomFrozenRowsHeight(), rightFrozenColsWidth = this.table.getRightFrozenColsWidth(), rightFrozenColsContentWidth = null !== (_m = null === (_l = (_k = this.table).getRightFrozenColsContentWidth) || void 0 === _l ? void 0 : _l.call(_k)) && void 0 !== _m ? _m : rightFrozenColsWidth, hoverOn = this.table.theme.scrollStyle.hoverOn, sizeTolerance = (null === (_o = this.table.options.customConfig) || void 0 === _o ? void 0 : _o._disableColumnAndRowSizeRound) ? 1 : 0;
289
317
  if (totalWidth > tableWidth + sizeTolerance) {
290
- const y = Math.min(tableHeight, totalHeight), rangeEnd = Math.max(.05, (tableWidth - frozenColsWidth) / (totalWidth - frozenColsWidth));
318
+ const y = Math.min(tableHeight, totalHeight), bodyViewportWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth, bodyContentWidth = totalWidth - frozenColsContentWidth - rightFrozenColsContentWidth, rangeEnd = bodyContentWidth > 0 ? Math.max(.05, bodyViewportWidth / bodyContentWidth) : 1;
291
319
  let attrY = 0;
292
320
  attrY = this.table.theme.scrollStyle.barToSide ? this.table.tableNoFrameHeight - (hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.y) + this.table.tableY : y - (hoverOn ? width : -this.table.scenegraph.tableGroup.attribute.y);
293
321
  let hScrollBarx = frozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x), hScrollBarWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth;
294
- null !== (_j = null === (_h = this.table.theme.scrollStyle) || void 0 === _h ? void 0 : _h.ignoreFrozenCols) && void 0 !== _j && _j ? (hScrollBarx = hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x,
322
+ const ignoreFrozenCols = null !== (_q = null === (_p = this.table.theme.scrollStyle) || void 0 === _p ? void 0 : _p.ignoreFrozenCols) && void 0 !== _q && _q;
323
+ ignoreFrozenCols ? (hScrollBarx = hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x,
295
324
  hScrollBarWidth = tableWidth) : (hScrollBarx = frozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x),
296
325
  hScrollBarWidth = tableWidth - frozenColsWidth - rightFrozenColsWidth), this.hScrollBar.setAttributes({
297
326
  x: hScrollBarx,
@@ -305,11 +334,63 @@ class TableComponent {
305
334
  x: bounds.x1,
306
335
  y: bounds.y1
307
336
  }, "always" === horizontalVisible && this.hScrollBar.showAll();
337
+ const frozenScrollable = this.table.options.scrollFrozenCols && this.table.getFrozenColsOffset() > 0;
338
+ if (!ignoreFrozenCols && frozenScrollable) {
339
+ const frozenRangeEnd = Math.max(.05, frozenColsWidth / frozenColsContentWidth), x = hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x;
340
+ this.frozenHScrollBar.setAttributes({
341
+ x: x,
342
+ y: attrY,
343
+ width: frozenColsWidth,
344
+ range: [ 0, frozenRangeEnd ],
345
+ visible: "always" === horizontalVisible
346
+ });
347
+ const bounds = this.frozenHScrollBar.AABBBounds && this.frozenHScrollBar.globalAABBBounds;
348
+ this.frozenHScrollBar._viewPosition = {
349
+ x: bounds.x1,
350
+ y: bounds.y1
351
+ }, "always" === horizontalVisible && this.frozenHScrollBar.showAll();
352
+ } else this.frozenHScrollBar.setAttributes({
353
+ x: 2 * -this.table.tableNoFrameWidth,
354
+ y: 2 * -this.table.tableNoFrameHeight,
355
+ width: 0,
356
+ visible: !1
357
+ });
358
+ const rightFrozenScrollable = this.table.options.scrollRightFrozenCols && this.table.getRightFrozenColsOffset() > 0;
359
+ if (!ignoreFrozenCols && rightFrozenScrollable) {
360
+ const rightFrozenRangeEnd = Math.max(.05, rightFrozenColsWidth / rightFrozenColsContentWidth), x = tableWidth - rightFrozenColsWidth + (hoverOn ? 0 : this.table.scenegraph.tableGroup.attribute.x);
361
+ this.rightFrozenHScrollBar.setAttributes({
362
+ x: x,
363
+ y: attrY,
364
+ width: rightFrozenColsWidth,
365
+ range: [ 0, rightFrozenRangeEnd ],
366
+ visible: "always" === horizontalVisible
367
+ });
368
+ const bounds = this.rightFrozenHScrollBar.AABBBounds && this.rightFrozenHScrollBar.globalAABBBounds;
369
+ this.rightFrozenHScrollBar._viewPosition = {
370
+ x: bounds.x1,
371
+ y: bounds.y1
372
+ }, "always" === horizontalVisible && this.rightFrozenHScrollBar.showAll();
373
+ } else this.rightFrozenHScrollBar.setAttributes({
374
+ x: 2 * -this.table.tableNoFrameWidth,
375
+ y: 2 * -this.table.tableNoFrameHeight,
376
+ width: 0,
377
+ visible: !1
378
+ });
308
379
  } else this.hScrollBar.setAttributes({
309
380
  x: 2 * -this.table.tableNoFrameWidth,
310
381
  y: 2 * -this.table.tableNoFrameHeight,
311
382
  width: 0,
312
383
  visible: !1
384
+ }), this.frozenHScrollBar.setAttributes({
385
+ x: 2 * -this.table.tableNoFrameWidth,
386
+ y: 2 * -this.table.tableNoFrameHeight,
387
+ width: 0,
388
+ visible: !1
389
+ }), this.rightFrozenHScrollBar.setAttributes({
390
+ x: 2 * -this.table.tableNoFrameWidth,
391
+ y: 2 * -this.table.tableNoFrameHeight,
392
+ width: 0,
393
+ visible: !1
313
394
  });
314
395
  if (totalHeight > tableHeight + sizeTolerance) {
315
396
  const x = Math.min(tableWidth, totalWidth), rangeEnd = Math.max(.05, (tableHeight - frozenRowsHeight) / (totalHeight - frozenRowsHeight));
@@ -333,8 +414,9 @@ class TableComponent {
333
414
  height: 0,
334
415
  visible: !1
335
416
  });
336
- this.table.stateManager.setScrollLeft(oldHorizontalBarPos), this.table.stateManager.setScrollTop(oldVerticalBarPos),
337
- this.setBottomFrozenColumnShadow();
417
+ this.table.stateManager.setScrollLeft(oldHorizontalBarPos), this.table.stateManager.setFrozenColsScrollLeft(oldFrozenHorizontalBarPos, !1),
418
+ this.table.stateManager.setRightFrozenColsScrollLeft(oldRightFrozenHorizontalBarPos, !1),
419
+ this.table.stateManager.setScrollTop(oldVerticalBarPos), this.setBottomFrozenColumnShadow();
338
420
  }
339
421
  hideResizeCol() {
340
422
  this.columnResizeLine.setAttribute("visible", !1), this.columnResizeBgLine.setAttribute("visible", !1),
@@ -460,9 +542,10 @@ class TableComponent {
460
542
  this.cellMover.update(backX, lineX, backY, lineY);
461
543
  }
462
544
  setFrozenColumnShadow(col, isRightFrozen) {
463
- var _a, _b;
464
- const colX = (0, util_1.getColX)(col, this.table, isRightFrozen);
465
- col < 0 || "always" !== (null === (_b = null === (_a = this.table.theme.frozenColumnLine) || void 0 === _a ? void 0 : _a.shadow) || void 0 === _b ? void 0 : _b.visible) ? this.frozenShadowLine.setAttributes({
545
+ var _a, _b, _c, _d, _e;
546
+ const colX = !isRightFrozen && col === this.table.frozenColCount - 1 && (null !== (_c = null === (_b = (_a = this.table).getFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0) > 0 ? this.table.getFrozenColsWidth() : (0,
547
+ util_1.getColX)(col, this.table, isRightFrozen);
548
+ col < 0 || "always" !== (null === (_e = null === (_d = this.table.theme.frozenColumnLine) || void 0 === _d ? void 0 : _d.shadow) || void 0 === _e ? void 0 : _e.visible) ? this.frozenShadowLine.setAttributes({
466
549
  visible: !1,
467
550
  x: colX,
468
551
  height: this.table.getDrawRange().height
@@ -473,9 +556,10 @@ class TableComponent {
473
556
  });
474
557
  }
475
558
  setRightFrozenColumnShadow(col) {
476
- var _a, _b;
477
- const colX = (0, util_1.getColX)(col, this.table, !0);
478
- col >= this.table.colCount || "always" !== (null === (_b = null === (_a = this.table.theme.frozenColumnLine) || void 0 === _a ? void 0 : _a.shadow) || void 0 === _b ? void 0 : _b.visible) ? this.rightFrozenShadowLine.setAttributes({
559
+ var _a, _b, _c, _d, _e;
560
+ const colX = this.table.options.scrollRightFrozenCols && (null !== (_c = null === (_b = (_a = this.table).getRightFrozenColsOffset) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : 0) > 0 ? this.table.tableNoFrameWidth - this.table.getRightFrozenColsWidth() : (0,
561
+ util_1.getColX)(col, this.table, !0);
562
+ col >= this.table.colCount || "always" !== (null === (_e = null === (_d = this.table.theme.frozenColumnLine) || void 0 === _d ? void 0 : _d.shadow) || void 0 === _e ? void 0 : _e.visible) ? this.rightFrozenShadowLine.setAttributes({
479
563
  visible: !1,
480
564
  x: colX - this.rightFrozenShadowLine.attribute.width,
481
565
  height: this.table.getDrawRange().height
@@ -550,13 +634,23 @@ class TableComponent {
550
634
  var _a;
551
635
  const visible1 = this.table.theme.scrollStyle.visible, horizontalVisible = null !== (_a = this.table.theme.scrollStyle.horizontalVisible) && void 0 !== _a ? _a : visible1;
552
636
  "focus" !== horizontalVisible && "scrolling" !== horizontalVisible || (this.hScrollBar.setAttribute("visible", !1),
553
- this.hScrollBar.hideAll(), this.table.scenegraph.updateNextFrame());
637
+ this.hScrollBar.hideAll(), this.frozenHScrollBar.setAttribute("visible", !1), this.frozenHScrollBar.hideAll(),
638
+ this.rightFrozenHScrollBar.setAttribute("visible", !1), this.rightFrozenHScrollBar.hideAll(),
639
+ this._horizontalScrollBarTarget = void 0, this.table.scenegraph.updateNextFrame());
554
640
  }
555
- showHorizontalScrollBar() {
641
+ showHorizontalScrollBar(target = "all") {
556
642
  var _a;
557
643
  const visible1 = this.table.theme.scrollStyle.visible, horizontalVisible = null !== (_a = this.table.theme.scrollStyle.horizontalVisible) && void 0 !== _a ? _a : visible1;
558
- "focus" !== horizontalVisible && "scrolling" !== horizontalVisible || (this.hScrollBar.setAttribute("visible", !0),
559
- this.hScrollBar.showAll(), this.table.scenegraph.updateNextFrame());
644
+ if ("focus" !== horizontalVisible && "scrolling" !== horizontalVisible) return;
645
+ if (this._horizontalScrollBarTarget === target) return;
646
+ this._horizontalScrollBarTarget = target;
647
+ const showFrozen = "all" === target || "frozen" === target, showRightFrozen = "all" === target || "rightFrozen" === target, bodyVisible = ("all" === target || "body" === target) && this.hScrollBar.attribute.width > 0;
648
+ this.hScrollBar.setAttribute("visible", bodyVisible), bodyVisible ? this.hScrollBar.showAll() : this.hScrollBar.hideAll();
649
+ const frozenVisible = showFrozen && this.frozenHScrollBar.attribute.width > 0;
650
+ this.frozenHScrollBar.setAttribute("visible", frozenVisible), frozenVisible ? this.frozenHScrollBar.showAll() : this.frozenHScrollBar.hideAll();
651
+ const rightFrozenVisible = showRightFrozen && this.rightFrozenHScrollBar.attribute.width > 0;
652
+ this.rightFrozenHScrollBar.setAttribute("visible", rightFrozenVisible), rightFrozenVisible ? this.rightFrozenHScrollBar.showAll() : this.rightFrozenHScrollBar.hideAll(),
653
+ this.table.scenegraph.updateNextFrame();
560
654
  }
561
655
  updateVerticalScrollBarPos(topRatio) {
562
656
  this.updateVerticalFrozenShadowLine(topRatio);
@@ -578,6 +672,24 @@ class TableComponent {
578
672
  y: bounds.y1
579
673
  };
580
674
  }
675
+ updateFrozenHorizontalScrollBarPos(leftRatio) {
676
+ const range = this.frozenHScrollBar.attribute.range, size = range[1] - range[0], range0 = leftRatio * (1 - size);
677
+ this.frozenHScrollBar.setAttribute("range", [ range0, range0 + size ]);
678
+ const bounds = this.frozenHScrollBar.AABBBounds && this.frozenHScrollBar.globalAABBBounds;
679
+ this.frozenHScrollBar._viewPosition = {
680
+ x: bounds.x1,
681
+ y: bounds.y1
682
+ };
683
+ }
684
+ updateRightFrozenHorizontalScrollBarPos(leftRatio) {
685
+ const range = this.rightFrozenHScrollBar.attribute.range, size = range[1] - range[0], range0 = leftRatio * (1 - size);
686
+ this.rightFrozenHScrollBar.setAttribute("range", [ range0, range0 + size ]);
687
+ const bounds = this.rightFrozenHScrollBar.AABBBounds && this.rightFrozenHScrollBar.globalAABBBounds;
688
+ this.rightFrozenHScrollBar._viewPosition = {
689
+ x: bounds.x1,
690
+ y: bounds.y1
691
+ };
692
+ }
581
693
  updateStyle() {
582
694
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
583
695
  const theme = this.table.theme, scrollRailColor = null === (_a = theme.scrollStyle) || void 0 === _a ? void 0 : _a.scrollRailColor, scrollSliderColor = null === (_b = theme.scrollStyle) || void 0 === _b ? void 0 : _b.scrollSliderColor, scrollSliderCornerRadius = null === (_c = theme.scrollStyle) || void 0 === _c ? void 0 : _c.scrollSliderCornerRadius, width = null === (_d = theme.scrollStyle) || void 0 === _d ? void 0 : _d.width, horizontalPadding = null === (_e = theme.scrollStyle) || void 0 === _e ? void 0 : _e.horizontalPadding, verticalPadding = null === (_f = theme.scrollStyle) || void 0 === _f ? void 0 : _f.verticalPadding;
@@ -601,6 +713,20 @@ class TableComponent {
601
713
  fill: scrollRailColor
602
714
  },
603
715
  sliderStyle: sliderStyle
716
+ }), this.frozenHScrollBar.setAttributes({
717
+ height: width,
718
+ padding: horizontalPadding,
719
+ railStyle: {
720
+ fill: scrollRailColor
721
+ },
722
+ sliderStyle: sliderStyle
723
+ }), this.rightFrozenHScrollBar.setAttributes({
724
+ height: width,
725
+ padding: horizontalPadding,
726
+ railStyle: {
727
+ fill: scrollRailColor
728
+ },
729
+ sliderStyle: sliderStyle
604
730
  });
605
731
  const columnResizeColor = null === (_g = theme.columnResize) || void 0 === _g ? void 0 : _g.lineColor, columnResizeWidth = null === (_h = theme.columnResize) || void 0 === _h ? void 0 : _h.lineWidth, columnResizeBgColor = null === (_j = theme.columnResize) || void 0 === _j ? void 0 : _j.bgColor, columnResizeBgWidth = null === (_k = theme.columnResize) || void 0 === _k ? void 0 : _k.width;
606
732
  this.columnResizeLine.setAttributes({