@bilig/headless 0.8.0 → 0.8.2
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/README.md +15 -0
- package/dist/persistence.d.ts +1 -1
- package/dist/persistence.js +13 -11
- package/dist/persistence.js.map +1 -1
- package/dist/tracked-cell-index-changes.d.ts +1 -7
- package/dist/tracked-cell-index-changes.js +20 -434
- package/dist/tracked-cell-index-changes.js.map +1 -1
- package/dist/tracked-cell-lazy-physical-changes.d.ts +21 -0
- package/dist/tracked-cell-lazy-physical-changes.js +333 -0
- package/dist/tracked-cell-lazy-physical-changes.js.map +1 -0
- package/dist/tracked-cell-value-read.d.ts +18 -0
- package/dist/tracked-cell-value-read.js +46 -0
- package/dist/tracked-cell-value-read.js.map +1 -0
- package/dist/tracked-engine-event-refs.d.ts +1 -1
- package/dist/tracked-engine-event-refs.js +14 -4
- package/dist/tracked-engine-event-refs.js.map +1 -1
- package/dist/tracked-index-source-order.d.ts +5 -0
- package/dist/tracked-index-source-order.js +15 -0
- package/dist/tracked-index-source-order.js.map +1 -0
- package/dist/work-paper-address-format.d.ts +33 -0
- package/dist/work-paper-address-format.js +116 -0
- package/dist/work-paper-address-format.js.map +1 -0
- package/dist/work-paper-axis-helpers.d.ts +26 -0
- package/dist/work-paper-axis-helpers.js +104 -0
- package/dist/work-paper-axis-helpers.js.map +1 -0
- package/dist/work-paper-capability-checks.d.ts +17 -0
- package/dist/work-paper-capability-checks.js +101 -0
- package/dist/work-paper-capability-checks.js.map +1 -0
- package/dist/work-paper-capability-operations.d.ts +34 -0
- package/dist/work-paper-capability-operations.js +70 -0
- package/dist/work-paper-capability-operations.js.map +1 -0
- package/dist/work-paper-capability-surface.d.ts +97 -0
- package/dist/work-paper-capability-surface.js +236 -0
- package/dist/work-paper-capability-surface.js.map +1 -0
- package/dist/work-paper-cell-content-setter.d.ts +37 -0
- package/dist/work-paper-cell-content-setter.js +87 -0
- package/dist/work-paper-cell-content-setter.js.map +1 -0
- package/dist/work-paper-cell-mutation-refs.d.ts +23 -0
- package/dist/work-paper-cell-mutation-refs.js +50 -0
- package/dist/work-paper-cell-mutation-refs.js.map +1 -0
- package/dist/work-paper-cell-read.d.ts +41 -0
- package/dist/work-paper-cell-read.js +54 -0
- package/dist/work-paper-cell-read.js.map +1 -0
- package/dist/work-paper-clipboard-operations.d.ts +24 -0
- package/dist/work-paper-clipboard-operations.js +56 -0
- package/dist/work-paper-clipboard-operations.js.map +1 -0
- package/dist/work-paper-clipboard.d.ts +13 -0
- package/dist/work-paper-clipboard.js +19 -0
- package/dist/work-paper-clipboard.js.map +1 -0
- package/dist/work-paper-config.d.ts +11 -0
- package/dist/work-paper-config.js +247 -0
- package/dist/work-paper-config.js.map +1 -0
- package/dist/work-paper-date-time.d.ts +4 -0
- package/dist/work-paper-date-time.js +38 -0
- package/dist/work-paper-date-time.js.map +1 -0
- package/dist/work-paper-dependency-refs.d.ts +11 -0
- package/dist/work-paper-dependency-refs.js +74 -0
- package/dist/work-paper-dependency-refs.js.map +1 -0
- package/dist/work-paper-emitter.d.ts +22 -0
- package/dist/work-paper-emitter.js +130 -0
- package/dist/work-paper-emitter.js.map +1 -0
- package/dist/work-paper-engine-event-tracker.d.ts +24 -0
- package/dist/work-paper-engine-event-tracker.js +92 -0
- package/dist/work-paper-engine-event-tracker.js.map +1 -0
- package/dist/work-paper-errors.d.ts +4 -0
- package/dist/work-paper-errors.js +7 -0
- package/dist/work-paper-errors.js.map +1 -1
- package/dist/work-paper-existing-numeric-fast-path.d.ts +31 -0
- package/dist/work-paper-existing-numeric-fast-path.js +120 -0
- package/dist/work-paper-existing-numeric-fast-path.js.map +1 -0
- package/dist/work-paper-fill-helpers.d.ts +8 -0
- package/dist/work-paper-fill-helpers.js +34 -0
- package/dist/work-paper-fill-helpers.js.map +1 -0
- package/dist/work-paper-formula-analysis.d.ts +18 -0
- package/dist/work-paper-formula-analysis.js +54 -0
- package/dist/work-paper-formula-analysis.js.map +1 -0
- package/dist/work-paper-formula-rewrite.d.ts +22 -0
- package/dist/work-paper-formula-rewrite.js +71 -0
- package/dist/work-paper-formula-rewrite.js.map +1 -0
- package/dist/work-paper-function-registry.d.ts +39 -0
- package/dist/work-paper-function-registry.js +66 -0
- package/dist/work-paper-function-registry.js.map +1 -0
- package/dist/work-paper-history-operations.d.ts +15 -0
- package/dist/work-paper-history-operations.js +14 -0
- package/dist/work-paper-history-operations.js.map +1 -0
- package/dist/work-paper-history.d.ts +50 -0
- package/dist/work-paper-history.js +136 -0
- package/dist/work-paper-history.js.map +1 -0
- package/dist/work-paper-internals.d.ts +24 -0
- package/dist/work-paper-internals.js +59 -0
- package/dist/work-paper-internals.js.map +1 -0
- package/dist/work-paper-literal-mutation-queue.d.ts +18 -0
- package/dist/work-paper-literal-mutation-queue.js +40 -0
- package/dist/work-paper-literal-mutation-queue.js.map +1 -0
- package/dist/work-paper-matrix-application.d.ts +31 -0
- package/dist/work-paper-matrix-application.js +85 -0
- package/dist/work-paper-matrix-application.js.map +1 -0
- package/dist/work-paper-mutation-queues.d.ts +29 -0
- package/dist/work-paper-mutation-queues.js +72 -0
- package/dist/work-paper-mutation-queues.js.map +1 -0
- package/dist/work-paper-named-expression-fast-path.d.ts +37 -0
- package/dist/work-paper-named-expression-fast-path.js +100 -0
- package/dist/work-paper-named-expression-fast-path.js.map +1 -0
- package/dist/work-paper-named-expression-helpers.d.ts +54 -0
- package/dist/work-paper-named-expression-helpers.js +179 -0
- package/dist/work-paper-named-expression-helpers.js.map +1 -0
- package/dist/work-paper-named-expression-operations.d.ts +39 -0
- package/dist/work-paper-named-expression-operations.js +82 -0
- package/dist/work-paper-named-expression-operations.js.map +1 -0
- package/dist/work-paper-public-surface.d.ts +73 -0
- package/dist/work-paper-public-surface.js +165 -0
- package/dist/work-paper-public-surface.js.map +1 -0
- package/dist/work-paper-read-operations.d.ts +52 -0
- package/dist/work-paper-read-operations.js +185 -0
- package/dist/work-paper-read-operations.js.map +1 -0
- package/dist/work-paper-runtime-adapters.d.ts +144 -0
- package/dist/work-paper-runtime-adapters.js +256 -0
- package/dist/work-paper-runtime-adapters.js.map +1 -0
- package/dist/work-paper-runtime-helpers.d.ts +27 -0
- package/dist/work-paper-runtime-helpers.js +305 -0
- package/dist/work-paper-runtime-helpers.js.map +1 -0
- package/dist/work-paper-runtime-surface.d.ts +137 -0
- package/dist/work-paper-runtime-surface.js +702 -0
- package/dist/work-paper-runtime-surface.js.map +1 -0
- package/dist/work-paper-runtime.d.ts +56 -285
- package/dist/work-paper-runtime.js +403 -4809
- package/dist/work-paper-runtime.js.map +1 -1
- package/dist/work-paper-scratch-evaluator.js +29 -26
- package/dist/work-paper-scratch-evaluator.js.map +1 -1
- package/dist/work-paper-sheet-dimension-cache.d.ts +36 -0
- package/dist/work-paper-sheet-dimension-cache.js +158 -0
- package/dist/work-paper-sheet-dimension-cache.js.map +1 -0
- package/dist/work-paper-sheet-initialization.d.ts +19 -0
- package/dist/work-paper-sheet-initialization.js +93 -0
- package/dist/work-paper-sheet-initialization.js.map +1 -0
- package/dist/work-paper-sheet-inspection.d.ts +66 -0
- package/dist/work-paper-sheet-inspection.js +204 -0
- package/dist/work-paper-sheet-inspection.js.map +1 -0
- package/dist/work-paper-sheet-operations.d.ts +59 -0
- package/dist/work-paper-sheet-operations.js +104 -0
- package/dist/work-paper-sheet-operations.js.map +1 -0
- package/dist/work-paper-sheet-read.d.ts +21 -0
- package/dist/work-paper-sheet-read.js +32 -0
- package/dist/work-paper-sheet-read.js.map +1 -0
- package/dist/work-paper-sheet-rename-fast-path.d.ts +18 -0
- package/dist/work-paper-sheet-rename-fast-path.js +43 -0
- package/dist/work-paper-sheet-rename-fast-path.js.map +1 -0
- package/dist/work-paper-static-api.d.ts +18 -0
- package/dist/work-paper-static-api.js +44 -0
- package/dist/work-paper-static-api.js.map +1 -0
- package/dist/work-paper-static-registry.d.ts +21 -0
- package/dist/work-paper-static-registry.js +150 -0
- package/dist/work-paper-static-registry.js.map +1 -0
- package/dist/work-paper-tracked-change-reducer.d.ts +41 -0
- package/dist/work-paper-tracked-change-reducer.js +281 -0
- package/dist/work-paper-tracked-change-reducer.js.map +1 -0
- package/dist/work-paper-tracked-event-helpers.d.ts +89 -0
- package/dist/work-paper-tracked-event-helpers.js +366 -0
- package/dist/work-paper-tracked-event-helpers.js.map +1 -0
- package/dist/work-paper-types.d.ts +6 -5
- package/dist/work-paper-visibility-snapshot.d.ts +36 -0
- package/dist/work-paper-visibility-snapshot.js +62 -0
- package/dist/work-paper-visibility-snapshot.js.map +1 -0
- package/package.json +13 -5
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { isFormulaContent } from './work-paper-runtime-helpers.js';
|
|
2
|
+
import { createSerializedWorkPaperNamedExpression, listWorkPaperNamedExpressions, publicWorkPaperNamedExpressionFromInternal, serializeWorkPaperNamedExpressions, } from './work-paper-named-expression-helpers.js';
|
|
3
|
+
import { WorkPaperNamedExpressionDoesNotExistError, WorkPaperNamedExpressionNameIsAlreadyTakenError } from './work-paper-errors.js';
|
|
4
|
+
export function createWorkPaperNamedExpressionOperations(runtime) {
|
|
5
|
+
return {
|
|
6
|
+
getNamedExpressionValue(name, scope) {
|
|
7
|
+
runtime.assertReadable();
|
|
8
|
+
const expression = runtime.getNamedExpression(name, scope);
|
|
9
|
+
return expression ? runtime.evaluateNamedExpression(expression) : undefined;
|
|
10
|
+
},
|
|
11
|
+
getNamedExpressionFormula(name, scope) {
|
|
12
|
+
const expression = runtime.getNamedExpression(name, scope);
|
|
13
|
+
if (!expression) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return isFormulaContent(expression.expression) ? expression.expression : undefined;
|
|
17
|
+
},
|
|
18
|
+
getNamedExpression(name, scope) {
|
|
19
|
+
const expression = runtime.getNamedExpression(name, scope);
|
|
20
|
+
if (!expression) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
return publicWorkPaperNamedExpressionFromInternal(expression);
|
|
24
|
+
},
|
|
25
|
+
addNamedExpression(expressionName, expression, scope, options) {
|
|
26
|
+
if (!runtime.isItPossibleToAddNamedExpression(expressionName, expression, scope)) {
|
|
27
|
+
throw new WorkPaperNamedExpressionNameIsAlreadyTakenError(expressionName);
|
|
28
|
+
}
|
|
29
|
+
return runtime.captureChanges({
|
|
30
|
+
eventName: 'namedExpressionAdded',
|
|
31
|
+
payload: {
|
|
32
|
+
name: expressionName.trim(),
|
|
33
|
+
changes: [],
|
|
34
|
+
...(scope !== undefined ? { scope } : {}),
|
|
35
|
+
},
|
|
36
|
+
}, () => {
|
|
37
|
+
runtime.upsertNamedExpressionInternal(createSerializedWorkPaperNamedExpression({ name: expressionName, expression, scope, options }), { duringInitialization: false });
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
changeNamedExpression(expressionName, expression, scope, options) {
|
|
41
|
+
runtime.validateNamedExpression(expressionName, expression, scope);
|
|
42
|
+
const existing = runtime.getNamedExpression(expressionName, scope);
|
|
43
|
+
if (!existing) {
|
|
44
|
+
throw new WorkPaperNamedExpressionDoesNotExistError(expressionName);
|
|
45
|
+
}
|
|
46
|
+
const fastPathChanges = runtime.tryCaptureNamedExpressionChangeWithoutSnapshots(existing, expressionName, expression, scope, options);
|
|
47
|
+
if (fastPathChanges) {
|
|
48
|
+
return fastPathChanges;
|
|
49
|
+
}
|
|
50
|
+
return runtime.captureChanges(undefined, () => {
|
|
51
|
+
runtime.upsertNamedExpressionInternal(createSerializedWorkPaperNamedExpression({ name: expressionName, expression, scope, options }), { duringInitialization: false });
|
|
52
|
+
});
|
|
53
|
+
},
|
|
54
|
+
removeNamedExpression(expressionName, scope) {
|
|
55
|
+
if (!runtime.isItPossibleToRemoveNamedExpression(expressionName, scope)) {
|
|
56
|
+
throw new WorkPaperNamedExpressionDoesNotExistError(expressionName);
|
|
57
|
+
}
|
|
58
|
+
const existing = runtime.getNamedExpression(expressionName, scope);
|
|
59
|
+
if (!existing) {
|
|
60
|
+
throw new WorkPaperNamedExpressionDoesNotExistError(expressionName);
|
|
61
|
+
}
|
|
62
|
+
return runtime.captureChanges({
|
|
63
|
+
eventName: 'namedExpressionRemoved',
|
|
64
|
+
payload: {
|
|
65
|
+
name: existing.publicName,
|
|
66
|
+
changes: [],
|
|
67
|
+
...(existing.scope !== undefined ? { scope: existing.scope } : {}),
|
|
68
|
+
},
|
|
69
|
+
}, () => {
|
|
70
|
+
runtime.deleteNamedExpressionRecord(expressionName, scope);
|
|
71
|
+
runtime.deleteDefinedName(existing.internalName);
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
listNamedExpressions(scope) {
|
|
75
|
+
return listWorkPaperNamedExpressions(runtime.getNamedExpressionValues(), scope);
|
|
76
|
+
},
|
|
77
|
+
getAllNamedExpressionsSerialized() {
|
|
78
|
+
return serializeWorkPaperNamedExpressions(runtime.getNamedExpressionValues());
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=work-paper-named-expression-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-paper-named-expression-operations.js","sourceRoot":"","sources":["../src/work-paper-named-expression-operations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EACL,wCAAwC,EACxC,6BAA6B,EAC7B,0CAA0C,EAC1C,kCAAkC,GAEnC,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,yCAAyC,EAAE,+CAA+C,EAAE,MAAM,wBAAwB,CAAA;AAgEnI,MAAM,UAAU,wCAAwC,CACtD,OAAkD;IAElD,OAAO;QACL,uBAAuB,CAAC,IAAI,EAAE,KAAK;YACjC,OAAO,CAAC,cAAc,EAAE,CAAA;YACxB,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC1D,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7E,CAAC;QAED,yBAAyB,CAAC,IAAI,EAAE,KAAK;YACnC,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;QACpF,CAAC;QAED,kBAAkB,CAAC,IAAI,EAAE,KAAK;YAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,OAAO,0CAA0C,CAAC,UAAU,CAAC,CAAA;QAC/D,CAAC;QAED,kBAAkB,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO;YAC3D,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;gBACjF,MAAM,IAAI,+CAA+C,CAAC,cAAc,CAAC,CAAA;YAC3E,CAAC;YACD,OAAO,OAAO,CAAC,cAAc,CAC3B;gBACE,SAAS,EAAE,sBAAsB;gBACjC,OAAO,EAAE;oBACP,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE;oBAC3B,OAAO,EAAE,EAAE;oBACX,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C;aACF,EACD,GAAG,EAAE;gBACH,OAAO,CAAC,6BAA6B,CACnC,wCAAwC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAC9F,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAA;YACH,CAAC,CACF,CAAA;QACH,CAAC;QAED,qBAAqB,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO;YAC9D,OAAO,CAAC,uBAAuB,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;YAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;YAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,yCAAyC,CAAC,cAAc,CAAC,CAAA;YACrE,CAAC;YACD,MAAM,eAAe,GAAG,OAAO,CAAC,+CAA+C,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YACrI,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,eAAe,CAAA;YACxB,CAAC;YACD,OAAO,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC5C,OAAO,CAAC,6BAA6B,CACnC,wCAAwC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAC9F,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAChC,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,qBAAqB,CAAC,cAAc,EAAE,KAAK;YACzC,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;gBACxE,MAAM,IAAI,yCAAyC,CAAC,cAAc,CAAC,CAAA;YACrE,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;YAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,yCAAyC,CAAC,cAAc,CAAC,CAAA;YACrE,CAAC;YACD,OAAO,OAAO,CAAC,cAAc,CAC3B;gBACE,SAAS,EAAE,wBAAwB;gBACnC,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ,CAAC,UAAU;oBACzB,OAAO,EAAE,EAAE;oBACX,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnE;aACF,EACD,GAAG,EAAE;gBACH,OAAO,CAAC,2BAA2B,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;gBAC1D,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;YAClD,CAAC,CACF,CAAA;QACH,CAAC;QAED,oBAAoB,CAAC,KAAK;YACxB,OAAO,6BAA6B,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,KAAK,CAAC,CAAA;QACjF,CAAC;QAED,gCAAgC;YAC9B,OAAO,kCAAkC,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAA;QAC/E,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { SpreadsheetEngine } from '@bilig/core';
|
|
2
|
+
import type { CellValue } from '@bilig/protocol';
|
|
3
|
+
import type { WorkPaperEmitter } from './work-paper-emitter.js';
|
|
4
|
+
import { type InternalFunctionBinding } from './work-paper-function-registry.js';
|
|
5
|
+
import type { RawCellContent, SerializedWorkPaperNamedExpression, WorkPaperAddressMappingAdapter, WorkPaperArrayMappingAdapter, WorkPaperCellAddress, WorkPaperCellRange, WorkPaperColumnSearchAdapter, WorkPaperConfig, WorkPaperDateTime, WorkPaperDependencyGraphAdapter, WorkPaperEvaluatorAdapter, WorkPaperFunctionPluginDefinition, WorkPaperFunctionTranslationsPackage, WorkPaperGraphAdapter, WorkPaperLanguagePackage, WorkPaperLazilyTransformingAstServiceAdapter, WorkPaperLicenseKeyValidityState, WorkPaperRangeMappingAdapter, WorkPaperSheet, WorkPaperSheetMappingAdapter, WorkPaperEngineCounters, WorkPaperDetailedListener, WorkPaperEventName, WorkPaperInternals, WorkPaperListener } from './work-paper-types.js';
|
|
6
|
+
import { WorkPaperCapabilitySurface } from './work-paper-capability-surface.js';
|
|
7
|
+
export declare abstract class WorkPaperPublicSurface extends WorkPaperCapabilitySurface {
|
|
8
|
+
static version: string;
|
|
9
|
+
static buildDate: string;
|
|
10
|
+
static releaseDate: string;
|
|
11
|
+
static readonly languages: Record<string, WorkPaperLanguagePackage>;
|
|
12
|
+
static readonly defaultConfig: WorkPaperConfig;
|
|
13
|
+
protected abstract readonly emitter: WorkPaperEmitter;
|
|
14
|
+
protected abstract readonly functionSnapshot: Map<string, InternalFunctionBinding>;
|
|
15
|
+
protected abstract readonly functionAliasLookup: Map<string, InternalFunctionBinding>;
|
|
16
|
+
protected abstract readonly internals: WorkPaperInternals;
|
|
17
|
+
protected abstract engine: SpreadsheetEngine;
|
|
18
|
+
protected abstract config: WorkPaperConfig;
|
|
19
|
+
protected abstract assertNotDisposed(): void;
|
|
20
|
+
protected abstract createScratchWorkbook(config: WorkPaperConfig): {
|
|
21
|
+
readonly engine: SpreadsheetEngine;
|
|
22
|
+
readonly registerNamedExpression: (expression: SerializedWorkPaperNamedExpression) => void;
|
|
23
|
+
readonly requireSheetId: (sheetName: string) => number;
|
|
24
|
+
readonly replaceSheetContent: (sheetId: number, sheet: WorkPaperSheet) => void;
|
|
25
|
+
readonly clearHistoryStacks: () => void;
|
|
26
|
+
readonly applyRawContent: (address: WorkPaperCellAddress, content: RawCellContent) => void;
|
|
27
|
+
readonly getRangeValues: (range: WorkPaperCellRange) => CellValue[][];
|
|
28
|
+
readonly getCellValue: (address: WorkPaperCellAddress) => CellValue;
|
|
29
|
+
readonly dispose: () => void;
|
|
30
|
+
};
|
|
31
|
+
protected abstract messageOf(error: unknown, fallback: string): string;
|
|
32
|
+
static getLanguage(languageCode: string): WorkPaperLanguagePackage;
|
|
33
|
+
static registerLanguage(languageCode: string, languagePackage: WorkPaperLanguagePackage): void;
|
|
34
|
+
static unregisterLanguage(languageCode: string): void;
|
|
35
|
+
static getRegisteredLanguagesCodes(): string[];
|
|
36
|
+
static registerFunctionPlugin(plugin: WorkPaperFunctionPluginDefinition, translations?: WorkPaperFunctionTranslationsPackage): void;
|
|
37
|
+
static unregisterFunctionPlugin(plugin: WorkPaperFunctionPluginDefinition | string): void;
|
|
38
|
+
static registerFunction(functionId: string, plugin: WorkPaperFunctionPluginDefinition, translations?: WorkPaperFunctionTranslationsPackage): void;
|
|
39
|
+
static unregisterFunction(functionId: string): void;
|
|
40
|
+
static unregisterAllFunctions(): void;
|
|
41
|
+
static getRegisteredFunctionNames(languageCode?: string): string[];
|
|
42
|
+
static getFunctionPlugin(functionId: string): WorkPaperFunctionPluginDefinition | undefined;
|
|
43
|
+
static getAllFunctionPlugins(): WorkPaperFunctionPluginDefinition[];
|
|
44
|
+
on<EventName extends WorkPaperEventName>(eventName: EventName, listener: WorkPaperListener<EventName>): void;
|
|
45
|
+
once<EventName extends WorkPaperEventName>(eventName: EventName, listener: WorkPaperListener<EventName>): void;
|
|
46
|
+
off<EventName extends WorkPaperEventName>(eventName: EventName, listener: WorkPaperListener<EventName>): void;
|
|
47
|
+
onDetailed<EventName extends WorkPaperEventName>(eventName: EventName, listener: WorkPaperDetailedListener<EventName>): void;
|
|
48
|
+
onceDetailed<EventName extends WorkPaperEventName>(eventName: EventName, listener: WorkPaperDetailedListener<EventName>): void;
|
|
49
|
+
offDetailed<EventName extends WorkPaperEventName>(eventName: EventName, listener: WorkPaperDetailedListener<EventName>): void;
|
|
50
|
+
getConfig(): WorkPaperConfig;
|
|
51
|
+
get graph(): WorkPaperGraphAdapter;
|
|
52
|
+
get rangeMapping(): WorkPaperRangeMappingAdapter;
|
|
53
|
+
get arrayMapping(): WorkPaperArrayMappingAdapter;
|
|
54
|
+
get sheetMapping(): WorkPaperSheetMappingAdapter;
|
|
55
|
+
get addressMapping(): WorkPaperAddressMappingAdapter;
|
|
56
|
+
get dependencyGraph(): WorkPaperDependencyGraphAdapter;
|
|
57
|
+
get evaluator(): WorkPaperEvaluatorAdapter;
|
|
58
|
+
get columnSearch(): WorkPaperColumnSearchAdapter;
|
|
59
|
+
get lazilyTransformingAstService(): WorkPaperLazilyTransformingAstServiceAdapter;
|
|
60
|
+
get licenseKeyValidityState(): WorkPaperLicenseKeyValidityState;
|
|
61
|
+
getPerformanceCounters(): WorkPaperEngineCounters;
|
|
62
|
+
resetPerformanceCounters(): void;
|
|
63
|
+
normalizeFormula(formula: string): string;
|
|
64
|
+
calculateFormula(formula: string, scope?: number): CellValue | CellValue[][];
|
|
65
|
+
getNamedExpressionsFromFormula(formula: string): string[];
|
|
66
|
+
validateFormula(formula: string): boolean;
|
|
67
|
+
getRegisteredFunctionNames(languageCode?: string): string[];
|
|
68
|
+
getFunctionPlugin(functionId: string): WorkPaperFunctionPluginDefinition | undefined;
|
|
69
|
+
getAllFunctionPlugins(): WorkPaperFunctionPluginDefinition[];
|
|
70
|
+
numberToDateTime(value: number): WorkPaperDateTime | undefined;
|
|
71
|
+
numberToDate(value: number): Omit<WorkPaperDateTime, 'hours' | 'minutes' | 'seconds'> | undefined;
|
|
72
|
+
numberToTime(value: number): Pick<WorkPaperDateTime, 'hours' | 'minutes' | 'seconds'> | undefined;
|
|
73
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { checkWorkPaperLicenseKeyValidity, cloneConfig, DEFAULT_CONFIG } from './work-paper-config.js';
|
|
2
|
+
import { numberToWorkPaperDate, numberToWorkPaperDateTime, numberToWorkPaperTime } from './work-paper-date-time.js';
|
|
3
|
+
import { calculateWorkPaperFormula, getWorkPaperNamedExpressionsFromFormula, normalizeWorkPaperFormula, validateWorkPaperFormula, } from './work-paper-formula-analysis.js';
|
|
4
|
+
import { getCapturedWorkPaperFunctionPlugin, getCapturedWorkPaperFunctionPlugins, listCapturedWorkPaperFunctionNames, } from './work-paper-function-registry.js';
|
|
5
|
+
import { getRegisteredWorkPaperFunctionPluginById, getRegisteredWorkPaperFunctionPluginsById, readRegisteredWorkPaperLanguage, } from './work-paper-static-registry.js';
|
|
6
|
+
import { DEFAULT_WORKPAPER_CONFIG, getAllWorkPaperStaticFunctionPlugins, getRegisteredWorkPaperStaticFunctionNames, getRegisteredWorkPaperStaticLanguageCodes, getWorkPaperStaticFunctionPlugin, getWorkPaperStaticLanguage, registerWorkPaperStaticFunction, registerWorkPaperStaticFunctionPlugin, registerWorkPaperStaticLanguage, unregisterAllWorkPaperStaticFunctions, unregisterWorkPaperStaticFunction, unregisterWorkPaperStaticFunctionPlugin, unregisterWorkPaperStaticLanguage, workPaperLanguages, WORKPAPER_BUILD_DATE, WORKPAPER_RELEASE_DATE, WORKPAPER_VERSION, } from './work-paper-static-api.js';
|
|
7
|
+
import { WorkPaperCapabilitySurface } from './work-paper-capability-surface.js';
|
|
8
|
+
export class WorkPaperPublicSurface extends WorkPaperCapabilitySurface {
|
|
9
|
+
static version = WORKPAPER_VERSION;
|
|
10
|
+
static buildDate = WORKPAPER_BUILD_DATE;
|
|
11
|
+
static releaseDate = WORKPAPER_RELEASE_DATE;
|
|
12
|
+
static languages = workPaperLanguages;
|
|
13
|
+
static defaultConfig = DEFAULT_WORKPAPER_CONFIG;
|
|
14
|
+
static getLanguage(languageCode) {
|
|
15
|
+
return getWorkPaperStaticLanguage(languageCode);
|
|
16
|
+
}
|
|
17
|
+
static registerLanguage(languageCode, languagePackage) {
|
|
18
|
+
registerWorkPaperStaticLanguage(languageCode, languagePackage);
|
|
19
|
+
}
|
|
20
|
+
static unregisterLanguage(languageCode) {
|
|
21
|
+
unregisterWorkPaperStaticLanguage(languageCode);
|
|
22
|
+
}
|
|
23
|
+
static getRegisteredLanguagesCodes() {
|
|
24
|
+
return getRegisteredWorkPaperStaticLanguageCodes();
|
|
25
|
+
}
|
|
26
|
+
static registerFunctionPlugin(plugin, translations) {
|
|
27
|
+
registerWorkPaperStaticFunctionPlugin(plugin, translations);
|
|
28
|
+
}
|
|
29
|
+
static unregisterFunctionPlugin(plugin) {
|
|
30
|
+
unregisterWorkPaperStaticFunctionPlugin(plugin);
|
|
31
|
+
}
|
|
32
|
+
static registerFunction(functionId, plugin, translations) {
|
|
33
|
+
registerWorkPaperStaticFunction(functionId, plugin, translations);
|
|
34
|
+
}
|
|
35
|
+
static unregisterFunction(functionId) {
|
|
36
|
+
unregisterWorkPaperStaticFunction(functionId);
|
|
37
|
+
}
|
|
38
|
+
static unregisterAllFunctions() {
|
|
39
|
+
unregisterAllWorkPaperStaticFunctions();
|
|
40
|
+
}
|
|
41
|
+
static getRegisteredFunctionNames(languageCode) {
|
|
42
|
+
return getRegisteredWorkPaperStaticFunctionNames(languageCode);
|
|
43
|
+
}
|
|
44
|
+
static getFunctionPlugin(functionId) {
|
|
45
|
+
return getWorkPaperStaticFunctionPlugin(functionId);
|
|
46
|
+
}
|
|
47
|
+
static getAllFunctionPlugins() {
|
|
48
|
+
return getAllWorkPaperStaticFunctionPlugins();
|
|
49
|
+
}
|
|
50
|
+
on(eventName, listener) {
|
|
51
|
+
this.assertNotDisposed();
|
|
52
|
+
this.emitter.on(eventName, listener);
|
|
53
|
+
}
|
|
54
|
+
once(eventName, listener) {
|
|
55
|
+
this.assertNotDisposed();
|
|
56
|
+
this.emitter.once(eventName, listener);
|
|
57
|
+
}
|
|
58
|
+
off(eventName, listener) {
|
|
59
|
+
this.emitter.off(eventName, listener);
|
|
60
|
+
}
|
|
61
|
+
onDetailed(eventName, listener) {
|
|
62
|
+
this.assertNotDisposed();
|
|
63
|
+
this.emitter.onDetailed(eventName, listener);
|
|
64
|
+
}
|
|
65
|
+
onceDetailed(eventName, listener) {
|
|
66
|
+
this.assertNotDisposed();
|
|
67
|
+
this.emitter.onceDetailed(eventName, listener);
|
|
68
|
+
}
|
|
69
|
+
offDetailed(eventName, listener) {
|
|
70
|
+
this.emitter.offDetailed(eventName, listener);
|
|
71
|
+
}
|
|
72
|
+
getConfig() {
|
|
73
|
+
return cloneConfig(this.config);
|
|
74
|
+
}
|
|
75
|
+
get graph() {
|
|
76
|
+
return this.internals.graph;
|
|
77
|
+
}
|
|
78
|
+
get rangeMapping() {
|
|
79
|
+
return this.internals.rangeMapping;
|
|
80
|
+
}
|
|
81
|
+
get arrayMapping() {
|
|
82
|
+
return this.internals.arrayMapping;
|
|
83
|
+
}
|
|
84
|
+
get sheetMapping() {
|
|
85
|
+
return this.internals.sheetMapping;
|
|
86
|
+
}
|
|
87
|
+
get addressMapping() {
|
|
88
|
+
return this.internals.addressMapping;
|
|
89
|
+
}
|
|
90
|
+
get dependencyGraph() {
|
|
91
|
+
return this.internals.dependencyGraph;
|
|
92
|
+
}
|
|
93
|
+
get evaluator() {
|
|
94
|
+
return this.internals.evaluator;
|
|
95
|
+
}
|
|
96
|
+
get columnSearch() {
|
|
97
|
+
return this.internals.columnSearch;
|
|
98
|
+
}
|
|
99
|
+
get lazilyTransformingAstService() {
|
|
100
|
+
return this.internals.lazilyTransformingAstService;
|
|
101
|
+
}
|
|
102
|
+
get licenseKeyValidityState() {
|
|
103
|
+
return checkWorkPaperLicenseKeyValidity(this.config.licenseKey);
|
|
104
|
+
}
|
|
105
|
+
getPerformanceCounters() {
|
|
106
|
+
this.assertNotDisposed();
|
|
107
|
+
const counterAwareEngine = this.engine;
|
|
108
|
+
return structuredClone(counterAwareEngine.getPerformanceCounters());
|
|
109
|
+
}
|
|
110
|
+
resetPerformanceCounters() {
|
|
111
|
+
this.assertNotDisposed();
|
|
112
|
+
const counterAwareEngine = this.engine;
|
|
113
|
+
counterAwareEngine.resetPerformanceCounters();
|
|
114
|
+
}
|
|
115
|
+
normalizeFormula(formula) {
|
|
116
|
+
return normalizeWorkPaperFormula(formula, { messageOf: (error, fallback) => this.messageOf(error, fallback) });
|
|
117
|
+
}
|
|
118
|
+
calculateFormula(formula, scope) {
|
|
119
|
+
return calculateWorkPaperFormula({
|
|
120
|
+
createWorkbook: (config) => this.createScratchWorkbook(config),
|
|
121
|
+
config: this.getConfig(),
|
|
122
|
+
serializedSheets: this.getAllSheetsSerialized(),
|
|
123
|
+
namedExpressions: this.getAllNamedExpressionsSerialized(),
|
|
124
|
+
formula,
|
|
125
|
+
...(scope !== undefined ? { scope } : {}),
|
|
126
|
+
messageOf: (error, fallback) => this.messageOf(error, fallback),
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
getNamedExpressionsFromFormula(formula) {
|
|
130
|
+
return getWorkPaperNamedExpressionsFromFormula(formula, { messageOf: (error, fallback) => this.messageOf(error, fallback) });
|
|
131
|
+
}
|
|
132
|
+
validateFormula(formula) {
|
|
133
|
+
return validateWorkPaperFormula(formula);
|
|
134
|
+
}
|
|
135
|
+
getRegisteredFunctionNames(languageCode) {
|
|
136
|
+
const code = languageCode ?? this.config.language ?? DEFAULT_CONFIG.language ?? 'enGB';
|
|
137
|
+
return listCapturedWorkPaperFunctionNames({
|
|
138
|
+
functionSnapshot: this.functionSnapshot.values(),
|
|
139
|
+
language: readRegisteredWorkPaperLanguage(code),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
getFunctionPlugin(functionId) {
|
|
143
|
+
return getCapturedWorkPaperFunctionPlugin({
|
|
144
|
+
functionId,
|
|
145
|
+
functionAliasLookup: this.functionAliasLookup,
|
|
146
|
+
getPluginById: getRegisteredWorkPaperFunctionPluginById,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
getAllFunctionPlugins() {
|
|
150
|
+
return getCapturedWorkPaperFunctionPlugins({
|
|
151
|
+
functionSnapshot: this.functionSnapshot.values(),
|
|
152
|
+
getPluginsById: getRegisteredWorkPaperFunctionPluginsById,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
numberToDateTime(value) {
|
|
156
|
+
return numberToWorkPaperDateTime(value);
|
|
157
|
+
}
|
|
158
|
+
numberToDate(value) {
|
|
159
|
+
return numberToWorkPaperDate(value);
|
|
160
|
+
}
|
|
161
|
+
numberToTime(value) {
|
|
162
|
+
return numberToWorkPaperTime(value);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=work-paper-public-surface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-paper-public-surface.js","sourceRoot":"","sources":["../src/work-paper-public-surface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { SpreadsheetEngine, SheetRecord } from '@bilig/core';
|
|
2
|
+
import { type CellRangeRef, type CellSnapshot, type CellValue } from '@bilig/protocol';
|
|
3
|
+
import { type WorkPaperSheetFormulas, type WorkPaperSheetValues } from './work-paper-sheet-read.js';
|
|
4
|
+
import type { WorkPaperSheetDimensionCache } from './work-paper-sheet-dimension-cache.js';
|
|
5
|
+
import type { RawCellContent, WorkPaperAddressFormatOptions, WorkPaperCellAddress, WorkPaperCellRange, WorkPaperCellType, WorkPaperCellValueDetailedType, WorkPaperCellValueType, WorkPaperSheetDimensions } from './work-paper-types.js';
|
|
6
|
+
export interface WorkPaperReadOperations {
|
|
7
|
+
readonly getCellValue: (address: WorkPaperCellAddress) => CellValue;
|
|
8
|
+
readonly getCellFormula: (address: WorkPaperCellAddress) => string | undefined;
|
|
9
|
+
readonly getCellHyperlink: (address: WorkPaperCellAddress) => string | undefined;
|
|
10
|
+
readonly getCellSerialized: (address: WorkPaperCellAddress) => RawCellContent;
|
|
11
|
+
readonly getRangeValues: (range: WorkPaperCellRange) => CellValue[][];
|
|
12
|
+
readonly getRangeFormulas: (range: WorkPaperCellRange) => WorkPaperSheetFormulas;
|
|
13
|
+
readonly getRangeSerialized: (range: WorkPaperCellRange) => RawCellContent[][];
|
|
14
|
+
readonly getSheetValues: (sheetId: number) => WorkPaperSheetValues;
|
|
15
|
+
readonly getSheetFormulas: (sheetId: number) => WorkPaperSheetFormulas;
|
|
16
|
+
readonly getSheetSerialized: (sheetId: number) => RawCellContent[][];
|
|
17
|
+
readonly getAllSheetsValues: () => Record<string, CellValue[][]>;
|
|
18
|
+
readonly getAllSheetsFormulas: () => Record<string, WorkPaperSheetFormulas>;
|
|
19
|
+
readonly getAllSheetsSerialized: () => Record<string, RawCellContent[][]>;
|
|
20
|
+
readonly getAllSheetsDimensions: () => Record<string, WorkPaperSheetDimensions>;
|
|
21
|
+
readonly getSheetDimensions: (sheetId: number) => WorkPaperSheetDimensions;
|
|
22
|
+
readonly simpleCellAddressFromString: (value: string, defaultSheetId?: number) => WorkPaperCellAddress | undefined;
|
|
23
|
+
readonly simpleCellRangeFromString: (value: string, defaultSheetId?: number) => WorkPaperCellRange | undefined;
|
|
24
|
+
readonly simpleCellAddressToString: (address: WorkPaperCellAddress, optionsOrContextSheetId?: WorkPaperAddressFormatOptions | number) => string;
|
|
25
|
+
readonly simpleCellRangeToString: (range: WorkPaperCellRange, optionsOrContextSheetId?: WorkPaperAddressFormatOptions | number) => string;
|
|
26
|
+
readonly getCellType: (address: WorkPaperCellAddress) => WorkPaperCellType;
|
|
27
|
+
readonly doesCellHaveSimpleValue: (address: WorkPaperCellAddress) => boolean;
|
|
28
|
+
readonly doesCellHaveFormula: (address: WorkPaperCellAddress) => boolean;
|
|
29
|
+
readonly isCellEmpty: (address: WorkPaperCellAddress) => boolean;
|
|
30
|
+
readonly isCellPartOfArray: (address: WorkPaperCellAddress) => boolean;
|
|
31
|
+
readonly getCellValueType: (address: WorkPaperCellAddress) => WorkPaperCellValueType;
|
|
32
|
+
readonly getCellValueDetailedType: (address: WorkPaperCellAddress) => WorkPaperCellValueDetailedType;
|
|
33
|
+
readonly getCellValueFormat: (address: WorkPaperCellAddress) => string | undefined;
|
|
34
|
+
}
|
|
35
|
+
interface WorkPaperReadOperationsRuntime {
|
|
36
|
+
readonly getEngine: () => SpreadsheetEngine;
|
|
37
|
+
readonly getSheetDimensionCache: () => WorkPaperSheetDimensionCache;
|
|
38
|
+
readonly assertReadable: () => void;
|
|
39
|
+
readonly assertNotDisposed: () => void;
|
|
40
|
+
readonly prepareReadableState: () => void;
|
|
41
|
+
readonly flushPendingBatchOps: () => void;
|
|
42
|
+
readonly sheetRecord: (sheetId: number) => SheetRecord;
|
|
43
|
+
readonly sheetName: (sheetId: number) => string;
|
|
44
|
+
readonly a1: (address: Pick<WorkPaperCellAddress, 'row' | 'col'>) => string;
|
|
45
|
+
readonly rangeRef: (range: WorkPaperCellRange) => CellRangeRef;
|
|
46
|
+
readonly listSheetRecords: () => readonly SheetRecord[];
|
|
47
|
+
readonly requireSheetId: (name: string) => number;
|
|
48
|
+
readonly restorePublicFormula: (formula: string, ownerSheetId: number) => string;
|
|
49
|
+
readonly cellSnapshotToRawContent: (cell: CellSnapshot, ownerSheetId: number) => RawCellContent;
|
|
50
|
+
}
|
|
51
|
+
export declare function createWorkPaperReadOperations(runtime: WorkPaperReadOperationsRuntime): WorkPaperReadOperations;
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { ValueTag } from '@bilig/protocol';
|
|
2
|
+
import { buildWorkPaperDenseRange, collectSerializedWorkPaperSheets, collectWorkPaperSheetsByName, readWorkPaperSheetRange, } from './work-paper-sheet-read.js';
|
|
3
|
+
import { formatWorkPaperCellAddressText, formatWorkPaperCellRangeText, parseWorkPaperCellAddressText, parseWorkPaperCellRangeText, resolveDefaultWorkPaperSheetName, } from './work-paper-address-format.js';
|
|
4
|
+
import { readWorkPaperCellClassification, readWorkPaperCellFormula, readWorkPaperCellHasSimpleValue, readWorkPaperCellHyperlink, readWorkPaperCellPartOfArray, readWorkPaperCellValue, readWorkPaperCellValueDetailedType, readWorkPaperCellValueType, readWorkPaperRangeValues, } from './work-paper-cell-read.js';
|
|
5
|
+
export function createWorkPaperReadOperations(runtime) {
|
|
6
|
+
const engine = () => runtime.getEngine();
|
|
7
|
+
const getCellValue = (address) => {
|
|
8
|
+
runtime.assertReadable();
|
|
9
|
+
return readWorkPaperCellValue({ engine: engine(), sheet: runtime.sheetRecord(address.sheet), address });
|
|
10
|
+
};
|
|
11
|
+
const getCellFormula = (address) => {
|
|
12
|
+
runtime.prepareReadableState();
|
|
13
|
+
return readWorkPaperCellFormula({
|
|
14
|
+
engine: engine(),
|
|
15
|
+
sheetName: runtime.sheetName(address.sheet),
|
|
16
|
+
a1: runtime.a1(address),
|
|
17
|
+
ownerSheetId: address.sheet,
|
|
18
|
+
restorePublicFormula: (formula, ownerSheetId) => runtime.restorePublicFormula(formula, ownerSheetId),
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
const getCellSerialized = (address) => {
|
|
22
|
+
runtime.prepareReadableState();
|
|
23
|
+
return runtime.cellSnapshotToRawContent(engine().getCell(runtime.sheetName(address.sheet), runtime.a1(address)), address.sheet);
|
|
24
|
+
};
|
|
25
|
+
const getRangeValues = (range) => {
|
|
26
|
+
runtime.assertReadable();
|
|
27
|
+
return readWorkPaperRangeValues({ engine: engine(), range, rangeRef: () => runtime.rangeRef(range) });
|
|
28
|
+
};
|
|
29
|
+
const getRangeFormulas = (range) => buildWorkPaperDenseRange(range, (address) => getCellFormula(address));
|
|
30
|
+
const getRangeSerialized = (range) => buildWorkPaperDenseRange(range, (address) => getCellSerialized(address));
|
|
31
|
+
const getSheetDimensions = (sheetId) => {
|
|
32
|
+
runtime.prepareReadableState();
|
|
33
|
+
const sheet = runtime.sheetRecord(sheetId);
|
|
34
|
+
const sheetDimensionCache = runtime.getSheetDimensionCache();
|
|
35
|
+
const cached = sheetDimensionCache.get(sheetId);
|
|
36
|
+
if (cached) {
|
|
37
|
+
return { width: cached.width, height: cached.height };
|
|
38
|
+
}
|
|
39
|
+
const dimensions = sheetDimensionCache.scan(sheet);
|
|
40
|
+
sheetDimensionCache.cache(sheetId, dimensions);
|
|
41
|
+
return dimensions;
|
|
42
|
+
};
|
|
43
|
+
const getCellValueFormat = (address) => {
|
|
44
|
+
runtime.flushPendingBatchOps();
|
|
45
|
+
return engine().getCell(runtime.sheetName(address.sheet), runtime.a1(address)).format;
|
|
46
|
+
};
|
|
47
|
+
const isCellEmpty = (address) => {
|
|
48
|
+
runtime.flushPendingBatchOps();
|
|
49
|
+
return engine().getCellValue(runtime.sheetName(address.sheet), runtime.a1(address)).tag === ValueTag.Empty;
|
|
50
|
+
};
|
|
51
|
+
const isCellPartOfArray = (address) => {
|
|
52
|
+
runtime.flushPendingBatchOps();
|
|
53
|
+
return readWorkPaperCellPartOfArray({
|
|
54
|
+
address,
|
|
55
|
+
spillRanges: engine().getSpillRanges(),
|
|
56
|
+
requireSheetId: (sheetName) => runtime.requireSheetId(sheetName),
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
getCellValue,
|
|
61
|
+
getCellFormula,
|
|
62
|
+
getCellHyperlink(address) {
|
|
63
|
+
return readWorkPaperCellHyperlink(getCellFormula(address));
|
|
64
|
+
},
|
|
65
|
+
getCellSerialized,
|
|
66
|
+
getRangeValues,
|
|
67
|
+
getRangeFormulas,
|
|
68
|
+
getRangeSerialized,
|
|
69
|
+
getSheetValues(sheetId) {
|
|
70
|
+
return readWorkPaperSheetRange({
|
|
71
|
+
sheetId,
|
|
72
|
+
dimensions: getSheetDimensions(sheetId),
|
|
73
|
+
readRange: (range) => getRangeValues(range),
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
getSheetFormulas(sheetId) {
|
|
77
|
+
return readWorkPaperSheetRange({
|
|
78
|
+
sheetId,
|
|
79
|
+
dimensions: getSheetDimensions(sheetId),
|
|
80
|
+
readRange: (range) => getRangeFormulas(range),
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
getSheetSerialized(sheetId) {
|
|
84
|
+
return readWorkPaperSheetRange({
|
|
85
|
+
sheetId,
|
|
86
|
+
dimensions: getSheetDimensions(sheetId),
|
|
87
|
+
readRange: (range) => getRangeSerialized(range),
|
|
88
|
+
});
|
|
89
|
+
},
|
|
90
|
+
getAllSheetsValues() {
|
|
91
|
+
runtime.assertReadable();
|
|
92
|
+
return collectWorkPaperSheetsByName(runtime.listSheetRecords(), (sheet) => this.getSheetValues(sheet.id));
|
|
93
|
+
},
|
|
94
|
+
getAllSheetsFormulas() {
|
|
95
|
+
return collectWorkPaperSheetsByName(runtime.listSheetRecords(), (sheet) => this.getSheetFormulas(sheet.id));
|
|
96
|
+
},
|
|
97
|
+
getAllSheetsSerialized() {
|
|
98
|
+
return collectSerializedWorkPaperSheets({
|
|
99
|
+
sheets: runtime.listSheetRecords(),
|
|
100
|
+
readSheet: (sheet) => this.getSheetSerialized(sheet.id),
|
|
101
|
+
runtimeSnapshot: engine().exportSnapshot(),
|
|
102
|
+
});
|
|
103
|
+
},
|
|
104
|
+
getAllSheetsDimensions() {
|
|
105
|
+
return collectWorkPaperSheetsByName(runtime.listSheetRecords(), (sheet) => getSheetDimensions(sheet.id));
|
|
106
|
+
},
|
|
107
|
+
getSheetDimensions,
|
|
108
|
+
simpleCellAddressFromString(value, defaultSheetId) {
|
|
109
|
+
runtime.assertNotDisposed();
|
|
110
|
+
const defaultSheetName = resolveDefaultWorkPaperSheetName({
|
|
111
|
+
...(defaultSheetId !== undefined ? { defaultSheetId } : {}),
|
|
112
|
+
sheets: runtime.listSheetRecords(),
|
|
113
|
+
sheetName: (sheetId) => runtime.sheetName(sheetId),
|
|
114
|
+
});
|
|
115
|
+
return parseWorkPaperCellAddressText({
|
|
116
|
+
value,
|
|
117
|
+
...(defaultSheetName !== undefined ? { defaultSheetName } : {}),
|
|
118
|
+
requireSheetId: (sheetName) => runtime.requireSheetId(sheetName),
|
|
119
|
+
});
|
|
120
|
+
},
|
|
121
|
+
simpleCellRangeFromString(value, defaultSheetId) {
|
|
122
|
+
runtime.assertNotDisposed();
|
|
123
|
+
const defaultSheetName = resolveDefaultWorkPaperSheetName({
|
|
124
|
+
...(defaultSheetId !== undefined ? { defaultSheetId } : {}),
|
|
125
|
+
sheets: runtime.listSheetRecords(),
|
|
126
|
+
sheetName: (sheetId) => runtime.sheetName(sheetId),
|
|
127
|
+
});
|
|
128
|
+
return parseWorkPaperCellRangeText({
|
|
129
|
+
value,
|
|
130
|
+
...(defaultSheetName !== undefined ? { defaultSheetName } : {}),
|
|
131
|
+
requireSheetId: (sheetName) => runtime.requireSheetId(sheetName),
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
simpleCellAddressToString(address, optionsOrContextSheetId = {}) {
|
|
135
|
+
runtime.assertNotDisposed();
|
|
136
|
+
return formatWorkPaperCellAddressText({
|
|
137
|
+
address,
|
|
138
|
+
optionsOrContextSheetId,
|
|
139
|
+
sheetName: (sheetId) => runtime.sheetName(sheetId),
|
|
140
|
+
});
|
|
141
|
+
},
|
|
142
|
+
simpleCellRangeToString(range, optionsOrContextSheetId = {}) {
|
|
143
|
+
return formatWorkPaperCellRangeText({
|
|
144
|
+
range,
|
|
145
|
+
optionsOrContextSheetId,
|
|
146
|
+
sheetName: (sheetId) => runtime.sheetName(sheetId),
|
|
147
|
+
});
|
|
148
|
+
},
|
|
149
|
+
getCellType(address) {
|
|
150
|
+
runtime.flushPendingBatchOps();
|
|
151
|
+
const cell = engine().getCell(runtime.sheetName(address.sheet), runtime.a1(address));
|
|
152
|
+
return readWorkPaperCellClassification({
|
|
153
|
+
hasFormula: cell.formula !== undefined,
|
|
154
|
+
isEmpty: isCellEmpty(address),
|
|
155
|
+
isPartOfArray: isCellPartOfArray(address),
|
|
156
|
+
});
|
|
157
|
+
},
|
|
158
|
+
doesCellHaveSimpleValue(address) {
|
|
159
|
+
runtime.flushPendingBatchOps();
|
|
160
|
+
const cell = engine().getCell(runtime.sheetName(address.sheet), runtime.a1(address));
|
|
161
|
+
return readWorkPaperCellHasSimpleValue({
|
|
162
|
+
hasFormula: cell.formula !== undefined,
|
|
163
|
+
isEmpty: isCellEmpty(address),
|
|
164
|
+
});
|
|
165
|
+
},
|
|
166
|
+
doesCellHaveFormula(address) {
|
|
167
|
+
runtime.flushPendingBatchOps();
|
|
168
|
+
return engine().getCell(runtime.sheetName(address.sheet), runtime.a1(address)).formula !== undefined;
|
|
169
|
+
},
|
|
170
|
+
isCellEmpty,
|
|
171
|
+
isCellPartOfArray,
|
|
172
|
+
getCellValueType(address) {
|
|
173
|
+
return readWorkPaperCellValueType(getCellValue(address));
|
|
174
|
+
},
|
|
175
|
+
getCellValueDetailedType(address) {
|
|
176
|
+
const value = getCellValue(address);
|
|
177
|
+
return readWorkPaperCellValueDetailedType({
|
|
178
|
+
value,
|
|
179
|
+
format: value.tag === ValueTag.Number ? getCellValueFormat(address) : undefined,
|
|
180
|
+
});
|
|
181
|
+
},
|
|
182
|
+
getCellValueFormat,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=work-paper-read-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-paper-read-operations.js","sourceRoot":"","sources":["../src/work-paper-read-operations.ts"],"names":[],"mappings":"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"}
|