@ricsam/formula-engine 0.0.17 → 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.
- package/dist/cjs/core/api/api-builder.cjs +67 -0
- package/dist/cjs/core/api/api-builder.cjs.map +10 -0
- package/dist/cjs/core/api/api-helpers.cjs +191 -0
- package/dist/cjs/core/api/api-helpers.cjs.map +10 -0
- package/dist/cjs/core/api/api.cjs +65 -0
- package/dist/cjs/core/api/api.cjs.map +10 -0
- package/dist/cjs/core/api/cell-orm.cjs +80 -0
- package/dist/cjs/core/api/cell-orm.cjs.map +10 -0
- package/dist/cjs/core/api/table-orm.cjs +171 -0
- package/dist/cjs/core/api/table-orm.cjs.map +10 -0
- package/dist/cjs/core/autofill-utils.cjs +3 -5
- package/dist/cjs/core/autofill-utils.cjs.map +3 -3
- package/dist/cjs/core/commands/command-executor.cjs +140 -0
- package/dist/cjs/core/commands/command-executor.cjs.map +10 -0
- package/dist/cjs/core/commands/content-commands.cjs +574 -0
- package/dist/cjs/core/commands/content-commands.cjs.map +10 -0
- package/dist/cjs/core/commands/index.cjs +95 -0
- package/dist/cjs/core/commands/index.cjs.map +10 -0
- package/dist/cjs/core/commands/metadata-commands.cjs +150 -0
- package/dist/cjs/core/commands/metadata-commands.cjs.map +10 -0
- package/dist/cjs/core/commands/named-expression-commands.cjs +238 -0
- package/dist/cjs/core/commands/named-expression-commands.cjs.map +10 -0
- package/dist/cjs/core/commands/structure-commands.cjs +495 -0
- package/dist/cjs/core/commands/structure-commands.cjs.map +10 -0
- package/dist/cjs/core/commands/style-commands.cjs +219 -0
- package/dist/cjs/core/commands/style-commands.cjs.map +10 -0
- package/dist/cjs/core/commands/table-commands.cjs +226 -0
- package/dist/cjs/core/commands/table-commands.cjs.map +10 -0
- package/dist/cjs/core/commands/types.cjs +72 -0
- package/dist/cjs/core/commands/types.cjs.map +10 -0
- package/dist/cjs/core/engine.cjs +159 -296
- package/dist/cjs/core/engine.cjs.map +3 -3
- package/dist/cjs/core/managers/api-schema-manager.cjs +304 -0
- package/dist/cjs/core/managers/api-schema-manager.cjs.map +10 -0
- package/dist/cjs/core/managers/copy-manager.cjs +1 -2
- package/dist/cjs/core/managers/copy-manager.cjs.map +3 -3
- package/dist/cjs/core/types.cjs.map +2 -2
- package/dist/cjs/lib.cjs +13 -2
- package/dist/cjs/lib.cjs.map +3 -3
- package/dist/cjs/package.json +1 -1
- package/dist/mjs/core/api/api-builder.mjs +37 -0
- package/dist/mjs/core/api/api-builder.mjs.map +10 -0
- package/dist/mjs/core/api/api-helpers.mjs +161 -0
- package/dist/mjs/core/api/api-helpers.mjs.map +10 -0
- package/dist/mjs/core/api/api.mjs +35 -0
- package/dist/mjs/core/api/api.mjs.map +10 -0
- package/dist/mjs/core/api/cell-orm.mjs +49 -0
- package/dist/mjs/core/api/cell-orm.mjs.map +10 -0
- package/dist/mjs/core/api/table-orm.mjs +148 -0
- package/dist/mjs/core/api/table-orm.mjs.map +10 -0
- package/dist/mjs/core/autofill-utils.mjs +3 -5
- package/dist/mjs/core/autofill-utils.mjs.map +3 -3
- package/dist/mjs/core/commands/command-executor.mjs +109 -0
- package/dist/mjs/core/commands/command-executor.mjs.map +10 -0
- package/dist/mjs/core/commands/content-commands.mjs +544 -0
- package/dist/mjs/core/commands/content-commands.mjs.map +10 -0
- package/dist/mjs/core/commands/index.mjs +87 -0
- package/dist/mjs/core/commands/index.mjs.map +10 -0
- package/dist/mjs/core/commands/metadata-commands.mjs +120 -0
- package/dist/mjs/core/commands/metadata-commands.mjs.map +10 -0
- package/dist/mjs/core/commands/named-expression-commands.mjs +208 -0
- package/dist/mjs/core/commands/named-expression-commands.mjs.map +10 -0
- package/dist/mjs/core/commands/structure-commands.mjs +465 -0
- package/dist/mjs/core/commands/structure-commands.mjs.map +10 -0
- package/dist/mjs/core/commands/style-commands.mjs +189 -0
- package/dist/mjs/core/commands/style-commands.mjs.map +10 -0
- package/dist/mjs/core/commands/table-commands.mjs +196 -0
- package/dist/mjs/core/commands/table-commands.mjs.map +10 -0
- package/dist/mjs/core/commands/types.mjs +42 -0
- package/dist/mjs/core/commands/types.mjs.map +10 -0
- package/dist/mjs/core/engine.mjs +194 -296
- package/dist/mjs/core/engine.mjs.map +3 -3
- package/dist/mjs/core/managers/api-schema-manager.mjs +274 -0
- package/dist/mjs/core/managers/api-schema-manager.mjs.map +10 -0
- package/dist/mjs/core/managers/copy-manager.mjs +1 -2
- package/dist/mjs/core/managers/copy-manager.mjs.map +3 -3
- package/dist/mjs/core/types.mjs.map +2 -2
- package/dist/mjs/lib.mjs +13 -2
- package/dist/mjs/lib.mjs.map +3 -3
- package/dist/mjs/package.json +1 -1
- package/dist/types/core/api/api-builder.d.ts +16 -0
- package/dist/types/core/api/api-helpers.d.ts +37 -0
- package/dist/types/core/api/api.d.ts +83 -0
- package/dist/types/core/api/api.type-test.d.ts +1 -0
- package/dist/types/core/api/cell-orm.d.ts +29 -0
- package/dist/types/core/api/table-orm.d.ts +46 -0
- package/dist/types/core/autofill-utils.d.ts +2 -9
- package/dist/types/core/commands/command-executor.d.ts +83 -0
- package/dist/types/core/commands/content-commands.d.ts +142 -0
- package/dist/types/core/commands/index.d.ts +16 -0
- package/dist/types/core/commands/metadata-commands.d.ts +55 -0
- package/dist/types/core/commands/named-expression-commands.d.ts +115 -0
- package/dist/types/core/commands/structure-commands.d.ts +132 -0
- package/dist/types/core/commands/style-commands.d.ts +76 -0
- package/dist/types/core/commands/table-commands.d.ts +104 -0
- package/dist/types/core/commands/types.d.ts +114 -0
- package/dist/types/core/engine.d.ts +130 -26
- package/dist/types/core/managers/api-schema-manager.d.ts +121 -0
- package/dist/types/core/types.d.ts +1 -1
- package/dist/types/lib.d.ts +8 -0
- 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": "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",
|
|
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
|
+
}
|