@visactor/vtable-sheet 1.22.13-alpha.0 → 1.23.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 (177) hide show
  1. package/cjs/components/sheet-tab-event-handler.js +1 -1
  2. package/cjs/components/sheet-tab-event-handler.js.map +1 -1
  3. package/cjs/components/vtable-sheet.d.ts +18 -12
  4. package/cjs/components/vtable-sheet.js +77 -48
  5. package/cjs/components/vtable-sheet.js.map +1 -1
  6. package/cjs/core/WorkSheet.d.ts +12 -7
  7. package/cjs/core/WorkSheet.js +38 -67
  8. package/cjs/core/WorkSheet.js.map +1 -1
  9. package/cjs/core/table-plugins.d.ts +1 -1
  10. package/cjs/core/table-plugins.js +45 -24
  11. package/cjs/core/table-plugins.js.map +1 -1
  12. package/cjs/event/base-event-manager.d.ts +21 -0
  13. package/cjs/event/base-event-manager.js +58 -0
  14. package/cjs/event/base-event-manager.js.map +1 -0
  15. package/cjs/event/dom-event-manager.d.ts +10 -0
  16. package/cjs/event/dom-event-manager.js +31 -0
  17. package/cjs/event/dom-event-manager.js.map +1 -0
  18. package/cjs/event/event-interfaces.d.ts +46 -0
  19. package/cjs/event/event-interfaces.js +6 -0
  20. package/cjs/event/event-interfaces.js.map +1 -0
  21. package/cjs/event/event-performance.d.ts +20 -0
  22. package/cjs/event/event-performance.js +94 -0
  23. package/cjs/event/event-performance.js.map +1 -0
  24. package/cjs/event/event-validator.d.ts +10 -0
  25. package/cjs/event/event-validator.js +78 -0
  26. package/cjs/event/event-validator.js.map +1 -0
  27. package/cjs/event/formula-event-utils.d.ts +30 -0
  28. package/cjs/event/formula-event-utils.js +69 -0
  29. package/cjs/event/formula-event-utils.js.map +1 -0
  30. package/cjs/event/index.d.ts +9 -0
  31. package/cjs/event/index.js +78 -0
  32. package/cjs/event/index.js.map +1 -0
  33. package/cjs/event/spreadsheet-event-manager.d.ts +27 -0
  34. package/cjs/event/spreadsheet-event-manager.js +143 -0
  35. package/cjs/event/spreadsheet-event-manager.js.map +1 -0
  36. package/cjs/event/table-event-relay.d.ts +30 -0
  37. package/cjs/event/table-event-relay.js +105 -0
  38. package/cjs/event/table-event-relay.js.map +1 -0
  39. package/cjs/event/vtable-sheet-event-bus.d.ts +23 -0
  40. package/cjs/event/vtable-sheet-event-bus.js +75 -0
  41. package/cjs/event/vtable-sheet-event-bus.js.map +1 -0
  42. package/cjs/event/worksheet-event-manager.d.ts +28 -0
  43. package/cjs/event/worksheet-event-manager.js +82 -0
  44. package/cjs/event/worksheet-event-manager.js.map +1 -0
  45. package/cjs/formula/formula-engine.js +7 -4
  46. package/cjs/formula/formula-engine.js.map +1 -1
  47. package/cjs/formula/formula-range-selector.d.ts +3 -3
  48. package/cjs/formula/formula-range-selector.js +4 -4
  49. package/cjs/formula/formula-range-selector.js.map +1 -1
  50. package/cjs/formula/index.js +1 -2
  51. package/cjs/index.d.ts +1 -1
  52. package/cjs/index.js +1 -1
  53. package/cjs/index.js.map +1 -1
  54. package/cjs/managers/formula-manager.d.ts +1 -0
  55. package/cjs/managers/formula-manager.js +33 -2
  56. package/cjs/managers/formula-manager.js.map +1 -1
  57. package/cjs/managers/menu-manager.d.ts +2 -0
  58. package/cjs/managers/menu-manager.js +32 -7
  59. package/cjs/managers/menu-manager.js.map +1 -1
  60. package/cjs/managers/sheet-manager.d.ts +4 -1
  61. package/cjs/managers/sheet-manager.js +40 -5
  62. package/cjs/managers/sheet-manager.js.map +1 -1
  63. package/cjs/managers/tab-drag-manager.js +2 -2
  64. package/cjs/managers/tab-drag-manager.js.map +1 -1
  65. package/cjs/sheet-helper.d.ts +11 -12
  66. package/cjs/sheet-helper.js +18 -23
  67. package/cjs/sheet-helper.js.map +1 -1
  68. package/cjs/styles/sheet-tab.js +2 -1
  69. package/cjs/ts-types/formula.js +1 -2
  70. package/cjs/ts-types/index.d.ts +1 -1
  71. package/cjs/ts-types/index.js +3 -3
  72. package/cjs/ts-types/index.js.map +1 -1
  73. package/cjs/ts-types/spreadsheet-events.d.ts +195 -0
  74. package/cjs/ts-types/spreadsheet-events.js +26 -0
  75. package/cjs/ts-types/spreadsheet-events.js.map +1 -0
  76. package/dist/vtable-sheet.js +1240 -366
  77. package/dist/vtable-sheet.min.js +1 -1
  78. package/es/components/sheet-tab-event-handler.js +1 -1
  79. package/es/components/sheet-tab-event-handler.js.map +1 -1
  80. package/es/components/vtable-sheet.d.ts +18 -12
  81. package/es/components/vtable-sheet.js +84 -51
  82. package/es/components/vtable-sheet.js.map +1 -1
  83. package/es/core/WorkSheet.d.ts +12 -7
  84. package/es/core/WorkSheet.js +38 -69
  85. package/es/core/WorkSheet.js.map +1 -1
  86. package/es/core/table-plugins.d.ts +1 -1
  87. package/es/core/table-plugins.js +45 -24
  88. package/es/core/table-plugins.js.map +1 -1
  89. package/es/event/base-event-manager.d.ts +21 -0
  90. package/es/event/base-event-manager.js +52 -0
  91. package/es/event/base-event-manager.js.map +1 -0
  92. package/es/event/dom-event-manager.d.ts +10 -0
  93. package/es/event/dom-event-manager.js +23 -0
  94. package/es/event/dom-event-manager.js.map +1 -0
  95. package/es/event/event-interfaces.d.ts +46 -0
  96. package/es/event/event-interfaces.js +2 -0
  97. package/es/event/event-interfaces.js.map +1 -0
  98. package/es/event/event-performance.d.ts +20 -0
  99. package/es/event/event-performance.js +86 -0
  100. package/es/event/event-performance.js.map +1 -0
  101. package/es/event/event-validator.d.ts +10 -0
  102. package/es/event/event-validator.js +70 -0
  103. package/es/event/event-validator.js.map +1 -0
  104. package/es/event/formula-event-utils.d.ts +30 -0
  105. package/es/event/formula-event-utils.js +61 -0
  106. package/es/event/formula-event-utils.js.map +1 -0
  107. package/es/event/index.d.ts +9 -0
  108. package/es/event/index.js +16 -0
  109. package/es/event/index.js.map +1 -0
  110. package/es/event/spreadsheet-event-manager.d.ts +27 -0
  111. package/es/event/spreadsheet-event-manager.js +137 -0
  112. package/es/event/spreadsheet-event-manager.js.map +1 -0
  113. package/es/event/table-event-relay.d.ts +30 -0
  114. package/es/event/table-event-relay.js +97 -0
  115. package/es/event/table-event-relay.js.map +1 -0
  116. package/es/event/vtable-sheet-event-bus.d.ts +23 -0
  117. package/es/event/vtable-sheet-event-bus.js +67 -0
  118. package/es/event/vtable-sheet-event-bus.js.map +1 -0
  119. package/es/event/worksheet-event-manager.d.ts +28 -0
  120. package/es/event/worksheet-event-manager.js +76 -0
  121. package/es/event/worksheet-event-manager.js.map +1 -0
  122. package/es/formula/formula-engine.js +7 -4
  123. package/es/formula/formula-engine.js.map +1 -1
  124. package/es/formula/formula-range-selector.d.ts +3 -3
  125. package/es/formula/formula-range-selector.js +5 -3
  126. package/es/formula/formula-range-selector.js.map +1 -1
  127. package/es/formula/index.js +1 -2
  128. package/es/index.d.ts +1 -1
  129. package/es/index.js +1 -1
  130. package/es/index.js.map +1 -1
  131. package/es/managers/formula-manager.d.ts +1 -0
  132. package/es/managers/formula-manager.js +33 -2
  133. package/es/managers/formula-manager.js.map +1 -1
  134. package/es/managers/menu-manager.d.ts +2 -0
  135. package/es/managers/menu-manager.js +32 -7
  136. package/es/managers/menu-manager.js.map +1 -1
  137. package/es/managers/sheet-manager.d.ts +4 -1
  138. package/es/managers/sheet-manager.js +39 -5
  139. package/es/managers/sheet-manager.js.map +1 -1
  140. package/es/managers/tab-drag-manager.js +2 -2
  141. package/es/managers/tab-drag-manager.js.map +1 -1
  142. package/es/sheet-helper.d.ts +11 -12
  143. package/es/sheet-helper.js +13 -16
  144. package/es/sheet-helper.js.map +1 -1
  145. package/es/styles/sheet-tab.js +2 -1
  146. package/es/ts-types/formula.js +1 -2
  147. package/es/ts-types/index.d.ts +1 -1
  148. package/es/ts-types/index.js +2 -2
  149. package/es/ts-types/index.js.map +1 -1
  150. package/es/ts-types/spreadsheet-events.d.ts +195 -0
  151. package/es/ts-types/spreadsheet-events.js +23 -0
  152. package/es/ts-types/spreadsheet-events.js.map +1 -0
  153. package/package.json +5 -5
  154. package/cjs/event/event-manager.d.ts +0 -28
  155. package/cjs/event/event-manager.js +0 -62
  156. package/cjs/event/event-manager.js.map +0 -1
  157. package/cjs/event/event-target.d.ts +0 -12
  158. package/cjs/event/event-target.js +0 -50
  159. package/cjs/event/event-target.js.map +0 -1
  160. package/cjs/ts-types/event.d.ts +0 -90
  161. package/cjs/ts-types/event.js +0 -11
  162. package/cjs/ts-types/event.js.map +0 -1
  163. package/cjs/ts-types/events.d.ts +0 -1
  164. package/cjs/ts-types/events.js +0 -1
  165. package/cjs/ts-types/events.js.map +0 -1
  166. package/es/event/event-manager.d.ts +0 -28
  167. package/es/event/event-manager.js +0 -54
  168. package/es/event/event-manager.js.map +0 -1
  169. package/es/event/event-target.d.ts +0 -12
  170. package/es/event/event-target.js +0 -42
  171. package/es/event/event-target.js.map +0 -1
  172. package/es/ts-types/event.d.ts +0 -90
  173. package/es/ts-types/event.js +0 -7
  174. package/es/ts-types/event.js.map +0 -1
  175. package/es/ts-types/events.d.ts +0 -1
  176. package/es/ts-types/events.js +0 -1
  177. package/es/ts-types/events.js.map +0 -1
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.WorkSheetEventManager = void 0;
6
+
7
+ const spreadsheet_events_1 = require("../ts-types/spreadsheet-events"), base_event_manager_1 = require("./base-event-manager");
8
+
9
+ class WorkSheetEventManager extends base_event_manager_1.BaseEventManager {
10
+ constructor(worksheet) {
11
+ super(worksheet.getEventBus()), this.worksheet = worksheet;
12
+ }
13
+ getEventTypes() {
14
+ return Array.from(spreadsheet_events_1.WORKSHEET_EVENT_TYPES);
15
+ }
16
+ on(type, callback) {
17
+ this.eventBus.on(type, callback);
18
+ }
19
+ off(type, callback) {
20
+ callback ? this.eventBus.off(type, callback) : this.eventBus.off(type);
21
+ }
22
+ emit(type, event) {
23
+ this.eventBus.emit(type, event);
24
+ }
25
+ emitFormulaCalculateStart(formulaCount) {
26
+ const event = {
27
+ sheetKey: this.worksheet.sheetKey,
28
+ formulaCount: formulaCount
29
+ };
30
+ this.emit(spreadsheet_events_1.VTableSheetEventType.FORMULA_CALCULATE_START, event);
31
+ }
32
+ emitFormulaCalculateEnd(formulaCount, duration) {
33
+ const event = {
34
+ sheetKey: this.worksheet.sheetKey,
35
+ formulaCount: formulaCount,
36
+ duration: duration
37
+ };
38
+ this.emit(spreadsheet_events_1.VTableSheetEventType.FORMULA_CALCULATE_END, event);
39
+ }
40
+ emitFormulaError(cell, formula, error) {
41
+ const event = {
42
+ sheetKey: this.worksheet.sheetKey,
43
+ cell: cell,
44
+ formula: formula,
45
+ error: error
46
+ };
47
+ this.emit(spreadsheet_events_1.VTableSheetEventType.FORMULA_ERROR, event);
48
+ }
49
+ emitFormulaDependencyChanged() {
50
+ const event = {
51
+ sheetKey: this.worksheet.sheetKey
52
+ };
53
+ this.emit(spreadsheet_events_1.VTableSheetEventType.FORMULA_DEPENDENCY_CHANGED, event);
54
+ }
55
+ emitFormulaAdded(cell, formula) {
56
+ const event = {
57
+ sheetKey: this.worksheet.sheetKey,
58
+ cell: cell,
59
+ formula: formula
60
+ };
61
+ this.emit(spreadsheet_events_1.VTableSheetEventType.FORMULA_ADDED, event);
62
+ }
63
+ emitFormulaRemoved(cell, formula) {
64
+ const event = {
65
+ sheetKey: this.worksheet.sheetKey,
66
+ cell: cell,
67
+ formula: formula
68
+ };
69
+ this.emit(spreadsheet_events_1.VTableSheetEventType.FORMULA_REMOVED, event);
70
+ }
71
+ emitDataLoaded(rowCount, colCount) {
72
+ const event = {
73
+ sheetKey: this.worksheet.sheetKey,
74
+ rowCount: rowCount,
75
+ colCount: colCount
76
+ };
77
+ this.emit(spreadsheet_events_1.VTableSheetEventType.DATA_LOADED, event);
78
+ }
79
+ }
80
+
81
+ exports.WorkSheetEventManager = WorkSheetEventManager;
82
+ //# sourceMappingURL=worksheet-event-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/event/worksheet-event-manager.ts"],"names":[],"mappings":"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","file":"worksheet-event-manager.js","sourcesContent":["/**\n * WorkSheet 层事件管理器\n * 管理工作表级别的状态和操作事件\n */\n\nimport {\n VTableSheetEventType,\n WORKSHEET_EVENT_TYPES,\n type WorkSheetEventMap,\n type SheetActivatedEvent,\n type SheetResizedEvent,\n type FormulaCalculateEvent,\n type FormulaErrorEvent,\n type FormulaChangeEvent,\n type FormulaDependencyChangedEvent,\n type DataLoadedEvent,\n type DataSortedEvent,\n type DataFilteredEvent,\n type RangeDataChangedEvent\n} from '../ts-types/spreadsheet-events';\nimport { BaseEventManager } from './base-event-manager';\nimport type { IWorksheetEventSource } from './event-interfaces';\n\n/**\n * WorkSheet 事件管理器\n * 负责管理 WorkSheet 层的事件监听和触发\n */\nexport class WorkSheetEventManager extends BaseEventManager<WorkSheetEventMap> {\n /** 关联的 WorkSheet 实例 */\n private worksheet: IWorksheetEventSource;\n\n constructor(worksheet: IWorksheetEventSource) {\n super(worksheet.getEventBus());\n this.worksheet = worksheet;\n }\n\n /**\n * 获取事件类型列表\n * 使用集中化的事件定义,新增事件只需要修改 spreadsheet-events.ts 文件\n */\n protected getEventTypes(): string[] {\n return Array.from(WORKSHEET_EVENT_TYPES);\n }\n\n /**\n * 注册 WorkSheet 事件监听器\n */\n on<K extends keyof WorkSheetEventMap>(type: K, callback: (event: WorkSheetEventMap[K]) => void): void {\n this.eventBus.on(type, callback);\n }\n\n /**\n * 移除 WorkSheet 事件监听器\n */\n off<K extends keyof WorkSheetEventMap>(type: K, callback?: (event: WorkSheetEventMap[K]) => void): void {\n if (callback) {\n this.eventBus.off(type, callback);\n } else {\n // 移除该类型的所有监听器\n this.eventBus.off(type);\n }\n }\n\n /**\n * 触发 WorkSheet 事件\n */\n emit<K extends keyof WorkSheetEventMap>(type: K, event: WorkSheetEventMap[K]): void {\n this.eventBus.emit(type, event);\n }\n\n // 注意:工作表管理事件(SHEET_ADDED, SHEET_REMOVED, SHEET_RENAMED, SHEET_MOVED)\n // 现在只在 SpreadSheet 层级处理,不在 WorkSheet 层级重复定义\n\n /**\n * 触发公式计算开始事件\n */\n emitFormulaCalculateStart(formulaCount?: number): void {\n const event: FormulaCalculateEvent = {\n sheetKey: this.worksheet.sheetKey,\n formulaCount\n };\n this.emit(VTableSheetEventType.FORMULA_CALCULATE_START, event);\n }\n\n /**\n * 触发公式计算结束事件\n */\n emitFormulaCalculateEnd(formulaCount?: number, duration?: number): void {\n const event: FormulaCalculateEvent = {\n sheetKey: this.worksheet.sheetKey,\n formulaCount,\n duration\n };\n this.emit(VTableSheetEventType.FORMULA_CALCULATE_END, event);\n }\n\n /**\n * 触发公式错误事件\n */\n emitFormulaError(cell: { row: number; col: number; sheet: string }, formula: string, error: string | Error): void {\n const event: FormulaErrorEvent = {\n sheetKey: this.worksheet.sheetKey,\n cell,\n formula,\n error\n };\n this.emit(VTableSheetEventType.FORMULA_ERROR, event);\n }\n\n /**\n * 触发公式依赖关系改变事件\n */\n emitFormulaDependencyChanged(): void {\n const event: FormulaDependencyChangedEvent = {\n sheetKey: this.worksheet.sheetKey\n };\n this.emit(VTableSheetEventType.FORMULA_DEPENDENCY_CHANGED, event);\n }\n\n /**\n * 触发公式添加事件\n */\n emitFormulaAdded(cell: { row: number; col: number }, formula?: string): void {\n const event: FormulaChangeEvent = {\n sheetKey: this.worksheet.sheetKey,\n cell,\n formula\n };\n this.emit(VTableSheetEventType.FORMULA_ADDED, event);\n }\n\n /**\n * 触发公式移除事件\n */\n emitFormulaRemoved(cell: { row: number; col: number }, formula?: string): void {\n const event: FormulaChangeEvent = {\n sheetKey: this.worksheet.sheetKey,\n cell,\n formula\n };\n this.emit(VTableSheetEventType.FORMULA_REMOVED, event);\n }\n\n /**\n * 触发数据加载完成事件\n */\n emitDataLoaded(rowCount: number, colCount: number): void {\n const event: DataLoadedEvent = {\n sheetKey: this.worksheet.sheetKey,\n rowCount,\n colCount\n };\n this.emit(VTableSheetEventType.DATA_LOADED, event);\n }\n}\n"]}
@@ -95,11 +95,13 @@ class FormulaEngine {
95
95
  const numericValue = Number(processedValue);
96
96
  isNaN(numericValue) || "" === processedValue.trim() || (processedValue = numericValue);
97
97
  }
