@visactor/vtable 1.19.4-alpha.1 → 1.19.4

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 (155) hide show
  1. package/cjs/ListTable.js +14 -10
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/body-helper/style.js +1 -2
  4. package/cjs/core/BaseTable.js +45 -34
  5. package/cjs/core/BaseTable.js.map +1 -1
  6. package/cjs/core/record-helper.js +6 -6
  7. package/cjs/core/record-helper.js.map +1 -1
  8. package/cjs/core/tableHelper.js +1 -1
  9. package/cjs/core/tableHelper.js.map +1 -1
  10. package/cjs/data/CachedDataSource.js +1 -1
  11. package/cjs/data/CachedDataSource.js.map +1 -1
  12. package/cjs/dataset/dataset.js +20 -18
  13. package/cjs/dataset/dataset.js.map +1 -1
  14. package/cjs/event/event.js +2 -2
  15. package/cjs/event/event.js.map +1 -1
  16. package/cjs/event/listener/table-group.js +6 -4
  17. package/cjs/event/listener/table-group.js.map +1 -1
  18. package/cjs/event/self-event-listener/base-table/dropdown-menu.d.ts +1 -1
  19. package/cjs/event/self-event-listener/base-table/dropdown-menu.js +5 -3
  20. package/cjs/event/self-event-listener/base-table/dropdown-menu.js.map +1 -1
  21. package/cjs/event/self-event-listener/list-table/checkbox.js +5 -5
  22. package/cjs/event/self-event-listener/list-table/checkbox.js.map +1 -1
  23. package/cjs/index.d.ts +1 -1
  24. package/cjs/index.js +1 -1
  25. package/cjs/index.js.map +1 -1
  26. package/cjs/layout/cell-range/simple-cell-range.js +1 -2
  27. package/cjs/layout/cell-range/simple-cell-range.js.map +1 -1
  28. package/cjs/layout/index.js +2 -1
  29. package/cjs/layout/layout-helper.js +1 -1
  30. package/cjs/layout/layout-helper.js.map +1 -1
  31. package/cjs/layout/pivot-header-layout.js +1 -1
  32. package/cjs/layout/pivot-layout.js +2 -0
  33. package/cjs/layout/row-height-map.js +1 -1
  34. package/cjs/layout/simple-header-layout.js +4 -4
  35. package/cjs/layout/simple-header-layout.js.map +1 -1
  36. package/cjs/layout/tree-helper.js +1 -1
  37. package/cjs/plugins/custom-cell-style.js +1 -2
  38. package/cjs/plugins/index.js +1 -1
  39. package/cjs/plugins/interface.js +1 -1
  40. package/cjs/plugins/invert-highlight.js +1 -1
  41. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  42. package/cjs/plugins/plugin-manager.js +1 -1
  43. package/cjs/scenegraph/graphic/chart.js +10 -2
  44. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  45. package/cjs/scenegraph/group-creater/cell-helper.js +6 -5
  46. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  47. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -5
  48. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  49. package/cjs/scenegraph/group-creater/column-helper.js +3 -3
  50. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  51. package/cjs/scenegraph/group-creater/init-scenegraph.js +1 -1
  52. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  53. package/cjs/scenegraph/layout/update-col.js +9 -4
  54. package/cjs/scenegraph/layout/update-col.js.map +1 -1
  55. package/cjs/scenegraph/layout/update-height.js +1 -1
  56. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  57. package/cjs/scenegraph/layout/update-row.js +11 -4
  58. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  59. package/cjs/scenegraph/layout/update-width.js +1 -1
  60. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  61. package/cjs/scenegraph/utils/get-hierarchy-offset.js +1 -1
  62. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  63. package/cjs/state/checkbox/checkbox.js +5 -5
  64. package/cjs/state/checkbox/checkbox.js.map +1 -1
  65. package/cjs/state/hover/update-position.js +2 -2
  66. package/cjs/state/hover/update-position.js.map +1 -1
  67. package/cjs/tools/diff-cell.d.ts +1 -1
  68. package/cjs/tools/diff-cell.js +4 -1
  69. package/cjs/tools/diff-cell.js.map +1 -1
  70. package/cjs/ts-types/base-table.d.ts +6 -1
  71. package/cjs/ts-types/base-table.js.map +1 -1
  72. package/cjs/ts-types/list-table/define/checkbox-define.d.ts +0 -1
  73. package/cjs/ts-types/list-table/define/checkbox-define.js.map +1 -1
  74. package/cjs/ts-types/table-engine.d.ts +9 -1
  75. package/cjs/ts-types/table-engine.js.map +1 -1
  76. package/cjs/vrender.js.map +1 -1
  77. package/dist/vtable.js +365 -244
  78. package/dist/vtable.min.js +2 -2
  79. package/es/ListTable.js +13 -9
  80. package/es/ListTable.js.map +1 -1
  81. package/es/body-helper/style.js +1 -2
  82. package/es/core/BaseTable.js +45 -34
  83. package/es/core/BaseTable.js.map +1 -1
  84. package/es/core/record-helper.js +6 -6
  85. package/es/core/record-helper.js.map +1 -1
  86. package/es/core/tableHelper.js +1 -1
  87. package/es/core/tableHelper.js.map +1 -1
  88. package/es/data/CachedDataSource.js +1 -1
  89. package/es/data/CachedDataSource.js.map +1 -1
  90. package/es/dataset/dataset.js +20 -18
  91. package/es/dataset/dataset.js.map +1 -1
  92. package/es/event/event.js +3 -3
  93. package/es/event/event.js.map +1 -1
  94. package/es/event/listener/table-group.js +6 -4
  95. package/es/event/listener/table-group.js.map +1 -1
  96. package/es/event/self-event-listener/base-table/dropdown-menu.d.ts +1 -1
  97. package/es/event/self-event-listener/base-table/dropdown-menu.js +3 -1
  98. package/es/event/self-event-listener/base-table/dropdown-menu.js.map +1 -1
  99. package/es/event/self-event-listener/list-table/checkbox.js +5 -5
  100. package/es/event/self-event-listener/list-table/checkbox.js.map +1 -1
  101. package/es/index.d.ts +1 -1
  102. package/es/index.js +1 -1
  103. package/es/index.js.map +1 -1
  104. package/es/layout/cell-range/simple-cell-range.js +1 -2
  105. package/es/layout/cell-range/simple-cell-range.js.map +1 -1
  106. package/es/layout/index.js +2 -1
  107. package/es/layout/layout-helper.js +1 -1
  108. package/es/layout/layout-helper.js.map +1 -1
  109. package/es/layout/pivot-header-layout.js +1 -1
  110. package/es/layout/pivot-layout.js +2 -0
  111. package/es/layout/row-height-map.js +1 -1
  112. package/es/layout/simple-header-layout.js +4 -4
  113. package/es/layout/simple-header-layout.js.map +1 -1
  114. package/es/layout/tree-helper.js +1 -1
  115. package/es/plugins/custom-cell-style.js +1 -2
  116. package/es/plugins/index.js +1 -1
  117. package/es/plugins/interface.js +1 -1
  118. package/es/plugins/invert-highlight.js +1 -1
  119. package/es/plugins/list-tree-stick-cell.js +1 -1
  120. package/es/plugins/plugin-manager.js +1 -1
  121. package/es/scenegraph/graphic/chart.js +11 -1
  122. package/es/scenegraph/graphic/chart.js.map +1 -1
  123. package/es/scenegraph/group-creater/cell-helper.js +5 -4
  124. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  125. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +5 -5
  126. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  127. package/es/scenegraph/group-creater/column-helper.js +2 -2
  128. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  129. package/es/scenegraph/group-creater/init-scenegraph.js +1 -1
  130. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  131. package/es/scenegraph/layout/update-col.js +8 -3
  132. package/es/scenegraph/layout/update-col.js.map +1 -1
  133. package/es/scenegraph/layout/update-height.js +1 -1
  134. package/es/scenegraph/layout/update-height.js.map +1 -1
  135. package/es/scenegraph/layout/update-row.js +9 -2
  136. package/es/scenegraph/layout/update-row.js.map +1 -1
  137. package/es/scenegraph/layout/update-width.js +1 -1
  138. package/es/scenegraph/layout/update-width.js.map +1 -1
  139. package/es/scenegraph/utils/get-hierarchy-offset.js +1 -1
  140. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  141. package/es/state/checkbox/checkbox.js +5 -5
  142. package/es/state/checkbox/checkbox.js.map +1 -1
  143. package/es/state/hover/update-position.js +2 -2
  144. package/es/state/hover/update-position.js.map +1 -1
  145. package/es/tools/diff-cell.d.ts +1 -1
  146. package/es/tools/diff-cell.js +4 -1
  147. package/es/tools/diff-cell.js.map +1 -1
  148. package/es/ts-types/base-table.d.ts +6 -1
  149. package/es/ts-types/base-table.js.map +1 -1
  150. package/es/ts-types/list-table/define/checkbox-define.d.ts +0 -1
  151. package/es/ts-types/list-table/define/checkbox-define.js.map +1 -1
  152. package/es/ts-types/table-engine.d.ts +9 -1
  153. package/es/ts-types/table-engine.js.map +1 -1
  154. package/es/vrender.js.map +1 -1
  155. package/package.json +8 -8
