@sheetxl/sdk 0.8.0-beta.12 → 0.8.0-beta.14
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/{CBYMTDzMf1Vh7pkw.mjs → 3t4S9eda2I6jFad0.mjs} +1 -1
- package/browser/esm/{Bg5Di9GLNAkbqQ1P.mjs → AXlD9K1gCwPU4gCO.mjs} +1926 -1298
- package/browser/esm/{w6Jea0TiclPrYZ2M.mjs → B1aH_qa-czVyEVHd.mjs} +509 -509
- package/browser/esm/{DZiivy0NmO1Vnyzk.mjs → BEDfJP2tcuRy2Y2E.mjs} +2 -2
- package/browser/esm/{BdCJNawfifyPupCP.mjs → BLYl-afJe_3std8i.mjs} +1 -1
- package/browser/esm/{D2RZh0O9neOsyLAE.mjs → BPPMKyMn65i1a1mE.mjs} +69 -48
- package/browser/esm/{yuhcOYw6SHQ-RCm3.mjs → BSXQAXwZdJKYTO4P.mjs} +30 -30
- package/browser/esm/{-Jx-jNHmtIQQfLvK.mjs → BVqIknGhQCLUB_7Q.mjs} +1 -1
- package/browser/esm/{fXWUMDhZ5yMSO629.mjs → BWoz4kQdA5KKJfl6.mjs} +1 -1
- package/browser/esm/{DwwR3O2sEZApPSTF.mjs → Bdcd3QOzsc0aVMjN.mjs} +3 -3
- package/browser/esm/{2mIwPy2D2JUX-9wx.mjs → BpwULQPKbb4R9Jew.mjs} +2 -2
- package/browser/esm/{CwOPLXU3-9ZHGyOT.mjs → C7hpfT-sX2lyLS-D.mjs} +1 -1
- package/browser/esm/{BIHrHjRGWVlJglcp.mjs → CImFKFaYToUH-bSE.mjs} +2 -2
- package/browser/esm/{BTFBedJMRWGvZyCE.mjs → CM_X1zZYzEUPaNJL.mjs} +1 -1
- package/browser/esm/CPIWV3Enlh_BF2TY.mjs +19 -0
- package/browser/esm/{CndRBvVfQUJIYRRj.mjs → ChYgQL-8qIDFmX31.mjs} +50 -50
- package/browser/esm/{BudSIfXBAsTxvu-K.mjs → CtC__ALh4I8PKIln.mjs} +10071 -9246
- package/browser/esm/{qO-ujUrgq6H3TQix.mjs → Cy8uYCggktF83278.mjs} +1 -1
- package/browser/esm/D2NFcBM4xsv0JJ1q.mjs +184 -0
- package/browser/esm/{D9xNz46kAfXMZzp4.mjs → D39XcmtPXVtMN4yF.mjs} +2 -2
- package/browser/esm/{CdEO8CEee6lEhabA.mjs → DBvu0tdSf-5vol4e.mjs} +2 -2
- package/browser/esm/{Tah7cnFb_HNZdLtj.mjs → DIfAk63CvaOZ3QKi.mjs} +3 -3
- package/browser/esm/{B3wf5vZCsWfWsDbj.mjs → D_XMi4_5iO2rkET5.mjs} +1 -1
- package/browser/esm/{DgrAuRD2qr2DvFeJ.mjs → Dh84MDs-OhdCPCIg.mjs} +44 -44
- package/browser/esm/{DPhGQLNGmDZwODwJ.mjs → Dhw5XEJYFrkYjdU2.mjs} +94 -94
- package/browser/esm/{Cxjxk0ncRKx80I-w.mjs → DiXeQjc0WJGLSVEo.mjs} +1 -1
- package/browser/esm/DnR0xY7_iE3TmMcg.mjs +348 -0
- package/browser/esm/{DK899HhWX1HINMC1.mjs → DnqwX3-2NfGBaXXl.mjs} +25 -25
- package/browser/esm/{D64dM68B1pKYFzdP.mjs → DonQz2Tc3k9lNT8E.mjs} +2 -2
- package/browser/esm/{Bt8_m94tBdks209L.mjs → DvvqmUQ9Z0NFm1-4.mjs} +1 -1
- package/browser/esm/{BnC4-27Igwb8oDf2.mjs → Ln4gsmhqH1LyoANj.mjs} +44 -43
- package/browser/esm/{CUzYuYTTGsChC_kZ.mjs → MuNBN02MyZ558c_K.mjs} +2052 -1583
- package/browser/esm/{CRkYR-siY2C994KV.mjs → SwLp-iElwDjfcJtv.mjs} +1 -1
- package/browser/esm/{C9u8FUewte5ugUjH.mjs → UMQTbO0zNmBpzW1V.mjs} +725 -716
- package/browser/esm/aRXqxIzjuSLwawMh.mjs +18 -0
- package/browser/esm/index.mjs +482 -440
- package/browser/esm/{hCQJcmIzPDxDEv2q.mjs → oSCy1X5CJ1iYtGDp.mjs} +2 -2
- package/browser/esm/{DobHLF6VjHr7Xi40.mjs → qCqzZW74-fhaIG2V.mjs} +1 -1
- package/browser/esm/{CNdjyofiRu6CYOrr.mjs → r_EZapMBdyS4gUd-.mjs} +50 -48
- package/browser/esm/yuF8SbWfjBfrxcq5.mjs +367 -0
- package/licenses/dependencies.txt +71 -1
- package/node/esm/99miMotf3dOuG5Jk.mjs +372 -0
- package/node/esm/{-TA0MneBDKdGhsib.mjs → B3hBxzqJ2_hUylNr.mjs} +3329 -2852
- package/node/esm/{BNXLOEddJ6O9gYws.mjs → B5VmOC0jO9Zbh9Mq.mjs} +2 -2
- package/node/esm/{DhS6yWjrrSNIJMsn.mjs → B6jhx5pHPs2W5GE7.mjs} +234 -225
- package/node/esm/{DUTmDHbFbhLDT4F3.mjs → BCjHRVU8tC5lYypg.mjs} +1 -1
- package/node/esm/BEBt5fo__rvT2q_u.mjs +310 -0
- package/node/esm/{icn2nX5Z8e_3mNAv.mjs → BELc5aQ_pFPgbiso.mjs} +1 -1
- package/node/esm/{DrCf6ITcBhVOFpRj.mjs → BEdxa3I4VOiCsvy7.mjs} +7 -7
- package/node/esm/{D3ptRKzASqBut1DE.mjs → BLPrFp_jKGYgWPX1.mjs} +2 -2
- package/node/esm/{BskP3b8vUoIOGLY6.mjs → BSVttk12GXNfKZ9k.mjs} +2 -2
- package/node/esm/{D4ROK9UwDpS6jO3Z.mjs → BXg-D8Rc_iyB8p7X.mjs} +1 -1
- package/node/esm/{DV5CU37aEbFbWFL0.mjs → BfEdeOg4iYXaYTlh.mjs} +1 -1
- package/node/esm/BuyAYLI4s33-vmgG.mjs +18 -0
- package/node/esm/{C_xf5Bz30VqiJjXn.mjs → C-5JLSNof0FhkuFd.mjs} +1 -1
- package/node/esm/{eimUGjiIP-b8HiM6.mjs → C3S4hF1vn0NyJPPd.mjs} +52 -52
- package/node/esm/{BL2iiEoqxDEV2Xrg.mjs → CI8UIWR01z9QDlzH.mjs} +3348 -2610
- package/node/esm/{pYtP7wPyS96NQyXS.mjs → CPsGyt3vnOdLTShj.mjs} +25 -25
- package/node/esm/{CG-qBU5BAaVz7e-P.mjs → Ccocd9DTvOnlOE9D.mjs} +1 -1
- package/node/esm/{C14-R6tifRh7pc0p.mjs → CdSTmD2ZvG9NesNR.mjs} +1 -1
- package/node/esm/{Q_S1g46ZOTrdhTae.mjs → Crn6dnSQQRCQAnQ-.mjs} +1 -1
- package/node/esm/{DdoiuKg9BKubtF1V.mjs → Cyeq1rDslIqF1LKz.mjs} +1 -1
- package/node/esm/{Ci_zLYmCD7e-C79O.mjs → D30rC6AWaGGf3CaC.mjs} +1 -1
- package/node/esm/D4Y1WJgjiFEgbWrW.mjs +115 -0
- package/node/esm/{Vocy-I9dKzZMr0Ct.mjs → DLdXl0O0TXuyqLU4.mjs} +10898 -10685
- package/node/esm/{D8hO07ToAibIuniw.mjs → DbPUG2DcQ3T_QhcJ.mjs} +138 -136
- package/node/esm/{lGJ42sHqg5if2bba.mjs → DeFE8QfuCeGw-mvd.mjs} +458 -458
- package/node/esm/{CiIymQN6aJCul62g.mjs → DiCMnYA2bttmrX3q.mjs} +9 -9
- package/node/esm/{DhTya_mhmN53vskv.mjs → Dlk2ZYExFgQ0xE2H.mjs} +1 -1
- package/node/esm/{Btw4148Ot8ifhNc1.mjs → I-FZojIFWluC6X-j.mjs} +1 -1
- package/node/esm/{C99zzq8DImQXi4BQ.mjs → Lj98EH6coGdKUzuS.mjs} +10 -10
- package/node/esm/{B-HUPAcqvK0eeeCz.mjs → NA-8urR7T1NCwrgD.mjs} +38 -37
- package/node/esm/{DxazKtROyaI51dWl.mjs → YpOpRyciqQLIY1-G.mjs} +1 -1
- package/node/esm/{CkRYLed8Mmn3giNg.mjs → b3XnssSr9lmvAC2N.mjs} +2 -2
- package/node/esm/clgEkmEwfB28nkz2.mjs +351 -0
- package/node/esm/index.mjs +584 -540
- package/node/esm/{CRt3vXe6YmXzqk3H.mjs → pF2vCOTmrxPAB41Q.mjs} +102 -102
- package/node/esm/{CBuEu5Jk-LfaDy-H.mjs → uLrulyR7IXq0SF4j.mjs} +44 -44
- package/node/esm/{C_aL7CGS1lrNn1Ng.mjs → xRGObcoaGDnAZFnj.mjs} +1 -1
- package/package.json +10 -7
- 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 +4 -0
- package/resources/locales/en/model.msg.json +4 -0
- package/types/scripting-api.json +9339 -9320
- package/types/scripting.d.ts +322 -200
- 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/anomalies/_FocusTable.d.ts +0 -6
- package/types/src/calculation/Calculation.d.ts +20 -95
- package/types/src/calculation/ExternalBookBindings.d.ts +0 -26
- package/types/src/calculation/NamedFormulaCollection.d.ts +6 -2
- 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 +0 -13
- 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 +0 -52
- package/types/src/calculation/engine/CalcBackend.d.ts +15 -157
- package/types/src/calculation/engine/index.d.ts +0 -8
- package/types/src/calculation/executor/CalcExecutor.d.ts +13 -130
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +30 -11
- 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 +0 -19
- package/types/src/calculation/formula/FormulaBlock.d.ts +0 -28
- package/types/src/calculation/formula/FormulaRecordView.d.ts +0 -15
- package/types/src/calculation/formula/IFormulaBlock.d.ts +0 -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/grid/CalcGrid.d.ts +5 -59
- package/types/src/calculation/grid/CalcGridBackend.d.ts +8 -9
- package/types/src/calculation/grid/CalcGridProxy.d.ts +0 -13
- package/types/src/calculation/grid/CalcGridUtils.d.ts +18 -22
- package/types/src/calculation/grid/ICalcGrid.d.ts +13 -98
- package/types/src/calculation/grid/_CalcRequest.d.ts +1 -29
- package/types/src/calculation/spatial/CircularEntry.d.ts +0 -10
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +52 -82
- package/types/src/calculation/spatial/SpillEntry.d.ts +10 -7
- package/types/src/calculation/state/CalcScope.d.ts +0 -9
- package/types/src/calculation/state/CalcState.d.ts +0 -12
- package/types/src/calculation/state/CalculationContext.d.ts +4 -37
- package/types/src/calculation/state/DeferredCalls.d.ts +11 -64
- package/types/src/calculation/state/IContextContainer.d.ts +4 -60
- package/types/src/calculation/state/_KeepBlanks.d.ts +5 -0
- package/types/src/calculation/state/_PendingOverlayGrid.d.ts +46 -33
- package/types/src/calculation/state/_WhatIfLayer.d.ts +0 -14
- 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 +14 -28
- package/types/src/cellRange/ICellRange.d.ts +22 -11
- 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/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 +0 -19
- package/types/src/chart/resolve/_ResolvedChart.d.ts +0 -6
- 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 +1 -23
- 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 +13 -14
- package/types/src/fetch/IFetcher.d.ts +2 -1
- package/types/src/fetch/_WorkbookFetch.d.ts +1 -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/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/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 +0 -12
- 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/richData/RichDataRegistry.d.ts +6 -0
- package/types/src/scripting/TypedFunction.d.ts +0 -109
- package/types/src/scripting/enumManifest.browser.d.ts +7 -2
- package/types/src/sheet/IWorksheet.d.ts +2 -5
- package/types/src/sheet/NamedCellRange.d.ts +0 -21
- package/types/src/sheet/SheetCell.d.ts +8 -2
- package/types/src/sheet/Worksheet.d.ts +7 -48
- package/types/src/sheet/_DelimitedText.d.ts +13 -0
- package/types/src/sheet/_IgnoredErrors.d.ts +0 -12
- package/types/src/sheet/_ScalarListFactory.d.ts +0 -19
- package/types/src/sheet/_SheetCoords.d.ts +0 -7
- package/types/src/sheet/_SheetFilterUtils.d.ts +0 -8
- package/types/src/sheet/_SheetStateReader.d.ts +0 -10
- package/types/src/sheet/_SheetStateTypes.d.ts +0 -3
- 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/Workbook.d.ts +0 -10
- package/browser/esm/2WuhYrIpYmOR5H73.mjs +0 -698
- package/browser/esm/CTe2qfmIUEad6FJv.mjs +0 -199
- package/browser/esm/CfRqiPDg6RBTg1EN.mjs +0 -367
- package/browser/esm/DVroRnhi-5IDXNgM.mjs +0 -210
- package/browser/esm/DwZCT7DZiiXoTweg.mjs +0 -14
- package/node/esm/BSvOluusoDM4z_dx.mjs +0 -811
- package/node/esm/CPI58duc0j0a-HpJ.mjs +0 -115
- package/node/esm/DggQ23jKMpwhENfa.mjs +0 -372
- package/node/esm/Dn1M7YWi25DeeYUb.mjs +0 -210
- package/node/esm/ZXPFcsT2zrALCZux.mjs +0 -289
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { IRange, Scalar } from '@sheetxl/primitives';
|
|
2
2
|
import { CalcNode, IContextContainer } from '../state';
|
|
3
3
|
import { WhatIfLayer } from '../state/_WhatIfLayer';
|
|
4
|
-
/**
|
|
5
|
-
* A what-if data table as its `TABLE` formula states it (DESIGN-DATA-TABLES §1): the results'
|
|
6
|
-
* top-left cell and size, and the input cells, all on one grid.
|
|
7
|
-
*/
|
|
8
4
|
export interface WhatIfTable {
|
|
9
5
|
gridId: string;
|
|
10
6
|
/** The top-left result cell: where the `TABLE` formula sits. */
|
|
@@ -30,21 +26,6 @@ export interface WhatIfHost {
|
|
|
30
26
|
}
|
|
31
27
|
/** The rectangles of a table's edge: the formula cells, then the axes. All on the table's grid. */
|
|
32
28
|
export declare function whatIfEdge(table: WhatIfTable): IRange.Coords[];
|
|
33
|
-
/**
|
|
34
|
-
* The affected set S of a table (DESIGN-DATA-TABLES §4.3): every node downstream of an input
|
|
35
|
-
* that is upstream of a formula cell or an axis cell, in an order that evaluates a node after
|
|
36
|
-
* the nodes it reads. Widened to the whole downstream closure when a member reads through a
|
|
37
|
-
* dynamic reference, whose edges the index cannot bound.
|
|
38
|
-
*
|
|
39
|
-
* A `TABLE` node is never a member, this table's own included: another table's results are read as
|
|
40
|
-
* they stand, not re-run under this table's substitutions, as Excel reads them (design §2.2 T6).
|
|
41
|
-
* That also keeps the walk from passing through a table's own edges, which would reach the table.
|
|
42
|
-
*/
|
|
43
29
|
export declare function whatIfAffectedSet(container: IContextContainer, table: WhatIfTable): CalcNode[];
|
|
44
|
-
/**
|
|
45
|
-
* A table's results under the what-if protocol of DESIGN-DATA-TABLES §2.2, evaluating `affected`
|
|
46
|
-
* (from {@link whatIfAffectedSet}) under each substitution. The layers are the host's; nothing is
|
|
47
|
-
* restored, the caller drops them.
|
|
48
|
-
*/
|
|
49
30
|
export declare function runWhatIf(host: WhatIfHost, table: WhatIfTable, affected: readonly CalcNode[]): Scalar[][];
|
|
50
31
|
//# sourceMappingURL=_WhatIf.d.ts.map
|
|
@@ -176,36 +176,8 @@ export declare class FormulaBlock implements IFormulaBlock {
|
|
|
176
176
|
* shared named-body block at every level, and only a copy keeps an outer activation's captured
|
|
177
177
|
* environment intact underneath it. See `LambdaValue`.
|
|
178
178
|
*/
|
|
179
|
-
/**
|
|
180
|
-
* Fills the shared argument buffer for a call that has at least one LAZY argument, deciding per
|
|
181
|
-
* call whether to defer at all.
|
|
182
|
-
*
|
|
183
|
-
* @remarks
|
|
184
|
-
* The engine declines whenever an eager argument is a CONTAINER, because the call is then about
|
|
185
|
-
* to LIFT: the body runs once per element and different elements may select different arms, so
|
|
186
|
-
* every arm is needed. Excel abandons laziness there too — `=IF(B1:B3>0,1,A1+1)` in A1 IS a
|
|
187
|
-
* circular reference where the scalar-condition form is not (measured, `probe-lazy-args.ps1`).
|
|
188
|
-
*
|
|
189
|
-
* A declined argument is evaluated ONCE, here, and handed over as the VALUE rather than as a
|
|
190
|
-
* filled handle: the lift SAMPLES an arm per element (`IF(A1:A5>2,A1:A5,0)` answers element by
|
|
191
|
-
* element), and only the marshaller can sample it. The handle it hands the body is rebuilt there,
|
|
192
|
-
* around the sampled member. So the arm is evaluated once and indexed, never re-evaluated.
|
|
193
|
-
*
|
|
194
|
-
* Deferring evaluates nothing, so nothing can re-enter `_reuseArgs` while it is being filled.
|
|
195
|
-
* The decline path does evaluate, and takes a private array for exactly that reason.
|
|
196
|
-
*/
|
|
197
179
|
protected _fillLazyArgs(argsIndexed: ASTNode[], argsLength: number, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number, depth: number): void;
|
|
198
180
|
protected _createLambdaValue(node: FunctionNode, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number): LambdaValue;
|
|
199
|
-
/**
|
|
200
|
-
* The callee verdicts + apply for a `Call` node (design §3.4, §1.1):
|
|
201
|
-
*
|
|
202
|
-
* - a lambda value → arity check, bind, evaluate the body;
|
|
203
|
-
* - a function value (eta `SUM`) → dispatch to the function itself;
|
|
204
|
-
* - a reference that is not a lambda → `#REF!` (Excel resolved it and failed to CALL it);
|
|
205
|
-
* - any other value → `#VALUE!` (a failed coercion, same class as `="a"+1`).
|
|
206
|
-
*
|
|
207
|
-
* All three error rows are MEASURED (probe-lambda-call.ps1).
|
|
208
|
-
*/
|
|
209
181
|
protected _applyCallee(callee: any, node: ASTNode, regs: any[]): any;
|
|
210
182
|
/**
|
|
211
183
|
* Apply over VALUES — the marshalled-callable twin of {@link _applyCallee}'s lambda branch
|
|
@@ -4,11 +4,6 @@ import { ICalculation } from '../ICalculation';
|
|
|
4
4
|
import { ReferenceCoords, StructuredReference } from '../Types';
|
|
5
5
|
import { CompilerLocale } from '../compiler/CompilerLocale';
|
|
6
6
|
import { FormulaRecord, IFormulaBlockView } from './IFormulaBlock';
|
|
7
|
-
/**
|
|
8
|
-
* What imaging a {@link FormulaRecord} needs beside the record (DESIGN-CALC-SERVICE §8): the
|
|
9
|
-
* symbol map to resolve its stable ids against, the grid the formula sits on, and the reader's
|
|
10
|
-
* locale. The facade supplies the model's own map; the engine never images for it.
|
|
11
|
-
*/
|
|
12
7
|
export interface FormulaImager {
|
|
13
8
|
/** Stable ids to display names. */
|
|
14
9
|
readonly symbols: ISymbolRegistry;
|
|
@@ -24,16 +19,6 @@ export interface FormulaImager {
|
|
|
24
19
|
*/
|
|
25
20
|
resolveTableReference?(reference: StructuredReference, row: number): IRange.FixableCoords | FormulaError.Known;
|
|
26
21
|
}
|
|
27
|
-
/**
|
|
28
|
-
* A block as the model reads it: the engine's record imaged against the reader's own symbols
|
|
29
|
-
* (DESIGN-CALC-SERVICE §8).
|
|
30
|
-
*
|
|
31
|
-
* @remarks
|
|
32
|
-
* What the facade hands the model for every block the engine vends. The record is plain data and
|
|
33
|
-
* crosses the channel; the imager is the facade's and never does. Text is the same function of
|
|
34
|
-
* (tokens, symbols, anchor, locale) the compiled block images by - only where it runs differs -
|
|
35
|
-
* so what a sheet reads is what the engine would image, by the model's names.
|
|
36
|
-
*/
|
|
37
22
|
export declare class FormulaRecordView implements IFormulaBlockView {
|
|
38
23
|
/** The block as data: what this view images. */
|
|
39
24
|
readonly record: FormulaRecord;
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import { IRange, FormulaError } from '@sheetxl/primitives';
|
|
2
2
|
import { ICalculation } from '../ICalculation';
|
|
3
3
|
import { ReferenceCoords, SetReferenceOptions, PrecedentTemplate, StructuredReference } from '../Types';
|
|
4
|
-
/**
|
|
5
|
-
* A compiled formula as data (DESIGN-CALC-SERVICE §8): what the engine vends for a block, and all
|
|
6
|
-
* the facade needs to image a read view of it for the model (`FormulaRecordView`). Plain data, so
|
|
7
|
-
* it survives `structuredClone`; the syntax tree never crosses.
|
|
8
|
-
*
|
|
9
|
-
* @remarks
|
|
10
|
-
* The tokens carry stable ids in their values - a sheet's, a name's, a table's - and cell
|
|
11
|
-
* coordinates relative to the block's top-left, so one record serves every cell of the block. Text
|
|
12
|
-
* is imaged from them against the reader's own symbol map ({@link FormulaImager}), which is what
|
|
13
|
-
* makes a held copy rename-proof: nothing in the record names a sheet by its name. The model
|
|
14
|
-
* never sees one: it holds the view.
|
|
15
|
-
*/
|
|
16
4
|
export interface FormulaRecord {
|
|
17
5
|
/** The block's tokens, stable ids in their values, references relative to the block's top-left. */
|
|
18
6
|
readonly tokens: readonly ICalculation.FormulaToken[];
|
|
@@ -172,20 +172,5 @@ export declare const OMITTED: unique symbol;
|
|
|
172
172
|
* to convert, so it cannot leak (plan risk 2).
|
|
173
173
|
*/
|
|
174
174
|
export declare const readFrameValue: (value: any) => any;
|
|
175
|
-
/**
|
|
176
|
-
* The recursion budget apply enforces via `CalcScope.depth`.
|
|
177
|
-
*
|
|
178
|
-
* @remarks
|
|
179
|
-
* DESKTOP measured (probe-lambda-eval block A, 2026-08-21): its cap sits between 5,000 and 100,000, and the error at it IS `#NUM!` — the
|
|
180
|
-
* error Microsoft's own LAMBDA documentation names for runaway recursion.
|
|
181
|
-
*
|
|
182
|
-
* 512 rather than Online's 1000: each apply level costs a dozen JS frames, and past ~1000 levels a
|
|
183
|
-
* BROWSER stack dies first — not as a catchable `RangeError` at the recursion site, but as
|
|
184
|
-
* arbitrary near-exhaustion failures deep inside the engine (a regex compile inside the number
|
|
185
|
-
* parser was the observed one), which inner catch sites convert to `#VALUE!` values. The budget
|
|
186
|
-
* has to keep the engine comfortably inside every platform's stack; raising it toward the measured
|
|
187
|
-
* desktop number needs the lazy-`IF` (Conditional) carve-out first, since eager `IF` makes every
|
|
188
|
-
* terminating recursion burn to this cap before unwinding.
|
|
189
|
-
*/
|
|
190
175
|
export declare const MAX_LAMBDA_DEPTH = 512;
|
|
191
176
|
//# sourceMappingURL=LambdaValue.d.ts.map
|
|
@@ -21,14 +21,7 @@ export declare function absoluteReferences(references: readonly ReferenceCoords[
|
|
|
21
21
|
* When `symbols` is absent (no registry was used at compile time) the tokens
|
|
22
22
|
* already hold display names and are returned as-is.
|
|
23
23
|
*/
|
|
24
|
-
export declare function resolveTokenSymbols(tokens: ICalculation.FormulaToken[], symbols: ISymbolRegistry | null | undefined, canonical?: boolean,
|
|
25
|
-
/**
|
|
26
|
-
* Re-image for a READER rather than for storage. Only an external book reads differently: stored
|
|
27
|
-
* it is `[n]Sheet1` (a position), displayed it is the book's own spelling, and the book half is
|
|
28
|
-
* split into its own {@link TokenType.ExternalReference} token so an editor can color or elide it
|
|
29
|
-
* (DESIGN-EXTERNAL-LINKS §4B).
|
|
30
|
-
*/
|
|
31
|
-
display?: boolean,
|
|
24
|
+
export declare function resolveTokenSymbols(tokens: ICalculation.FormulaToken[], symbols: ISymbolRegistry | null | undefined, canonical?: boolean, display?: boolean,
|
|
32
25
|
/**
|
|
33
26
|
* The formula's cell (`scope` is its sheet's name or id), for display only. A single-column
|
|
34
27
|
* reference to the table holding it (`Table1[Qty]`, `Table1[@Qty]`) drops the table name, as Excel
|
|
@@ -12,27 +12,6 @@ import { NamedReference } from '../Types';
|
|
|
12
12
|
import { ContentfulSpatialValue, SpillEntry, CircularEntry } from '../spatial';
|
|
13
13
|
import { ICalcGrid } from './ICalcGrid';
|
|
14
14
|
import { FormulaEntry } from './FormulaEntry';
|
|
15
|
-
/**
|
|
16
|
-
* The grid as the model holds it (DESIGN-CALC-SERVICE §13.23, §13.24): the synchronous half of
|
|
17
|
-
* every implementation, in front of a backend that answers late or not at all.
|
|
18
|
-
*
|
|
19
|
-
* @remarks
|
|
20
|
-
* Owns what a cell holds - the formulas as the model wrote them, text per run; the values, both
|
|
21
|
-
* the literals it entered and the answers the engine vended; and the indexes over them (the
|
|
22
|
-
* contentful summary, the array extents, the error values, the calc status) - versioned in the
|
|
23
|
-
* model's own transaction store, so an undo restores them with everything else the operation
|
|
24
|
-
* wrote. Each formula entry carries the view of the compiled block the backend vends for it.
|
|
25
|
-
* Every write lands here first, in the caller's transaction, and is then forwarded to the backend
|
|
26
|
-
* as the same verb; what the backend answers with is folded into the snapshot the request named
|
|
27
|
-
* and every later one, where what the request was made against is still there, and dropped where
|
|
28
|
-
* something newer wrote ({@link _adopt}, {@link _applyValueVend}). So an undo lands on maps that
|
|
29
|
-
* already carry the engine's answer for them, with no round trip.
|
|
30
|
-
*
|
|
31
|
-
* The backend is an {@link ICalcGrid.Backend}: the in-process engine grid, a message-passing
|
|
32
|
-
* proxy under a worker, and nothing at all is what an `Off` engine amounts to (the channel
|
|
33
|
-
* records nothing, so the text here is the whole truth until a start seeds the engine from it).
|
|
34
|
-
* The same code in every case; only the delegate differs.
|
|
35
|
-
*/
|
|
36
15
|
export declare class CalcGrid implements ICalcGrid {
|
|
37
16
|
protected readonly _backend: ICalcGrid.Backend;
|
|
38
17
|
protected readonly _calculation: ICalculation | null;
|
|
@@ -134,6 +113,8 @@ export declare class CalcGrid implements ICalcGrid {
|
|
|
134
113
|
getContentful(transaction?: ITransaction | null): ISpatialMap<ContentfulSpatialValue>;
|
|
135
114
|
/** {@inheritDoc ICalcGrid.getSpills} */
|
|
136
115
|
getSpills(transaction?: ITransaction | null): ISpatialMap<SpillEntry>;
|
|
116
|
+
/** {@inheritDoc ICalcGrid.getBlockedSpills} */
|
|
117
|
+
getBlockedSpills(): ISpatialQuery<SpillEntry>;
|
|
137
118
|
/** {@inheritDoc ICalcGrid.getPending} */
|
|
138
119
|
getCalcStatus(transaction?: ITransaction | null): ISpatialMap<ICalcGrid.CalcStatus>;
|
|
139
120
|
/** {@inheritDoc ICalcGrid.getCalcErrors} */
|
|
@@ -279,15 +260,6 @@ export declare class CalcGrid implements ICalcGrid {
|
|
|
279
260
|
* @internal
|
|
280
261
|
*/
|
|
281
262
|
_seedContent(): ICalcGrid.JSON | null;
|
|
282
|
-
/**
|
|
283
|
-
* This grid's content as its calc JSON (DESIGN-CALC-SERVICE §6.6): the same record a save
|
|
284
|
-
* writes, and what a start opens the backend from. The formulas, the array extents, the
|
|
285
|
-
* volatile regions, the rows and columns the owner hides and - with `includeData` - the values
|
|
286
|
-
* are all this grid's own; a volatile region is kept only where a formula still sits.
|
|
287
|
-
*
|
|
288
|
-
* A pending entry is written as its own text; a compiled one images its block where it sits.
|
|
289
|
-
* @internal
|
|
290
|
-
*/
|
|
291
263
|
_content(options?: ICalcGrid.ToJSONOptions): ICalcGrid.JSON | null;
|
|
292
264
|
/** The array extents a load carries, as spill entries. */
|
|
293
265
|
protected _spillsFromJSON(formulaArray: readonly IRange.JSONReferenceTuple<ITypes.FormulaArrayKind>[]): ISpatialMap.Entry<SpillEntry>[];
|
|
@@ -347,37 +319,12 @@ export declare class CalcGrid implements ICalcGrid {
|
|
|
347
319
|
* first; the record lists every block.
|
|
348
320
|
*/
|
|
349
321
|
protected _adopt(results: ICalcGrid.Results, vended?: readonly VendSnapshot[]): void;
|
|
350
|
-
/**
|
|
351
|
-
* Land the value half of a record - values, spills, errors, pending and circular marks - in the
|
|
352
|
-
* snapshots it answers for, by ownership (DESIGN-CALC-SERVICE §13.18).
|
|
353
|
-
*
|
|
354
|
-
* @remarks
|
|
355
|
-
* Every item has one owner, and a snapshot's formula map says which: a cell holding a formula
|
|
356
|
-
* entry is the engine's, one holding none is the model's, a spill cell is the engine's through
|
|
357
|
-
* its anchor. So an item lands in a snapshot where that snapshot's map holds, over the item,
|
|
358
|
-
* what the requested snapshot's map held: the requested snapshot itself everywhere, a later one
|
|
359
|
-
* wherever nothing newer wrote. An item that a later write cut into is split at the ownership
|
|
360
|
-
* boundary when its payload is per cell (a value run, a pending or error mark, which the maps
|
|
361
|
-
* merge across neighbors) and left whole when it is one thing (a spill extent, a cycle). A full
|
|
362
|
-
* record clears an engine-owned map, keeping what a later snapshot owns.
|
|
363
|
-
*
|
|
364
|
-
* The maps are the snapshots' own instances, shared by reference until a write clones them, so
|
|
365
|
-
* each distinct instance is written once, settled for every snapshot that holds it. In-process
|
|
366
|
-
* the list is the requested snapshot alone and this is one write, as it always was. Nothing
|
|
367
|
-
* here goes through the caller's transaction: these are the backend's answers, regenerated by
|
|
368
|
-
* any pass.
|
|
369
|
-
*/
|
|
370
322
|
protected _applyValueVend(results: ICalcGrid.Results, snapshots: readonly VendSnapshot[]): void;
|
|
371
323
|
/** {@inheritDoc ICalcGrid.close} */
|
|
372
324
|
close(): void;
|
|
373
325
|
get [Symbol.toStringTag](): string;
|
|
374
326
|
}
|
|
375
327
|
export declare namespace CalcGrid {
|
|
376
|
-
/**
|
|
377
|
-
* Everything the grid holds for the model, versioned in the model's own store
|
|
378
|
-
* (DESIGN-CALC-SERVICE §13.23, §13.24): what the model wrote and what the backend answered
|
|
379
|
-
* with, one record per commit, so an undo restores them with the operation that wrote them.
|
|
380
|
-
*/
|
|
381
328
|
interface State {
|
|
382
329
|
/** The formulas as the model wrote them, one entry per run, with the backend's view where it has vended one. */
|
|
383
330
|
formulaSpatial: ISpatialMap<FormulaEntry>;
|
|
@@ -387,6 +334,8 @@ export declare namespace CalcGrid {
|
|
|
387
334
|
contentfulSpatial: ISpatialMap<ContentfulSpatialValue>;
|
|
388
335
|
/** The array extents: what the file said, what an array entry wrote, what the engine vended. */
|
|
389
336
|
spillSpatial: ISpatialMap<SpillEntry>;
|
|
337
|
+
/** See {@link ICalcGrid.getBlockedSpills}. */
|
|
338
|
+
blockedSpillSpatial: ISpatialMap<SpillEntry>;
|
|
390
339
|
/**
|
|
391
340
|
* The volatile regions the file listed: what an `Off` save writes back and a seed carries,
|
|
392
341
|
* kept where a formula still sits under them. What the engine knows once it is up it answers
|
|
@@ -397,10 +346,6 @@ export declare namespace CalcGrid {
|
|
|
397
346
|
calcStatusSpatial: ISpatialMap<ICalcGrid.CalcStatus>;
|
|
398
347
|
/** Engine FAILURES by cell, as a message. Not error values - those are in the values. */
|
|
399
348
|
calcErrorsSpatial: ISpatialMap<string>;
|
|
400
|
-
/**
|
|
401
|
-
* Cells in a reference cycle or downstream of one, by cycle (DESIGN-CIRCULAR-CALC.md §7.2).
|
|
402
|
-
* Maintained from the executor's deltas, like {@link calcStatusSpatial}.
|
|
403
|
-
*/
|
|
404
349
|
circularSpatial: ISpatialMap<CircularEntry>;
|
|
405
350
|
/**
|
|
406
351
|
* Error VALUES by cell, as the WRITE path knows them: fresh for what the model entered and
|
|
@@ -435,6 +380,7 @@ export declare namespace CalcGrid {
|
|
|
435
380
|
values: ISparseGrid<Scalar>;
|
|
436
381
|
contentful: ISpatialMap<ContentfulSpatialValue>;
|
|
437
382
|
spills: ISpatialMap<SpillEntry>;
|
|
383
|
+
blockedSpills: ISpatialMap<SpillEntry>;
|
|
438
384
|
calcStatus: ISpatialMap<ICalcGrid.CalcStatus>;
|
|
439
385
|
calcErrors: ISpatialMap<string>;
|
|
440
386
|
circulars: ISpatialMap<CircularEntry>;
|
|
@@ -9,9 +9,6 @@ import { ICalculation } from '../ICalculation';
|
|
|
9
9
|
import { ICalcGrid } from './ICalcGrid';
|
|
10
10
|
import { GridRequest, CalcResponse } from './_CalcRequest';
|
|
11
11
|
import { CalcGridProxy } from './CalcGridProxy';
|
|
12
|
-
/**
|
|
13
|
-
* ICalcGrid implementation
|
|
14
|
-
*/
|
|
15
12
|
export declare class CalcGridBackend extends CalcGridProxy implements ICalcGrid.Backend {
|
|
16
13
|
/**
|
|
17
14
|
* This is MOSTLY set by the user but spills also contribute.
|
|
@@ -75,11 +72,6 @@ export declare class CalcGridBackend extends CalcGridProxy implements ICalcGrid.
|
|
|
75
72
|
* time, so the oldest are dropped past a few.
|
|
76
73
|
*/
|
|
77
74
|
protected _snapshots: Map<string, CalcGridSnapshot> | null;
|
|
78
|
-
/**
|
|
79
|
-
* The owner's callback for a record the engine pushed - a pass's results, a seed's. The one
|
|
80
|
-
* place the response half of the boundary is crossed on the way out (DESIGN-CALC-SERVICE §11); every site
|
|
81
|
-
* that pushes calls this rather than `_options.onCalculated`.
|
|
82
|
-
*/
|
|
83
75
|
protected _onCalculated: (response: CalcResponse) => void;
|
|
84
76
|
constructor(options?: CalcGridBackend.ConstructorOptions);
|
|
85
77
|
/**
|
|
@@ -321,7 +313,7 @@ export declare class CalcGridBackend extends CalcGridProxy implements ICalcGrid.
|
|
|
321
313
|
/** What a `setReferenceMode` request does: refused for a reference that is not to cells. */
|
|
322
314
|
protected _setReferenceModeNow(row: number, column: number, index: number, side: ICalculation.ReferenceSide, mode?: number): CalcResponse;
|
|
323
315
|
/** What an `isVolatile` request answers. */
|
|
324
|
-
|
|
316
|
+
_isVolatileNow(row: number, column: number): boolean;
|
|
325
317
|
protected _formulaAt(row: number, column: number): ISpatialMap.Entry<FormulaSpatialValue> | null;
|
|
326
318
|
/**
|
|
327
319
|
* Create non error spill entries for move/copy.
|
|
@@ -357,6 +349,7 @@ export declare class CalcGridBackend extends CalcGridProxy implements ICalcGrid.
|
|
|
357
349
|
* vend for the pass that follows.
|
|
358
350
|
*/
|
|
359
351
|
_setInputsNow(values: Tuple.Region<Scalar> | null, formulas: readonly ISpatialMap.Entry<string>[] | null, deleteRange?: IRange.Coords, options?: ICalcGrid.SetInputsOptions): IRange.Coords[];
|
|
352
|
+
_rederivePrecedentsNow(blocks: ISpatialMap.Entry<FormulaSpatialValue>[]): void;
|
|
360
353
|
/**
|
|
361
354
|
* Joins each block just written with an equal block beside it, so a formula written under a run
|
|
362
355
|
* of it, or between two runs, extends the run rather than starting a block of its own.
|
|
@@ -399,6 +392,12 @@ export declare class CalcGridBackend extends CalcGridProxy implements ICalcGrid.
|
|
|
399
392
|
* external book's cached values) is loaded this way; a model's goes through {@link seed}.
|
|
400
393
|
*/
|
|
401
394
|
_seedNow(json: ICalcGrid.JSON, options?: ICalcGrid.SeedOptions): CalcResponse;
|
|
395
|
+
/**
|
|
396
|
+
* Whether `coords` is the anchor of a spill saved with its result: a result's first cell can be
|
|
397
|
+
* blank, which leaves no value at the anchor, and the spill's other cells are what say it ran. An
|
|
398
|
+
* extent with nothing in it is a writer that does not calculate, and is still owed its evaluation.
|
|
399
|
+
*/
|
|
400
|
+
protected _isSavedSpill(coords: IRange.Coords): boolean;
|
|
402
401
|
/** What a `toJSON` request answers: the grid's content as the engine holds it now. */
|
|
403
402
|
protected _toJSONNow(options?: ICalcGrid.ToJSONOptions): ICalcGrid.JSON | null;
|
|
404
403
|
}
|
|
@@ -8,15 +8,6 @@ import { NamedReference } from '../Types';
|
|
|
8
8
|
import { ICalculation } from '../ICalculation';
|
|
9
9
|
import { ICalcGrid } from './ICalcGrid';
|
|
10
10
|
import { CalcRequest } from './_CalcRequest';
|
|
11
|
-
/**
|
|
12
|
-
* A grid's verbs as requests (DESIGN-CALC-SERVICE §4, §13.23): each one a message through the
|
|
13
|
-
* service's channel, addressed by the grid's id. What the model's grid forwards to - it never
|
|
14
|
-
* holds the engine's grid, which an `Off` engine does not have.
|
|
15
|
-
*
|
|
16
|
-
* @remarks
|
|
17
|
-
* The engine's own grid answers the same verbs through the same channel, so its engine-side
|
|
18
|
-
* tests can drive it directly; it adds what only the engine holds.
|
|
19
|
-
*/
|
|
20
11
|
export declare class CalcGridProxy implements ICalcGrid.Backend {
|
|
21
12
|
protected readonly _gridId: string;
|
|
22
13
|
protected readonly _sendRequest: CalcGridProxy.ConstructorOptions['send'];
|
|
@@ -29,10 +20,6 @@ export declare class CalcGridProxy implements ICalcGrid.Backend {
|
|
|
29
20
|
* engine lands at the root's close). `undefined` for a request naming no snapshot.
|
|
30
21
|
*/
|
|
31
22
|
protected _landingId(options: ICalcGrid.RequestOptions | undefined): string | undefined;
|
|
32
|
-
/**
|
|
33
|
-
* Sends a request through the service's channel (DESIGN-CALC-SERVICE §4): applied now on a
|
|
34
|
-
* `Running` engine, held in order while it is `Starting`, not recorded on an `Off` one.
|
|
35
|
-
*/
|
|
36
23
|
protected _send(landingId: string | undefined, request: CalcRequest): Promise<ICalcGrid.Results>;
|
|
37
24
|
/** @inheritdoc ICalcGrid.getId */
|
|
38
25
|
getId(): string;
|
|
@@ -62,7 +62,8 @@ export declare function clearErrorIndex(errorSpatial: ISpatialMap<string>, coord
|
|
|
62
62
|
export declare function applyContentful(cycleId: number, removes: readonly IRange.Coords[] | null | undefined, inserts: ISpatialMap.Entry[] | null | undefined, contentfulSpatial: ISpatialMap<ContentfulSpatialValue>, spillSpatial: ISpatialMap<SpillEntry>, values: ISparseGrid<Scalar>, addDirty?: (colStart: number, rowStart: number, colEnd: number, rowEnd: number) => void, notifyValuesSpatial?: ISpatialMap, notifySpills?: (insert: ISpatialMap.Entry<SpillEntry>, remove: ISpatialMap.Entry<SpillEntry>) => void, notifyCalcStatus?: ISpatialMap<ICalcGrid.CalcStatus | false>, errorSpatial?: ISpatialMap<string>, // notifyErrorSpatial,
|
|
63
63
|
isColumn?: boolean, notifyCalc?: boolean, // should notify. this is to differentiate between user set values and calc set values
|
|
64
64
|
circularSpatial?: ISpatialMap<CircularEntry>, // the circular index: a written cell leaves it, like errorSpatial
|
|
65
|
-
calcStatusSpatial?: ISpatialMap<ICalcGrid.CalcStatus
|
|
65
|
+
calcStatusSpatial?: ISpatialMap<ICalcGrid.CalcStatus>, // the pending index: a written cell leaves it now, not at the next pass's end
|
|
66
|
+
blockedSpillSpatial?: ISpatialMap<SpillEntry>): IRange.Coords | null;
|
|
66
67
|
/**
|
|
67
68
|
* Creates a map from tuples
|
|
68
69
|
*
|
|
@@ -122,6 +123,12 @@ export interface PrecedentFormulaUpdates {
|
|
|
122
123
|
* evaluate, but until then no precedent leads the dirty sweep to them.
|
|
123
124
|
*/
|
|
124
125
|
dynamicDependents?: ISpatialMap.Entry<FormulaSpatialValue>[];
|
|
126
|
+
/**
|
|
127
|
+
* {@link movePrecedents}: the replacement formulas a cut changed only by moving an EDGE of their
|
|
128
|
+
* reference. They still read only the cut's own sheet, and a contracted one may no longer reach
|
|
129
|
+
* anything the cut touched, so the caller marks them dirty itself.
|
|
130
|
+
*/
|
|
131
|
+
edged?: ISpatialMap.Entry<FormulaSpatialValue>[];
|
|
125
132
|
}
|
|
126
133
|
/**
|
|
127
134
|
* Splits precedents at the insertion boundary.
|
|
@@ -156,23 +163,7 @@ export declare function splitPrecedentsInsert(precedents: ISpatialMap3D<Preceden
|
|
|
156
163
|
* INVARIANT: All resulting formula entries must have logically identical formulas.
|
|
157
164
|
*/
|
|
158
165
|
export declare function splitPrecedentsDelete(precedents: ISpatialMap3D<PrecedentSpatialValue>, coords: IRange.Coords): PrecedentFormulaUpdates | null;
|
|
159
|
-
|
|
160
|
-
* Splits precedents at the cut boundary to isolate the moveable sub-block.
|
|
161
|
-
*
|
|
162
|
-
* @remarks
|
|
163
|
-
* For move operations: isolates the sub-block of formula cells whose natural bounds
|
|
164
|
-
* are fully enclosed by the move coords. The inner piece will be moved; outer pieces stay.
|
|
165
|
-
*
|
|
166
|
-
* Natural bounds = the precedent size for a single formula cell.
|
|
167
|
-
* A formula cell at block-relative offset `r` has natural row range:
|
|
168
|
-
* `[P.rowStart + r, P.rowStart + r + nh - 1]`
|
|
169
|
-
* where `nh = (P.rowEnd - P.rowStart) - (F.rowEnd - F.rowStart) + 1`.
|
|
170
|
-
*
|
|
171
|
-
* Excel rule: only move if the natural bounds fit entirely within the cut rect.
|
|
172
|
-
*
|
|
173
|
-
* INVARIANT: All resulting formula entries must have logically identical formulas.
|
|
174
|
-
*/
|
|
175
|
-
export declare function splitPrecedentsMove(precedents: ISpatialMap3D<PrecedentSpatialValue>, coords: IRange.Coords): PrecedentFormulaUpdates | null;
|
|
166
|
+
export declare function splitPrecedentsMove(precedents: ISpatialMap3D<PrecedentSpatialValue>, from: IRange.Coords, to: IRange.Coords): PrecedentFormulaUpdates | null;
|
|
176
167
|
/**
|
|
177
168
|
* This shifts precedents that cross an intersection boundary.
|
|
178
169
|
*
|
|
@@ -194,13 +185,18 @@ export declare function shiftPrecedents(getPrecedentSpatial: () => ISpatialMap3D
|
|
|
194
185
|
* whose precedent points INTO the moved region.
|
|
195
186
|
*
|
|
196
187
|
* @remarks
|
|
197
|
-
* Pre-condition:
|
|
198
|
-
* After split, each precedent is either fully inside or fully outside the `from` region
|
|
188
|
+
* Pre-condition: {@link splitPrecedentsMove} has already been applied so no precedent straddles the
|
|
189
|
+
* boundary. After split, each precedent is either fully inside or fully outside the `from` region,
|
|
190
|
+
* or takes one EDGE cut the same way in every cell.
|
|
199
191
|
*
|
|
200
192
|
* For a move (cut+paste), the data moves rigidly from `from` to `to`.
|
|
201
|
-
* Both edges of
|
|
193
|
+
* Both edges of an enclosed precedent shift by the same delta — a uniform translation. A precedent
|
|
194
|
+
* whose edge the cut took has that edge moved first ({@link edgeMoveReferenceAxis}); those formulas
|
|
195
|
+
* are also answered in `edged` when nothing of theirs translated, because they still read only
|
|
196
|
+
* the cut's own sheet.
|
|
202
197
|
*
|
|
203
|
-
* Formulas inside the move range are skipped (they move with their data)
|
|
198
|
+
* Formulas inside the move range are skipped (they move with their data), and so are those inside
|
|
199
|
+
* `to`, which are the moved ones.
|
|
204
200
|
*/
|
|
205
201
|
export declare function movePrecedents(precedentSpatial: ISpatialMap3D<PrecedentSpatialValue>, getDynamicPrecedents: () => Map<FormulaSpatialValue, ISpatialMap.Entry<PrecedentSpatialValue>[]>, from: IRange.Coords, to: IRange.Coords): PrecedentFormulaUpdates | null;
|
|
206
202
|
/**
|
|
@@ -11,28 +11,6 @@ import { FormulaEntry } from './FormulaEntry';
|
|
|
11
11
|
import { ContentfulSpatialValue, SpillEntry, CircularEntry } from '../spatial';
|
|
12
12
|
import { NamedReference, NamedNodeInfo } from '../Types';
|
|
13
13
|
import { ICalculation } from '../ICalculation';
|
|
14
|
-
/**
|
|
15
|
-
* The CalcGridBackend holds input and outputs of in a 2D space to a scope (usually a sheet).
|
|
16
|
-
*
|
|
17
|
-
* @remarks
|
|
18
|
-
* If inputValues are externally managed then formulas update must also be provided.
|
|
19
|
-
*
|
|
20
|
-
* Every mutation is ASYNCHRONOUS and resolves with an {@link ICalcGrid.Results}: the blocks the
|
|
21
|
-
* engine compiled or re-imaged for the write ({@link ICalcGrid.Results.formulaInserts}) and the
|
|
22
|
-
* coords it removed ({@link ICalcGrid.Results.formulaRemoves}). Nothing about the grid is readable
|
|
23
|
-
* synchronously after a write; a caller keeps its own formula text and patches it from the
|
|
24
|
-
* resolution. A request names the snapshot it was made at ({@link ICalcGrid.RequestOptions.commitId})
|
|
25
|
-
* and the resolution echoes it ({@link ICalcGrid.Results.commitId}): its coords mean addresses in
|
|
26
|
-
* THAT snapshot, whatever the caller has done since. A rewrite the engine makes to a grid nobody
|
|
27
|
-
* called - a cross-sheet reference turned `#REF!` by a delete on another sheet - reaches that grid
|
|
28
|
-
* through its own `onCalculated`, the way values do, naming the last snapshot the engine applied.
|
|
29
|
-
*
|
|
30
|
-
* Every request goes through the service's channel (DESIGN-CALC-SERVICE §4, §7.2). On a `Running`
|
|
31
|
-
* engine it is applied at once; while the engine is `Starting` it is held, as data, and applied
|
|
32
|
-
* in send order once the engine is up, behind the seed the grid was opened from; on an `Off`
|
|
33
|
-
* engine it is not recorded at all and resolves with nothing: the caller's own view is the truth
|
|
34
|
-
* there, and a later start is seeded from it. An `Off` engine is never started by a request.
|
|
35
|
-
*/
|
|
36
14
|
export interface ICalcGrid {
|
|
37
15
|
/**
|
|
38
16
|
* Set a group of cells and formula ranges.
|
|
@@ -74,28 +52,7 @@ export interface ICalcGrid {
|
|
|
74
52
|
* This allows for incremental dirty updates.
|
|
75
53
|
*/
|
|
76
54
|
markDirtyRegions(coords: IRange.Coords[]): void;
|
|
77
|
-
/**
|
|
78
|
-
* The key of this grid's record in the model's store (DESIGN-CALC-SERVICE §13.23): what the
|
|
79
|
-
* grid holds, versioned beside the sheet's own record so that an undo restores both together.
|
|
80
|
-
*
|
|
81
|
-
* @remarks
|
|
82
|
-
* For a cell buffer to name among the records its held writes go to, so that a read of the
|
|
83
|
-
* grid through the store makes those writes first. The reads themselves take the transaction
|
|
84
|
-
* to answer for; nothing reads the record by this key.
|
|
85
|
-
*/
|
|
86
55
|
getStateId(): string;
|
|
87
|
-
/**
|
|
88
|
-
* The values as the model holds them: the literals it entered and the answers the engine
|
|
89
|
-
* vended, one map (DESIGN-CALC-SERVICE §13.24).
|
|
90
|
-
*
|
|
91
|
-
* @remarks
|
|
92
|
-
* The whole grid, not a narrowed read surface: the sheet reads values on its hottest paths and
|
|
93
|
-
* sparse grids are heading for buffer-backed runs, which closes the boundary a narrower type
|
|
94
|
-
* would have bought. Answered from the grid's own store record - never the backend's working
|
|
95
|
-
* copy, which is on the far side of the boundary and can be behind.
|
|
96
|
-
* @param transaction Read the record as this transaction sees it, its held writes not yet
|
|
97
|
-
* made; the current record when omitted.
|
|
98
|
-
*/
|
|
99
56
|
getValues(transaction?: ITransaction | null): ISparseGrid<Scalar>;
|
|
100
57
|
/**
|
|
101
58
|
* The contentful index: which cells hold a value, summarized per run. Derived from
|
|
@@ -110,6 +67,11 @@ export interface ICalcGrid {
|
|
|
110
67
|
* made; the current record when omitted.
|
|
111
68
|
*/
|
|
112
69
|
getSpills(transaction?: ITransaction | null): ISpatialMap<SpillEntry>;
|
|
70
|
+
/**
|
|
71
|
+
* The blocked spills, each at the extent it would take, for showing that region. A blocked spill
|
|
72
|
+
* occupies none of it: its anchor holds the `#SPILL!`, so nothing that reads cells needs this.
|
|
73
|
+
*/
|
|
74
|
+
getBlockedSpills(): ISpatialQuery<SpillEntry>;
|
|
113
75
|
/**
|
|
114
76
|
* The cells the engine has not answered for yet - an async function in flight, a pass still
|
|
115
77
|
* running.
|
|
@@ -124,11 +86,6 @@ export interface ICalcGrid {
|
|
|
124
86
|
* made; the current record when omitted.
|
|
125
87
|
*/
|
|
126
88
|
getCalcErrors(transaction?: ITransaction | null): ISpatialMap<string>;
|
|
127
|
-
/**
|
|
128
|
-
* Cells in a reference cycle or downstream of one, by cycle (DESIGN-CIRCULAR-CALC.md §7.2).
|
|
129
|
-
* @param transaction Read the record as this transaction sees it, its held writes not yet
|
|
130
|
-
* made; the current record when omitted.
|
|
131
|
-
*/
|
|
132
89
|
getCirculars(transaction?: ITransaction | null): ISpatialMap<CircularEntry>;
|
|
133
90
|
/**
|
|
134
91
|
* Error VALUES (`#DIV/0!`, `#N/A`, ...) by cell: the `Error` scalar kind, entered or computed.
|
|
@@ -351,24 +308,6 @@ export interface ICalcGrid {
|
|
|
351
308
|
* @param options See {@link ICalcGrid.RequestOptions}.
|
|
352
309
|
*/
|
|
353
310
|
setFiltered(filtered: boolean, options?: ICalcGrid.RequestOptions): void;
|
|
354
|
-
/**
|
|
355
|
-
* Opens the grid from a seed: a statement of its whole content (DESIGN-CALC-SERVICE §6).
|
|
356
|
-
*
|
|
357
|
-
* @param json The content, the same record a save writes.
|
|
358
|
-
* @param options {@link ICalcGrid.SeedOptions}
|
|
359
|
-
*
|
|
360
|
-
* @remarks
|
|
361
|
-
* Replaces everything the grid held, so opening twice equals opening once. A seed is a request
|
|
362
|
-
* like any other: applied at once on a `Running` engine, held in order while the engine is
|
|
363
|
-
* `Starting`, not recorded on an `Off` one (the owner keeps the content and hands it over again
|
|
364
|
-
* when the service is started). Its results are a full pass's - `isFull`, every block it
|
|
365
|
-
* compiled and every array extent it read - and reach the owner through `onCalculated` as it is
|
|
366
|
-
* applied, in order with every other record the grid pushes; the promise resolves after that.
|
|
367
|
-
*
|
|
368
|
-
* A seed trusts the values it carries as a load does. One handed over at `start()` by an owner
|
|
369
|
-
* the engine has not been following - a sheet written to while `Off` - asks for a full pass
|
|
370
|
-
* instead ({@link ICalcGrid.SeedOptions.full}).
|
|
371
|
-
*/
|
|
372
311
|
seed(json: ICalcGrid.JSON, options?: ICalcGrid.SeedOptions): Promise<ICalcGrid.Results>;
|
|
373
312
|
/**
|
|
374
313
|
* Returns a JSON representation of the calcGrid.
|
|
@@ -405,12 +344,7 @@ export interface ICalcGrid {
|
|
|
405
344
|
* {@link ICalcGrid}
|
|
406
345
|
*/
|
|
407
346
|
export declare namespace ICalcGrid {
|
|
408
|
-
|
|
409
|
-
* What the model's grid forwards to (DESIGN-CALC-SERVICE §13.23): every verb and every read
|
|
410
|
-
* the engine answers, and nothing the model holds for itself. The in-process engine grid is
|
|
411
|
-
* one; a message-passing proxy under a worker is another.
|
|
412
|
-
*/
|
|
413
|
-
type Backend = Omit<ICalcGrid, 'getStateId' | 'getEntireCoords' | 'getFormulaAt' | 'getFormulas' | 'getValues' | 'getContentful' | 'getSpills' | 'getCalcStatus' | 'getCalcErrors' | 'getCirculars' | 'getErrorValues' | 'getValuesEpoch' | 'getVolatileRegions' | 'getRangeStats'> & {
|
|
347
|
+
type Backend = Omit<ICalcGrid, 'getStateId' | 'getEntireCoords' | 'getFormulaAt' | 'getFormulas' | 'getValues' | 'getContentful' | 'getSpills' | 'getBlockedSpills' | 'getCalcStatus' | 'getCalcErrors' | 'getCirculars' | 'getErrorValues' | 'getValuesEpoch' | 'getVolatileRegions' | 'getRangeStats'> & {
|
|
414
348
|
/** Write a body as authored; the engine anchors it (see {@link ICalcGrid.BodyOptions}). */
|
|
415
349
|
setBody(options: ICalcGrid.BodyOptions): Promise<ICalcGrid.Results>;
|
|
416
350
|
/** {@link ICalcGrid.evaluateAt} coerced to one scalar, as a defined name's `evaluate()` is. */
|
|
@@ -437,8 +371,11 @@ export declare namespace ICalcGrid {
|
|
|
437
371
|
authoredAt: IRange.CellCoords;
|
|
438
372
|
/** The sheet grid a bare reference in the expression resolves against. */
|
|
439
373
|
scopeGridId: string;
|
|
440
|
-
/**
|
|
441
|
-
|
|
374
|
+
/**
|
|
375
|
+
* Re-derive the formulas that mention this grid's name once the body is in: a defined name's.
|
|
376
|
+
* `'load'` when the body is the one the file holds, so a formula loaded with it keeps its value.
|
|
377
|
+
*/
|
|
378
|
+
recompile?: boolean | 'load';
|
|
442
379
|
/**
|
|
443
380
|
* Applied ahead of the other requests a start holds: a defined name must be bound before any
|
|
444
381
|
* formula that mentions it is examined.
|
|
@@ -516,7 +453,8 @@ export declare namespace ICalcGrid {
|
|
|
516
453
|
valueRemoves?: IRange.Coords[];
|
|
517
454
|
/**
|
|
518
455
|
* Contains any spills that were inserted. The value is the
|
|
519
|
-
* {@link ITypes.FormulaArrayKind | kind} of the block that produced it.
|
|
456
|
+
* {@link ITypes.FormulaArrayKind | kind} of the block that produced it. An `error` is at the
|
|
457
|
+
* extent it would take, as it is in {@link spillRemoves}.
|
|
520
458
|
*/
|
|
521
459
|
spillInserts?: ISpatialMap.Entry<ITypes.FormulaArrayKind>[];
|
|
522
460
|
/**
|
|
@@ -559,18 +497,6 @@ export declare namespace ICalcGrid {
|
|
|
559
497
|
* These are guaranteed to not overlap.
|
|
560
498
|
*/
|
|
561
499
|
circularUpdates?: ISpatialMap.Entry<CircularEntry | null>[];
|
|
562
|
-
/**
|
|
563
|
-
* Blocks the engine compiled or re-imaged, at the coords they cover, as the read views the
|
|
564
|
-
* model holds: the vend of the formula half. Every site that mints a block reports it here -
|
|
565
|
-
* a write, a value splitting a block, a shift, a cross-sheet `#REF!`, a copy, a fill, a
|
|
566
|
-
* reference edit, the legacy `@` wrap on load.
|
|
567
|
-
*
|
|
568
|
-
* @remarks
|
|
569
|
-
* Applied in order after {@link formulaRemoves}. On {@link isFull} every block on the grid is
|
|
570
|
-
* listed, so a caller that dropped its blocks on the full pass has them all back. What
|
|
571
|
-
* crosses is the block as data; the view is imaged from it on the model's side of the
|
|
572
|
-
* channel, against the model's own symbols (DESIGN-CALC-SERVICE §8).
|
|
573
|
-
*/
|
|
574
500
|
formulaInserts?: ISpatialMap.Entry<IFormulaBlockView>[];
|
|
575
501
|
/**
|
|
576
502
|
* Coords whose formulas the engine removed: cleared, replaced, or moved away by a shift.
|
|
@@ -628,17 +554,6 @@ export declare namespace ICalcGrid {
|
|
|
628
554
|
circularSpatial: ISpatialMap<CircularEntry>;
|
|
629
555
|
contentfulSpatial: ISpatialMap<ContentfulSpatialValue>;
|
|
630
556
|
notifyValues: ISpatialMap;
|
|
631
|
-
/**
|
|
632
|
-
* Reports a region whose answer changed without a write to the grid: a blank region the pass
|
|
633
|
-
* shares one answer for on the block instead of writing (PLAN-WATCHES-BLANK-AWARE §4c).
|
|
634
|
-
*
|
|
635
|
-
* @remarks
|
|
636
|
-
* Accumulated as bounds, not as a region index. Only `Results.bounds` learns of this - there
|
|
637
|
-
* are no values to vend - and that is one rectangle over every notify source, so the union is
|
|
638
|
-
* the whole of what a caller can observe.
|
|
639
|
-
*
|
|
640
|
-
* `coords` is read, never kept, and its scope is ignored.
|
|
641
|
-
*/
|
|
642
557
|
notifyBlank(coords: IRange.Coords): void;
|
|
643
558
|
notifySpillsInsert: ISpatialMap.Entry<SpillEntry>[];
|
|
644
559
|
notifySpillsRemove: IRange.Coords[];
|