98
- if (sheet[cell.row][cell.col] = processedValue, "string" == typeof processedValue && processedValue.startsWith("=")) {
99
- const cellKey = this.getCellKey(cell), correctedFormula = this.correctFormulaCase(processedValue);
98
+ sheet[cell.row][cell.col] = processedValue;
99
+ const cellKey = this.getCellKey(cell), hasExistingFormula = this.formulaCells.has(cellKey);
100
+ if ("string" == typeof processedValue && processedValue.startsWith("=")) {
101
+ const correctedFormula = this.correctFormulaCase(processedValue);
100
102
  this.formulaCells.set(cellKey, correctedFormula), this.updateDependencies(cellKey, correctedFormula),
101
103
  sheet[cell.row][cell.col] = correctedFormula;
102
- }
104
+ } else hasExistingFormula && (this.formulaCells.delete(cellKey), this.updateDependencies(cellKey, ""));
103
105
  this.recalculateDependents(cell);
104
106
  }
105
107
  getCellKey(cell) {
@@ -1591,4 +1593,5 @@ class FormulaError {
1591
1593
  constructor(message, type = "VALUE") {
1592
1594
  this.message = message, this.type = type;
1593
1595
  }
1594
- }
1596
+ }
1597
+ //# sourceMappingURL=formula-engine.js.map