@@ -10,7 +10,7 @@ export function getHierarchyOffset(col, row, table) {
10
10
  const hd = layoutMap.getHeader(col, row);
11
11
  isValid(null == hd ? void 0 : hd.hierarchyLevel) && (cellHierarchyIndent = (null !== (_a = hd.hierarchyLevel) && void 0 !== _a ? _a : 0) * ("tree" === layoutMap.rowHierarchyType && null !== (_b = layoutMap.rowHierarchyIndent) && void 0 !== _b ? _b : 0),
12
12
  layoutMap.rowHierarchyTextStartAlignment && !table.internalProps.headerHelper.getHierarchyIcon(col, row) && (cellHierarchyIndent += table.internalProps.headerHelper.getHierarchyIconWidth()));
13
- } else if (table.options.groupBy || (null === (_c = table.getBodyColumnDefine(col, row)) || void 0 === _c ? void 0 : _c.tree)) {
13
+ } else if (table.internalProps.groupBy || (null === (_c = table.getBodyColumnDefine(col, row)) || void 0 === _c ? void 0 : _c.tree)) {
14
14
  const indexArr = table.dataSource.getIndexKey(table.getRecordShowIndexByCell(col, row)), groupLength = null !== (_d = table.dataSource.getGroupLength()) && void 0 !== _d ? _d : 0;
15
15
  let indexArrLngth = isArray(indexArr) ? indexArr.length - 1 : 0;
16
16
  groupLength > 0 && indexArrLngth === groupLength && (indexArrLngth = 0), cellHierarchyIndent = Array.isArray(indexArr) && table.getHierarchyState(col, row) !== HierarchyState.none ? indexArrLngth * (null !== (_e = layoutMap.hierarchyIndent) && void 0 !== _e ? _e : 0) : 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/utils/get-hierarchy-offset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,GAAW,EAAE,KAAmB;;IAE9E,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;IAEhD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;QAChC,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAe,CAAC;QACvD,IAAI,OAAO,CAAC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,cAAc,CAAC,EAAE;YAC/B,mBAAmB;gBACjB,CAAC,MAAA,EAAE,CAAC,cAAc,mCAAI,CAAC,CAAC;oBACxB,CAAE,SAAkC,CAAC,gBAAgB,KAAK,MAAM;wBAC9D,CAAC,CAAC,MAAC,SAAkC,CAAC,kBAAkB,mCAAI,CAAC;wBAC7D,CAAC,CAAC,CAAC,CAAC,CAAC;YACT,IACG,SAAkC,CAAC,8BAA8B;gBAClE,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5D;gBACA,mBAAmB,IAAI,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;aACjF;SACF;KACF;SAAM;QAGL,IACG,KAAK,CAAC,OAAuC,CAAC,OAAO;aACtD,MAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAkB,0CAAE,IAAI,CAAA,EAC3D;YACA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACxF,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,mCAAI,CAAC,CAAC;YAC3D,IAAI,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,WAAW,GAAG,CAAC,IAAI,aAAa,KAAK,WAAW,EAAE;gBACpD,aAAa,GAAG,CAAC,CAAC;aACnB;YACD,mBAAmB;gBACjB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,cAAc,CAAC,IAAI;oBAClF,CAAC,CAAC,aAAa,GAAG,CAAC,MAAC,SAAmC,CAAC,eAAe,mCAAI,CAAC,CAAC;oBAC7E,CAAC,CAAC,CAAC,CAAC;YACR,IACG,SAAmC,CAAC,2BAA2B;gBAChE,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1D;gBACA,mBAAmB,IAAI,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;aAC/E;SACF;KACF;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC","file":"get-hierarchy-offset.js","sourcesContent":["import { isArray, isValid } from '@visactor/vutils';\nimport type { SimpleHeaderLayoutMap } from '../../layout';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { ColumnDefine, ListTableConstructorOptions } from '../../ts-types';\nimport { HierarchyState } from '../../ts-types';\nimport type { BaseTableAPI, HeaderData } from '../../ts-types/base-table';\n\nexport function getHierarchyOffset(col: number, row: number, table: BaseTableAPI): number {\n // 处理树形展开\n let cellHierarchyIndent = 0;\n const layoutMap = table.internalProps.layoutMap;\n //判断是否为表头\n if (layoutMap.isHeader(col, row)) {\n const hd = layoutMap.getHeader(col, row) as HeaderData;\n if (isValid(hd?.hierarchyLevel)) {\n cellHierarchyIndent =\n (hd.hierarchyLevel ?? 0) *\n ((layoutMap as PivotHeaderLayoutMap).rowHierarchyType === 'tree'\n ? (layoutMap as PivotHeaderLayoutMap).rowHierarchyIndent ?? 0\n : 0);\n if (\n (layoutMap as PivotHeaderLayoutMap).rowHierarchyTextStartAlignment &&\n !table.internalProps.headerHelper.getHierarchyIcon(col, row)\n ) {\n cellHierarchyIndent += table.internalProps.headerHelper.getHierarchyIconWidth();\n }\n }\n } else {\n // 基本表格表身body单元格 如果是树形展开 需要考虑缩进值\n // const cellHierarchyState = table.getHierarchyState(col, row);\n if (\n (table.options as ListTableConstructorOptions).groupBy ||\n (table.getBodyColumnDefine(col, row) as ColumnDefine)?.tree\n ) {\n const indexArr = table.dataSource.getIndexKey(table.getRecordShowIndexByCell(col, row));\n const groupLength = table.dataSource.getGroupLength() ?? 0;\n let indexArrLngth = isArray(indexArr) ? indexArr.length - 1 : 0;\n if (groupLength > 0 && indexArrLngth === groupLength) {\n indexArrLngth = 0;\n }\n cellHierarchyIndent =\n Array.isArray(indexArr) && table.getHierarchyState(col, row) !== HierarchyState.none\n ? indexArrLngth * ((layoutMap as SimpleHeaderLayoutMap).hierarchyIndent ?? 0)\n : 0;\n if (\n (layoutMap as SimpleHeaderLayoutMap).hierarchyTextStartAlignment &&\n !table.internalProps.bodyHelper.getHierarchyIcon(col, row)\n ) {\n cellHierarchyIndent += table.internalProps.bodyHelper.getHierarchyIconWidth();\n }\n }\n }\n\n return cellHierarchyIndent;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/utils/get-hierarchy-offset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,GAAW,EAAE,KAAmB;;IAE9E,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;IAEhD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;QAChC,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAe,CAAC;QACvD,IAAI,OAAO,CAAC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,cAAc,CAAC,EAAE;YAC/B,mBAAmB;gBACjB,CAAC,MAAA,EAAE,CAAC,cAAc,mCAAI,CAAC,CAAC;oBACxB,CAAE,SAAkC,CAAC,gBAAgB,KAAK,MAAM;wBAC9D,CAAC,CAAC,MAAC,SAAkC,CAAC,kBAAkB,mCAAI,CAAC;wBAC7D,CAAC,CAAC,CAAC,CAAC,CAAC;YACT,IACG,SAAkC,CAAC,8BAA8B;gBAClE,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5D;gBACA,mBAAmB,IAAI,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC;aACjF;SACF;KACF;SAAM;QAGL,IACG,KAAK,CAAC,aAAoC,CAAC,OAAO;aACnD,MAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAkB,0CAAE,IAAI,CAAA,EAC3D;YACA,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACxF,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,mCAAI,CAAC,CAAC;YAC3D,IAAI,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,WAAW,GAAG,CAAC,IAAI,aAAa,KAAK,WAAW,EAAE;gBACpD,aAAa,GAAG,CAAC,CAAC;aACnB;YACD,mBAAmB;gBACjB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,cAAc,CAAC,IAAI;oBAClF,CAAC,CAAC,aAAa,GAAG,CAAC,MAAC,SAAmC,CAAC,eAAe,mCAAI,CAAC,CAAC;oBAC7E,CAAC,CAAC,CAAC,CAAC;YACR,IACG,SAAmC,CAAC,2BAA2B;gBAChE,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1D;gBACA,mBAAmB,IAAI,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;aAC/E;SACF;KACF;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC","file":"get-hierarchy-offset.js","sourcesContent":["import { isArray, isValid } from '@visactor/vutils';\nimport type { SimpleHeaderLayoutMap } from '../../layout';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { ColumnDefine, ListTableConstructorOptions } from '../../ts-types';\nimport { HierarchyState } from '../../ts-types';\nimport type { BaseTableAPI, HeaderData, ListTableProtected } from '../../ts-types/base-table';\n\nexport function getHierarchyOffset(col: number, row: number, table: BaseTableAPI): number {\n // 处理树形展开\n let cellHierarchyIndent = 0;\n const layoutMap = table.internalProps.layoutMap;\n //判断是否为表头\n if (layoutMap.isHeader(col, row)) {\n const hd = layoutMap.getHeader(col, row) as HeaderData;\n if (isValid(hd?.hierarchyLevel)) {\n cellHierarchyIndent =\n (hd.hierarchyLevel ?? 0) *\n ((layoutMap as PivotHeaderLayoutMap).rowHierarchyType === 'tree'\n ? (layoutMap as PivotHeaderLayoutMap).rowHierarchyIndent ?? 0\n : 0);\n if (\n (layoutMap as PivotHeaderLayoutMap).rowHierarchyTextStartAlignment &&\n !table.internalProps.headerHelper.getHierarchyIcon(col, row)\n ) {\n cellHierarchyIndent += table.internalProps.headerHelper.getHierarchyIconWidth();\n }\n }\n } else {\n // 基本表格表身body单元格 如果是树形展开 需要考虑缩进值\n // const cellHierarchyState = table.getHierarchyState(col, row);\n if (\n (table.internalProps as ListTableProtected).groupBy ||\n (table.getBodyColumnDefine(col, row) as ColumnDefine)?.tree\n ) {\n const indexArr = table.dataSource.getIndexKey(table.getRecordShowIndexByCell(col, row));\n const groupLength = table.dataSource.getGroupLength() ?? 0;\n let indexArrLngth = isArray(indexArr) ? indexArr.length - 1 : 0;\n if (groupLength > 0 && indexArrLngth === groupLength) {\n indexArrLngth = 0;\n }\n cellHierarchyIndent =\n Array.isArray(indexArr) && table.getHierarchyState(col, row) !== HierarchyState.none\n ? indexArrLngth * ((layoutMap as SimpleHeaderLayoutMap).hierarchyIndent ?? 0)\n : 0;\n if (\n (layoutMap as SimpleHeaderLayoutMap).hierarchyTextStartAlignment &&\n !table.internalProps.bodyHelper.getHierarchyIcon(col, row)\n ) {\n cellHierarchyIndent += table.internalProps.bodyHelper.getHierarchyIconWidth();\n }\n }\n }\n\n return cellHierarchyIndent;\n}\n"]}
@@ -19,9 +19,9 @@ function setSingleCheckedState(col, row, field, checked, state) {
19
19
 
20
20
  export function setHeaderCheckedState(field, checked, state) {
21
21
  var _a;
22
- state.headerCheckedState[field] = checked, null === (_a = state.checkedState) || void 0 === _a || _a.forEach((recordCheckState => {
22
+ state.headerCheckedState[field] = checked, state.table.internalProps.enableCheckboxCascade && (null === (_a = state.checkedState) || void 0 === _a || _a.forEach((recordCheckState => {
23
23
  recordCheckState[field] = checked;
24
- }));
24
+ })));
25
25
  }
26
26
 
27
27
  export function syncCheckedState(col, row, field, checked, state) {
@@ -38,7 +38,7 @@ export function syncCheckedState(col, row, field, checked, state) {
38
38
  if (recordIndex >= 0) {
39
39
  const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();
40
40
  if (isValid(null === (_b = state.checkedState.get(dataIndex)) || void 0 === _b ? void 0 : _b[field])) return state.checkedState.get(dataIndex)[field];
41
- if (state.checkedState.get(dataIndex)) state.checkedState.get(dataIndex)[field] = checked; else if (dataIndex.includes(",")) {
41
+ if (state.checkedState.get(dataIndex)) state.checkedState.get(dataIndex)[field] = checked; else if (state.table.internalProps.enableCheckboxCascade && dataIndex.includes(",")) {
42
42
  const parentDataIndex = dataIndex.split(",").slice(0, -1).join(",");
43
43
  state.checkedState.has(parentDataIndex) && !0 === state.checkedState.get(parentDataIndex)[field] ? state.checkedState.set(dataIndex, {
44
44
  [field]: !0
@@ -74,10 +74,10 @@ export function initCheckedState(records, state) {
74
74
  export function updateHeaderCheckedState(field, state, col, row) {
75
75
  let allChecked = !0, allUnChecked = !0, hasChecked = !1;
76
76
  return state.checkedState.forEach(((check_state, index) => {
77
- var _a, _b;
77
+ var _a;
78
78
  index = index.includes(",") ? index.split(",").map((item => Number(item))) : Number(index);
79
79
  const tableIndex = state.table.getTableIndexByRecordIndex(index), mergeCell = state.table.transpose ? state.table.getCustomMerge(tableIndex, row) : state.table.getCustomMerge(col, tableIndex), data = null === (_a = state.table.dataSource) || void 0 === _a ? void 0 : _a.get(index);
80
- mergeCell || !(null === (_b = state.table.internalProps.rowSeriesNumber) || void 0 === _b ? void 0 : _b.enableTreeCheckbox) && (null == data ? void 0 : data.vtableMerge) || (!0 !== (null == check_state ? void 0 : check_state[field]) ? allChecked = !1 : (allUnChecked = !1,
80
+ mergeCell || !state.table.internalProps.enableCheckboxCascade && (null == data ? void 0 : data.vtableMerge) || (!0 !== (null == check_state ? void 0 : check_state[field]) ? allChecked = !1 : (allUnChecked = !1,
81
81
  hasChecked = !0));
82
82
  })), allChecked ? (state.headerCheckedState[field] = !0, allChecked) : allUnChecked ? (state.headerCheckedState[field] = !1,
83
83
  !1) : !!hasChecked && (state.headerCheckedState[field] = "indeterminate", "indeterminate");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/state/checkbox/checkbox.ts"],"names":[],"mappings":"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","file":"checkbox.js","sourcesContent":["import { isArray, isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\nimport type { StateManager } from '../state';\nimport type { CheckboxColumnDefine, ListTableAPI } from '../../ts-types';\nimport { getOrApply } from '../../tools/helper';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { CachedDataSource } from '../../data';\nimport type { CheckBox } from './../../vrender';\n\nexport function setCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean | 'indeterminate',\n state: StateManager\n) {\n const table = state.table;\n const cellRange = table.getCellRange(col, row);\n if (cellRange.start.col !== cellRange.end.col || cellRange.start.row !== cellRange.end.row) {\n for (let i = cellRange.start.col; i <= cellRange.end.col; i++) {\n for (let j = cellRange.start.row; j <= cellRange.end.row; j++) {\n setSingleCheckedState(i, j, field, checked, state);\n }\n }\n } else {\n setSingleCheckedState(col, row, field, checked, state);\n }\n}\n\nfunction setSingleCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean | 'indeterminate',\n state: StateManager\n) {\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();\n if (state.checkedState.get(dataIndex)) {\n state.checkedState.get(dataIndex)[field] = checked;\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n }\n}\n\nexport function setHeaderCheckedState(field: string | number, checked: boolean | 'indeterminate', state: StateManager) {\n state.headerCheckedState[field] = checked;\n state.checkedState?.forEach(recordCheckState => {\n recordCheckState[field] = checked;\n });\n}\n\n//#region CheckedState 状态维护\n\n/**\n * 创建cell节点时同步状态 如果状态缓存有则用 如果没有则设置缓存\n * @param col\n * @param row\n * @param field\n * @param checked\n * @returns\n */\nexport function syncCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean,\n state: StateManager\n): boolean | 'indeterminate' {\n if (state.table.isHeader(col, row)) {\n if (isValid(state.headerCheckedState[field])) {\n return state.headerCheckedState[field];\n } else if (typeof checked === 'function') {\n return undefined;\n } else if (isValid(checked)) {\n state.headerCheckedState[field] = checked;\n } else if (state.checkedState?.size > 0) {\n const isAllChecked = state.updateHeaderCheckedState(field, col, row);\n return isAllChecked;\n }\n return state.headerCheckedState[field];\n }\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();\n if (isValid(state.checkedState.get(dataIndex)?.[field])) {\n return state.checkedState.get(dataIndex)[field];\n }\n if (state.checkedState.get(dataIndex)) {\n state.checkedState.get(dataIndex)[field] = checked;\n } else if (dataIndex.includes(',')) {\n // child record, sync parent record state\n const parentDataIndex = dataIndex.split(',').slice(0, -1).join(','); // get latest parent data index\n if (state.checkedState.has(parentDataIndex) && state.checkedState.get(parentDataIndex)[field] === true) {\n state.checkedState.set(dataIndex, {\n [field]: true\n });\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n }\n return checked;\n}\n\n/**\n * 初始化check状态\n * @param records\n */\nexport function initCheckedState(records: any[], state: StateManager) {\n // clear checkbox state\n state.checkedState.clear();\n state.headerCheckedState = {};\n state.radioState = {};\n\n let isNeedInitHeaderCheckedStateFromRecord = false;\n state._checkboxCellTypeFields = [];\n state._headerCheckFuncs = {};\n state.table.internalProps.layoutMap.headerObjects.forEach((hd, index) => {\n if (hd.headerType === 'checkbox') {\n const headerChecked = (hd.define as CheckboxColumnDefine).checked as boolean;\n\n if (headerChecked === undefined || headerChecked === null || typeof headerChecked === 'function') {\n // 如果没有明确指定check的状态 则需要在下面遍历所有数据获取到节点状态 确定这个header的check状态\n isNeedInitHeaderCheckedStateFromRecord = true;\n if (typeof headerChecked === 'function') {\n state._headerCheckFuncs[hd.field as string | number] = headerChecked;\n }\n } else {\n state.headerCheckedState[hd.field as string | number] = headerChecked;\n }\n if ((hd.define.cellType === 'checkbox' || isFunction(hd.define.cellType)) && !hd.fieldFormat) {\n state._checkboxCellTypeFields.push(hd.field as string | number);\n }\n }\n });\n\n // for row series number\n if (state.table.leftRowSeriesNumberCount === 1) {\n state.headerCheckedState._vtable_rowSeries_number = false;\n state._checkboxCellTypeFields.push('_vtable_rowSeries_number');\n isNeedInitHeaderCheckedStateFromRecord = true;\n } else if (state.table.leftRowSeriesNumberCount > 1) {\n for (let i = 0; i < state.table.leftRowSeriesNumberCount; i++) {\n state.headerCheckedState[`_vtable_rowSeries_number_${i}`] = false;\n state._checkboxCellTypeFields.push(`_vtable_rowSeries_number_${i}`);\n }\n isNeedInitHeaderCheckedStateFromRecord = true;\n }\n\n //如果没有明确指定check的状态 遍历所有数据获取到节点状态 确定这个header的check状态\n if (isNeedInitHeaderCheckedStateFromRecord) {\n initRecordCheckState(records, state);\n }\n}\n\n/**\n * 更新header单元checked的状态,依据当前列每一个数据checked的状态。\n * @param field\n * @returns\n */\nexport function updateHeaderCheckedState(\n field: string | number,\n state: StateManager,\n col: number,\n row: number\n): boolean | 'indeterminate' {\n let allChecked = true;\n let allUnChecked = true;\n let hasChecked = false;\n state.checkedState.forEach((check_state: Record<string | number, boolean>, index: string | number | number[]) => {\n if ((index as string).includes(',')) {\n index = (index as string).split(',').map(item => {\n return Number(item);\n }) as number[];\n } else {\n index = Number(index);\n }\n const tableIndex = state.table.getTableIndexByRecordIndex(index as number);\n const mergeCell = (state.table as ListTableAPI).transpose\n ? state.table.getCustomMerge(tableIndex, row)\n : state.table.getCustomMerge(col, tableIndex);\n\n const data = state.table.dataSource?.get(index as number);\n if (mergeCell || (!state.table.internalProps.rowSeriesNumber?.enableTreeCheckbox && data?.vtableMerge)) {\n // 不参与check状态的计算\n return;\n }\n if (check_state?.[field] !== true) {\n allChecked = false;\n } else {\n allUnChecked = false;\n hasChecked = true;\n }\n });\n\n if (allChecked) {\n state.headerCheckedState[field] = true;\n return allChecked;\n }\n\n if (allUnChecked) {\n state.headerCheckedState[field] = false;\n return false;\n }\n\n if (hasChecked) {\n state.headerCheckedState[field] = 'indeterminate';\n return 'indeterminate'; //半选状态\n }\n return false;\n}\n\n/**\n * setRecords的时候虽然调用了initCheckedState 进行了初始化 但当每个表头的checked状态都用配置了的话 初始化不会遍历全部数据\n * @param records\n */\nexport function initLeftRecordsCheckState(records: any[], state: StateManager) {\n for (let index = state.checkedState.size; index < records.length; index++) {\n const record = records[index];\n state._checkboxCellTypeFields.forEach(field => {\n const value = record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean;\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n const dataIndex = index.toString();\n if (!state.checkedState.get(dataIndex)) {\n state.checkedState.set(dataIndex, {});\n }\n state.checkedState.get(dataIndex)[field] = isChecked;\n });\n }\n}\n\nexport function setCellCheckboxState(\n col: number,\n row: number,\n checked: boolean | 'indeterminate',\n table: BaseTableAPI\n) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const checkbox = cellGroup?.getChildByName('checkbox') as any;\n if (!checkbox) {\n // update state\n const field = table.getHeaderField(col, row);\n if (table.isHeader(col, row)) {\n //点击的表头部分的checkbox 需要同时处理表头和body单元格的状态\n table.stateManager.setHeaderCheckedState(field, checked);\n const cellType = table.getCellType(col, row);\n if (cellType === 'checkbox') {\n table.scenegraph.updateCheckboxCellState(col, row, checked);\n }\n } else {\n //点击的是body单元格的checkbox 处理本单元格的状态维护 同时需要检查表头是否改变状态\n table.stateManager.setCheckedState(col, row, field, checked);\n const cellType = table.getCellType(col, row);\n if (cellType === 'checkbox') {\n const oldHeaderCheckedState = table.stateManager.headerCheckedState[field];\n const newHeaderCheckedState = table.stateManager.updateHeaderCheckedState(field, col, row);\n if (oldHeaderCheckedState !== newHeaderCheckedState) {\n table.scenegraph.updateHeaderCheckboxCellState(col, row, newHeaderCheckedState);\n }\n }\n }\n return;\n }\n const { checked: oldChecked, indeterminate } = checkbox.attribute;\n\n if (indeterminate) {\n if (checked) {\n checkbox._handlePointerUp();\n } else {\n checkbox._handlePointerUp();\n checkbox._handlePointerUp();\n }\n } else if (oldChecked) {\n if (checked) {\n // do nothing\n } else {\n checkbox._handlePointerUp();\n }\n } else {\n if (checked) {\n checkbox._handlePointerUp();\n } else {\n // do nothing\n }\n }\n}\n\nexport function setCellCheckboxStateByAttribute(\n col: number,\n row: number,\n checked: boolean | 'indeterminate',\n table: BaseTableAPI\n) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const checkbox =\n (cellGroup?.getChildByName('checkbox') as any) ||\n (cellGroup?.getChildByName('checkbox-content')?._checkboxGroup?.getChildByName('checkbox') as any);\n if (checkbox) {\n if (checked === 'indeterminate') {\n (checkbox as CheckBox).setAttribute('indeterminate', true);\n (checkbox as CheckBox).setAttribute('checked', undefined);\n } else {\n (checkbox as CheckBox).setAttribute('indeterminate', undefined);\n (checkbox as CheckBox).setAttribute('checked', checked);\n }\n }\n}\n\nexport function changeCheckboxOrder(sourceIndex: number, targetIndex: number, state: StateManager) {\n const { checkedState, table } = state;\n let source;\n let target;\n if (table.internalProps.transpose) {\n sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0);\n targetIndex = table.getRecordShowIndexByCell(targetIndex, 0);\n } else {\n // sourceIndex = table.getRecordShowIndexByCell(0, sourceIndex);\n // targetIndex = table.getRecordShowIndexByCell(0, targetIndex);\n\n source = table.isPivotTable() ? undefined : (table as any).getRecordIndexByCell(0, sourceIndex);\n target = table.isPivotTable() ? undefined : (table as any).getRecordIndexByCell(0, targetIndex);\n }\n\n if (isNumber(source) && isNumber(target)) {\n sourceIndex = source;\n targetIndex = target;\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState.get(sourceIndex.toString());\n for (let i = sourceIndex; i > targetIndex; i--) {\n // checkedState[i] = checkedState[i - 1];\n checkedState.set(i.toString(), checkedState.get((i - 1).toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(targetIndex.toString(), sourceRecord);\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState.get(sourceIndex.toString());\n for (let i = sourceIndex; i < targetIndex; i++) {\n // checkedState[i] = checkedState[i + 1];\n checkedState.set(i.toString(), checkedState.get((i + 1).toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(targetIndex.toString(), sourceRecord);\n }\n } else if (isArray(source) && isArray(target)) {\n sourceIndex = source[source.length - 1];\n targetIndex = target[target.length - 1];\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState.get(source.toString());\n for (let i = sourceIndex; i > targetIndex; i--) {\n const now = [...source];\n now[now.length - 1] = i;\n const last = [...source];\n last[last.length - 1] = i - 1;\n checkedState.set(now.toString(), checkedState.get(last.toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(target.toString(), sourceRecord);\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState.get(source.toString());\n for (let i = sourceIndex; i < targetIndex; i++) {\n const now = [...source];\n now[now.length - 1] = i;\n const next = [...source];\n next[next.length - 1] = i + 1;\n checkedState.set(now.toString(), checkedState.get(next.toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(target.toString(), sourceRecord);\n }\n }\n}\n\nexport function getGroupCheckboxState(table: BaseTableAPI) {\n const result: any[] = [];\n const dataSource = table.dataSource as CachedDataSource;\n const groupKeyLength = dataSource.dataConfig.groupByRules.length + 1;\n dataSource.currentIndexedData.forEach((indexArr: number, index) => {\n if (isArray(indexArr) && indexArr.length === groupKeyLength) {\n // get record by index\n const vtableOriginIndex = (dataSource as CachedDataSource).getOriginRecordIndexForGroup(indexArr);\n result[vtableOriginIndex] = table.stateManager.checkedState.get(indexArr.toString());\n }\n });\n\n return result;\n}\n\nfunction initRecordCheckState(records: any[], state: StateManager) {\n const table = state.table;\n const start = table.isPivotTable()\n ? 0\n : table.internalProps.transpose\n ? table.rowHeaderLevelCount\n : table.columnHeaderLevelCount;\n const end = table.isPivotTable()\n ? isArray(records)\n ? records.length\n : 0\n : table.internalProps.transpose\n ? table.colCount\n : table.rowCount;\n for (let index = 0; index + start < end; index++) {\n const record = table.isPivotTable() ? records[index] : table.dataSource.get(index);\n // eslint-disable-next-line no-loop-func\n state._checkboxCellTypeFields.forEach(field => {\n const value =\n record && (record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean);\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n if (isChecked === undefined || isChecked === null) {\n const headerCheckFunc = state._headerCheckFuncs[field];\n if (headerCheckFunc) {\n //如果定义的checked是个函数 则需要每个都去计算这个值\n const cellAddr = state.table.getCellAddrByFieldRecord(field, index);\n const globalChecked = getOrApply(headerCheckFunc as any, {\n col: cellAddr.col,\n row: cellAddr.row,\n table: state.table,\n context: null,\n value\n });\n isChecked = globalChecked;\n }\n }\n const dataIndex = table.isPivotTable() ? index.toString() : state.table.dataSource.getIndexKey(index).toString();\n if (!state.checkedState.get(dataIndex)) {\n state.checkedState.set(dataIndex, {});\n }\n state.checkedState.get(dataIndex)[field] = isChecked;\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/state/checkbox/checkbox.ts"],"names":[],"mappings":"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","file":"checkbox.js","sourcesContent":["import { isArray, isFunction, isNumber, isObject, isValid } from '@visactor/vutils';\nimport type { StateManager } from '../state';\nimport type { CheckboxColumnDefine, ListTableAPI } from '../../ts-types';\nimport { getOrApply } from '../../tools/helper';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { CachedDataSource } from '../../data';\nimport type { CheckBox } from './../../vrender';\n\nexport function setCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean | 'indeterminate',\n state: StateManager\n) {\n const table = state.table;\n const cellRange = table.getCellRange(col, row);\n if (cellRange.start.col !== cellRange.end.col || cellRange.start.row !== cellRange.end.row) {\n for (let i = cellRange.start.col; i <= cellRange.end.col; i++) {\n for (let j = cellRange.start.row; j <= cellRange.end.row; j++) {\n setSingleCheckedState(i, j, field, checked, state);\n }\n }\n } else {\n setSingleCheckedState(col, row, field, checked, state);\n }\n}\n\nfunction setSingleCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean | 'indeterminate',\n state: StateManager\n) {\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();\n if (state.checkedState.get(dataIndex)) {\n state.checkedState.get(dataIndex)[field] = checked;\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n }\n}\n\nexport function setHeaderCheckedState(field: string | number, checked: boolean | 'indeterminate', state: StateManager) {\n state.headerCheckedState[field] = checked;\n if (state.table.internalProps.enableCheckboxCascade) {\n state.checkedState?.forEach(recordCheckState => {\n recordCheckState[field] = checked;\n });\n }\n}\n\n//#region CheckedState 状态维护\n\n/**\n * 创建cell节点时同步状态 如果状态缓存有则用 如果没有则设置缓存\n * @param col\n * @param row\n * @param field\n * @param checked\n * @returns\n */\nexport function syncCheckedState(\n col: number,\n row: number,\n field: string | number,\n checked: boolean,\n state: StateManager\n): boolean | 'indeterminate' {\n if (state.table.isHeader(col, row)) {\n if (isValid(state.headerCheckedState[field])) {\n return state.headerCheckedState[field];\n } else if (typeof checked === 'function') {\n return undefined;\n } else if (isValid(checked)) {\n state.headerCheckedState[field] = checked;\n } else if (state.checkedState?.size > 0) {\n const isAllChecked = state.updateHeaderCheckedState(field, col, row);\n return isAllChecked;\n }\n return state.headerCheckedState[field];\n }\n const recordIndex = state.table.getRecordShowIndexByCell(col, row);\n if (recordIndex >= 0) {\n const dataIndex = state.table.dataSource.getIndexKey(recordIndex).toString();\n if (isValid(state.checkedState.get(dataIndex)?.[field])) {\n return state.checkedState.get(dataIndex)[field];\n }\n if (state.checkedState.get(dataIndex)) {\n state.checkedState.get(dataIndex)[field] = checked;\n } else if (state.table.internalProps.enableCheckboxCascade && dataIndex.includes(',')) {\n // child record, sync parent record state\n const parentDataIndex = dataIndex.split(',').slice(0, -1).join(','); // get latest parent data index\n if (state.checkedState.has(parentDataIndex) && state.checkedState.get(parentDataIndex)[field] === true) {\n state.checkedState.set(dataIndex, {\n [field]: true\n });\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n } else {\n state.checkedState.set(dataIndex, {\n [field]: checked\n });\n }\n }\n return checked;\n}\n\n/**\n * 初始化check状态\n * @param records\n */\nexport function initCheckedState(records: any[], state: StateManager) {\n // clear checkbox state\n state.checkedState.clear();\n state.headerCheckedState = {};\n state.radioState = {};\n\n let isNeedInitHeaderCheckedStateFromRecord = false;\n state._checkboxCellTypeFields = [];\n state._headerCheckFuncs = {};\n state.table.internalProps.layoutMap.headerObjects.forEach((hd, index) => {\n if (hd.headerType === 'checkbox') {\n const headerChecked = (hd.define as CheckboxColumnDefine).checked as boolean;\n\n if (headerChecked === undefined || headerChecked === null || typeof headerChecked === 'function') {\n // 如果没有明确指定check的状态 则需要在下面遍历所有数据获取到节点状态 确定这个header的check状态\n isNeedInitHeaderCheckedStateFromRecord = true;\n if (typeof headerChecked === 'function') {\n state._headerCheckFuncs[hd.field as string | number] = headerChecked;\n }\n } else {\n state.headerCheckedState[hd.field as string | number] = headerChecked;\n }\n if ((hd.define.cellType === 'checkbox' || isFunction(hd.define.cellType)) && !hd.fieldFormat) {\n state._checkboxCellTypeFields.push(hd.field as string | number);\n }\n }\n });\n\n // for row series number\n if (state.table.leftRowSeriesNumberCount === 1) {\n state.headerCheckedState._vtable_rowSeries_number = false;\n state._checkboxCellTypeFields.push('_vtable_rowSeries_number');\n isNeedInitHeaderCheckedStateFromRecord = true;\n } else if (state.table.leftRowSeriesNumberCount > 1) {\n for (let i = 0; i < state.table.leftRowSeriesNumberCount; i++) {\n state.headerCheckedState[`_vtable_rowSeries_number_${i}`] = false;\n state._checkboxCellTypeFields.push(`_vtable_rowSeries_number_${i}`);\n }\n isNeedInitHeaderCheckedStateFromRecord = true;\n }\n\n //如果没有明确指定check的状态 遍历所有数据获取到节点状态 确定这个header的check状态\n if (isNeedInitHeaderCheckedStateFromRecord) {\n initRecordCheckState(records, state);\n }\n}\n\n/**\n * 更新header单元checked的状态,依据当前列每一个数据checked的状态。\n * @param field\n * @returns\n */\nexport function updateHeaderCheckedState(\n field: string | number,\n state: StateManager,\n col: number,\n row: number\n): boolean | 'indeterminate' {\n let allChecked = true;\n let allUnChecked = true;\n let hasChecked = false;\n state.checkedState.forEach((check_state: Record<string | number, boolean>, index: string | number | number[]) => {\n if ((index as string).includes(',')) {\n index = (index as string).split(',').map(item => {\n return Number(item);\n }) as number[];\n } else {\n index = Number(index);\n }\n const tableIndex = state.table.getTableIndexByRecordIndex(index as number);\n const mergeCell = (state.table as ListTableAPI).transpose\n ? state.table.getCustomMerge(tableIndex, row)\n : state.table.getCustomMerge(col, tableIndex);\n\n const data = state.table.dataSource?.get(index as number);\n if (mergeCell || (!state.table.internalProps.enableCheckboxCascade && data?.vtableMerge)) {\n // 不参与check状态的计算\n return;\n }\n if (check_state?.[field] !== true) {\n allChecked = false;\n } else {\n allUnChecked = false;\n hasChecked = true;\n }\n });\n\n if (allChecked) {\n state.headerCheckedState[field] = true;\n return allChecked;\n }\n\n if (allUnChecked) {\n state.headerCheckedState[field] = false;\n return false;\n }\n\n if (hasChecked) {\n state.headerCheckedState[field] = 'indeterminate';\n return 'indeterminate'; //半选状态\n }\n return false;\n}\n\n/**\n * setRecords的时候虽然调用了initCheckedState 进行了初始化 但当每个表头的checked状态都用配置了的话 初始化不会遍历全部数据\n * @param records\n */\nexport function initLeftRecordsCheckState(records: any[], state: StateManager) {\n for (let index = state.checkedState.size; index < records.length; index++) {\n const record = records[index];\n state._checkboxCellTypeFields.forEach(field => {\n const value = record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean;\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n const dataIndex = index.toString();\n if (!state.checkedState.get(dataIndex)) {\n state.checkedState.set(dataIndex, {});\n }\n state.checkedState.get(dataIndex)[field] = isChecked;\n });\n }\n}\n\nexport function setCellCheckboxState(\n col: number,\n row: number,\n checked: boolean | 'indeterminate',\n table: BaseTableAPI\n) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const checkbox = cellGroup?.getChildByName('checkbox') as any;\n if (!checkbox) {\n // update state\n const field = table.getHeaderField(col, row);\n if (table.isHeader(col, row)) {\n //点击的表头部分的checkbox 需要同时处理表头和body单元格的状态\n table.stateManager.setHeaderCheckedState(field, checked);\n const cellType = table.getCellType(col, row);\n if (cellType === 'checkbox') {\n table.scenegraph.updateCheckboxCellState(col, row, checked);\n }\n } else {\n //点击的是body单元格的checkbox 处理本单元格的状态维护 同时需要检查表头是否改变状态\n table.stateManager.setCheckedState(col, row, field, checked);\n const cellType = table.getCellType(col, row);\n if (cellType === 'checkbox') {\n const oldHeaderCheckedState = table.stateManager.headerCheckedState[field];\n const newHeaderCheckedState = table.stateManager.updateHeaderCheckedState(field, col, row);\n if (oldHeaderCheckedState !== newHeaderCheckedState) {\n table.scenegraph.updateHeaderCheckboxCellState(col, row, newHeaderCheckedState);\n }\n }\n }\n return;\n }\n const { checked: oldChecked, indeterminate } = checkbox.attribute;\n\n if (indeterminate) {\n if (checked) {\n checkbox._handlePointerUp();\n } else {\n checkbox._handlePointerUp();\n checkbox._handlePointerUp();\n }\n } else if (oldChecked) {\n if (checked) {\n // do nothing\n } else {\n checkbox._handlePointerUp();\n }\n } else {\n if (checked) {\n checkbox._handlePointerUp();\n } else {\n // do nothing\n }\n }\n}\n\nexport function setCellCheckboxStateByAttribute(\n col: number,\n row: number,\n checked: boolean | 'indeterminate',\n table: BaseTableAPI\n) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const checkbox =\n (cellGroup?.getChildByName('checkbox') as any) ||\n (cellGroup?.getChildByName('checkbox-content')?._checkboxGroup?.getChildByName('checkbox') as any);\n if (checkbox) {\n if (checked === 'indeterminate') {\n (checkbox as CheckBox).setAttribute('indeterminate', true);\n (checkbox as CheckBox).setAttribute('checked', undefined);\n } else {\n (checkbox as CheckBox).setAttribute('indeterminate', undefined);\n (checkbox as CheckBox).setAttribute('checked', checked);\n }\n }\n}\n\nexport function changeCheckboxOrder(sourceIndex: number, targetIndex: number, state: StateManager) {\n const { checkedState, table } = state;\n let source;\n let target;\n if (table.internalProps.transpose) {\n sourceIndex = table.getRecordShowIndexByCell(sourceIndex, 0);\n targetIndex = table.getRecordShowIndexByCell(targetIndex, 0);\n } else {\n // sourceIndex = table.getRecordShowIndexByCell(0, sourceIndex);\n // targetIndex = table.getRecordShowIndexByCell(0, targetIndex);\n\n source = table.isPivotTable() ? undefined : (table as any).getRecordIndexByCell(0, sourceIndex);\n target = table.isPivotTable() ? undefined : (table as any).getRecordIndexByCell(0, targetIndex);\n }\n\n if (isNumber(source) && isNumber(target)) {\n sourceIndex = source;\n targetIndex = target;\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState.get(sourceIndex.toString());\n for (let i = sourceIndex; i > targetIndex; i--) {\n // checkedState[i] = checkedState[i - 1];\n checkedState.set(i.toString(), checkedState.get((i - 1).toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(targetIndex.toString(), sourceRecord);\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState.get(sourceIndex.toString());\n for (let i = sourceIndex; i < targetIndex; i++) {\n // checkedState[i] = checkedState[i + 1];\n checkedState.set(i.toString(), checkedState.get((i + 1).toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(targetIndex.toString(), sourceRecord);\n }\n } else if (isArray(source) && isArray(target)) {\n sourceIndex = source[source.length - 1];\n targetIndex = target[target.length - 1];\n if (sourceIndex > targetIndex) {\n const sourceRecord = checkedState.get(source.toString());\n for (let i = sourceIndex; i > targetIndex; i--) {\n const now = [...source];\n now[now.length - 1] = i;\n const last = [...source];\n last[last.length - 1] = i - 1;\n checkedState.set(now.toString(), checkedState.get(last.toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(target.toString(), sourceRecord);\n } else if (sourceIndex < targetIndex) {\n const sourceRecord = checkedState.get(source.toString());\n for (let i = sourceIndex; i < targetIndex; i++) {\n const now = [...source];\n now[now.length - 1] = i;\n const next = [...source];\n next[next.length - 1] = i + 1;\n checkedState.set(now.toString(), checkedState.get(next.toString()));\n }\n // checkedState[targetIndex] = sourceRecord;\n checkedState.set(target.toString(), sourceRecord);\n }\n }\n}\n\nexport function getGroupCheckboxState(table: BaseTableAPI) {\n const result: any[] = [];\n const dataSource = table.dataSource as CachedDataSource;\n const groupKeyLength = dataSource.dataConfig.groupByRules.length + 1;\n dataSource.currentIndexedData.forEach((indexArr: number, index) => {\n if (isArray(indexArr) && indexArr.length === groupKeyLength) {\n // get record by index\n const vtableOriginIndex = (dataSource as CachedDataSource).getOriginRecordIndexForGroup(indexArr);\n result[vtableOriginIndex] = table.stateManager.checkedState.get(indexArr.toString());\n }\n });\n\n return result;\n}\n\nfunction initRecordCheckState(records: any[], state: StateManager) {\n const table = state.table;\n const start = table.isPivotTable()\n ? 0\n : table.internalProps.transpose\n ? table.rowHeaderLevelCount\n : table.columnHeaderLevelCount;\n const end = table.isPivotTable()\n ? isArray(records)\n ? records.length\n : 0\n : table.internalProps.transpose\n ? table.colCount\n : table.rowCount;\n for (let index = 0; index + start < end; index++) {\n const record = table.isPivotTable() ? records[index] : table.dataSource.get(index);\n // eslint-disable-next-line no-loop-func\n state._checkboxCellTypeFields.forEach(field => {\n const value =\n record && (record[field] as string | { text: string; checked: boolean; disable: boolean } | boolean);\n let isChecked;\n if (isObject(value)) {\n isChecked = value.checked;\n } else if (typeof value === 'boolean') {\n isChecked = value;\n }\n if (isChecked === undefined || isChecked === null) {\n const headerCheckFunc = state._headerCheckFuncs[field];\n if (headerCheckFunc) {\n //如果定义的checked是个函数 则需要每个都去计算这个值\n const cellAddr = state.table.getCellAddrByFieldRecord(field, index);\n const globalChecked = getOrApply(headerCheckFunc as any, {\n col: cellAddr.col,\n row: cellAddr.row,\n table: state.table,\n context: null,\n value\n });\n isChecked = globalChecked;\n }\n }\n const dataIndex = table.isPivotTable() ? index.toString() : state.table.dataSource.getIndexKey(index).toString();\n if (!state.checkedState.get(dataIndex)) {\n state.checkedState.set(dataIndex, {});\n }\n state.checkedState.get(dataIndex)[field] = isChecked;\n });\n }\n}\n"]}
@@ -16,7 +16,7 @@ export function updateHoverPosition(state, col, row) {
16
16
  }
17
17
  if ((disableHeader && table.isHeader(col, row) || highlightScope === HighlightScope.none) && (col = -1,
18
18
  row = -1), prevHoverCellCol === col && prevHoverCellRow === row) return;
19
- (null === (_a = state.table.options.customConfig) || void 0 === _a ? void 0 : _a.disableBuildInChartActive) || (scenegraph.deactivateChart(prevHoverCellCol, prevHoverCellRow),
19
+ cellPos.col = col, cellPos.row = row, (null === (_a = state.table.options.customConfig) || void 0 === _a ? void 0 : _a.disableBuildInChartActive) || (scenegraph.deactivateChart(prevHoverCellCol, prevHoverCellRow),
20
20
  scenegraph.activateChart(col, row));
21
21
  let updateScenegraph = !1;
22
22
  const {ranges: ranges, highlightScope: selectMode} = state.select;
@@ -26,7 +26,7 @@ export function updateHoverPosition(state, col, row) {
26
26
  highlightScope === HighlightScope.single ? updateScenegraph = !!updateSingleHover(scenegraph, col, row, ranges, selectMode) || updateScenegraph : highlightScope === HighlightScope.row ? updateScenegraph = !!updateRowHover(scenegraph, col, row, ranges, selectMode, singleStyle) || updateScenegraph : highlightScope === HighlightScope.column ? updateScenegraph = !!updateColHover(scenegraph, col, row, ranges, selectMode, singleStyle) || updateScenegraph : highlightScope === HighlightScope.cross && (updateScenegraph = !!updateRowHover(scenegraph, col, row, ranges, selectMode, singleStyle) || updateScenegraph,
27
27
  updateScenegraph = !!updateColHover(scenegraph, col, row, ranges, selectMode, singleStyle) || updateScenegraph),
28
28
  highlightScope === HighlightScope.none || disableHeader || scenegraph.showHoverIcon(col, row),
29
- cellPos.col = col, cellPos.row = row, updateScenegraph && state.table.scenegraph.updateNextFrame();
29
+ updateScenegraph && state.table.scenegraph.updateNextFrame();
30
30
  }
31
31
 
32
32
  function clearHover(scenegraph, col, row, selectRanges, singleStyle, mode, selectMode) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/state/hover/update-position.ts"],"names":[],"mappings":"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","file":"update-position.js","sourcesContent":["import type { Scenegraph } from '../../scenegraph/scenegraph';\nimport type { CellRange } from '../../ts-types';\nimport { HighlightScope } from '../../ts-types';\nimport { CellPosition } from '../../ts-types';\n// import { HoverMode, SelectMode, StateManager } from '../state';\nimport type { StateManager } from '../state';\nimport { clearColHover, updateColHover } from './col';\nimport { clearRowHover, updateRowHover } from './row';\nimport { clearSingleHover, updateSingleHover } from './single';\n\n/**\n * @description: 更新hover位置\n * @param {StateManager} state\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function updateHoverPosition(state: StateManager, col: number, row: number) {\n const { table } = state;\n const { scenegraph } = table;\n const { highlightScope, singleStyle, disableHeader, cellPos, cellPosContainHeader } = state.hover;\n const prevHoverCellCol = cellPos.col;\n const prevHoverCellRow = cellPos.row;\n\n if (\n highlightScope === HighlightScope.none ||\n (disableHeader && (cellPosContainHeader.col !== col || cellPosContainHeader.row !== row))\n ) {\n // disableHeader状态,更新hover图标状态依赖cellPosContainHeader\n const prevHoverCellCol = cellPosContainHeader.col;\n const prevHoverCellRow = cellPosContainHeader.row;\n scenegraph.hideHoverIcon(prevHoverCellCol, prevHoverCellRow);\n scenegraph.showHoverIcon(col, row);\n cellPosContainHeader.col = col;\n cellPosContainHeader.row = row;\n }\n\n if ((disableHeader && table.isHeader(col, row)) || highlightScope === HighlightScope.none) {\n col = -1;\n row = -1;\n }\n\n if (prevHoverCellCol === col && prevHoverCellRow === row) {\n return;\n }\n\n if (!state.table.options.customConfig?.disableBuildInChartActive) {\n // 将hover单元格的图表实例激活 并将上一个失去焦点\n scenegraph.deactivateChart(prevHoverCellCol, prevHoverCellRow);\n scenegraph.activateChart(col, row);\n }\n\n let updateScenegraph = false;\n const {\n // cellPosStart: selectStart,\n // cellPosEnd: selectEnd,\n ranges,\n highlightScope: selectMode\n } = state.select;\n // 移出表格/移入表头清空hover\n if (prevHoverCellCol !== -1 && prevHoverCellRow !== -1) {\n updateScenegraph = clearHover(\n scenegraph,\n prevHoverCellCol,\n prevHoverCellRow,\n // selectStart,\n // selectEnd,\n ranges,\n singleStyle,\n highlightScope,\n selectMode\n );\n\n if (!disableHeader) {\n scenegraph.hideHoverIcon(prevHoverCellCol, prevHoverCellRow);\n }\n }\n\n if (col === -1 || row === -1) {\n cellPos.col = -1;\n cellPos.row = -1;\n if (updateScenegraph && (prevHoverCellCol !== col || prevHoverCellRow !== row)) {\n state.table.scenegraph.updateNextFrame();\n }\n return;\n }\n\n // 更新hover单元格状态\n if (highlightScope === HighlightScope.single) {\n updateScenegraph = updateSingleHover(scenegraph, col, row, ranges, selectMode) ? true : updateScenegraph;\n } else if (highlightScope === HighlightScope.row) {\n updateScenegraph = updateRowHover(\n scenegraph,\n col,\n row,\n // selectStart,\n // selectEnd,\n ranges,\n selectMode,\n singleStyle\n )\n ? true\n : updateScenegraph;\n } else if (highlightScope === HighlightScope.column) {\n updateScenegraph = updateColHover(\n scenegraph,\n col,\n row,\n // selectStart,\n // selectEnd,\n ranges,\n selectMode,\n singleStyle\n )\n ? true\n : updateScenegraph;\n } else if (highlightScope === HighlightScope.cross) {\n updateScenegraph = updateRowHover(scenegraph, col, row, ranges, selectMode, singleStyle) ? true : updateScenegraph;\n updateScenegraph = updateColHover(scenegraph, col, row, ranges, selectMode, singleStyle) ? true : updateScenegraph;\n }\n\n // if (!disableHeader) {\n // scenegraph.showHoverIcon(col, row);\n // }\n if (highlightScope !== HighlightScope.none && !disableHeader) {\n scenegraph.showHoverIcon(col, row);\n }\n\n cellPos.col = col;\n cellPos.row = row;\n if (updateScenegraph) {\n state.table.scenegraph.updateNextFrame();\n }\n}\n\n/**\n * @description: 清空hover状态\n * @param {StateManager} state\n * @return {*}\n */\nfunction clearHover(\n scenegraph: Scenegraph,\n col: number,\n row: number,\n // selectStart: CellPosition,\n // selectEnd: CellPosition,\n selectRanges: CellRange[],\n singleStyle: boolean,\n mode: HighlightScope,\n selectMode: HighlightScope\n) {\n let updateScenegraph = false;\n if (mode === HighlightScope.single) {\n updateScenegraph = clearSingleHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n } else if (mode === HighlightScope.row) {\n updateScenegraph = clearRowHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n } else if (mode === HighlightScope.column) {\n updateScenegraph = clearColHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n } else if (mode === HighlightScope.cross) {\n updateScenegraph = clearRowHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n updateScenegraph = clearColHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n }\n\n return updateScenegraph;\n}\n"]}
1
+ {"version":3,"sources":["../src/state/hover/update-position.ts"],"names":[],"mappings":"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","file":"update-position.js","sourcesContent":["import type { Scenegraph } from '../../scenegraph/scenegraph';\nimport type { CellRange } from '../../ts-types';\nimport { HighlightScope } from '../../ts-types';\nimport { CellPosition } from '../../ts-types';\n// import { HoverMode, SelectMode, StateManager } from '../state';\nimport type { StateManager } from '../state';\nimport { clearColHover, updateColHover } from './col';\nimport { clearRowHover, updateRowHover } from './row';\nimport { clearSingleHover, updateSingleHover } from './single';\n\n/**\n * @description: 更新hover位置\n * @param {StateManager} state\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function updateHoverPosition(state: StateManager, col: number, row: number) {\n const { table } = state;\n const { scenegraph } = table;\n const { highlightScope, singleStyle, disableHeader, cellPos, cellPosContainHeader } = state.hover;\n const prevHoverCellCol = cellPos.col;\n const prevHoverCellRow = cellPos.row;\n\n if (\n highlightScope === HighlightScope.none ||\n (disableHeader && (cellPosContainHeader.col !== col || cellPosContainHeader.row !== row))\n ) {\n // disableHeader状态,更新hover图标状态依赖cellPosContainHeader\n const prevHoverCellCol = cellPosContainHeader.col;\n const prevHoverCellRow = cellPosContainHeader.row;\n scenegraph.hideHoverIcon(prevHoverCellCol, prevHoverCellRow);\n scenegraph.showHoverIcon(col, row);\n cellPosContainHeader.col = col;\n cellPosContainHeader.row = row;\n }\n\n if ((disableHeader && table.isHeader(col, row)) || highlightScope === HighlightScope.none) {\n col = -1;\n row = -1;\n }\n\n if (prevHoverCellCol === col && prevHoverCellRow === row) {\n return;\n }\n\n // activateChart逻辑需要用到这个hover的位置,所以需要先更新\n cellPos.col = col;\n cellPos.row = row;\n if (!state.table.options.customConfig?.disableBuildInChartActive) {\n // 将hover单元格的图表实例激活 并将上一个失去焦点\n scenegraph.deactivateChart(prevHoverCellCol, prevHoverCellRow);\n scenegraph.activateChart(col, row);\n }\n\n let updateScenegraph = false;\n const {\n // cellPosStart: selectStart,\n // cellPosEnd: selectEnd,\n ranges,\n highlightScope: selectMode\n } = state.select;\n // 移出表格/移入表头清空hover\n if (prevHoverCellCol !== -1 && prevHoverCellRow !== -1) {\n updateScenegraph = clearHover(\n scenegraph,\n prevHoverCellCol,\n prevHoverCellRow,\n // selectStart,\n // selectEnd,\n ranges,\n singleStyle,\n highlightScope,\n selectMode\n );\n\n if (!disableHeader) {\n scenegraph.hideHoverIcon(prevHoverCellCol, prevHoverCellRow);\n }\n }\n\n if (col === -1 || row === -1) {\n cellPos.col = -1;\n cellPos.row = -1;\n if (updateScenegraph && (prevHoverCellCol !== col || prevHoverCellRow !== row)) {\n state.table.scenegraph.updateNextFrame();\n }\n return;\n }\n\n // 更新hover单元格状态\n if (highlightScope === HighlightScope.single) {\n updateScenegraph = updateSingleHover(scenegraph, col, row, ranges, selectMode) ? true : updateScenegraph;\n } else if (highlightScope === HighlightScope.row) {\n updateScenegraph = updateRowHover(\n scenegraph,\n col,\n row,\n // selectStart,\n // selectEnd,\n ranges,\n selectMode,\n singleStyle\n )\n ? true\n : updateScenegraph;\n } else if (highlightScope === HighlightScope.column) {\n updateScenegraph = updateColHover(\n scenegraph,\n col,\n row,\n // selectStart,\n // selectEnd,\n ranges,\n selectMode,\n singleStyle\n )\n ? true\n : updateScenegraph;\n } else if (highlightScope === HighlightScope.cross) {\n updateScenegraph = updateRowHover(scenegraph, col, row, ranges, selectMode, singleStyle) ? true : updateScenegraph;\n updateScenegraph = updateColHover(scenegraph, col, row, ranges, selectMode, singleStyle) ? true : updateScenegraph;\n }\n\n // if (!disableHeader) {\n // scenegraph.showHoverIcon(col, row);\n // }\n if (highlightScope !== HighlightScope.none && !disableHeader) {\n scenegraph.showHoverIcon(col, row);\n }\n\n // cellPos.col = col;\n // cellPos.row = row;\n if (updateScenegraph) {\n state.table.scenegraph.updateNextFrame();\n }\n}\n\n/**\n * @description: 清空hover状态\n * @param {StateManager} state\n * @return {*}\n */\nfunction clearHover(\n scenegraph: Scenegraph,\n col: number,\n row: number,\n // selectStart: CellPosition,\n // selectEnd: CellPosition,\n selectRanges: CellRange[],\n singleStyle: boolean,\n mode: HighlightScope,\n selectMode: HighlightScope\n) {\n let updateScenegraph = false;\n if (mode === HighlightScope.single) {\n updateScenegraph = clearSingleHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n } else if (mode === HighlightScope.row) {\n updateScenegraph = clearRowHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n } else if (mode === HighlightScope.column) {\n updateScenegraph = clearColHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n } else if (mode === HighlightScope.cross) {\n updateScenegraph = clearRowHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n updateScenegraph = clearColHover(scenegraph, col, row, selectRanges, selectMode) ? true : updateScenegraph;\n }\n\n return updateScenegraph;\n}\n"]}
@@ -8,7 +8,7 @@ export declare function diffCellAddress(col: number, row: number, oldCellIds: nu
8
8
  }[];
9
9
  removeCellPositionsRowDirection: CellAddress[];
10
10
  updateCellPositionsRowDirection: {
11
- col: never;
11
+ col: number;
12
12
  row: number;
13
13
  }[];
14
14
  };
@@ -13,7 +13,10 @@ export function diffCellAddress(col, row, oldCellIds, newCellIds, oldRowHeaderCe
13
13
  for (parentCellAddress && updateCellPositionsRowDirection.push(parentCellAddress); parentId; ) parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row),
14
14
  parentId && (parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId),
15
15
  updateCellPositionsRowDirection.push(parentCellAddress));
16
- return {
16
+ return updateCellPositionsRowDirection.some((item => item.col === col && item.row === row)) || updateCellPositionsRowDirection.push({
17
+ col: col,
18
+ row: row
19
+ }), {
17
20
  addCellPositionsRowDirection: addCellPositionsRowDirection,
18
21
  removeCellPositionsRowDirection: removeCellPositionsRowDirection,
19
22
  updateCellPositionsRowDirection: updateCellPositionsRowDirection
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/diff-cell.ts"],"names":[],"mappings":"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","file":"diff-cell.js","sourcesContent":["import type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';\nimport type { Scenegraph } from '../scenegraph/scenegraph';\nimport type { CellAddress } from '../ts-types';\n\nexport function diffCellAddress(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n layout: PivotHeaderLayoutMap\n) {\n const columnHeaderStart = layout.columnHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositionsRowDirection = [];\n const removeCellPositionsRowDirection = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositionsRowDirection.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col, row: columnHeaderStart + i }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositionsRowDirection.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositionsRowDirection = [];\n parentCellAddress && updateCellPositionsRowDirection.push(parentCellAddress);\n while (parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositionsRowDirection.push(parentCellAddress);\n }\n }\n return {\n addCellPositionsRowDirection,\n removeCellPositionsRowDirection,\n updateCellPositionsRowDirection\n };\n}\n\nexport function diffCellAddressForGridTree(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n\n layout: PivotHeaderLayoutMap\n) {\n const columnHeaderStart = layout.columnHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositionsRowDirection = [];\n const removeCellPositionsRowDirection = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositionsRowDirection.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col, row: columnHeaderStart + i }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositionsRowDirection.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositionsRowDirection = [];\n parentCellAddress && updateCellPositionsRowDirection.push(parentCellAddress);\n while (parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositionsRowDirection.push(parentCellAddress);\n }\n }\n\n const addCellPositionsColumnDirection = [];\n // const updateCellPositionsColumnDirection = [];\n const removeCellPositionsColumnDirection = [];\n if (\n layout.rowHierarchyType === 'grid-tree' &&\n layout.cornerSetting.titleOnDimension === 'column' &&\n layout.rowHeaderLevelCount !== layout._cornerHeaderCellIds[0].length // 表头层级数发生了变化 需要整体做更新_cornerHeaderCellIds是旧值 rowHeaderLevelCount是新值\n ) {\n if (layout.rowHeaderLevelCount > layout._cornerHeaderCellIds[0].length) {\n for (let i = layout._cornerHeaderCellIds[0].length; i < layout.rowHeaderLevelCount; i++) {\n addCellPositionsColumnDirection.push({ col: i, row });\n }\n } else {\n for (let i = layout.rowHeaderLevelCount; i < layout._cornerHeaderCellIds[0].length; i++) {\n // if (layout.hideIndicatorName === false && layout.indicatorsAsCol === false) {\n // removeCellPositionsColumnDirection.push({ col: i, row });\n // updateCellPositionsColumnDirection.push({ col: i - 1, row });\n // } else {\n removeCellPositionsColumnDirection.push({ col: i, row });\n // }\n }\n }\n }\n\n return {\n addCellPositionsRowDirection,\n removeCellPositionsRowDirection,\n updateCellPositionsRowDirection,\n addCellPositionsColumnDirection,\n removeCellPositionsColumnDirection\n // updateCellPositionsColumnDirection\n };\n}\n\nexport function diffCellAddressForGridTreeOnColumn(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n\n layout: PivotHeaderLayoutMap\n) {\n const rowHeaderStart = layout.rowHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositionsColumnDirection = [];\n const removeCellPositionsColumnDirection = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositionsColumnDirection.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col: rowHeaderStart + i, row }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositionsColumnDirection.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositionsColumnDirection = [];\n parentCellAddress && updateCellPositionsColumnDirection.push(parentCellAddress);\n while (parentCellAddress && parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositionsColumnDirection.push(parentCellAddress);\n }\n }\n\n const addCellPositionsRowDirection = [];\n // const updateCellPositionsRowDirection = [];\n const removeCellPositionsRowDirection = [];\n if (\n layout.columnHierarchyType === 'grid-tree' &&\n layout.cornerSetting.titleOnDimension === 'row' &&\n layout.columnHeaderLevelCount !== layout._cornerHeaderCellIds.length // 表头层级数发生了变化 需要整体做更新_cornerHeaderCellIds是旧值 rowHeaderLevelCount是新值\n ) {\n if (layout.columnHeaderLevelCount > layout._cornerHeaderCellIds.length) {\n for (let i = layout._cornerHeaderCellIds.length; i < layout.columnHeaderLevelCount; i++) {\n addCellPositionsRowDirection.push({ col, row: i });\n }\n } else {\n for (let i = layout.columnHeaderLevelCount; i < layout._cornerHeaderCellIds.length; i++) {\n // if (layout.hideIndicatorName && layout.indicatorsAsCol) {\n // removeCellPositionsRowDirection.push({ col, row: i });\n // updateCellPositionsRowDirection.push({ col, row: i - 1 });\n // } else {\n removeCellPositionsRowDirection.push({ col, row: i });\n // }\n }\n }\n }\n return {\n addCellPositionsColumnDirection,\n removeCellPositionsColumnDirection,\n updateCellPositionsColumnDirection,\n addCellPositionsRowDirection,\n // updateCellPositionsRowDirection,\n removeCellPositionsRowDirection\n };\n}\n\n// find diff between two arrays\nfunction diffCellIndices(oldIndexedData: (number | number[])[], currentIndexedData: (number | number[])[]) {\n const add = [];\n const remove = [];\n // find removed indices\n for (let i = 0; i < oldIndexedData.length; i++) {\n let removed = true;\n for (let j = 0; j < currentIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[i], currentIndexedData[j])) {\n removed = false;\n break;\n }\n }\n if (removed) {\n remove.push(i);\n }\n }\n\n // find added indices\n for (let i = 0; i < currentIndexedData.length; i++) {\n let added = true;\n for (let j = 0; j < oldIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[j], currentIndexedData[i])) {\n added = false;\n break;\n }\n }\n if (added) {\n add.push(i);\n }\n }\n return { add, remove };\n}\n\nfunction checkIndex(oldIndex: number | number[], newIndex: number | number[]): boolean {\n if (typeof oldIndex !== typeof newIndex) {\n return false;\n }\n if (typeof oldIndex === 'number' && typeof newIndex === 'number' && oldIndex !== newIndex) {\n return false;\n }\n if ((oldIndex as number[]).length !== (newIndex as number[]).length) {\n return false;\n }\n for (let i = 0; i < (oldIndex as number[]).length; i++) {\n if (oldIndex[i] !== newIndex[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport function calculateArrayDiff(\n originalArray: (number | number[])[],\n targetArray: (number | number[])[],\n startIndex: number\n) {\n const add = [];\n const remove = [];\n\n const originalMap = new Map();\n for (let i = 0; i < originalArray.length; i++) {\n const element = originalArray[i];\n const key = JSON.stringify(element);\n if (originalMap.has(key)) {\n originalMap.get(key).push(i);\n } else {\n originalMap.set(key, [i]);\n }\n }\n\n for (let i = 0; i < targetArray.length; i++) {\n const element = targetArray[i];\n const key = JSON.stringify(element);\n if (!originalMap.has(key)) {\n add.push(i + startIndex);\n } else {\n const indices = originalMap.get(key);\n indices.shift(); // Remove the first index\n if (indices.length === 0) {\n originalMap.delete(key);\n }\n }\n }\n\n for (let i = 0; i < originalArray.length; i++) {\n const element = originalArray[i];\n if (!targetArray.some(item => isEqual(item, element))) {\n remove.push(i + startIndex);\n }\n }\n\n return { add, remove };\n}\n\nfunction isEqual(arr1: any, arr2: any) {\n if (arr1 === arr2) {\n return true;\n }\n\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function callUpdateRowOnScenegraph(\n result: {\n addCellPositionsRowDirection?: CellAddress[];\n removeCellPositionsRowDirection?: CellAddress[];\n updateCellPositionsRowDirection?: CellAddress[];\n addCellPositionsColumnDirection?: CellAddress[];\n removeCellPositionsColumnDirection?: CellAddress[];\n updateCellPositionsColumnDirection?: CellAddress[];\n },\n recalculateColWidths: boolean,\n newFrozenRowCount: number,\n oldFrozenRowCount: number,\n scenegraph: Scenegraph\n) {\n if (\n result.addCellPositionsRowDirection?.length ||\n result.removeCellPositionsRowDirection?.length ||\n result.updateCellPositionsRowDirection?.length\n ) {\n scenegraph.updateRow(\n result.removeCellPositionsRowDirection,\n result.addCellPositionsRowDirection.map(item => {\n item.row += newFrozenRowCount - oldFrozenRowCount;\n return item;\n }),\n result.updateCellPositionsRowDirection,\n recalculateColWidths\n );\n }\n}\n\nexport function callUpdateColOnScenegraph(\n result: {\n addCellPositionsRowDirection?: CellAddress[];\n removeCellPositionsRowDirection?: CellAddress[];\n updateCellPositionsRowDirection?: CellAddress[];\n addCellPositionsColumnDirection?: CellAddress[];\n removeCellPositionsColumnDirection?: CellAddress[];\n updateCellPositionsColumnDirection?: CellAddress[];\n },\n newFrozenColCount: number,\n oldFrozenColCount: number,\n scenegraph: Scenegraph\n) {\n if (\n result.addCellPositionsColumnDirection?.length ||\n result.removeCellPositionsColumnDirection?.length ||\n result.updateCellPositionsColumnDirection?.length\n ) {\n scenegraph.updateCol(\n result.removeCellPositionsColumnDirection,\n result.addCellPositionsColumnDirection.map(item => {\n item.col += newFrozenColCount - oldFrozenColCount;\n return item;\n }),\n result.updateCellPositionsColumnDirection\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/tools/diff-cell.ts"],"names":[],"mappings":"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","file":"diff-cell.js","sourcesContent":["import type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';\nimport type { Scenegraph } from '../scenegraph/scenegraph';\nimport type { CellAddress } from '../ts-types';\n\nexport function diffCellAddress(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n layout: PivotHeaderLayoutMap\n) {\n const columnHeaderStart = layout.columnHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositionsRowDirection = [];\n const removeCellPositionsRowDirection = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositionsRowDirection.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col, row: columnHeaderStart + i }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositionsRowDirection.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositionsRowDirection = [];\n parentCellAddress && updateCellPositionsRowDirection.push(parentCellAddress);\n while (parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositionsRowDirection.push(parentCellAddress);\n }\n }\n\n // 如果updateCellPositionsRowDirection中没有{col,row},则添加;目的是在有懒加载icon的情况下,更新按钮状态,与列表状态保持一致\n if (!updateCellPositionsRowDirection.some(item => item.col === col && item.row === row)) {\n updateCellPositionsRowDirection.push({ col, row });\n }\n\n return {\n addCellPositionsRowDirection,\n removeCellPositionsRowDirection,\n updateCellPositionsRowDirection\n };\n}\n\nexport function diffCellAddressForGridTree(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n\n layout: PivotHeaderLayoutMap\n) {\n const columnHeaderStart = layout.columnHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositionsRowDirection = [];\n const removeCellPositionsRowDirection = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositionsRowDirection.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col, row: columnHeaderStart + i }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositionsRowDirection.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositionsRowDirection = [];\n parentCellAddress && updateCellPositionsRowDirection.push(parentCellAddress);\n while (parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositionsRowDirection.push(parentCellAddress);\n }\n }\n\n const addCellPositionsColumnDirection = [];\n // const updateCellPositionsColumnDirection = [];\n const removeCellPositionsColumnDirection = [];\n if (\n layout.rowHierarchyType === 'grid-tree' &&\n layout.cornerSetting.titleOnDimension === 'column' &&\n layout.rowHeaderLevelCount !== layout._cornerHeaderCellIds[0].length // 表头层级数发生了变化 需要整体做更新_cornerHeaderCellIds是旧值 rowHeaderLevelCount是新值\n ) {\n if (layout.rowHeaderLevelCount > layout._cornerHeaderCellIds[0].length) {\n for (let i = layout._cornerHeaderCellIds[0].length; i < layout.rowHeaderLevelCount; i++) {\n addCellPositionsColumnDirection.push({ col: i, row });\n }\n } else {\n for (let i = layout.rowHeaderLevelCount; i < layout._cornerHeaderCellIds[0].length; i++) {\n // if (layout.hideIndicatorName === false && layout.indicatorsAsCol === false) {\n // removeCellPositionsColumnDirection.push({ col: i, row });\n // updateCellPositionsColumnDirection.push({ col: i - 1, row });\n // } else {\n removeCellPositionsColumnDirection.push({ col: i, row });\n // }\n }\n }\n }\n\n return {\n addCellPositionsRowDirection,\n removeCellPositionsRowDirection,\n updateCellPositionsRowDirection,\n addCellPositionsColumnDirection,\n removeCellPositionsColumnDirection\n // updateCellPositionsColumnDirection\n };\n}\n\nexport function diffCellAddressForGridTreeOnColumn(\n col: number,\n row: number,\n oldCellIds: number[],\n newCellIds: number[],\n oldRowHeaderCellPositons: CellAddress[],\n\n layout: PivotHeaderLayoutMap\n) {\n const rowHeaderStart = layout.rowHeaderLevelCount;\n // const oldCellIds = oldCellIdsArr.map(oldCellId => oldCellId[0]);\n // const newCellIds = newCellIdsArr.map(oldCellId => oldCellId[0]);\n const addCellPositionsColumnDirection = [];\n const removeCellPositionsColumnDirection = [];\n // const updateCellIds: Set<LayoutObjectId> = new Set();\n // diff two array elements\n for (let i = 0; i < oldCellIds.length; i++) {\n if (!newCellIds.includes(oldCellIds[i])) {\n // updateCellIds.add(layout.getParentCellId(oldRowHeaderCellPositons[i].col, oldRowHeaderCellPositons[i].row));\n removeCellPositionsColumnDirection.push(oldRowHeaderCellPositons[i]);\n }\n }\n for (let i = 0; i < newCellIds.length; i++) {\n if (!oldCellIds.includes(newCellIds[i])) {\n const newCellAddr = { col: rowHeaderStart + i, row }; // layout.getHeaderCellAdressById(newCellIds[i]);\n // updateCellIds.add(layout.getParentCellId(newCellAddr.col, newCellAddr.row));\n addCellPositionsColumnDirection.push(newCellAddr);\n }\n }\n let parentId = layout.getParentCellId(col, row);\n let parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n const updateCellPositionsColumnDirection = [];\n parentCellAddress && updateCellPositionsColumnDirection.push(parentCellAddress);\n while (parentCellAddress && parentId) {\n parentId = layout.getParentCellId(parentCellAddress.col, parentCellAddress.row);\n if (parentId) {\n parentCellAddress = layout.getRowHeaderCellAddressByCellId(parentId);\n updateCellPositionsColumnDirection.push(parentCellAddress);\n }\n }\n\n const addCellPositionsRowDirection = [];\n // const updateCellPositionsRowDirection = [];\n const removeCellPositionsRowDirection = [];\n if (\n layout.columnHierarchyType === 'grid-tree' &&\n layout.cornerSetting.titleOnDimension === 'row' &&\n layout.columnHeaderLevelCount !== layout._cornerHeaderCellIds.length // 表头层级数发生了变化 需要整体做更新_cornerHeaderCellIds是旧值 rowHeaderLevelCount是新值\n ) {\n if (layout.columnHeaderLevelCount > layout._cornerHeaderCellIds.length) {\n for (let i = layout._cornerHeaderCellIds.length; i < layout.columnHeaderLevelCount; i++) {\n addCellPositionsRowDirection.push({ col, row: i });\n }\n } else {\n for (let i = layout.columnHeaderLevelCount; i < layout._cornerHeaderCellIds.length; i++) {\n // if (layout.hideIndicatorName && layout.indicatorsAsCol) {\n // removeCellPositionsRowDirection.push({ col, row: i });\n // updateCellPositionsRowDirection.push({ col, row: i - 1 });\n // } else {\n removeCellPositionsRowDirection.push({ col, row: i });\n // }\n }\n }\n }\n return {\n addCellPositionsColumnDirection,\n removeCellPositionsColumnDirection,\n updateCellPositionsColumnDirection,\n addCellPositionsRowDirection,\n // updateCellPositionsRowDirection,\n removeCellPositionsRowDirection\n };\n}\n\n// find diff between two arrays\nfunction diffCellIndices(oldIndexedData: (number | number[])[], currentIndexedData: (number | number[])[]) {\n const add = [];\n const remove = [];\n // find removed indices\n for (let i = 0; i < oldIndexedData.length; i++) {\n let removed = true;\n for (let j = 0; j < currentIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[i], currentIndexedData[j])) {\n removed = false;\n break;\n }\n }\n if (removed) {\n remove.push(i);\n }\n }\n\n // find added indices\n for (let i = 0; i < currentIndexedData.length; i++) {\n let added = true;\n for (let j = 0; j < oldIndexedData.length; j++) {\n if (checkIndex(oldIndexedData[j], currentIndexedData[i])) {\n added = false;\n break;\n }\n }\n if (added) {\n add.push(i);\n }\n }\n return { add, remove };\n}\n\nfunction checkIndex(oldIndex: number | number[], newIndex: number | number[]): boolean {\n if (typeof oldIndex !== typeof newIndex) {\n return false;\n }\n if (typeof oldIndex === 'number' && typeof newIndex === 'number' && oldIndex !== newIndex) {\n return false;\n }\n if ((oldIndex as number[]).length !== (newIndex as number[]).length) {\n return false;\n }\n for (let i = 0; i < (oldIndex as number[]).length; i++) {\n if (oldIndex[i] !== newIndex[i]) {\n return false;\n }\n }\n return true;\n}\n\nexport function calculateArrayDiff(\n originalArray: (number | number[])[],\n targetArray: (number | number[])[],\n startIndex: number\n) {\n const add = [];\n const remove = [];\n\n const originalMap = new Map();\n for (let i = 0; i < originalArray.length; i++) {\n const element = originalArray[i];\n const key = JSON.stringify(element);\n if (originalMap.has(key)) {\n originalMap.get(key).push(i);\n } else {\n originalMap.set(key, [i]);\n }\n }\n\n for (let i = 0; i < targetArray.length; i++) {\n const element = targetArray[i];\n const key = JSON.stringify(element);\n if (!originalMap.has(key)) {\n add.push(i + startIndex);\n } else {\n const indices = originalMap.get(key);\n indices.shift(); // Remove the first index\n if (indices.length === 0) {\n originalMap.delete(key);\n }\n }\n }\n\n for (let i = 0; i < originalArray.length; i++) {\n const element = originalArray[i];\n if (!targetArray.some(item => isEqual(item, element))) {\n remove.push(i + startIndex);\n }\n }\n\n return { add, remove };\n}\n\nfunction isEqual(arr1: any, arr2: any) {\n if (arr1 === arr2) {\n return true;\n }\n\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function callUpdateRowOnScenegraph(\n result: {\n addCellPositionsRowDirection?: CellAddress[];\n removeCellPositionsRowDirection?: CellAddress[];\n updateCellPositionsRowDirection?: CellAddress[];\n addCellPositionsColumnDirection?: CellAddress[];\n removeCellPositionsColumnDirection?: CellAddress[];\n updateCellPositionsColumnDirection?: CellAddress[];\n },\n recalculateColWidths: boolean,\n newFrozenRowCount: number,\n oldFrozenRowCount: number,\n scenegraph: Scenegraph\n) {\n if (\n result.addCellPositionsRowDirection?.length ||\n result.removeCellPositionsRowDirection?.length ||\n result.updateCellPositionsRowDirection?.length\n ) {\n scenegraph.updateRow(\n result.removeCellPositionsRowDirection,\n result.addCellPositionsRowDirection.map(item => {\n item.row += newFrozenRowCount - oldFrozenRowCount;\n return item;\n }),\n result.updateCellPositionsRowDirection,\n recalculateColWidths\n );\n }\n}\n\nexport function callUpdateColOnScenegraph(\n result: {\n addCellPositionsRowDirection?: CellAddress[];\n removeCellPositionsRowDirection?: CellAddress[];\n updateCellPositionsRowDirection?: CellAddress[];\n addCellPositionsColumnDirection?: CellAddress[];\n removeCellPositionsColumnDirection?: CellAddress[];\n updateCellPositionsColumnDirection?: CellAddress[];\n },\n newFrozenColCount: number,\n oldFrozenColCount: number,\n scenegraph: Scenegraph\n) {\n if (\n result.addCellPositionsColumnDirection?.length ||\n result.removeCellPositionsColumnDirection?.length ||\n result.updateCellPositionsColumnDirection?.length\n ) {\n scenegraph.updateCol(\n result.removeCellPositionsColumnDirection,\n result.addCellPositionsColumnDirection.map(item => {\n item.col += newFrozenColCount - oldFrozenColCount;\n return item;\n }),\n result.updateCellPositionsColumnDirection\n );\n }\n}\n"]}
@@ -8,7 +8,7 @@ import type { ColumnData, ColumnDefine, ColumnsDefine, HeaderData, IndicatorData
8
8
  export type { HeaderData } from './list-table/layout-map/api';
9
9
  import type { TableTheme } from '../themes/theme-define';
10
10
  import type { ICustomRender } from './customElement';
11
- import type { LayoutObjectId } from './table-engine';
11
+ import type { GroupByOption, LayoutObjectId } from './table-engine';
12
12
  import type { Rect } from '../tools/Rect';
13
13
  import type { Scenegraph } from '../scenegraph/scenegraph';
14
14
  import type { StateManager } from '../state/state';
@@ -629,6 +629,11 @@ export interface ListTableProtected extends IBaseTableProtected {
629
629
  key: string;
630
630
  width: number;
631
631
  }[];
632
+ groupBy: GroupByOption;
633
+ groupTitleFieldFormat?: (record: any, col?: number, row?: number, table?: BaseTableAPI) => string;
634
+ groupTitleCustomLayout?: ICustomLayout;
635
+ enableTreeStickCell?: boolean;
636
+ groupTitleCheckbox?: boolean;
632
637
  }
633
638
  export interface PivotTableProtected extends IBaseTableProtected {
634
639
  records: any[] | undefined;