@sheetxl/sdk 0.8.0-beta.11 → 0.8.0-beta.12
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/browser/esm/{BpgskG1Er_lGQ_yS.mjs → -Jx-jNHmtIQQfLvK.mjs} +1 -1
- package/browser/esm/{BLoUBId2xZpXAK_H.mjs → 2WuhYrIpYmOR5H73.mjs} +15 -15
- package/browser/esm/{Ctjb0SsxV4K4MMqG.mjs → 2mIwPy2D2JUX-9wx.mjs} +2 -2
- package/browser/esm/{CkxWugaJFjDGZNZ-.mjs → B3wf5vZCsWfWsDbj.mjs} +1 -1
- package/browser/esm/{BjkCiv5Jz6WYKZeu.mjs → BIHrHjRGWVlJglcp.mjs} +2 -2
- package/browser/esm/{BtvLTTfSBdAKplVG.mjs → BTFBedJMRWGvZyCE.mjs} +1 -1
- package/browser/esm/{C4MqfLn9Dm-l3OIk.mjs → BdCJNawfifyPupCP.mjs} +1 -1
- package/browser/esm/{CV5EGEjG5_-CPpP0.mjs → Bg5Di9GLNAkbqQ1P.mjs} +3 -3
- package/browser/esm/{C2VbEI_XVAoseAwa.mjs → BnC4-27Igwb8oDf2.mjs} +2 -2
- package/browser/esm/{CQYjO777cmAznUzK.mjs → Bt8_m94tBdks209L.mjs} +1 -1
- package/browser/esm/{C16ycKja6zG0crV_.mjs → BudSIfXBAsTxvu-K.mjs} +17836 -15712
- package/browser/esm/{DvAaxH6z_tGvrRzl.mjs → C9u8FUewte5ugUjH.mjs} +686 -686
- package/browser/esm/{DEiPS3Dr-s4fPbVZ.mjs → CBYMTDzMf1Vh7pkw.mjs} +1 -1
- package/browser/esm/{Dyq_ivuHvlXLwPCl.mjs → CNdjyofiRu6CYOrr.mjs} +1106 -1102
- package/browser/esm/{PcHFjNzQsE54POri.mjs → CRkYR-siY2C994KV.mjs} +1 -1
- package/browser/esm/{C5E6zSGAALWf61n4.mjs → CTe2qfmIUEad6FJv.mjs} +2 -2
- package/browser/esm/{BoV6zPBnfqCBCqZ7.mjs → CUzYuYTTGsChC_kZ.mjs} +3841 -3148
- package/browser/esm/CdEO8CEee6lEhabA.mjs +117 -0
- package/browser/esm/{S2dNNx1a5ydRnARM.mjs → CfRqiPDg6RBTg1EN.mjs} +2 -2
- package/browser/esm/{ClbvFbFzFzXLBKNN.mjs → CndRBvVfQUJIYRRj.mjs} +50 -50
- package/browser/esm/{BnG31I6Oj_HEtSPS.mjs → CwOPLXU3-9ZHGyOT.mjs} +1 -1
- package/browser/esm/{CHU6iu_WGlm7fLET.mjs → Cxjxk0ncRKx80I-w.mjs} +1 -1
- package/browser/esm/D2RZh0O9neOsyLAE.mjs +281 -0
- package/browser/esm/{BkBhLS0l6z8sxI6D.mjs → D64dM68B1pKYFzdP.mjs} +2 -2
- package/browser/esm/{BVDiOXGMc5_FMGfy.mjs → D9xNz46kAfXMZzp4.mjs} +2 -2
- package/browser/esm/{zlLuW405RSguy4Kn.mjs → DK899HhWX1HINMC1.mjs} +53 -53
- package/browser/esm/{B7aUIvgUjncMMD_i.mjs → DPhGQLNGmDZwODwJ.mjs} +5 -4
- package/browser/esm/{gssVX_FH1XFN-twD.mjs → DVroRnhi-5IDXNgM.mjs} +1 -1
- package/{node/esm/CZICGK_ss0HoGHCP.mjs → browser/esm/DZiivy0NmO1Vnyzk.mjs} +2 -2
- package/browser/esm/{ClPfI4lODvCece29.mjs → DgrAuRD2qr2DvFeJ.mjs} +61 -61
- package/browser/esm/{CU3DmJ-YnVVrC1_k.mjs → DobHLF6VjHr7Xi40.mjs} +1 -1
- package/browser/esm/{CaB7J-xgfKO2uAkG.mjs → DwZCT7DZiiXoTweg.mjs} +2 -2
- package/browser/esm/{BMyDRQ716j79h_bH.mjs → DwwR3O2sEZApPSTF.mjs} +6 -6
- package/browser/esm/{DLLE0FZNsKxbBzRn.mjs → Tah7cnFb_HNZdLtj.mjs} +45 -45
- package/browser/esm/{Dlmig06rIo7cInRk.mjs → fXWUMDhZ5yMSO629.mjs} +1 -1
- package/browser/esm/{DWNzqw7DUKwoxjri.mjs → hCQJcmIzPDxDEv2q.mjs} +2 -2
- package/browser/esm/index.mjs +679 -542
- package/browser/esm/{BFagR2JeWs74iAG3.mjs → qO-ujUrgq6H3TQix.mjs} +1 -1
- package/browser/esm/w6Jea0TiclPrYZ2M.mjs +1703 -0
- package/browser/esm/yuhcOYw6SHQ-RCm3.mjs +114 -0
- package/node/esm/-TA0MneBDKdGhsib.mjs +8668 -0
- package/node/esm/{B21JjOLghRoDOrkx.mjs → B-HUPAcqvK0eeeCz.mjs} +1 -1
- package/node/esm/{DNRhGK-8Tr9xcRyc.mjs → BL2iiEoqxDEV2Xrg.mjs} +3 -3
- package/node/esm/{D1TKBVmoKGAXf37B.mjs → BNXLOEddJ6O9gYws.mjs} +2 -2
- package/node/esm/{BrCKGFRsX_ezFJ4B.mjs → BSvOluusoDM4z_dx.mjs} +15 -15
- package/node/esm/{BIwObuhTJYf0jpUa.mjs → BskP3b8vUoIOGLY6.mjs} +2 -2
- package/node/esm/{2Kihw_-5lVTEnwMa.mjs → Btw4148Ot8ifhNc1.mjs} +1 -1
- package/node/esm/{BqiexuA89caYnAPz.mjs → C14-R6tifRh7pc0p.mjs} +1 -1
- package/node/esm/{DUTskXCXref-IJnI.mjs → C99zzq8DImQXi4BQ.mjs} +47 -47
- package/node/esm/{D8zEN-6ZdDqDvTxM.mjs → CBuEu5Jk-LfaDy-H.mjs} +61 -61
- package/node/esm/{yavzZOiZW_EjG9lE.mjs → CG-qBU5BAaVz7e-P.mjs} +1 -1
- package/node/esm/CPI58duc0j0a-HpJ.mjs +115 -0
- package/node/esm/{CCN5vD410obwdz38.mjs → CRt3vXe6YmXzqk3H.mjs} +15 -14
- package/node/esm/{CzXT00vrQa1_gvW9.mjs → C_aL7CGS1lrNn1Ng.mjs} +1 -1
- package/node/esm/{CZiqiay42tFTrLI4.mjs → C_xf5Bz30VqiJjXn.mjs} +1 -1
- package/node/esm/{BIRq1kT7lLRzns9t.mjs → CiIymQN6aJCul62g.mjs} +9 -9
- package/node/esm/{CNCNJNg890KdgkWh.mjs → Ci_zLYmCD7e-C79O.mjs} +1 -1
- package/{browser/esm/D5np__Jb1euAyaLw.mjs → node/esm/CkRYLed8Mmn3giNg.mjs} +2 -2
- package/node/esm/D3ptRKzASqBut1DE.mjs +117 -0
- package/node/esm/{cGwrLA1RCE-WhJ7w.mjs → D4ROK9UwDpS6jO3Z.mjs} +1 -1
- package/node/esm/{mFiBSM7XgBHV9AY7.mjs → D8hO07ToAibIuniw.mjs} +1535 -1531
- package/node/esm/{CDHdgJXH2vS71WMc.mjs → DUTmDHbFbhLDT4F3.mjs} +1 -1
- package/node/esm/{CGp6VZL-gZa9Uezx.mjs → DV5CU37aEbFbWFL0.mjs} +1 -1
- package/node/esm/{De2IONBxQhz-Qbyh.mjs → DdoiuKg9BKubtF1V.mjs} +1 -1
- package/node/esm/{Db0v7zXNnyjBIjjI.mjs → DggQ23jKMpwhENfa.mjs} +2 -2
- package/node/esm/{CwePQwTILHHjGDkZ.mjs → DhS6yWjrrSNIJMsn.mjs} +204 -204
- package/node/esm/{D_t5AUxSm7_icjzq.mjs → DhTya_mhmN53vskv.mjs} +1 -1
- package/node/esm/{DOU54VsOjG-m-NyQ.mjs → Dn1M7YWi25DeeYUb.mjs} +1 -1
- package/node/esm/{DkwIPzKc3UwdUIfM.mjs → DrCf6ITcBhVOFpRj.mjs} +6 -6
- package/node/esm/{D2KBymQJd1XhpeQD.mjs → DxazKtROyaI51dWl.mjs} +1 -1
- package/node/esm/{D6e2z7eZpxOJXHc7.mjs → Q_S1g46ZOTrdhTae.mjs} +1 -1
- package/node/esm/{OVfaSb506tNSIvbv.mjs → Vocy-I9dKzZMr0Ct.mjs} +19038 -16822
- package/node/esm/ZXPFcsT2zrALCZux.mjs +289 -0
- package/node/esm/{857CIBgQgGpnqrXk.mjs → eimUGjiIP-b8HiM6.mjs} +55 -55
- package/node/esm/{Bbf1Pm9Gk7YpLTvg.mjs → icn2nX5Z8e_3mNAv.mjs} +1 -1
- package/node/esm/index.mjs +740 -603
- package/node/esm/{Ct3h15sCus4Tgt6M.mjs → lGJ42sHqg5if2bba.mjs} +624 -616
- package/node/esm/{CdJHUJSBRHZoryPe.mjs → pYtP7wPyS96NQyXS.mjs} +59 -59
- package/package.json +6 -6
- package/resources/locales/de/model.msg.json +8 -2
- package/resources/locales/en/model.msg.json +9 -2
- package/types/scripting-api.json +10619 -10446
- package/types/scripting-enums.json +20 -1
- package/types/scripting.d.ts +1233 -296
- package/types/src/{sheet → anomalies}/_Anomalies.d.ts +3 -3
- package/types/src/anomalies/_FocusTable.d.ts +11 -0
- package/types/src/{sheet/_AnomalyFormulaChecks.d.ts → anomalies/_FormulaChecks.d.ts} +10 -2
- package/types/src/{sheet/_AnomalyLabelChecks.d.ts → anomalies/_LabelChecks.d.ts} +1 -1
- package/types/src/anomalies/_LiteralChecks.d.ts +35 -0
- package/types/src/anomalies/_SeriesChecks.d.ts +13 -0
- package/types/src/calculation/Calculation.d.ts +47 -9
- package/types/src/calculation/ExternalBookBindings.d.ts +2 -3
- package/types/src/calculation/ICalculation.d.ts +96 -9
- package/types/src/calculation/NamedFormulaCollection.d.ts +104 -8
- package/types/src/calculation/_CloneBoundary.d.ts +1 -1
- package/types/src/calculation/compiler/ASTTypes.d.ts +6 -2
- package/types/src/calculation/compiler/Types.d.ts +8 -0
- package/types/src/calculation/engine/CalcBackend.d.ts +104 -6
- package/types/src/calculation/executor/CalcExecutor.d.ts +73 -22
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +17 -1
- package/types/src/calculation/executor/_WhatIf.d.ts +50 -0
- package/types/src/calculation/formula/FormulaBlock.d.ts +4 -3
- package/types/src/calculation/formula/IFormulaBlock.d.ts +5 -0
- package/types/src/calculation/functions/_DataTableFunction.d.ts +14 -0
- package/types/src/calculation/grid/CalcGrid.d.ts +4 -6
- package/types/src/calculation/grid/CalcGridBackend.d.ts +5 -27
- package/types/src/calculation/grid/CalcGridProxy.d.ts +0 -2
- package/types/src/calculation/grid/CalcGridUtils.d.ts +4 -2
- package/types/src/calculation/grid/ICalcGrid.d.ts +16 -12
- package/types/src/calculation/grid/_CalcRequest.d.ts +17 -5
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +2 -0
- package/types/src/calculation/spatial/SpillEntry.d.ts +16 -2
- package/types/src/calculation/state/CalcNode.d.ts +0 -1
- package/types/src/calculation/state/CalcScope.d.ts +29 -0
- package/types/src/calculation/state/CalcState.d.ts +26 -4
- package/types/src/calculation/state/CalculationContext.d.ts +28 -1
- package/types/src/calculation/state/DeferredCalls.d.ts +260 -0
- package/types/src/calculation/state/IContextContainer.d.ts +20 -0
- package/types/src/calculation/state/_PendingOverlayGrid.d.ts +6 -0
- package/types/src/calculation/state/_WhatIfLayer.d.ts +91 -0
- package/types/src/cell/ICell.d.ts +53 -34
- package/types/src/cellControl/CellControl.d.ts +67 -0
- package/types/src/cellControl/CellControlCollection.d.ts +29 -0
- package/types/src/cellControl/CellControlRegistry.d.ts +47 -0
- package/types/src/cellControl/ICellControl.d.ts +99 -0
- package/types/src/cellControl/ICellControlCollection.d.ts +67 -0
- package/types/src/cellControl/index.d.ts +4 -0
- package/types/src/cellRange/ICellRange.d.ts +207 -59
- package/types/src/cellRange/ICellRanges.d.ts +4 -3
- package/types/src/chart/layout/ChartLayout.d.ts +5 -1
- package/types/src/chart/resolve/_Resolve.d.ts +10 -0
- package/types/src/chart/resolve/_ResolvedChart.d.ts +5 -2
- package/types/src/collections/ISparseGrid.d.ts +11 -2
- package/types/src/collections/MixedTypedArrayList.d.ts +8 -2
- package/types/src/collections/SparseGrid.d.ts +3 -8
- package/types/src/condition/AnchoredConditional.d.ts +2 -2
- package/types/src/externalBook/IExternalBook.d.ts +3 -4
- package/types/src/fetch/Fetcher.d.ts +15 -0
- package/types/src/fetch/IFetcher.d.ts +47 -0
- package/types/src/fetch/_WorkbookFetch.d.ts +43 -0
- package/types/src/fetch/index.d.ts +3 -0
- package/types/src/fill/PaintUtils.d.ts +3 -1
- package/types/src/hyperlink/IHyperlink.d.ts +10 -0
- package/types/src/hyperlink/_Hyperlink.d.ts +4 -1
- package/types/src/index.d.ts +2 -1
- package/types/src/named/INamedCollection.d.ts +36 -0
- package/types/src/named/NamedCollection.d.ts +18 -0
- package/types/src/primitives/AsyncValue.d.ts +58 -0
- package/types/src/resource/IResource.d.ts +9 -0
- package/types/src/resource/IResourceCollection.d.ts +4 -0
- package/types/src/resource/Resource.d.ts +2 -0
- package/types/src/resource/_AddResource.d.ts +13 -0
- package/types/src/richData/CellImage.d.ts +95 -0
- package/types/src/richData/Hyperlink.d.ts +49 -0
- package/types/src/richData/IRichDataCollection.d.ts +76 -0
- package/types/src/richData/IRichDataKind.d.ts +55 -11
- package/types/src/richData/RichArray.d.ts +42 -0
- package/types/src/richData/RichDataCollection.d.ts +23 -0
- package/types/src/richData/RichDataRegistry.d.ts +46 -14
- package/types/src/richData/RichDataValues.d.ts +20 -0
- package/types/src/richData/RichRecord.d.ts +68 -0
- package/types/src/richData/RichText.d.ts +5 -5
- package/types/src/richData/index.d.ts +6 -0
- package/types/src/scripting/FunctionArguments.d.ts +17 -1
- package/types/src/scripting/FunctionCollection.d.ts +8 -0
- package/types/src/scripting/Scripts.d.ts +10 -0
- package/types/src/scripting/TypedFunction.d.ts +2 -0
- package/types/src/sheet/ICellContainerOptions.d.ts +6 -0
- package/types/src/sheet/IWorksheet.d.ts +24 -17
- package/types/src/sheet/SheetCell.d.ts +17 -1
- package/types/src/sheet/SheetRange.d.ts +8 -2
- package/types/src/sheet/SheetRanges.d.ts +2 -2
- package/types/src/sheet/Worksheet.d.ts +110 -56
- package/types/src/sheet/_ListenerAnchor.d.ts +7 -1
- package/types/src/sheet/_ScalarListFactory.d.ts +54 -6
- package/types/src/sheet/_SheetMutations.d.ts +4 -1
- package/types/src/sheet/_SheetStateTypes.d.ts +23 -11
- package/types/src/workbook/IWorkbook.d.ts +40 -1
- package/types/src/workbook/Workbook.d.ts +25 -3
- package/types/src/workbook/WorkbookRanges.d.ts +1 -1
- package/browser/esm/BGOFfpxr2jPIdqmV.mjs +0 -40
- package/browser/esm/f1IoRb7tEb0QmCSt.mjs +0 -110
- package/browser/esm/nvU0ClAbf0g94YBK.mjs +0 -1695
- package/node/esm/B084DssTcdBheTp_.mjs +0 -7966
- package/node/esm/Df1bL6VFvrqIdSLB.mjs +0 -40
- package/node/esm/DrTZbfemSLq2mseG.mjs +0 -111
- package/types/src/dataTable/DataTable.d.ts +0 -67
- package/types/src/dataTable/DataTableCollection.d.ts +0 -19
- package/types/src/dataTable/IDataTable.d.ts +0 -99
- package/types/src/dataTable/IDataTableCollection.d.ts +0 -18
- package/types/src/dataTable/index.d.ts +0 -6
|
@@ -72,14 +72,15 @@ export interface ICellRanges {
|
|
|
72
72
|
* This is Excel's `Ctrl+Enter` fill: the same scalar is written to all selected cells — across every
|
|
73
73
|
* discontiguous range — as a single {@link ICellRanges.doBatch} operation (one undo step). A formula
|
|
74
74
|
* string (e.g. `"=A1+1"`) is coerced and its relative references adjust per cell, exactly as
|
|
75
|
-
* {@link ICellRange.setValue} does within one range.
|
|
75
|
+
* {@link ICellRange.setValue} does within one range. It takes what that does: a `Date`, or a rich
|
|
76
|
+
* value's JSON (`{ type, data }`), which each cell makes into its own value.
|
|
76
77
|
*
|
|
77
78
|
* Only the scalar-broadcast form exists (no `setValues`): a 2D shape has no coherent meaning spread
|
|
78
79
|
* across discontiguous ranges of differing sizes.
|
|
79
80
|
* @see
|
|
80
81
|
* {@link ICellRange.setValue}
|
|
81
82
|
*/
|
|
82
|
-
setValue(value: ICellRange.
|
|
83
|
+
setValue(value: ICellRange.InteropScalarUpdate, options?: ICellRange.SetValuesOptions): this;
|
|
83
84
|
/**
|
|
84
85
|
* {@inheritDoc ICellRange.merge}
|
|
85
86
|
*/
|
|
@@ -335,7 +336,7 @@ export interface ICellRanges {
|
|
|
335
336
|
/**
|
|
336
337
|
* {@inheritDoc ICellRange.addListener}
|
|
337
338
|
*/
|
|
338
|
-
addListener(listener: ICellRange.Listener
|
|
339
|
+
addListener(listener: ICellRange.Listener<ICellRanges>, options?: ICellRange.ListenerOptions): IListener.Remove;
|
|
339
340
|
/**
|
|
340
341
|
* {@link ICellRange.addWatch} across every area, as ONE expression authored at a shared origin.
|
|
341
342
|
*
|
|
@@ -24,7 +24,11 @@ export interface ChartLayout {
|
|
|
24
24
|
width: number;
|
|
25
25
|
height: number;
|
|
26
26
|
chartArea: {
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* `undefined` where the chart states no fill: the chart area is the background of where it is
|
|
29
|
+
* drawn (Excel draws it in the theme's background color).
|
|
30
|
+
*/
|
|
31
|
+
fill: IFill.JSON | null | undefined;
|
|
28
32
|
border: IStroke.JSON | null;
|
|
29
33
|
/** The radius of the chart area's corners, measured along the border's path; 0 for square corners. */
|
|
30
34
|
cornerRadius: number;
|
|
@@ -45,6 +45,16 @@ export declare const formatValue: (formatCode: string, value: number, date1904:
|
|
|
45
45
|
* scatter's point, best fit on a pie. A bubble's and a radar's are believed.
|
|
46
46
|
*/
|
|
47
47
|
export declare const defaultLabelPosition: (group: Pick<ChartModel.Group, "type" | "grouping">) => ResolvedChart.LabelPosition;
|
|
48
|
+
/**
|
|
49
|
+
* The label positions Excel offers a classic group's type, `null` for a 2016 or custom type
|
|
50
|
+
* (measured 2026-10-24 through `DataLabels.Position`): every bar position on a clustered bar, none
|
|
51
|
+
* outside a stacked one, around the point on a line, stock, scatter or bubble, the end positions and
|
|
52
|
+
* best fit on a pie; none on an area, a doughnut, a radar, a surface, or a 3-D bar, line or area.
|
|
53
|
+
* Excel refuses a file that states any other `dLblPos` for the type.
|
|
54
|
+
*/
|
|
55
|
+
export declare const labelPositionsOf: (group: Pick<ChartModel.Group, "type" | "grouping" | "is3D">) => readonly ResolvedChart.LabelPosition[] | null;
|
|
56
|
+
/** Where a group's labels sit: the stated position where the type offers it, else the type's default. */
|
|
57
|
+
export declare const labelPositionOf: (group: Pick<ChartModel.Group, "type" | "grouping" | "is3D">, stated: ResolvedChart.LabelPosition | undefined) => ResolvedChart.LabelPosition;
|
|
48
58
|
/** A series' automatic color, `#RRGGBB`: what it is drawn in where it states no color (the legacy style's, S3). */
|
|
49
59
|
export declare function automaticSeriesColor(model: ChartModel.ChartSpace, theme: ChartTheme, idx: number): string;
|
|
50
60
|
export declare function resolveChart(model: ChartModel.ChartSpace, theme: ChartTheme, data?: ChartDataReader | null): ResolvedChart;
|
|
@@ -20,9 +20,12 @@ export interface ResolvedChart {
|
|
|
20
20
|
chartEx?: boolean;
|
|
21
21
|
/** The chart's own text font: what text with no font of its own is drawn in. */
|
|
22
22
|
font: ResolvedChart.Font;
|
|
23
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* `fill` is `undefined` where the chart states none: it is drawn in the background of where it is
|
|
25
|
+
* drawn. `cornerRadius` in points: 0 for square corners.
|
|
26
|
+
*/
|
|
24
27
|
chartArea: {
|
|
25
|
-
fill: IFill.JSON | null;
|
|
28
|
+
fill: IFill.JSON | null | undefined;
|
|
26
29
|
border: ResolvedChart.Stroke | null;
|
|
27
30
|
cornerRadius: number;
|
|
28
31
|
};
|
|
@@ -43,8 +43,8 @@ export declare namespace ISparseGrid {
|
|
|
43
43
|
*/
|
|
44
44
|
type RunIteratorResult<T = any> = IteratorResult<ISparseGrid.RunEntry<T>>;
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
46
|
+
* Options for {@link ISparseGrid.getRuns}. Runs always follow the grid's own axis, in order;
|
|
47
|
+
* there is no reverse or skip.
|
|
48
48
|
*/
|
|
49
49
|
interface RunIteratorOptions {
|
|
50
50
|
/**
|
|
@@ -65,6 +65,15 @@ export declare namespace ISparseGrid {
|
|
|
65
65
|
* This is used as a performance optimization for iterators that are reading gaps. (fillEmpty)
|
|
66
66
|
*/
|
|
67
67
|
overflowRun?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Returns the same iterator result from every `next`, with its entry rewritten.
|
|
70
|
+
*
|
|
71
|
+
* `true` reuses one result per iterator; an object reuses that object. This avoids an
|
|
72
|
+
* allocation per run, but a result must be read before the next call to `next`.
|
|
73
|
+
*
|
|
74
|
+
* @defaultValue false
|
|
75
|
+
*/
|
|
76
|
+
reuseResult?: boolean | ISparseGrid.RunIteratorResult<any>;
|
|
68
77
|
}
|
|
69
78
|
}
|
|
70
79
|
//# sourceMappingURL=ISparseGrid.d.ts.map
|
|
@@ -2,8 +2,8 @@ import { IList, IListLike } from './IList';
|
|
|
2
2
|
/**
|
|
3
3
|
* An immutable run of mixed scalar values in ONE `ArrayBuffer` or `SharedArrayBuffer`.
|
|
4
4
|
*
|
|
5
|
-
* Numbers, booleans and blanks are stored natively; strings and
|
|
6
|
-
* {@link MixedTypedArrayList.Codec} resolves. The buffer is the whole list: another thread that
|
|
5
|
+
* Numbers, booleans and blanks are stored natively; strings, errors and rich values as `int32`
|
|
6
|
+
* ids that a {@link MixedTypedArrayList.Codec} resolves. The buffer is the whole list: another thread that
|
|
7
7
|
* receives its {@link MixedTypedArrayList.Handle} (and has the same codec) reads it without a copy.
|
|
8
8
|
*
|
|
9
9
|
* @remarks
|
|
@@ -150,6 +150,12 @@ export declare namespace MixedTypedArrayList {
|
|
|
150
150
|
encodeError(value: T): number;
|
|
151
151
|
/** The error for a code. */
|
|
152
152
|
decodeError(code: number): T;
|
|
153
|
+
/** Whether `value` is a rich value {@link encodeRich} stores. Omitted, none is. */
|
|
154
|
+
isRich?(value: object): boolean;
|
|
155
|
+
/** The id of a rich value. */
|
|
156
|
+
encodeRich?(value: T): number;
|
|
157
|
+
/** The rich value an id names. */
|
|
158
|
+
decodeRich?(id: number): T;
|
|
153
159
|
}
|
|
154
160
|
/**
|
|
155
161
|
* What rebuilds a list over its buffer. Passes through `structuredClone` and `postMessage`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Direction, RangeAxis, CellCoords, RangeCoords } from '@sheetxl/utils';
|
|
2
2
|
import { Tuple } from './Tuple';
|
|
3
3
|
import { IReadableList } from './IReadableList';
|
|
4
4
|
import { IGrid } from './IGrid';
|
|
@@ -20,13 +20,7 @@ export declare class SparseGrid<T = any> implements ISparseGrid<T> {
|
|
|
20
20
|
private _isShared;
|
|
21
21
|
private _createRun;
|
|
22
22
|
constructor(options?: SparseGrid.ConstructorOptions);
|
|
23
|
-
/**
|
|
24
|
-
* Returns an IterableIterator over all the runs in the sparse grid.
|
|
25
|
-
* Each run is a contiguous list of values in the grid.
|
|
26
|
-
*
|
|
27
|
-
* @returns An iterator that yields [majorIndex, minorIndex, IReadableList] entries
|
|
28
|
-
*/
|
|
29
|
-
/** {@inheritDoc ISparseGrid.getMaxCoords} */
|
|
23
|
+
/** {@inheritDoc ISparseGrid.getRuns} */
|
|
30
24
|
getRuns(options?: ISparseGrid.RunIteratorOptions): ISparseGrid.RunIterableIterator<T>;
|
|
31
25
|
/** {@inheritDoc IGrid.getAxis} */
|
|
32
26
|
getAxis(): RangeAxis;
|
|
@@ -36,6 +30,7 @@ export declare class SparseGrid<T = any> implements ISparseGrid<T> {
|
|
|
36
30
|
values(options?: IGrid.IteratorOptions): IGrid.ValueIterator;
|
|
37
31
|
/** {@inheritDoc IGrid.keys} */
|
|
38
32
|
keys(options?: IGrid.IteratorOptions): IGrid.KeyIterator;
|
|
33
|
+
private _entriesPrivateResult;
|
|
39
34
|
private _updateMajorSpan;
|
|
40
35
|
/** {@inheritDoc IGrid.setValues} */
|
|
41
36
|
setValues(values: Tuple.GridTuple<T>): this;
|
|
@@ -16,7 +16,7 @@ import * as _ConditionUtils from '../condition/_ConditionUtils';
|
|
|
16
16
|
* Implementation of {@link IDataValidation}.
|
|
17
17
|
*/
|
|
18
18
|
export declare abstract class AnchoredConditional<STATE extends AnchoredConditional.State, EVENTS extends ICondition.Events = ICondition.Events, JSON = any> extends AbstractAnchored<STATE, EVENTS> implements IAnchored, ITransaction.ITransactional, IListener.ISource<IAnchored> {
|
|
19
|
-
protected _rangeListener: ICellRange.Listener | null;
|
|
19
|
+
protected _rangeListener: ICellRange.Listener<ICellRanges> | null;
|
|
20
20
|
protected _getValueGrid: () => ISparseGrid<Scalar>;
|
|
21
21
|
/**
|
|
22
22
|
* One registered watch per formula the condition asked for, keyed by the formula: its remove, and
|
|
@@ -86,7 +86,7 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
|
|
|
86
86
|
* cluster: one calc pass notifies each rule it intersects, and a burst of deliveries would
|
|
87
87
|
* otherwise start a burst of evaluations for the newest one to win. Coalescing on a microtask
|
|
88
88
|
* rather than a commit hook is deliberate: the calc-results path notifies AFTER its transaction
|
|
89
|
-
* commits (`
|
|
89
|
+
* commits (a `'data'` event with no commit), so a commit hook never sees the most frequent trigger.
|
|
90
90
|
*
|
|
91
91
|
* Two same-tick marks widen to the whole rule rather than accumulating a range list — the
|
|
92
92
|
* subclasses evaluate per whole range anyway, and a rule's ranges are small.
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { IRange } from '@sheetxl/primitives';
|
|
1
|
+
import { IRange, Scalar } from '@sheetxl/primitives';
|
|
2
2
|
import { Tuple } from '../collections';
|
|
3
|
-
import { ICell } from '../cell';
|
|
4
3
|
import { ITransaction } from '../transaction';
|
|
5
4
|
/**
|
|
6
5
|
* A cached snapshot of another workbook, referenced from a formula as `[n]Sheet1!$A$1`.
|
|
@@ -226,11 +225,11 @@ export declare namespace IExternalBook {
|
|
|
226
225
|
/** `<sheetData refreshError="1">` — Excel could not refresh this sheet's cache last time it tried. */
|
|
227
226
|
refreshError?: boolean;
|
|
228
227
|
/**
|
|
229
|
-
* Sparse cell values — the same encoding `IWorksheet.JSON.data` uses (`
|
|
228
|
+
* Sparse cell values — the same encoding `IWorksheet.JSON.data` uses (`Scalar.JSON` is already just
|
|
230
229
|
* the value+type pair; style/formula live in sibling fields there, none of which apply to a
|
|
231
230
|
* values-only cache — design doc §2.5).
|
|
232
231
|
*/
|
|
233
|
-
data: Tuple.GridTuple<
|
|
232
|
+
data: Tuple.GridTuple<Scalar.JSON>;
|
|
234
233
|
}
|
|
235
234
|
interface JSON {
|
|
236
235
|
/**
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IFetcher } from './IFetcher';
|
|
2
|
+
/**
|
|
3
|
+
* The default {@link IFetcher}: `http:` and `https:` through the global `fetch`, and whatever
|
|
4
|
+
* else is registered.
|
|
5
|
+
*/
|
|
6
|
+
export declare class Fetcher implements IFetcher {
|
|
7
|
+
private readonly _handlers;
|
|
8
|
+
/** {@inheritDoc IFetcher.fetch} */
|
|
9
|
+
fetch(input: string, init?: RequestInit): Promise<Response>;
|
|
10
|
+
/** {@inheritDoc IFetcher.register} */
|
|
11
|
+
register(scheme: string, handler: IFetcher.Handler): () => void;
|
|
12
|
+
/** {@inheritDoc IFetcher.isIFetcher} */
|
|
13
|
+
get isIFetcher(): true;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Fetcher.d.ts.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a workbook reaches what lives outside it: the picture an `IMAGE` names, a web service's
|
|
3
|
+
* answer. A handler per URL scheme; a host registers its own to add authentication, or to serve a
|
|
4
|
+
* scheme of its own.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Each workbook has one, given as `IWorkbook.ConstructorOptions.fetcher`, or a default that
|
|
8
|
+
* answers `http:` and `https:` with the global `fetch`.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const fetcher = new Fetcher();
|
|
13
|
+
* fetcher.register('https', (url, init) => fetch(url, {
|
|
14
|
+
* ...init,
|
|
15
|
+
* headers: { ...init?.headers, Authorization: `Bearer ${token}` }
|
|
16
|
+
* }));
|
|
17
|
+
* const workbook = new Workbook({ fetcher });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export interface IFetcher {
|
|
21
|
+
/**
|
|
22
|
+
* Fetches `input` with the handler registered for its scheme. A URL without a scheme goes to
|
|
23
|
+
* the `https` handler.
|
|
24
|
+
*
|
|
25
|
+
* @returns The response; rejects with a `TypeError` when no handler serves the scheme, as
|
|
26
|
+
* `fetch` does for a URL it cannot reach.
|
|
27
|
+
*/
|
|
28
|
+
fetch(input: string, init?: RequestInit): Promise<Response>;
|
|
29
|
+
/**
|
|
30
|
+
* Serves a URL scheme with `handler`, replacing the handler it had.
|
|
31
|
+
*
|
|
32
|
+
* @param scheme The scheme, with or without its colon: `'https'`, `'resource:'`.
|
|
33
|
+
* @returns A function that removes the registration.
|
|
34
|
+
*/
|
|
35
|
+
register(scheme: string, handler: IFetcher.Handler): () => void;
|
|
36
|
+
/**
|
|
37
|
+
* For runtime type checking.
|
|
38
|
+
*/
|
|
39
|
+
readonly isIFetcher: true;
|
|
40
|
+
}
|
|
41
|
+
export declare namespace IFetcher {
|
|
42
|
+
/**
|
|
43
|
+
* Answers a fetch for one scheme, with the signature of the standard `fetch`.
|
|
44
|
+
*/
|
|
45
|
+
type Handler = (url: string, init?: RequestInit) => Promise<Response>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=IFetcher.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { IResource } from '../resource/IResource';
|
|
2
|
+
import { IResourceCollection } from '../resource/IResourceCollection';
|
|
3
|
+
import { IFetcher } from './IFetcher';
|
|
4
|
+
/**
|
|
5
|
+
* A workbook's fetch: its {@link IFetcher}, in front of the workbook's resources. A resource that
|
|
6
|
+
* says where it was fetched from is the workbook's copy of that URL, and a fetch of the URL answers
|
|
7
|
+
* from it without a request. Any other successful answer that is not a picture is cached while the
|
|
8
|
+
* workbook is open and never saved. Plain GETs of one URL in flight together share one request. A
|
|
9
|
+
* response whose bytes are a picture says what they are, whatever the server called them.
|
|
10
|
+
*
|
|
11
|
+
* It saves nothing itself: what holds a picture adds it as a resource (`IMAGE` through
|
|
12
|
+
* `IBatchContext.addResource`), and the workbook saves a resource while a value holds it.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export declare class WorkbookFetch {
|
|
17
|
+
private readonly _resources;
|
|
18
|
+
private readonly _fetcher;
|
|
19
|
+
private readonly _kept;
|
|
20
|
+
/** Answers that are not pictures, by URL: a cache for the session, not saved. */
|
|
21
|
+
private readonly _cached;
|
|
22
|
+
private readonly _inFlight;
|
|
23
|
+
constructor(resources: IResourceCollection, fetcher: IFetcher);
|
|
24
|
+
/** The fetcher behind this: what the host registered. */
|
|
25
|
+
getFetcher(): IFetcher;
|
|
26
|
+
/** {@inheritDoc IWorkbook.fetch} */
|
|
27
|
+
fetch(input: string, init?: RequestInit): Promise<Response>;
|
|
28
|
+
/**
|
|
29
|
+
* Keeps every resource that says where it was fetched from as that URL's picture: what a file
|
|
30
|
+
* carried. Called once the workbook's resources are loaded.
|
|
31
|
+
*/
|
|
32
|
+
adopt(resources: readonly IResource[]): void;
|
|
33
|
+
/**
|
|
34
|
+
* Keeps `resource` as the bytes of `uri`. A fetch of `uri` answers from it without asking the
|
|
35
|
+
* fetcher.
|
|
36
|
+
*/
|
|
37
|
+
keep(uri: string, resource: IResource): void;
|
|
38
|
+
/** A resource added under `uri` since the last load, kept now that it is asked for. */
|
|
39
|
+
private _findHeld;
|
|
40
|
+
private _fromKept;
|
|
41
|
+
private _request;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=_WorkbookFetch.d.ts.map
|
|
@@ -8,8 +8,10 @@ export type ColorToCSS = (color: string) => string | null;
|
|
|
8
8
|
/**
|
|
9
9
|
* A color as concrete CSS: `#RRGGBB`, or `rgba(r,g,b,a)` when it is not opaque. Never a theme
|
|
10
10
|
* reference, a CSS variable or `light-dark()`.
|
|
11
|
+
*
|
|
12
|
+
* @param darkMode The color as a dark grid draws it (`IColor.toRGBA(true)`).
|
|
11
13
|
*/
|
|
12
|
-
export declare function toConcreteCSS(color: IColor): string;
|
|
14
|
+
export declare function toConcreteCSS(color: IColor, darkMode?: boolean): string;
|
|
13
15
|
/**
|
|
14
16
|
* A fill with each of its colors drawn through `css`: a solid fill's color, a gradient's stops, a
|
|
15
17
|
* pattern's foreground and background. What it does not color (an image, the gradient's geometry,
|
|
@@ -57,8 +57,18 @@ export interface IHyperlink {
|
|
|
57
57
|
getTarget(): string;
|
|
58
58
|
/**
|
|
59
59
|
* Removes the link from the cell it is attached to. The cell's text stays.
|
|
60
|
+
*
|
|
61
|
+
* @throws When the link is read-only ({@link isReadOnly}).
|
|
60
62
|
*/
|
|
61
63
|
delete(options?: ITransaction.OperationOptions): void;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the link can only be followed: it is not edited or removed as a link.
|
|
66
|
+
*
|
|
67
|
+
* @remarks
|
|
68
|
+
* A link that is the cell's value (a `HYPERLINK()` result) is read-only; it changes with its
|
|
69
|
+
* formula.
|
|
70
|
+
*/
|
|
71
|
+
isReadOnly(): boolean;
|
|
62
72
|
/**
|
|
63
73
|
* For runtime type checking.
|
|
64
74
|
*/
|
|
@@ -12,7 +12,10 @@ export declare class Hyperlink implements IHyperlink {
|
|
|
12
12
|
protected _p: IHyperlink.Properties;
|
|
13
13
|
protected _r: (address: string, options: ITypes.SelectOptions | null, target: string, features?: string) => Promise<boolean>;
|
|
14
14
|
protected _d: ((options?: ITransaction.OperationOptions) => void) | undefined;
|
|
15
|
-
|
|
15
|
+
protected _readOnly: boolean;
|
|
16
|
+
constructor(textToDisplay: () => string, resolver: (address: string, options: ITypes.SelectOptions | null, target: string, features?: string) => Promise<boolean>, json: IHyperlink.JSON, remover?: (options?: ITransaction.OperationOptions) => void, readOnly?: boolean);
|
|
17
|
+
/** {@inheritDoc IHyperlink.isReadOnly} */
|
|
18
|
+
isReadOnly(): boolean;
|
|
16
19
|
/** {@inheritDoc IHyperlink.delete} */
|
|
17
20
|
delete(options?: ITransaction.OperationOptions): void;
|
|
18
21
|
/** {@inheritDoc IHyperlink.open} */
|
package/types/src/index.d.ts
CHANGED
|
@@ -28,12 +28,12 @@ export * from './hyperlink';
|
|
|
28
28
|
export * from './numFmt';
|
|
29
29
|
export * from './style';
|
|
30
30
|
export * from './resource';
|
|
31
|
+
export * from './fetch';
|
|
31
32
|
export * from './string';
|
|
32
33
|
export * from './richData';
|
|
33
34
|
export * from './anchored';
|
|
34
35
|
export * from './chart';
|
|
35
36
|
export * from './pivot';
|
|
36
|
-
export * from './dataTable';
|
|
37
37
|
export * from './picture';
|
|
38
38
|
export * from './shape';
|
|
39
39
|
export * from './group';
|
|
@@ -51,6 +51,7 @@ export * from './externalBook';
|
|
|
51
51
|
export * from './dataValidation';
|
|
52
52
|
export * from './conditionalFormat';
|
|
53
53
|
export * from './protectedRange';
|
|
54
|
+
export * from './cellControl';
|
|
54
55
|
export * from './slicer';
|
|
55
56
|
export * from './table';
|
|
56
57
|
export { Table } from './table/Table';
|
|
@@ -78,6 +78,25 @@ export interface INamedCollection extends ICollection<INamed> {
|
|
|
78
78
|
* take the first.
|
|
79
79
|
*/
|
|
80
80
|
getByRanges(ranges: ICellRanges.Address, options?: INamedCollection.GetByRangesOptions): string[];
|
|
81
|
+
/**
|
|
82
|
+
* Deletes the defined names nothing reads, as one operation.
|
|
83
|
+
*
|
|
84
|
+
* @param options `hiddenOnly` limits it to names flagged hidden; `dryRun` counts without deleting.
|
|
85
|
+
* @returns How many names were deleted, or with `dryRun`, would be.
|
|
86
|
+
* @throws `Error` if the names are read-only (a protected workbook structure) and this is not a dry run.
|
|
87
|
+
*
|
|
88
|
+
* @remarks
|
|
89
|
+
* A name is read when a cell formula, a conditional format, a data validation, a chart or another
|
|
90
|
+
* name refers to it — the readers `ICalculation.INamedFormula.getDependents` reports. A name
|
|
91
|
+
* that a kept name's definition mentions is kept too, whether or not anything reads that one.
|
|
92
|
+
* Only defined names are considered; a table is named by the table it belongs to. Excel's built-in
|
|
93
|
+
* names (`_xlnm.Print_Area`, `_xlnm.Print_Titles`, `_xlnm._FilterDatabase`) are read by the sheet
|
|
94
|
+
* itself, not by formulas, and are never removed.
|
|
95
|
+
*
|
|
96
|
+
* One operation, so one undo puts every name back. Asked of a sheet's collection
|
|
97
|
+
* (`IWorksheet.getNames()`), only the names scoped to that sheet are considered.
|
|
98
|
+
*/
|
|
99
|
+
removeUnused(options?: INamedCollection.RemoveUnusedOptions): Promise<number>;
|
|
81
100
|
/**
|
|
82
101
|
* Lookup a named range with a given name.
|
|
83
102
|
*
|
|
@@ -216,6 +235,23 @@ export declare namespace INamedCollection {
|
|
|
216
235
|
*/
|
|
217
236
|
includeHidden?: boolean;
|
|
218
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Options for {@link INamedCollection.removeUnused}.
|
|
240
|
+
*/
|
|
241
|
+
interface RemoveUnusedOptions {
|
|
242
|
+
/**
|
|
243
|
+
* Only names flagged hidden — the ones a user cannot see to delete.
|
|
244
|
+
*
|
|
245
|
+
* @defaultValue false
|
|
246
|
+
*/
|
|
247
|
+
hiddenOnly?: boolean;
|
|
248
|
+
/**
|
|
249
|
+
* Count the names that would be deleted, and delete none.
|
|
250
|
+
*
|
|
251
|
+
* @defaultValue false
|
|
252
|
+
*/
|
|
253
|
+
dryRun?: boolean;
|
|
254
|
+
}
|
|
219
255
|
/**
|
|
220
256
|
* Options for {@link INamedCollection.getByRanges}.
|
|
221
257
|
*
|
|
@@ -143,6 +143,14 @@ export declare class NamedCollection extends AbstractCollection<INamed, INamedCo
|
|
|
143
143
|
* {@link _scopedTo}.
|
|
144
144
|
*/
|
|
145
145
|
addFormula(name: string, expression: string, replaceExisting?: boolean): INamed;
|
|
146
|
+
/** {@inheritDoc INamedCollection.removeUnused} */
|
|
147
|
+
removeUnused(options?: INamedCollection.RemoveUnusedOptions): Promise<number>;
|
|
148
|
+
/**
|
|
149
|
+
* {@link removeUnused}, limited to one scope — see {@link _scopedTo}.
|
|
150
|
+
*
|
|
151
|
+
* @param scope The sheet whose names are considered; `undefined` for every scope.
|
|
152
|
+
*/
|
|
153
|
+
_removeUnused(options: INamedCollection.RemoveUnusedOptions | undefined, scope: string | undefined): Promise<number>;
|
|
146
154
|
/** {@link addFormula}, against an explicit `scope` — see {@link _scopedTo}. */
|
|
147
155
|
_addFormula(name: string, expression: string, replaceExisting?: boolean, scope?: string | null): INamed;
|
|
148
156
|
/** {@inheritDoc ITransaction.ITransactional.beginCommit} */
|
|
@@ -249,6 +257,16 @@ export declare namespace NamedCollection {
|
|
|
249
257
|
* nothing to prepare and leaves it undefined.
|
|
250
258
|
*/
|
|
251
259
|
prepareRanges?(items: readonly INamed[]): void;
|
|
260
|
+
/**
|
|
261
|
+
* Backs {@link INamedCollection.removeUnused} for the source that owns defined names.
|
|
262
|
+
*
|
|
263
|
+
* @remarks
|
|
264
|
+
* `scope`, when given, is the sheet whose own names are considered (a sheet's collection);
|
|
265
|
+
* `undefined` considers every scope.
|
|
266
|
+
*/
|
|
267
|
+
removeUnused?(options: INamedCollection.RemoveUnusedOptions & {
|
|
268
|
+
scope?: string;
|
|
269
|
+
}): Promise<number>;
|
|
252
270
|
}
|
|
253
271
|
/**
|
|
254
272
|
* What {@link Source.add} needs to define a name.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { IRange, Scalar } from '@sheetxl/primitives';
|
|
2
|
+
/**
|
|
3
|
+
* Whether any holder has been made in this process: what gates the value layer's reads (a range,
|
|
4
|
+
* the stats walks), which cannot ask a backend. Until the first `defer`, they pay nothing.
|
|
5
|
+
*/
|
|
6
|
+
export declare const holdersMade: () => boolean;
|
|
7
|
+
/**
|
|
8
|
+
* How many times a call's latest has moved in this process. A settle writes nothing into a grid,
|
|
9
|
+
* so a cache keyed on a run that holds holders is stamped with this and stands only while it holds.
|
|
10
|
+
*/
|
|
11
|
+
export declare const settleCount: () => number;
|
|
12
|
+
/** Records that a call's latest moved. */
|
|
13
|
+
export declare const noteSettle: () => void;
|
|
14
|
+
/**
|
|
15
|
+
* What a cell holds when its formula's evaluation deferred (DESIGN-ASYNC §4.4): the node's
|
|
16
|
+
* `cachedValue` and the engine grid's value at the cell. Immutable; what moves is the call, which
|
|
17
|
+
* holds the latest. Each deferring evaluation makes a new one.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* Seen only by the formula block and the engine. Every other reader reads it through
|
|
21
|
+
* {@link readAsync}: the push into a dependent's input, a range read of the engine grid, and the
|
|
22
|
+
* copy of results to the model, which never receives one.
|
|
23
|
+
*
|
|
24
|
+
* The calls are the calculation layer's; all a read needs of one is its latest.
|
|
25
|
+
*/
|
|
26
|
+
export declare class AsyncValue<C extends AsyncValue.Call = AsyncValue.Call> {
|
|
27
|
+
/**
|
|
28
|
+
* What the formula calculated, from its calls' initials. A range for an evaluation that
|
|
29
|
+
* spilled: that holder rides the spill's entry, never a cell, and no cell reads it.
|
|
30
|
+
*/
|
|
31
|
+
readonly value: Scalar | IRange;
|
|
32
|
+
/** The calls the formula made, by ordinal. */
|
|
33
|
+
readonly calls: readonly C[];
|
|
34
|
+
/** The formula's root is its only call: the cell reads as that call's latest once it has one. */
|
|
35
|
+
readonly direct: boolean;
|
|
36
|
+
constructor(value: Scalar | IRange, calls: readonly C[], direct: boolean);
|
|
37
|
+
/** The brand every recognizing site reads. */
|
|
38
|
+
get isAsyncValue(): true;
|
|
39
|
+
}
|
|
40
|
+
export declare namespace AsyncValue {
|
|
41
|
+
/** What a holder reads of a call. */
|
|
42
|
+
interface Call {
|
|
43
|
+
/** The most recent result; `undefined` until one arrives. */
|
|
44
|
+
readonly latest: unknown;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** Whether `value` is an {@link AsyncValue}. */
|
|
48
|
+
export declare const isAsyncValue: (value: unknown) => value is AsyncValue;
|
|
49
|
+
/**
|
|
50
|
+
* `value` as a reader sees it: a holder reads as its root call's latest when `direct` and the call
|
|
51
|
+
* has one, else as what the formula calculated. Anything else is itself.
|
|
52
|
+
*
|
|
53
|
+
* @remarks
|
|
54
|
+
* A blank latest reads as `0`, as a formula's blank result is stored (`finalizeValue`): the
|
|
55
|
+
* latest is the cell's value and was never finalized.
|
|
56
|
+
*/
|
|
57
|
+
export declare const readAsync: <T = Scalar>(value: T) => T | Scalar | IRange;
|
|
58
|
+
//# sourceMappingURL=AsyncValue.d.ts.map
|
|
@@ -12,6 +12,11 @@ export interface IResource extends JSONSerializableAsync<IResource.JSON> {
|
|
|
12
12
|
* An optional name for the resource.
|
|
13
13
|
*/
|
|
14
14
|
getName(): string | null;
|
|
15
|
+
/**
|
|
16
|
+
* The URL the bytes were fetched from, when the resource is a picture the workbook keeps for it
|
|
17
|
+
* (an `IMAGE` source): a fetch of that URL answers from these bytes. `null` otherwise.
|
|
18
|
+
*/
|
|
19
|
+
getFetchedFrom(): string | null;
|
|
15
20
|
/**
|
|
16
21
|
* For saving to json resources.
|
|
17
22
|
*/
|
|
@@ -113,6 +118,10 @@ export declare namespace IResource {
|
|
|
113
118
|
* This is optional but if provided then resource lookup will use this as a cache key.
|
|
114
119
|
*/
|
|
115
120
|
name?: string;
|
|
121
|
+
/**
|
|
122
|
+
* The URL the embedded bytes were fetched from: the workbook keeps them as that URL's picture.
|
|
123
|
+
*/
|
|
124
|
+
fetchedFrom?: string;
|
|
116
125
|
}
|
|
117
126
|
}
|
|
118
127
|
//# sourceMappingURL=IResource.d.ts.map
|
|
@@ -52,6 +52,10 @@ export declare namespace IResourceCollection {
|
|
|
52
52
|
* This is optional and purely for human consumption and is not used by the system.
|
|
53
53
|
*/
|
|
54
54
|
name?: string;
|
|
55
|
+
/**
|
|
56
|
+
* The URL the bytes were fetched from, for a picture the workbook keeps for it.
|
|
57
|
+
*/
|
|
58
|
+
fetchedFrom?: string;
|
|
55
59
|
}
|
|
56
60
|
/**
|
|
57
61
|
* A type that represents the various ways to provide a resource source.
|
|
@@ -2,6 +2,7 @@ import { IResource } from './IResource';
|
|
|
2
2
|
import { IResourceCollection } from './IResourceCollection';
|
|
3
3
|
export declare class Resource implements IResource {
|
|
4
4
|
private _name;
|
|
5
|
+
private _fetchedFrom;
|
|
5
6
|
private _refs;
|
|
6
7
|
private _listeners;
|
|
7
8
|
private _isClosed;
|
|
@@ -17,6 +18,7 @@ export declare class Resource implements IResource {
|
|
|
17
18
|
protected _resolveArrayBuffer(): Promise<ArrayBuffer>;
|
|
18
19
|
/** {@inheritDoc IResource.getName} */
|
|
19
20
|
getName(): string | null;
|
|
21
|
+
getFetchedFrom(): string | null;
|
|
20
22
|
/** {@inheritDoc IResource.toJSONAsync} */
|
|
21
23
|
toJSONAsync(): Promise<IResource.JSON>;
|
|
22
24
|
/** {@inheritDoc IResource.toBuffer} */
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IResource } from './IResource';
|
|
2
|
+
import { IResourceCollection } from './IResourceCollection';
|
|
3
|
+
/**
|
|
4
|
+
* Adds bytes to `resources` as a resource. With `fetchedFrom` the resource is the collection's copy
|
|
5
|
+
* of that URL, so adding the URL again answers the one already there. With no collection, a
|
|
6
|
+
* resource of no workbook.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const addResource: (resources: IResourceCollection | null, buffer: ArrayBuffer, options?: {
|
|
11
|
+
fetchedFrom?: string;
|
|
12
|
+
}) => IResource;
|
|
13
|
+
//# sourceMappingURL=_AddResource.d.ts.map
|