@visactor/vtable 0.21.4-alpha.4 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/cjs/ListTable.d.ts +2 -4
  2. package/cjs/ListTable.js +37 -28
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.d.ts +1 -0
  5. package/cjs/PivotChart.js +1 -0
  6. package/cjs/PivotChart.js.map +1 -1
  7. package/cjs/PivotTable.d.ts +1 -0
  8. package/cjs/PivotTable.js +13 -4
  9. package/cjs/PivotTable.js.map +1 -1
  10. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  11. package/cjs/core/BaseTable.d.ts +14 -9
  12. package/cjs/core/BaseTable.js +44 -33
  13. package/cjs/core/BaseTable.js.map +1 -1
  14. package/cjs/core/row-series-number-helper.d.ts +8 -0
  15. package/cjs/core/row-series-number-helper.js +45 -0
  16. package/cjs/core/row-series-number-helper.js.map +1 -0
  17. package/cjs/core/style.js +2 -1
  18. package/cjs/core/tableHelper.js +1 -1
  19. package/cjs/core/tableHelper.js.map +1 -1
  20. package/cjs/data/CachedDataSource.d.ts +2 -2
  21. package/cjs/data/CachedDataSource.js +5 -5
  22. package/cjs/data/CachedDataSource.js.map +1 -1
  23. package/cjs/data/DataSource.d.ts +6 -2
  24. package/cjs/data/DataSource.js +113 -41
  25. package/cjs/data/DataSource.js.map +1 -1
  26. package/cjs/event/event.js.map +1 -1
  27. package/cjs/event/listener/table-group.js +2 -1
  28. package/cjs/event/listener/table-group.js.map +1 -1
  29. package/cjs/event/media-click.js +1 -2
  30. package/cjs/event/media-click.js.map +1 -1
  31. package/cjs/event/scroll.js +1 -0
  32. package/cjs/header-helper/header-helper.js.map +1 -1
  33. package/cjs/icons.js +14 -0
  34. package/cjs/icons.js.map +1 -1
  35. package/cjs/index.d.ts +1 -1
  36. package/cjs/index.js +1 -1
  37. package/cjs/index.js.map +1 -1
  38. package/cjs/layout/layout-helper.d.ts +1 -0
  39. package/cjs/layout/layout-helper.js +12 -2
  40. package/cjs/layout/layout-helper.js.map +1 -1
  41. package/cjs/layout/pivot-header-layout.d.ts +16 -5
  42. package/cjs/layout/pivot-header-layout.js +102 -46
  43. package/cjs/layout/pivot-header-layout.js.map +1 -1
  44. package/cjs/layout/simple-header-layout.d.ts +17 -4
  45. package/cjs/layout/simple-header-layout.js +170 -61
  46. package/cjs/layout/simple-header-layout.js.map +1 -1
  47. package/cjs/plugins/themes.js +1 -2
  48. package/cjs/scenegraph/component/cell-mover.js +1 -1
  49. package/cjs/scenegraph/component/cell-mover.js.map +1 -1
  50. package/cjs/scenegraph/component/custom.js +1 -1
  51. package/cjs/scenegraph/component/custom.js.map +1 -1
  52. package/cjs/scenegraph/component/menu.js.map +1 -1
  53. package/cjs/scenegraph/group-creater/cell-helper.d.ts +0 -1
  54. package/cjs/scenegraph/group-creater/cell-helper.js +28 -18
  55. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  56. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  57. package/cjs/scenegraph/group-creater/column-helper.js +3 -4
  58. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  59. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +9 -2
  60. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  61. package/cjs/scenegraph/group-creater/progress/proxy.js +1 -1
  62. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  63. package/cjs/scenegraph/layout/compute-col-width.js +2 -2
  64. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  65. package/cjs/scenegraph/layout/compute-row-height.js +2 -2
  66. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  67. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  68. package/cjs/scenegraph/layout/update-row.js +8 -2
  69. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  70. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  71. package/cjs/scenegraph/scenegraph.d.ts +1 -1
  72. package/cjs/scenegraph/scenegraph.js +4 -3
  73. package/cjs/scenegraph/scenegraph.js.map +1 -1
  74. package/cjs/scenegraph/select/update-select-border.d.ts +1 -3
  75. package/cjs/scenegraph/select/update-select-border.js +4 -21
  76. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  77. package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -1
  78. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  79. package/cjs/state/cell-move/adjust-header.js +3 -4
  80. package/cjs/state/cell-move/adjust-header.js.map +1 -1
  81. package/cjs/state/cell-move/index.js +15 -10
  82. package/cjs/state/cell-move/index.js.map +1 -1
  83. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  84. package/cjs/state/resize/update-resize-column.js.map +1 -1
  85. package/cjs/state/select/update-position.js +33 -6
  86. package/cjs/state/select/update-position.js.map +1 -1
  87. package/cjs/state/state.js +2 -1
  88. package/cjs/state/state.js.map +1 -1
  89. package/cjs/themes/component.js +1 -1
  90. package/cjs/ts-types/base-table.d.ts +15 -6
  91. package/cjs/ts-types/base-table.js.map +1 -1
  92. package/cjs/ts-types/icon.d.ts +4 -2
  93. package/cjs/ts-types/icon.js +3 -2
  94. package/cjs/ts-types/icon.js.map +1 -1
  95. package/cjs/ts-types/list-table/layout-map/api.d.ts +17 -3
  96. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  97. package/cjs/ts-types/new-data-set.d.ts +1 -2
  98. package/cjs/ts-types/new-data-set.js.map +1 -1
  99. package/cjs/ts-types/pivot-table/title.d.ts +5 -5
  100. package/cjs/ts-types/pivot-table/title.js.map +1 -1
  101. package/cjs/ts-types/table-engine.d.ts +30 -3
  102. package/cjs/ts-types/table-engine.js.map +1 -1
  103. package/cjs/vrender.js.map +1 -1
  104. package/dist/vtable.js +1042 -296
  105. package/dist/vtable.min.js +2 -2
  106. package/es/ListTable.d.ts +2 -4
  107. package/es/ListTable.js +37 -28
  108. package/es/ListTable.js.map +1 -1
  109. package/es/PivotChart.d.ts +1 -0
  110. package/es/PivotChart.js +1 -0
  111. package/es/PivotChart.js.map +1 -1
  112. package/es/PivotTable.d.ts +1 -0
  113. package/es/PivotTable.js +13 -4
  114. package/es/PivotTable.js.map +1 -1
  115. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  116. package/es/core/BaseTable.d.ts +14 -9
  117. package/es/core/BaseTable.js +46 -34
  118. package/es/core/BaseTable.js.map +1 -1
  119. package/es/core/row-series-number-helper.d.ts +8 -0
  120. package/es/core/row-series-number-helper.js +14 -0
  121. package/es/core/row-series-number-helper.js.map +1 -0
  122. package/es/core/style.js +2 -1
  123. package/es/core/tableHelper.js +1 -1
  124. package/es/core/tableHelper.js.map +1 -1
  125. package/es/data/CachedDataSource.d.ts +2 -2
  126. package/es/data/CachedDataSource.js +5 -5
  127. package/es/data/CachedDataSource.js.map +1 -1
  128. package/es/data/DataSource.d.ts +6 -2
  129. package/es/data/DataSource.js +113 -41
  130. package/es/data/DataSource.js.map +1 -1
  131. package/es/event/event.js.map +1 -1
  132. package/es/event/listener/table-group.js +3 -2
  133. package/es/event/listener/table-group.js.map +1 -1
  134. package/es/event/media-click.js +1 -2
  135. package/es/event/media-click.js.map +1 -1
  136. package/es/event/scroll.js +2 -1
  137. package/es/header-helper/header-helper.js.map +1 -1
  138. package/es/icons.js +14 -0
  139. package/es/icons.js.map +1 -1
  140. package/es/index.d.ts +1 -1
  141. package/es/index.js +1 -1
  142. package/es/index.js.map +1 -1
  143. package/es/layout/layout-helper.d.ts +1 -0
  144. package/es/layout/layout-helper.js +10 -0
  145. package/es/layout/layout-helper.js.map +1 -1
  146. package/es/layout/pivot-header-layout.d.ts +16 -5
  147. package/es/layout/pivot-header-layout.js +102 -46
  148. package/es/layout/pivot-header-layout.js.map +1 -1
  149. package/es/layout/simple-header-layout.d.ts +17 -4
  150. package/es/layout/simple-header-layout.js +170 -61
  151. package/es/layout/simple-header-layout.js.map +1 -1
  152. package/es/plugins/themes.js +1 -2
  153. package/es/scenegraph/component/cell-mover.js +1 -1
  154. package/es/scenegraph/component/cell-mover.js.map +1 -1
  155. package/es/scenegraph/component/custom.js +1 -1
  156. package/es/scenegraph/component/custom.js.map +1 -1
  157. package/es/scenegraph/component/menu.js.map +1 -1
  158. package/es/scenegraph/group-creater/cell-helper.d.ts +0 -1
  159. package/es/scenegraph/group-creater/cell-helper.js +26 -14
  160. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  161. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  162. package/es/scenegraph/group-creater/column-helper.js +5 -6
  163. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  164. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +6 -2
  165. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  166. package/es/scenegraph/group-creater/progress/proxy.js +1 -1
  167. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  168. package/es/scenegraph/layout/compute-col-width.js +3 -3
  169. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  170. package/es/scenegraph/layout/compute-row-height.js +3 -3
  171. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  172. package/es/scenegraph/layout/update-height.js.map +1 -1
  173. package/es/scenegraph/layout/update-row.js +7 -2
  174. package/es/scenegraph/layout/update-row.js.map +1 -1
  175. package/es/scenegraph/layout/update-width.js.map +1 -1
  176. package/es/scenegraph/scenegraph.d.ts +1 -1
  177. package/es/scenegraph/scenegraph.js +4 -3
  178. package/es/scenegraph/scenegraph.js.map +1 -1
  179. package/es/scenegraph/select/update-select-border.d.ts +1 -3
  180. package/es/scenegraph/select/update-select-border.js +2 -18
  181. package/es/scenegraph/select/update-select-border.js.map +1 -1
  182. package/es/scenegraph/utils/get-cell-merge.js.map +1 -1
  183. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  184. package/es/state/cell-move/adjust-header.js +3 -4
  185. package/es/state/cell-move/adjust-header.js.map +1 -1
  186. package/es/state/cell-move/index.js +14 -10
  187. package/es/state/cell-move/index.js.map +1 -1
  188. package/es/state/hover/is-cell-hover.js.map +1 -1
  189. package/es/state/resize/update-resize-column.js.map +1 -1
  190. package/es/state/select/update-position.js +33 -6
  191. package/es/state/select/update-position.js.map +1 -1
  192. package/es/state/state.js +2 -1
  193. package/es/state/state.js.map +1 -1
  194. package/es/themes/component.js +1 -1
  195. package/es/ts-types/base-table.d.ts +15 -6
  196. package/es/ts-types/base-table.js.map +1 -1
  197. package/es/ts-types/icon.d.ts +4 -2
  198. package/es/ts-types/icon.js +3 -2
  199. package/es/ts-types/icon.js.map +1 -1
  200. package/es/ts-types/list-table/layout-map/api.d.ts +17 -3
  201. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  202. package/es/ts-types/new-data-set.d.ts +1 -2
  203. package/es/ts-types/new-data-set.js.map +1 -1
  204. package/es/ts-types/pivot-table/title.d.ts +5 -5
  205. package/es/ts-types/pivot-table/title.js.map +1 -1
  206. package/es/ts-types/table-engine.d.ts +30 -3
  207. package/es/ts-types/table-engine.js.map +1 -1
  208. package/es/vrender.js.map +1 -1
  209. package/package.json +5 -5
