@ricsam/formula-engine 0.0.16 → 0.0.18

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 (122) hide show
  1. package/dist/cjs/core/api/api-builder.cjs +67 -0
  2. package/dist/cjs/core/api/api-builder.cjs.map +10 -0
  3. package/dist/cjs/core/api/api-helpers.cjs +191 -0
  4. package/dist/cjs/core/api/api-helpers.cjs.map +10 -0
  5. package/dist/cjs/core/api/api.cjs +65 -0
  6. package/dist/cjs/core/api/api.cjs.map +10 -0
  7. package/dist/cjs/core/api/cell-orm.cjs +80 -0
  8. package/dist/cjs/core/api/cell-orm.cjs.map +10 -0
  9. package/dist/cjs/core/api/table-orm.cjs +171 -0
  10. package/dist/cjs/core/api/table-orm.cjs.map +10 -0
  11. package/dist/cjs/core/autofill-utils.cjs +75 -39
  12. package/dist/cjs/core/autofill-utils.cjs.map +3 -3
  13. package/dist/cjs/core/cell-mover.cjs +178 -0
  14. package/dist/cjs/core/cell-mover.cjs.map +10 -0
  15. package/dist/cjs/core/commands/command-executor.cjs +140 -0
  16. package/dist/cjs/core/commands/command-executor.cjs.map +10 -0
  17. package/dist/cjs/core/commands/content-commands.cjs +574 -0
  18. package/dist/cjs/core/commands/content-commands.cjs.map +10 -0
  19. package/dist/cjs/core/commands/index.cjs +95 -0
  20. package/dist/cjs/core/commands/index.cjs.map +10 -0
  21. package/dist/cjs/core/commands/metadata-commands.cjs +150 -0
  22. package/dist/cjs/core/commands/metadata-commands.cjs.map +10 -0
  23. package/dist/cjs/core/commands/named-expression-commands.cjs +238 -0
  24. package/dist/cjs/core/commands/named-expression-commands.cjs.map +10 -0
  25. package/dist/cjs/core/commands/structure-commands.cjs +495 -0
  26. package/dist/cjs/core/commands/structure-commands.cjs.map +10 -0
  27. package/dist/cjs/core/commands/style-commands.cjs +219 -0
  28. package/dist/cjs/core/commands/style-commands.cjs.map +10 -0
  29. package/dist/cjs/core/commands/table-commands.cjs +226 -0
  30. package/dist/cjs/core/commands/table-commands.cjs.map +10 -0
  31. package/dist/cjs/core/commands/types.cjs +72 -0
  32. package/dist/cjs/core/commands/types.cjs.map +10 -0
  33. package/dist/cjs/core/engine.cjs +218 -263
  34. package/dist/cjs/core/engine.cjs.map +3 -3
  35. package/dist/cjs/core/managers/api-schema-manager.cjs +304 -0
  36. package/dist/cjs/core/managers/api-schema-manager.cjs.map +10 -0
  37. package/dist/cjs/core/managers/copy-manager.cjs +336 -82
  38. package/dist/cjs/core/managers/copy-manager.cjs.map +3 -3
  39. package/dist/cjs/core/managers/reference-manager.cjs +124 -0
  40. package/dist/cjs/core/managers/reference-manager.cjs.map +10 -0
  41. package/dist/cjs/core/managers/style-manager.cjs +115 -147
  42. package/dist/cjs/core/managers/style-manager.cjs.map +3 -3
  43. package/dist/cjs/core/managers/workbook-manager.cjs +87 -3
  44. package/dist/cjs/core/managers/workbook-manager.cjs.map +3 -3
  45. package/dist/cjs/core/types.cjs.map +1 -1
  46. package/dist/cjs/lib.cjs +13 -2
  47. package/dist/cjs/lib.cjs.map +3 -3
  48. package/dist/cjs/package.json +1 -1
  49. package/dist/mjs/core/api/api-builder.mjs +37 -0
  50. package/dist/mjs/core/api/api-builder.mjs.map +10 -0
  51. package/dist/mjs/core/api/api-helpers.mjs +161 -0
  52. package/dist/mjs/core/api/api-helpers.mjs.map +10 -0
  53. package/dist/mjs/core/api/api.mjs +35 -0
  54. package/dist/mjs/core/api/api.mjs.map +10 -0
  55. package/dist/mjs/core/api/cell-orm.mjs +49 -0
  56. package/dist/mjs/core/api/cell-orm.mjs.map +10 -0
  57. package/dist/mjs/core/api/table-orm.mjs +148 -0
  58. package/dist/mjs/core/api/table-orm.mjs.map +10 -0
  59. package/dist/mjs/core/autofill-utils.mjs +75 -39
  60. package/dist/mjs/core/autofill-utils.mjs.map +3 -3
  61. package/dist/mjs/core/cell-mover.mjs +148 -0
  62. package/dist/mjs/core/cell-mover.mjs.map +10 -0
  63. package/dist/mjs/core/commands/command-executor.mjs +109 -0
  64. package/dist/mjs/core/commands/command-executor.mjs.map +10 -0
  65. package/dist/mjs/core/commands/content-commands.mjs +544 -0
  66. package/dist/mjs/core/commands/content-commands.mjs.map +10 -0
  67. package/dist/mjs/core/commands/index.mjs +87 -0
  68. package/dist/mjs/core/commands/index.mjs.map +10 -0
  69. package/dist/mjs/core/commands/metadata-commands.mjs +120 -0
  70. package/dist/mjs/core/commands/metadata-commands.mjs.map +10 -0
  71. package/dist/mjs/core/commands/named-expression-commands.mjs +208 -0
  72. package/dist/mjs/core/commands/named-expression-commands.mjs.map +10 -0
  73. package/dist/mjs/core/commands/structure-commands.mjs +465 -0
  74. package/dist/mjs/core/commands/structure-commands.mjs.map +10 -0
  75. package/dist/mjs/core/commands/style-commands.mjs +189 -0
  76. package/dist/mjs/core/commands/style-commands.mjs.map +10 -0
  77. package/dist/mjs/core/commands/table-commands.mjs +196 -0
  78. package/dist/mjs/core/commands/table-commands.mjs.map +10 -0
  79. package/dist/mjs/core/commands/types.mjs +42 -0
  80. package/dist/mjs/core/commands/types.mjs.map +10 -0
  81. package/dist/mjs/core/engine.mjs +253 -263
  82. package/dist/mjs/core/engine.mjs.map +3 -3
  83. package/dist/mjs/core/managers/api-schema-manager.mjs +274 -0
  84. package/dist/mjs/core/managers/api-schema-manager.mjs.map +10 -0
  85. package/dist/mjs/core/managers/copy-manager.mjs +338 -82
  86. package/dist/mjs/core/managers/copy-manager.mjs.map +3 -3
  87. package/dist/mjs/core/managers/reference-manager.mjs +93 -0
  88. package/dist/mjs/core/managers/reference-manager.mjs.map +10 -0
  89. package/dist/mjs/core/managers/style-manager.mjs +115 -147
  90. package/dist/mjs/core/managers/style-manager.mjs.map +3 -3
  91. package/dist/mjs/core/managers/workbook-manager.mjs +87 -3
  92. package/dist/mjs/core/managers/workbook-manager.mjs.map +3 -3
  93. package/dist/mjs/core/types.mjs.map +1 -1
  94. package/dist/mjs/lib.mjs +13 -2
  95. package/dist/mjs/lib.mjs.map +3 -3
  96. package/dist/mjs/package.json +1 -1
  97. package/dist/types/core/api/api-builder.d.ts +16 -0
  98. package/dist/types/core/api/api-helpers.d.ts +37 -0
  99. package/dist/types/core/api/api.d.ts +83 -0
  100. package/dist/types/core/api/api.type-test.d.ts +1 -0
  101. package/dist/types/core/api/cell-orm.d.ts +29 -0
  102. package/dist/types/core/api/table-orm.d.ts +46 -0
  103. package/dist/types/core/autofill-utils.d.ts +6 -9
  104. package/dist/types/core/cell-mover.d.ts +63 -0
  105. package/dist/types/core/commands/command-executor.d.ts +83 -0
  106. package/dist/types/core/commands/content-commands.d.ts +142 -0
  107. package/dist/types/core/commands/index.d.ts +16 -0
  108. package/dist/types/core/commands/metadata-commands.d.ts +55 -0
  109. package/dist/types/core/commands/named-expression-commands.d.ts +115 -0
  110. package/dist/types/core/commands/structure-commands.d.ts +132 -0
  111. package/dist/types/core/commands/style-commands.d.ts +76 -0
  112. package/dist/types/core/commands/table-commands.d.ts +104 -0
  113. package/dist/types/core/commands/types.d.ts +114 -0
  114. package/dist/types/core/engine.d.ts +241 -23
  115. package/dist/types/core/managers/api-schema-manager.d.ts +121 -0
  116. package/dist/types/core/managers/copy-manager.d.ts +47 -2
  117. package/dist/types/core/managers/reference-manager.d.ts +54 -0
  118. package/dist/types/core/managers/style-manager.d.ts +6 -6
  119. package/dist/types/core/managers/workbook-manager.d.ts +39 -1
  120. package/dist/types/core/types.d.ts +52 -11
  121. package/dist/types/lib.d.ts +8 -0
  122. package/package.json +1 -1
