@sheetxl/sdk 0.8.0-beta.12 → 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/{DwwR3O2sEZApPSTF.mjs → -GEhXGMfNcWmHPby.mjs} +3 -3
- package/browser/esm/{DPhGQLNGmDZwODwJ.mjs → 9WXf_BTKjW1cQisZ.mjs} +94 -94
- package/browser/esm/{CRkYR-siY2C994KV.mjs → B2SgIPPBX0wjzuq8.mjs} +1 -1
- package/browser/esm/{CBYMTDzMf1Vh7pkw.mjs → BC2RwlNwCdRywkoD.mjs} +1 -1
- package/browser/esm/{-Jx-jNHmtIQQfLvK.mjs → BEqhm9xAUPiHUCFv.mjs} +1 -1
- package/browser/esm/BHgqi7KNrl7Vjr0W.mjs +348 -0
- package/browser/esm/{D64dM68B1pKYFzdP.mjs → BJKH0tDRx2FeSWvt.mjs} +2 -2
- package/browser/esm/{DobHLF6VjHr7Xi40.mjs → BTgWtqdQoh2cB6DL.mjs} +1 -1
- package/browser/esm/{CNdjyofiRu6CYOrr.mjs → BVshV1iY3bcUH9_E.mjs} +50 -48
- package/browser/esm/{qO-ujUrgq6H3TQix.mjs → BYQ63XU7JzB4_itX.mjs} +1 -1
- package/browser/esm/{C9u8FUewte5ugUjH.mjs → Bax5aOzQkbHKXW_X.mjs} +725 -716
- package/browser/esm/{Tah7cnFb_HNZdLtj.mjs → BiDGKhtzV6yIy66o.mjs} +3 -3
- package/browser/esm/BmYrWK5OmHRtgyqM.mjs +367 -0
- package/browser/esm/{DgrAuRD2qr2DvFeJ.mjs → BoAlHgjPQ6mxb_oO.mjs} +44 -44
- package/browser/esm/{CUzYuYTTGsChC_kZ.mjs → C0mjTq8lhrX3HiPa.mjs} +2052 -1583
- package/browser/esm/{w6Jea0TiclPrYZ2M.mjs → C5j0IdwtYkWlOftv.mjs} +509 -509
- package/browser/esm/{hCQJcmIzPDxDEv2q.mjs → CL84-iL2QeKlLzo5.mjs} +2 -2
- package/browser/esm/{2mIwPy2D2JUX-9wx.mjs → CLkBe-6n-pStQhnz.mjs} +2 -2
- package/browser/esm/{DZiivy0NmO1Vnyzk.mjs → CPzfhTPX2Y4dHX2p.mjs} +2 -2
- package/browser/esm/{fXWUMDhZ5yMSO629.mjs → CSJuIjYUOE387FIP.mjs} +1 -1
- package/browser/esm/{BIHrHjRGWVlJglcp.mjs → Cdw0mGuoV3IU2LhR.mjs} +2 -2
- package/browser/esm/{yuhcOYw6SHQ-RCm3.mjs → Ced5uyofOWHuL_Jy.mjs} +30 -30
- package/browser/esm/{B3wf5vZCsWfWsDbj.mjs → Ci_LJ4S_GvYX0STI.mjs} +1 -1
- package/browser/esm/{DK899HhWX1HINMC1.mjs → CwygVKP_RXmne5Ot.mjs} +25 -25
- package/browser/esm/{BdCJNawfifyPupCP.mjs → D-mfK0noQrM2jZLT.mjs} +1 -1
- package/browser/esm/{CwOPLXU3-9ZHGyOT.mjs → D9SH_8v3FYCnxOFK.mjs} +1 -1
- package/browser/esm/{D9xNz46kAfXMZzp4.mjs → DPD8fop6az9HZNiK.mjs} +2 -2
- package/browser/esm/{D2RZh0O9neOsyLAE.mjs → DW-MmlgMH87l-_cw.mjs} +69 -48
- package/browser/esm/{DwZCT7DZiiXoTweg.mjs → DctIlUsO78-OU2ht.mjs} +2 -2
- package/browser/esm/DdcKkVb4jM6Y_epY.mjs +184 -0
- package/browser/esm/{Cxjxk0ncRKx80I-w.mjs → DfKzE0IY0TjaEIxG.mjs} +1 -1
- package/browser/esm/{BnC4-27Igwb8oDf2.mjs → DkloMquaR1pbZCER.mjs} +44 -43
- package/browser/esm/{BudSIfXBAsTxvu-K.mjs → Dz86-De57bv2VYIi.mjs} +10111 -9269
- package/browser/esm/{BTFBedJMRWGvZyCE.mjs → HApSgmV2FXRRwQac.mjs} +1 -1
- package/browser/esm/{Bt8_m94tBdks209L.mjs → IbVAQU4YqtFqLwYk.mjs} +1 -1
- package/browser/esm/index.mjs +482 -440
- package/browser/esm/mHQ95RAfxHzcUN2r.mjs +18 -0
- package/browser/esm/{CdEO8CEee6lEhabA.mjs → pm00uZZu_H3gxHFx.mjs} +2 -2
- package/browser/esm/{Bg5Di9GLNAkbqQ1P.mjs → quEvwgrEuOb0h3q-.mjs} +1926 -1298
- package/browser/esm/{CndRBvVfQUJIYRRj.mjs → zZngLMg6mg6nnNGX.mjs} +50 -50
- package/licenses/dependencies.txt +71 -1
- package/node/esm/{C14-R6tifRh7pc0p.mjs → -K4Cek-bTUItkB_8.mjs} +1 -1
- package/node/esm/{D3ptRKzASqBut1DE.mjs → -b8yNV4v9qiq8EMY.mjs} +2 -2
- package/node/esm/{CBuEu5Jk-LfaDy-H.mjs → 1V-m67YHbxmg3xk2.mjs} +44 -44
- package/node/esm/{DhTya_mhmN53vskv.mjs → 4ROAfJC1mokmqubv.mjs} +1 -1
- package/node/esm/B89et7t3uRmtxk4v.mjs +115 -0
- package/node/esm/BKBkCBNGhMU0nQdY.mjs +372 -0
- package/node/esm/{Vocy-I9dKzZMr0Ct.mjs → BQ2XqExomMceAjfe.mjs} +10977 -10744
- package/node/esm/{Btw4148Ot8ifhNc1.mjs → Bfg7qjCXCwXbzW3K.mjs} +1 -1
- package/node/esm/{BNXLOEddJ6O9gYws.mjs → BtMeAB_dqJnOfzJM.mjs} +2 -2
- package/node/esm/{Q_S1g46ZOTrdhTae.mjs → Byc_bxU_MdjYtt0x.mjs} +1 -1
- package/node/esm/{Ci_zLYmCD7e-C79O.mjs → Bzrl292TNCK3Cpid.mjs} +1 -1
- package/node/esm/{DdoiuKg9BKubtF1V.mjs → C0P9zspoypRAj7yv.mjs} +1 -1
- package/node/esm/{C_aL7CGS1lrNn1Ng.mjs → C9gpMN3galHGZyoK.mjs} +1 -1
- package/node/esm/CKCG2peOkTq0gIIW.mjs +310 -0
- package/node/esm/{C99zzq8DImQXi4BQ.mjs → CWBS90g3Hz-kQDkY.mjs} +10 -10
- package/node/esm/{BskP3b8vUoIOGLY6.mjs → CoGSVnn-hNMtTEus.mjs} +2 -2
- package/node/esm/{DhS6yWjrrSNIJMsn.mjs → CzrLqStvrcPE2-hb.mjs} +234 -225
- package/node/esm/{CRt3vXe6YmXzqk3H.mjs → D16EdlZG1hX5WUUK.mjs} +102 -102
- package/node/esm/{DUTmDHbFbhLDT4F3.mjs → D1mDga2K5sjs8y07.mjs} +1 -1
- package/node/esm/{D4ROK9UwDpS6jO3Z.mjs → D2jtztjE6c23RKvZ.mjs} +1 -1
- package/node/esm/{icn2nX5Z8e_3mNAv.mjs → D9nRcWsYk3M82iD8.mjs} +1 -1
- package/node/esm/{CG-qBU5BAaVz7e-P.mjs → DALYzTxZ9Ur9C69Q.mjs} +1 -1
- package/node/esm/{DrCf6ITcBhVOFpRj.mjs → DF0nL7s01dp7n0Bx.mjs} +7 -7
- package/node/esm/{BL2iiEoqxDEV2Xrg.mjs → DO5ldLqhTvIfPXLW.mjs} +3348 -2610
- package/node/esm/DQz8J8ci7EJdqbuB.mjs +351 -0
- package/node/esm/{CiIymQN6aJCul62g.mjs → DR2OQTKqqyIkZnse.mjs} +9 -9
- package/node/esm/{eimUGjiIP-b8HiM6.mjs → DSTLPBgpsGW6qP9e.mjs} +52 -52
- package/node/esm/{DV5CU37aEbFbWFL0.mjs → DiXp7KSOZUSWXaZ5.mjs} +1 -1
- package/node/esm/{C_xf5Bz30VqiJjXn.mjs → DwvXHsycOQR219c7.mjs} +1 -1
- package/node/esm/{B-HUPAcqvK0eeeCz.mjs → Hc6B04OyVzHx2F5I.mjs} +38 -37
- package/node/esm/{lGJ42sHqg5if2bba.mjs → NkPNHsq2T3DXg76x.mjs} +458 -458
- package/node/esm/{-TA0MneBDKdGhsib.mjs → Nl_IIkO1jbk0s9i-.mjs} +3329 -2852
- package/node/esm/{DxazKtROyaI51dWl.mjs → OQT5lGqq8a4r5xNa.mjs} +1 -1
- package/node/esm/OTaaFGhF-k_iwobp.mjs +18 -0
- package/node/esm/{pYtP7wPyS96NQyXS.mjs → Z1elC_roIu7LhceZ.mjs} +25 -25
- package/node/esm/{CkRYLed8Mmn3giNg.mjs → e3F3OVXCxLJrSukW.mjs} +2 -2
- package/node/esm/index.mjs +584 -540
- package/node/esm/{D8hO07ToAibIuniw.mjs → suOBVUz-pca6ilJH.mjs} +138 -136
- 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 +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/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/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
|
@@ -36,46 +36,9 @@ export declare function maxGetEntireCoords(): IRange.Coords;
|
|
|
36
36
|
*/
|
|
37
37
|
export declare const typeFromJsValue: (jsV: InteropScalar, checkDate?: boolean) => ScalarType;
|
|
38
38
|
export declare function valueTypeToString(type: IFunction.ValueTypeJSON): string;
|
|
39
|
-
/**
|
|
40
|
-
* The largest magnitude Excel will PARSE from text or a formula literal — the biggest
|
|
41
|
-
* 15-significant-digit value below 1E+308. Measured (formula-tests/probe-boundaries.ps1):
|
|
42
|
-
* `=9.99999999999999E+307` commits, `=1.00000000000000E+308` is refused outright.
|
|
43
|
-
*
|
|
44
|
-
* An ENTRY rule only. Computed results are bounded by the double, not by this — `8.9E+307*2`
|
|
45
|
-
* = 1.78E+308 is far past it and Excel keeps, compares and round-trips the value happily.
|
|
46
|
-
*/
|
|
47
39
|
export declare const EXCEL_MAX_NUMBER = 9.99999999999999e+307;
|
|
48
|
-
/**
|
|
49
|
-
* Renders a number the way Excel coerces one to TEXT (`&`, CONCAT, `LEFT(1/3,5)`, ...).
|
|
50
|
-
*
|
|
51
|
-
* This is NOT display "General" (that one is column-width-aware and caps at ~11 digits —
|
|
52
|
-
* `numfmt` implements it). Coercion General, measured against Excel 16.0
|
|
53
|
-
* (`spreadsheetbench/formula-tests/probe-general-coercion.ps1`):
|
|
54
|
-
*
|
|
55
|
-
* 1. round to 15 significant digits, trim trailing fraction zeros (`0.1+0.2` → `0.3`,
|
|
56
|
-
* `2^0.5` → `1.4142135623731`);
|
|
57
|
-
* 2. write the plain decimal expansion if it fits in 20 characters, sign excluded
|
|
58
|
-
* (`1/3*1E-3` → `0.000333333333333333` at exactly 20; `2^60` → `1152921504606850000`,
|
|
59
|
-
* integers pad with zeros);
|
|
60
|
-
* 3. otherwise scientific with a two-digit-minimum exponent (`1E+20`, `3.33333333333333E-05` —
|
|
61
|
-
* note `-99999999999999900000` is still decimal, but `1E+20` is not);
|
|
62
|
-
* 4. the DECIMAL SEPARATOR is the workbook locale's (`probe-general-locale.ps1`: `="" & 1.5`
|
|
63
|
-
* is `1,5` once Excel's decimal separator is `,`). Only that one separator moves —
|
|
64
|
-
* coercion never groups, so `1234.5` is `1234,5` and never `1.234,5`.
|
|
65
|
-
*
|
|
66
|
-
* This cannot route to `numfmt`: its `General` is the display one, its 11-character budget is
|
|
67
|
-
* not configurable (there is no precision option on `FormatOptions`), and "15 significant
|
|
68
|
-
* digits capped at 20 characters" is not expressible as an ECMA-376 pattern either —
|
|
69
|
-
* `0.##############` counts decimal PLACES, not significant digits.
|
|
70
|
-
*
|
|
71
|
-
* Formula modules reach this as `IFormulaContext.toText`, which is the only entry point that
|
|
72
|
-
* also handles non-numbers; this is the number-only form the coercion paths use.
|
|
73
|
-
*
|
|
74
|
-
* @param value The number to render.
|
|
75
|
-
* @param runtime Supplies the locale profile. `IRuntime.getLocaleProfile` is the single
|
|
76
|
-
* authority for separators — never derive one independently.
|
|
77
|
-
*/
|
|
78
40
|
export declare function formatNumberGeneral(value: number, runtime: IRuntime): string;
|
|
41
|
+
export declare function formatNumberLiteral(value: number, decimal?: string): string;
|
|
79
42
|
/**
|
|
80
43
|
* Renders any scalar the way Excel coerces one to TEXT — the full
|
|
81
44
|
* {@link IFormulaContext.toText} rule, of which {@link formatNumberGeneral} is the number
|
|
@@ -135,38 +98,6 @@ noMemberFilter?: boolean): void | FormulaError.Known;
|
|
|
135
98
|
export declare function convertTo2D(context: IFormulaContext, currentArg: any, // IRange or coords
|
|
136
99
|
rangeType: string | null, scalarType: ScalarType | null, // the scalar preference. If not specified no coercion will occur.
|
|
137
100
|
isDirect: boolean, errors?: 'reject' | 'accept' | null): IRange | any[][] | FormulaError.Known;
|
|
138
|
-
/**
|
|
139
|
-
* This will coerce a value and add it to the coercedArr. This is used in the argument coercion of typed functions.
|
|
140
|
-
*
|
|
141
|
-
* CoercedValues behave in special ways
|
|
142
|
-
*
|
|
143
|
-
* 1. If a value is *direct* (a scalar, whether typed or computed) it always coerces to the type.
|
|
144
|
-
* 2. If a value is a MEMBER of an array or a reference
|
|
145
|
-
* a. It ignores everything except like values and errors
|
|
146
|
-
* 3. We then coerce to Ranges.
|
|
147
|
-
*
|
|
148
|
-
* `isDirect` is Excel's "the argument itself" vs "a member of a container" distinction —
|
|
149
|
-
* `SUM(1,TRUE)` is `2` but `SUM({1,TRUE})` is `1`. Callers derive it from the runtime shape of the
|
|
150
|
-
* evaluated argument; see `isDirectArg` in `TypedFunction`.
|
|
151
|
-
*
|
|
152
|
-
* Two things it is NOT, both measured (`probe-direct-vs-literal.ps1`, pinned in
|
|
153
|
-
* `__tests__/functions/coercion/DIRECT-VS-MEMBER.json`):
|
|
154
|
-
*
|
|
155
|
-
* - **Not literalness.** `{1,TRUE}` and `A1:A2` behave IDENTICALLY (members of both are filtered),
|
|
156
|
-
* and the COMPUTED `A2>0` behaves like a typed `TRUE`. A container being a literal or a
|
|
157
|
-
* reference changes nothing anywhere in the matrix.
|
|
158
|
-
* - **Not a property of the argument alone.** Membership requires a slot that CONSUMES members:
|
|
159
|
-
* a scalar parameter takes one value, so a single-cell reference reaching it is dereferenced and
|
|
160
|
-
* IS the argument (`ABS(A1)` and `MONTH(A1)` are 1 with A1=TRUE, while `SUM(A1)` is 0). Hence
|
|
161
|
-
* `isMember` below is `!isDirect && flatten`, not `!isDirect`.
|
|
162
|
-
*
|
|
163
|
-
* The two halves at an aggregating slot: DIRECT arguments are COERCED (and a bad one errors —
|
|
164
|
-
* `SUM(1,"7e")` is `#VALUE!`), MEMBERS are TYPE-FILTERED (skipped silently, never coerced —
|
|
165
|
-
* `SUM({1,"7","7e","TRUE",TRUE})` is `1`).
|
|
166
|
-
*
|
|
167
|
-
* Some Built-in excel functions behave differently. When this occurs
|
|
168
|
-
* the use an argument type of Scalar (no coerce) and manage themselves
|
|
169
|
-
*/
|
|
170
101
|
export declare function addCoercedValue(context: IFormulaContext, coercedArr: FixedPackedArray | Scalar[], currentArg: any, isDirect: boolean, rangeType: 'p' | 'r' | 'm' | null, scalarType: ScalarType | null, // the scalar preference. If not specified then no coercion will occur.
|
|
171
102
|
allowError: boolean, flatten: boolean, // indicates we should flatten
|
|
172
103
|
errors?: 'reject' | 'accept' | null, // effective error policy (TypedFunction resolves the default)
|
|
@@ -187,39 +118,7 @@ export declare function addCoercedScalar(context: IFormulaContext, coercedArr: F
|
|
|
187
118
|
/**
|
|
188
119
|
* Minimal validation used from the return value of functions.
|
|
189
120
|
*/
|
|
190
|
-
/**
|
|
191
|
-
* Makes a raw JS double look like an Excel one: ANY non-finite value is #NUM! — NaN and
|
|
192
|
-
* ±Infinity alike. `9E+307*2`, `9E+307+9E+307` and `9E+307/0.1` all report `ERROR.TYPE` 6, and a
|
|
193
|
-
* raw NaN or ±Infinity written through the Value2 API lands as #NUM! too. Infinity does NOT mean
|
|
194
|
-
* #DIV/0!: Excel never derives that error from a float, it raises it deliberately before
|
|
195
|
-
* dividing. Functions say so themselves by returning `FormulaError.BuiltIn.Div0`.
|
|
196
|
-
*
|
|
197
|
-
* Measured against Excel 16.0 (formula-tests: probe-num-overflow.ps1, probe-boundaries.ps1,
|
|
198
|
-
* probe-api-nonfinite.ps1). This rule applies at every boundary; the SUBNORMAL rule does not —
|
|
199
|
-
* see {@link flushSubnormal}.
|
|
200
|
-
*/
|
|
201
121
|
export declare function normalizeNumber(value: number): number | FormulaError.Known;
|
|
202
|
-
/**
|
|
203
|
-
* Zeroes a magnitude below the smallest NORMAL double, which also folds -0 to 0.
|
|
204
|
-
*
|
|
205
|
-
* "Excel has no subnormals" is true of its ARITHMETIC and of its write path, and false of its
|
|
206
|
-
* function results — so this is a rule three callers apply deliberately rather than one the
|
|
207
|
-
* boundary applies to everything (measured 2026-08-30,
|
|
208
|
-
* `fn-battery/mathTrig/adhoc-subnormal-store`):
|
|
209
|
-
*
|
|
210
|
-
* * MULTIPLICATION, DIVISION and EXPONENTIATION flush. `1E-300*2.224E-8` is 0 while
|
|
211
|
-
* `1E-300*2.226E-8` survives, `2^-1022/2` is 0, and the flush lands before the next operator
|
|
212
|
-
* reads it — `=1/(1E-300*1E-100)` is #DIV/0!, not a huge number.
|
|
213
|
-
* * ADDITION and SUBTRACTION do NOT. With `Z1` holding 5E-324, `Z1+0`, `-Z1` and `Z1+Z1` all
|
|
214
|
-
* keep the value, and `Z1*1` is 0.
|
|
215
|
-
* * A FUNCTION RESULT does not either, and it survives the cell it is stored in: `EXP(-745)` is
|
|
216
|
-
* 5E-324 and `EXP(-745)*1E300` is 4.94E-24. SUM, MIN, ABS, IF, INDEX and ROUND all pass it
|
|
217
|
-
* through. EXP reaches zero only below -745.1332, the true IEEE underflow.
|
|
218
|
-
* * The API WRITE path flushes: `Double.Epsilon` set through `Value2` reads back 0.
|
|
219
|
-
* * The BOOLEAN reading flushes, and so does `SWITCH`'s comparison — both are tests against zero
|
|
220
|
-
* (`IF(EXP(-745),…)` takes the false branch and `SWITCH(EXP(-745),0,…)` matches), which the
|
|
221
|
-
* comparison OPERATORS do not do: `EXP(-745)=0` is FALSE.
|
|
222
|
-
*/
|
|
223
122
|
export declare function flushSubnormal(value: number): number;
|
|
224
123
|
export declare function minCoerce(value: any, context?: IFormulaContext | null, type?: string): any;
|
|
225
124
|
/**
|
|
@@ -281,14 +180,6 @@ export declare const BooleanCoerceTypes: readonly InteropScalarType[];
|
|
|
281
180
|
* `date` has to coerce from number, or every date function over a range matches nothing at all.
|
|
282
181
|
*/
|
|
283
182
|
export declare const DateCoerceTypes: readonly InteropScalarType[];
|
|
284
|
-
/**
|
|
285
|
-
* What a `null` read accepts. Coercing TO `null` asks for each value's empty equivalent — `0`,
|
|
286
|
-
* `''`, `false` — which is exactly what the branch in {@link createCoerceScalarFn} already
|
|
287
|
-
* implemented, and which was unreachable for the same reason `date`'s was (CALC-ISSUES §14 H2).
|
|
288
|
-
*
|
|
289
|
-
* Not reachable from a declaration — `TypedFunction` normalizes a `null` scalar param to "no
|
|
290
|
-
* type" — so this serves a direct `toType(ScalarType.Null)` caller.
|
|
291
|
-
*/
|
|
292
183
|
export declare const NullCoerceTypes: readonly InteropScalarType[];
|
|
293
184
|
export declare const AllScalarTypes: readonly InteropScalarType[];
|
|
294
185
|
//# sourceMappingURL=PrimitiveUtils.d.ts.map
|
|
@@ -18,29 +18,6 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
18
18
|
protected _localRangeStats: IRangeStats | null;
|
|
19
19
|
/** The `options` {@link _localRangeStats} was built for — the memo's key. See `getStats`. */
|
|
20
20
|
protected _localRangeStatsOptions: IRange.IteratorOptions | undefined;
|
|
21
|
-
/**
|
|
22
|
-
* What a cell the grid does not store reads as - `null` for an ordinary range.
|
|
23
|
-
*
|
|
24
|
-
* @remarks
|
|
25
|
-
* A grid can hold only part of its range's answer: a watch body's blank region shares one value
|
|
26
|
-
* that the engine keeps on the block rather than writing per cell (PLAN-WATCHES-BLANK-AWARE
|
|
27
|
-
* §4c), so within that body "absent" means "the shared answer", never "empty". A range with a
|
|
28
|
-
* non-null empty value is therefore DENSE: `getValueAt` answers it for every absent cell, and
|
|
29
|
-
* the iterators visit those cells whether or not `includeEmpty` was asked, since they are
|
|
30
|
-
* content. A STORED empty (`null`) is still empty.
|
|
31
|
-
*
|
|
32
|
-
* It is also how an elementwise operation carries its answer for the blank cells: `map`,
|
|
33
|
-
* `broadcast` and `zip` walk what their operands STORE, answer the absent region once, and
|
|
34
|
-
* hand that answer to the result here rather than writing it as a run per line — so the next
|
|
35
|
-
* operator finds the blank region again and a whole-column chain stays O(stored + runs)
|
|
36
|
-
* (CALC-PERFORMANCE §5). `fillEmpty` over the whole range sets it the same way.
|
|
37
|
-
*
|
|
38
|
-
* Every reader agrees on it: the iterators and `getValueAt` above; a transform over the same
|
|
39
|
-
* grid carries it (`slice`, `toType`, `clone`); one that derives a grid either writes every
|
|
40
|
-
* position or writes it out first (`_materializeEmpty` — `resize`, `tile`, a partial `fill`);
|
|
41
|
-
* and a reader that goes to the grid rather than through the range (the stats walk, the calc
|
|
42
|
-
* grid's write of a result, a sheet write) reads the written-out grid.
|
|
43
|
-
*/
|
|
44
21
|
protected _absentValue: Scalar;
|
|
45
22
|
constructor(runtime: IRuntime, values: ISparseGrid<Scalar>, coords: IRange.Coords | null, optionsIterator?: IRange.IteratorOptions | null, isLiteral?: boolean, isDirectScalar?: boolean, absentValue?: Scalar);
|
|
46
23
|
/** @inheritdoc IRange.argsort */
|
|
@@ -238,29 +215,6 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
238
215
|
* Returns self but accounts for literal status.
|
|
239
216
|
*/
|
|
240
217
|
protected _self(): this;
|
|
241
|
-
/**
|
|
242
|
-
* Returns this range with its read type dropped, or `this` when there is nothing to drop.
|
|
243
|
-
*
|
|
244
|
-
* @remarks
|
|
245
|
-
* For a range whose values are no longer the ones the type described — see `map`. `coerce` goes
|
|
246
|
-
* with it: it is inert without a `type` (both `_entries` and `_coerceValue` gate on one), and
|
|
247
|
-
* leaving it behind would let the SOURCE's coercion rules apply to a later `toType` on values
|
|
248
|
-
* the source never held.
|
|
249
|
-
*
|
|
250
|
-
* **The contract, so this stays consistent.** A read type is a claim about the values a range
|
|
251
|
-
* HOLDS. It survives exactly as long as those values do:
|
|
252
|
-
*
|
|
253
|
-
* | operation | type | why |
|
|
254
|
-
* | --- | --- | --- |
|
|
255
|
-
* | `map` · `broadcast` · `zip` | **dropped** | a callback produced new values; the range cannot know what they are. A caller that DOES know retypes after — `TypedFunction` does, from the declared return type. |
|
|
256
|
-
* | `filter` · `slice` · `sort` · `resize` | **kept** | selection and rearrangement only. Every surviving member is one the source already held, so the claim is still true — a filtered `number` range is still a `number` range. |
|
|
257
|
-
* | `replace` · `fillEmpty` · `fill` · `mask` | **kept** | substitution with CALLER-supplied values. Kept deliberately (these are overwhelmingly used to write same-typed values), but it is the one row that is a judgement rather than a consequence: a caller that substitutes a differently-typed value re-reads it through the old type. Unaudited; no instance found.
|
|
258
|
-
*
|
|
259
|
-
* Note this is NOT "any operation returning a range drops its type" — only the three that run
|
|
260
|
-
* a callback do. Getting that wrong in either direction is a silent value bug: dropping too
|
|
261
|
-
* eagerly loses `MONTH`'s number-ness, keeping too eagerly is CALC-ISSUES item 36
|
|
262
|
-
* (`SUMPRODUCT(--ISNUMBER(SEARCH(...)))` → 0).
|
|
263
|
-
*/
|
|
264
218
|
protected _untyped(): this;
|
|
265
219
|
/** This range's options without its skips: for a result whose cells are laid out anew. */
|
|
266
220
|
protected _optionsFresh(): Omit<IRange.IteratorOptions, 'axis'> & {
|
|
@@ -308,20 +262,6 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
308
262
|
/** @inheritdoc IRange.isIRange */
|
|
309
263
|
get isIRange(): true;
|
|
310
264
|
}
|
|
311
|
-
/**
|
|
312
|
-
* A `Range` whose `getCoords()`/shape is unchanged, but whose `getStats()` is rescoped to
|
|
313
|
-
* `visibleCoords` — used by `condition/_ConditionUtils.ts` so `AverageOperator`/`TopNOperator`
|
|
314
|
-
* get correct order-dependent Top N / Average semantics under a running filter mask
|
|
315
|
-
* (`condition/DESIGN-FILTER.md` §2), via `RangeStats.toLocalCoords`.
|
|
316
|
-
*
|
|
317
|
-
* Lives here (rather than in `condition/`, where it's used) so `extends Range` is resolved by
|
|
318
|
-
* plain source order within this file, not cross-module import order: `condition/` sits deep in
|
|
319
|
-
* an import cycle that reaches back into `primitives/` through `PrimitiveUtils.ts` →
|
|
320
|
-
* `sheet/_SheetUtils.ts` → … → `condition/Condition.ts`, and a top-level `extends Range` declared
|
|
321
|
-
* in `condition/` can execute before that cycle has finished defining `Range`
|
|
322
|
-
* (`ReferenceError: Cannot access 'Range' before initialization` — reproduced 2026-08-18 by
|
|
323
|
-
* running the actual bundle; see git history).
|
|
324
|
-
*/
|
|
325
265
|
export declare class _VisibleScopedRange extends Range {
|
|
326
266
|
protected _visibleCoords: readonly IRange.Coords[];
|
|
327
267
|
constructor(runtime: IRuntime, values: ISparseGrid<Scalar>, coords: IRange.Coords, visibleCoords: readonly IRange.Coords[]);
|
|
@@ -1,110 +1,4 @@
|
|
|
1
1
|
import { Scalar, LocaleProfile } from '@sheetxl/primitives';
|
|
2
|
-
/**
|
|
3
|
-
* Excel's comparison rule for {@link Scalar} values, as one total order.
|
|
4
|
-
*
|
|
5
|
-
* @remarks
|
|
6
|
-
* This is the rule behind `=`, `<>`, `<`, `<=`, `>`, `>=`, behind the criteria comparisons in
|
|
7
|
-
* `COUNTIF`/`SUMIF`/`DSUM`, and behind `SORT`/`SORTBY`/`IRange.argsort`.
|
|
8
|
-
*
|
|
9
|
-
* ### Not public API
|
|
10
|
-
*
|
|
11
|
-
* `@sheetxl/primitives` declares the rule as `IFormulaContext.compare` and stubs it with a basic
|
|
12
|
-
* ordering; THIS is the Excel one, and it is deliberately not exported from the package barrel.
|
|
13
|
-
* Callers -- including `@sheetxl/formulas`, which sits BELOW this package and cannot import it at
|
|
14
|
-
* all -- reach it by way of the calculation context they are handed, which is what binds the rule
|
|
15
|
-
* to the workbook's locale. Only `CalculationContext` and the sort collators call in here directly;
|
|
16
|
-
* anything reading the global `FormulaContext` singleton outside an installed scope gets the basic
|
|
17
|
-
* ordering instead, which is a bug at the call site.
|
|
18
|
-
*
|
|
19
|
-
* ### Cross-type: rank, never coerce
|
|
20
|
-
*
|
|
21
|
-
* Excel does not coerce across types to compare; it ranks them, so **every** number is less than
|
|
22
|
-
* **every** text, and every text is less than every logical:
|
|
23
|
-
*
|
|
24
|
-
* > `number` < `text` < `FALSE` < `TRUE`
|
|
25
|
-
*
|
|
26
|
-
* Hence `=1<"0"` is `TRUE` and `="9">TRUE` is `FALSE`. Errors sort last here so the order stays
|
|
27
|
-
* total. The OPERATORS never reach that case -- an error operand propagates before any comparison
|
|
28
|
-
* happens -- but a criteria does: `COUNTIF(A1:A9,">=#N/A")` counts the `#N/A` rows, and the code
|
|
29
|
-
* order below is Excel's, #NULL! < #DIV/0! < #VALUE! < #REF! < #NAME? < #NUM! <
|
|
30
|
-
* #N/A (measured, `formula-tests/probe-criteria-empty-operand2.ps1`).
|
|
31
|
-
*
|
|
32
|
-
* A criteria does NOT rank across types the way an operator does, though: it only considers values
|
|
33
|
-
* of the operand's own type, so `COUNTIF` with `"<TRUE"` counts no number even though `=1<TRUE` is
|
|
34
|
-
* `TRUE`. That partition lives in `Criteria`, not here.
|
|
35
|
-
*
|
|
36
|
-
* ### Blank
|
|
37
|
-
*
|
|
38
|
-
* A blank cell takes the *other* operand's type -- `0`, `""`, or `FALSE` -- so `=A1=0`, `=A1=""`
|
|
39
|
-
* and `=A1=FALSE` are all `TRUE` for an empty `A1`. Blank against blank is equal. (This is why
|
|
40
|
-
* `ISBLANK` exists: no comparison can distinguish a blank from those three values.)
|
|
41
|
-
*
|
|
42
|
-
* ### Numbers
|
|
43
|
-
*
|
|
44
|
-
* Equal when they agree to 15 SIGNIFICANT digits -- the same clamp Excel uses for display, which
|
|
45
|
-
* is what makes `=(0.1+0.2)=0.3` report `TRUE` while `=1E-12=2E-12` reports `FALSE`. Being
|
|
46
|
-
* relative matters at both ends: `=2^60=1152921504606850000` is `TRUE` even though subtracting
|
|
47
|
-
* them gives `-3072`. Excel forgives float noise at the COMPARISON, never in the arithmetic.
|
|
48
|
-
*
|
|
49
|
-
* ### Text
|
|
50
|
-
*
|
|
51
|
-
* Case-INSENSITIVE (`="PM"="pm"` is `TRUE`; `EXACT` is the case-sensitive form) and COLLATED in
|
|
52
|
-
* the workbook locale, so `="a"<"B"` is `TRUE` and `="ä"<"z"` is `TRUE`. Accents and punctuation
|
|
53
|
-
* are real differences: `="a"="ä"` and `="co-op"="coop"` are both `FALSE`.
|
|
54
|
-
*
|
|
55
|
-
* Case is folded OUT of the operands and the collator then runs at FULL strength, rather than the
|
|
56
|
-
* collator being weakened to `sensitivity: 'accent'`. The two are not the same: in ICU, case, WIDTH
|
|
57
|
-
* and KANA are all tertiary differences, so a strength low enough to ignore case also ties
|
|
58
|
-
* fullwidth `A` with `A` -- which Excel does not (`probe-text-equality-nls.ps1`). Folding case
|
|
59
|
-
* separately is the only way to ignore one tertiary difference and keep the others.
|
|
60
|
-
*
|
|
61
|
-
* The case toggle is therefore what a caller's `sensitivity` selects: `accent`/`base` fold, and
|
|
62
|
-
* `variant`/`case` do not. That is the user-facing switch the **sort** feature exposes
|
|
63
|
-
* (`Sort.CaseSensitiveOptions` / `LocaleProfile.collator`); the word sort below, the expansions,
|
|
64
|
-
* and the collation locale are shared either way. Sort does use a different TYPE order (errors and
|
|
65
|
-
* blanks last, blanks last even descending).
|
|
66
|
-
*
|
|
67
|
-
* ### Expansions
|
|
68
|
-
*
|
|
69
|
-
* A closed set of characters compares EQUAL to a letter sequence -- `="straße"="strasse"` and
|
|
70
|
-
* `="æ"="ae"` are both `TRUE`, and so are the ligatures and the LJ/NJ/DZ digraphs. This is Windows
|
|
71
|
-
* NLS behavior that ICU does not reproduce at any strength: at `accent` these are all unequal, and
|
|
72
|
-
* at `base`, where they do fold, accents fold away with them. They are therefore rewritten before
|
|
73
|
-
* collating, by `foldForCompare` in `./TextFold` -- which is also where the measured membership is
|
|
74
|
-
* documented, and which `UNIQUE` shares for the hashing side of the same rule.
|
|
75
|
-
*
|
|
76
|
-
* ### Word sort
|
|
77
|
-
*
|
|
78
|
-
* On top of the collator, Excel applies the "word sort" its Sort dialog documents -- and, measured,
|
|
79
|
-
* the operators apply it too. Dashes and apostrophes do not count when ordering; they only break a
|
|
80
|
-
* tie, where the string carrying them sorts LAST:
|
|
81
|
-
*
|
|
82
|
-
* > `"coop"` < `"co-op"` < `"cop"`
|
|
83
|
-
*
|
|
84
|
-
* A plain collator gives `"co-op" < "coop"` instead (`-` outranks `o`), which is the bug this
|
|
85
|
-
* exists to avoid. Equality is untouched -- the tiebreak never returns 0 for distinct strings, so
|
|
86
|
-
* `="co-op"="coop"` stays `FALSE`. Other punctuation is ordinary and still sorts before letters
|
|
87
|
-
* (`="a_b"<"ab"` is `TRUE`), which is why the collator stays non-ignorable.
|
|
88
|
-
*
|
|
89
|
-
* The ignorable set is the one Excel 16.0 actually uses, not a Unicode category -- notably U+2019
|
|
90
|
-
* (the "smart" apostrophe Word autocorrects to) is NOT in it, while U+02BC is. See
|
|
91
|
-
* `formula-tests/probe-wordsort.ps1`.
|
|
92
|
-
*
|
|
93
|
-
* ### Punctuation
|
|
94
|
-
*
|
|
95
|
-
* Every other mark is ordered by {@link _compareOrdered} rather than by the collator, because ICU
|
|
96
|
-
* and Windows NLS disagree about punctuation almost completely -- 191 of 741 measured pairs invert.
|
|
97
|
-
* `="*"<"?"` is `TRUE` in Excel and `FALSE` from a bare collator. Three classes, code-point order
|
|
98
|
-
* inside each: ordinary punctuation, then `+ < = >`, then digits and letters (where ICU is already
|
|
99
|
-
* right and still decides). See that function for what is measured and what is generalized.
|
|
100
|
-
*
|
|
101
|
-
* ### Determinism
|
|
102
|
-
*
|
|
103
|
-
* Collation is ICU data and varies by host. The locale is always the workbook's persisted tag,
|
|
104
|
-
* never the ambient host locale (passing `undefined` to `localeCompare` is a bug -- it reads the
|
|
105
|
-
* host). Note that a `small-icu` Node build carries `en-US` only and will silently collate a
|
|
106
|
-
* `de-DE` workbook as English; ship `full-icu` for non-English workbooks.
|
|
107
|
-
*/
|
|
108
2
|
export declare const ScalarCollation: {
|
|
109
3
|
/**
|
|
110
4
|
* The fixed `Intl.Collator` options for Excel's text comparison.
|
|
@@ -112,25 +112,6 @@ export declare const EmptyAggregates: Readonly<IRangeStats.Aggregates>;
|
|
|
112
112
|
* Returns `null` when the grid is empty.
|
|
113
113
|
*/
|
|
114
114
|
export declare function iterateAndCollectStats(runtime: IRuntime, grid: ISparseGrid<Scalar>, range: IRange | null, localCoords: readonly (IRange.Coords | null)[], optionsIterator: IRange.IteratorOptions | undefined, segmentCache: AggSegmentCache, zoneSizeMinor: number, skipOrigin?: IRange.CellCoords): AggResults | null;
|
|
115
|
-
/**
|
|
116
|
-
* The value Excel added LAST — the final numeric member in ROW-major order, which is the
|
|
117
|
-
* traversal Excel's accumulators use (measured: `probe-sum-cancel-order.ps1`, two mirrored 2-D
|
|
118
|
-
* layouts). Coerces exactly as the aggregate scan does, so `AVERAGEA`'s text-counts-as-zero
|
|
119
|
-
* agrees here and a trailing text cell defeats the cancellation snap just as a trailing `0`
|
|
120
|
-
* does.
|
|
121
|
-
*
|
|
122
|
-
* Returns `undefined` when the query holds no numbers.
|
|
123
|
-
*
|
|
124
|
-
* @remarks
|
|
125
|
-
* Deliberately NOT part of `AggResults` and NOT segment-cached. Row-major "last" is a position
|
|
126
|
-
* comparison, and segments merge in GRID-axis order, so carrying it through the cache would mean
|
|
127
|
-
* tracking `(row, col)` per value in `_doAggregateValue` — a cost on the hottest loop in the
|
|
128
|
-
* engine, paid by every caller, to serve a rule that fires only on catastrophic cancellation.
|
|
129
|
-
* Instead this is a separate scan behind {@link mayCancel}'s gate, which rejects any ordinary
|
|
130
|
-
* total using `min`/`max` the aggregates already carry. A forward scan tracking the maximum
|
|
131
|
-
* `(row, col)` is used rather than reverse iteration because the grid's run iterator has no
|
|
132
|
-
* reverse, and this way the result is independent of the grid's axis.
|
|
133
|
-
*/
|
|
134
115
|
export declare function findLastNumber(runtime: IRuntime, grid: ISparseGrid<Scalar>, range: IRange | null, localCoords: readonly (IRange.Coords | null)[], optionsIterator: IRange.IteratorOptions | undefined, skipOrigin?: IRange.CellCoords): number | undefined;
|
|
135
116
|
/**
|
|
136
117
|
* Resolves an iterator's `coerce` option into the callable pair the scans use.
|
|
@@ -165,12 +165,6 @@ export declare class PageLayout implements IPageLayout {
|
|
|
165
165
|
_getBreaks(axis: IRange.Axis): readonly IPageLayout.BreakJSON[];
|
|
166
166
|
/** @internal */
|
|
167
167
|
_setBreaks(axis: IRange.Axis, breaks: IPageLayout.BreakJSON[], options?: ITransaction.OperationOptions): this;
|
|
168
|
-
/**
|
|
169
|
-
* Moves the breaks as rows (or columns) `start` to `end` are inserted or deleted: a break at or
|
|
170
|
-
* after an insert moves with it, a break before a deleted row goes with it, and a break past a
|
|
171
|
-
* delete moves back. Excel's behavior (`scripts/openpy-parity/probe-print-setup.ps1`).
|
|
172
|
-
* @internal
|
|
173
|
-
*/
|
|
174
168
|
_shiftBreaks(axis: IRange.Axis, start: number, end: number, isInsert: boolean): void;
|
|
175
169
|
/** The manual breaks on an axis. */
|
|
176
170
|
protected _getPageBreaks(axis: IRange.Axis): IPageLayout.IPageBreak[];
|
|
@@ -64,14 +64,16 @@ export declare function shiftReferenceAxis(start: number, end: number, shiftStar
|
|
|
64
64
|
* @param immuneEnd `true` if the end endpoint must not move.
|
|
65
65
|
*/
|
|
66
66
|
export declare function moveReferenceAxis(start: number, end: number, moveBy: number, immuneStart?: boolean, immuneEnd?: boolean): [start: number, end: number];
|
|
67
|
+
export declare function edgeMoveReferenceAxis(start: number, end: number, cutStart: number, cutEnd: number, moveBy: number, toOtherSheet: boolean): [start: number, end: number] | null;
|
|
67
68
|
/**
|
|
68
69
|
* Whether a cut of `from` carries `reference` with it.
|
|
69
70
|
*
|
|
70
71
|
* @remarks
|
|
71
72
|
* Excel's test, and the graph's: a reference moves only when the cut rectangle FULLY ENCLOSES it.
|
|
72
73
|
* Cut A1:C3 and `=SUM(A1:B2)` follows to the destination; `=SUM(A1:C5)` reaches outside the cut
|
|
73
|
-
* and so is
|
|
74
|
-
*
|
|
74
|
+
* and so is not carried. A reference that is only half carried would name two different rectangles;
|
|
75
|
+
* the one partial answer is a cut of its EDGE, which moves that edge alone
|
|
76
|
+
* ({@link edgeMoveReferenceAxis}).
|
|
75
77
|
*
|
|
76
78
|
* A formula BLOCK asks a longer version of this question, because each of its cells has a
|
|
77
79
|
* reference of its own and all of them have to be enclosed; see `movePrecedents`.
|
|
@@ -50,6 +50,12 @@ export declare namespace RichDataRegistry {
|
|
|
50
50
|
* Display only: the value still reads as nothing to calculation.
|
|
51
51
|
*/
|
|
52
52
|
function toDisplayText(value: IRichData): string | null;
|
|
53
|
+
/**
|
|
54
|
+
* The text that stands for `value` as a whole, as in the formula bar: its display text
|
|
55
|
+
* ({@link toDisplayText}), else the label its kind was given in parentheses, `(Image)`, else
|
|
56
|
+
* `(Rich Object)`.
|
|
57
|
+
*/
|
|
58
|
+
function toPlaceholderText(value: IRichData): string;
|
|
53
59
|
/**
|
|
54
60
|
* The `ScalarType` `value` lays out as in a cell: its primitive's when it has one (a hyperlink
|
|
55
61
|
* named by a number is a number); `String` when it reads as nothing but shows text (an entity's
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { ScalarType, FormulaError, IRange, IFunction, IFormulaContext } from '@sheetxl/primitives';
|
|
2
2
|
import { FixedPackedArray } from '../primitives/PrimitiveUtils';
|
|
3
|
-
/**
|
|
4
|
-
* The per-call shape of a declaration that carries a repeating group, resolved from the ARGUMENT
|
|
5
|
-
* COUNT alone (`Repeating<T>`; DESIGN-REPEATING §2). Excel is measured never to disambiguate by type —
|
|
6
|
-
* `SORTBY(array, by1, by2, o2)` is refused where a type-directed parse would have read argument 2
|
|
7
|
-
* as `by_array2` — so the arithmetic is the whole rule.
|
|
8
|
-
*/
|
|
9
3
|
/**
|
|
10
4
|
* What `_exec` needs to know about ONE parameter position, decided once per declaration (and
|
|
11
5
|
* once per expanded {@link RepeatPlan}) rather than on every call: the normalized value types,
|
|
@@ -56,14 +50,6 @@ interface ParamSpec {
|
|
|
56
50
|
* `#VALUE!`. Today that is the multi-area union; the body reads it through `getArgs`.
|
|
57
51
|
*/
|
|
58
52
|
reportType: boolean;
|
|
59
|
-
/**
|
|
60
|
-
* `ReportType<NoLift<T>>` (either order): a multi-cell REFERENCE at this scalar slot neither
|
|
61
|
-
* lifts (`NoLift`) nor refuses (`ReportType`), it is handed to the body WHOLE, as one
|
|
62
|
-
* `IReferenceRange`; an array still lifts. Excel's `Boolean|Range` slot shape, no `Array` bit:
|
|
63
|
-
* LINEST/LOGEST `const`/`stats`, TREND/GROWTH `const` (DESIGN-LIFT-AND-DEMAND §1). One flag
|
|
64
|
-
* because the coercion loop and both lift walks ask the same question, and a slot carrying only
|
|
65
|
-
* one of the two markers changes nothing here.
|
|
66
|
-
*/
|
|
67
53
|
wholeReference: boolean;
|
|
68
54
|
/** The effective policy and its `allowError` half — static per declaration. */
|
|
69
55
|
policy: 'reject' | 'accept' | null;
|
|
@@ -139,15 +125,6 @@ export declare class TypedFunction implements IFunction {
|
|
|
139
125
|
};
|
|
140
126
|
protected _lc: boolean;
|
|
141
127
|
protected _rlc: boolean;
|
|
142
|
-
/**
|
|
143
|
-
* Some parameter declares `NoLift<T>` — a multi-cell REFERENCE at that non-repeating scalar
|
|
144
|
-
* slot is `#VALUE!` rather than a broadcast, per parameter as Excel needs
|
|
145
|
-
* (`NETWORKDAYS.INTL` refuses a reference at its date slots and lifts at `weekend`,
|
|
146
|
-
* CALC-ISSUES 31; DESIGN-FUNCTION-ARGUMENTS §2.3, §6). A declaration bit and not a body
|
|
147
|
-
* concern, because the body never runs: without it the lift runs instead and answers one
|
|
148
|
-
* result per cell, so there is nothing for a body-facing API to express. Precomputed so the
|
|
149
|
-
* common call pays one boolean.
|
|
150
|
-
*/
|
|
151
128
|
protected _nl: boolean;
|
|
152
129
|
/** Whether ANY parameter (or repeating slot) is `Lazy` — the guard on the wrapping below. */
|
|
153
130
|
protected _lz: boolean;
|
|
@@ -170,16 +147,6 @@ export declare class TypedFunction implements IFunction {
|
|
|
170
147
|
* through the parameter's coercion.
|
|
171
148
|
*/
|
|
172
149
|
protected _rs: ScalarType | null;
|
|
173
|
-
/**
|
|
174
|
-
* The reference half of the declared RETURN KIND pair (DESIGN-DECLARATION-SURFACE §3.1): may
|
|
175
|
-
* this call answer a REFERENCE? True for a declared `IReferenceRange` return (`r:'p'` —
|
|
176
|
-
* OFFSET/INDIRECT/XLOOKUP/TAKE/DROP) and for an UNTYPED return (`any` — the pass-through
|
|
177
|
-
* selectors IF/IFS/SWITCH/CHOOSE/INDEX, and any UDF that declares nothing). False for every
|
|
178
|
-
* provable value — a declared scalar (`'*'` included: IFERROR) or a ranged array producer.
|
|
179
|
-
*
|
|
180
|
-
* Read at the call exit (a value-declared function's reference result is demoted to its VALUE)
|
|
181
|
-
* and at the `*`-slot union pass-through.
|
|
182
|
-
*/
|
|
183
150
|
protected _rref: boolean;
|
|
184
151
|
/**
|
|
185
152
|
* The declared result kind is a SCALAR member of {@link ValueKind} — `ROW(A1)` is the number 3
|
|
@@ -195,15 +162,6 @@ export declare class TypedFunction implements IFunction {
|
|
|
195
162
|
protected _ps: ParamSpec[];
|
|
196
163
|
/** Index of the repeating-group parameter, or `-1`. */
|
|
197
164
|
protected _gi: number;
|
|
198
|
-
/**
|
|
199
|
-
* Index of the one parameter that consumes a VARIABLE number of arguments — a repeating group or
|
|
200
|
-
* a trailing rest — or `-1`.
|
|
201
|
-
*
|
|
202
|
-
* `getArgs()` indexes by PARAMETER (DESIGN-FUNCTION-ARGUMENTS §3.3) and this is the single place
|
|
203
|
-
* parameter numbering and argument numbering part company, so it is resolved once here rather
|
|
204
|
-
* than re-derived per call. `_gi` cannot serve: it covers `Repeating<T>` only, and a plain rest
|
|
205
|
-
* parameter is the same thing to a body asking which parameter its argument landed in.
|
|
206
|
-
*/
|
|
207
165
|
protected _va: number;
|
|
208
166
|
/** The declaration's `volatile`, read once: what the call frame carries for `defer`. */
|
|
209
167
|
protected _vol: boolean;
|
|
@@ -214,28 +172,6 @@ export declare class TypedFunction implements IFunction {
|
|
|
214
172
|
constructor(json: IFunction.DeclarationJSON, fn: (...args: any) => any, getContext: () => IFormulaContext | null | undefined, desc?: IFunction.DescriptorJSON | ((locale?: string) => Promise<IFunction.DescriptorJSON>) | null, builtIn?: boolean);
|
|
215
173
|
/** @inheritdoc IFunction.execute */
|
|
216
174
|
execute<R = any>(...args: any[]): R;
|
|
217
|
-
/**
|
|
218
|
-
* Resolves this call's {@link RepeatPlan} from the argument count, or `null` when the count is
|
|
219
|
-
* one the declaration refuses.
|
|
220
|
-
*
|
|
221
|
-
* `n = (argc − prefix − suffix) / period` and a non-zero remainder is an error, with ONE
|
|
222
|
-
* exception: a group whose last slot is optional also accepts `period − 1` variable arguments,
|
|
223
|
-
* which is `n = 1` with that slot omitted. Those two rules produce SORTBY's measured arities
|
|
224
|
-
* exactly — 2 and 1+2n, with 4 refused (probe rows H7/H10).
|
|
225
|
-
*
|
|
226
|
-
* A trailing suffix may be OPTIONAL, so `suffix` is solved for alongside `n` rather than fixed.
|
|
227
|
-
* SWITCH is the case: `prefix 1, period 2, one optional suffix` yields argument parity as the
|
|
228
|
-
* whole rule — odd is pairs alone, even is pairs plus a default — and refuses argc 2, because
|
|
229
|
-
* dropping the suffix still leaves the group owing its one repetition. That matches Excel row
|
|
230
|
-
* for row (probe-switch-arity.ps1: 3/4/5/6 legal, 1 and 2 refused). The group's minimum stays
|
|
231
|
-
* 1 regardless of the suffix; nothing here ever resolves `n = 0`.
|
|
232
|
-
*
|
|
233
|
-
* Period 1 ends at one rest-marked slot instead — see {@link RepeatPlan.params}.
|
|
234
|
-
*
|
|
235
|
-
* Must stay in step with `CompilerUtils.resolveRepeat`, its COMPILE-TIME twin. That one decides
|
|
236
|
-
* `#PARSE!` and the per-argument binding, so a rule added only here is simply never reached: the
|
|
237
|
-
* formula is refused before it ever executes.
|
|
238
|
-
*/
|
|
239
175
|
protected _plan(argsLength: number): RepeatPlan | null;
|
|
240
176
|
/**
|
|
241
177
|
* Folds the flat, per-argument-position values back into the shape the BODY declares: the group
|
|
@@ -260,53 +196,8 @@ export declare class TypedFunction implements IFunction {
|
|
|
260
196
|
* writes anything into it.
|
|
261
197
|
*/
|
|
262
198
|
protected _exec<R = any>(argsEval: any[], argsLength: number): R;
|
|
263
|
-
/**
|
|
264
|
-
* `NoLift<T>`: is a multi-cell REFERENCE sitting at a non-repeating scalar parameter marked to
|
|
265
|
-
* refuse one? (DESIGN-FUNCTION-ARGUMENTS §2.3, §2.7 rule 3.)
|
|
266
|
-
*
|
|
267
|
-
* Three qualifications, each measured rather than assumed
|
|
268
|
-
* (`fn-battery/adhoc-container-at-slot{,2}`, Excel 16.0 build 20326):
|
|
269
|
-
*
|
|
270
|
-
* - **A REFERENCE, not an array.** `MROUND({3,4,5},5)` spills where `MROUND(A1:A3,5)` is
|
|
271
|
-
* `#VALUE!`, so an array at the same slot still lifts. That is the whole reason this reads the
|
|
272
|
-
* argument's shape rather than trusting the parameter: the engine hands a reference over as
|
|
273
|
-
* COORDS and an array as an `IRange`.
|
|
274
|
-
* - **MULTI-CELL.** A 1×1 reference collapses to its member and is an ordinary argument
|
|
275
|
-
* (`EFFECT(J1,4)` over a text cell is `0.0824…`).
|
|
276
|
-
* - **NON-REPEATING.** A repeating scalar slot ABSORBS a container as members whatever the
|
|
277
|
-
* function's heritage — `GCD(C1:C3)` is 4, `MULTINOMIAL(A1:A3)` is 27720 — and those were the
|
|
278
|
-
* rows that could have broken the rule and did not. Period-1 groups marshal through the rest
|
|
279
|
-
* branch and are already excluded by `rest`; period 2+ expand to per-argument entries, so the
|
|
280
|
-
* group's span is skipped explicitly.
|
|
281
|
-
*
|
|
282
|
-
* A multi-AREA union `(A1:A3,C1:C5)` arrives as an ARRAY of areas and is not treated as a
|
|
283
|
-
* reference here — unmeasured at these slots, and inventing a verdict for it would be the kind
|
|
284
|
-
* of unification §2.0 warns about.
|
|
285
|
-
*/
|
|
286
199
|
protected _refusesReferenceLift(params: IFunction.ParameterTypeJSON[] | null | undefined, paramLength: number, argsEval: any[], argsLength: number, plan: RepeatPlan | null): boolean;
|
|
287
|
-
/**
|
|
288
|
-
* The consumer half of the lift (CALC-ISSUES item 22 change 2). Each `refLifts` entry is a
|
|
289
|
-
* reference-only (r:'p') argument holding a producer lift's preserved per-element results.
|
|
290
|
-
* The function runs once per output cell through {@link _exec} — a full re-invocation, so
|
|
291
|
-
* every other argument re-coerces and the body re-runs per element (measured:
|
|
292
|
-
* `SUBTOTAL(9,OFFSET(A1,{0;1},0,1,1),B1:B2)` = 31|32 — the plain range is consumed WHOLE in
|
|
293
|
-
* each call). Shape rules are the scalar lift's: output dims = max over entries, dim-1 tiles,
|
|
294
|
-
* a shorter dim pads `#N/A` (probe-lift-member-coercion.ps1: 2×1 beside 1×2 → 2×2).
|
|
295
|
-
*
|
|
296
|
-
* An element that is not a reference (a plain value in a reference-only position) is not
|
|
297
|
-
* special-cased: the per-element coercion answers exactly as it would for the unlifted call
|
|
298
|
-
* (item 23b's `#PARSE!`), which becomes that member of the output.
|
|
299
|
-
*/
|
|
300
200
|
protected _refLift<R>(context: IFormulaContext, argsEval: any[], argsLength: number, refLifts: RefLiftEntry[], firstCell?: boolean): R;
|
|
301
|
-
/**
|
|
302
|
-
* @hidden
|
|
303
|
-
* Vends a NEW instance whose evaluation context comes from `getContext` — the public-API
|
|
304
|
-
* scope vend behind `IFunctionCollection.getByName(name, { sheet })` (CALC-ISSUES item 35).
|
|
305
|
-
* The registry instance is what the ENGINE holds and its evaluation path stays
|
|
306
|
-
* allocation-free; a vended instance additionally owns a private fast-path slot the engine
|
|
307
|
-
* never loads, so callers may hold it across awaits (or re-enter it) without racing the
|
|
308
|
-
* engine's synchronous argument hand-off.
|
|
309
|
-
*/
|
|
310
201
|
_withContext(getContext: () => IFormulaContext | null | undefined): TypedFunction;
|
|
311
202
|
/** @inheritdoc IFunction.getName */
|
|
312
203
|
getName(): string;
|
|
@@ -784,7 +784,7 @@ export declare namespace IWorksheet {
|
|
|
784
784
|
/**
|
|
785
785
|
* The events that carry a {@link ChangeEvent}: what {@link ChangeEvent.getKind} names.
|
|
786
786
|
*/
|
|
787
|
-
type ChangeEventKey = 'onDataChange' | 'onStyleChange' | '
|
|
787
|
+
type ChangeEventKey = 'onDataChange' | 'onStyleChange' | 'onMergesChange' | 'onSpillsChange';
|
|
788
788
|
/**
|
|
789
789
|
* What a change event announces: where the change landed and what wrote it.
|
|
790
790
|
*
|
|
@@ -1024,11 +1024,8 @@ export declare namespace IWorksheet {
|
|
|
1024
1024
|
* for "cell geometry moved".
|
|
1025
1025
|
* * This can be be due to row/column sizes changes or changing the max rows columns.
|
|
1026
1026
|
* * Zoom and viewport do not change the underlying layout.
|
|
1027
|
-
*
|
|
1028
|
-
* @param source The sheet.
|
|
1029
|
-
* @param event The whole sheet: sizes are announced by the headers, which do not say where.
|
|
1030
1027
|
*/
|
|
1031
|
-
onLayoutChange?(source: IWorksheet
|
|
1028
|
+
onLayoutChange?(source: IWorksheet): void;
|
|
1032
1029
|
/**
|
|
1033
1030
|
* Called when which rows are hidden has changed.
|
|
1034
1031
|
*/
|
|
@@ -4,27 +4,6 @@ import { INamedFormulasCollection } from '../calculation/INamedFormulasCollectio
|
|
|
4
4
|
import { NamedRange } from './NamedRange';
|
|
5
5
|
import { IWorksheetInternal } from './Worksheet';
|
|
6
6
|
import { SheetRangeOptions } from './SheetRange';
|
|
7
|
-
/**
|
|
8
|
-
* A defined name as a NODE in the calculation graph — an `INamedRange` whose coords are the
|
|
9
|
-
* name's ANCHOR (its defining cell), not a target.
|
|
10
|
-
*
|
|
11
|
-
* @remarks
|
|
12
|
-
* This is how a name rides inside an ordinary `ICellRanges` graph answer next to plain cell
|
|
13
|
-
* ranges: the brand (`isINamedRange`) carries the identity, the coords carry the anchor, and the
|
|
14
|
-
* four graph methods answer the NAME question rather than the cell question at those coords
|
|
15
|
-
* (DESIGN-NAMED-FORMULAS.md §4). Contrast {@link NamedRange}, which `getRange('Revenue')` returns
|
|
16
|
-
* over the name's *target* — same brand, different referent, and only this one exists for a value
|
|
17
|
-
* name (`Doubled = Base*2`), which has no target at all.
|
|
18
|
-
*
|
|
19
|
-
* The anchor matters to precedents (relative references in the body resolve from it) and is only
|
|
20
|
-
* a label for dependents (the symbol index is global). Lead with the name when displaying one —
|
|
21
|
-
* two names authored from the same active cell share an anchor address, and the name is the fact.
|
|
22
|
-
*
|
|
23
|
-
* Built from a {@link NamedNodeInfo} — plain data — and answers its five name questions by
|
|
24
|
-
* resolving the id against the collection when asked. It does NOT capture the name object: a name
|
|
25
|
-
* can be redefined or deleted while a graph answer is still held, and re-resolving means the
|
|
26
|
-
* answer follows the definition rather than a snapshot of it. A name that is gone answers `null`.
|
|
27
|
-
*/
|
|
28
7
|
export declare class NamedCellRange extends NamedRange {
|
|
29
8
|
private readonly _info;
|
|
30
9
|
private readonly _namedFormulas;
|
|
@@ -223,6 +223,12 @@ export declare class SheetCell implements ICell {
|
|
|
223
223
|
getWorksheet(): IWorksheet;
|
|
224
224
|
/** {@inheritDoc ICell.select} */
|
|
225
225
|
select(options?: ITypes.SelectOptions): Promise<boolean>;
|
|
226
|
+
/**
|
|
227
|
+
* Follows an address as this cell's sheet follows a link: what a link beside the cells (a picture's)
|
|
228
|
+
* opens with.
|
|
229
|
+
* @internal
|
|
230
|
+
*/
|
|
231
|
+
_openAddress(address: string, options: ITypes.SelectOptions | null, target?: string, features?: string): Promise<boolean>;
|
|
226
232
|
/** {@inheritDoc ICell.getColumn} */
|
|
227
233
|
getColumn(): ITable.IColumn | null;
|
|
228
234
|
/** {@inheritDoc ICell.getTable} */
|
|
@@ -371,8 +377,8 @@ export declare class SheetCell implements ICell {
|
|
|
371
377
|
/** {@inheritDoc ICell.getSpillKind} */
|
|
372
378
|
getSpillKind(): ITypes.FormulaArrayKind | null;
|
|
373
379
|
/**
|
|
374
|
-
* The spill entry this cell answers for:
|
|
375
|
-
*
|
|
380
|
+
* The spill entry this cell answers for: a live one, else a blocked one, so the UI can show the
|
|
381
|
+
* range it would have taken. Where blocked ones overlap, the one anchored here, else the first.
|
|
376
382
|
*/
|
|
377
383
|
protected _getSpillEntry(): SpillEntry | null;
|
|
378
384
|
/** {@inheritDoc ICell.isSpillOverflow} */
|