@sheetxl/sdk 0.8.0-beta.11 → 0.8.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +172 -0
- package/browser/esm/{BMyDRQ716j79h_bH.mjs → -GEhXGMfNcWmHPby.mjs} +6 -6
- package/browser/esm/{B7aUIvgUjncMMD_i.mjs → 9WXf_BTKjW1cQisZ.mjs} +95 -94
- package/browser/esm/{PcHFjNzQsE54POri.mjs → B2SgIPPBX0wjzuq8.mjs} +1 -1
- package/browser/esm/{DEiPS3Dr-s4fPbVZ.mjs → BC2RwlNwCdRywkoD.mjs} +1 -1
- package/browser/esm/{BpgskG1Er_lGQ_yS.mjs → BEqhm9xAUPiHUCFv.mjs} +1 -1
- package/browser/esm/BHgqi7KNrl7Vjr0W.mjs +348 -0
- package/browser/esm/{BkBhLS0l6z8sxI6D.mjs → BJKH0tDRx2FeSWvt.mjs} +2 -2
- package/browser/esm/{CU3DmJ-YnVVrC1_k.mjs → BTgWtqdQoh2cB6DL.mjs} +1 -1
- package/browser/esm/{Dyq_ivuHvlXLwPCl.mjs → BVshV1iY3bcUH9_E.mjs} +1135 -1129
- package/browser/esm/{BFagR2JeWs74iAG3.mjs → BYQ63XU7JzB4_itX.mjs} +1 -1
- package/browser/esm/{DvAaxH6z_tGvrRzl.mjs → Bax5aOzQkbHKXW_X.mjs} +239 -230
- package/browser/esm/{DLLE0FZNsKxbBzRn.mjs → BiDGKhtzV6yIy66o.mjs} +45 -45
- package/browser/esm/BmYrWK5OmHRtgyqM.mjs +367 -0
- package/browser/esm/{ClPfI4lODvCece29.mjs → BoAlHgjPQ6mxb_oO.mjs} +74 -74
- package/browser/esm/{BoV6zPBnfqCBCqZ7.mjs → C0mjTq8lhrX3HiPa.mjs} +4328 -3166
- package/browser/esm/{nvU0ClAbf0g94YBK.mjs → C5j0IdwtYkWlOftv.mjs} +604 -596
- package/browser/esm/{DWNzqw7DUKwoxjri.mjs → CL84-iL2QeKlLzo5.mjs} +2 -2
- package/browser/esm/{Ctjb0SsxV4K4MMqG.mjs → CLkBe-6n-pStQhnz.mjs} +2 -2
- package/{node/esm/CZICGK_ss0HoGHCP.mjs → browser/esm/CPzfhTPX2Y4dHX2p.mjs} +2 -2
- package/browser/esm/{Dlmig06rIo7cInRk.mjs → CSJuIjYUOE387FIP.mjs} +1 -1
- package/browser/esm/{BjkCiv5Jz6WYKZeu.mjs → Cdw0mGuoV3IU2LhR.mjs} +2 -2
- package/browser/esm/Ced5uyofOWHuL_Jy.mjs +114 -0
- package/browser/esm/{CkxWugaJFjDGZNZ-.mjs → Ci_LJ4S_GvYX0STI.mjs} +1 -1
- package/browser/esm/{zlLuW405RSguy4Kn.mjs → CwygVKP_RXmne5Ot.mjs} +47 -47
- package/browser/esm/{C4MqfLn9Dm-l3OIk.mjs → D-mfK0noQrM2jZLT.mjs} +1 -1
- package/browser/esm/{BnG31I6Oj_HEtSPS.mjs → D9SH_8v3FYCnxOFK.mjs} +1 -1
- package/browser/esm/{BVDiOXGMc5_FMGfy.mjs → DPD8fop6az9HZNiK.mjs} +2 -2
- package/browser/esm/DW-MmlgMH87l-_cw.mjs +302 -0
- package/browser/esm/{CaB7J-xgfKO2uAkG.mjs → DctIlUsO78-OU2ht.mjs} +2 -2
- package/browser/esm/DdcKkVb4jM6Y_epY.mjs +184 -0
- package/browser/esm/{CHU6iu_WGlm7fLET.mjs → DfKzE0IY0TjaEIxG.mjs} +1 -1
- package/browser/esm/{C2VbEI_XVAoseAwa.mjs → DkloMquaR1pbZCER.mjs} +44 -43
- package/browser/esm/{C16ycKja6zG0crV_.mjs → Dz86-De57bv2VYIi.mjs} +19447 -16481
- package/browser/esm/{BtvLTTfSBdAKplVG.mjs → HApSgmV2FXRRwQac.mjs} +1 -1
- package/browser/esm/{CQYjO777cmAznUzK.mjs → IbVAQU4YqtFqLwYk.mjs} +1 -1
- package/browser/esm/index.mjs +823 -644
- package/browser/esm/mHQ95RAfxHzcUN2r.mjs +18 -0
- package/browser/esm/pm00uZZu_H3gxHFx.mjs +117 -0
- package/browser/esm/{CV5EGEjG5_-CPpP0.mjs → quEvwgrEuOb0h3q-.mjs} +1926 -1298
- package/browser/esm/{ClbvFbFzFzXLBKNN.mjs → zZngLMg6mg6nnNGX.mjs} +66 -66
- package/licenses/dependencies.txt +71 -1
- package/node/esm/{BqiexuA89caYnAPz.mjs → -K4Cek-bTUItkB_8.mjs} +1 -1
- package/node/esm/-b8yNV4v9qiq8EMY.mjs +117 -0
- package/node/esm/{D8zEN-6ZdDqDvTxM.mjs → 1V-m67YHbxmg3xk2.mjs} +74 -74
- package/node/esm/{D_t5AUxSm7_icjzq.mjs → 4ROAfJC1mokmqubv.mjs} +1 -1
- package/node/esm/B89et7t3uRmtxk4v.mjs +115 -0
- package/node/esm/BKBkCBNGhMU0nQdY.mjs +372 -0
- package/node/esm/{OVfaSb506tNSIvbv.mjs → BQ2XqExomMceAjfe.mjs} +20822 -18373
- package/node/esm/{2Kihw_-5lVTEnwMa.mjs → Bfg7qjCXCwXbzW3K.mjs} +1 -1
- package/node/esm/{D1TKBVmoKGAXf37B.mjs → BtMeAB_dqJnOfzJM.mjs} +2 -2
- package/node/esm/{D6e2z7eZpxOJXHc7.mjs → Byc_bxU_MdjYtt0x.mjs} +1 -1
- package/node/esm/{CNCNJNg890KdgkWh.mjs → Bzrl292TNCK3Cpid.mjs} +1 -1
- package/node/esm/{De2IONBxQhz-Qbyh.mjs → C0P9zspoypRAj7yv.mjs} +1 -1
- package/node/esm/{CzXT00vrQa1_gvW9.mjs → C9gpMN3galHGZyoK.mjs} +1 -1
- package/node/esm/CKCG2peOkTq0gIIW.mjs +310 -0
- package/node/esm/{DUTskXCXref-IJnI.mjs → CWBS90g3Hz-kQDkY.mjs} +46 -46
- package/node/esm/{BIwObuhTJYf0jpUa.mjs → CoGSVnn-hNMtTEus.mjs} +2 -2
- package/node/esm/{CwePQwTILHHjGDkZ.mjs → CzrLqStvrcPE2-hb.mjs} +194 -185
- package/node/esm/{CCN5vD410obwdz38.mjs → D16EdlZG1hX5WUUK.mjs} +96 -95
- package/node/esm/{CDHdgJXH2vS71WMc.mjs → D1mDga2K5sjs8y07.mjs} +1 -1
- package/node/esm/{cGwrLA1RCE-WhJ7w.mjs → D2jtztjE6c23RKvZ.mjs} +1 -1
- package/node/esm/{Bbf1Pm9Gk7YpLTvg.mjs → D9nRcWsYk3M82iD8.mjs} +1 -1
- package/node/esm/{yavzZOiZW_EjG9lE.mjs → DALYzTxZ9Ur9C69Q.mjs} +1 -1
- package/node/esm/{DkwIPzKc3UwdUIfM.mjs → DF0nL7s01dp7n0Bx.mjs} +10 -10
- package/node/esm/{DNRhGK-8Tr9xcRyc.mjs → DO5ldLqhTvIfPXLW.mjs} +3348 -2610
- package/node/esm/DQz8J8ci7EJdqbuB.mjs +351 -0
- package/node/esm/{BIRq1kT7lLRzns9t.mjs → DR2OQTKqqyIkZnse.mjs} +2 -2
- package/node/esm/{857CIBgQgGpnqrXk.mjs → DSTLPBgpsGW6qP9e.mjs} +73 -73
- package/node/esm/{CGp6VZL-gZa9Uezx.mjs → DiXp7KSOZUSWXaZ5.mjs} +1 -1
- package/node/esm/{CZiqiay42tFTrLI4.mjs → DwvXHsycOQR219c7.mjs} +1 -1
- package/node/esm/{B21JjOLghRoDOrkx.mjs → Hc6B04OyVzHx2F5I.mjs} +38 -37
- package/node/esm/{Ct3h15sCus4Tgt6M.mjs → NkPNHsq2T3DXg76x.mjs} +561 -553
- package/node/esm/{B084DssTcdBheTp_.mjs → Nl_IIkO1jbk0s9i-.mjs} +4552 -3373
- package/node/esm/{D2KBymQJd1XhpeQD.mjs → OQT5lGqq8a4r5xNa.mjs} +1 -1
- package/node/esm/OTaaFGhF-k_iwobp.mjs +18 -0
- package/node/esm/{CdJHUJSBRHZoryPe.mjs → Z1elC_roIu7LhceZ.mjs} +53 -53
- package/{browser/esm/D5np__Jb1euAyaLw.mjs → node/esm/e3F3OVXCxLJrSukW.mjs} +2 -2
- package/node/esm/index.mjs +806 -625
- package/node/esm/{mFiBSM7XgBHV9AY7.mjs → suOBVUz-pca6ilJH.mjs} +1607 -1601
- package/package.json +8 -6
- package/resources/contents.json +108 -0
- package/resources/fonts/aptos-bold-italic.hinted.json +125 -0
- package/resources/fonts/aptos-bold-italic.metrics.json +221 -0
- package/resources/fonts/aptos-bold-italic.rows.json +8 -0
- package/resources/fonts/aptos-bold.hinted.json +125 -0
- package/resources/fonts/aptos-bold.metrics.json +221 -0
- package/resources/fonts/aptos-bold.rows.json +8 -0
- package/resources/fonts/aptos-display-bold-italic.hinted.json +125 -0
- package/resources/fonts/aptos-display-bold-italic.metrics.json +221 -0
- package/resources/fonts/aptos-display-bold-italic.rows.json +8 -0
- package/resources/fonts/aptos-display-bold.hinted.json +125 -0
- package/resources/fonts/aptos-display-bold.metrics.json +221 -0
- package/resources/fonts/aptos-display-bold.rows.json +8 -0
- package/resources/fonts/aptos-display-italic.hinted.json +124 -0
- package/resources/fonts/aptos-display-italic.metrics.json +221 -0
- package/resources/fonts/aptos-display-italic.rows.json +8 -0
- package/resources/fonts/aptos-display-regular.hinted.json +125 -0
- package/resources/fonts/aptos-display-regular.metrics.json +221 -0
- package/resources/fonts/aptos-display-regular.rows.json +8 -0
- package/resources/fonts/aptos-italic.hinted.json +125 -0
- package/resources/fonts/aptos-italic.metrics.json +221 -0
- package/resources/fonts/aptos-italic.rows.json +8 -0
- package/resources/fonts/aptos-narrow-bold-italic.hinted.json +125 -0
- package/resources/fonts/aptos-narrow-bold-italic.metrics.json +221 -0
- package/resources/fonts/aptos-narrow-bold-italic.rows.json +8 -0
- package/resources/fonts/aptos-narrow-bold.hinted.json +125 -0
- package/resources/fonts/aptos-narrow-bold.metrics.json +221 -0
- package/resources/fonts/aptos-narrow-bold.rows.json +8 -0
- package/resources/fonts/aptos-narrow-italic.hinted.json +125 -0
- package/resources/fonts/aptos-narrow-italic.metrics.json +221 -0
- package/resources/fonts/aptos-narrow-italic.rows.json +8 -0
- package/resources/fonts/aptos-narrow-regular.hinted.json +125 -0
- package/resources/fonts/aptos-narrow-regular.metrics.json +221 -0
- package/resources/fonts/aptos-narrow-regular.rows.json +8 -0
- package/resources/fonts/aptos-regular.hinted.json +125 -0
- package/resources/fonts/aptos-regular.metrics.json +221 -0
- package/resources/fonts/aptos-regular.rows.json +8 -0
- package/resources/fonts/arial-bold-italic.rows.json +0 -1
- package/resources/fonts/arial-bold.rows.json +0 -1
- package/resources/fonts/arial-italic.rows.json +0 -1
- package/resources/fonts/arial-regular.rows.json +0 -1
- package/resources/fonts/calibri-bold-italic.rows.json +0 -1
- package/resources/fonts/calibri-bold.rows.json +0 -1
- package/resources/fonts/calibri-italic.rows.json +0 -1
- package/resources/fonts/calibri-regular.rows.json +0 -1
- package/resources/fonts/cambria-bold-italic.rows.json +0 -1
- package/resources/fonts/cambria-bold.rows.json +0 -1
- package/resources/fonts/cambria-italic.rows.json +0 -1
- package/resources/fonts/cambria-regular.rows.json +0 -1
- package/resources/fonts/contents.json +240 -0
- package/resources/fonts/courier-new-bold-italic.rows.json +0 -1
- package/resources/fonts/courier-new-bold.rows.json +0 -1
- package/resources/fonts/courier-new-italic.rows.json +0 -1
- package/resources/fonts/courier-new-regular.rows.json +0 -1
- package/resources/fonts/times-new-roman-bold-italic.rows.json +0 -1
- package/resources/fonts/times-new-roman-bold.rows.json +0 -1
- package/resources/fonts/times-new-roman-italic.rows.json +0 -1
- package/resources/fonts/times-new-roman-regular.rows.json +0 -1
- package/resources/locales/de/model.msg.json +12 -2
- package/resources/locales/en/model.msg.json +13 -2
- package/types/scripting-api.json +10638 -10446
- package/types/scripting-enums.json +20 -1
- package/types/scripting.d.ts +1536 -477
- package/types/src/.generated/wasm/sdk.d.ts +5 -27
- package/types/src/address/AddressUtils.d.ts +8 -0
- package/types/src/address/_SheetNameQuoteChars.d.ts +3 -0
- package/types/src/{sheet → anomalies}/_Anomalies.d.ts +3 -3
- package/types/src/anomalies/_FocusTable.d.ts +5 -0
- package/types/src/{sheet/_AnomalyFormulaChecks.d.ts → anomalies/_FormulaChecks.d.ts} +10 -2
- package/types/src/{sheet/_AnomalyLabelChecks.d.ts → anomalies/_LabelChecks.d.ts} +1 -1
- package/types/src/anomalies/_LiteralChecks.d.ts +35 -0
- package/types/src/anomalies/_SeriesChecks.d.ts +13 -0
- package/types/src/calculation/Calculation.d.ts +61 -98
- package/types/src/calculation/ExternalBookBindings.d.ts +2 -29
- package/types/src/calculation/ICalculation.d.ts +96 -9
- package/types/src/calculation/NamedFormulaCollection.d.ts +110 -10
- package/types/src/calculation/TokenType.d.ts +0 -10
- package/types/src/calculation/_CloneBoundary.d.ts +0 -24
- package/types/src/calculation/_FormulaToolkit.d.ts +0 -5
- package/types/src/calculation/compiler/ASTTypes.d.ts +6 -15
- package/types/src/calculation/compiler/CompilerUtils.d.ts +0 -227
- package/types/src/calculation/compiler/FormulaLexer.d.ts +0 -8
- package/types/src/calculation/compiler/FormulaParser.d.ts +0 -61
- package/types/src/calculation/compiler/ParserUtils.d.ts +0 -24
- package/types/src/calculation/compiler/Types.d.ts +1 -45
- package/types/src/calculation/engine/CalcBackend.d.ts +83 -127
- package/types/src/calculation/engine/index.d.ts +0 -8
- package/types/src/calculation/executor/CalcExecutor.d.ts +50 -116
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +47 -12
- package/types/src/calculation/executor/CircularReference.d.ts +0 -17
- package/types/src/calculation/executor/_BlockOrder.d.ts +29 -0
- package/types/src/calculation/executor/_WhatIf.d.ts +31 -0
- package/types/src/calculation/formula/FormulaBlock.d.ts +4 -31
- package/types/src/calculation/formula/FormulaRecordView.d.ts +0 -15
- package/types/src/calculation/formula/IFormulaBlock.d.ts +5 -12
- package/types/src/calculation/formula/LambdaValue.d.ts +0 -15
- package/types/src/calculation/formula/TokenUtils.d.ts +1 -8
- package/types/src/calculation/functions/_DataTableFunction.d.ts +14 -0
- package/types/src/calculation/grid/CalcGrid.d.ts +8 -64
- package/types/src/calculation/grid/CalcGridBackend.d.ts +12 -35
- package/types/src/calculation/grid/CalcGridProxy.d.ts +0 -15
- package/types/src/calculation/grid/CalcGridUtils.d.ts +21 -23
- package/types/src/calculation/grid/ICalcGrid.d.ts +28 -109
- package/types/src/calculation/grid/_CalcRequest.d.ts +17 -33
- package/types/src/calculation/spatial/CircularEntry.d.ts +0 -10
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +54 -82
- package/types/src/calculation/spatial/SpillEntry.d.ts +20 -3
- package/types/src/calculation/state/CalcNode.d.ts +0 -1
- package/types/src/calculation/state/CalcScope.d.ts +29 -9
- package/types/src/calculation/state/CalcState.d.ts +19 -9
- package/types/src/calculation/state/CalculationContext.d.ts +32 -38
- package/types/src/calculation/state/DeferredCalls.d.ts +207 -0
- package/types/src/calculation/state/IContextContainer.d.ts +19 -55
- package/types/src/calculation/state/_KeepBlanks.d.ts +5 -0
- package/types/src/calculation/state/_PendingOverlayGrid.d.ts +52 -33
- package/types/src/calculation/state/_WhatIfLayer.d.ts +77 -0
- package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +0 -42
- package/types/src/calculation/symbol/ISymbolRegistry.d.ts +0 -6
- package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +0 -12
- package/types/src/calculation/symbol/SymbolRegistry.d.ts +0 -9
- package/types/src/calculation/toolkit/index.d.ts +0 -8
- package/types/src/cell/ICell.d.ts +59 -54
- package/types/src/cellControl/CellControl.d.ts +67 -0
- package/types/src/cellControl/CellControlCollection.d.ts +29 -0
- package/types/src/cellControl/CellControlRegistry.d.ts +47 -0
- package/types/src/cellControl/ICellControl.d.ts +99 -0
- package/types/src/cellControl/ICellControlCollection.d.ts +67 -0
- package/types/src/cellControl/index.d.ts +4 -0
- package/types/src/cellRange/ICellRange.d.ts +226 -67
- package/types/src/cellRange/ICellRanges.d.ts +4 -3
- package/types/src/chart/Chart.d.ts +0 -16
- package/types/src/chart/_ChartParts.d.ts +0 -39
- package/types/src/chart/_ChartSource.d.ts +0 -14
- package/types/src/chart/createChart.d.ts +1 -1
- package/types/src/chart/kinds/ChartKind.d.ts +4 -4
- package/types/src/chart/kinds/_Placeholder.d.ts +0 -1
- package/types/src/chart/layout/ChartLayout.d.ts +5 -1
- package/types/src/chart/layout/TextMeasurer.d.ts +0 -20
- package/types/src/chart/layout/_LayoutUtils.d.ts +0 -16
- package/types/src/chart/math/BoxStats.d.ts +0 -8
- package/types/src/chart/math/DateUnitCalcs.d.ts +0 -10
- package/types/src/chart/math/Histogram.d.ts +0 -17
- package/types/src/chart/math/OrdUnitCalcs.d.ts +0 -53
- package/types/src/chart/math/Treemap.d.ts +0 -15
- package/types/src/chart/math/Trendlines.d.ts +0 -8
- package/types/src/chart/math/UnitCalcs.d.ts +0 -22
- package/types/src/chart/model/_Edits.d.ts +0 -33
- package/types/src/chart/model/_Grouping.d.ts +0 -25
- package/types/src/chart/model/_Inference.d.ts +0 -18
- package/types/src/chart/model/_NewChart.d.ts +0 -41
- package/types/src/chart/model/_OfPie.d.ts +0 -7
- package/types/src/chart/resolve/_LegacyStyles.d.ts +0 -20
- package/types/src/chart/resolve/_Resolve.d.ts +3 -12
- package/types/src/chart/resolve/_ResolvedChart.d.ts +5 -8
- package/types/src/collections/ISparseGrid.d.ts +11 -2
- package/types/src/collections/MixedTypedArrayList.d.ts +8 -2
- package/types/src/collections/SparseGrid.d.ts +3 -8
- package/types/src/collections/_GridUtils.d.ts +0 -10
- package/types/src/comment/_NoteBox.d.ts +0 -15
- package/types/src/condition/AnchoredConditional.d.ts +3 -25
- package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +0 -49
- package/types/src/condition/BuiltinSelectors/DisplaySelector.d.ts +0 -10
- package/types/src/condition/ICondition.d.ts +2 -2
- package/types/src/condition/_ConditionUtils.d.ts +0 -38
- package/types/src/externalBook/ExternalBookCollection.d.ts +0 -15
- package/types/src/externalBook/ExternalBookName.d.ts +2 -3
- package/types/src/externalBook/IExternalBook.d.ts +16 -18
- package/types/src/fetch/Fetcher.d.ts +15 -0
- package/types/src/fetch/IFetcher.d.ts +48 -0
- package/types/src/fetch/_WorkbookFetch.d.ts +43 -0
- package/types/src/fetch/index.d.ts +3 -0
- package/types/src/fill/PaintUtils.d.ts +3 -1
- package/types/src/font/AdvanceTable.d.ts +16 -42
- package/types/src/font/IFont.d.ts +32 -9
- package/types/src/font/TableFileAdvanceBuilder.d.ts +6 -3
- package/types/src/font/_FontUtils.d.ts +0 -8
- package/types/src/font/_StandIns.d.ts +33 -0
- package/types/src/hyperlink/IHyperlink.d.ts +10 -0
- package/types/src/hyperlink/_Hyperlink.d.ts +4 -1
- package/types/src/index.d.ts +2 -1
- package/types/src/io/IWorkbookIO.d.ts +3 -3
- package/types/src/io/WorkbookOrigin.d.ts +2 -2
- package/types/src/license/LicenseManager.d.ts +2 -1
- package/types/src/license/_Utils.d.ts +4 -3
- package/types/src/license/details.d.ts +3 -1
- package/types/src/license/keys.d.ts +6 -0
- package/types/src/license/license-key.d.ts +15 -33
- package/types/src/license/token.d.ts +55 -0
- package/types/src/named/INamedCollection.d.ts +36 -0
- package/types/src/named/NamedCollection.d.ts +18 -0
- package/types/src/picture/IPicture.d.ts +45 -0
- package/types/src/picture/Picture.d.ts +12 -0
- package/types/src/pivot/PivotTable.d.ts +0 -7
- package/types/src/primitives/AsyncValue.d.ts +46 -0
- package/types/src/primitives/PrimitiveUtils.d.ts +1 -110
- package/types/src/primitives/Range.d.ts +0 -60
- package/types/src/primitives/ScalarCollation.d.ts +0 -106
- package/types/src/primitives/stats/AggregateStats.d.ts +0 -19
- package/types/src/print/PageLayout.d.ts +0 -6
- package/types/src/reference/ReferenceUtils.d.ts +4 -2
- package/types/src/resource/IResource.d.ts +9 -0
- package/types/src/resource/IResourceCollection.d.ts +4 -0
- package/types/src/resource/Resource.d.ts +2 -0
- package/types/src/resource/_AddResource.d.ts +13 -0
- package/types/src/richData/CellImage.d.ts +95 -0
- package/types/src/richData/Hyperlink.d.ts +49 -0
- package/types/src/richData/IRichDataCollection.d.ts +76 -0
- package/types/src/richData/IRichDataKind.d.ts +55 -11
- package/types/src/richData/RichArray.d.ts +42 -0
- package/types/src/richData/RichDataCollection.d.ts +23 -0
- package/types/src/richData/RichDataRegistry.d.ts +52 -14
- package/types/src/richData/RichDataValues.d.ts +20 -0
- package/types/src/richData/RichRecord.d.ts +68 -0
- package/types/src/richData/RichText.d.ts +5 -5
- package/types/src/richData/index.d.ts +6 -0
- package/types/src/scripting/FunctionArguments.d.ts +17 -1
- package/types/src/scripting/FunctionCollection.d.ts +8 -0
- package/types/src/scripting/Scripts.d.ts +10 -0
- package/types/src/scripting/TypedFunction.d.ts +2 -109
- package/types/src/sheet/ICellContainerOptions.d.ts +6 -0
- package/types/src/sheet/IWorksheet.d.ts +26 -22
- package/types/src/sheet/NamedCellRange.d.ts +0 -21
- package/types/src/sheet/SheetCell.d.ts +25 -3
- package/types/src/sheet/SheetRange.d.ts +8 -2
- package/types/src/sheet/SheetRanges.d.ts +2 -2
- package/types/src/sheet/Worksheet.d.ts +117 -104
- package/types/src/sheet/_DelimitedText.d.ts +13 -0
- package/types/src/sheet/_IgnoredErrors.d.ts +0 -12
- package/types/src/sheet/_ListenerAnchor.d.ts +7 -1
- package/types/src/sheet/_ScalarListFactory.d.ts +46 -17
- package/types/src/sheet/_SheetCoords.d.ts +0 -7
- package/types/src/sheet/_SheetFilterUtils.d.ts +0 -8
- package/types/src/sheet/_SheetMutations.d.ts +4 -1
- package/types/src/sheet/_SheetStateReader.d.ts +0 -10
- package/types/src/sheet/_SheetStateTypes.d.ts +23 -14
- package/types/src/sheet/_SheetUtils.d.ts +1 -1
- package/types/src/sheet/style/_RowLine.d.ts +32 -0
- package/types/src/sheet/style/_StyleUtils.d.ts +6 -14
- package/types/src/sheetView/_SheetViewUtils.d.ts +0 -1
- package/types/src/slicer/_BuiltInSlicerStyles.d.ts +0 -5
- package/types/src/style/ICellStyle.d.ts +4 -0
- package/types/src/table/AnchoredTable.d.ts +0 -147
- package/types/src/text/TextFrame.d.ts +4 -1
- package/types/src/text/TextStacked.d.ts +0 -24
- package/types/src/text/TextWrapper.d.ts +3 -5
- package/types/src/text/_LineBox.d.ts +24 -0
- package/types/src/text/_TextUtils.d.ts +5 -2
- package/types/src/text/_TextWrapperFallback.d.ts +2 -1
- package/types/src/wasm/sdkWasm.d.ts +1 -1
- package/types/src/workbook/IWorkbook.d.ts +40 -1
- package/types/src/workbook/Workbook.d.ts +25 -13
- package/types/src/workbook/WorkbookRanges.d.ts +1 -1
- package/browser/esm/BGOFfpxr2jPIdqmV.mjs +0 -40
- package/browser/esm/BLoUBId2xZpXAK_H.mjs +0 -698
- package/browser/esm/C5E6zSGAALWf61n4.mjs +0 -199
- package/browser/esm/S2dNNx1a5ydRnARM.mjs +0 -367
- package/browser/esm/f1IoRb7tEb0QmCSt.mjs +0 -110
- package/browser/esm/gssVX_FH1XFN-twD.mjs +0 -210
- package/node/esm/BrCKGFRsX_ezFJ4B.mjs +0 -811
- package/node/esm/DOU54VsOjG-m-NyQ.mjs +0 -210
- package/node/esm/Db0v7zXNnyjBIjjI.mjs +0 -372
- package/node/esm/Df1bL6VFvrqIdSLB.mjs +0 -40
- package/node/esm/DrTZbfemSLq2mseG.mjs +0 -111
- package/types/src/dataTable/DataTable.d.ts +0 -67
- package/types/src/dataTable/DataTableCollection.d.ts +0 -19
- package/types/src/dataTable/IDataTable.d.ts +0 -99
- package/types/src/dataTable/IDataTableCollection.d.ts +0 -18
- package/types/src/dataTable/index.d.ts +0 -6
|
@@ -40,14 +40,6 @@ export interface FilterRuns {
|
|
|
40
40
|
* Read-only: resolves every condition and settles the final visible and hidden runs.
|
|
41
41
|
*/
|
|
42
42
|
export declare function evalFilter(sheet: Worksheet, coords: Readonly<IRange.Coords>, condition: ICondition.Input | ICondition.RangeOptions | null | undefined): Promise<FilterRuns>;
|
|
43
|
-
/**
|
|
44
|
-
* Writes the hidden bits {@link evalFilter} settled. Inside the caller's open transaction.
|
|
45
|
-
*
|
|
46
|
-
* @remarks
|
|
47
|
-
* Full recompute, every apply (DESIGN-FILTER.md §2): unhide every row/column that now matches,
|
|
48
|
-
* then hide every row/column that doesn't — including one the user hid manually, matching real
|
|
49
|
-
* Excel AutoFilter (there's no persisted "hidden by filter" vs. "hidden by user" bit to preserve).
|
|
50
|
-
*/
|
|
51
43
|
export declare function applyFilterRuns(sheet: Worksheet, runs: FilterRuns, options?: ITransaction.OperationOptions): void;
|
|
52
44
|
/**
|
|
53
45
|
* Sheet specific filter utils. Mirrors `_SheetSortUtils.doSort`: {@link evalFilter}, then one
|
|
@@ -50,7 +50,9 @@ export declare function setErrorIgnored(ctx: SheetMutationContext, ranges: reado
|
|
|
50
50
|
* @internal
|
|
51
51
|
*/
|
|
52
52
|
export declare function setHyperlinks(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<IHyperlink.Update>[], defaultUpdate?: IHyperlink.Update, // we do this because updateTuples may update each
|
|
53
|
-
options?: ITransaction.OperationOptions
|
|
53
|
+
options?: ITransaction.OperationOptions,
|
|
54
|
+
/** The caller has ruled on protection for these ranges (a content clear on a locked sheet). */
|
|
55
|
+
isRuled?: boolean): void;
|
|
54
56
|
export declare function updateStyles(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<ICellStyle.Update>[], defaultUpdate?: ICellStyle.Update, // we do this because updateTuples may update each
|
|
55
57
|
options?: ICellStyle.UpdateOptions, calcedNumberFormat?: boolean, // this is a bit of a hack. This is prevent number formats from functions to override user defined formats.
|
|
56
58
|
isStep?: boolean): void;
|
|
@@ -162,6 +164,7 @@ export interface TupleScan {
|
|
|
162
164
|
readonly allowFormatCells: boolean;
|
|
163
165
|
readonly hasUnlockRanges: boolean;
|
|
164
166
|
readonly runtime: SheetMutationContext['runtime'];
|
|
167
|
+
readonly richData: SheetMutationContext['richData'];
|
|
165
168
|
/**
|
|
166
169
|
* A scan that stays open holds only cells whose write cannot fail once scanned, and whose held
|
|
167
170
|
* style changes that cell alone: a cell that carries a hyperlink or comments, or a style that
|
|
@@ -71,16 +71,6 @@ export interface SheetReadContext {
|
|
|
71
71
|
*/
|
|
72
72
|
getRoles?(): ISpatialMap<ICell.Role>;
|
|
73
73
|
}
|
|
74
|
-
/**
|
|
75
|
-
* The read engine for a {@link Sheet}'s versioned state.
|
|
76
|
-
*
|
|
77
|
-
* These are stateless free functions: they take the pieces of sheet state they need explicitly
|
|
78
|
-
* (spatial maps, headers) and never reach back into the `Sheet` instance. `Sheet` keeps thin
|
|
79
|
-
* delegators that forward its internal fields here (see `_getRangedEntries`). Extracting the logic
|
|
80
|
-
* this way keeps it testable in isolation and lets the state re-key / feature-map reworks touch a
|
|
81
|
-
* small, self-contained surface. See `private-assets/design/SHEET-SPLIT-DESIGN.md` §5.2.
|
|
82
|
-
* @internal
|
|
83
|
-
*/
|
|
84
74
|
/** Header iterator options that walk only the visible spans (used for the ignore-hidden paths). */
|
|
85
75
|
export declare const OptionRangeIteratorVisibleOnly: ICellHeaderRange.IteratorOptions;
|
|
86
76
|
export interface GetTypedRangeOptions<T = any, E = any> {
|
|
@@ -13,8 +13,8 @@ import { SpillEntry, ContentfulSpatialValue, CircularEntry } from '../calculatio
|
|
|
13
13
|
import { IConditionalFormat } from '../conditionalFormat';
|
|
14
14
|
import { IDataValidation } from '../dataValidation';
|
|
15
15
|
import { IProtectedRange } from '../protectedRange';
|
|
16
|
+
import { ICellControl } from '../cellControl';
|
|
16
17
|
import { IPivotTable } from '../pivot';
|
|
17
|
-
import { IDataTable } from '../dataTable';
|
|
18
18
|
import { ICell } from '../cell';
|
|
19
19
|
import { IgnoredErrors } from './_IgnoredErrors';
|
|
20
20
|
import { CellKind } from './_Kinds';
|
|
@@ -153,6 +153,14 @@ export declare namespace RangeState {
|
|
|
153
153
|
* Overlaps are allowed
|
|
154
154
|
*/
|
|
155
155
|
conditionals?: IConditionalFormat | IConditionalFormat[];
|
|
156
|
+
/**
|
|
157
|
+
* The cell's control, such as a checkbox.
|
|
158
|
+
*
|
|
159
|
+
* @remarks
|
|
160
|
+
* A cell has at most one; an array arises only from a file whose controls overlap, and the
|
|
161
|
+
* first wins (`ICell.getControl`).
|
|
162
|
+
*/
|
|
163
|
+
cellControls?: ICellControl | ICellControl[];
|
|
156
164
|
/**
|
|
157
165
|
* The per-feature direct styles for a collection of cells (SHEET-STYLE-SPLIT). These are the
|
|
158
166
|
* user-authored style, kept DISCRETE — `borderStyle` carries `borders`, `fillStyle` carries `fill`,
|
|
@@ -234,10 +242,8 @@ export declare namespace RangeState {
|
|
|
234
242
|
* The date format as a string
|
|
235
243
|
*/
|
|
236
244
|
dateFormat?: string;
|
|
237
|
-
/**
|
|
238
|
-
|
|
239
|
-
*/
|
|
240
|
-
pending?: boolean;
|
|
245
|
+
/** Why the cell is waiting on a calculation: its own function's result, or a precedent's. */
|
|
246
|
+
calcStatus?: ICalcGrid.CalcStatus;
|
|
241
247
|
/**
|
|
242
248
|
* Errors during calculation.
|
|
243
249
|
*/
|
|
@@ -283,16 +289,14 @@ export declare namespace RangeState {
|
|
|
283
289
|
readonly Unlock: "unlock";
|
|
284
290
|
readonly Contentful: "contentful";
|
|
285
291
|
readonly Conditionals: "conditionals";
|
|
292
|
+
readonly CellControls: "cellControls";
|
|
286
293
|
/**
|
|
287
294
|
* Has a formula
|
|
288
295
|
*/
|
|
289
296
|
readonly Formula: "formula";
|
|
290
297
|
readonly Spills: "spills";
|
|
291
|
-
readonly
|
|
298
|
+
readonly CalcStatus: "calcStatus";
|
|
292
299
|
readonly CalcError: "calcError";
|
|
293
|
-
/**
|
|
294
|
-
* In a reference cycle, or downstream of one — evaluates to `0` (DESIGN-CIRCULAR-CALC.md §7).
|
|
295
|
-
*/
|
|
296
300
|
readonly Circular: "circular";
|
|
297
301
|
/**
|
|
298
302
|
* Error VALUES (the `Error` scalar kind). Backed by the RECONCILED view
|
|
@@ -339,8 +343,8 @@ export declare namespace RangeState {
|
|
|
339
343
|
* spatial map (`dateFormatSpatial`, no longer internal-only), `Error` off the reconciled error
|
|
340
344
|
* view. Neither needs the value-scan special-casing the old derived `Date` feature did.
|
|
341
345
|
*
|
|
342
|
-
* Internal-only members of `RangeState.Type` (`
|
|
343
|
-
*
|
|
346
|
+
* Internal-only members of `RangeState.Type` (`Continuous`, the legacy `Validation` alias)
|
|
347
|
+
* deliberately have no public feature.
|
|
344
348
|
*/
|
|
345
349
|
export declare const FeatureToRangeState: Readonly<Record<ICellRange.Feature, RangeState.Type | null>>;
|
|
346
350
|
/**
|
|
@@ -358,7 +362,7 @@ export declare function featuresToSearchTypes(features?: ICellRange.Feature | re
|
|
|
358
362
|
* would put an intersection on every valued cell (the null-check optimization dies).
|
|
359
363
|
* - `Continuous` rides along with any content-style projection (it is the continuous-alignment
|
|
360
364
|
* fast path — internal, so no public feature can name it).
|
|
361
|
-
* - `
|
|
365
|
+
* - `CalcStatus` rides along with `Formula`/`CalcError` (calc status accompanies calc state).
|
|
362
366
|
*/
|
|
363
367
|
export declare function cellFeaturesToSearchTypes(features?: ICellRange.Feature | readonly ICellRange.Feature[]): boolean | RangeState.SearchTypes;
|
|
364
368
|
/**
|
|
@@ -463,6 +467,13 @@ export interface State {
|
|
|
463
467
|
* Read through `RangeState.Type.Comments` — see {@link RangeState.Intersection.comments}.
|
|
464
468
|
*/
|
|
465
469
|
comments: IAnchoredMap<IComment, IComment.JSON>;
|
|
470
|
+
/**
|
|
471
|
+
* The cell controls, such as checkboxes.
|
|
472
|
+
*
|
|
473
|
+
* @remarks
|
|
474
|
+
* Read through `RangeState.Type.CellControls` — see {@link RangeState.Intersection.cellControls}.
|
|
475
|
+
*/
|
|
476
|
+
cellControls: IAnchoredMap<ICellControl, ICellControl.JSON>;
|
|
466
477
|
/**
|
|
467
478
|
* The reference each range listener watches.
|
|
468
479
|
*
|
|
@@ -476,8 +487,6 @@ export interface State {
|
|
|
476
487
|
listeners: IAnchoredMap<ListenerAnchor, never>;
|
|
477
488
|
/** The pivot tables laid out on the sheet, anchored at their locations as tables are. */
|
|
478
489
|
pivotTables: IAnchoredMap<IPivotTable, IPivotTable.JSON>;
|
|
479
|
-
/** The data tables on the sheet, anchored at their result cells. */
|
|
480
|
-
dataTables: IAnchoredMap<IDataTable, IDataTable.JSON>;
|
|
481
490
|
/**
|
|
482
491
|
* The grid's inputs this record pairs with, as the grid named them when the model last wrote
|
|
483
492
|
* this sheet's cells (`ICalcGrid.Events.onInputsWritten`); `null` before any write.
|
|
@@ -189,7 +189,7 @@ export declare function mergeOptions(optionsA: any, optionsB: any): any;
|
|
|
189
189
|
/**
|
|
190
190
|
* Returns a regEx. Either a regular regex or a Excel like wildcard regex.
|
|
191
191
|
*/
|
|
192
|
-
export declare function builtFindReg(findText: string, matchCase: boolean, useRegex: boolean): RegExp;
|
|
192
|
+
export declare function builtFindReg(findText: string, matchCase: boolean, useRegex: boolean, matchEntireCell: boolean): RegExp;
|
|
193
193
|
export declare function rangeTopLeft(range: IRange.Coords): IRange.Coords;
|
|
194
194
|
/**
|
|
195
195
|
* Given a selection, find the 'natural' bounding area to sort.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { IFont } from '../../font/IFont';
|
|
2
|
+
import { LineBox, LineHeightRule } from '../../text/_LineBox';
|
|
3
|
+
/** One pixel above the font's box and one below. */
|
|
4
|
+
export declare const CELL_GUTTER_PX = 2;
|
|
5
|
+
/** The `format` of a `.rows.json` this version reads. */
|
|
6
|
+
export declare const ROWS_FORMAT = "sheetxl-font-rows/1";
|
|
7
|
+
/**
|
|
8
|
+
* A `.rows.json`, shipped beside a face's tables: Excel's row height for the face, in px at
|
|
9
|
+
* 96 dpi, at every integer ppem from `firstPpem` up to Excel's 409 pt cap.
|
|
10
|
+
*/
|
|
11
|
+
export interface RowsJSON {
|
|
12
|
+
format: typeof ROWS_FORMAT;
|
|
13
|
+
family: string;
|
|
14
|
+
weight: number;
|
|
15
|
+
italic: boolean;
|
|
16
|
+
firstPpem: number;
|
|
17
|
+
/** `pitches[i]` is the pitch at `firstPpem + i`. */
|
|
18
|
+
pitches: number[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Records a face's `.rows.json`; cells in that face size their lines by it from then on.
|
|
22
|
+
*
|
|
23
|
+
* @throws when the format is not one this reads, or fewer than two sizes are listed.
|
|
24
|
+
*/
|
|
25
|
+
export declare function registerRows(json: RowsJSON): void;
|
|
26
|
+
/** Whether a face's `.rows.json` has been recorded. */
|
|
27
|
+
export declare function hasRows(face: IFont.AdvanceTable.Face): boolean;
|
|
28
|
+
/** The height of a row sized to one line of text in `table`'s face at `px` pixels per em. */
|
|
29
|
+
export declare const rowLineHeight: LineHeightRule;
|
|
30
|
+
/** The line a cell gives one line of text in `table`'s face at `px` pixels per em. */
|
|
31
|
+
export declare function cellLine(table: IFont.AdvanceTable, px: number): LineBox;
|
|
32
|
+
//# sourceMappingURL=_RowLine.d.ts.map
|
|
@@ -15,6 +15,12 @@ export declare function resolveAlwaysUnlocked(styles: IStyleCollection, direct:
|
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
17
17
|
export declare function resolveShowFormulas(styles: IStyleCollection, direct: Readonly<ICellStyle.Properties> | null | undefined): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* The number format a cell with these direct content properties was given: its own, then its named
|
|
20
|
+
* style's. A named style's `General` is no format, and Normal's is not given to any cell.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveGivenNumberFormat(styles: IStyleCollection, direct: Readonly<ICellStyle.Properties> | null | undefined): string | undefined;
|
|
18
24
|
/**
|
|
19
25
|
* The formula entries over `bounds` that protection lets a reader see.
|
|
20
26
|
*
|
|
@@ -45,19 +51,5 @@ export declare function isEqualStrokeProperties(a: IBorders.StrokeProperties | u
|
|
|
45
51
|
* same pieces a real stroke would.
|
|
46
52
|
*/
|
|
47
53
|
export declare function splitBorderRange(border: IBorders.Properties, rangeFrom: IRange.Coords, rangeTo: IRange.Coords, isColumn: boolean): Partial<IBorders.Properties> | null | undefined;
|
|
48
|
-
/**
|
|
49
|
-
* Performs a shift but uses the entire range to ensure edge styles.
|
|
50
|
-
*
|
|
51
|
-
* @param options
|
|
52
|
-
* @param entireRange
|
|
53
|
-
*
|
|
54
|
-
* @remarks
|
|
55
|
-
* Returns an entry but requires the value be set/cloned.
|
|
56
|
-
*
|
|
57
|
-
* An entry that reaches the sheet's far edge is a header's: it keeps reaching it. An entry that
|
|
58
|
-
* only starts at the near edge is an ordinary block, and moves or grows as the shift says: an
|
|
59
|
-
* insert at its first row or column moves it whole, one strictly inside grows it (Excel-probed
|
|
60
|
-
* 2026-10-18 for a fill and a merge: `A1:A3` + insert rows 1:2 is `A3:A5`, + insert row 2 is `A1:A4`).
|
|
61
|
-
*/
|
|
62
54
|
export declare function getEdgeAwareShifted<T = any>(options: ISpatialMap.ShiftDetails<T>, entireRange?: IRange.Coords): ISpatialMap.Entry<T> | null;
|
|
63
55
|
//# sourceMappingURL=_StyleUtils.d.ts.map
|
|
@@ -9,7 +9,6 @@ export declare const EmptyFreezePanes: IWorksheetView.FreezePanes;
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const EmptySelection: IRangeSelection.Coords;
|
|
11
11
|
export declare const DefaultSheetProperties: IWorksheetView.Properties;
|
|
12
|
-
/** The zoom a view mode opens at before one is set in it. Measured against Excel. */
|
|
13
12
|
export declare const DefaultViewModeZoom: Readonly<Record<IWorksheetView.ViewMode, number>>;
|
|
14
13
|
/**
|
|
15
14
|
* A simple stepper.
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import { ISlicerStyle } from './ISlicerStyle';
|
|
2
|
-
/**
|
|
3
|
-
* Excel's built-in slicer styles, taken from Excel (each built-in duplicated and saved, the dxfs
|
|
4
|
-
* read back; `private-assets/design/shapes/fixtures/slicers/`). Light 1–6 and Dark 1–6 are each one
|
|
5
|
-
* design over the six accents; Other 1 and 2 stand alone.
|
|
6
|
-
*/
|
|
7
2
|
/** The style a slicer is given when nothing names another. */
|
|
8
3
|
export declare const DefaultSlicerStyleName: string;
|
|
9
4
|
/**
|
|
@@ -147,6 +147,10 @@ export interface ICellStyle extends IFillable<ICellStyle, IFill.ISolid | IFill.I
|
|
|
147
147
|
/**
|
|
148
148
|
* Measure the text using the styling properties
|
|
149
149
|
*
|
|
150
|
+
* @remarks
|
|
151
|
+
* The vertical metrics are a cell's line: `lineHeight` is the height of a row sized to one
|
|
152
|
+
* line of this text, which leaves room around the font's ascent and descent as Excel does.
|
|
153
|
+
*
|
|
150
154
|
* @param text The text to measure.
|
|
151
155
|
* @param size Size @defaultValue 'to the cell font.size'
|
|
152
156
|
* @param family Family @defaultValue 'to the cell font.family'
|
|
@@ -238,27 +238,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
|
|
|
238
238
|
* props, where {@link _showTotalsFromProps} finds it when the row comes back.
|
|
239
239
|
*/
|
|
240
240
|
private _holdTotalsFromCells;
|
|
241
|
-
/**
|
|
242
|
-
* Keep every totals EXPRESSION a live formula while its row is hidden.
|
|
243
|
-
*
|
|
244
|
-
* @remarks
|
|
245
|
-
* Excel's held totals formulas are live (probed, T2): hidden, they follow a column rename, a table
|
|
246
|
-
* rename, a row inserted above and a row added to the table, A1 references included. Text in the
|
|
247
|
-
* props follows none of that. So while the row is hidden each expression is ALSO a watch - a
|
|
248
|
-
* formula the engine holds without a cell, which gets everything a cell formula gets - anchored
|
|
249
|
-
* on the row below the table, where the totals row was and will be again. It moves with that row
|
|
250
|
-
* on an insert, as the table's end does; when the table's end moves without one (a resize, an
|
|
251
|
-
* auto expansion) it is re-anchored with the text it has by then, which is a move and leaves its
|
|
252
|
-
* references where they were. Only the row matters: the text is A1, so it reads the same from
|
|
253
|
-
* any column, and a column shift inside the table is no reason to touch it.
|
|
254
|
-
*
|
|
255
|
-
* The props keep the text the watch was made from. They are what a snapshot can restore and what
|
|
256
|
-
* there is to read until the engine has registered the watch; {@link _readHeldTotal} prefers what
|
|
257
|
-
* the engine has. A function number needs none of this - it is spelled from the column's name
|
|
258
|
-
* when it is shown - and neither does a label.
|
|
259
|
-
*
|
|
260
|
-
* Derived from state, like the listeners, and called wherever they are re-derived.
|
|
261
|
-
*/
|
|
262
241
|
private _syncHeldTotals;
|
|
263
242
|
/**
|
|
264
243
|
* A held expression as the model's grid holds it, or `null` when it holds none - not registered
|
|
@@ -266,22 +245,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
|
|
|
266
245
|
*/
|
|
267
246
|
private _readHeldTotal;
|
|
268
247
|
private _removeHeldTotals;
|
|
269
|
-
/**
|
|
270
|
-
* Keep every calculated column's formula a live formula.
|
|
271
|
-
*
|
|
272
|
-
* @remarks
|
|
273
|
-
* A calculated column remembers its formula apart from its cells - any of them may hold
|
|
274
|
-
* something else, the first included - and Excel's is live (probed, G5 of
|
|
275
|
-
* `probe-table-columnfill-edges.ps1`): it follows a sheet row inserted above the table, a column
|
|
276
|
-
* inserted inside it and a column rename, exceptions or not. It is the problem
|
|
277
|
-
* {@link _syncHeldTotals} solves and the same holder: the text in the column props, and a watch
|
|
278
|
-
* made from it, here on a body cell of the column.
|
|
279
|
-
*
|
|
280
|
-
* The text is always the formula as it reads in the FIRST body row, which is how a file stores
|
|
281
|
-
* it and what {@link _readHeldCalculated} images, wherever in the body the watch has been pushed
|
|
282
|
-
* to. So a watch is only made again when it has left the column's body, or when the props hold
|
|
283
|
-
* a different text.
|
|
284
|
-
*/
|
|
285
248
|
private _syncHeldCalculated;
|
|
286
249
|
/**
|
|
287
250
|
* A calculated column's formula as the engine has it now, as it reads in the first body row, or
|
|
@@ -303,19 +266,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
|
|
|
303
266
|
* after it.
|
|
304
267
|
*/
|
|
305
268
|
private _calculatedTextAt;
|
|
306
|
-
/**
|
|
307
|
-
* What Excel gives a totals row the FIRST time it is shown, and never again: an aggregate in the
|
|
308
|
-
* last column, chosen by what the column holds. Held in the props, which is where
|
|
309
|
-
* {@link _showTotalsFromProps} is about to look.
|
|
310
|
-
*
|
|
311
|
-
* @remarks
|
|
312
|
-
* Probed (`probe-table-totals-firstshow.ps1`): `109` (sum) when every cell of the body that holds
|
|
313
|
-
* anything holds a number - a formula's result counts, and so does a currency or a percent
|
|
314
|
-
* format - and `103` (count) as soon as one is text, a boolean, an error, or a number shown as a
|
|
315
|
-
* date or a time, and for a column with nothing in it. A row shown a second time is given
|
|
316
|
-
* nothing, even when the aggregate was cleared in between, which is what `totalsRowShown` records.
|
|
317
|
-
* The `Total` label is the first column's from the day the table is made.
|
|
318
|
-
*/
|
|
319
269
|
private _holdFirstShowTotals;
|
|
320
270
|
/**
|
|
321
271
|
* The region a bare cursor on this table traverses within, or `null` to leave the move alone.
|
|
@@ -465,61 +415,8 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
|
|
|
465
415
|
/** @internal */
|
|
466
416
|
protected _processExpandListener(): void;
|
|
467
417
|
private _onExpandListenerEvent;
|
|
468
|
-
/**
|
|
469
|
-
* A formula has been entered in the row just below the table: that row becomes the totals row, in
|
|
470
|
-
* the one step of the expansion (Excel: `Table AutoExpansion`).
|
|
471
|
-
*
|
|
472
|
-
* @remarks
|
|
473
|
-
* Probed (`probe-table-autototals.ps1`). What was entered stays where it is and is its column's
|
|
474
|
-
* total from here on. The other columns total nothing - not the `Total` label a table is made
|
|
475
|
-
* with, not the aggregate a first showing gives - unless the table has shown a totals row before,
|
|
476
|
-
* whose totals then come back beside it as they would with the row toggled on.
|
|
477
|
-
*/
|
|
478
418
|
private _takeRowBelowAsTotals;
|
|
479
|
-
/**
|
|
480
|
-
* What a commit that wrote into the body means for the columns it wrote to: a formula to fill
|
|
481
|
-
* down the column, a formula to remember, or one to forget.
|
|
482
|
-
*
|
|
483
|
-
* @remarks
|
|
484
|
-
* Probed (`probe-table-columnfill.ps1` and `-edges.ps1`). A formula written to ONE body cell is
|
|
485
|
-
* filled down its column when every other body cell of the column is blank, or when the column
|
|
486
|
-
* is calculated and every other body cell still holds one formula - so editing the formula of
|
|
487
|
-
* a calculated column edits the column, and a column holding an exception, a blank one
|
|
488
|
-
* included, is left alone. Nothing is asked about what the written cell held before. A write of
|
|
489
|
-
* two cells or more never fills, whatever it wrote. The fill is a commit of its own (Excel:
|
|
490
|
-
* `Fill`), recorded after the write it follows, so the first undo takes back the fill and
|
|
491
|
-
* leaves the formula that was typed. Hidden and filtered rows are filled like any other, and
|
|
492
|
-
* the totals row never is.
|
|
493
|
-
*
|
|
494
|
-
* A write that fills nothing can still change what the column remembers, and that is part of
|
|
495
|
-
* the write, not a step of its own: a formula written over the whole body in one write is
|
|
496
|
-
* remembered, and a column left with no formula in it at all remembers none.
|
|
497
|
-
*
|
|
498
|
-
* Everything here is asked of whole rectangles and of formula blocks - a filled column is one
|
|
499
|
-
* block - never cell by cell.
|
|
500
|
-
*
|
|
501
|
-
* @param changed Every range the commit changed, unclipped.
|
|
502
|
-
* @param bodyBefore The body as it was when the commit landed. A row the table has taken since
|
|
503
|
-
* is not one the write could have filled from: a formula written just below a table becomes a
|
|
504
|
-
* row of it and fills nothing.
|
|
505
|
-
*/
|
|
506
419
|
private _processBodyWrite;
|
|
507
|
-
/**
|
|
508
|
-
* A table has just been made over cells that were already there: a column whose cells hold one
|
|
509
|
-
* formula is a calculated column from the start.
|
|
510
|
-
*
|
|
511
|
-
* @remarks
|
|
512
|
-
* Probed (`probe-table-columnfill-created.ps1`). Excel looks at the LAST five body rows and no
|
|
513
|
-
* further. The column remembers the formula of its last body cell when at most one of the other
|
|
514
|
-
* four holds anything else - another formula, a constant, a blank. So `aaaaaabbbb` remembers
|
|
515
|
-
* `b`, `baaaa` and `ab` remember `a` and `b`, and `aabbb`, `aaab` and `aaa_` remember nothing.
|
|
516
|
-
* It is not a majority, and nothing above the five rows is ever asked.
|
|
517
|
-
*
|
|
518
|
-
* The sheet calls this for a table it has just made, never for one it loads: a file says which
|
|
519
|
-
* of its columns are calculated, and a column of identical formulas is not one unless it does.
|
|
520
|
-
*
|
|
521
|
-
* @internal
|
|
522
|
-
*/
|
|
523
420
|
_detectCalculatedColumns(): void;
|
|
524
421
|
/**
|
|
525
422
|
* Every calculated column's formula as it reads in `rowIndex`, by column index, or `null` when
|
|
@@ -532,13 +429,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
|
|
|
532
429
|
* an insert, which the new row names as it was before the insert moved it.
|
|
533
430
|
*/
|
|
534
431
|
private _calculatedTextsAt;
|
|
535
|
-
/**
|
|
536
|
-
* Give new body rows each calculated column's formula (probed, F4: a row added to the table is
|
|
537
|
-
* given it whatever the column's other cells hold). A column whose new cells already hold
|
|
538
|
-
* something - the write the table expanded for - keeps it.
|
|
539
|
-
*
|
|
540
|
-
* @param texts From {@link _calculatedTextsAt}, for `rowStart`.
|
|
541
|
-
*/
|
|
542
432
|
private _writeCalculatedRows;
|
|
543
433
|
/**
|
|
544
434
|
* Fill the formula in `from` down the body of its column, and have the column remember it.
|
|
@@ -802,43 +692,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
|
|
|
802
692
|
* its header cell rather than by a generated one.
|
|
803
693
|
*/
|
|
804
694
|
private _setAnchor;
|
|
805
|
-
/**
|
|
806
|
-
* Move the totals row to the row a resize ends the table on.
|
|
807
|
-
*
|
|
808
|
-
* @remarks
|
|
809
|
-
* Excel moves the row rather than rewriting it (probed, `probe-table-totals-refit.ps1`): what it
|
|
810
|
-
* passes on the way becomes body - growing over `70, 80` makes them the last two body rows, and
|
|
811
|
-
* shrinking leaves the body rows given up sitting below the totals - and nothing outside the
|
|
812
|
-
* table's columns or below the two rows involved ends up anywhere else.
|
|
813
|
-
*
|
|
814
|
-
* That is a rotation of the totals row past the rows between, done here with the sheet's own
|
|
815
|
-
* shifts - inserts and deletes of the table's columns - so that what names a cell follows it and
|
|
816
|
-
* nothing below the two rows is left anywhere else. A shift carries cells but cannot reorder
|
|
817
|
-
* them, so one side of the rotation has to be written again, and which side depends on what the
|
|
818
|
-
* totals row passes:
|
|
819
|
-
*
|
|
820
|
-
* - **Growing over blank rows**, the usual case, the blank rows are the side given up. Rows are
|
|
821
|
-
* inserted above the totals row, which carries it down whole - its formats, its formulas and
|
|
822
|
-
* every reference to its cells, exactly as Excel has them - and the blank rows it pushed out
|
|
823
|
-
* below are deleted.
|
|
824
|
-
* - **Growing over content, and shrinking**, the rows between are the user's and have to travel,
|
|
825
|
-
* so the totals row is the side written again: a blank row is opened where it is going, its
|
|
826
|
-
* cells are written there - formula, value and the cell's own format - and the row they came
|
|
827
|
-
* from is deleted, which closes the gap. Two divergences follow from writing rather than
|
|
828
|
-
* moving. A reference to a totals CELL from elsewhere (`=C7`) becomes `#REF!` where Excel
|
|
829
|
-
* re-points it; `Table[[#Totals],[Column]]` is unaffected. And, shrinking, an A1 reference
|
|
830
|
-
* into the rows being given up is not pushed down with them (Excel: `SUM(C3:C5)` becomes
|
|
831
|
-
* `SUM(C3:C6)`), because the engine re-images a formula for a shift once it has settled and
|
|
832
|
-
* the text written here is from before; Excel's own result there is a circular reference,
|
|
833
|
-
* the totals cell sitting inside that range.
|
|
834
|
-
*
|
|
835
|
-
* The table steps back above both rows first. A shift inside a table is the table's business
|
|
836
|
-
* ({@link _processContainerShift} would hide a totals row whose row is deleted); one below it is
|
|
837
|
-
* not.
|
|
838
|
-
*
|
|
839
|
-
* @param from The anchor the table has now, totals row included.
|
|
840
|
-
* @param rowEnd The row the totals row is going to.
|
|
841
|
-
*/
|
|
842
695
|
private _moveTotalsRow;
|
|
843
696
|
/**
|
|
844
697
|
* Bring the column properties in line with a new width: a column taken in is appended (or
|
|
@@ -5,6 +5,7 @@ import { ITextLine } from './TextLine';
|
|
|
5
5
|
import { ITextParagraph } from './TextParagraph';
|
|
6
6
|
import { ITextFrame } from './ITextFrame';
|
|
7
7
|
import { ITextBoxAlignment } from './TextBoxAlignment';
|
|
8
|
+
import { LineHeightRule } from './_LineBox';
|
|
8
9
|
export declare class TextFrame {
|
|
9
10
|
private _private;
|
|
10
11
|
private _bounds;
|
|
@@ -16,7 +17,9 @@ export declare class TextFrame {
|
|
|
16
17
|
private _lastLayoutFonts;
|
|
17
18
|
private _defaultFont;
|
|
18
19
|
private _alignment;
|
|
19
|
-
|
|
20
|
+
/** How tall each line is when laid out; the font's own line when `null`. */
|
|
21
|
+
private _lineHeight;
|
|
22
|
+
constructor(overrides: Partial<ITextFrame>, defaultFont: IFontStyle, alignment: ITextBoxAlignment, lines?: ITextLine[] | null, bounds?: Bounds | null, textBounds?: Bounds | null, lineHeight?: LineHeightRule | null);
|
|
20
23
|
visitParas(visitor: TextVisitor): void;
|
|
21
24
|
visitLines(visitor: TextVisitor): void;
|
|
22
25
|
layout(size?: Partial<Size> | null): ITextFrame;
|
|
@@ -1,29 +1,5 @@
|
|
|
1
1
|
import { Bounds } from '@sheetxl/utils';
|
|
2
2
|
import { ITextFrame } from './ITextFrame';
|
|
3
|
-
/**
|
|
4
|
-
* Stacked cell-text layout — Excel's "Vertical Text" (`textRotation="255"`).
|
|
5
|
-
*
|
|
6
|
-
* Stacked text is not rotated. Every glyph stays upright and occupies one SLOT of the font's line
|
|
7
|
-
* pitch, glyphs advancing downward in a column. Measured against Excel (hidden-COM probes, see
|
|
8
|
-
* `VERTICAL-TEXT-PLAN.md`):
|
|
9
|
-
*
|
|
10
|
-
* 1. Columns come from explicit line breaks — one column per line, left → right in reading order —
|
|
11
|
-
* and, when the cell wraps, from breaking a column that would exceed the content height: greedy
|
|
12
|
-
* at spaces (the space at a break is consumed), per glyph inside a word longer than the capacity.
|
|
13
|
-
* It is the horizontal wrap rule transposed. An unwrapped cell keeps one column; a line break
|
|
14
|
-
* there is a blank slot.
|
|
15
|
-
* 2. Leading and trailing spaces of a column are measured but never painted (see
|
|
16
|
-
* {@link layoutColumns}); inner spaces are blank slots.
|
|
17
|
-
* 3. Each column is aligned on its own by the vertical alignment (Top / Center / Bottom; Justify
|
|
18
|
-
* and Distributed behave as Top and Center — nothing is spread). The horizontal alignment places
|
|
19
|
-
* the group of columns; the caller resolves General (Excel centers it). Columns are one pitch
|
|
20
|
-
* wide and glyphs center in them.
|
|
21
|
-
* 4. Nothing overflows: the footprint clips to the cell on both axes.
|
|
22
|
-
*
|
|
23
|
-
* All output is pure geometry, renderer-agnostic: a DOM renderer maps each column to a box of
|
|
24
|
-
* `pitch` line-height with one glyph per line; a canvas renderer paints each glyph centered in
|
|
25
|
-
* its slot.
|
|
26
|
-
*/
|
|
27
3
|
/**
|
|
28
4
|
* One stacked column.
|
|
29
5
|
*/
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IFontCollection } from '../font';
|
|
2
|
+
import { LineHeightRule } from './_LineBox';
|
|
2
3
|
/**
|
|
3
4
|
* Simple Text Line Wrapper. Is not useful for Rich Text (yet). see TextLayout.
|
|
4
5
|
*/
|
|
@@ -18,6 +19,8 @@ export interface TextWrapperOptions {
|
|
|
18
19
|
* This affects the width but not the height of the line.
|
|
19
20
|
*/
|
|
20
21
|
superSub?: boolean;
|
|
22
|
+
/** How tall each line is; without one a line is as tall as the font's own metrics ask. */
|
|
23
|
+
lineHeight?: LineHeightRule | null;
|
|
21
24
|
indent?: number;
|
|
22
25
|
}
|
|
23
26
|
export interface TextWrapperResults {
|
|
@@ -74,11 +77,6 @@ export declare class TextWrapper {
|
|
|
74
77
|
/** Whether the next wrap runs in the Rust wrapper. */
|
|
75
78
|
get isNative(): boolean;
|
|
76
79
|
wrap(text: string, options?: TextWrapperOptions | null): TextWrapperResults;
|
|
77
|
-
/**
|
|
78
|
-
* The wrap through the Rust wrapper: the text crosses the boundary once and the lines come
|
|
79
|
-
* back as one flat array, {@link NATIVE_LINE_STRIDE} numbers each (DESIGN-FONTS §6.2:
|
|
80
|
-
* one call per wrap). Its offsets are UTF-8 bytes, turned into UTF-16 positions here.
|
|
81
|
-
*/
|
|
82
80
|
private _wrapNative;
|
|
83
81
|
}
|
|
84
82
|
//# sourceMappingURL=TextWrapper.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IFont } from '../font/IFont';
|
|
2
|
+
/** A line of text at a size, in whole px. */
|
|
3
|
+
export interface LineBox {
|
|
4
|
+
/** What a line advances by. */
|
|
5
|
+
readonly lineHeight: number;
|
|
6
|
+
/** The leading around the font's box: `lineHeight` less ascent and descent. */
|
|
7
|
+
readonly lineGap: number;
|
|
8
|
+
/** The baseline's offset from the top of the line: half the leading above, then the ascent. */
|
|
9
|
+
readonly baseline: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* How tall a line of text is in a face at `px` pixels per em, in whole px: the layout's choice of
|
|
13
|
+
* leading. Without one a line is as tall as the font's own metrics ask.
|
|
14
|
+
*/
|
|
15
|
+
export type LineHeightRule = (table: IFont.AdvanceTable, px: number) => number;
|
|
16
|
+
/**
|
|
17
|
+
* A line `lineHeight` tall around a font's box: the leading split above and below, the half above
|
|
18
|
+
* floored (as a browser lays out a CSS line box). A line shorter than the box leaves the baseline
|
|
19
|
+
* at the ascent. `LineBox::around` in `sheetxl-text` is the same rule.
|
|
20
|
+
*/
|
|
21
|
+
export declare function lineBoxAround(metrics: Pick<IFont.Metrics, 'ascent' | 'descent'>, lineHeight: number): LineBox;
|
|
22
|
+
/** The line `rule` gives text in `table`'s face at `px`, or the font's own without one. */
|
|
23
|
+
export declare function lineBox(table: IFont.AdvanceTable, px: number, rule?: LineHeightRule | null): LineBox;
|
|
24
|
+
//# sourceMappingURL=_LineBox.d.ts.map
|
|
@@ -3,15 +3,17 @@ import { IFontCollection } from '../font';
|
|
|
3
3
|
import { ITextFrame } from './ITextFrame';
|
|
4
4
|
import { ITextBoxAlignment } from './TextBoxAlignment';
|
|
5
5
|
import { IFontStyle } from '../font/IFontStyle';
|
|
6
|
+
import { LineHeightRule } from './_LineBox';
|
|
6
7
|
/**
|
|
7
8
|
* This 'places' text which means that using all of the formatting rules it assign's locations and bounds to
|
|
8
9
|
* all of the characters. It does not however actually render them. See @renderTextFrame for rendering.
|
|
9
10
|
*
|
|
10
11
|
* @param textFrame
|
|
11
12
|
* @param dimensions
|
|
13
|
+
* @param lineHeight How tall each line is; the font's own line without one.
|
|
12
14
|
* @param fonts Where fonts are measured from; the shared collection by default.
|
|
13
15
|
*/
|
|
14
|
-
export declare function layoutTextFrame(textFrame: ITextFrame, defaultFont: IFontStyle, alignment: ITextBoxAlignment, dimensions?: Partial<Size> | null, fonts?: IFontCollection): ITextFrame;
|
|
16
|
+
export declare function layoutTextFrame(textFrame: ITextFrame, defaultFont: IFontStyle, alignment: ITextBoxAlignment, dimensions?: Partial<Size> | null, lineHeight?: LineHeightRule | null, fonts?: IFontCollection): ITextFrame;
|
|
15
17
|
/**
|
|
16
18
|
* Checks whether a string is entirely uppercase, lowercase, or mixed case.
|
|
17
19
|
*
|
|
@@ -84,7 +86,8 @@ export declare function convertCase(str: string, caseArray: readonly number[]):
|
|
|
84
86
|
* Create a simple text frame.
|
|
85
87
|
* TODO - Later we will make take frame take the style (and theme?) and have more operations on it.
|
|
86
88
|
* TODO - abstract CellStyle
|
|
89
|
+
* @param lineHeight How tall each line is when laid out; the font's own line without one.
|
|
87
90
|
* @internal
|
|
88
91
|
*/
|
|
89
|
-
export declare function createTextFrameFromText(text: string, defaultFont: IFontStyle, alignment: ITextBoxAlignment, allowWrap: boolean, disableCustomFormatting?: boolean): ITextFrame;
|
|
92
|
+
export declare function createTextFrameFromText(text: string, defaultFont: IFontStyle, alignment: ITextBoxAlignment, allowWrap: boolean, disableCustomFormatting?: boolean, lineHeight?: LineHeightRule | null): ITextFrame;
|
|
90
93
|
//# sourceMappingURL=_TextUtils.d.ts.map
|
|
@@ -25,7 +25,8 @@ export declare class TextWrapperFallback {
|
|
|
25
25
|
private _maxHeight;
|
|
26
26
|
/** One character's advance in px, by character, for the current wrap. */
|
|
27
27
|
private _advances;
|
|
28
|
-
|
|
28
|
+
/** The line every wrapped line takes. */
|
|
29
|
+
private _line;
|
|
29
30
|
/** The current line from its start to {@link _charactersRead}. */
|
|
30
31
|
private _lineTally;
|
|
31
32
|
/**
|