@sheetxl/sdk 0.8.0-beta.11 → 0.8.0-beta.13
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/THIRD-PARTY-NOTICES.md +172 -0
- package/browser/esm/{BMyDRQ716j79h_bH.mjs → -GEhXGMfNcWmHPby.mjs} +6 -6
- package/browser/esm/{B7aUIvgUjncMMD_i.mjs → 9WXf_BTKjW1cQisZ.mjs} +95 -94
- package/browser/esm/{PcHFjNzQsE54POri.mjs → B2SgIPPBX0wjzuq8.mjs} +1 -1
- package/browser/esm/{DEiPS3Dr-s4fPbVZ.mjs → BC2RwlNwCdRywkoD.mjs} +1 -1
- package/browser/esm/{BpgskG1Er_lGQ_yS.mjs → BEqhm9xAUPiHUCFv.mjs} +1 -1
- package/browser/esm/BHgqi7KNrl7Vjr0W.mjs +348 -0
- package/browser/esm/{BkBhLS0l6z8sxI6D.mjs → BJKH0tDRx2FeSWvt.mjs} +2 -2
- package/browser/esm/{CU3DmJ-YnVVrC1_k.mjs → BTgWtqdQoh2cB6DL.mjs} +1 -1
- package/browser/esm/{Dyq_ivuHvlXLwPCl.mjs → BVshV1iY3bcUH9_E.mjs} +1135 -1129
- package/browser/esm/{BFagR2JeWs74iAG3.mjs → BYQ63XU7JzB4_itX.mjs} +1 -1
- package/browser/esm/{DvAaxH6z_tGvrRzl.mjs → Bax5aOzQkbHKXW_X.mjs} +239 -230
- package/browser/esm/{DLLE0FZNsKxbBzRn.mjs → BiDGKhtzV6yIy66o.mjs} +45 -45
- package/browser/esm/BmYrWK5OmHRtgyqM.mjs +367 -0
- package/browser/esm/{ClPfI4lODvCece29.mjs → BoAlHgjPQ6mxb_oO.mjs} +74 -74
- package/browser/esm/{BoV6zPBnfqCBCqZ7.mjs → C0mjTq8lhrX3HiPa.mjs} +4328 -3166
- package/browser/esm/{nvU0ClAbf0g94YBK.mjs → C5j0IdwtYkWlOftv.mjs} +604 -596
- package/browser/esm/{DWNzqw7DUKwoxjri.mjs → CL84-iL2QeKlLzo5.mjs} +2 -2
- package/browser/esm/{Ctjb0SsxV4K4MMqG.mjs → CLkBe-6n-pStQhnz.mjs} +2 -2
- package/{node/esm/CZICGK_ss0HoGHCP.mjs → browser/esm/CPzfhTPX2Y4dHX2p.mjs} +2 -2
- package/browser/esm/{Dlmig06rIo7cInRk.mjs → CSJuIjYUOE387FIP.mjs} +1 -1
- package/browser/esm/{BjkCiv5Jz6WYKZeu.mjs → Cdw0mGuoV3IU2LhR.mjs} +2 -2
- package/browser/esm/Ced5uyofOWHuL_Jy.mjs +114 -0
- package/browser/esm/{CkxWugaJFjDGZNZ-.mjs → Ci_LJ4S_GvYX0STI.mjs} +1 -1
- package/browser/esm/{zlLuW405RSguy4Kn.mjs → CwygVKP_RXmne5Ot.mjs} +47 -47
- package/browser/esm/{C4MqfLn9Dm-l3OIk.mjs → D-mfK0noQrM2jZLT.mjs} +1 -1
- package/browser/esm/{BnG31I6Oj_HEtSPS.mjs → D9SH_8v3FYCnxOFK.mjs} +1 -1
- package/browser/esm/{BVDiOXGMc5_FMGfy.mjs → DPD8fop6az9HZNiK.mjs} +2 -2
- package/browser/esm/DW-MmlgMH87l-_cw.mjs +302 -0
- package/browser/esm/{CaB7J-xgfKO2uAkG.mjs → DctIlUsO78-OU2ht.mjs} +2 -2
- package/browser/esm/DdcKkVb4jM6Y_epY.mjs +184 -0
- package/browser/esm/{CHU6iu_WGlm7fLET.mjs → DfKzE0IY0TjaEIxG.mjs} +1 -1
- package/browser/esm/{C2VbEI_XVAoseAwa.mjs → DkloMquaR1pbZCER.mjs} +44 -43
- package/browser/esm/{C16ycKja6zG0crV_.mjs → Dz86-De57bv2VYIi.mjs} +19447 -16481
- package/browser/esm/{BtvLTTfSBdAKplVG.mjs → HApSgmV2FXRRwQac.mjs} +1 -1
- package/browser/esm/{CQYjO777cmAznUzK.mjs → IbVAQU4YqtFqLwYk.mjs} +1 -1
- package/browser/esm/index.mjs +823 -644
- package/browser/esm/mHQ95RAfxHzcUN2r.mjs +18 -0
- package/browser/esm/pm00uZZu_H3gxHFx.mjs +117 -0
- package/browser/esm/{CV5EGEjG5_-CPpP0.mjs → quEvwgrEuOb0h3q-.mjs} +1926 -1298
- package/browser/esm/{ClbvFbFzFzXLBKNN.mjs → zZngLMg6mg6nnNGX.mjs} +66 -66
- package/licenses/dependencies.txt +71 -1
- package/node/esm/{BqiexuA89caYnAPz.mjs → -K4Cek-bTUItkB_8.mjs} +1 -1
- package/node/esm/-b8yNV4v9qiq8EMY.mjs +117 -0
- package/node/esm/{D8zEN-6ZdDqDvTxM.mjs → 1V-m67YHbxmg3xk2.mjs} +74 -74
- package/node/esm/{D_t5AUxSm7_icjzq.mjs → 4ROAfJC1mokmqubv.mjs} +1 -1
- package/node/esm/B89et7t3uRmtxk4v.mjs +115 -0
- package/node/esm/BKBkCBNGhMU0nQdY.mjs +372 -0
- package/node/esm/{OVfaSb506tNSIvbv.mjs → BQ2XqExomMceAjfe.mjs} +20822 -18373
- package/node/esm/{2Kihw_-5lVTEnwMa.mjs → Bfg7qjCXCwXbzW3K.mjs} +1 -1
- package/node/esm/{D1TKBVmoKGAXf37B.mjs → BtMeAB_dqJnOfzJM.mjs} +2 -2
- package/node/esm/{D6e2z7eZpxOJXHc7.mjs → Byc_bxU_MdjYtt0x.mjs} +1 -1
- package/node/esm/{CNCNJNg890KdgkWh.mjs → Bzrl292TNCK3Cpid.mjs} +1 -1
- package/node/esm/{De2IONBxQhz-Qbyh.mjs → C0P9zspoypRAj7yv.mjs} +1 -1
- package/node/esm/{CzXT00vrQa1_gvW9.mjs → C9gpMN3galHGZyoK.mjs} +1 -1
- package/node/esm/CKCG2peOkTq0gIIW.mjs +310 -0
- package/node/esm/{DUTskXCXref-IJnI.mjs → CWBS90g3Hz-kQDkY.mjs} +46 -46
- package/node/esm/{BIwObuhTJYf0jpUa.mjs → CoGSVnn-hNMtTEus.mjs} +2 -2
- package/node/esm/{CwePQwTILHHjGDkZ.mjs → CzrLqStvrcPE2-hb.mjs} +194 -185
- package/node/esm/{CCN5vD410obwdz38.mjs → D16EdlZG1hX5WUUK.mjs} +96 -95
- package/node/esm/{CDHdgJXH2vS71WMc.mjs → D1mDga2K5sjs8y07.mjs} +1 -1
- package/node/esm/{cGwrLA1RCE-WhJ7w.mjs → D2jtztjE6c23RKvZ.mjs} +1 -1
- package/node/esm/{Bbf1Pm9Gk7YpLTvg.mjs → D9nRcWsYk3M82iD8.mjs} +1 -1
- package/node/esm/{yavzZOiZW_EjG9lE.mjs → DALYzTxZ9Ur9C69Q.mjs} +1 -1
- package/node/esm/{DkwIPzKc3UwdUIfM.mjs → DF0nL7s01dp7n0Bx.mjs} +10 -10
- package/node/esm/{DNRhGK-8Tr9xcRyc.mjs → DO5ldLqhTvIfPXLW.mjs} +3348 -2610
- package/node/esm/DQz8J8ci7EJdqbuB.mjs +351 -0
- package/node/esm/{BIRq1kT7lLRzns9t.mjs → DR2OQTKqqyIkZnse.mjs} +2 -2
- package/node/esm/{857CIBgQgGpnqrXk.mjs → DSTLPBgpsGW6qP9e.mjs} +73 -73
- package/node/esm/{CGp6VZL-gZa9Uezx.mjs → DiXp7KSOZUSWXaZ5.mjs} +1 -1
- package/node/esm/{CZiqiay42tFTrLI4.mjs → DwvXHsycOQR219c7.mjs} +1 -1
- package/node/esm/{B21JjOLghRoDOrkx.mjs → Hc6B04OyVzHx2F5I.mjs} +38 -37
- package/node/esm/{Ct3h15sCus4Tgt6M.mjs → NkPNHsq2T3DXg76x.mjs} +561 -553
- package/node/esm/{B084DssTcdBheTp_.mjs → Nl_IIkO1jbk0s9i-.mjs} +4552 -3373
- package/node/esm/{D2KBymQJd1XhpeQD.mjs → OQT5lGqq8a4r5xNa.mjs} +1 -1
- package/node/esm/OTaaFGhF-k_iwobp.mjs +18 -0
- package/node/esm/{CdJHUJSBRHZoryPe.mjs → Z1elC_roIu7LhceZ.mjs} +53 -53
- package/{browser/esm/D5np__Jb1euAyaLw.mjs → node/esm/e3F3OVXCxLJrSukW.mjs} +2 -2
- package/node/esm/index.mjs +806 -625
- package/node/esm/{mFiBSM7XgBHV9AY7.mjs → suOBVUz-pca6ilJH.mjs} +1607 -1601
- package/package.json +8 -6
- package/resources/contents.json +108 -0
- package/resources/fonts/aptos-bold-italic.hinted.json +125 -0
- package/resources/fonts/aptos-bold-italic.metrics.json +221 -0
- package/resources/fonts/aptos-bold-italic.rows.json +8 -0
- package/resources/fonts/aptos-bold.hinted.json +125 -0
- package/resources/fonts/aptos-bold.metrics.json +221 -0
- package/resources/fonts/aptos-bold.rows.json +8 -0
- package/resources/fonts/aptos-display-bold-italic.hinted.json +125 -0
- package/resources/fonts/aptos-display-bold-italic.metrics.json +221 -0
- package/resources/fonts/aptos-display-bold-italic.rows.json +8 -0
- package/resources/fonts/aptos-display-bold.hinted.json +125 -0
- package/resources/fonts/aptos-display-bold.metrics.json +221 -0
- package/resources/fonts/aptos-display-bold.rows.json +8 -0
- package/resources/fonts/aptos-display-italic.hinted.json +124 -0
- package/resources/fonts/aptos-display-italic.metrics.json +221 -0
- package/resources/fonts/aptos-display-italic.rows.json +8 -0
- package/resources/fonts/aptos-display-regular.hinted.json +125 -0
- package/resources/fonts/aptos-display-regular.metrics.json +221 -0
- package/resources/fonts/aptos-display-regular.rows.json +8 -0
- package/resources/fonts/aptos-italic.hinted.json +125 -0
- package/resources/fonts/aptos-italic.metrics.json +221 -0
- package/resources/fonts/aptos-italic.rows.json +8 -0
- package/resources/fonts/aptos-narrow-bold-italic.hinted.json +125 -0
- package/resources/fonts/aptos-narrow-bold-italic.metrics.json +221 -0
- package/resources/fonts/aptos-narrow-bold-italic.rows.json +8 -0
- package/resources/fonts/aptos-narrow-bold.hinted.json +125 -0
- package/resources/fonts/aptos-narrow-bold.metrics.json +221 -0
- package/resources/fonts/aptos-narrow-bold.rows.json +8 -0
- package/resources/fonts/aptos-narrow-italic.hinted.json +125 -0
- package/resources/fonts/aptos-narrow-italic.metrics.json +221 -0
- package/resources/fonts/aptos-narrow-italic.rows.json +8 -0
- package/resources/fonts/aptos-narrow-regular.hinted.json +125 -0
- package/resources/fonts/aptos-narrow-regular.metrics.json +221 -0
- package/resources/fonts/aptos-narrow-regular.rows.json +8 -0
- package/resources/fonts/aptos-regular.hinted.json +125 -0
- package/resources/fonts/aptos-regular.metrics.json +221 -0
- package/resources/fonts/aptos-regular.rows.json +8 -0
- package/resources/fonts/arial-bold-italic.rows.json +0 -1
- package/resources/fonts/arial-bold.rows.json +0 -1
- package/resources/fonts/arial-italic.rows.json +0 -1
- package/resources/fonts/arial-regular.rows.json +0 -1
- package/resources/fonts/calibri-bold-italic.rows.json +0 -1
- package/resources/fonts/calibri-bold.rows.json +0 -1
- package/resources/fonts/calibri-italic.rows.json +0 -1
- package/resources/fonts/calibri-regular.rows.json +0 -1
- package/resources/fonts/cambria-bold-italic.rows.json +0 -1
- package/resources/fonts/cambria-bold.rows.json +0 -1
- package/resources/fonts/cambria-italic.rows.json +0 -1
- package/resources/fonts/cambria-regular.rows.json +0 -1
- package/resources/fonts/contents.json +240 -0
- package/resources/fonts/courier-new-bold-italic.rows.json +0 -1
- package/resources/fonts/courier-new-bold.rows.json +0 -1
- package/resources/fonts/courier-new-italic.rows.json +0 -1
- package/resources/fonts/courier-new-regular.rows.json +0 -1
- package/resources/fonts/times-new-roman-bold-italic.rows.json +0 -1
- package/resources/fonts/times-new-roman-bold.rows.json +0 -1
- package/resources/fonts/times-new-roman-italic.rows.json +0 -1
- package/resources/fonts/times-new-roman-regular.rows.json +0 -1
- package/resources/locales/de/model.msg.json +12 -2
- package/resources/locales/en/model.msg.json +13 -2
- package/types/scripting-api.json +10638 -10446
- package/types/scripting-enums.json +20 -1
- package/types/scripting.d.ts +1536 -477
- package/types/src/.generated/wasm/sdk.d.ts +5 -27
- package/types/src/address/AddressUtils.d.ts +8 -0
- package/types/src/address/_SheetNameQuoteChars.d.ts +3 -0
- package/types/src/{sheet → anomalies}/_Anomalies.d.ts +3 -3
- package/types/src/anomalies/_FocusTable.d.ts +5 -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 +61 -98
- package/types/src/calculation/ExternalBookBindings.d.ts +2 -29
- package/types/src/calculation/ICalculation.d.ts +96 -9
- package/types/src/calculation/NamedFormulaCollection.d.ts +110 -10
- package/types/src/calculation/TokenType.d.ts +0 -10
- package/types/src/calculation/_CloneBoundary.d.ts +0 -24
- package/types/src/calculation/_FormulaToolkit.d.ts +0 -5
- package/types/src/calculation/compiler/ASTTypes.d.ts +6 -15
- package/types/src/calculation/compiler/CompilerUtils.d.ts +0 -227
- package/types/src/calculation/compiler/FormulaLexer.d.ts +0 -8
- package/types/src/calculation/compiler/FormulaParser.d.ts +0 -61
- package/types/src/calculation/compiler/ParserUtils.d.ts +0 -24
- package/types/src/calculation/compiler/Types.d.ts +1 -45
- package/types/src/calculation/engine/CalcBackend.d.ts +83 -127
- package/types/src/calculation/engine/index.d.ts +0 -8
- package/types/src/calculation/executor/CalcExecutor.d.ts +50 -116
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +47 -12
- package/types/src/calculation/executor/CircularReference.d.ts +0 -17
- package/types/src/calculation/executor/_BlockOrder.d.ts +29 -0
- package/types/src/calculation/executor/_WhatIf.d.ts +31 -0
- package/types/src/calculation/formula/FormulaBlock.d.ts +4 -31
- package/types/src/calculation/formula/FormulaRecordView.d.ts +0 -15
- package/types/src/calculation/formula/IFormulaBlock.d.ts +5 -12
- package/types/src/calculation/formula/LambdaValue.d.ts +0 -15
- package/types/src/calculation/formula/TokenUtils.d.ts +1 -8
- package/types/src/calculation/functions/_DataTableFunction.d.ts +14 -0
- package/types/src/calculation/grid/CalcGrid.d.ts +8 -64
- package/types/src/calculation/grid/CalcGridBackend.d.ts +12 -35
- package/types/src/calculation/grid/CalcGridProxy.d.ts +0 -15
- package/types/src/calculation/grid/CalcGridUtils.d.ts +21 -23
- package/types/src/calculation/grid/ICalcGrid.d.ts +28 -109
- package/types/src/calculation/grid/_CalcRequest.d.ts +17 -33
- package/types/src/calculation/spatial/CircularEntry.d.ts +0 -10
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +54 -82
- package/types/src/calculation/spatial/SpillEntry.d.ts +20 -3
- package/types/src/calculation/state/CalcNode.d.ts +0 -1
- package/types/src/calculation/state/CalcScope.d.ts +29 -9
- package/types/src/calculation/state/CalcState.d.ts +19 -9
- package/types/src/calculation/state/CalculationContext.d.ts +32 -38
- package/types/src/calculation/state/DeferredCalls.d.ts +207 -0
- package/types/src/calculation/state/IContextContainer.d.ts +19 -55
- package/types/src/calculation/state/_KeepBlanks.d.ts +5 -0
- package/types/src/calculation/state/_PendingOverlayGrid.d.ts +52 -33
- package/types/src/calculation/state/_WhatIfLayer.d.ts +77 -0
- package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +0 -42
- package/types/src/calculation/symbol/ISymbolRegistry.d.ts +0 -6
- package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +0 -12
- package/types/src/calculation/symbol/SymbolRegistry.d.ts +0 -9
- package/types/src/calculation/toolkit/index.d.ts +0 -8
- package/types/src/cell/ICell.d.ts +59 -54
- 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 +226 -67
- package/types/src/cellRange/ICellRanges.d.ts +4 -3
- package/types/src/chart/Chart.d.ts +0 -16
- package/types/src/chart/_ChartParts.d.ts +0 -39
- package/types/src/chart/_ChartSource.d.ts +0 -14
- package/types/src/chart/createChart.d.ts +1 -1
- package/types/src/chart/kinds/ChartKind.d.ts +4 -4
- package/types/src/chart/kinds/_Placeholder.d.ts +0 -1
- package/types/src/chart/layout/ChartLayout.d.ts +5 -1
- package/types/src/chart/layout/TextMeasurer.d.ts +0 -20
- package/types/src/chart/layout/_LayoutUtils.d.ts +0 -16
- package/types/src/chart/math/BoxStats.d.ts +0 -8
- package/types/src/chart/math/DateUnitCalcs.d.ts +0 -10
- package/types/src/chart/math/Histogram.d.ts +0 -17
- package/types/src/chart/math/OrdUnitCalcs.d.ts +0 -53
- package/types/src/chart/math/Treemap.d.ts +0 -15
- package/types/src/chart/math/Trendlines.d.ts +0 -8
- package/types/src/chart/math/UnitCalcs.d.ts +0 -22
- package/types/src/chart/model/_Edits.d.ts +0 -33
- package/types/src/chart/model/_Grouping.d.ts +0 -25
- package/types/src/chart/model/_Inference.d.ts +0 -18
- package/types/src/chart/model/_NewChart.d.ts +0 -41
- package/types/src/chart/model/_OfPie.d.ts +0 -7
- package/types/src/chart/resolve/_LegacyStyles.d.ts +0 -20
- package/types/src/chart/resolve/_Resolve.d.ts +3 -12
- package/types/src/chart/resolve/_ResolvedChart.d.ts +5 -8
- 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/collections/_GridUtils.d.ts +0 -10
- package/types/src/comment/_NoteBox.d.ts +0 -15
- package/types/src/condition/AnchoredConditional.d.ts +3 -25
- package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +0 -49
- package/types/src/condition/BuiltinSelectors/DisplaySelector.d.ts +0 -10
- package/types/src/condition/ICondition.d.ts +2 -2
- package/types/src/condition/_ConditionUtils.d.ts +0 -38
- package/types/src/externalBook/ExternalBookCollection.d.ts +0 -15
- package/types/src/externalBook/ExternalBookName.d.ts +2 -3
- package/types/src/externalBook/IExternalBook.d.ts +16 -18
- package/types/src/fetch/Fetcher.d.ts +15 -0
- package/types/src/fetch/IFetcher.d.ts +48 -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/font/AdvanceTable.d.ts +16 -42
- package/types/src/font/IFont.d.ts +32 -9
- package/types/src/font/TableFileAdvanceBuilder.d.ts +6 -3
- package/types/src/font/_FontUtils.d.ts +0 -8
- package/types/src/font/_StandIns.d.ts +33 -0
- 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/io/IWorkbookIO.d.ts +3 -3
- package/types/src/io/WorkbookOrigin.d.ts +2 -2
- package/types/src/license/LicenseManager.d.ts +2 -1
- package/types/src/license/_Utils.d.ts +4 -3
- package/types/src/license/details.d.ts +3 -1
- package/types/src/license/keys.d.ts +6 -0
- package/types/src/license/license-key.d.ts +15 -33
- package/types/src/license/token.d.ts +55 -0
- package/types/src/named/INamedCollection.d.ts +36 -0
- package/types/src/named/NamedCollection.d.ts +18 -0
- package/types/src/picture/IPicture.d.ts +45 -0
- package/types/src/picture/Picture.d.ts +12 -0
- package/types/src/pivot/PivotTable.d.ts +0 -7
- package/types/src/primitives/AsyncValue.d.ts +46 -0
- package/types/src/primitives/PrimitiveUtils.d.ts +1 -110
- package/types/src/primitives/Range.d.ts +0 -60
- package/types/src/primitives/ScalarCollation.d.ts +0 -106
- package/types/src/primitives/stats/AggregateStats.d.ts +0 -19
- package/types/src/print/PageLayout.d.ts +0 -6
- package/types/src/reference/ReferenceUtils.d.ts +4 -2
- 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 +52 -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 -109
- package/types/src/sheet/ICellContainerOptions.d.ts +6 -0
- package/types/src/sheet/IWorksheet.d.ts +26 -22
- package/types/src/sheet/NamedCellRange.d.ts +0 -21
- package/types/src/sheet/SheetCell.d.ts +25 -3
- 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 +117 -104
- package/types/src/sheet/_DelimitedText.d.ts +13 -0
- package/types/src/sheet/_IgnoredErrors.d.ts +0 -12
- package/types/src/sheet/_ListenerAnchor.d.ts +7 -1
- package/types/src/sheet/_ScalarListFactory.d.ts +46 -17
- package/types/src/sheet/_SheetCoords.d.ts +0 -7
- package/types/src/sheet/_SheetFilterUtils.d.ts +0 -8
- package/types/src/sheet/_SheetMutations.d.ts +4 -1
- package/types/src/sheet/_SheetStateReader.d.ts +0 -10
- package/types/src/sheet/_SheetStateTypes.d.ts +23 -14
- package/types/src/sheet/_SheetUtils.d.ts +1 -1
- package/types/src/sheet/style/_RowLine.d.ts +32 -0
- package/types/src/sheet/style/_StyleUtils.d.ts +6 -14
- package/types/src/sheetView/_SheetViewUtils.d.ts +0 -1
- package/types/src/slicer/_BuiltInSlicerStyles.d.ts +0 -5
- package/types/src/style/ICellStyle.d.ts +4 -0
- package/types/src/table/AnchoredTable.d.ts +0 -147
- package/types/src/text/TextFrame.d.ts +4 -1
- package/types/src/text/TextStacked.d.ts +0 -24
- package/types/src/text/TextWrapper.d.ts +3 -5
- package/types/src/text/_LineBox.d.ts +24 -0
- package/types/src/text/_TextUtils.d.ts +5 -2
- package/types/src/text/_TextWrapperFallback.d.ts +2 -1
- package/types/src/wasm/sdkWasm.d.ts +1 -1
- package/types/src/workbook/IWorkbook.d.ts +40 -1
- package/types/src/workbook/Workbook.d.ts +25 -13
- package/types/src/workbook/WorkbookRanges.d.ts +1 -1
- package/browser/esm/BGOFfpxr2jPIdqmV.mjs +0 -40
- package/browser/esm/BLoUBId2xZpXAK_H.mjs +0 -698
- package/browser/esm/C5E6zSGAALWf61n4.mjs +0 -199
- package/browser/esm/S2dNNx1a5ydRnARM.mjs +0 -367
- package/browser/esm/f1IoRb7tEb0QmCSt.mjs +0 -110
- package/browser/esm/gssVX_FH1XFN-twD.mjs +0 -210
- package/node/esm/BrCKGFRsX_ezFJ4B.mjs +0 -811
- package/node/esm/DOU54VsOjG-m-NyQ.mjs +0 -210
- package/node/esm/Db0v7zXNnyjBIjjI.mjs +0 -372
- 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
|
@@ -5,19 +5,6 @@ import { FormulaRecord, FormulaImager } from '../formula';
|
|
|
5
5
|
import { ICalculation } from '../ICalculation';
|
|
6
6
|
import { NamedReference } from '../Types';
|
|
7
7
|
import { ICalcGrid } from './ICalcGrid';
|
|
8
|
-
/**
|
|
9
|
-
* A call on a grid, as the service's channel holds it while the engine is `Starting`
|
|
10
|
-
* (DESIGN-CALC-SERVICE §4, §7.2): the verb and its arguments, applied in send order once the
|
|
11
|
-
* engine is up. The snapshot it was made at rides in its options (`commitId`, `cloneKey`).
|
|
12
|
-
*
|
|
13
|
-
* @remarks
|
|
14
|
-
* Not part of {@link ICalcGrid}: a caller sees the verbs and their promises. This is what the
|
|
15
|
-
* in-process channel holds in place of a worker port's queue, and what the clone boundary audits
|
|
16
|
-
* (plan step 6): a held call carries what the verb's arguments carry, which is what a proxy
|
|
17
|
-
* would post.
|
|
18
|
-
*
|
|
19
|
-
* @internal Deliberately not exported from the barrel.
|
|
20
|
-
*/
|
|
21
8
|
export type CalcRequest =
|
|
22
9
|
/**
|
|
23
10
|
* Make the engine's grid for a model grid, from what the model says it is. The grid's first
|
|
@@ -166,15 +153,13 @@ export type CalcRequest =
|
|
|
166
153
|
}
|
|
167
154
|
/**
|
|
168
155
|
* The graph around cells of this grid, answered in the response (`ICalcGrid.GraphNeighbors`,
|
|
169
|
-
* cells in calc currency). A question.
|
|
170
|
-
* of instead: its own precedents or dependents, cells and names.
|
|
156
|
+
* cells in calc currency). A question.
|
|
171
157
|
*/
|
|
172
158
|
| {
|
|
173
159
|
type: 'graph';
|
|
174
160
|
kind: 'precedents' | 'dependents';
|
|
175
161
|
direct: boolean;
|
|
176
|
-
coords
|
|
177
|
-
asName?: boolean;
|
|
162
|
+
coords: IRange.Coords;
|
|
178
163
|
}
|
|
179
164
|
/** Whether the formula at a cell is volatile, answered in the response. A question. */
|
|
180
165
|
| {
|
|
@@ -186,15 +171,7 @@ export type CalcRequest =
|
|
|
186
171
|
| {
|
|
187
172
|
type: 'setBody';
|
|
188
173
|
body: ICalcGrid.BodyOptions;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* The sheet list as its owner holds it when the message is sent - every sheet's grid id and
|
|
192
|
-
* name, in tab order - for the engine's replica (DESIGN-CALC-SERVICE §8). A message of the
|
|
193
|
-
* service, not of a grid: the channel holds it in order with the grids' requests, which is what
|
|
194
|
-
* lets a seed sent before a rename compile against the names it was sent under. The owner tells
|
|
195
|
-
* a sheet before any grid that names it seeds (`Calculation._setSheets`).
|
|
196
|
-
*/
|
|
197
|
-
| {
|
|
174
|
+
} | {
|
|
198
175
|
type: 'sheets';
|
|
199
176
|
sheets: readonly (readonly [id: string, name: string | null, gridless?: boolean])[];
|
|
200
177
|
options?: ICalcGrid.RequestOptions;
|
|
@@ -215,6 +192,18 @@ export type CalcRequest =
|
|
|
215
192
|
changes: readonly (readonly [id: string, name: NameSymbols | null])[];
|
|
216
193
|
options?: ICalcGrid.RequestOptions;
|
|
217
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* The graph around a defined name - its precedents or dependents, cells in calc currency and
|
|
197
|
+
* names - answered in the response (`ICalcGrid.GraphNeighbors`). A question of the service, not
|
|
198
|
+
* of the name's grid: its readers are found by its id, so a name that has not compiled is asked
|
|
199
|
+
* without making it a grid.
|
|
200
|
+
*/
|
|
201
|
+
| {
|
|
202
|
+
type: 'nameGraph';
|
|
203
|
+
nameId: string;
|
|
204
|
+
kind: 'precedents' | 'dependents';
|
|
205
|
+
direct: boolean;
|
|
206
|
+
}
|
|
218
207
|
/**
|
|
219
208
|
* A nested savepoint of the model rolled back inside an operation that goes on: what the requests
|
|
220
209
|
* made under it did goes with it. After them in the channel, so it undoes exactly those.
|
|
@@ -255,13 +244,6 @@ export interface CalcGridSpec {
|
|
|
255
244
|
export type TableSymbols = readonly [name: string, columns: readonly (readonly [id: string, name: string])[]];
|
|
256
245
|
/** A defined name as the engine's replica holds it: its name, and the id of the sheet it is scoped to. */
|
|
257
246
|
export type NameSymbols = readonly [name: string, scopeId: string | null];
|
|
258
|
-
/**
|
|
259
|
-
* What crosses back (DESIGN-CALC-SERVICE §8): {@link ICalcGrid.Results} with the formula half as
|
|
260
|
-
* records - data, since only data crosses. The facade images each record into the
|
|
261
|
-
* {@link IFormulaBlockView} the model reads ({@link imageResponse}) before the results reach it.
|
|
262
|
-
*
|
|
263
|
-
* @internal Deliberately not exported from the barrel.
|
|
264
|
-
*/
|
|
265
247
|
export type CalcResponse = Omit<ICalcGrid.Results, 'formulaInserts'> & {
|
|
266
248
|
formulaInserts?: ISpatialMap.Entry<FormulaRecord>[];
|
|
267
249
|
/**
|
|
@@ -287,6 +269,8 @@ export type GridRequest = Exclude<CalcRequest, {
|
|
|
287
269
|
type: 'tables';
|
|
288
270
|
} | {
|
|
289
271
|
type: 'names';
|
|
272
|
+
} | {
|
|
273
|
+
type: 'nameGraph';
|
|
290
274
|
} | {
|
|
291
275
|
type: 'rollback';
|
|
292
276
|
} | {
|
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
import { ICalculation } from '../ICalculation';
|
|
2
|
-
/**
|
|
3
|
-
* What a sheet's circular index says about a cell (DESIGN-CIRCULAR-CALC.md §7.2): which
|
|
4
|
-
* reference cycle it belongs to, and whether it is in the cycle or merely downstream of it.
|
|
5
|
-
*
|
|
6
|
-
* @remarks
|
|
7
|
-
* The value stays what it is (`0`, Excel's answer with iterative calculation off); this is
|
|
8
|
-
* metadata beside it, the way `SpillEntry` marks a spill zone. Entries are interned per
|
|
9
|
-
* `(cycle, kind)` by the executor, so equal payloads are the same object and adjacent cells of
|
|
10
|
-
* one cycle coalesce into one region — and a region's payload IS the cycle, no id to look up.
|
|
11
|
-
*/
|
|
12
2
|
export interface CircularEntry {
|
|
13
3
|
/** The cycle; one live object per cycle, shared by every cell in it or downstream of it. */
|
|
14
4
|
readonly cycle: ICalculation.ICircularReference;
|
|
@@ -28,21 +28,6 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
|
|
|
28
28
|
*/
|
|
29
29
|
ref: IRange.Coords;
|
|
30
30
|
formula: IFormulaBlock | null;
|
|
31
|
-
/**
|
|
32
|
-
* The block's nodes, DENSE - one per cell - for a block the pass evaluates cell by cell; `null`
|
|
33
|
-
* for a block that shares one answer over its blank region (PLAN-WATCHES-BLANK-AWARE §4c), which
|
|
34
|
-
* keeps its nodes in {@link _nodes} instead, and `null` while nothing has touched the block.
|
|
35
|
-
* Never indexed from outside: {@link nodeAt}, {@link nodeAtOrNull}, {@link forEachNodeIn},
|
|
36
|
-
* {@link mintNodesIn} and {@link forEachNode} are the reads, and they are the same calls for
|
|
37
|
-
* either shape.
|
|
38
|
-
*
|
|
39
|
-
* @remarks
|
|
40
|
-
* Nodes are runtime state, not the formula: they exist from the first touch ({@link nodeAt},
|
|
41
|
-
* {@link mintNodesIn}) and are dropped when the block leaves its map ({@link release}). A block
|
|
42
|
-
* that nothing has touched, or that was released, holds no node for any cell, which the executor
|
|
43
|
-
* reads as "never collected: a value". A superseded block is still held by every earlier
|
|
44
|
-
* commit's map, so what it keeps is what the history keeps; a restore mints again on demand.
|
|
45
|
-
*/
|
|
46
31
|
calcs: CalcNode[][] | null;
|
|
47
32
|
/**
|
|
48
33
|
* A gated block's nodes, keyed by cell. **A node exists only where its cell has been touched**
|
|
@@ -75,42 +60,16 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
|
|
|
75
60
|
*/
|
|
76
61
|
registeredPrecedents: ISpatialMap.Entry<any>[] | null;
|
|
77
62
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* @remarks
|
|
82
|
-
* A **relative** reference is stored as an offset from `ref`, so on these blocks its absolute
|
|
83
|
-
* position (`ref + offset`) is fiction: there is no cell it names, and nothing to compare against
|
|
84
|
-
* a shift boundary. Structural change must therefore leave relative endpoints alone — the offset
|
|
85
|
-
* IS the definition. Measured against Excel: a relative name's `RefersTo` never changes under
|
|
86
|
-
* insert/delete/move, while an absolute one always does (`$`-fixed endpoints carry a real
|
|
87
|
-
* coordinate that owes nothing to the anchor, so they shift normally on these blocks too).
|
|
88
|
-
*
|
|
89
|
-
* Deliberately NOT "is a named body". Anything holding a formula at a synthetic anchor wants the
|
|
90
|
-
* same treatment, and the shift code should not have to know what a name is.
|
|
91
|
-
*
|
|
92
|
-
* A calculation pass never evaluates such a block: its anchor is no cell, so there is nothing
|
|
93
|
-
* to write an answer to, and whatever reads the body runs it inline at its own position. It is
|
|
94
|
-
* evaluated on demand only (`ICalcGrid.evaluateAt`), and `isVolatileAt` answers for it from the
|
|
95
|
-
* formula text alone, there being nothing a pass registered (`CalcGridBackend._isVolatileNow`).
|
|
96
|
-
*
|
|
97
|
-
* Required at construction rather than defaulted: the block is immutable and re-minted on every
|
|
98
|
-
* reference rewrite, so an unthreaded copy would silently revert to `false` on the first
|
|
99
|
-
* `setReferenceAt` — which is exactly what a shift performs.
|
|
63
|
+
* This block is the one a seed loaded, and what its cells show came with it. A write replaces
|
|
64
|
+
* the block, so a block that is `true` has not been edited since.
|
|
100
65
|
*/
|
|
101
|
-
|
|
66
|
+
fromLoad: boolean;
|
|
102
67
|
/**
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
* @remarks
|
|
107
|
-
* Excel's rule for a conditional-format formula (DESIGN-LIFT-AND-DEMAND §2): the whole tree is
|
|
108
|
-
* array mode (`CalculationContext.isImplicitIntersect`), the tree is evaluated under a first-cell
|
|
109
|
-
* demand so a lift builds only `[0,0]` ({@link IFormulaBlock.demandFirstCell}), and the commit
|
|
110
|
-
* keeps `[0,0]` of a result that is still a range. Every cell therefore stores a scalar, which
|
|
111
|
-
* is what lets the blank region share one answer. No extent is recorded per node: the block is
|
|
112
|
-
* a property of the grid, and a sparse block stays sparse.
|
|
68
|
+
* A cell of this block was loaded marked to calculate on load (`JSON.volatile`, xlsx `ca`), which
|
|
69
|
+
* for a call is asking its source: how a call still working at save picks up where it left off.
|
|
113
70
|
*/
|
|
71
|
+
calcOnLoad: boolean;
|
|
72
|
+
readonly unanchored: boolean;
|
|
114
73
|
readonly arrayFirstCell: boolean;
|
|
115
74
|
/**
|
|
116
75
|
* How many static precedent edges each of this block's cells has — the same count at every
|
|
@@ -145,12 +104,6 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
|
|
|
145
104
|
protected _scratchCoords: IRange.FixableCoords[] | null;
|
|
146
105
|
protected _scratchRow: number;
|
|
147
106
|
protected _scratchCol: number;
|
|
148
|
-
/**
|
|
149
|
-
* Blank-aware evaluation (PLAN-WATCHES-BLANK-AWARE §4): the block's touched windows, cached per
|
|
150
|
-
* collection ({@link getTouched}), and what the pass decided about the blank region's
|
|
151
|
-
* representative. Per block INSTANCE — a block is re-minted on every edit, shift and split, so
|
|
152
|
-
* none of this survives a change to the block, and none of it has to.
|
|
153
|
-
*/
|
|
154
107
|
protected _touched: TouchedWindows | null;
|
|
155
108
|
protected _touchedCycleId: number;
|
|
156
109
|
protected _touchedMarkId: number;
|
|
@@ -200,14 +153,17 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
|
|
|
200
153
|
* of that pass only.
|
|
201
154
|
*/
|
|
202
155
|
blankFallbackCycleId: number;
|
|
156
|
+
uncalculated: boolean;
|
|
203
157
|
/**
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
158
|
+
* An evaluation of some cell of this block read its position, or something else of the cell's
|
|
159
|
+
* own - `ROW()`, `ROW(A5)`, `CELL("address", A5)`, `FORMULATEXT(A5)` (`CalcScope.positionRead`,
|
|
160
|
+
* `CalcScope.perCellRead`). The text cannot tell (`collectBlankCacheable` in the compiler says
|
|
161
|
+
* why), so it is learned as the block runs and kept: a block that moves with such a read answers
|
|
162
|
+
* differently at its new cells, where one without answers there as it did
|
|
163
|
+
* (`CalcGridBackend._shiftNow`). Carried through the rebuilds that keep the nodes, like
|
|
164
|
+
* {@link uncalculated}.
|
|
209
165
|
*/
|
|
210
|
-
|
|
166
|
+
positionRead: boolean;
|
|
211
167
|
constructor(coords: IRange.Coords, gridId: string | null, formula: IFormulaBlock | null, container: IContextContainer, unanchored: boolean, nodes?: FormulaSpatialValue.NodeSource[]);
|
|
212
168
|
/** Every source block's nodes, at this block's cells - see {@link FormulaSpatialValue.NodeSource}. */
|
|
213
169
|
getNodeSource(): FormulaSpatialValue.NodeSource[];
|
|
@@ -232,6 +188,11 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
|
|
|
232
188
|
protected _mintDense(): CalcNode[][];
|
|
233
189
|
/** The static edges a fresh node of this block stores at a cell - what {@link _createCalcs} gives every cell. */
|
|
234
190
|
protected _freshPrecedents(row: number, col: number): CalcNode['precedents'];
|
|
191
|
+
/**
|
|
192
|
+
* Reads the static edges again, for when a name the formula mentions has gained a body: a name
|
|
193
|
+
* contributes its body's cells. The nodes keep everything else they hold.
|
|
194
|
+
*/
|
|
195
|
+
refreshPrecedents(): void;
|
|
235
196
|
/**
|
|
236
197
|
* Drops the nodes. Called as the block leaves its map, so the maps of earlier commits, which
|
|
237
198
|
* still hold it, do not hold a generation of nodes with it. The anchor stays (see
|
|
@@ -261,17 +222,6 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
|
|
|
261
222
|
* is the block's shared buffer — see {@link _scratch} for how long it stays valid.
|
|
262
223
|
*/
|
|
263
224
|
getPrecedentsAt(row: number, col: number): (IRange.Coords | FormulaError.Known)[];
|
|
264
|
-
/**
|
|
265
|
-
* Whether the pass may evaluate ONE cell of this block's blank region and share its answer with
|
|
266
|
-
* the rest (PLAN-WATCHES-BLANK-AWARE §4) — the block-level gate over the formula's compile-time
|
|
267
|
-
* one ({@link isBlankCacheable}).
|
|
268
|
-
*
|
|
269
|
-
* @remarks
|
|
270
|
-
* A template is the shape the touched predicate needs (one relative edge per reference, the
|
|
271
|
-
* same at every cell); an array-entered block has its own fitted write; a one-cell block has
|
|
272
|
-
* nothing to share. The two pass-side verdicts — {@link blankRefused}, {@link blankFallbackCycleId}
|
|
273
|
-
* — close the gate after the fact.
|
|
274
|
-
*/
|
|
275
225
|
isBlankAware(cycleId: number): boolean;
|
|
276
226
|
/**
|
|
277
227
|
* The block's touched windows for one collection — computed on first ask, from the grids its
|
|
@@ -341,22 +291,39 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
|
|
|
341
291
|
/** A fresh node for a cell of this block. */
|
|
342
292
|
protected _newNode(cellRow: number, cellCol: number, gridId: string | null, cellPrecedents: CalcNode['precedents']): CalcNode;
|
|
343
293
|
/**
|
|
344
|
-
* The static edges a
|
|
345
|
-
* template. The top-left's answer doubles as `paramLength`, so it is resolved once per
|
|
294
|
+
* The static edges a taken or minted node of a non-templated block stores; `null` under a
|
|
295
|
+
* template. The top-left's answer doubles as `paramLength`, so it is resolved once per take.
|
|
346
296
|
*/
|
|
347
|
-
protected
|
|
297
|
+
protected _takePrecedents(cellRow: number, cellCol: number, topLeft: CalcNode['precedents']): CalcNode['precedents'];
|
|
348
298
|
/**
|
|
349
|
-
*
|
|
350
|
-
*
|
|
351
|
-
*
|
|
299
|
+
* Takes the sources' nodes as this block's - see {@link FormulaSpatialValue.NodeSource}.
|
|
300
|
+
*
|
|
301
|
+
* @remarks
|
|
302
|
+
* The nodes are MOVED, not copied. A node is reachable by identity from outside its block - a
|
|
303
|
+
* deferred call's owner, a cycle member's `cycleNext`, the volatile roster - and the moved node
|
|
304
|
+
* is the live one, so those stay right with no fix-up. Each source is then released: a block
|
|
305
|
+
* whose nodes left it must not answer for them to a restore. A caller with another block still
|
|
306
|
+
* to take from the same source passes `releaseSources` false and releases it itself
|
|
307
|
+
* ({@link getSplit}).
|
|
308
|
+
*/
|
|
309
|
+
protected _adopt(sources: FormulaSpatialValue.NodeSource[], releaseSources: boolean): void;
|
|
310
|
+
/**
|
|
311
|
+
* `node` re-seated as this block's node for (`cellRow`, `cellCol`): the same object, with fresh
|
|
312
|
+
* slots and stamps - a new position, so nothing that described the old one is kept.
|
|
352
313
|
*/
|
|
353
|
-
protected
|
|
314
|
+
protected _adoptNode(node: CalcNode, cellRow: number, cellCol: number, cellPrecedents: CalcNode['precedents']): CalcNode;
|
|
315
|
+
/**
|
|
316
|
+
* A copy of `node` as this block's node for (`cellRow`, `cellCol`): the same value and cycle
|
|
317
|
+
* state, fresh slots and stamps. For the anchor a {@link release} keeps once the node itself has
|
|
318
|
+
* moved to another block; a live node is never copied, it is adopted.
|
|
319
|
+
*/
|
|
320
|
+
protected _copyNode(node: CalcNode, cellRow: number, cellCol: number): CalcNode;
|
|
354
321
|
/** The source node for this block's cell (`i`, `j`), whichever source holds it; `null` for none. */
|
|
355
322
|
protected _sourceNodeAt(sources: FormulaSpatialValue.NodeSource[], i: number, j: number): CalcNode | null;
|
|
356
|
-
/** A dense node array over this block
|
|
357
|
-
protected
|
|
358
|
-
/** This block's sparse nodes: every source node whose cell lands inside the block,
|
|
359
|
-
protected
|
|
323
|
+
/** A dense node array over this block: each source node taken, and a fresh node where no source has one. */
|
|
324
|
+
protected _takeDense(sources: FormulaSpatialValue.NodeSource[]): CalcNode[][];
|
|
325
|
+
/** This block's sparse nodes: every source node whose cell lands inside the block, taken. */
|
|
326
|
+
protected _takeSparse(sources: FormulaSpatialValue.NodeSource[]): void;
|
|
360
327
|
/**
|
|
361
328
|
* @param coords The extent to serialize as. Defaults to the block's own; a caller that has
|
|
362
329
|
* coalesced adjacent equal blocks passes the merged extent, whose anchor is this block's.
|
|
@@ -428,6 +395,8 @@ export declare class FormulaSpatialValue implements IFormulaBlock, ISpatialMap.I
|
|
|
428
395
|
getReferencedSymbolIds(): string[];
|
|
429
396
|
/** {@inheritDoc IFormulaBlock.hasTotals} */
|
|
430
397
|
hasTotals(): boolean;
|
|
398
|
+
/** {@inheritDoc IFormulaBlock.hasDataTable} */
|
|
399
|
+
hasDataTable(): boolean;
|
|
431
400
|
/** {@inheritDoc IFormulaBlock.hasVolatile} */
|
|
432
401
|
hasVolatile(): boolean;
|
|
433
402
|
/** {@inheritDoc IFormulaBlock.isBlankCacheable} */
|
|
@@ -454,6 +423,9 @@ export declare namespace FormulaSpatialValue {
|
|
|
454
423
|
* block's cell (`i`, `j`). A split reads one source at an offset; a merge reads two, the
|
|
455
424
|
* second at a negative origin; a shift, re-image or re-anchor reads the block itself at
|
|
456
425
|
* (0, 0). A cell no source holds gets a fresh node.
|
|
426
|
+
*
|
|
427
|
+
* The nodes MOVE: the source is left released. Build from a block's nodes only for the block
|
|
428
|
+
* that replaces it in its map; a block that stays in a map is read through its formula instead.
|
|
457
429
|
*/
|
|
458
430
|
interface NodeSource {
|
|
459
431
|
readonly block: FormulaSpatialValue;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IRange } from '@sheetxl/primitives';
|
|
2
2
|
import { ITypes } from '../../type';
|
|
3
|
-
import { ISpatialMap } from '../../collections';
|
|
3
|
+
import { ISpatialMap, ISpatialQuery } from '../../collections';
|
|
4
|
+
import { AsyncValue } from '../../primitives/AsyncValue';
|
|
4
5
|
/**
|
|
5
6
|
* Spill Entries are used to track the extent an array formula occupies.
|
|
6
7
|
*
|
|
@@ -15,7 +16,11 @@ export declare class SpillEntry {
|
|
|
15
16
|
private _c;
|
|
16
17
|
private _k;
|
|
17
18
|
private _cycleId;
|
|
18
|
-
|
|
19
|
+
private _h;
|
|
20
|
+
private _b;
|
|
21
|
+
constructor(coords: IRange.Coords, cycleId: number, kind?: ITypes.FormulaArrayKind, holder?: AsyncValue | null, blocked?: IRange.Coords | null);
|
|
22
|
+
/** The anchor's holder, for a spill laid out by an evaluation that deferred; `null` otherwise. */
|
|
23
|
+
getHolder(): AsyncValue | null;
|
|
19
24
|
getCycleId(): number;
|
|
20
25
|
/** {@inheritDoc ITypes.FormulaArrayKind} */
|
|
21
26
|
getKind(): ITypes.FormulaArrayKind;
|
|
@@ -25,7 +30,14 @@ export declare class SpillEntry {
|
|
|
25
30
|
*/
|
|
26
31
|
isFixed(): boolean;
|
|
27
32
|
getCoords(): IRange.Coords;
|
|
28
|
-
|
|
33
|
+
/** The extent a blocked spill would take; `null` for any other. */
|
|
34
|
+
getBlockedCoords(): IRange.Coords | null;
|
|
35
|
+
/** {@link getBlockedCoords} moved by what moved the anchor to `to`. */
|
|
36
|
+
protected _blockedAt(to: IRange.Coords): IRange.Coords | null;
|
|
37
|
+
/**
|
|
38
|
+
* @param keepExtent For the sheet's map of blocked spills, whose entries are at the extent they would take.
|
|
39
|
+
*/
|
|
40
|
+
setError(error: boolean, cycleId: number, keepExtent?: boolean): ISpatialMap.Entry<this>;
|
|
29
41
|
/**
|
|
30
42
|
* Refuses a shift that would change part of a fixed block - Excel's "You can't change part of
|
|
31
43
|
* an array." A block the shift lands entirely before or after translates whole; a delete that
|
|
@@ -52,4 +64,9 @@ export declare class SpillEntry {
|
|
|
52
64
|
/** {@inheritDoc ISpatialMap.IUpdatableValue.getSplit} */
|
|
53
65
|
getSplit(coords: [IRange.Coords, IRange.Coords], _axis: IRange.Axis): [this, this] | undefined;
|
|
54
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* The holder of the spill anchored at (`row`, `col`), or `null` when no spill is anchored there
|
|
69
|
+
* or its evaluation did not defer. A blocked spill's entry is anchored too.
|
|
70
|
+
*/
|
|
71
|
+
export declare const spillHolderAt: (spills: ISpatialQuery<SpillEntry> | null | undefined, row: number, col: number) => AsyncValue | null;
|
|
55
72
|
//# sourceMappingURL=SpillEntry.d.ts.map
|
|
@@ -51,7 +51,6 @@ export interface CalcNodeExt {
|
|
|
51
51
|
* and by `setInputs` with a `arrayFixed`; translated with the node when its block moves.
|
|
52
52
|
*/
|
|
53
53
|
fixedRef: IRange.Coords | null;
|
|
54
|
-
pendingPromise: Promise<any> | null;
|
|
55
54
|
/**
|
|
56
55
|
* The demand evaluation's result — finalized for the cell, or a pending promise — which
|
|
57
56
|
* `doEvaluate` consumes in place of an `evaluateAt` of its own. Cleared once consumed.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CalcNode } from './CalcNode';
|
|
2
|
+
import { DeferredCall } from './DeferredCalls';
|
|
2
3
|
/**
|
|
3
4
|
* A reused data structure passed to CalculationContext.
|
|
4
5
|
*
|
|
@@ -41,15 +42,6 @@ export interface CalcScope {
|
|
|
41
42
|
* inherits it.
|
|
42
43
|
*/
|
|
43
44
|
firstCell: boolean;
|
|
44
|
-
/**
|
|
45
|
-
* Set when the evaluation read something that is PER CELL rather than a property of its inputs
|
|
46
|
-
* — a random draw (`IFormulaContext.getRandom`), another cell's formula or sheet
|
|
47
|
-
* (`getFormulaAt`, `getSheetIndex`), or a reference it computed (a dynamic precedent) — so its
|
|
48
|
-
* answer cannot stand in for another cell's even when the two cells' inputs are identical.
|
|
49
|
-
* Cleared by whoever evaluates a cell as the representative of a block's blank region and read
|
|
50
|
-
* at its finalize (PLAN-WATCHES-BLANK-AWARE §4); a cell evaluated on its own behalf never
|
|
51
|
-
* reads it.
|
|
52
|
-
*/
|
|
53
45
|
perCellRead: boolean;
|
|
54
46
|
/**
|
|
55
47
|
* Set when the evaluation read its own POSITION — `getRow`, `getColumn`, its own address, a
|
|
@@ -70,6 +62,34 @@ export interface CalcScope {
|
|
|
70
62
|
* before. Ignored when no seed is set.
|
|
71
63
|
*/
|
|
72
64
|
drawIndex: number;
|
|
65
|
+
/**
|
|
66
|
+
* How many `IFormulaContext.defer` calls the backend has taken, ever.
|
|
67
|
+
*
|
|
68
|
+
* @remarks
|
|
69
|
+
* Never reset. A dispatch, or the executor around an evaluation, reads it before and compares
|
|
70
|
+
* after: a change means a body deferred inside, however deeply nested. Nothing else on the
|
|
71
|
+
* synchronous path reads it.
|
|
72
|
+
*/
|
|
73
|
+
deferCount: number;
|
|
74
|
+
/**
|
|
75
|
+
* How many calls the evaluation in progress has deferred: the next call's ordinal, which is how
|
|
76
|
+
* a later evaluation of the same cell finds it. Back to `0` once the evaluation's calls are
|
|
77
|
+
* taken, which only an evaluation that deferred needs.
|
|
78
|
+
*/
|
|
79
|
+
deferOrdinal: number;
|
|
80
|
+
/**
|
|
81
|
+
* Whether the formula's ROOT call deferred in the evaluation in progress. With one call in all,
|
|
82
|
+
* the cell's value is that call's answer and a settle needs no re-evaluation. Cleared with
|
|
83
|
+
* {@link deferOrdinal}.
|
|
84
|
+
*/
|
|
85
|
+
deferRoot: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* The call the last `defer` was served — the site's call standing for its payload — or `null`
|
|
88
|
+
* when that `defer` made a new one. The dispatch around the deferring body takes it and, when
|
|
89
|
+
* the call has a latest, answers that in place of the body's return. Cleared with
|
|
90
|
+
* {@link deferOrdinal}.
|
|
91
|
+
*/
|
|
92
|
+
deferServed: DeferredCall | null;
|
|
73
93
|
/**
|
|
74
94
|
* Stable nameIds currently on the resolution stack — the cycle guard for named
|
|
75
95
|
* formulas. A plain name re-entering itself (`X = X + 1`) is a circular reference.
|
|
@@ -23,10 +23,6 @@ export declare const CalcState: {
|
|
|
23
23
|
readonly Removed: number;
|
|
24
24
|
/** The node is in the pending spatial (the user has been given a pending status). */
|
|
25
25
|
readonly Pending: number;
|
|
26
|
-
/** A precedent evaluated to a pending value this pass, so the node keeps its cached value. */
|
|
27
|
-
readonly PendingPrecedents: number;
|
|
28
|
-
/** The node's promise resolved; the result waits in `cachedValue` for the next pass. */
|
|
29
|
-
readonly PendingResolved: number;
|
|
30
26
|
/**
|
|
31
27
|
* The topological sort could not order the node this pass — it is in a reference cycle, or
|
|
32
28
|
* downstream of one — so it was (or will be) evaluated by demand and `doEvaluate` takes its
|
|
@@ -82,14 +78,28 @@ export declare const CalcState: {
|
|
|
82
78
|
* never needed for a right answer.
|
|
83
79
|
*/
|
|
84
80
|
readonly Queued: number;
|
|
81
|
+
/**
|
|
82
|
+
* A precedent is pending with a value this pass: the node evaluates from that value, as any
|
|
83
|
+
* dependent does, and is pending with it.
|
|
84
|
+
*/
|
|
85
|
+
readonly WaitingPrecedents: number;
|
|
86
|
+
/**
|
|
87
|
+
* The node is {@link Pending} with a value its dependents calculate from — it holds a call that
|
|
88
|
+
* has not answered, or was calculated from such a value — rather than holding them. Decided by
|
|
89
|
+
* each evaluation, so outside {@link PassMask}.
|
|
90
|
+
*/
|
|
91
|
+
readonly PendingValue: number;
|
|
92
|
+
readonly ServeLatest: number;
|
|
93
|
+
/**
|
|
94
|
+
* The evaluation recorded a call of the cell's own that has not answered: the cell is working,
|
|
95
|
+
* not merely waiting on a precedent. Decided by each evaluation, so outside {@link PassMask}.
|
|
96
|
+
*/
|
|
97
|
+
readonly OwnCall: number;
|
|
98
|
+
/** What the status index was last told, while {@link Pending}: working (set) or waiting (clear). */
|
|
99
|
+
readonly SentWorking: number;
|
|
85
100
|
/** What the mark phase resets: everything a single pass decides. `Skip` and the shown role survive. */
|
|
86
101
|
readonly PassMask: number;
|
|
87
102
|
};
|
|
88
|
-
/**
|
|
89
|
-
* Where a node the topological sort could not order stands in the demand evaluation
|
|
90
|
-
* (DESIGN-CIRCULAR-CALC.md §4.3). Meaningful only while `CalcState.Circular` is set for the
|
|
91
|
-
* current pass. Values sit in the `CalcState.DemandMask` field.
|
|
92
|
-
*/
|
|
93
103
|
export declare const DemandState: {
|
|
94
104
|
/** Not yet evaluated; a read of it suspends the reader so it can go first. */
|
|
95
105
|
readonly Unevaluated: 0;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { IRange, ScalarType, FormulaError, Scalar, IReferenceRange, IFunction, IFormulaContext, IFunctionArguments, IRuntime } from '@sheetxl/primitives';
|
|
1
|
+
import { IRange, ScalarType, FormulaError, Scalar, IReferenceRange, IFunction, IFormulaContext, IFunctionArguments, IRuntime, IRichData } from '@sheetxl/primitives';
|
|
2
2
|
import { FunctionProvider } from '@sheetxl/scripting';
|
|
3
3
|
import { ITransaction } from '../../transaction';
|
|
4
4
|
import { IFunctionCollection } from '../../scripting';
|
|
5
5
|
import { Tuple } from '../../collections';
|
|
6
6
|
import { IContextContainer } from './IContextContainer';
|
|
7
7
|
import { CalcScope } from './CalcScope';
|
|
8
|
+
import { WhatIfTable } from '../executor/_WhatIf';
|
|
8
9
|
import { ReadHook } from './_ReadObservedGrid';
|
|
9
10
|
export declare class CalculationContext implements IFormulaContext {
|
|
10
11
|
protected _instanceScope: any;
|
|
@@ -29,12 +30,6 @@ export declare class CalculationContext implements IFormulaContext {
|
|
|
29
30
|
* single-cell read {@link getValueAt} falls back to. Constructing a reference is not a read.
|
|
30
31
|
*/
|
|
31
32
|
protected _onRead: ReadHook | null;
|
|
32
|
-
/**
|
|
33
|
-
* Receives the reads of references built on the DYNAMIC branch of {@link getReference} — the
|
|
34
|
-
* result of `OFFSET`/`INDIRECT`/`INDEX` — when {@link _onRead} is not armed. The executor arms
|
|
35
|
-
* it for the length of an ordinary pass so that a dynamic read landing on the evaluating cell
|
|
36
|
-
* is seen (DESIGN-CIRCULAR-CALC.md §5); `null` outside a pass.
|
|
37
|
-
*/
|
|
38
33
|
protected _dynamicRead: ReadHook | null;
|
|
39
34
|
/**
|
|
40
35
|
* Marks the evaluation in progress as having read its position, so its answer stands in for
|
|
@@ -60,6 +55,22 @@ export declare class CalculationContext implements IFormulaContext {
|
|
|
60
55
|
* hook is armed. See {@link _dynamicRead}.
|
|
61
56
|
*/
|
|
62
57
|
_setDynamicReadHook(hook: ReadHook | null): void;
|
|
58
|
+
/**
|
|
59
|
+
* @hidden
|
|
60
|
+
* Disarms both read hooks and returns what they were, for {@link _restoreReadHooks}: a what-if
|
|
61
|
+
* evaluation reads plainly in the middle of a node that is itself observed.
|
|
62
|
+
*/
|
|
63
|
+
_takeReadHooks(): [ReadHook | null, ReadHook | null];
|
|
64
|
+
/** @hidden Re-arms the hooks {@link _takeReadHooks} returned. */
|
|
65
|
+
_restoreReadHooks(hooks: [ReadHook | null, ReadHook | null]): void;
|
|
66
|
+
/**
|
|
67
|
+
* @hidden
|
|
68
|
+
* The grid id of the cell being evaluated and of an input reference, for `TABLE`: `null` for a
|
|
69
|
+
* reference whose sheet does not resolve.
|
|
70
|
+
*/
|
|
71
|
+
_gridIdOfReference(coords: Readonly<IRange.Coords> | null): string | null;
|
|
72
|
+
/** @hidden The what-if results of a data table, for the `TABLE` node being evaluated. */
|
|
73
|
+
_evaluateWhatIf(table: WhatIfTable): Scalar[][] | null;
|
|
63
74
|
/**
|
|
64
75
|
* @hidden
|
|
65
76
|
*
|
|
@@ -68,19 +79,21 @@ export declare class CalculationContext implements IFormulaContext {
|
|
|
68
79
|
_initialize(transactions?: ITransaction.IStore): Promise<{
|
|
69
80
|
functions: IFunctionCollection;
|
|
70
81
|
}>;
|
|
82
|
+
_createScoped(sheet: string): CalculationContext | null;
|
|
71
83
|
/**
|
|
72
84
|
* @hidden
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
* shared context resolves references through the mutable `CalcScope` the container owns, which
|
|
76
|
-
* only carries a grid while a formula is evaluating; a vended function called outside the
|
|
77
|
-
* graph needs a grid of its own. Shares every initialized part (runtime, functions, coercer) —
|
|
78
|
-
* only the scope object is new — and is NEVER used on the engine's evaluation path, which
|
|
79
|
-
* stays allocation-free on the shared instance.
|
|
85
|
+
* The workbook's context with no cell, for `IDeferContext.getFormulaContext`: shares every
|
|
86
|
+
* initialized part, as {@link _createScoped} does, and refuses what needs a cell.
|
|
80
87
|
*/
|
|
81
|
-
|
|
88
|
+
_createCellFree(): CalculationContext;
|
|
82
89
|
/** @inheritdoc IFormulaContext.getFunction */
|
|
83
90
|
getFunction(name: string): IFunction | null;
|
|
91
|
+
/**
|
|
92
|
+
* @hidden
|
|
93
|
+
* The function registry's stamp: a function {@link getFunction} returned stays the answer for its
|
|
94
|
+
* name while this is unchanged.
|
|
95
|
+
*/
|
|
96
|
+
_getFunctionStamp(): number;
|
|
84
97
|
/** @inheritdoc IFormulaContext.getNumberFormat */
|
|
85
98
|
getNumberFormat(formatText: string, value: Scalar): string | null;
|
|
86
99
|
/** @inheritdoc IFormulaContext.getEntireCoords */
|
|
@@ -89,6 +102,8 @@ export declare class CalculationContext implements IFormulaContext {
|
|
|
89
102
|
getFormulaAt(row: number, column: number, sheetName?: string): string | null;
|
|
90
103
|
/** @inheritdoc IFormulaContext.markVolatile */
|
|
91
104
|
markVolatile(): void;
|
|
105
|
+
/** @inheritdoc IFormulaContext.defer */
|
|
106
|
+
defer(executor: IFormulaContext.DeferExecutor, payload?: unknown): unknown;
|
|
92
107
|
/** @inheritdoc IFormulaContext.formatResults */
|
|
93
108
|
formatResults(numFmt: string): void;
|
|
94
109
|
/** @inheritdoc IFormulaContext.filterHidden */
|
|
@@ -157,29 +172,6 @@ export declare class CalculationContext implements IFormulaContext {
|
|
|
157
172
|
_expandSheetSpan(value: any): IRange.Coords[] | null;
|
|
158
173
|
/** @inheritdoc IFormulaContext.getResizedReference */
|
|
159
174
|
getResizedReference(anchor: Readonly<IRange.Coords>, rowCount: number, colCount: number): IReferenceRange;
|
|
160
|
-
/**
|
|
161
|
-
* Builds the {@link ReferenceRange} every {@link getReference} path returns.
|
|
162
|
-
*
|
|
163
|
-
* @remarks
|
|
164
|
-
* Coords that land off the grid cannot be formed into a reference at all, and `ReferenceRange`
|
|
165
|
-
* says so with an internal `OutOfBoundsError`. Left alone that escapes the calculation as a
|
|
166
|
-
* `#VALUE!` carrying the text "Out of bounds"; the formula-visible answer is `#REF!`, which is
|
|
167
|
-
* what {@link IFormulaContext.getReference} documents and what Excel answers for every consumer
|
|
168
|
-
* whose reference IS the result (`OFFSET` in all four directions, `INDIRECT` past the last
|
|
169
|
-
* row/column - probe-oob-getreference.ps1).
|
|
170
|
-
*
|
|
171
|
-
* A caller that reads a WINDOW rather than returning a reference - `SUMIF`'s `sum_range`,
|
|
172
|
-
* `LOOKUP`'s `result_vector`, both anchor-plus-length - goes through
|
|
173
|
-
* {@link getResizedReference} instead: Excel reads the part that fits rather than failing.
|
|
174
|
-
*
|
|
175
|
-
* This is the one place a reference is built on a formula's behalf, so it is where the read
|
|
176
|
-
* hook attaches: while {@link _onRead} is armed the reference is built over a
|
|
177
|
-
* {@link ReadObservedGrid} and every value it (or a view derived from it) opens is reported.
|
|
178
|
-
* Unarmed, a static reference's grid is used as is — the ordinary path pays nothing, not even a
|
|
179
|
-
* branch per read — while a `dynamic` one (the result of `OFFSET`/`INDIRECT`/`INDEX`, the rare
|
|
180
|
-
* path) reports to {@link _dynamicRead} when that is armed: a dynamic read that lands on the
|
|
181
|
-
* evaluating cell is a cycle on any path (design §5).
|
|
182
|
-
*/
|
|
183
175
|
private _toReference;
|
|
184
176
|
/** @inheritdoc IFormulaContext.getAddress */
|
|
185
177
|
getAddress(coords?: Readonly<IRange.FixableCoords | IRange.FixableCellCoords>, r1c1?: boolean): string;
|
|
@@ -205,6 +197,8 @@ export declare class CalculationContext implements IFormulaContext {
|
|
|
205
197
|
toText(value: Scalar | undefined): string;
|
|
206
198
|
/** @inheritdoc IFormulaContext.getRuntime */
|
|
207
199
|
getRuntime(): IRuntime;
|
|
200
|
+
/** @inheritdoc IFormulaContext.createRichData */
|
|
201
|
+
createRichData(type: string, data?: any): IRichData;
|
|
208
202
|
/** @inheritdoc IFormulaContext.getArgs */
|
|
209
203
|
getArgs(): IFunctionArguments;
|
|
210
204
|
get [Symbol.toStringTag](): string;
|