@visactor/vtable 1.22.11-alpha.8 → 1.22.11

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 (133) hide show
  1. package/cjs/PivotChart.d.ts +0 -3
  2. package/cjs/PivotChart.js +5 -12
  3. package/cjs/PivotChart.js.map +1 -1
  4. package/cjs/PivotTable-all.js.map +1 -1
  5. package/cjs/core/BaseTable.d.ts +3 -0
  6. package/cjs/core/BaseTable.js +22 -6
  7. package/cjs/core/BaseTable.js.map +1 -1
  8. package/cjs/dataset/dataset.js +92 -84
  9. package/cjs/dataset/dataset.js.map +1 -1
  10. package/cjs/edit/edit-manager.js +10 -9
  11. package/cjs/edit/edit-manager.js.map +1 -1
  12. package/cjs/event/listener/container-dom.js +1 -1
  13. package/cjs/event/listener/container-dom.js.map +1 -1
  14. package/cjs/event/listener/scroll-bar.js +2 -8
  15. package/cjs/event/listener/scroll-bar.js.map +1 -1
  16. package/cjs/event/listener/table-group.js +8 -14
  17. package/cjs/event/listener/table-group.js.map +1 -1
  18. package/cjs/event/media-click.js +1 -1
  19. package/cjs/event/scroll.js +1 -1
  20. package/cjs/event/sparkline-event.js +1 -1
  21. package/cjs/event/util.js +1 -1
  22. package/cjs/index.d.ts +1 -1
  23. package/cjs/index.js +1 -1
  24. package/cjs/index.js.map +1 -1
  25. package/cjs/layout/index.js +1 -2
  26. package/cjs/layout/pivot-header-layout.d.ts +0 -6
  27. package/cjs/layout/pivot-header-layout.js +21 -40
  28. package/cjs/layout/pivot-header-layout.js.map +1 -1
  29. package/cjs/plugins/custom-cell-style.d.ts +5 -0
  30. package/cjs/plugins/custom-cell-style.js +66 -18
  31. package/cjs/plugins/custom-cell-style.js.map +1 -1
  32. package/cjs/plugins/interface.js +1 -1
  33. package/cjs/plugins/invert-highlight.js +2 -1
  34. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  35. package/cjs/plugins/plugin-manager.js +1 -1
  36. package/cjs/scenegraph/graphic/active-cell-chart-list.d.ts +2 -15
  37. package/cjs/scenegraph/graphic/active-cell-chart-list.js +75 -198
  38. package/cjs/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  39. package/cjs/scenegraph/graphic/chart.d.ts +1 -10
  40. package/cjs/scenegraph/graphic/chart.js +27 -61
  41. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  42. package/cjs/scenegraph/graphic/contributions/chart-render.js +4 -3
  43. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  44. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  45. package/cjs/scenegraph/layout/update-row.js +16 -1
  46. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  47. package/cjs/scenegraph/refresh-node/update-chart.d.ts +1 -1
  48. package/cjs/scenegraph/refresh-node/update-chart.js +1 -2
  49. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  50. package/cjs/scenegraph/scenegraph.d.ts +2 -2
  51. package/cjs/scenegraph/scenegraph.js +11 -44
  52. package/cjs/scenegraph/scenegraph.js.map +1 -1
  53. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  54. package/cjs/state/select/update-position.js +3 -3
  55. package/cjs/state/select/update-position.js.map +1 -1
  56. package/cjs/tools/util.d.ts +0 -5
  57. package/cjs/tools/util.js +4 -22
  58. package/cjs/tools/util.js.map +1 -1
  59. package/cjs/ts-types/base-table.d.ts +3 -0
  60. package/cjs/ts-types/base-table.js.map +1 -1
  61. package/cjs/ts-types/new-data-set.d.ts +1 -0
  62. package/cjs/ts-types/new-data-set.js.map +1 -1
  63. package/cjs/ts-types/table-engine.d.ts +0 -7
  64. package/cjs/ts-types/table-engine.js.map +1 -1
  65. package/cjs/vrender.js.map +1 -1
  66. package/dist/vtable.js +380 -596
  67. package/dist/vtable.min.js +2 -2
  68. package/es/PivotChart.d.ts +0 -3
  69. package/es/PivotChart.js +4 -13
  70. package/es/PivotChart.js.map +1 -1
  71. package/es/PivotTable-all.js.map +1 -1
  72. package/es/core/BaseTable.d.ts +3 -0
  73. package/es/core/BaseTable.js +22 -6
  74. package/es/core/BaseTable.js.map +1 -1
  75. package/es/dataset/dataset.js +92 -84
  76. package/es/dataset/dataset.js.map +1 -1
  77. package/es/edit/edit-manager.js +10 -9
  78. package/es/edit/edit-manager.js.map +1 -1
  79. package/es/event/listener/container-dom.js +1 -1
  80. package/es/event/listener/container-dom.js.map +1 -1
  81. package/es/event/listener/scroll-bar.js +2 -8
  82. package/es/event/listener/scroll-bar.js.map +1 -1
  83. package/es/event/listener/table-group.js +8 -13
  84. package/es/event/listener/table-group.js.map +1 -1
  85. package/es/event/media-click.js +1 -1
  86. package/es/event/scroll.js +1 -1
  87. package/es/event/sparkline-event.js +1 -1
  88. package/es/event/util.js +1 -1
  89. package/es/index.d.ts +1 -1
  90. package/es/index.js +1 -1
  91. package/es/index.js.map +1 -1
  92. package/es/layout/index.js +1 -2
  93. package/es/layout/pivot-header-layout.d.ts +0 -6
  94. package/es/layout/pivot-header-layout.js +21 -40
  95. package/es/layout/pivot-header-layout.js.map +1 -1
  96. package/es/plugins/custom-cell-style.d.ts +5 -0
  97. package/es/plugins/custom-cell-style.js +64 -18
  98. package/es/plugins/custom-cell-style.js.map +1 -1
  99. package/es/plugins/interface.js +1 -1
  100. package/es/plugins/invert-highlight.js +2 -1
  101. package/es/plugins/list-tree-stick-cell.js +1 -1
  102. package/es/plugins/plugin-manager.js +1 -1
  103. package/es/scenegraph/graphic/active-cell-chart-list.d.ts +2 -15
  104. package/es/scenegraph/graphic/active-cell-chart-list.js +68 -186
  105. package/es/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  106. package/es/scenegraph/graphic/chart.d.ts +1 -10
  107. package/es/scenegraph/graphic/chart.js +25 -58
  108. package/es/scenegraph/graphic/chart.js.map +1 -1
  109. package/es/scenegraph/graphic/contributions/chart-render.js +4 -3
  110. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  111. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  112. package/es/scenegraph/layout/update-row.js +16 -1
  113. package/es/scenegraph/layout/update-row.js.map +1 -1
  114. package/es/scenegraph/refresh-node/update-chart.d.ts +1 -1
  115. package/es/scenegraph/refresh-node/update-chart.js +1 -2
  116. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  117. package/es/scenegraph/scenegraph.d.ts +2 -2
  118. package/es/scenegraph/scenegraph.js +10 -43
  119. package/es/scenegraph/scenegraph.js.map +1 -1
  120. package/es/scenegraph/select/update-select-border.js.map +1 -1
  121. package/es/state/select/update-position.js +4 -2
  122. package/es/state/select/update-position.js.map +1 -1
  123. package/es/tools/util.d.ts +0 -5
  124. package/es/tools/util.js +0 -18
  125. package/es/tools/util.js.map +1 -1
  126. package/es/ts-types/base-table.d.ts +3 -0
  127. package/es/ts-types/base-table.js.map +1 -1
  128. package/es/ts-types/new-data-set.d.ts +1 -0
  129. package/es/ts-types/new-data-set.js.map +1 -1
  130. package/es/ts-types/table-engine.d.ts +0 -7
  131. package/es/ts-types/table-engine.js.map +1 -1
  132. package/es/vrender.js.map +1 -1
  133. package/package.json +5 -5