@@ -0,0 +1,95 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __reExport = (target, mod, secondTarget) => {
6
+ for (let key of __getOwnPropNames(mod))
7
+ if (!__hasOwnProp.call(target, key) && key !== "default")
8
+ __defProp(target, key, {
9
+ get: () => mod[key],
10
+ enumerable: true
11
+ });
12
+ if (secondTarget) {
13
+ for (let key of __getOwnPropNames(mod))
14
+ if (!__hasOwnProp.call(secondTarget, key) && key !== "default")
15
+ __defProp(secondTarget, key, {
16
+ get: () => mod[key],
17
+ enumerable: true
18
+ });
19
+ return secondTarget;
20
+ }
21
+ };
22
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
23
+ var __toCommonJS = (from) => {
24
+ var entry = __moduleCache.get(from), desc;
25
+ if (entry)
26
+ return entry;
27
+ entry = __defProp({}, "__esModule", { value: true });
28
+ if (from && typeof from === "object" || typeof from === "function")
29
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
30
+ get: () => from[key],
31
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
32
+ }));
33
+ __moduleCache.set(from, entry);
34
+ return entry;
35
+ };
36
+ var __export = (target, all) => {
37
+ for (var name in all)
38
+ __defProp(target, name, {
39
+ get: all[name],
40
+ enumerable: true,
41
+ configurable: true,
42
+ set: (newValue) => all[name] = () => newValue
43
+ });
44
+ };
45
+
46
+ // src/core/commands/index.ts
47
+ var exports_commands = {};
48
+ __export(exports_commands, {
49
+ UpdateTableCommand: () => import_table_commands.UpdateTableCommand,
50
+ UpdateNamedExpressionCommand: () => import_named_expression_commands.UpdateNamedExpressionCommand,
51
+ SetWorkbookMetadataCommand: () => import_metadata_commands.SetWorkbookMetadataCommand,
52
+ SetSheetMetadataCommand: () => import_metadata_commands.SetSheetMetadataCommand,
53
+ SetSheetContentCommand: () => import_content_commands.SetSheetContentCommand,
54
+ SetNamedExpressionsCommand: () => import_named_expression_commands.SetNamedExpressionsCommand,
55
+ SetCellMetadataCommand: () => import_metadata_commands.SetCellMetadataCommand,
56
+ SetCellContentCommand: () => import_content_commands.SetCellContentCommand,
57
+ SchemaIntegrityError: () => import_command_executor.SchemaIntegrityError,
58
+ ResetTablesCommand: () => import_table_commands.ResetTablesCommand,
59
+ RenameWorkbookCommand: () => import_structure_commands.RenameWorkbookCommand,
60
+ RenameTableCommand: () => import_table_commands.RenameTableCommand,
61
+ RenameSheetCommand: () => import_structure_commands.RenameSheetCommand,
62
+ RenameNamedExpressionCommand: () => import_named_expression_commands.RenameNamedExpressionCommand,
63
+ RemoveWorkbookCommand: () => import_structure_commands.RemoveWorkbookCommand,
64
+ RemoveTableCommand: () => import_table_commands.RemoveTableCommand,
65
+ RemoveSheetCommand: () => import_structure_commands.RemoveSheetCommand,
66
+ RemoveNamedExpressionCommand: () => import_named_expression_commands.RemoveNamedExpressionCommand,
67
+ RemoveConditionalStyleCommand: () => import_style_commands.RemoveConditionalStyleCommand,
68
+ RemoveCellStyleCommand: () => import_style_commands.RemoveCellStyleCommand,
69
+ PasteCellsCommand: () => import_content_commands.PasteCellsCommand,
70
+ MoveRangeCommand: () => import_content_commands.MoveRangeCommand,
71
+ MoveCellCommand: () => import_content_commands.MoveCellCommand,
72
+ FillAreasCommand: () => import_content_commands.FillAreasCommand,
73
+ CommandExecutor: () => import_command_executor.CommandExecutor,
74
+ CloneWorkbookCommand: () => import_structure_commands.CloneWorkbookCommand,
75
+ ClearRangeCommand: () => import_content_commands.ClearRangeCommand,
76
+ ClearCellStylesCommand: () => import_style_commands.ClearCellStylesCommand,
77
+ AutoFillCommand: () => import_content_commands.AutoFillCommand,
78
+ AddWorkbookCommand: () => import_structure_commands.AddWorkbookCommand,
79
+ AddTableCommand: () => import_table_commands.AddTableCommand,
80
+ AddSheetCommand: () => import_structure_commands.AddSheetCommand,
81
+ AddNamedExpressionCommand: () => import_named_expression_commands.AddNamedExpressionCommand,
82
+ AddConditionalStyleCommand: () => import_style_commands.AddConditionalStyleCommand,
83
+ AddCellStyleCommand: () => import_style_commands.AddCellStyleCommand
84
+ });
85
+ module.exports = __toCommonJS(exports_commands);
86
+ __reExport(exports_commands, require("./types.cjs"), module.exports);
87
+ var import_command_executor = require("./command-executor.cjs");
88
+ var import_content_commands = require("./content-commands.cjs");
89
+ var import_structure_commands = require("./structure-commands.cjs");
90
+ var import_table_commands = require("./table-commands.cjs");
91
+ var import_named_expression_commands = require("./named-expression-commands.cjs");
92
+ var import_metadata_commands = require("./metadata-commands.cjs");
93
+ var import_style_commands = require("./style-commands.cjs");
94
+
95
+ //# debugId=590D09E29D3CE9A564756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/core/commands/index.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Commands Module - Command Pattern implementation for FormulaEngine\n *\n * This module provides:\n * - EngineCommand interface for all commands\n * - CommandExecutor for execution with undo/redo and schema validation\n * - All command implementations organized by category\n */\n\n// Types and executor\nexport * from \"./types.cjs\";\nexport { CommandExecutor, SchemaIntegrityError } from \"./command-executor.cjs\";\n\n// Content commands\nexport {\n SetCellContentCommand,\n SetSheetContentCommand,\n ClearRangeCommand,\n PasteCellsCommand,\n FillAreasCommand,\n MoveCellCommand,\n MoveRangeCommand,\n AutoFillCommand,\n} from \"./content-commands.cjs\";\n\n// Structure commands\nexport {\n AddWorkbookCommand,\n RemoveWorkbookCommand,\n RenameWorkbookCommand,\n CloneWorkbookCommand,\n AddSheetCommand,\n RemoveSheetCommand,\n RenameSheetCommand,\n type StructureCommandDeps,\n} from \"./structure-commands.cjs\";\n\n// Table commands\nexport {\n AddTableCommand,\n RemoveTableCommand,\n RenameTableCommand,\n UpdateTableCommand,\n ResetTablesCommand,\n type TableCommandDeps,\n} from \"./table-commands.cjs\";\n\n// Named expression commands\nexport {\n AddNamedExpressionCommand,\n RemoveNamedExpressionCommand,\n UpdateNamedExpressionCommand,\n RenameNamedExpressionCommand,\n SetNamedExpressionsCommand,\n type NamedExpressionCommandDeps,\n} from \"./named-expression-commands.cjs\";\n\n// Metadata commands\nexport {\n SetCellMetadataCommand,\n SetSheetMetadataCommand,\n SetWorkbookMetadataCommand,\n} from \"./metadata-commands.cjs\";\n\n// Style commands\nexport {\n AddConditionalStyleCommand,\n RemoveConditionalStyleCommand,\n AddCellStyleCommand,\n RemoveCellStyleCommand,\n ClearCellStylesCommand,\n} from \"./style-commands.cjs\";\n\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA;AACsD,IAAtD;AAYO,IATP;AAqBO,IATP;AAmBO,IAPP;AAiBO,IAPP;AAcO,IAJP;AAaO,IANP;",
8
+ "debugId": "590D09E29D3CE9A564756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,150 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // src/core/commands/metadata-commands.ts
30
+ var exports_metadata_commands = {};
31
+ __export(exports_metadata_commands, {
32
+ SetWorkbookMetadataCommand: () => SetWorkbookMetadataCommand,
33
+ SetSheetMetadataCommand: () => SetSheetMetadataCommand,
34
+ SetCellMetadataCommand: () => SetCellMetadataCommand
35
+ });
36
+ module.exports = __toCommonJS(exports_metadata_commands);
37
+ var import_types = require("./types.cjs");
38
+ var import_utils = require("../utils.cjs");
39
+
40
+ class SetCellMetadataCommand {
41
+ workbookManager;
42
+ address;
43
+ newMetadata;
44
+ requiresReevaluation = false;
45
+ previousMetadata;
46
+ hadPreviousMetadata = false;
47
+ constructor(workbookManager, address, newMetadata) {
48
+ this.workbookManager = workbookManager;
49
+ this.address = address;
50
+ this.newMetadata = newMetadata;
51
+ }
52
+ execute() {
53
+ const sheet = this.workbookManager.getSheet({
54
+ workbookName: this.address.workbookName,
55
+ sheetName: this.address.sheetName
56
+ });
57
+ if (sheet) {
58
+ const key = import_utils.getCellReference(this.address);
59
+ this.hadPreviousMetadata = sheet.metadata.has(key);
60
+ this.previousMetadata = sheet.metadata.get(key);
61
+ }
62
+ this.workbookManager.setCellMetadata(this.address, this.newMetadata);
63
+ }
64
+ undo() {
65
+ if (this.hadPreviousMetadata) {
66
+ this.workbookManager.setCellMetadata(this.address, this.previousMetadata);
67
+ } else {
68
+ this.workbookManager.setCellMetadata(this.address, undefined);
69
+ }
70
+ }
71
+ toAction() {
72
+ return {
73
+ type: import_types.ActionTypes.SET_CELL_METADATA,
74
+ payload: {
75
+ address: this.address,
76
+ metadata: this.newMetadata
77
+ }
78
+ };
79
+ }
80
+ }
81
+
82
+ class SetSheetMetadataCommand {
83
+ workbookManager;
84
+ opts;
85
+ newMetadata;
86
+ requiresReevaluation = false;
87
+ previousMetadata;
88
+ constructor(workbookManager, opts, newMetadata) {
89
+ this.workbookManager = workbookManager;
90
+ this.opts = opts;
91
+ this.newMetadata = newMetadata;
92
+ }
93
+ execute() {
94
+ const sheet = this.workbookManager.getSheet(this.opts);
95
+ if (sheet) {
96
+ this.previousMetadata = sheet.sheetMetadata;
97
+ }
98
+ this.workbookManager.setSheetMetadata(this.opts, this.newMetadata);
99
+ }
100
+ undo() {
101
+ if (this.previousMetadata !== undefined) {
102
+ this.workbookManager.setSheetMetadata(this.opts, this.previousMetadata);
103
+ }
104
+ }
105
+ toAction() {
106
+ return {
107
+ type: import_types.ActionTypes.SET_SHEET_METADATA,
108
+ payload: {
109
+ opts: this.opts,
110
+ metadata: this.newMetadata
111
+ }
112
+ };
113
+ }
114
+ }
115
+
116
+ class SetWorkbookMetadataCommand {
117
+ workbookManager;
118
+ workbookName;
119
+ newMetadata;
120
+ requiresReevaluation = false;
121
+ previousMetadata;
122
+ constructor(workbookManager, workbookName, newMetadata) {
123
+ this.workbookManager = workbookManager;
124
+ this.workbookName = workbookName;
125
+ this.newMetadata = newMetadata;
126
+ }
127
+ execute() {
128
+ const workbook = this.workbookManager.getWorkbooks().get(this.workbookName);
129
+ if (workbook) {
130
+ this.previousMetadata = workbook.workbookMetadata;
131
+ }
132
+ this.workbookManager.setWorkbookMetadata(this.workbookName, this.newMetadata);
133
+ }
134
+ undo() {
135
+ if (this.previousMetadata !== undefined) {
136
+ this.workbookManager.setWorkbookMetadata(this.workbookName, this.previousMetadata);
137
+ }
138
+ }
139
+ toAction() {
140
+ return {
141
+ type: import_types.ActionTypes.SET_WORKBOOK_METADATA,
142
+ payload: {
143
+ workbookName: this.workbookName,
144
+ metadata: this.newMetadata
145
+ }
146
+ };
147
+ }
148
+ }
149
+
150
+ //# debugId=217C72C14F152C7664756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/core/commands/metadata-commands.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Metadata Commands - Commands that modify cell/sheet/workbook metadata\n *\n * These commands do NOT require re-evaluation after execution.\n * They only affect metadata, not cell values or formulas.\n */\n\nimport type { WorkbookManager } from \"../managers/workbook-manager.cjs\";\nimport type { CellAddress } from \"../types.cjs\";\nimport type { EngineCommand, EngineAction } from \"./types.cjs\";\nimport { ActionTypes } from \"./types.cjs\";\nimport { getCellReference } from \"../utils.cjs\";\n\n/**\n * Command to set cell metadata.\n */\nexport class SetCellMetadataCommand<TMetadata = unknown> implements EngineCommand {\n readonly requiresReevaluation = false;\n private previousMetadata: TMetadata | undefined;\n private hadPreviousMetadata = false;\n\n constructor(\n private workbookManager: WorkbookManager,\n private address: CellAddress,\n private newMetadata: TMetadata | undefined\n ) {}\n\n execute(): void {\n // Capture previous metadata\n const sheet = this.workbookManager.getSheet({\n workbookName: this.address.workbookName,\n sheetName: this.address.sheetName,\n });\n\n if (sheet) {\n const key = getCellReference(this.address);\n this.hadPreviousMetadata = sheet.metadata.has(key);\n this.previousMetadata = sheet.metadata.get(key) as TMetadata | undefined;\n }\n\n this.workbookManager.setCellMetadata(this.address, this.newMetadata);\n }\n\n undo(): void {\n if (this.hadPreviousMetadata) {\n this.workbookManager.setCellMetadata(this.address, this.previousMetadata);\n } else {\n this.workbookManager.setCellMetadata(this.address, undefined);\n }\n }\n\n toAction(): EngineAction {\n return {\n type: ActionTypes.SET_CELL_METADATA,\n payload: {\n address: this.address,\n metadata: this.newMetadata,\n },\n };\n }\n}\n\n/**\n * Command to set sheet metadata.\n */\nexport class SetSheetMetadataCommand<TMetadata = unknown> implements EngineCommand {\n readonly requiresReevaluation = false;\n private previousMetadata: TMetadata | undefined;\n\n constructor(\n private workbookManager: WorkbookManager,\n private opts: { workbookName: string; sheetName: string },\n private newMetadata: TMetadata\n ) {}\n\n execute(): void {\n // Capture previous metadata\n const sheet = this.workbookManager.getSheet(this.opts);\n if (sheet) {\n this.previousMetadata = sheet.sheetMetadata as TMetadata | undefined;\n }\n\n this.workbookManager.setSheetMetadata(this.opts, this.newMetadata);\n }\n\n undo(): void {\n if (this.previousMetadata !== undefined) {\n this.workbookManager.setSheetMetadata(this.opts, this.previousMetadata);\n }\n }\n\n toAction(): EngineAction {\n return {\n type: ActionTypes.SET_SHEET_METADATA,\n payload: {\n opts: this.opts,\n metadata: this.newMetadata,\n },\n };\n }\n}\n\n/**\n * Command to set workbook metadata.\n */\nexport class SetWorkbookMetadataCommand<TMetadata = unknown> implements EngineCommand {\n readonly requiresReevaluation = false;\n private previousMetadata: TMetadata | undefined;\n\n constructor(\n private workbookManager: WorkbookManager,\n private workbookName: string,\n private newMetadata: TMetadata\n ) {}\n\n execute(): void {\n // Capture previous metadata\n const workbook = this.workbookManager.getWorkbooks().get(this.workbookName);\n if (workbook) {\n this.previousMetadata = workbook.workbookMetadata as TMetadata | undefined;\n }\n\n this.workbookManager.setWorkbookMetadata(this.workbookName, this.newMetadata);\n }\n\n undo(): void {\n if (this.previousMetadata !== undefined) {\n this.workbookManager.setWorkbookMetadata(this.workbookName, this.previousMetadata);\n }\n }\n\n toAction(): EngineAction {\n return {\n type: ActionTypes.SET_WORKBOOK_METADATA,\n payload: {\n workbookName: this.workbookName,\n metadata: this.newMetadata,\n },\n };\n }\n}\n\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAU4B,IAA5B;AACiC,IAAjC;AAAA;AAKO,MAAM,uBAAqE;AAAA,EAMtE;AAAA,EACA;AAAA,EACA;AAAA,EAPD,uBAAuB;AAAA,EACxB;AAAA,EACA,sBAAsB;AAAA,EAE9B,WAAW,CACD,iBACA,SACA,aACR;AAAA,IAHQ;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAGV,OAAO,GAAS;AAAA,IAEd,MAAM,QAAQ,KAAK,gBAAgB,SAAS;AAAA,MAC1C,cAAc,KAAK,QAAQ;AAAA,MAC3B,WAAW,KAAK,QAAQ;AAAA,IAC1B,CAAC;AAAA,IAED,IAAI,OAAO;AAAA,MACT,MAAM,MAAM,8BAAiB,KAAK,OAAO;AAAA,MACzC,KAAK,sBAAsB,MAAM,SAAS,IAAI,GAAG;AAAA,MACjD,KAAK,mBAAmB,MAAM,SAAS,IAAI,GAAG;AAAA,IAChD;AAAA,IAEA,KAAK,gBAAgB,gBAAgB,KAAK,SAAS,KAAK,WAAW;AAAA;AAAA,EAGrE,IAAI,GAAS;AAAA,IACX,IAAI,KAAK,qBAAqB;AAAA,MAC5B,KAAK,gBAAgB,gBAAgB,KAAK,SAAS,KAAK,gBAAgB;AAAA,IAC1E,EAAO;AAAA,MACL,KAAK,gBAAgB,gBAAgB,KAAK,SAAS,SAAS;AAAA;AAAA;AAAA,EAIhE,QAAQ,GAAiB;AAAA,IACvB,OAAO;AAAA,MACL,MAAM,yBAAY;AAAA,MAClB,SAAS;AAAA,QACP,SAAS,KAAK;AAAA,QACd,UAAU,KAAK;AAAA,MACjB;AAAA,IACF;AAAA;AAEJ;AAAA;AAKO,MAAM,wBAAsE;AAAA,EAKvE;AAAA,EACA;AAAA,EACA;AAAA,EAND,uBAAuB;AAAA,EACxB;AAAA,EAER,WAAW,CACD,iBACA,MACA,aACR;AAAA,IAHQ;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAGV,OAAO,GAAS;AAAA,IAEd,MAAM,QAAQ,KAAK,gBAAgB,SAAS,KAAK,IAAI;AAAA,IACrD,IAAI,OAAO;AAAA,MACT,KAAK,mBAAmB,MAAM;AAAA,IAChC;AAAA,IAEA,KAAK,gBAAgB,iBAAiB,KAAK,MAAM,KAAK,WAAW;AAAA;AAAA,EAGnE,IAAI,GAAS;AAAA,IACX,IAAI,KAAK,qBAAqB,WAAW;AAAA,MACvC,KAAK,gBAAgB,iBAAiB,KAAK,MAAM,KAAK,gBAAgB;AAAA,IACxE;AAAA;AAAA,EAGF,QAAQ,GAAiB;AAAA,IACvB,OAAO;AAAA,MACL,MAAM,yBAAY;AAAA,MAClB,SAAS;AAAA,QACP,MAAM,KAAK;AAAA,QACX,UAAU,KAAK;AAAA,MACjB;AAAA,IACF;AAAA;AAEJ;AAAA;AAKO,MAAM,2BAAyE;AAAA,EAK1E;AAAA,EACA;AAAA,EACA;AAAA,EAND,uBAAuB;AAAA,EACxB;AAAA,EAER,WAAW,CACD,iBACA,cACA,aACR;AAAA,IAHQ;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAGV,OAAO,GAAS;AAAA,IAEd,MAAM,WAAW,KAAK,gBAAgB,aAAa,EAAE,IAAI,KAAK,YAAY;AAAA,IAC1E,IAAI,UAAU;AAAA,MACZ,KAAK,mBAAmB,SAAS;AAAA,IACnC;AAAA,IAEA,KAAK,gBAAgB,oBAAoB,KAAK,cAAc,KAAK,WAAW;AAAA;AAAA,EAG9E,IAAI,GAAS;AAAA,IACX,IAAI,KAAK,qBAAqB,WAAW;AAAA,MACvC,KAAK,gBAAgB,oBAAoB,KAAK,cAAc,KAAK,gBAAgB;AAAA,IACnF;AAAA;AAAA,EAGF,QAAQ,GAAiB;AAAA,IACvB,OAAO;AAAA,MACL,MAAM,yBAAY;AAAA,MAClB,SAAS;AAAA,QACP,cAAc,KAAK;AAAA,QACnB,UAAU,KAAK;AAAA,MACjB;AAAA,IACF;AAAA;AAEJ;",
8
+ "debugId": "217C72C14F152C7664756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,238 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __moduleCache = /* @__PURE__ */ new WeakMap;
6
+ var __toCommonJS = (from) => {
7
+ var entry = __moduleCache.get(from), desc;
8
+ if (entry)
9
+ return entry;
10
+ entry = __defProp({}, "__esModule", { value: true });
11
+ if (from && typeof from === "object" || typeof from === "function")
12
+ __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ }));
16
+ __moduleCache.set(from, entry);
17
+ return entry;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, {
22
+ get: all[name],
23
+ enumerable: true,
24
+ configurable: true,
25
+ set: (newValue) => all[name] = () => newValue
26
+ });
27
+ };
28
+
29
+ // src/core/commands/named-expression-commands.ts
30
+ var exports_named_expression_commands = {};
31
+ __export(exports_named_expression_commands, {
32
+ UpdateNamedExpressionCommand: () => UpdateNamedExpressionCommand,
33
+ SetNamedExpressionsCommand: () => SetNamedExpressionsCommand,
34
+ RenameNamedExpressionCommand: () => RenameNamedExpressionCommand,
35
+ RemoveNamedExpressionCommand: () => RemoveNamedExpressionCommand,
36
+ AddNamedExpressionCommand: () => AddNamedExpressionCommand
37
+ });
38
+ module.exports = __toCommonJS(exports_named_expression_commands);
39
+ var import_types = require("./types.cjs");
40
+ function optsToScope(opts) {
41
+ if (opts.sheetName && opts.workbookName) {
42
+ return {
43
+ name: opts.expressionName,
44
+ scope: {
45
+ type: "sheet",
46
+ workbookName: opts.workbookName,
47
+ sheetName: opts.sheetName
48
+ }
49
+ };
50
+ } else if (opts.workbookName) {
51
+ return {
52
+ name: opts.expressionName,
53
+ scope: { type: "workbook", workbookName: opts.workbookName }
54
+ };
55
+ } else {
56
+ return {
57
+ name: opts.expressionName,
58
+ scope: { type: "global" }
59
+ };
60
+ }
61
+ }
62
+
63
+ class AddNamedExpressionCommand {
64
+ deps;
65
+ opts;
66
+ requiresReevaluation = true;
67
+ constructor(deps, opts) {
68
+ this.deps = deps;
69
+ this.opts = opts;
70
+ }
71
+ execute() {
72
+ this.deps.namedExpressionManager.addNamedExpression(this.opts);
73
+ }
74
+ undo() {
75
+ this.deps.namedExpressionManager.removeNamedExpression({
76
+ expressionName: this.opts.expressionName,
77
+ sheetName: this.opts.sheetName,
78
+ workbookName: this.opts.workbookName
79
+ });
80
+ }
81
+ toAction() {
82
+ return {
83
+ type: import_types.ActionTypes.ADD_NAMED_EXPRESSION,
84
+ payload: this.opts
85
+ };
86
+ }
87
+ }
88
+
89
+ class RemoveNamedExpressionCommand {
90
+ deps;
91
+ opts;
92
+ requiresReevaluation = true;
93
+ removedExpression;
94
+ constructor(deps, opts) {
95
+ this.deps = deps;
96
+ this.opts = opts;
97
+ }
98
+ execute() {
99
+ this.removedExpression = this.deps.namedExpressionManager.getNamedExpression(optsToScope(this.opts));
100
+ this.deps.namedExpressionManager.removeNamedExpression(this.opts);
101
+ }
102
+ undo() {
103
+ if (!this.removedExpression)
104
+ return;
105
+ this.deps.namedExpressionManager.addNamedExpression({
106
+ expressionName: this.removedExpression.name,
107
+ expression: this.removedExpression.expression,
108
+ sheetName: this.opts.sheetName,
109
+ workbookName: this.opts.workbookName
110
+ });
111
+ }
112
+ toAction() {
113
+ return {
114
+ type: import_types.ActionTypes.REMOVE_NAMED_EXPRESSION,
115
+ payload: this.opts
116
+ };
117
+ }
118
+ }
119
+
120
+ class UpdateNamedExpressionCommand {
121
+ deps;
122
+ opts;
123
+ requiresReevaluation = true;
124
+ previousExpression;
125
+ constructor(deps, opts) {
126
+ this.deps = deps;
127
+ this.opts = opts;
128
+ }
129
+ execute() {
130
+ const existing = this.deps.namedExpressionManager.getNamedExpression(optsToScope(this.opts));
131
+ this.previousExpression = existing?.expression;
132
+ this.deps.namedExpressionManager.updateNamedExpression(this.opts);
133
+ }
134
+ undo() {
135
+ if (this.previousExpression === undefined)
136
+ return;
137
+ this.deps.namedExpressionManager.updateNamedExpression({
138
+ expressionName: this.opts.expressionName,
139
+ expression: this.previousExpression,
140
+ sheetName: this.opts.sheetName,
141
+ workbookName: this.opts.workbookName
142
+ });
143
+ }
144
+ toAction() {
145
+ return {
146
+ type: import_types.ActionTypes.UPDATE_NAMED_EXPRESSION,
147
+ payload: this.opts
148
+ };
149
+ }
150
+ }
151
+
152
+ class RenameNamedExpressionCommand {
153
+ deps;
154
+ opts;
155
+ requiresReevaluation = true;
156
+ constructor(deps, opts) {
157
+ this.deps = deps;
158
+ this.opts = opts;
159
+ }
160
+ execute() {
161
+ this.deps.namedExpressionManager.renameNamedExpression(this.opts);
162
+ this.deps.workbookManager.updateAllFormulas((formula) => this.deps.renameNamedExpressionInFormula(formula, this.opts.expressionName, this.opts.newName));
163
+ this.deps.namedExpressionManager.updateAllNamedExpressions((formula) => this.deps.renameNamedExpressionInFormula(formula, this.opts.expressionName, this.opts.newName));
164
+ }
165
+ undo() {
166
+ this.deps.namedExpressionManager.renameNamedExpression({
167
+ expressionName: this.opts.newName,
168
+ sheetName: this.opts.sheetName,
169
+ workbookName: this.opts.workbookName,
170
+ newName: this.opts.expressionName
171
+ });
172
+ this.deps.workbookManager.updateAllFormulas((formula) => this.deps.renameNamedExpressionInFormula(formula, this.opts.newName, this.opts.expressionName));
173
+ this.deps.namedExpressionManager.updateAllNamedExpressions((formula) => this.deps.renameNamedExpressionInFormula(formula, this.opts.newName, this.opts.expressionName));
174
+ }
175
+ toAction() {
176
+ return {
177
+ type: import_types.ActionTypes.RENAME_NAMED_EXPRESSION,
178
+ payload: this.opts
179
+ };
180
+ }
181
+ }
182
+
183
+ class SetNamedExpressionsCommand {
184
+ deps;
185
+ opts;
186
+ requiresReevaluation = true;
187
+ previousExpressions;
188
+ constructor(deps, opts) {
189
+ this.deps = deps;
190
+ this.opts = opts;
191
+ }
192
+ execute() {
193
+ const allExpressions = this.deps.namedExpressionManager.getNamedExpressions();
194
+ if (this.opts.type === "global") {
195
+ this.previousExpressions = new Map(allExpressions.globalExpressions);
196
+ } else if (this.opts.type === "workbook") {
197
+ this.previousExpressions = new Map(allExpressions.workbookExpressions.get(this.opts.workbookName) || []);
198
+ } else if (this.opts.type === "sheet") {
199
+ const sheetExpressions = allExpressions.sheetExpressions.get(this.opts.workbookName)?.get(this.opts.sheetName);
200
+ this.previousExpressions = new Map(sheetExpressions || []);
201
+ }
202
+ this.deps.namedExpressionManager.setNamedExpressions(this.opts);
203
+ }
204
+ undo() {
205
+ if (!this.previousExpressions)
206
+ return;
207
+ if (this.opts.type === "global") {
208
+ this.deps.namedExpressionManager.setNamedExpressions({
209
+ type: "global",
210
+ expressions: this.previousExpressions
211
+ });
212
+ } else if (this.opts.type === "workbook") {
213
+ this.deps.namedExpressionManager.setNamedExpressions({
214
+ type: "workbook",
215
+ workbookName: this.opts.workbookName,
216
+ expressions: this.previousExpressions
217
+ });
218
+ } else if (this.opts.type === "sheet") {
219
+ this.deps.namedExpressionManager.setNamedExpressions({
220
+ type: "sheet",
221
+ workbookName: this.opts.workbookName,
222
+ sheetName: this.opts.sheetName,
223
+ expressions: this.previousExpressions
224
+ });
225
+ }
226
+ }
227
+ toAction() {
228
+ return {
229
+ type: import_types.ActionTypes.SET_NAMED_EXPRESSIONS,
230
+ payload: {
231
+ ...this.opts,
232
+ expressions: Array.from(this.opts.expressions.entries())
233
+ }
234
+ };
235
+ }
236
+ }
237
+
238
+ //# debugId=A1A243F98A4F164A64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/core/commands/named-expression-commands.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Named Expression Commands - Commands that modify named expressions\n *\n * These commands all require re-evaluation after execution.\n */\n\nimport type { NamedExpressionManager } from \"../managers/named-expression-manager.cjs\";\nimport type { WorkbookManager } from \"../managers/workbook-manager.cjs\";\nimport type { NamedExpression } from \"../types.cjs\";\nimport type { EngineCommand, EngineAction } from \"./types.cjs\";\nimport { ActionTypes } from \"./types.cjs\";\n\n/**\n * Dependencies needed for named expression commands.\n */\nexport interface NamedExpressionCommandDeps {\n namedExpressionManager: NamedExpressionManager;\n workbookManager: WorkbookManager;\n renameNamedExpressionInFormula: (\n formula: string,\n oldName: string,\n newName: string\n ) => string;\n}\n\n/**\n * Helper to convert opts to getNamedExpression format\n */\nfunction optsToScope(opts: {\n expressionName: string;\n sheetName?: string;\n workbookName?: string;\n}): {\n name: string;\n scope:\n | { type: \"global\" }\n | { type: \"workbook\"; workbookName: string }\n | { type: \"sheet\"; workbookName: string; sheetName: string };\n} {\n if (opts.sheetName && opts.workbookName) {\n return {\n name: opts.expressionName,\n scope: {\n type: \"sheet\",\n workbookName: opts.workbookName,\n sheetName: opts.sheetName,\n },\n };\n } else if (opts.workbookName) {\n return {\n name: opts.expressionName,\n scope: { type: \"workbook\", workbookName: opts.workbookName },\n };\n } else {\n return {\n name: opts.expressionName,\n scope: { type: \"global\" },\n };\n }\n}\n\n/**\n * Command to add a named expression.\n */\nexport class AddNamedExpressionCommand implements EngineCommand {\n readonly requiresReevaluation = true;\n\n constructor(\n private deps: NamedExpressionCommandDeps,\n private opts: {\n expression: string;\n expressionName: string;\n sheetName?: string;\n workbookName?: string;\n }\n ) {}\n\n execute(): void {\n this.deps.namedExpressionManager.addNamedExpression(this.opts);\n }\n\n undo(): void {\n this.deps.namedExpressionManager.removeNamedExpression({\n expressionName: this.opts.expressionName,\n sheetName: this.opts.sheetName,\n workbookName: this.opts.workbookName,\n });\n }\n\n toAction(): EngineAction {\n return {\n type: ActionTypes.ADD_NAMED_EXPRESSION,\n payload: this.opts,\n };\n }\n}\n\n/**\n * Command to remove a named expression.\n */\nexport class RemoveNamedExpressionCommand implements EngineCommand {\n readonly requiresReevaluation = true;\n private removedExpression: NamedExpression | undefined;\n\n constructor(\n private deps: NamedExpressionCommandDeps,\n private opts: {\n expressionName: string;\n sheetName?: string;\n workbookName?: string;\n }\n ) {}\n\n execute(): void {\n // Capture expression before removal\n this.removedExpression = this.deps.namedExpressionManager.getNamedExpression(\n optsToScope(this.opts)\n );\n\n this.deps.namedExpressionManager.removeNamedExpression(this.opts);\n }\n\n undo(): void {\n if (!this.removedExpression) return;\n\n this.deps.namedExpressionManager.addNamedExpression({\n expressionName: this.removedExpression.name,\n expression: this.removedExpression.expression,\n sheetName: this.opts.sheetName,\n workbookName: this.opts.workbookName,\n });\n }\n\n toAction(): EngineAction {\n return {\n type: ActionTypes.REMOVE_NAMED_EXPRESSION,\n payload: this.opts,\n };\n }\n}\n\n/**\n * Command to update a named expression.\n */\nexport class UpdateNamedExpressionCommand implements EngineCommand {\n readonly requiresReevaluation = true;\n private previousExpression: string | undefined;\n\n constructor(\n private deps: NamedExpressionCommandDeps,\n private opts: {\n expression: string;\n expressionName: string;\n sheetName?: string;\n workbookName?: string;\n }\n ) {}\n\n execute(): void {\n // Capture previous expression\n const existing = this.deps.namedExpressionManager.getNamedExpression(\n optsToScope(this.opts)\n );\n this.previousExpression = existing?.expression;\n\n this.deps.namedExpressionManager.updateNamedExpression(this.opts);\n }\n\n undo(): void {\n if (this.previousExpression === undefined) return;\n\n this.deps.namedExpressionManager.updateNamedExpression({\n expressionName: this.opts.expressionName,\n expression: this.previousExpression,\n sheetName: this.opts.sheetName,\n workbookName: this.opts.workbookName,\n });\n }\n\n toAction(): EngineAction {\n return {\n type: ActionTypes.UPDATE_NAMED_EXPRESSION,\n payload: this.opts,\n };\n }\n}\n\n/**\n * Command to rename a named expression.\n */\nexport class RenameNamedExpressionCommand implements EngineCommand {\n readonly requiresReevaluation = true;\n\n constructor(\n private deps: NamedExpressionCommandDeps,\n private opts: {\n expressionName: string;\n sheetName?: string;\n workbookName?: string;\n newName: string;\n }\n ) {}\n\n execute(): void {\n this.deps.namedExpressionManager.renameNamedExpression(this.opts);\n\n // Update formulas in sheet cells\n this.deps.workbookManager.updateAllFormulas((formula) =>\n this.deps.renameNamedExpressionInFormula(\n formula,\n this.opts.expressionName,\n this.opts.newName\n )\n );\n\n // Update named expressions\n this.deps.namedExpressionManager.updateAllNamedExpressions((formula) =>\n this.deps.renameNamedExpressionInFormula(\n formula,\n this.opts.expressionName,\n this.opts.newName\n )\n );\n }\n\n undo(): void {\n // Rename back\n this.deps.namedExpressionManager.renameNamedExpression({\n expressionName: this.opts.newName,\n sheetName: this.opts.sheetName,\n workbookName: this.opts.workbookName,\n newName: this.opts.expressionName,\n });\n\n // Update formulas back\n this.deps.workbookManager.updateAllFormulas((formula) =>\n this.deps.renameNamedExpressionInFormula(\n formula,\n this.opts.newName,\n this.opts.expressionName\n )\n );\n\n // Update named expressions back\n this.deps.namedExpressionManager.updateAllNamedExpressions((formula) =>\n this.deps.renameNamedExpressionInFormula(\n formula,\n this.opts.newName,\n this.opts.expressionName\n )\n );\n }\n\n toAction(): EngineAction {\n return {\n type: ActionTypes.RENAME_NAMED_EXPRESSION,\n payload: this.opts,\n };\n }\n}\n\n/**\n * Options for setNamedExpressions command.\n */\ntype SetNamedExpressionsOpts = (\n | { type: \"global\" }\n | { type: \"sheet\"; sheetName: string; workbookName: string }\n | { type: \"workbook\"; workbookName: string }\n) & {\n expressions: Map<string, NamedExpression>;\n};\n\n/**\n * Command to set named expressions (replace all at a scope).\n */\nexport class SetNamedExpressionsCommand implements EngineCommand {\n readonly requiresReevaluation = true;\n private previousExpressions: Map<string, NamedExpression> | undefined;\n\n constructor(\n private deps: NamedExpressionCommandDeps,\n private opts: SetNamedExpressionsOpts\n ) {}\n\n execute(): void {\n // Capture previous expressions at this scope\n const allExpressions = this.deps.namedExpressionManager.getNamedExpressions();\n\n if (this.opts.type === \"global\") {\n this.previousExpressions = new Map(allExpressions.globalExpressions);\n } else if (this.opts.type === \"workbook\") {\n this.previousExpressions = new Map(\n allExpressions.workbookExpressions.get(this.opts.workbookName) || []\n );\n } else if (this.opts.type === \"sheet\") {\n const sheetExpressions = allExpressions.sheetExpressions\n .get(this.opts.workbookName)\n ?.get(this.opts.sheetName);\n this.previousExpressions = new Map(sheetExpressions || []);\n }\n\n this.deps.namedExpressionManager.setNamedExpressions(this.opts);\n }\n\n undo(): void {\n if (!this.previousExpressions) return;\n\n // Restore previous expressions\n if (this.opts.type === \"global\") {\n this.deps.namedExpressionManager.setNamedExpressions({\n type: \"global\",\n expressions: this.previousExpressions,\n });\n } else if (this.opts.type === \"workbook\") {\n this.deps.namedExpressionManager.setNamedExpressions({\n type: \"workbook\",\n workbookName: this.opts.workbookName,\n expressions: this.previousExpressions,\n });\n } else if (this.opts.type === \"sheet\") {\n this.deps.namedExpressionManager.setNamedExpressions({\n type: \"sheet\",\n workbookName: this.opts.workbookName,\n sheetName: this.opts.sheetName,\n expressions: this.previousExpressions,\n });\n }\n }\n\n toAction(): EngineAction {\n return {\n type: ActionTypes.SET_NAMED_EXPRESSIONS,\n payload: {\n ...this.opts,\n expressions: Array.from(this.opts.expressions.entries()),\n },\n };\n }\n}\n\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "A1A243F98A4F164A64756E2164756E21",
9
+ "names": []
10
+ }