@@ -0,0 +1,8 @@
1
+ import { type ColumnIconOption, type SvgIcon } from '../ts-types';
2
+ import type { BaseTableAPI } from '../ts-types/base-table';
3
+ export declare class RowSeriesNumberHelper {
4
+ dragReorderIconName: SvgIcon;
5
+ _table: BaseTableAPI;
6
+ constructor(_table: BaseTableAPI);
7
+ getIcons(col: number, row: number): ColumnIconOption[];
8
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
4
+ void 0 === k2 && (k2 = k);
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
7
+ enumerable: !0,
8
+ get: function() {
9
+ return m[k];
10
+ }
11
+ }), Object.defineProperty(o, k2, desc);
12
+ } : function(o, m, k, k2) {
13
+ void 0 === k2 && (k2 = k), o[k2] = m[k];
14
+ }), __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function(o, v) {
15
+ Object.defineProperty(o, "default", {
16
+ enumerable: !0,
17
+ value: v
18
+ });
19
+ } : function(o, v) {
20
+ o.default = v;
21
+ }), __importStar = this && this.__importStar || function(mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (null != mod) for (var k in mod) "default" !== k && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k);
25
+ return __setModuleDefault(result, mod), result;
26
+ };
27
+
28
+ Object.defineProperty(exports, "__esModule", {
29
+ value: !0
30
+ }), exports.RowSeriesNumberHelper = void 0;
31
+
32
+ const ts_types_1 = require("../ts-types"), registerIcons = __importStar(require("../icons"));
33
+
34
+ class RowSeriesNumberHelper {
35
+ constructor(_table) {
36
+ this._table = _table;
37
+ const regedIcons = registerIcons.get();
38
+ this.dragReorderIconName = regedIcons[ts_types_1.InternalIconName.dragReorderIconName];
39
+ }
40
+ getIcons(col, row) {
41
+ return [ this.dragReorderIconName ];
42
+ }
43
+ }
44
+
45
+ exports.RowSeriesNumberHelper = RowSeriesNumberHelper;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/row-series-number-helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAQqB;AACrB,wDAA0C;AAI1C,MAAa,qBAAqB;IAIhC,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;QAEvC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,2BAAgB,CAAC,mBAAmB,CAAY,CAAC;IACzF,CAAC;IAED,QAAQ,CAAC,GAAW,EAAE,GAAW;QAC/B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACpC,CAAC;CACF;AAdD,sDAcC","file":"row-series-number-helper.js","sourcesContent":["import {\n InternalIconName,\n type ColumnIconOption,\n type ListTableAPI,\n type PivotTableAPI,\n type RectProps,\n type SortOrder,\n type SvgIcon\n} from '../ts-types';\nimport * as registerIcons from '../icons';\n\nimport { isValid } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nexport class RowSeriesNumberHelper {\n dragReorderIconName: SvgIcon;\n\n _table: BaseTableAPI;\n constructor(_table: BaseTableAPI) {\n this._table = _table;\n const regedIcons = registerIcons.get();\n\n this.dragReorderIconName = regedIcons[InternalIconName.dragReorderIconName] as SvgIcon;\n }\n\n getIcons(col: number, row: number): ColumnIconOption[] {\n return [this.dragReorderIconName];\n }\n}\n"]}
package/cjs/core/style.js CHANGED
@@ -13,4 +13,5 @@ function importStyle() {
13
13
  document.head.appendChild(styleElement);
14
14
  }
15
15
 
16
- exports.importStyle = importStyle;
16
+ exports.importStyle = importStyle;
17
+ //# sourceMappingURL=style.js.map
@@ -63,7 +63,7 @@ function _setRecords(table, records = []) {
63
63
  var _a, _b;
64
64
  const data = records;
65
65
  table.internalProps.records = records;
66
- const newDataSource = table.internalProps.dataSource = data_1.CachedDataSource.ofArray(data, table.internalProps.dataConfig, table.pagination, table.internalProps.layoutMap.columnObjects, null !== (_a = table.options.hierarchyExpandLevel) && void 0 !== _a ? _a : (null === (_b = table._hasHierarchyTreeHeader) || void 0 === _b ? void 0 : _b.call(table)) ? 1 : void 0);
66
+ const newDataSource = table.internalProps.dataSource = data_1.CachedDataSource.ofArray(data, table.internalProps.dataConfig, table.pagination, table.internalProps.layoutMap.columnObjects, table.internalProps.layoutMap.rowHierarchyType, null !== (_a = table.options.hierarchyExpandLevel) && void 0 !== _a ? _a : (null === (_b = table._hasHierarchyTreeHeader) || void 0 === _b ? void 0 : _b.call(table)) ? 1 : void 0);
67
67
  table.addReleaseObj(newDataSource);
68
68
  }));