@@ -9,7 +9,12 @@ export declare class CustomCellStylePlugin {
9
9
  table: BaseTableAPI;
10
10
  customCellStyle: CustomCellStyle[];
11
11
  customCellStyleArrangement: CustomCellStyleArrangement[];
12
+ private _customCellStyleArrangementIndex;
13
+ private _customCellStyleArrangementTombstoneCount;
12
14
  constructor(table: BaseTableAPI, customCellStyle: CustomCellStyle[], customCellStyleArrangement: CustomCellStyleArrangement[]);
15
+ private _getCustomCellStyleArrangementKey;
16
+ private _rebuildCustomCellStyleArrangementIndex;
17
+ private _compactCustomCellStyleArrangementIfNeeded;
13
18
  getCustomCellStyle(col: number, row: number): any;
14
19
  getCustomCellStyleIds(col: number, row: number): string[];
15
20
  getCustomCellStyleOption(customStyleId: string): CustomCellStyle;
@@ -8,13 +8,41 @@ const vutils_1 = require("@visactor/vutils"), ts_types_1 = require("../ts-types"
8
8
 
9
9
  class CustomCellStylePlugin {
10
10
  constructor(table, customCellStyle, customCellStyleArrangement) {
11
- this.table = table, this.customCellStyle = customCellStyle, this.customCellStyleArrangement = customCellStyleArrangement;
11
+ this.table = table, this.customCellStyle = customCellStyle, this.customCellStyleArrangement = customCellStyleArrangement,
12
+ this._customCellStyleArrangementIndex = new Map, this._customCellStyleArrangementTombstoneCount = 0,
13
+ this._rebuildCustomCellStyleArrangementIndex();
14
+ }
15
+ _getCustomCellStyleArrangementKey(cellPos) {
16
+ if (cellPos.range) {
17
+ const {start: start, end: end} = cellPos.range;
18
+ return `range:${start.col},${start.row},${end.col},${end.row}`;
19
+ }
20
+ if (void 0 !== cellPos.col && void 0 !== cellPos.row) return `cell:${cellPos.col},${cellPos.row}`;
21
+ }
22
+ _rebuildCustomCellStyleArrangementIndex() {
23
+ this._customCellStyleArrangementIndex.clear(), this._customCellStyleArrangementTombstoneCount = 0;
24
+ for (let i = 0; i < this.customCellStyleArrangement.length; i++) {
25
+ if (!(0, vutils_1.isValid)(this.customCellStyleArrangement[i].customStyleId)) {
26
+ this._customCellStyleArrangementTombstoneCount++;
27
+ continue;
28
+ }
29
+ const key = this._getCustomCellStyleArrangementKey(this.customCellStyleArrangement[i].cellPosition);
30
+ key && this._customCellStyleArrangementIndex.set(key, i);
31
+ }
32
+ }
33
+ _compactCustomCellStyleArrangementIfNeeded() {
34
+ const length = this.customCellStyleArrangement.length;
35
+ if (this._customCellStyleArrangementTombstoneCount < 2048) return;
36
+ if (4 * this._customCellStyleArrangementTombstoneCount < length) return;
37
+ const compacted = this.customCellStyleArrangement.filter((style => (0, vutils_1.isValid)(style.customStyleId)));
38
+ compacted.length !== this.customCellStyleArrangement.length ? (this.customCellStyleArrangement.length = 0,
39
+ this.customCellStyleArrangement.push(...compacted), this._rebuildCustomCellStyleArrangementIndex()) : this._customCellStyleArrangementTombstoneCount = 0;
12
40
  }
13
41
  getCustomCellStyle(col, row) {
14
42
  const customStyleIds = this.getCustomCellStyleIds(col, row);
15
43
  if (customStyleIds.length) {
16
44
  const styles = [];
17
- return customStyleIds.forEach((customStyleId => {
45
+ if (customStyleIds.forEach((customStyleId => {
18
46
  const styleOption = this.getCustomCellStyleOption(customStyleId);
19
47
  if ((0, vutils_1.isFunction)(null == styleOption ? void 0 : styleOption.style)) {
20
48
  const style = styleOption.style({
@@ -27,13 +55,14 @@ class CustomCellStylePlugin {
27
55
  });
28
56
  styles.push(style);
29
57
  } else (null == styleOption ? void 0 : styleOption.style) && styles.push(styleOption.style);
30
- })), (0, vutils_1.merge)({}, ...styles);
58
+ })), !styles.length) return;
59
+ return (0, vutils_1.merge)({}, ...styles);
31
60
  }
32
61
  }
33
62
  getCustomCellStyleIds(col, row) {
34
63
  const customStyleIds = [], range = this.table.getCellRange(col, row);
35
64
  for (let c = range.start.col; c <= range.end.col; c++) for (let r = range.start.row; r <= range.end.row; r++) this.customCellStyleArrangement.forEach((style => {
36
- style.cellPosition.range ? style.cellPosition.range.start.col <= c && style.cellPosition.range.end.col >= c && style.cellPosition.range.start.row <= r && style.cellPosition.range.end.row >= r && customStyleIds.push(style.customStyleId) : style.cellPosition.col === c && style.cellPosition.row === r && customStyleIds.push(style.customStyleId);
65
+ (0, vutils_1.isValid)(style.customStyleId) && (style.cellPosition.range ? style.cellPosition.range.start.col <= c && style.cellPosition.range.end.col >= c && style.cellPosition.range.start.row <= r && style.cellPosition.range.end.row >= r && customStyleIds.push(style.customStyleId) : style.cellPosition.col === c && style.cellPosition.row === r && customStyleIds.push(style.customStyleId));
37
66
  }));
38
67
  return customStyleIds;
39
68
  }
@@ -54,21 +83,39 @@ class CustomCellStylePlugin {
54
83
  })), this.table.scenegraph.updateNextFrame();
55
84
  }
56
85
  arrangeCustomCellStyle(cellPos, customStyleId, forceFastUpdate) {
57
- var _a;
58
- const index = this.customCellStyleArrangement.findIndex((style => style.cellPosition.range && cellPos.range ? style.cellPosition.range.start.col === cellPos.range.start.col && style.cellPosition.range.start.row === cellPos.range.start.row && style.cellPosition.range.end.col === cellPos.range.end.col && style.cellPosition.range.end.row === cellPos.range.end.row : style.cellPosition.col === cellPos.col && style.cellPosition.row === cellPos.row));
59
- if (-1 === index && !customStyleId) return;
60
- if (-1 === index && customStyleId) this.customCellStyleArrangement.push({
61
- cellPosition: {
62
- col: cellPos.col,
63
- row: cellPos.row,
64
- range: cellPos.range
65
- },
66
- customStyleId: customStyleId
67
- }); else {
86
+ var _a, _b;
87
+ const inputKey = this._getCustomCellStyleArrangementKey(cellPos);
88
+ let index = inputKey && null !== (_a = this._customCellStyleArrangementIndex.get(inputKey)) && void 0 !== _a ? _a : -1;
89
+ if (inputKey && -1 !== index) {
90
+ const item = this.customCellStyleArrangement[index], itemKey = item ? this._getCustomCellStyleArrangementKey(item.cellPosition) : void 0;
91
+ item && (0, vutils_1.isValid)(item.customStyleId) && itemKey === inputKey || (index = this.customCellStyleArrangement.findIndex((style => !!(0,
92
+ vutils_1.isValid)(style.customStyleId) && this._getCustomCellStyleArrangementKey(style.cellPosition) === inputKey)),
93
+ -1 !== index ? this._customCellStyleArrangementIndex.set(inputKey, index) : this._customCellStyleArrangementIndex.delete(inputKey));
94
+ }
95
+ if (-1 !== index || inputKey || (index = this.customCellStyleArrangement.findIndex((style => !!(0,
96
+ vutils_1.isValid)(style.customStyleId) && (style.cellPosition.range && cellPos.range ? style.cellPosition.range.start.col === cellPos.range.start.col && style.cellPosition.range.start.row === cellPos.range.start.row && style.cellPosition.range.end.col === cellPos.range.end.col && style.cellPosition.range.end.row === cellPos.range.end.row : style.cellPosition.col === cellPos.col && style.cellPosition.row === cellPos.row)))),
97
+ -1 === index && !customStyleId) return;
98
+ if (-1 === index && customStyleId) {
99
+ this.customCellStyleArrangement.push({
100
+ cellPosition: {
101
+ col: cellPos.col,
102
+ row: cellPos.row,
103
+ range: cellPos.range
104
+ },
105
+ customStyleId: customStyleId
106
+ });
107
+ const pushedIndex = this.customCellStyleArrangement.length - 1, pushedKey = this._getCustomCellStyleArrangementKey(this.customCellStyleArrangement[pushedIndex].cellPosition);
108
+ pushedKey && this._customCellStyleArrangementIndex.set(pushedKey, pushedIndex);
109
+ } else {
68
110
  if (this.customCellStyleArrangement[index].customStyleId === customStyleId) return;
69
- customStyleId ? this.customCellStyleArrangement[index].customStyleId = customStyleId : this.customCellStyleArrangement.splice(index, 1);
111
+ if (customStyleId) this.customCellStyleArrangement[index].customStyleId = customStyleId; else {
112
+ const existedKey = this._getCustomCellStyleArrangementKey(this.customCellStyleArrangement[index].cellPosition);
113
+ (0, vutils_1.isValid)(this.customCellStyleArrangement[index].customStyleId) && this._customCellStyleArrangementTombstoneCount++,
114
+ this.customCellStyleArrangement[index].customStyleId = null, existedKey && this._customCellStyleArrangementIndex.delete(existedKey),
115
+ this._compactCustomCellStyleArrangementIfNeeded();
116
+ }
70
117
  }
71
- const style = null === (_a = this.getCustomCellStyleOption(customStyleId)) || void 0 === _a ? void 0 : _a.style;
118
+ const style = customStyleId ? null === (_b = this.getCustomCellStyleOption(customStyleId)) || void 0 === _b ? void 0 : _b.style : void 0;
72
119
  if (style) {
73
120
  forceFastUpdate = !0;
74
121
  for (const key in style) if (-1 === ts_types_1.cellStyleKeys.indexOf(key)) {
@@ -83,7 +130,8 @@ class CustomCellStylePlugin {
83
130
  this.table.scenegraph.updateNextFrame();
84
131
  }
85
132
  updateCustomCell(customCellStyle, customCellStyleArrangement) {
86
- this.customCellStyle.length = 0, this.customCellStyleArrangement.length = 0, customCellStyle.forEach((cellStyle => {
133
+ this.customCellStyle.length = 0, this.customCellStyleArrangement.length = 0, this._customCellStyleArrangementIndex.clear(),
134
+ this._customCellStyleArrangementTombstoneCount = 0, customCellStyle.forEach((cellStyle => {
87
135
  this.registerCustomCellStyle(cellStyle.id, cellStyle.style);
88
136
  })), customCellStyleArrangement.forEach((cellStyle => {
89
137
  this.arrangeCustomCellStyle(cellStyle.cellPosition, cellStyle.customStyleId);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugins/custom-cell-style.ts"],"names":[],"mappings":"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","file":"custom-cell-style.js","sourcesContent":["import { isFunction, isValid, merge } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport {\n cellStyleKeys,\n type CellRange,\n type ColumnStyleOption,\n type CustomCellStyle,\n type CustomCellStyleArrangement\n} from '../ts-types';\nimport type { Style } from '../body-helper/style';\nimport { Factory } from '../core/factory';\nimport type { StylePropertyFunctionArg } from '../ts-types/style-define';\nexport interface ICustomCellStylePlugin {\n new (\n table: BaseTableAPI,\n customCellStyle: CustomCellStyle[],\n customCellStyleArrangement: CustomCellStyleArrangement[]\n ): CustomCellStylePlugin;\n}\n\nexport class CustomCellStylePlugin {\n table: BaseTableAPI;\n customCellStyle: CustomCellStyle[];\n customCellStyleArrangement: CustomCellStyleArrangement[];\n\n constructor(\n table: BaseTableAPI,\n customCellStyle: CustomCellStyle[],\n customCellStyleArrangement: CustomCellStyleArrangement[]\n ) {\n this.table = table;\n this.customCellStyle = customCellStyle;\n this.customCellStyleArrangement = customCellStyleArrangement;\n }\n\n getCustomCellStyle(col: number, row: number) {\n const customStyleIds = this.getCustomCellStyleIds(col, row);\n if (customStyleIds.length) {\n const styles: ColumnStyleOption[] = [];\n\n customStyleIds.forEach(customStyleId => {\n const styleOption = this.getCustomCellStyleOption(customStyleId);\n if (isFunction(styleOption?.style)) {\n const style = styleOption.style({\n col,\n row,\n table: this.table,\n value: this.table.getCellValue(col, row),\n dataValue: this.table.getCellOriginValue(col, row),\n cellHeaderPaths: this.table.getCellHeaderPaths(col, row)\n });\n styles.push(style);\n } else if (styleOption?.style) {\n styles.push(styleOption.style);\n }\n });\n\n return merge({}, ...styles);\n // const styleOption = this.getCustomCellStyleOption(customStyleId);\n // return styleOption?.style;\n }\n return undefined;\n }\n\n getCustomCellStyleIds(col: number, row: number) {\n // let customStyleId;\n const customStyleIds: string[] = [];\n\n const range = this.table.getCellRange(col, row);\n for (let c = range.start.col; c <= range.end.col; c++) {\n for (let r = range.start.row; r <= range.end.row; r++) {\n // eslint-disable-next-line no-loop-func\n this.customCellStyleArrangement.forEach(style => {\n if (style.cellPosition.range) {\n if (\n style.cellPosition.range.start.col <= c &&\n style.cellPosition.range.end.col >= c &&\n style.cellPosition.range.start.row <= r &&\n style.cellPosition.range.end.row >= r\n ) {\n // customStyleId = style.customStyleId;\n customStyleIds.push(style.customStyleId);\n }\n } else if (style.cellPosition.col === c && style.cellPosition.row === r) {\n // customStyleId = style.customStyleId;\n customStyleIds.push(style.customStyleId);\n }\n });\n }\n }\n\n return customStyleIds;\n }\n\n getCustomCellStyleOption(customStyleId: string) {\n return this.customCellStyle.find(style => style.id === customStyleId);\n }\n\n registerCustomCellStyle(\n customStyleId: string,\n customStyle: ColumnStyleOption | ((styleArg: StylePropertyFunctionArg) => ColumnStyleOption) | undefined | null\n ) {\n const index = this.customCellStyle.findIndex(style => style.id === customStyleId);\n if (index === -1) {\n this.customCellStyle.push({\n id: customStyleId,\n style: customStyle\n });\n } else {\n this.customCellStyle[index] = {\n id: customStyleId,\n style: customStyle\n };\n }\n\n this.customCellStyleArrangement.forEach(cellStyle => {\n const cellPos = cellStyle.cellPosition;\n if (cellStyle.customStyleId === customStyleId) {\n if (cellPos.range) {\n for (\n let col = Math.max(0, cellPos.range.start.col);\n col <= Math.min(this.table.colCount - 1, cellPos.range.end.col);\n col++\n ) {\n for (\n let row = Math.max(0, cellPos.range.start.row);\n row <= Math.min(this.table.rowCount - 1, cellPos.range.end.row);\n row++\n ) {\n this.table.scenegraph.updateCellContent(col, row);\n }\n }\n } else {\n this.table.scenegraph.updateCellContent(cellPos.col, cellPos.row);\n }\n }\n });\n this.table.scenegraph.updateNextFrame();\n }\n\n arrangeCustomCellStyle(\n cellPos: {\n col?: number;\n row?: number;\n range?: CellRange;\n },\n customStyleId: string | undefined | null,\n forceFastUpdate?: boolean\n ) {\n const index = this.customCellStyleArrangement.findIndex(style => {\n if (style.cellPosition.range && cellPos.range) {\n return (\n style.cellPosition.range.start.col === cellPos.range.start.col &&\n style.cellPosition.range.start.row === cellPos.range.start.row &&\n style.cellPosition.range.end.col === cellPos.range.end.col &&\n style.cellPosition.range.end.row === cellPos.range.end.row\n );\n }\n return style.cellPosition.col === cellPos.col && style.cellPosition.row === cellPos.row;\n });\n\n if (index === -1 && !customStyleId) {\n // do nothing\n return;\n } else if (index === -1 && customStyleId) {\n // add new style\n this.customCellStyleArrangement.push({\n cellPosition: {\n col: cellPos.col,\n row: cellPos.row,\n range: cellPos.range\n },\n customStyleId: customStyleId\n });\n } else if (this.customCellStyleArrangement[index].customStyleId === customStyleId) {\n // same style\n return;\n } else if (customStyleId) {\n // update style\n this.customCellStyleArrangement[index].customStyleId = customStyleId;\n } else {\n // delete useless style\n this.customCellStyleArrangement.splice(index, 1);\n }\n\n const style = this.getCustomCellStyleOption(customStyleId)?.style;\n // let forceFastUpdate;\n if (style) {\n forceFastUpdate = true;\n for (const key in style) {\n if (cellStyleKeys.indexOf(key) === -1) {\n forceFastUpdate = false;\n break;\n }\n }\n }\n\n // update cell group\n if (cellPos.range) {\n for (\n let col = Math.max(0, cellPos.range.start.col);\n col <= Math.min(this.table.colCount - 1, cellPos.range.end.col);\n col++\n ) {\n for (\n let row = Math.max(0, cellPos.range.start.row);\n row <= Math.min(this.table.rowCount - 1, cellPos.range.end.row);\n row++\n ) {\n const range = this.table.getCellRange(col, row);\n for (let c = range.start.col; c <= range.end.col; c++) {\n for (let r = range.start.row; r <= range.end.row; r++) {\n this.table.scenegraph.updateCellContent(c, r, forceFastUpdate);\n }\n }\n // this.table.scenegraph.updateCellContent(col, row);\n }\n }\n } else {\n this.table.scenegraph.updateCellContent(cellPos.col, cellPos.row, forceFastUpdate);\n }\n\n this.table.scenegraph.updateNextFrame();\n }\n\n updateCustomCell(customCellStyle: CustomCellStyle[], customCellStyleArrangement: CustomCellStyleArrangement[]) {\n this.customCellStyle.length = 0;\n this.customCellStyleArrangement.length = 0;\n customCellStyle.forEach((cellStyle: CustomCellStyle) => {\n this.registerCustomCellStyle(cellStyle.id, cellStyle.style);\n });\n customCellStyleArrangement.forEach((cellStyle: CustomCellStyleArrangement) => {\n this.arrangeCustomCellStyle(cellStyle.cellPosition, cellStyle.customStyleId);\n });\n }\n\n hasCustomCellStyle(customStyleId: string) {\n return this.customCellStyle.some(style => style.id === customStyleId);\n }\n}\n\nexport function mergeStyle(cacheStyle: Style, customCellStyle: ColumnStyleOption): Style {\n cacheStyle = cacheStyle.clone();\n\n for (const key in customCellStyle) {\n const value = (customCellStyle as any)[key];\n if (isValid(value)) {\n (cacheStyle as any)[`_${key}`] = value;\n }\n }\n\n return cacheStyle;\n}\n\nexport const registerCustomCellStylePlugin = () => {\n Factory.registerComponent('customCellStylePlugin', CustomCellStylePlugin);\n};\n\n// export type ICustomCellStylePlugin = typeof CustomCellStylePlugin;\n"]}
1
+ {"version":3,"sources":["../src/plugins/custom-cell-style.ts"],"names":[],"mappings":"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","file":"custom-cell-style.js","sourcesContent":["import { isFunction, isValid, merge } from '@visactor/vutils';\nimport type { BaseTableAPI } from '../ts-types/base-table';\nimport {\n cellStyleKeys,\n type CellRange,\n type ColumnStyleOption,\n type CustomCellStyle,\n type CustomCellStyleArrangement\n} from '../ts-types';\nimport type { Style } from '../body-helper/style';\nimport { Factory } from '../core/factory';\nimport type { StylePropertyFunctionArg } from '../ts-types/style-define';\nexport interface ICustomCellStylePlugin {\n new (\n table: BaseTableAPI,\n customCellStyle: CustomCellStyle[],\n customCellStyleArrangement: CustomCellStyleArrangement[]\n ): CustomCellStylePlugin;\n}\n\nexport class CustomCellStylePlugin {\n table: BaseTableAPI;\n customCellStyle: CustomCellStyle[];\n customCellStyleArrangement: CustomCellStyleArrangement[];\n private _customCellStyleArrangementIndex: Map<string, number>;\n private _customCellStyleArrangementTombstoneCount: number;\n\n constructor(\n table: BaseTableAPI,\n customCellStyle: CustomCellStyle[],\n customCellStyleArrangement: CustomCellStyleArrangement[]\n ) {\n this.table = table;\n this.customCellStyle = customCellStyle;\n this.customCellStyleArrangement = customCellStyleArrangement;\n this._customCellStyleArrangementIndex = new Map();\n this._customCellStyleArrangementTombstoneCount = 0;\n this._rebuildCustomCellStyleArrangementIndex();\n }\n\n private _getCustomCellStyleArrangementKey(cellPos: { col?: number; row?: number; range?: CellRange }) {\n if (cellPos.range) {\n const { start, end } = cellPos.range;\n return `range:${start.col},${start.row},${end.col},${end.row}`;\n }\n if (cellPos.col === undefined || cellPos.row === undefined) {\n return undefined;\n }\n return `cell:${cellPos.col},${cellPos.row}`;\n }\n\n private _rebuildCustomCellStyleArrangementIndex() {\n this._customCellStyleArrangementIndex.clear();\n this._customCellStyleArrangementTombstoneCount = 0;\n for (let i = 0; i < this.customCellStyleArrangement.length; i++) {\n if (!isValid((this.customCellStyleArrangement[i] as any).customStyleId)) {\n this._customCellStyleArrangementTombstoneCount++;\n continue;\n }\n const key = this._getCustomCellStyleArrangementKey(this.customCellStyleArrangement[i].cellPosition);\n if (key) {\n this._customCellStyleArrangementIndex.set(key, i);\n }\n }\n }\n\n private _compactCustomCellStyleArrangementIfNeeded() {\n const length = this.customCellStyleArrangement.length;\n if (this._customCellStyleArrangementTombstoneCount < 2048) {\n return;\n }\n if (this._customCellStyleArrangementTombstoneCount * 4 < length) {\n return;\n }\n const compacted = this.customCellStyleArrangement.filter(style => isValid((style as any).customStyleId));\n if (compacted.length === this.customCellStyleArrangement.length) {\n this._customCellStyleArrangementTombstoneCount = 0;\n return;\n }\n this.customCellStyleArrangement.length = 0;\n this.customCellStyleArrangement.push(...compacted);\n this._rebuildCustomCellStyleArrangementIndex();\n }\n\n getCustomCellStyle(col: number, row: number) {\n const customStyleIds = this.getCustomCellStyleIds(col, row);\n if (customStyleIds.length) {\n const styles: ColumnStyleOption[] = [];\n\n customStyleIds.forEach(customStyleId => {\n const styleOption = this.getCustomCellStyleOption(customStyleId);\n if (isFunction(styleOption?.style)) {\n const style = styleOption.style({\n col,\n row,\n table: this.table,\n value: this.table.getCellValue(col, row),\n dataValue: this.table.getCellOriginValue(col, row),\n cellHeaderPaths: this.table.getCellHeaderPaths(col, row)\n });\n styles.push(style);\n } else if (styleOption?.style) {\n styles.push(styleOption.style);\n }\n });\n\n if (!styles.length) {\n return undefined;\n }\n return merge({}, ...styles);\n // const styleOption = this.getCustomCellStyleOption(customStyleId);\n // return styleOption?.style;\n }\n return undefined;\n }\n\n getCustomCellStyleIds(col: number, row: number) {\n // let customStyleId;\n const customStyleIds: string[] = [];\n\n const range = this.table.getCellRange(col, row);\n for (let c = range.start.col; c <= range.end.col; c++) {\n for (let r = range.start.row; r <= range.end.row; r++) {\n // eslint-disable-next-line no-loop-func\n this.customCellStyleArrangement.forEach(style => {\n if (!isValid(style.customStyleId)) {\n return;\n }\n if (style.cellPosition.range) {\n if (\n style.cellPosition.range.start.col <= c &&\n style.cellPosition.range.end.col >= c &&\n style.cellPosition.range.start.row <= r &&\n style.cellPosition.range.end.row >= r\n ) {\n // customStyleId = style.customStyleId;\n customStyleIds.push(style.customStyleId as string);\n }\n } else if (style.cellPosition.col === c && style.cellPosition.row === r) {\n // customStyleId = style.customStyleId;\n customStyleIds.push(style.customStyleId as string);\n }\n });\n }\n }\n\n return customStyleIds;\n }\n\n getCustomCellStyleOption(customStyleId: string) {\n return this.customCellStyle.find(style => style.id === customStyleId);\n }\n\n registerCustomCellStyle(\n customStyleId: string,\n customStyle: ColumnStyleOption | ((styleArg: StylePropertyFunctionArg) => ColumnStyleOption) | undefined | null\n ) {\n const index = this.customCellStyle.findIndex(style => style.id === customStyleId);\n if (index === -1) {\n this.customCellStyle.push({\n id: customStyleId,\n style: customStyle\n });\n } else {\n this.customCellStyle[index] = {\n id: customStyleId,\n style: customStyle\n };\n }\n\n this.customCellStyleArrangement.forEach(cellStyle => {\n const cellPos = cellStyle.cellPosition;\n if (cellStyle.customStyleId === customStyleId) {\n if (cellPos.range) {\n for (\n let col = Math.max(0, cellPos.range.start.col);\n col <= Math.min(this.table.colCount - 1, cellPos.range.end.col);\n col++\n ) {\n for (\n let row = Math.max(0, cellPos.range.start.row);\n row <= Math.min(this.table.rowCount - 1, cellPos.range.end.row);\n row++\n ) {\n this.table.scenegraph.updateCellContent(col, row);\n }\n }\n } else {\n this.table.scenegraph.updateCellContent(cellPos.col, cellPos.row);\n }\n }\n });\n this.table.scenegraph.updateNextFrame();\n }\n\n arrangeCustomCellStyle(\n cellPos: {\n col?: number;\n row?: number;\n range?: CellRange;\n },\n customStyleId: string | undefined | null,\n forceFastUpdate?: boolean\n ) {\n const inputKey = this._getCustomCellStyleArrangementKey(cellPos);\n let index = inputKey ? this._customCellStyleArrangementIndex.get(inputKey) ?? -1 : -1;\n if (inputKey && index !== -1) {\n const item = this.customCellStyleArrangement[index];\n const itemKey = item ? this._getCustomCellStyleArrangementKey(item.cellPosition) : undefined;\n if (!item || !isValid((item as any).customStyleId) || itemKey !== inputKey) {\n index = this.customCellStyleArrangement.findIndex(style => {\n if (!isValid((style as any).customStyleId)) {\n return false;\n }\n return this._getCustomCellStyleArrangementKey(style.cellPosition) === inputKey;\n });\n if (index !== -1) {\n this._customCellStyleArrangementIndex.set(inputKey, index);\n } else {\n this._customCellStyleArrangementIndex.delete(inputKey);\n }\n }\n }\n if (index === -1 && !inputKey) {\n index = this.customCellStyleArrangement.findIndex(style => {\n if (!isValid((style as any).customStyleId)) {\n return false;\n }\n if (style.cellPosition.range && cellPos.range) {\n return (\n style.cellPosition.range.start.col === cellPos.range.start.col &&\n style.cellPosition.range.start.row === cellPos.range.start.row &&\n style.cellPosition.range.end.col === cellPos.range.end.col &&\n style.cellPosition.range.end.row === cellPos.range.end.row\n );\n }\n return style.cellPosition.col === cellPos.col && style.cellPosition.row === cellPos.row;\n });\n }\n\n if (index === -1 && !customStyleId) {\n // do nothing\n return;\n } else if (index === -1 && customStyleId) {\n // add new style\n this.customCellStyleArrangement.push({\n cellPosition: {\n col: cellPos.col,\n row: cellPos.row,\n range: cellPos.range\n },\n customStyleId: customStyleId\n });\n const pushedIndex = this.customCellStyleArrangement.length - 1;\n const pushedKey = this._getCustomCellStyleArrangementKey(\n this.customCellStyleArrangement[pushedIndex].cellPosition\n );\n if (pushedKey) {\n this._customCellStyleArrangementIndex.set(pushedKey, pushedIndex);\n }\n } else if (this.customCellStyleArrangement[index].customStyleId === customStyleId) {\n // same style\n return;\n } else if (customStyleId) {\n // update style\n this.customCellStyleArrangement[index].customStyleId = customStyleId;\n } else {\n // delete useless style\n const existedKey = this._getCustomCellStyleArrangementKey(this.customCellStyleArrangement[index].cellPosition);\n if (isValid((this.customCellStyleArrangement[index] as any).customStyleId)) {\n this._customCellStyleArrangementTombstoneCount++;\n }\n (this.customCellStyleArrangement[index] as any).customStyleId = null;\n if (existedKey) {\n this._customCellStyleArrangementIndex.delete(existedKey);\n }\n this._compactCustomCellStyleArrangementIfNeeded();\n }\n\n const style = customStyleId ? this.getCustomCellStyleOption(customStyleId)?.style : undefined;\n // let forceFastUpdate;\n if (style) {\n forceFastUpdate = true;\n for (const key in style) {\n if (cellStyleKeys.indexOf(key) === -1) {\n forceFastUpdate = false;\n break;\n }\n }\n }\n\n // update cell group\n if (cellPos.range) {\n for (\n let col = Math.max(0, cellPos.range.start.col);\n col <= Math.min(this.table.colCount - 1, cellPos.range.end.col);\n col++\n ) {\n for (\n let row = Math.max(0, cellPos.range.start.row);\n row <= Math.min(this.table.rowCount - 1, cellPos.range.end.row);\n row++\n ) {\n const range = this.table.getCellRange(col, row);\n for (let c = range.start.col; c <= range.end.col; c++) {\n for (let r = range.start.row; r <= range.end.row; r++) {\n this.table.scenegraph.updateCellContent(c, r, forceFastUpdate);\n }\n }\n // this.table.scenegraph.updateCellContent(col, row);\n }\n }\n } else {\n this.table.scenegraph.updateCellContent(cellPos.col, cellPos.row, forceFastUpdate);\n }\n\n this.table.scenegraph.updateNextFrame();\n }\n\n updateCustomCell(customCellStyle: CustomCellStyle[], customCellStyleArrangement: CustomCellStyleArrangement[]) {\n this.customCellStyle.length = 0;\n this.customCellStyleArrangement.length = 0;\n this._customCellStyleArrangementIndex.clear();\n this._customCellStyleArrangementTombstoneCount = 0;\n customCellStyle.forEach((cellStyle: CustomCellStyle) => {\n this.registerCustomCellStyle(cellStyle.id, cellStyle.style);\n });\n customCellStyleArrangement.forEach((cellStyle: CustomCellStyleArrangement) => {\n this.arrangeCustomCellStyle(cellStyle.cellPosition, cellStyle.customStyleId);\n });\n }\n\n hasCustomCellStyle(customStyleId: string) {\n return this.customCellStyle.some(style => style.id === customStyleId);\n }\n}\n\nexport function mergeStyle(cacheStyle: Style, customCellStyle: ColumnStyleOption): Style {\n cacheStyle = cacheStyle.clone();\n\n for (const key in customCellStyle) {\n const value = (customCellStyle as any)[key];\n if (isValid(value)) {\n (cacheStyle as any)[`_${key}`] = value;\n }\n }\n\n return cacheStyle;\n}\n\nexport const registerCustomCellStylePlugin = () => {\n Factory.registerComponent('customCellStylePlugin', CustomCellStylePlugin);\n};\n\n// export type ICustomCellStylePlugin = typeof CustomCellStylePlugin;\n"]}
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- //# sourceMappingURL=interface.js.map
6
+ //# sourceMappingURL=interface.js.map
@@ -19,4 +19,5 @@ function onBeforeAttributeUpdateForInvertHighlight(val, attribute) {
19
19
  }
20
20
  }
21
21
 
22
- exports.onBeforeAttributeUpdateForInvertHighlight = onBeforeAttributeUpdateForInvertHighlight;
22
+ exports.onBeforeAttributeUpdateForInvertHighlight = onBeforeAttributeUpdateForInvertHighlight;
23
+ //# sourceMappingURL=invert-highlight.js.map
@@ -177,4 +177,4 @@ const registerListTreeStickCellPlugin = () => {
177
177
  };
178
178
 
179
179
  exports.registerListTreeStickCellPlugin = registerListTreeStickCellPlugin;
180
- //# sourceMappingURL=list-tree-stick-cell.js.map
180
+ //# sourceMappingURL=list-tree-stick-cell.js.map
@@ -59,4 +59,4 @@ class PluginManager {
59
59
  }
60
60
 
61
61
  exports.PluginManager = PluginManager;
62
- //# sourceMappingURL=plugin-manager.js.map
62
+ //# sourceMappingURL=plugin-manager.js.map
@@ -1,26 +1,13 @@
1
1
  import type { BaseTableAPI } from '../../ts-types/base-table';
2
- export declare function setBrushingChartInstance(chartInstance: any, col: number, row: number): void;
3
- export declare function clearBrushingChartInstance(): void;
4
- export declare function getBrushingChartInstance(): any;
5
- export declare function getBrushingChartInstanceCellPos(): {
6
- col: number;
7
- row: number;
8
- };
9
2
  export declare const chartInstanceListColumnByColumnDirection: Record<number, Record<number, any>>;
10
3
  export declare const chartInstanceListRowByRowDirection: Record<number, Record<number, any>>;
11
4
  export declare function generateChartInstanceListByColumnDirection(col: number, dimensionValueOrXValue: string, positionValueOrYValue: string | number, canvasXY: {
12
5
  x: number;
13
6
  y: number;
14
7
  }, table: BaseTableAPI, hideTooltip?: boolean, isScatter?: boolean): void;
8
+ export declare function clearChartInstanceListByColumnDirection(col: number, excludedRow: number, table: BaseTableAPI): void;
15
9
  export declare function generateChartInstanceListByRowDirection(row: number, dimensionValueOrXValue: string, positionValueOrYValue: string | number, canvasXY: {
16
10
  x: number;
17
11
  y: number;
18
12
  }, table: BaseTableAPI, hideTooltip?: boolean, isScatter?: boolean): void;
19
- export declare function generateChartInstanceListByViewRange(datum: any, table: BaseTableAPI, deactivate?: boolean): void;
20
- export declare function clearChartInstanceListByColumnDirection(col: number, excludedRow: number, table: BaseTableAPI, forceRelease?: boolean): void;
21
- export declare function clearChartInstanceListByRowDirection(row: number, excludedCol: number, table: BaseTableAPI, forceRelease?: boolean): void;
22
- export declare function clearDelayRunDimensionHoverTimers(): void;
23
- export declare function clearAllChartInstanceList(table: BaseTableAPI, forceRelease?: boolean): void;
24
- export declare function isDisabledShowTooltipToAllChartInstances(): boolean;
25
- export declare function disableTooltipToAllChartInstances(): void;
26
- export declare function enableTooltipToAllChartInstances(): void;
13
+ export declare function clearChartInstanceListByRowDirection(row: number, excludedCol: number, table: BaseTableAPI): void;