69
69
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/tableHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kCAAuD;AACvD,mDAAqD;AACrD,yDAA2D;AAC3D,wCAAqC;AACrC,oDAAsC;AAGtC,wCAA+C;AAG/C,SAAgB,iBAAiB,CAAC,OAAY;;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI,CAAC;IAEnG,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,KAAI,MAAA,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,KAAI,MAAA,OAAO,CAAC,aAAa,0CAAE,YAAY,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAEtF,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC;IAEzF,OAAO,OAAO,CAAC;AACjB,CAAC;AAdD,8CAcC;AACD,SAAgB,wBAAwB,CAAC,OAAoB,EAAE,OAAY;;IACzE,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,CAAC,IAAI,IAAI,CAAC;IACnG,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,KAAI,MAAA,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,KAAI,MAAA,OAAO,CAAC,aAAa,0CAAE,YAAY,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC;AAC3F,CAAC;AAND,4DAMC;AACD,SAAgB,yBAAyB,CAAC,KAAmB,EAAE,EAAiC;IAC9F,MAAM,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;IAEnD,IAAI,kBAAkB,EAAE;QACtB,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9E;IAED,EAAE,CAAC,KAAK,CAAC,CAAC;IAEV,KAAK,CAAC,aAAa,CAAC,kBAAkB,GAAG;QACvC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,iBAAU,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,EAAE;YACtG,IAAI,KAAK,CAAC,UAAU,CAAC,oBAAoB,EAAE;gBACzC,KAAK,CAAC,kBAAkB,EAAE,CAAC;aAC5B;YACD,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAjBD,8DAiBC;AAED,SAAgB,WAAW,CAAC,KAAmB,EAAE,UAAiB,EAAE;IAClE,yBAAyB,CAAC,KAAK,EAAE,GAAG,EAAE;;QACpC,MAAM,IAAI,GAAG,OAAO,CAAC;QACrB,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC;QACtC,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,uBAAgB,CAAC,OAAO,CAC9E,IAAI,EACJ,KAAK,CAAC,aAAa,CAAC,UAAU,EAC9B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,EAC3C,MAAC,KAAK,CAAC,OAAe,CAAC,oBAAoB,mCAAI,CAAC,CAAA,MAAA,KAAK,CAAC,uBAAuB,qDAAI,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACnG,CAAC,CAAC;QACH,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAbD,kCAaC;AAED,SAAgB,cAAc,CAAC,KAAmB,EAAE,UAAsB;IACxE,yBAAyB,CAAC,KAAK,EAAE,GAAG,EAAE;QACpC,IAAI,UAAU,EAAE;YACd,IAAI,UAAU,YAAY,iBAAU,EAAE;gBACpC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;aAC7C;iBAAM;gBACL,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,uBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1F,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;aACpC;SACF;aAAM;YACL,KAAK,CAAC,aAAa,CAAC,UAAU,GAAG,iBAAU,CAAC,KAAK,CAAC;SACnD;QACD,KAAK,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAdD,wCAcC;AACD,SAAgB,qBAAqB,CACnC,KAAgB,EAChB,SAAiB;IAOjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;QACvC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;IACpD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;QAClC,IAAI,MAAM,GAAG,SAAS,EAAE;YACtB,OAAO;gBACL,GAAG,EAAE,SAAS;gBACd,GAAG;gBACH,MAAM;gBACN,MAAM;aACP,CAAC;SACH;QACD,SAAS,GAAG,MAAM,CAAC;KACpB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AA5BD,sDA4BC;AAED,SAAgB,qBAAqB,CACnC,KAAgB,EAChB,SAAiB;IAOjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;QACvC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;IACpD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;QACjC,IAAI,KAAK,GAAG,SAAS,EAAE;YACrB,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,GAAG;gBACH,KAAK;gBACL,KAAK;aACN,CAAC;SACH;QACD,UAAU,GAAG,KAAK,CAAC;KACpB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AA5BD,sDA4BC;AAED,SAAgB,UAAU,CAAC,KAAgB,EAAE,KAAsB;IACjE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC5E,CAAC;AAFD,gCAEC;AAED,SAAgB,oBAAoB,CAAC,MAAoD,EAAE,QAAgB;IACzG,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,MAAM,CAAC,GAAG,EAAE;QACd,IAAI,MAAM,CAAC,GAAG,GAAG,QAAQ,EAAE;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC;SACnB;KACF;IACD,IAAI,MAAM,CAAC,GAAG,EAAE;QACd,IAAI,MAAM,CAAC,GAAG,GAAG,QAAQ,EAAE;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC;SACnB;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAhBD,oDAgBC;AAMD,SAAgB,YAAY,CAAC,KAAsB;IACjD,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;AACvF,CAAC;AAFD,oCAEC;AAED,SAAgB,yBAAyB,CAAC,KAAmB;IAC3D,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE;QAE5B,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;KAC9C;IACD,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,EAAE;QAEjC,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,EAAE,CAAC;KACxD;IACD,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE;QAE5B,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;KAChD;IACD,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE;QAElC,sBAAsB,GAAG,KAAK,CAAC,yBAAyB,EAAE,CAAC;KAC5D;IACD,OAAO,IAAI,WAAI,CACb,KAAK,CAAC,UAAU,GAAG,eAAe,EAClC,KAAK,CAAC,SAAS,GAAG,gBAAgB,EAClC,KAAK,CAAC,iBAAiB,GAAG,eAAe,GAAG,oBAAoB,EAChE,KAAK,CAAC,kBAAkB,GAAG,gBAAgB,GAAG,sBAAsB,CACrE,CAAC;AACJ,CAAC;AA3BD,8DA2BC;AAUD,SAAgB,aAAa,CAC3B,WAA4B,EAC5B,KAAmB,EACnB,GAAW,EACX,GAAW,EACX,OAAY,EACZ,YAAY,GAAG,IAAI;IAGnB,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC;IACf,IAAI,QAAQ,CAAC;IACb,IAAI,UAAU,CAAC;IACf,IAAI,SAAS,CAAC;IACd,IAAI,WAAW,CAAC;IAChB,IAAI,IAAI,EAAE;QAER,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,CAAC;QACjE,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,QAAQ,GAAG,IAAI,CAAC;QAChB,UAAU,GAAG,MAAM,CAAC;QACpB,SAAS,GAAG,KAAK,CAAC;QAClB,SAAS,GAAG,OAAO,CAAC;KACrB;SAAM;QACL,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjE,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7D,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACjE,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/D,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;KACpE;IAKD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAErE,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7E,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAGzE,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACjF,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAE/D,MAAM,eAAe,GACnB,CAAC,OAAO;QACR,CAAC,OAAO;QACR,CAAC,IAAI;QACL,CAAC,SAAS;QACV,CAAC,YAAY;QACb,CAAC,KAAK;QACN,CAAC,YAAY;QACb,CAAC,WAAW;QACZ,CAAC,eAAe;QAChB,CAAC,cAAc;QACf,OAAO,SAAS,KAAK,SAAS;QAC9B,OAAO,WAAW,KAAK,SAAS;QAChC,OAAO,MAAM,KAAK,SAAS,CAAC;IAC9B,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,EAAE,eAAe,EAAE,CAAC;KAC5B;IACD,MAAM,KAAK,GAAkC;QAC3C,IAAI,EAAE;YACJ,UAAU;YACV,QAAQ;YACR,UAAU;YACV,SAAS;YACT,WAAW;YACX,IAAI,EAAE,KAAK;YACX,SAAS;YACT,YAAY;YACZ,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,QAAQ;YAClC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;YACtD,aAAa;YACb,eAAe;YACf,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;YAC1D,QAAQ,EACN,CAAC,YAAY,IAAI,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY;SAC5G;QACD,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,eAAe;YAC1B,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;SAEvE;QACD,OAAO,EAAE;YACP,OAAO;YACP,MAAM;SACP;KACF,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;QACjC,KAAK,CAAC,KAAa,CAAC,gBAAgB,GAAG,IAAA,sBAAY,EAAC,eAAe,CAAC,CAAC;KACvE;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC9B,MAAM,YAAY,GAAG,IAAA,sBAAY,EAAC,WAAW,CAAC,CAAC;QAC9C,KAAK,CAAC,KAAa,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;QACxF,KAAK,CAAC,KAAa,CAAC,gBAAgB,GAAG,IAAA,sBAAY,EAAC,WAAW,CAAC,CAAC;KACnE;IAED,OAAO;QACL,KAAK;QACL,eAAe;KAChB,CAAC;AACJ,CAAC;AAzHD,sCAyHC;AAED,SAAgB,WAAW,CAAC,KAAgB;;IAC1C,IAAK,KAAa,CAAC,SAAS,EAAE;QAC5B,IAAI,KAAU,CAAC;QACf,IAAI,KAAU,CAAC;QACf,IAAI,KAAK,CAAC,OAAO,CAAE,KAAa,CAAC,SAAS,CAAC,EAAE;YAC3C,IAAK,KAAa,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAC,KAAa,CAAC,SAAS,0CAAG,CAAC,CAAC,CAAC,CAAC;aACpD;SACF;aAAM;YACL,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAI,KAAa,CAAC,SAAsB,CAAC,CAAC;SAC5D;QAED,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE;YACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,4BAA4B,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAEtE,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;YAGtG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,qBAAc,CAAC,CAAC;SACpE;KACF;AACH,CAAC;AArBD,kCAqBC;AAED,SAAgB,mBAAmB,CAAC,GAAW,EAAE,GAAW,EAAE,KAAmB;IAC/E,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;IAC9D,IAAI,iBAAiB,EAAE;QACrB,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;YAC1B,OAAO,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACrC;aAAM,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;YAClD,OAAO,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACrC;aAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE;YAClD,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;SACrC;aAAM,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE;YACnE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;SACrC;KACF;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAdD,kDAcC","file":"tableHelper.js","sourcesContent":["import type { IThemeSpec } from './../vrender';\nimport type { BaseTable } from '../core';\nimport { CachedDataSource, DataSource } from '../data';\nimport { parseFont } from '../scenegraph/utils/font';\nimport { getQuadProps } from '../scenegraph/utils/padding';\nimport { Rect } from '../tools/Rect';\nimport * as calc from '../tools/calc';\nimport type { FullExtendStyle, ListTableAPI, SortState } from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { defaultOrderFn } from '../tools/util';\nimport type { ListTable } from '../ListTable';\n\nexport function createRootElement(padding: any): HTMLElement {\n const element = document.createElement('div');\n element.setAttribute('tabindex', '0');\n element.classList.add('vtable');\n element.style.outline = 'none';\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n\n return element;\n}\nexport function updateRootElementPadding(element: HTMLElement, padding: any): void {\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n}\nexport function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void {\n const { dataSourceEventIds } = table.internalProps;\n\n if (dataSourceEventIds) {\n dataSourceEventIds.forEach((id: any) => table.internalProps.handler.off(id));\n }\n\n fn(table);\n\n table.internalProps.dataSourceEventIds = [\n table.internalProps.handler.on(table.internalProps.dataSource, DataSource.EVENT_TYPE.CHANGE_ORDER, () => {\n if (table.dataSource.hierarchyExpandLevel) {\n table.refreshRowColCount();\n }\n table.render();\n })\n ];\n}\n/** @private */\nexport function _setRecords(table: ListTableAPI, records: any[] = []): void {\n _dealWithUpdateDataSource(table, () => {\n const data = records;\n table.internalProps.records = records;\n const newDataSource = (table.internalProps.dataSource = CachedDataSource.ofArray(\n data,\n table.internalProps.dataConfig,\n table.pagination,\n table.internalProps.layoutMap.columnObjects,\n (table.options as any).hierarchyExpandLevel ?? (table._hasHierarchyTreeHeader?.() ? 1 : undefined)\n ));\n table.addReleaseObj(newDataSource);\n });\n}\n\nexport function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void {\n _dealWithUpdateDataSource(table, () => {\n if (dataSource) {\n if (dataSource instanceof DataSource) {\n table.internalProps.dataSource = dataSource;\n } else {\n const newDataSource = (table.internalProps.dataSource = new CachedDataSource(dataSource));\n table.addReleaseObj(newDataSource);\n }\n } else {\n table.internalProps.dataSource = DataSource.EMPTY;\n }\n table.internalProps.records = null;\n });\n}\nexport function _getTargetFrozenRowAt(\n table: BaseTable,\n absoluteY: number\n): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n} | null {\n if (!table.internalProps.frozenRowCount) {\n return null;\n }\n let { scrollTop } = table;\n const rowCount = table.internalProps.frozenRowCount;\n for (let row = 0; row < rowCount; row++) {\n const height = table.getRowHeight(row);\n const bottom = scrollTop + height;\n if (bottom > absoluteY) {\n return {\n top: scrollTop,\n row,\n bottom,\n height\n };\n }\n scrollTop = bottom;\n }\n return null;\n}\n\nexport function _getTargetFrozenColAt(\n table: BaseTable,\n absoluteX: number\n): {\n left: number;\n col: number;\n right: number;\n width: number;\n} | null {\n if (!table.internalProps.frozenColCount) {\n return null;\n }\n let { scrollLeft } = table;\n const colCount = table.internalProps.frozenColCount;\n for (let col = 0; col < colCount; col++) {\n const width = table.getColWidth(col);\n const right = scrollLeft + width;\n if (right > absoluteX) {\n return {\n left: scrollLeft,\n col,\n right,\n width\n };\n }\n scrollLeft = right;\n }\n return null;\n}\n\nexport function _toPxWidth(table: BaseTable, width: string | number): number {\n return Math.round(calc.toPx(width, table.internalProps.calcWidthContext));\n}\n\nexport function _applyColWidthLimits(limits: { min?: number; max?: number } | void | null, orgWidth: number): number {\n if (!limits) {\n return orgWidth;\n }\n\n if (limits.min) {\n if (limits.min > orgWidth) {\n return limits.min;\n }\n }\n if (limits.max) {\n if (limits.max < orgWidth) {\n return limits.max;\n }\n }\n return orgWidth;\n}\n/**\n * 检查设置的width是否为'auto'\n * @param {string|number} width width definition\n * @returns {boolean}\n */\nexport function isAutoDefine(width: string | number): width is 'auto' {\n return Boolean(width && typeof width === 'string' && width.toLowerCase() === 'auto');\n}\n\nexport function _getScrollableVisibleRect(table: BaseTableAPI): Rect {\n let frozenColsWidth = 0;\n let rightFrozenColsWidth = 0;\n if (table.frozenColCount > 0) {\n //有固定列时绘制固定列\n frozenColsWidth = table.getFrozenColsWidth();\n }\n if (table.rightFrozenColCount > 0) {\n //有固定列时绘制固定列\n rightFrozenColsWidth = table.getRightFrozenColsWidth();\n }\n let frozenRowsHeight = 0;\n let bottomFrozenRowsHeight = 0;\n if (table.frozenRowCount > 0) {\n //有固定列时绘制固定列\n frozenRowsHeight = table.getFrozenRowsHeight();\n }\n if (table.bottomFrozenRowCount > 0) {\n //有固定列时绘制固定列\n bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n }\n return new Rect(\n table.scrollLeft + frozenColsWidth,\n table.scrollTop + frozenRowsHeight,\n table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth,\n table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight\n );\n}\n/**\n * @description: 从style对象里获取theme所需要的属性\n * @param {FullExtendStyle} headerStyle\n * @param {BaseTableAPI} table\n * @param {number} col\n * @param {number} row\n * @param {any} getProp\n * @return {*}\n */\nexport function getStyleTheme(\n headerStyle: FullExtendStyle,\n table: BaseTableAPI,\n col: number,\n row: number,\n getProp: any,\n needGetTheme = true\n) {\n // 属性参考IStyleOption\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n const bgColor = getProp('bgColor', headerStyle, col, row, table);\n\n const font = getProp('font', headerStyle, col, row, table);\n let fontFamily;\n let fontSize;\n let fontWeight;\n let fontStyle;\n let fontVariant;\n if (font) {\n // 后期会弃用直接设置font,而使用fontFamily fontSize fontWeight 等属性\n const { family, size, weight, style, variant } = parseFont(font);\n fontFamily = family.join(' ');\n fontSize = size;\n fontWeight = weight;\n fontStyle = style;\n fontStyle = variant;\n } else {\n fontFamily = getProp('fontFamily', headerStyle, col, row, table);\n fontSize = getProp('fontSize', headerStyle, col, row, table);\n fontWeight = getProp('fontWeight', headerStyle, col, row, table);\n fontStyle = getProp('fontStyle', headerStyle, col, row, table);\n fontVariant = getProp('fontVariant', headerStyle, col, row, table);\n }\n\n // const fontSize = getFontSize(font);\n // const fontWeight = getFontWeight(font);\n\n const textAlign = getProp('textAlign', headerStyle, col, row, table);\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table);\n const color = getProp('color', headerStyle, col, row, table);\n\n const lineHeight = getProp('lineHeight', headerStyle, col, row, table);\n const underline = getProp('underline', headerStyle, col, row, table); // boolean\n // const underlineColor = getProp('underlineColor', headerStyle, col, row, table);\n const underlineDash = getProp('underlineDash', headerStyle, col, row, table);\n const underlineOffset = getProp('underlineOffset', headerStyle, col, row, table);\n const lineThrough = getProp('lineThrough', headerStyle, col, row, table); // boolean\n // const lineThroughColor = getProp('lineThroughColor', headerStyle, col, row, table);\n // const lineThroughDash = getProp('lineThroughDash', headerStyle, col, row, table);\n const textDecorationWidth = Math.max(1, Math.floor(fontSize / 10));\n\n const textOverflow = getProp('textOverflow', headerStyle, col, row, table); // 'clip' | 'ellipsis' | string\n const borderColor = getProp('borderColor', headerStyle, col, row, table); // string | string[]\n const borderLineWidth = getProp('borderLineWidth', headerStyle, col, row, table); // number | number[]\n const borderLineDash = getProp('borderLineDash', headerStyle, col, row, table); // number[] | (number[] | null)[]\n\n const marked = getProp('marked', headerStyle, col, row, table); // boolean\n const cursor = getProp('cursor', headerStyle, col, row, table); // boolean\n\n const hasFunctionPros =\n !padding ||\n !bgColor ||\n !font ||\n !textAlign ||\n !textBaseline ||\n !color ||\n !textOverflow ||\n !borderColor ||\n !borderLineWidth ||\n !borderLineDash ||\n typeof underline !== 'boolean' ||\n typeof lineThrough !== 'boolean' ||\n typeof marked !== 'boolean';\n if (!needGetTheme) {\n return { hasFunctionPros };\n }\n const theme: IThemeSpec & { _vtable: any } = {\n text: {\n fontFamily,\n fontSize,\n fontWeight,\n fontStyle,\n fontVariant,\n fill: color,\n textAlign,\n textBaseline,\n lineHeight: lineHeight ?? fontSize,\n underline: underline ? textDecorationWidth : undefined,\n underlineDash,\n underlineOffset,\n lineThrough: lineThrough ? textDecorationWidth : undefined,\n ellipsis:\n !textOverflow || textOverflow === 'clip' ? undefined : textOverflow === 'ellipsis' ? '...' : textOverflow\n },\n group: {\n fill: bgColor,\n lineDash: borderLineDash,\n lineWidth: borderLineWidth,\n stroke: borderColor,\n cursor: cursor === 'auto' || cursor === 'default' ? undefined : cursor\n // cornerRadius: getCellCornerRadius(col, row, table)\n },\n _vtable: {\n padding,\n marked\n }\n };\n\n if (Array.isArray(borderLineWidth)) {\n (theme.group as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n }\n if (Array.isArray(borderColor)) {\n const strokeColors = getQuadProps(borderColor);\n (theme.group as any).stroke = strokeColors.every(color => !color) ? false : strokeColors; // deal width strokeColor: [null, null, null, null]\n (theme.group as any).strokeArrayColor = getQuadProps(borderColor);\n }\n\n return {\n theme,\n hasFunctionPros\n };\n}\n\nexport function sortRecords(table: ListTable) {\n if ((table as any).sortState) {\n let order: any;\n let field: any;\n if (Array.isArray((table as any).sortState)) {\n if ((table as any).sortState.length !== 0) {\n ({ order, field } = (table as any).sortState?.[0]);\n }\n } else {\n ({ order, field } = (table as any).sortState as SortState);\n }\n // 根据sort规则进行排序\n if (order && field && order !== 'normal') {\n const sortFunc = table._getSortFuncFromHeaderOption(undefined, field);\n // 如果sort传入的信息不能生成正确的sortFunc,直接更新表格,避免首次加载无法正常显示内容\n const hd = table.internalProps.layoutMap.headerObjects.find((col: any) => col && col.field === field);\n\n // hd?.define?.sort && //如果这里也判断 那想要利用sortState来排序 但不显示排序图标就实现不了\n table.dataSource.sort(hd.field, order, sortFunc ?? defaultOrderFn);\n }\n }\n}\n\nexport function getCellCornerRadius(col: number, row: number, table: BaseTableAPI) {\n const tableCornerRadius = table.theme.frameStyle.cornerRadius;\n if (tableCornerRadius) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius, 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius, 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius, 0];\n }\n }\n return 0;\n}\n"]}
1
+ {"version":3,"sources":["../src/core/tableHelper.ts"],"names":[],"mappings":"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","file":"tableHelper.js","sourcesContent":["import type { IThemeSpec } from './../vrender';\nimport type { BaseTable } from '../core';\nimport { CachedDataSource, DataSource } from '../data';\nimport { parseFont } from '../scenegraph/utils/font';\nimport { getQuadProps } from '../scenegraph/utils/padding';\nimport { Rect } from '../tools/Rect';\nimport * as calc from '../tools/calc';\nimport type { FullExtendStyle, ListTableAPI, SortState } from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport { defaultOrderFn } from '../tools/util';\nimport type { ListTable } from '../ListTable';\n\nexport function createRootElement(padding: any): HTMLElement {\n const element = document.createElement('div');\n element.setAttribute('tabindex', '0');\n element.classList.add('vtable');\n element.style.outline = 'none';\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n\n return element;\n}\nexport function updateRootElementPadding(element: HTMLElement, padding: any): void {\n element.style.margin = `${padding.top}px ${padding.right}px ${padding.bottom}px ${padding.left}px`;\n const width = (element.offsetWidth || element.parentElement?.offsetWidth || 1) - 1;\n const height = (element.offsetHeight || element.parentElement?.offsetHeight || 1) - 1;\n element.style.width = (width && `${width - padding.left - padding.right}px`) || '0px';\n element.style.height = (height && `${height - padding.top - padding.bottom}px`) || '0px';\n}\nexport function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void {\n const { dataSourceEventIds } = table.internalProps;\n\n if (dataSourceEventIds) {\n dataSourceEventIds.forEach((id: any) => table.internalProps.handler.off(id));\n }\n\n fn(table);\n\n table.internalProps.dataSourceEventIds = [\n table.internalProps.handler.on(table.internalProps.dataSource, DataSource.EVENT_TYPE.CHANGE_ORDER, () => {\n if (table.dataSource.hierarchyExpandLevel) {\n table.refreshRowColCount();\n }\n table.render();\n })\n ];\n}\n/** @private */\nexport function _setRecords(table: ListTableAPI, records: any[] = []): void {\n _dealWithUpdateDataSource(table, () => {\n const data = records;\n table.internalProps.records = records;\n const newDataSource = (table.internalProps.dataSource = CachedDataSource.ofArray(\n data,\n table.internalProps.dataConfig,\n table.pagination,\n table.internalProps.layoutMap.columnObjects,\n table.internalProps.layoutMap.rowHierarchyType,\n (table.options as any).hierarchyExpandLevel ?? (table._hasHierarchyTreeHeader?.() ? 1 : undefined)\n ));\n table.addReleaseObj(newDataSource);\n });\n}\n\nexport function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void {\n _dealWithUpdateDataSource(table, () => {\n if (dataSource) {\n if (dataSource instanceof DataSource) {\n table.internalProps.dataSource = dataSource;\n } else {\n const newDataSource = (table.internalProps.dataSource = new CachedDataSource(dataSource));\n table.addReleaseObj(newDataSource);\n }\n } else {\n table.internalProps.dataSource = DataSource.EMPTY;\n }\n table.internalProps.records = null;\n });\n}\nexport function _getTargetFrozenRowAt(\n table: BaseTable,\n absoluteY: number\n): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n} | null {\n if (!table.internalProps.frozenRowCount) {\n return null;\n }\n let { scrollTop } = table;\n const rowCount = table.internalProps.frozenRowCount;\n for (let row = 0; row < rowCount; row++) {\n const height = table.getRowHeight(row);\n const bottom = scrollTop + height;\n if (bottom > absoluteY) {\n return {\n top: scrollTop,\n row,\n bottom,\n height\n };\n }\n scrollTop = bottom;\n }\n return null;\n}\n\nexport function _getTargetFrozenColAt(\n table: BaseTable,\n absoluteX: number\n): {\n left: number;\n col: number;\n right: number;\n width: number;\n} | null {\n if (!table.internalProps.frozenColCount) {\n return null;\n }\n let { scrollLeft } = table;\n const colCount = table.internalProps.frozenColCount;\n for (let col = 0; col < colCount; col++) {\n const width = table.getColWidth(col);\n const right = scrollLeft + width;\n if (right > absoluteX) {\n return {\n left: scrollLeft,\n col,\n right,\n width\n };\n }\n scrollLeft = right;\n }\n return null;\n}\n\nexport function _toPxWidth(table: BaseTable, width: string | number): number {\n return Math.round(calc.toPx(width, table.internalProps.calcWidthContext));\n}\n\nexport function _applyColWidthLimits(limits: { min?: number; max?: number } | void | null, orgWidth: number): number {\n if (!limits) {\n return orgWidth;\n }\n\n if (limits.min) {\n if (limits.min > orgWidth) {\n return limits.min;\n }\n }\n if (limits.max) {\n if (limits.max < orgWidth) {\n return limits.max;\n }\n }\n return orgWidth;\n}\n/**\n * 检查设置的width是否为'auto'\n * @param {string|number} width width definition\n * @returns {boolean}\n */\nexport function isAutoDefine(width: string | number): width is 'auto' {\n return Boolean(width && typeof width === 'string' && width.toLowerCase() === 'auto');\n}\n\nexport function _getScrollableVisibleRect(table: BaseTableAPI): Rect {\n let frozenColsWidth = 0;\n let rightFrozenColsWidth = 0;\n if (table.frozenColCount > 0) {\n //有固定列时绘制固定列\n frozenColsWidth = table.getFrozenColsWidth();\n }\n if (table.rightFrozenColCount > 0) {\n //有固定列时绘制固定列\n rightFrozenColsWidth = table.getRightFrozenColsWidth();\n }\n let frozenRowsHeight = 0;\n let bottomFrozenRowsHeight = 0;\n if (table.frozenRowCount > 0) {\n //有固定列时绘制固定列\n frozenRowsHeight = table.getFrozenRowsHeight();\n }\n if (table.bottomFrozenRowCount > 0) {\n //有固定列时绘制固定列\n bottomFrozenRowsHeight = table.getBottomFrozenRowsHeight();\n }\n return new Rect(\n table.scrollLeft + frozenColsWidth,\n table.scrollTop + frozenRowsHeight,\n table.tableNoFrameWidth - frozenColsWidth - rightFrozenColsWidth,\n table.tableNoFrameHeight - frozenRowsHeight - bottomFrozenRowsHeight\n );\n}\n/**\n * @description: 从style对象里获取theme所需要的属性\n * @param {FullExtendStyle} headerStyle\n * @param {BaseTableAPI} table\n * @param {number} col\n * @param {number} row\n * @param {any} getProp\n * @return {*}\n */\nexport function getStyleTheme(\n headerStyle: FullExtendStyle,\n table: BaseTableAPI,\n col: number,\n row: number,\n getProp: any,\n needGetTheme = true\n) {\n // 属性参考IStyleOption\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n const bgColor = getProp('bgColor', headerStyle, col, row, table);\n\n const font = getProp('font', headerStyle, col, row, table);\n let fontFamily;\n let fontSize;\n let fontWeight;\n let fontStyle;\n let fontVariant;\n if (font) {\n // 后期会弃用直接设置font,而使用fontFamily fontSize fontWeight 等属性\n const { family, size, weight, style, variant } = parseFont(font);\n fontFamily = family.join(' ');\n fontSize = size;\n fontWeight = weight;\n fontStyle = style;\n fontStyle = variant;\n } else {\n fontFamily = getProp('fontFamily', headerStyle, col, row, table);\n fontSize = getProp('fontSize', headerStyle, col, row, table);\n fontWeight = getProp('fontWeight', headerStyle, col, row, table);\n fontStyle = getProp('fontStyle', headerStyle, col, row, table);\n fontVariant = getProp('fontVariant', headerStyle, col, row, table);\n }\n\n // const fontSize = getFontSize(font);\n // const fontWeight = getFontWeight(font);\n\n const textAlign = getProp('textAlign', headerStyle, col, row, table);\n const textBaseline = getProp('textBaseline', headerStyle, col, row, table);\n const color = getProp('color', headerStyle, col, row, table);\n\n const lineHeight = getProp('lineHeight', headerStyle, col, row, table);\n const underline = getProp('underline', headerStyle, col, row, table); // boolean\n // const underlineColor = getProp('underlineColor', headerStyle, col, row, table);\n const underlineDash = getProp('underlineDash', headerStyle, col, row, table);\n const underlineOffset = getProp('underlineOffset', headerStyle, col, row, table);\n const lineThrough = getProp('lineThrough', headerStyle, col, row, table); // boolean\n // const lineThroughColor = getProp('lineThroughColor', headerStyle, col, row, table);\n // const lineThroughDash = getProp('lineThroughDash', headerStyle, col, row, table);\n const textDecorationWidth = Math.max(1, Math.floor(fontSize / 10));\n\n const textOverflow = getProp('textOverflow', headerStyle, col, row, table); // 'clip' | 'ellipsis' | string\n const borderColor = getProp('borderColor', headerStyle, col, row, table); // string | string[]\n const borderLineWidth = getProp('borderLineWidth', headerStyle, col, row, table); // number | number[]\n const borderLineDash = getProp('borderLineDash', headerStyle, col, row, table); // number[] | (number[] | null)[]\n\n const marked = getProp('marked', headerStyle, col, row, table); // boolean\n const cursor = getProp('cursor', headerStyle, col, row, table); // boolean\n\n const hasFunctionPros =\n !padding ||\n !bgColor ||\n !font ||\n !textAlign ||\n !textBaseline ||\n !color ||\n !textOverflow ||\n !borderColor ||\n !borderLineWidth ||\n !borderLineDash ||\n typeof underline !== 'boolean' ||\n typeof lineThrough !== 'boolean' ||\n typeof marked !== 'boolean';\n if (!needGetTheme) {\n return { hasFunctionPros };\n }\n const theme: IThemeSpec & { _vtable: any } = {\n text: {\n fontFamily,\n fontSize,\n fontWeight,\n fontStyle,\n fontVariant,\n fill: color,\n textAlign,\n textBaseline,\n lineHeight: lineHeight ?? fontSize,\n underline: underline ? textDecorationWidth : undefined,\n underlineDash,\n underlineOffset,\n lineThrough: lineThrough ? textDecorationWidth : undefined,\n ellipsis:\n !textOverflow || textOverflow === 'clip' ? undefined : textOverflow === 'ellipsis' ? '...' : textOverflow\n },\n group: {\n fill: bgColor,\n lineDash: borderLineDash,\n lineWidth: borderLineWidth,\n stroke: borderColor,\n cursor: cursor === 'auto' || cursor === 'default' ? undefined : cursor\n // cornerRadius: getCellCornerRadius(col, row, table)\n },\n _vtable: {\n padding,\n marked\n }\n };\n\n if (Array.isArray(borderLineWidth)) {\n (theme.group as any).strokeArrayWidth = getQuadProps(borderLineWidth);\n }\n if (Array.isArray(borderColor)) {\n const strokeColors = getQuadProps(borderColor);\n (theme.group as any).stroke = strokeColors.every(color => !color) ? false : strokeColors; // deal width strokeColor: [null, null, null, null]\n (theme.group as any).strokeArrayColor = getQuadProps(borderColor);\n }\n\n return {\n theme,\n hasFunctionPros\n };\n}\n\nexport function sortRecords(table: ListTable) {\n if ((table as any).sortState) {\n let order: any;\n let field: any;\n if (Array.isArray((table as any).sortState)) {\n if ((table as any).sortState.length !== 0) {\n ({ order, field } = (table as any).sortState?.[0]);\n }\n } else {\n ({ order, field } = (table as any).sortState as SortState);\n }\n // 根据sort规则进行排序\n if (order && field && order !== 'normal') {\n const sortFunc = table._getSortFuncFromHeaderOption(undefined, field);\n // 如果sort传入的信息不能生成正确的sortFunc,直接更新表格,避免首次加载无法正常显示内容\n const hd = table.internalProps.layoutMap.headerObjects.find((col: any) => col && col.field === field);\n\n // hd?.define?.sort && //如果这里也判断 那想要利用sortState来排序 但不显示排序图标就实现不了\n table.dataSource.sort(hd.field, order, sortFunc ?? defaultOrderFn);\n }\n }\n}\n\nexport function getCellCornerRadius(col: number, row: number, table: BaseTableAPI) {\n const tableCornerRadius = table.theme.frameStyle.cornerRadius;\n if (tableCornerRadius) {\n if (col === 0 && row === 0) {\n return [tableCornerRadius, 0, 0, 0];\n } else if (col === table.colCount - 1 && row === 0) {\n return [0, tableCornerRadius, 0, 0];\n } else if (col === 0 && row === table.rowCount - 1) {\n return [0, 0, 0, tableCornerRadius];\n } else if (col === table.colCount - 1 && row === table.rowCount - 1) {\n return [0, 0, tableCornerRadius, 0];\n }\n }\n return 0;\n}\n"]}
@@ -7,8 +7,8 @@ export declare class CachedDataSource extends DataSource {
7
7
  private _recordCache;
8
8
  private _fieldCache;
9
9
  static get EVENT_TYPE(): typeof DataSource.EVENT_TYPE;
10
- static ofArray(array: any[], dataConfig?: IListTableDataConfig, pagination?: IPagination, columnObjs?: ColumnData[], hierarchyExpandLevel?: number): CachedDataSource;
11
- constructor(opt?: DataSourceParam, dataConfig?: IListTableDataConfig, pagination?: IPagination, columnObjs?: ColumnData[], hierarchyExpandLevel?: number);
10
+ static ofArray(array: any[], dataConfig?: IListTableDataConfig, pagination?: IPagination, columnObjs?: ColumnData[], rowHierarchyType?: 'grid' | 'tree', hierarchyExpandLevel?: number): CachedDataSource;
11
+ constructor(opt?: DataSourceParam, dataConfig?: IListTableDataConfig, pagination?: IPagination, columnObjs?: ColumnData[], rowHierarchyType?: 'grid' | 'tree', hierarchyExpandLevel?: number);
12
12
  protected getOriginalRecord(index: number): MaybePromiseOrUndefined;
13
13
  protected getOriginalField<F extends FieldDef>(index: number, field: F, col?: number, row?: number, table?: BaseTableAPI): FieldData;
14
14
  clearCache(): void;
@@ -14,16 +14,16 @@ class CachedDataSource extends DataSource_1.DataSource {
14
14
  static get EVENT_TYPE() {
15
15
  return DataSource_1.DataSource.EVENT_TYPE;
16
16
  }
17
- static ofArray(array, dataConfig, pagination, columnObjs, hierarchyExpandLevel) {
17
+ static ofArray(array, dataConfig, pagination, columnObjs, rowHierarchyType, hierarchyExpandLevel) {
18
18
  return new CachedDataSource({
19
19
  get: index => Array.isArray(index) ? (0, util_1.getValueFromDeepArray)(array, index) : array[index],
20
20
  length: array.length,
21
21
  source: array
22
- }, dataConfig, pagination, columnObjs, hierarchyExpandLevel);
22
+ }, dataConfig, pagination, columnObjs, rowHierarchyType, hierarchyExpandLevel);
23
23
  }
24
- constructor(opt, dataConfig, pagination, columnObjs, hierarchyExpandLevel) {
25
- super(opt, dataConfig, pagination, columnObjs, hierarchyExpandLevel), this._recordCache = {},
26
- this._fieldCache = {};
24
+ constructor(opt, dataConfig, pagination, columnObjs, rowHierarchyType, hierarchyExpandLevel) {
25
+ super(opt, dataConfig, pagination, columnObjs, rowHierarchyType, hierarchyExpandLevel),
26
+ this._recordCache = {}, this._fieldCache = {};
27
27
  }
28
28
  getOriginalRecord(index) {
29
29
  return this._recordCache && this._recordCache[index] ? this._recordCache[index] : super.getOriginalRecord(index);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/data/CachedDataSource.ts"],"names":[],"mappings":"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","file":"CachedDataSource.js","sourcesContent":["import { getValueFromDeepArray } from '../tools/util';\nimport type {\n FieldData,\n FieldDef,\n IListTableDataConfig,\n IPagination,\n MaybePromise,\n MaybePromiseOrUndefined\n} from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport type { ColumnData } from '../ts-types/list-table/layout-map/api';\nimport type { DataSourceParam } from './DataSource';\nimport { DataSource } from './DataSource';\n\n/** @private */\nfunction _setFieldCache(\n fCache: { [index: number]: Map<FieldDef, any> },\n index: number,\n field: FieldDef,\n\n value: any\n): void {\n const recCache = fCache[index] || (fCache[index] = new Map());\n recCache.set(field, value);\n}\n/**\n * table data source for caching Promise data\n *\n * @classdesc VTable.data.CachedDataSource\n * @memberof VTable.data\n */\nexport class CachedDataSource extends DataSource {\n /**\n * record cache 当用户定义的CachedDataSource.get为promise的时候 可以用rCache缓存已获取数据条目\n */\n private _recordCache: { [index: number]: any };\n /**\n * field cache 当用户定义field为promise的时候 可以用fCache缓存已获取值\n */\n private _fieldCache: { [index: number]: Map<FieldDef, any> };\n static get EVENT_TYPE(): typeof DataSource.EVENT_TYPE {\n return DataSource.EVENT_TYPE;\n }\n static ofArray(\n array: any[],\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columnObjs?: ColumnData[],\n hierarchyExpandLevel?: number\n ): CachedDataSource {\n return new CachedDataSource(\n {\n get: (index: number): any => {\n if (Array.isArray(index)) {\n return getValueFromDeepArray(array, index);\n }\n return array[index];\n },\n length: array.length,\n source: array\n },\n dataConfig,\n pagination,\n columnObjs,\n hierarchyExpandLevel\n );\n }\n constructor(\n opt?: DataSourceParam,\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columnObjs?: ColumnData[],\n hierarchyExpandLevel?: number\n ) {\n super(opt, dataConfig, pagination, columnObjs, hierarchyExpandLevel);\n this._recordCache = {};\n this._fieldCache = {};\n }\n protected getOriginalRecord(index: number): MaybePromiseOrUndefined {\n if (this._recordCache && this._recordCache[index]) {\n return this._recordCache[index];\n }\n return super.getOriginalRecord(index);\n }\n protected getOriginalField<F extends FieldDef>(\n index: number,\n field: F,\n col?: number,\n row?: number,\n table?: BaseTableAPI\n ): FieldData {\n const rowCache = this._fieldCache && this._fieldCache[index];\n if (rowCache) {\n const cache = rowCache.get(field);\n if (cache) {\n return cache;\n }\n }\n return super.getOriginalField(index, field, col, row, table);\n }\n\n clearCache(): void {\n if (this._recordCache) {\n this._recordCache = {};\n }\n if (this._fieldCache) {\n this._fieldCache = {};\n }\n }\n\n protected fieldPromiseCallBack<F extends FieldDef>(index: number, field: F, value: MaybePromiseOrUndefined): void {\n _setFieldCache(this._fieldCache, index, field, value);\n }\n protected recordPromiseCallBack(index: number, record: MaybePromiseOrUndefined): void {\n this._recordCache[index] = record;\n }\n\n release(): void {\n super.release?.();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/data/CachedDataSource.ts"],"names":[],"mappings":"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","file":"CachedDataSource.js","sourcesContent":["import { getValueFromDeepArray } from '../tools/util';\nimport type {\n FieldData,\n FieldDef,\n IListTableDataConfig,\n IPagination,\n MaybePromise,\n MaybePromiseOrUndefined\n} from '../ts-types';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport type { ColumnData } from '../ts-types/list-table/layout-map/api';\nimport type { DataSourceParam } from './DataSource';\nimport { DataSource } from './DataSource';\n\n/** @private */\nfunction _setFieldCache(\n fCache: { [index: number]: Map<FieldDef, any> },\n index: number,\n field: FieldDef,\n\n value: any\n): void {\n const recCache = fCache[index] || (fCache[index] = new Map());\n recCache.set(field, value);\n}\n/**\n * table data source for caching Promise data\n *\n * @classdesc VTable.data.CachedDataSource\n * @memberof VTable.data\n */\nexport class CachedDataSource extends DataSource {\n /**\n * record cache 当用户定义的CachedDataSource.get为promise的时候 可以用rCache缓存已获取数据条目\n */\n private _recordCache: { [index: number]: any };\n /**\n * field cache 当用户定义field为promise的时候 可以用fCache缓存已获取值\n */\n private _fieldCache: { [index: number]: Map<FieldDef, any> };\n static get EVENT_TYPE(): typeof DataSource.EVENT_TYPE {\n return DataSource.EVENT_TYPE;\n }\n static ofArray(\n array: any[],\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columnObjs?: ColumnData[],\n rowHierarchyType?: 'grid' | 'tree',\n hierarchyExpandLevel?: number\n ): CachedDataSource {\n return new CachedDataSource(\n {\n get: (index: number): any => {\n if (Array.isArray(index)) {\n return getValueFromDeepArray(array, index);\n }\n return array[index];\n },\n length: array.length,\n source: array\n },\n dataConfig,\n pagination,\n columnObjs,\n rowHierarchyType,\n hierarchyExpandLevel\n );\n }\n constructor(\n opt?: DataSourceParam,\n dataConfig?: IListTableDataConfig,\n pagination?: IPagination,\n columnObjs?: ColumnData[],\n rowHierarchyType?: 'grid' | 'tree',\n hierarchyExpandLevel?: number\n ) {\n super(opt, dataConfig, pagination, columnObjs, rowHierarchyType, hierarchyExpandLevel);\n this._recordCache = {};\n this._fieldCache = {};\n }\n protected getOriginalRecord(index: number): MaybePromiseOrUndefined {\n if (this._recordCache && this._recordCache[index]) {\n return this._recordCache[index];\n }\n return super.getOriginalRecord(index);\n }\n protected getOriginalField<F extends FieldDef>(\n index: number,\n field: F,\n col?: number,\n row?: number,\n table?: BaseTableAPI\n ): FieldData {\n const rowCache = this._fieldCache && this._fieldCache[index];\n if (rowCache) {\n const cache = rowCache.get(field);\n if (cache) {\n return cache;\n }\n }\n return super.getOriginalField(index, field, col, row, table);\n }\n\n clearCache(): void {\n if (this._recordCache) {\n this._recordCache = {};\n }\n if (this._fieldCache) {\n this._fieldCache = {};\n }\n }\n\n protected fieldPromiseCallBack<F extends FieldDef>(index: number, field: F, value: MaybePromiseOrUndefined): void {\n _setFieldCache(this._fieldCache, index, field, value);\n }\n protected recordPromiseCallBack(index: number, record: MaybePromiseOrUndefined): void {\n this._recordCache[index] = record;\n }\n\n release(): void {\n super.release?.();\n }\n}\n"]}
@@ -36,7 +36,7 @@ export declare class DataSource extends EventTarget implements DataSourceAPI {
36
36
  _currentPagerIndexedData: (number | number[])[];
37
37
  hierarchyExpandLevel: number;
38
38
  static get EVENT_TYPE(): typeof EVENT_TYPE;
39
- treeDataHierarchyState: Map<number | string, HierarchyState>;
39
+ hasHierarchyStateExpand: boolean;
40
40
  beforeChangedRecordsMap: Record<number, any>[];
41
41
  registedAggregators: {
42
42
  [key: string]: {
@@ -45,7 +45,7 @@ export declare class DataSource extends EventTarget implements DataSourceAPI {
45
45
  };
46
46
  fieldAggregators: Aggregator[];
47
47
  layoutColumnObjects: ColumnData[];
48
- constructor(dataSourceObj?: DataSourceParam | DataSource, dataConfig?: IListTableDataConfig, pagination?: IPagination, columnObjs?: ColumnData[], hierarchyExpandLevel?: number);
48
+ constructor(dataSourceObj?: DataSourceParam | DataSource, dataConfig?: IListTableDataConfig, pagination?: IPagination, columnObjs?: ColumnData[], rowHierarchyType?: 'grid' | 'tree', hierarchyExpandLevel?: number);
49
49
  initTreeHierarchyState(): void;
50
50
  registerAggregator(type: string, aggregator: any): void;
51
51
  registerAggregators(): void;
@@ -100,5 +100,9 @@ export declare class DataSource extends EventTarget implements DataSourceAPI {
100
100
  protected fieldPromiseCallBack(_index: number | number[], _field: FieldDef | FieldFormat | number, _value: MaybePromiseOrUndefined): void;
101
101
  protected recordPromiseCallBack(_index: number | number[], _record: MaybePromiseOrUndefined): void;
102
102
  static EMPTY: DataSource;
103
+ isCanExchangeOrder(sourceIndex: number, targetIndex: number): boolean;
104
+ reorderRecord(sourceIndex: number, targetIndex: number): void;
105
+ restoreTreeHierarchyState(): void;
106
+ restoreChildrenNodeHierarchy(indexKey: number | number[], nodeData: any): number;
103
107
  }
104
108
  export {};
@@ -85,9 +85,9 @@ class DataSource extends EventTarget_1.EventTarget {
85
85
  static get EVENT_TYPE() {
86
86
  return EVENT_TYPE;
87
87
  }
88
- constructor(dataSourceObj, dataConfig, pagination, columnObjs, hierarchyExpandLevel) {
88
+ constructor(dataSourceObj, dataConfig, pagination, columnObjs, rowHierarchyType, hierarchyExpandLevel) {
89
89
  var _a, _b;
90
- super(), this.currentIndexedData = [], this.hierarchyExpandLevel = 0, this.treeDataHierarchyState = new Map,
90
+ super(), this.currentIndexedData = [], this.hierarchyExpandLevel = 0, this.hasHierarchyStateExpand = !1,
91
91
  this.beforeChangedRecordsMap = [], this.registedAggregators = {}, this.fieldAggregators = [],
92
92
  this.layoutColumnObjects = [], this.registerAggregators(), this.dataSourceObj = dataSourceObj,
93
93
  this.dataConfig = dataConfig, this._get = (null == dataSourceObj ? void 0 : dataSourceObj.get.bind(dataSourceObj)) || void 0,
@@ -101,28 +101,23 @@ class DataSource extends EventTarget_1.EventTarget {
101
101
  }, hierarchyExpandLevel >= 1 && (this.hierarchyExpandLevel = hierarchyExpandLevel),
102
102
  this.currentIndexedData = Array.from({
103
103
  length: this._sourceLength
104
- }, ((_, i) => i)), this.initTreeHierarchyState(), this.updatePagerData();
104
+ }, ((_, i) => i)), "tree" === rowHierarchyType && this.initTreeHierarchyState(),
105
+ this.updatePagerData();
105
106
  }
106
107
  initTreeHierarchyState() {
107
108
  var _a;
108
- if (this.hierarchyExpandLevel) {
109
- this.treeDataHierarchyState = new Map;
110
- for (let i = 0; i < this._sourceLength; i++) {
111
- this.getOriginalRecord(i).children && this.treeDataHierarchyState.set(i, ts_types_1.HierarchyState.collapse);
112
- }
113
- if (this.currentIndexedData = Array.from({
114
- length: this._sourceLength
115
- }, ((_, i) => i)), this.hierarchyExpandLevel > 1) {
116
- let nodeLength = this._sourceLength;
117
- for (let i = 0; i < nodeLength; i++) {
118
- const indexKey = this.currentIndexedData[i], nodeData = this.getOriginalRecord(indexKey);
119
- if ((null === (_a = nodeData.children) || void 0 === _a ? void 0 : _a.length) > 0) {
120
- this.treeDataHierarchyState.set(Array.isArray(indexKey) ? indexKey.join(",") : indexKey, ts_types_1.HierarchyState.expand);
121
- const childrenLength = this.initChildrenNodeHierarchy(indexKey, this.hierarchyExpandLevel, 2, nodeData);
122
- i += childrenLength, nodeLength += childrenLength;
123
- }
124
- }
125
- }
109
+ this.currentIndexedData = Array.from({
110
+ length: this._sourceLength
111
+ }, ((_, i) => i));
112
+ let nodeLength = this._sourceLength;
113
+ for (let i = 0; i < nodeLength; i++) {
114
+ const indexKey = this.currentIndexedData[i], nodeData = this.getOriginalRecord(indexKey);
115
+ if ((null === (_a = nodeData.children) || void 0 === _a ? void 0 : _a.length) > 0) {
116
+ if (this.hierarchyExpandLevel > 1 ? !nodeData.hierarchyState && (nodeData.hierarchyState = ts_types_1.HierarchyState.expand) : !nodeData.hierarchyState && (nodeData.hierarchyState = ts_types_1.HierarchyState.collapse),
117
+ this.hasHierarchyStateExpand = !0, nodeData.hierarchyState === ts_types_1.HierarchyState.collapse) continue;
118
+ const childrenLength = this.initChildrenNodeHierarchy(indexKey, this.hierarchyExpandLevel, 2, nodeData);
119
+ i += childrenLength, nodeLength += childrenLength;
120
+ } else !0 === nodeData.children && !nodeData.hierarchyState && (nodeData.hierarchyState = ts_types_1.HierarchyState.collapse);
126
121
  }
127
122
  }
128
123
  registerAggregator(type, aggregator) {
@@ -173,15 +168,15 @@ class DataSource extends EventTarget_1.EventTarget {
173
168
  }
174
169
  initChildrenNodeHierarchy(indexKey, hierarchyExpandLevel, currentLevel, nodeData) {
175
170
  var _a, _b, _c;
176
- if (currentLevel > hierarchyExpandLevel) return 0;
177
171
  let childTotalLength = 0;
178
172
  const nodeLength = null !== (_b = null === (_a = nodeData.children) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0;
179
173
  for (let j = 0; j < nodeLength; j++) {
180
- childTotalLength += 1;
174
+ (currentLevel <= hierarchyExpandLevel || nodeData.hierarchyState === ts_types_1.HierarchyState.expand) && (childTotalLength += 1);
181
175
  const childNodeData = nodeData.children[j], childIndexKey = Array.isArray(indexKey) ? indexKey.concat(j) : [ indexKey, j ];
182
- this.currentIndexedData.splice(this.currentIndexedData.indexOf(indexKey) + childTotalLength, 0, childIndexKey),
183
- (null === (_c = childNodeData.children) || void 0 === _c ? void 0 : _c.length) > 0 && (currentLevel < hierarchyExpandLevel ? this.treeDataHierarchyState.set(Array.isArray(childIndexKey) ? childIndexKey.join(",") : childIndexKey, ts_types_1.HierarchyState.expand) : this.treeDataHierarchyState.set(Array.isArray(childIndexKey) ? childIndexKey.join(",") : childIndexKey, ts_types_1.HierarchyState.collapse)),
184
- childTotalLength += this.initChildrenNodeHierarchy(childIndexKey, hierarchyExpandLevel, currentLevel + 1, childNodeData);
176
+ (currentLevel <= hierarchyExpandLevel || nodeData.hierarchyState === ts_types_1.HierarchyState.expand) && this.currentIndexedData.splice(this.currentIndexedData.indexOf(indexKey) + childTotalLength, 0, childIndexKey),
177
+ (null === (_c = childNodeData.children) || void 0 === _c ? void 0 : _c.length) > 0 && (currentLevel < hierarchyExpandLevel || childNodeData.hierarchyState === ts_types_1.HierarchyState.expand ? (!childNodeData.hierarchyState && (childNodeData.hierarchyState = ts_types_1.HierarchyState.expand),
178
+ this.hasHierarchyStateExpand = !0) : !childNodeData.hierarchyState && (childNodeData.hierarchyState = ts_types_1.HierarchyState.collapse)),
179
+ childNodeData.hierarchyState === ts_types_1.HierarchyState.expand && (childTotalLength += this.initChildrenNodeHierarchy(childIndexKey, hierarchyExpandLevel, currentLevel + 1, childNodeData));
185
180
  }
186
181
  return childTotalLength;
187
182
  }
@@ -227,23 +222,23 @@ class DataSource extends EventTarget_1.EventTarget {
227
222
  }
228
223
  getHierarchyState(index) {
229
224
  var _a;
230
- const indexed = this.getIndexKey(index);
231
- return null !== (_a = this.treeDataHierarchyState.get(Array.isArray(indexed) ? indexed.join(",") : indexed)) && void 0 !== _a ? _a : null;
225
+ const record = this.getOriginalRecord(this.currentIndexedData[index]);
226
+ return null !== (_a = null == record ? void 0 : record.hierarchyState) && void 0 !== _a ? _a : null;
232
227
  }
233
228
  toggleHierarchyState(index) {
234
229
  const oldIndexedData = this.currentIndexedData.slice(0), indexed = this.getIndexKey(index), state = this.getHierarchyState(index), data = this.getOriginalRecord(indexed);
235
- if (this.clearSortedIndexMap(), state === ts_types_1.HierarchyState.collapse) this.treeDataHierarchyState.set(Array.isArray(indexed) ? indexed.join(",") : indexed, ts_types_1.HierarchyState.expand),
236
- this.pushChildrenNode(indexed, ts_types_1.HierarchyState.expand, data); else if (state === ts_types_1.HierarchyState.expand) {
230
+ if (this.clearSortedIndexMap(), state === ts_types_1.HierarchyState.collapse) data.hierarchyState = ts_types_1.HierarchyState.expand,
231
+ this.pushChildrenNode(indexed, ts_types_1.HierarchyState.expand, data), this.hasHierarchyStateExpand = !0; else if (state === ts_types_1.HierarchyState.expand) {
237
232
  let childrenLength = 0;
238
233
  const computeChildrenNodeLength = (indexKey, hierarchyState, nodeData) => {
239
234
  if (hierarchyState && hierarchyState !== ts_types_1.HierarchyState.collapse && hierarchyState !== ts_types_1.HierarchyState.none && nodeData.children) for (let i = 0; i < nodeData.children.length; i++) {
240
235
  childrenLength += 1;
241
236
  const childIndex = Array.isArray(indexKey) ? indexKey.concat([ i ]) : [ indexKey, i ];
242
- computeChildrenNodeLength(childIndex, this.treeDataHierarchyState.get(childIndex.join(",")), nodeData.children[i]);
237
+ computeChildrenNodeLength(childIndex, nodeData.children[i].hierarchyState, nodeData.children[i]);
243
238
  }
244
239
  };
245
240
  computeChildrenNodeLength(indexed, state, data), this.currentIndexedData.splice(this.currentIndexedData.indexOf(indexed) + 1, childrenLength),
246
- this.treeDataHierarchyState.set(Array.isArray(indexed) ? indexed.join(",") : indexed, ts_types_1.HierarchyState.collapse);
241
+ data.hierarchyState = ts_types_1.HierarchyState.collapse;
247
242
  }
248
243
  this.updatePagerData();
249
244
  return (0, diff_cell_1.calculateArrayDiff)(oldIndexedData, this.currentIndexedData);
@@ -263,9 +258,9 @@ class DataSource extends EventTarget_1.EventTarget {
263
258
  childrenLength += 1;
264
259
  const childIndex = Array.isArray(indexKey) ? indexKey.concat([ subNodeSortedIndexArray[i] ]) : [ indexKey, subNodeSortedIndexArray[i] ];
265
260
  this.currentIndexedData.splice(this.currentIndexedData.indexOf(indexKey) + childrenLength, 0, childIndex);
266
- const preChildState = this.treeDataHierarchyState.get(childIndex.join(",")), childData = this.getOriginalRecord(childIndex);
267
- !preChildState && childData.children && this.treeDataHierarchyState.set(childIndex.join(","), ts_types_1.HierarchyState.collapse),
268
- childrenLength += this.pushChildrenNode(childIndex, this.treeDataHierarchyState.get(childIndex.join(",")), nodeData.children[subNodeSortedIndexArray[i]]);
261
+ const childData = this.getOriginalRecord(childIndex);
262
+ !nodeData.children[i].hierarchyState && childData.children && (nodeData.children[i].hierarchyState = ts_types_1.HierarchyState.collapse),
263
+ childrenLength += this.pushChildrenNode(childIndex, nodeData.children[i].hierarchyState, nodeData.children[subNodeSortedIndexArray[i]]);
269
264
  }
270
265
  }
271
266
  return childrenLength;
@@ -279,11 +274,7 @@ class DataSource extends EventTarget_1.EventTarget {
279
274
  }
280
275
  if ("string" == typeof field || "number" == typeof field) {
281
276
  const beforeChangedValue = this.beforeChangedRecordsMap[dataIndex][field], record = this.getOriginalRecord(dataIndex);
282
- let formatValue = value;
283
- "number" == typeof beforeChangedValue && (0, util_1.isAllDigits)(value) && (formatValue = parseFloat(value)),
284
- (0, helper_1.isPromise)(record) ? record.then((record => {
285
- record[field] = formatValue;
286
- })).catch((err => {})) : record[field] = formatValue;
277
+ "number" == typeof beforeChangedValue && (0, util_1.isAllDigits)(value) ? record[field] = parseFloat(value) : record[field] = value;
287
278
  }
288
279
  }
289
280
  }
@@ -384,7 +375,7 @@ class DataSource extends EventTarget_1.EventTarget {
384
375
  let nodeLength = sortedIndexArray.length;
385
376
  window.performance.now();
386
377
  for (let i = 0; i < nodeLength; i++) {
387
- const subNodeLength = this.pushChildrenNode(sortedIndexArray[i], this.treeDataHierarchyState.get(sortedIndexArray[i]), this.getOriginalRecord(sortedIndexArray[i]));
378
+ const record = this.getOriginalRecord(sortedIndexArray[i]), subNodeLength = this.pushChildrenNode(sortedIndexArray[i], record.hierarchyState, this.getOriginalRecord(sortedIndexArray[i]));
388
379
  nodeLength += subNodeLength, i += subNodeLength;
389
380
  }
390
381
  }
@@ -498,6 +489,87 @@ class DataSource extends EventTarget_1.EventTarget {
498
489
  }
499
490
  fieldPromiseCallBack(_index, _field, _value) {}
500
491
  recordPromiseCallBack(_index, _record) {}
492
+ isCanExchangeOrder(sourceIndex, targetIndex) {
493
+ if (this.hasHierarchyStateExpand) {
494
+ let sourceIndexs = this.currentPagerIndexedData[sourceIndex], targetIndexs = this.currentPagerIndexedData[targetIndex];
495
+ if (sourceIndexs = Array.isArray(sourceIndexs) ? [ ...sourceIndexs ] : [ sourceIndexs ],
496
+ targetIndexs = Array.isArray(targetIndexs) ? [ ...targetIndexs ] : [ targetIndexs ],
497
+ targetIndex > sourceIndex && targetIndexs.length > sourceIndexs.length) {
498
+ let targetNextIndexs = this.currentPagerIndexedData[targetIndex + 1];
499
+ targetNextIndexs = Array.isArray(targetNextIndexs) ? [ ...targetNextIndexs ] : [ targetNextIndexs ],
500
+ targetNextIndexs.length < targetIndexs.length && targetIndexs.splice(targetIndexs.length - 1, 1);
501
+ }
502
+ if (sourceIndexs.length === targetIndexs.length) {
503
+ for (let i = 0; i <= sourceIndexs.length - 2; i++) if (sourceIndexs[i] !== targetIndexs[i]) return !1;
504
+ return !0;
505
+ }
506
+ return !1;
507
+ }
508
+ return !0;
509
+ }
510
+ reorderRecord(sourceIndex, targetIndex) {
511
+ if ("asc" !== this.lastOrder && "desc" !== this.lastOrder && this.isCanExchangeOrder(sourceIndex, targetIndex)) if (this.hasHierarchyStateExpand) {
512
+ let sourceI, targetI, sourceIndexs = this.currentPagerIndexedData[sourceIndex], targetIndexs = this.currentPagerIndexedData[targetIndex];
513
+ if (sourceIndexs = Array.isArray(sourceIndexs) ? [ ...sourceIndexs ] : [ sourceIndexs ],
514
+ targetIndexs = Array.isArray(targetIndexs) ? [ ...targetIndexs ] : [ targetIndexs ],
515
+ sourceIndexs.length > 1 || targetIndexs.length > 1) {
516
+ if (targetIndex > sourceIndex && targetIndexs.length > sourceIndexs.length) {
517
+ let targetNextIndexs = this.currentPagerIndexedData[targetIndex + 1];
518
+ targetNextIndexs = Array.isArray(targetNextIndexs) ? [ ...targetNextIndexs ] : [ targetNextIndexs ],
519
+ targetNextIndexs.length < targetIndexs.length && targetIndexs.splice(targetIndexs.length - 1, 1);
520
+ }
521
+ if (sourceI = sourceIndexs.splice(sourceIndexs.length - 1, 1)[0], targetI = targetIndexs.splice(targetIndexs.length - 1, 1)[0],
522
+ sourceIndexs.length >= 1) {
523
+ const parent = this.getOriginalRecord(sourceIndexs), sourceIds = parent.children.splice(sourceI, 1);
524
+ sourceIds.unshift(targetI, 0), Array.prototype.splice.apply(parent.children, sourceIds);
525
+ } else {
526
+ const sourceIds = this.source.splice(sourceI, 1);
527
+ sourceIds.unshift(targetI, 0), Array.prototype.splice.apply(this.source, sourceIds);
528
+ }
529
+ } else {
530
+ sourceI = this.currentPagerIndexedData[sourceIndex], targetI = this.currentPagerIndexedData[targetIndex];
531
+ const records = this.source.splice(sourceI, 1);
532
+ records.unshift(targetI, 0), Array.prototype.splice.apply(this.source, records);
533
+ }
534
+ this.restoreTreeHierarchyState(), this.updatePagerData();
535
+ } else {
536
+ const records = this.source.splice(sourceIndex, 1);
537
+ records.unshift(targetIndex, 0), Array.prototype.splice.apply(this.source, records);
538
+ }
539
+ }
540
+ restoreTreeHierarchyState() {
541
+ var _a;
542
+ if (this.hierarchyExpandLevel) {
543
+ for (let i = 0; i < this._sourceLength; i++) {
544
+ const nodeData = this.getOriginalRecord(i);
545
+ nodeData.children && !nodeData.hierarchyState && (nodeData.hierarchyState = ts_types_1.HierarchyState.collapse);
546
+ }
547
+ this.currentIndexedData = Array.from({
548
+ length: this._sourceLength
549
+ }, ((_, i) => i));
550
+ let nodeLength = this._sourceLength;
551
+ for (let i = 0; i < nodeLength; i++) {
552
+ const indexKey = this.currentIndexedData[i], nodeData = this.getOriginalRecord(indexKey);
553
+ if ((null === (_a = nodeData.children) || void 0 === _a ? void 0 : _a.length) > 0 && nodeData.hierarchyState === ts_types_1.HierarchyState.expand) {
554
+ this.hasHierarchyStateExpand = !0;
555
+ const childrenLength = this.restoreChildrenNodeHierarchy(indexKey, nodeData);
556
+ i += childrenLength, nodeLength += childrenLength;
557
+ } else !0 === nodeData.children && !nodeData.hierarchyState && (nodeData.hierarchyState = ts_types_1.HierarchyState.collapse);
558
+ }
559
+ }
560
+ }
561
+ restoreChildrenNodeHierarchy(indexKey, nodeData) {
562
+ var _a, _b;
563
+ let childTotalLength = 0;
564
+ const nodeLength = null !== (_b = null === (_a = nodeData.children) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : 0;
565
+ for (let j = 0; j < nodeLength; j++) {
566
+ nodeData.hierarchyState === ts_types_1.HierarchyState.expand && (childTotalLength += 1);
567
+ const childNodeData = nodeData.children[j], childIndexKey = Array.isArray(indexKey) ? indexKey.concat(j) : [ indexKey, j ];
568
+ nodeData.hierarchyState === ts_types_1.HierarchyState.expand && this.currentIndexedData.splice(this.currentIndexedData.indexOf(indexKey) + childTotalLength, 0, childIndexKey),
569
+ childTotalLength += this.restoreChildrenNodeHierarchy(childIndexKey, childNodeData);
570
+ }
571
+ return childTotalLength;
572
+ }
501
573
  }
502
574
 
503
575
  exports.DataSource = DataSource, DataSource.EMPTY = new DataSource({