@sheetxl/sdk 0.8.0-beta.1 → 0.8.0-beta.3
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 +1 -1
- package/browser/cjs/B0AS8k-hrSCBUlUY.cjs +1 -0
- package/browser/cjs/B308aXzcAYr1GN1c.cjs +1 -0
- package/browser/cjs/B44p8LIyxG3GtaGC.cjs +93 -0
- package/browser/cjs/{a0Z-SXs_N71CtqYb.cjs → D6YaqporVrSewZpm.cjs} +1 -1
- package/browser/cjs/DjWcveVCs0NFiKep.cjs +1 -0
- package/browser/cjs/index.cjs +2 -2
- package/browser/esm/-OKDZ9cUBtkgD4Zr.mjs +20 -0
- package/browser/esm/8Nw0lKc4ISs7hEJT.mjs +70223 -0
- package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → BmEEyMxNzlbXG98H.mjs} +2 -2
- package/browser/esm/BtdDRkWn-zCV3oic.mjs +394 -0
- package/browser/esm/DaCTT4vda0m8Fnxo.mjs +8 -0
- package/browser/esm/{B0HS42a7lga1k1U_.mjs → DvFKKE72ZA02l8iF.mjs} +1 -1
- package/browser/esm/{uyWBMSIxMlt8n5Z3.mjs → Z-dzbKvqaxll9l_t.mjs} +2 -2
- package/browser/esm/index.mjs +871 -696
- package/licenses/dependencies.txt +204 -204
- package/node/esm/{Cku7XiUvw1xrRasi.mjs → BpMTlTrJLWh_wJ5H.mjs} +1 -1
- package/node/esm/D5quDVovf1zjYBgJ.mjs +28 -0
- package/node/esm/DP0M3_S_dwLwRMiA.mjs +403 -0
- package/node/esm/DTHN_EkuOscW3f3B.mjs +8 -0
- package/node/esm/index.mjs +54375 -39377
- package/package.json +6 -7
- package/resources/locales/de/model.msg.json +45 -9
- package/resources/locales/en/model.msg.json +42 -9
- package/types/scripting-api.json +7094 -0
- package/types/scripting-enums.json +54 -8
- package/types/scripting.d.ts +6985 -1171
- package/types/src/anchored/AbstractAnchored.d.ts +18 -8
- package/types/src/anchored/AnchoredMap.d.ts +2 -0
- package/types/src/anchored/IAnchoredMap.d.ts +52 -4
- package/types/src/autoFill/AutoFill.d.ts +316 -32
- package/types/src/autoFill/IAutoFill.d.ts +232 -15
- package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +41 -40
- package/types/src/border/index.d.ts +1 -1
- package/types/src/calculation/Calculation.d.ts +740 -35
- package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
- package/types/src/calculation/FormulaText.d.ts +74 -0
- package/types/src/calculation/ICalculation.d.ts +318 -81
- package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
- package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
- package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
- package/types/src/calculation/TokenType.d.ts +9 -0
- package/types/src/calculation/Types.d.ts +83 -2
- package/types/src/calculation/_CloneBoundary.d.ts +80 -0
- package/types/src/calculation/compiler/ASTTypes.d.ts +58 -0
- package/types/src/calculation/compiler/CompilerUtils.d.ts +134 -12
- package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
- package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
- package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
- package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
- package/types/src/calculation/compiler/SRParser.d.ts +2 -1
- package/types/src/calculation/compiler/Types.d.ts +79 -9
- package/types/src/calculation/executor/CalcExecutor.d.ts +312 -33
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
- package/types/src/calculation/executor/CircularReference.d.ts +2 -0
- package/types/src/calculation/formula/Formula.d.ts +58 -21
- package/types/src/calculation/formula/FormulaBlock.d.ts +124 -21
- package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
- package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
- package/types/src/calculation/formula/LambdaValue.d.ts +15 -16
- package/types/src/calculation/formula/LazyValue.d.ts +96 -0
- package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
- package/types/src/calculation/formula/index.d.ts +1 -0
- package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
- package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
- package/types/src/calculation/grid/CalcGrid.d.ts +384 -158
- package/types/src/calculation/grid/CalcGridBackend.d.ts +450 -0
- package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
- package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
- package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
- package/types/src/calculation/grid/FormulaHost.d.ts +236 -0
- package/types/src/calculation/grid/ICalcGrid.d.ts +456 -143
- package/types/src/calculation/grid/_CalcRequest.d.ts +272 -0
- package/types/src/calculation/grid/index.d.ts +4 -0
- package/types/src/calculation/index.d.ts +2 -0
- package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
- package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
- package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
- package/types/src/calculation/spatial/index.d.ts +1 -0
- package/types/src/calculation/state/CalcInputs.d.ts +41 -0
- package/types/src/calculation/state/CalcNode.d.ts +141 -30
- package/types/src/calculation/state/CalcScope.d.ts +37 -0
- package/types/src/calculation/state/CalcState.d.ts +22 -1
- package/types/src/calculation/state/CalculationContext.d.ts +36 -2
- package/types/src/calculation/state/IContextContainer.d.ts +129 -27
- package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
- package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
- package/types/src/calculation/state/index.d.ts +1 -0
- package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
- package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
- package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
- package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
- package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
- package/types/src/calculation/symbol/index.d.ts +3 -2
- package/types/src/cell/ICell.d.ts +78 -23
- package/types/src/cell/ICellProtection.d.ts +50 -10
- package/types/src/cellRange/ICellRange.d.ts +329 -72
- package/types/src/cellRange/ICellRanges.d.ts +9 -7
- package/types/src/chart/Chart.d.ts +72 -2
- package/types/src/chart/ChartCollection.d.ts +26 -0
- package/types/src/chart/IChart.d.ts +162 -9
- package/types/src/chart/IChartCollection.d.ts +25 -0
- package/types/src/chart/_ChartXml.d.ts +70 -0
- package/types/src/chart/index.d.ts +1 -3
- package/types/src/collections/ArraysGrid.d.ts +1 -1
- package/types/src/collections/IGrid.d.ts +1 -1
- package/types/src/collections/ISparseGrid.d.ts +9 -0
- package/types/src/collections/ISpatialMap.d.ts +59 -21
- package/types/src/collections/ImmutableList.d.ts +28 -0
- package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
- package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
- package/types/src/collections/RepeatingList.d.ts +7 -0
- package/types/src/collections/ScalarGrid.d.ts +50 -0
- package/types/src/collections/SparseGrid.d.ts +1 -1
- package/types/src/collections/SpatialMap.d.ts +13 -21
- package/types/src/collections/Tuple.d.ts +128 -16
- package/types/src/collections/_GridUtils.d.ts +19 -6
- package/types/src/collections/_RangeSweep.d.ts +97 -0
- package/types/src/collections/_SpatialUtils.d.ts +20 -2
- package/types/src/collections/index.d.ts +1 -0
- package/types/src/comment/Comment.d.ts +159 -0
- package/types/src/comment/CommentCollection.d.ts +40 -0
- package/types/src/comment/IComment.d.ts +319 -48
- package/types/src/comment/ICommentCollection.d.ts +90 -0
- package/types/src/comment/_CommentUtils.d.ts +28 -0
- package/types/src/comment/index.d.ts +1 -0
- package/types/src/condition/AnchoredConditional.d.ts +76 -17
- package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +8 -7
- package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -1
- package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +3 -6
- package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +1 -1
- package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +7 -0
- package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +9 -0
- package/types/src/condition/Condition.d.ts +16 -0
- package/types/src/condition/ICondition.d.ts +86 -33
- package/types/src/condition/_ConditionFormula.d.ts +152 -0
- package/types/src/condition/_ConditionUtils.d.ts +73 -10
- package/types/src/conditionalFormat/ConditionalFormat.d.ts +21 -10
- package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
- package/types/src/conditionalFormat/IConditionalFormat.d.ts +5 -3
- package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
- package/types/src/dataValidation/DataValidation.d.ts +50 -3
- package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
- package/types/src/dataValidation/IDataValidation.d.ts +119 -30
- package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
- package/types/src/date/DateUtils.d.ts +20 -0
- package/types/src/date/_DateUtils.d.ts +91 -7
- package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
- package/types/src/externalBook/ExternalBookName.d.ts +96 -0
- package/types/src/externalBook/IExternalBook.d.ts +170 -18
- package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
- package/types/src/externalBook/index.d.ts +1 -0
- package/types/src/fill/IStroke.d.ts +1 -1
- package/types/src/filter/IFilter.d.ts +29 -4
- package/types/src/font/IFont.d.ts +17 -0
- package/types/src/history/IHistory.d.ts +3 -2
- package/types/src/i18n/LanguagePack.d.ts +12 -4
- package/types/src/index.d.ts +3 -0
- package/types/src/io/AbstractBackingStore.d.ts +24 -1
- package/types/src/io/ArrayBackingStore.d.ts +1 -1
- package/types/src/io/EmbeddedPart.d.ts +20 -0
- package/types/src/io/IEmbeddedPart.d.ts +63 -0
- package/types/src/io/IWorkbookIO.d.ts +185 -18
- package/types/src/io/WorkbookIO.d.ts +9 -0
- package/types/src/io/WorkbookOrigin.d.ts +20 -11
- package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
- package/types/src/io/_XmlFragment.d.ts +49 -0
- package/types/src/io/index.d.ts +1 -0
- package/types/src/lib/file/file.browser.d.ts +19 -5
- package/types/src/lib/file/file.node.d.ts +5 -0
- package/types/src/lib/utils/_Utils.d.ts +11 -0
- package/types/src/lib/utils/utils.browser.d.ts +9 -3
- package/types/src/license/license-key.d.ts +27 -0
- package/types/src/listener/IListener.d.ts +12 -7
- package/types/src/listener/ListenerEmitter.d.ts +46 -5
- package/types/src/model/AbstractModel.d.ts +14 -5
- package/types/src/movable/Control.d.ts +57 -0
- package/types/src/movable/IControl.d.ts +84 -0
- package/types/src/movable/IMovable.d.ts +23 -1
- package/types/src/movable/IMovableCollection.d.ts +2 -0
- package/types/src/movable/Movable.d.ts +4 -6
- package/types/src/movable/MovableCollection.d.ts +7 -7
- package/types/src/movable/index.d.ts +4 -0
- package/types/src/named/AbstractNamed.d.ts +1 -1
- package/types/src/named/INamed.d.ts +4 -1
- package/types/src/named/INamedCollection.d.ts +26 -0
- package/types/src/named/NamedCollection.d.ts +16 -15
- package/types/src/numFmt/BuiltInFormats.d.ts +15 -7
- package/types/src/numFmt/IFormatEngine.d.ts +2 -0
- package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
- package/types/src/person/IPerson.d.ts +99 -0
- package/types/src/person/IPersonCollection.d.ts +51 -0
- package/types/src/person/Person.d.ts +32 -0
- package/types/src/person/PersonCollection.d.ts +49 -0
- package/types/src/person/index.d.ts +3 -0
- package/types/src/picture/IPicture.d.ts +2 -0
- package/types/src/picture/Picture.d.ts +2 -0
- package/types/src/pivot/IPivotTable.d.ts +107 -0
- package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
- package/types/src/pivot/PivotTable.d.ts +57 -0
- package/types/src/pivot/PivotTableCollection.d.ts +25 -0
- package/types/src/pivot/index.d.ts +6 -0
- package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
- package/types/src/primitives/Criteria.d.ts +1 -1
- package/types/src/primitives/LambdaBrand.d.ts +21 -0
- package/types/src/primitives/PrimitiveUtils.d.ts +56 -19
- package/types/src/primitives/Range.d.ts +102 -24
- package/types/src/primitives/RangeStats.d.ts +24 -1
- package/types/src/primitives/ReferenceRange.d.ts +42 -0
- package/types/src/primitives/Runtime.d.ts +15 -2
- package/types/src/primitives/stats/FrequencyStats.d.ts +9 -0
- package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
- package/types/src/primitives/stats/SortedNumbers.d.ts +2 -0
- package/types/src/primitives/stats/index.d.ts +1 -0
- package/types/src/print/IPrint.d.ts +0 -22
- package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
- package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
- package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
- package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
- package/types/src/protection/DefaultProtection.d.ts +12 -1
- package/types/src/protection/IProtection.d.ts +36 -2
- package/types/src/reference/ReferenceUtils.d.ts +80 -0
- package/types/src/reference/index.d.ts +2 -0
- package/types/src/resource/IResource.d.ts +21 -1
- package/types/src/resource/IResourceCollection.d.ts +9 -1
- package/types/src/resource/ResourceCollection.d.ts +6 -6
- package/types/src/scripting/FunctionCollection.d.ts +41 -11
- package/types/src/scripting/IFunctionCollection.d.ts +41 -0
- package/types/src/scripting/IModule.d.ts +25 -0
- package/types/src/scripting/IModuleCollection.d.ts +17 -0
- package/types/src/scripting/IScript.d.ts +18 -0
- package/types/src/scripting/Module.d.ts +34 -6
- package/types/src/scripting/ModuleCollection.d.ts +17 -12
- package/types/src/scripting/Runtime.d.ts +15 -0
- package/types/src/scripting/Scripts.d.ts +2 -0
- package/types/src/scripting/TypedFunction.d.ts +151 -18
- package/types/src/scripting/_FunctionIndex.d.ts +5 -0
- package/types/src/scripting/_ModuleUtils.d.ts +11 -1
- package/types/src/scripting/_ScriptUtils.d.ts +3 -0
- package/types/src/scripting/declarations.browser.d.ts +10 -0
- package/types/src/scripting/declarations.d.ts +49 -0
- package/types/src/scripting/declarations.node.d.ts +9 -0
- package/types/src/scripting/index.d.ts +3 -0
- package/types/src/selection/IRangeSelection.d.ts +9 -4
- package/types/src/selection/RangeSelection.d.ts +2 -0
- package/types/src/shape/IShape.d.ts +41 -3
- package/types/src/shape/Shape.d.ts +10 -0
- package/types/src/shape/_ShapeXml.d.ts +28 -0
- package/types/src/sheet/CellRegion.d.ts +6 -0
- package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
- package/types/src/sheet/ISheet.d.ts +224 -41
- package/types/src/sheet/ISheetCollection.d.ts +2 -5
- package/types/src/sheet/NamedCellRange.d.ts +16 -7
- package/types/src/sheet/Sheet.d.ts +749 -114
- package/types/src/sheet/SheetCell.d.ts +81 -21
- package/types/src/sheet/SheetCollection.d.ts +19 -8
- package/types/src/sheet/SheetRange.d.ts +62 -14
- package/types/src/sheet/SheetRanges.d.ts +4 -6
- package/types/src/sheet/_CellBuffer.d.ts +214 -0
- package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
- package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
- package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
- package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
- package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
- package/types/src/sheet/_SheetAutoFitUtils.d.ts +2 -2
- package/types/src/sheet/_SheetEvents.d.ts +43 -0
- package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
- package/types/src/sheet/_SheetIntents.d.ts +250 -0
- package/types/src/sheet/_SheetMutations.d.ts +179 -59
- package/types/src/sheet/_SheetStateReader.d.ts +16 -10
- package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
- package/types/src/sheet/_SheetUtils.d.ts +2 -18
- package/types/src/sheet/_WatchAnchor.d.ts +93 -0
- package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
- package/types/src/sheet/spatial/index.d.ts +1 -0
- package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
- package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
- package/types/src/sheet/style/_Resolvers.d.ts +5 -3
- package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
- package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
- package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
- package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
- package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
- package/types/src/sheetView/ISheetView.d.ts +45 -1
- package/types/src/sheetView/SheetView.d.ts +11 -0
- package/types/src/slicer/ISlicer.d.ts +2 -0
- package/types/src/slicer/Slicer.d.ts +2 -0
- package/types/src/sort/ISort.d.ts +2 -0
- package/types/src/string/IStringCollection.d.ts +5 -0
- package/types/src/string/StringCollection.d.ts +6 -6
- package/types/src/style/INamedStyleCollection.d.ts +72 -0
- package/types/src/style/IStyle.d.ts +30 -10
- package/types/src/style/IStyleCollection.d.ts +63 -42
- package/types/src/style/ITableStyleCollection.d.ts +89 -0
- package/types/src/style/NamedStyleCollection.d.ts +39 -0
- package/types/src/style/StyleCollection.d.ts +41 -5
- package/types/src/style/TableStyleCollection.d.ts +49 -0
- package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
- package/types/src/style/index.d.ts +4 -0
- package/types/src/table/AnchoredTable.d.ts +644 -68
- package/types/src/table/AutoTable.d.ts +5 -5
- package/types/src/table/ITable.d.ts +228 -30
- package/types/src/table/ITableCollection.d.ts +2 -0
- package/types/src/table/TableCollection.d.ts +19 -8
- package/types/src/table/_FilterField.d.ts +7 -5
- package/types/src/table/_NamedTable.d.ts +17 -1
- package/types/src/table/_NamedTableSource.d.ts +1 -0
- package/types/src/table/_SortField.d.ts +2 -0
- package/types/src/table/_TableColumn.d.ts +13 -2
- package/types/src/table/_TableMessages.d.ts +1 -0
- package/types/src/table/_TableUtils.d.ts +40 -0
- package/types/src/text/Bullet.d.ts +4 -0
- package/types/src/text/ITextFrame.d.ts +25 -1
- package/types/src/text/TextBoxAlignment.d.ts +15 -6
- package/types/src/text/TextFrame.d.ts +4 -0
- package/types/src/text/TextLine.d.ts +4 -0
- package/types/src/text/TextParagraph.d.ts +4 -0
- package/types/src/text/TextRun.d.ts +9 -0
- package/types/src/text/TextStacked.d.ts +83 -0
- package/types/src/text/index.d.ts +1 -0
- package/types/src/theme/ITheme.d.ts +2 -0
- package/types/src/theme/IThemeCollection.d.ts +2 -0
- package/types/src/theme/ThemeCollection.d.ts +8 -7
- package/types/src/transaction/ITransaction.d.ts +238 -36
- package/types/src/transaction/Transaction.d.ts +99 -11
- package/types/src/type/AbstractCollection.d.ts +101 -0
- package/types/src/type/ICollection.d.ts +117 -0
- package/types/src/type/ITypes.d.ts +9 -7
- package/types/src/type/index.d.ts +1 -0
- package/types/src/utils/_CSSUtils.d.ts +3 -3
- package/types/src/workbook/IWorkbook.d.ts +171 -40
- package/types/src/workbook/Workbook.d.ts +103 -7
- package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
- package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
- package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
- package/types/src/workbookView/IWorkbookView.d.ts +12 -0
- package/types/src/workbookView/WorkbookView.d.ts +5 -0
- package/browser/cjs/BatsV2UUraVDCRXm.cjs +0 -57
- package/browser/cjs/CUz53T65cRGQRgvv.cjs +0 -33
- package/browser/cjs/DU0kYUtdFa3jK-im.cjs +0 -1
- package/browser/cjs/Dv4yIPLV98M5zLHa.cjs +0 -1
- package/browser/esm/6JKSOvc5czaQB2Bj.mjs +0 -109
- package/browser/esm/BtuJ9AGzeURtAsGo.mjs +0 -51241
- package/browser/esm/DGU6sM25u0EWCKl1.mjs +0 -824
- package/browser/esm/f2G3QRgEbvFJcoa2.mjs +0 -4436
- package/node/esm/-pxdn3M3tc6PLHs7.mjs +0 -114
- package/node/esm/0n5bslM9jhO1JnI2.mjs +0 -843
- package/types/src/cellRange/_GraphNode.d.ts +0 -38
- package/types/src/dataValidation/_Utils.d.ts +0 -10
- package/types/src/sheet/listener/RangesListener.d.ts +0 -32
- package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
- package/types/src/sheet/listener/index.d.ts +0 -3
|
@@ -150,7 +150,7 @@ isDirect: boolean, errors?: 'reject' | 'accept' | null): IRange | any[][] | Form
|
|
|
150
150
|
* evaluated argument; see `isDirectArg` in `TypedFunction`.
|
|
151
151
|
*
|
|
152
152
|
* Two things it is NOT, both measured (`probe-direct-vs-literal.ps1`, pinned in
|
|
153
|
-
* `
|
|
153
|
+
* `__tests__/functions/coercion/DIRECT-VS-MEMBER.json`):
|
|
154
154
|
*
|
|
155
155
|
* - **Not literalness.** `{1,TRUE}` and `A1:A2` behave IDENTICALLY (members of both are filtered),
|
|
156
156
|
* and the COMPUTED `A2>0` behaves like a typed `TRUE`. A container being a literal or a
|
|
@@ -171,28 +171,56 @@ export declare function addCoercedValue(context: IFormulaContext, coercedArr: Fi
|
|
|
171
171
|
allowError: boolean, flatten: boolean, // indicates we should flatten
|
|
172
172
|
errors?: 'reject' | 'accept' | null, // effective error policy (TypedFunction resolves the default)
|
|
173
173
|
noMemberFilter?: boolean): FormulaError.Known | void;
|
|
174
|
+
/**
|
|
175
|
+
* The depth-0 half of {@link addCoercedValue} for a SCALAR slot: `value` is already a single
|
|
176
|
+
* value — a typed or computed scalar, a blank, an error, rich data, or the member a one-cell
|
|
177
|
+
* reference was dereferenced to — never a container or coords. Same rules, same order, same
|
|
178
|
+
* verdicts as the general path, which still serves everything else; this exists so the common
|
|
179
|
+
* call (a number at a number slot) pays for no container questions.
|
|
180
|
+
*
|
|
181
|
+
* `isDirect` is the argument's own directness (a dereferenced cell is NOT direct): it gates the
|
|
182
|
+
* quoted-boolean parse, and nothing else — a scalar slot has no members, so the dereferenced
|
|
183
|
+
* value coerces with the direct rules exactly as it does in the general path (`ABS(A1)` is 1 for
|
|
184
|
+
* A1=TRUE).
|
|
185
|
+
*/
|
|
186
|
+
export declare function addCoercedScalar(context: IFormulaContext, coercedArr: FixedPackedArray, value: any, isDirect: boolean, scalarType: ScalarType | null, allowError: boolean, errors: 'reject' | 'accept' | null): FormulaError.Known | void;
|
|
174
187
|
/**
|
|
175
188
|
* Minimal validation used from the return value of functions.
|
|
176
189
|
*/
|
|
177
190
|
/**
|
|
178
|
-
* Makes a raw JS double look like an Excel one
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
* * a magnitude below the smallest NORMAL double flushes to ZERO, which also folds -0 to 0.
|
|
188
|
-
* `1E-300*2.224E-8` is 0 while `1E-300*2.226E-8` survives, and the flush lands before the next
|
|
189
|
-
* operator reads it — `=1/(1E-300*1E-100)` is #DIV/0!, not a huge number. The API agrees:
|
|
190
|
-
* writing `Double.Epsilon` reads back 0.
|
|
191
|
-
*
|
|
192
|
-
* Excel applies this at EVERY boundary, so SheetXL does too — `minCoerce` for a calculated
|
|
193
|
-
* result, and the cell-write path for a value handed in through the API.
|
|
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}.
|
|
194
200
|
*/
|
|
195
201
|
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
|
+
export declare function flushSubnormal(value: number): number;
|
|
196
224
|
export declare function minCoerce(value: any, context?: IFormulaContext | null, type?: string): any;
|
|
197
225
|
/**
|
|
198
226
|
* Loads a (possibly nested) array literal into a sparse grid and returns the pieces a `Range`
|
|
@@ -219,8 +247,12 @@ export interface FixedPackedArray<T = any> {
|
|
|
219
247
|
/**
|
|
220
248
|
* V8 Optimization
|
|
221
249
|
*
|
|
222
|
-
*
|
|
223
|
-
*
|
|
250
|
+
* Builds an array that V8 keeps in `PACKED_ELEMENTS`, every slot set to `value`.
|
|
251
|
+
*
|
|
252
|
+
* A bare `new Array(length)` is holey, and each read from a holey array pays a
|
|
253
|
+
* hole check (~35% on a linear scan). Both branches here produce the same map;
|
|
254
|
+
* they differ only in how fast they build, and the threshold is the point where
|
|
255
|
+
* the per-call cost of `fill` stops dominating the per-element cost of `push`.
|
|
224
256
|
*
|
|
225
257
|
* This should be only used for reusable arrays where they are long lived
|
|
226
258
|
* and need to be fast (and not resized (much)).
|
|
@@ -229,6 +261,11 @@ export declare function createPackedArray<T = any>(length: number, value?: T): T
|
|
|
229
261
|
/**
|
|
230
262
|
* Create a packed array but with undefined values.
|
|
231
263
|
*
|
|
264
|
+
* `undefined` here is a real element in every slot, not a hole; the array is
|
|
265
|
+
* packed exactly as {@link createPackedArray} is. Kept separate rather than
|
|
266
|
+
* delegating because passing `undefined` as an argument would take the
|
|
267
|
+
* `value=null` default.
|
|
268
|
+
*
|
|
232
269
|
* @see createPackedArray
|
|
233
270
|
*/
|
|
234
271
|
export declare function createEmptyPackedArray<T = any>(length: number): T[];
|
|
@@ -18,21 +18,37 @@ 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
|
-
|
|
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
|
+
protected _absentValue: Scalar;
|
|
45
|
+
constructor(runtime: IRuntime, values: ISparseGrid<Scalar>, coords: IRange.Coords | null, optionsIterator?: IRange.IteratorOptions | null, isLiteral?: boolean, isDirectScalar?: boolean, absentValue?: Scalar);
|
|
22
46
|
/** @inheritdoc IRange.argsort */
|
|
23
47
|
argsort(keyRanges?: IRange | IRange[], orders?: number | number[], axis?: IRange.Axis): number[];
|
|
24
48
|
/** @inheritdoc IRange.uniqueIndices */
|
|
25
49
|
uniqueIndices(axis?: IRange.Axis, exactlyOnce?: boolean): number[];
|
|
26
50
|
/** @inheritdoc IRange.broadcast */
|
|
27
51
|
broadcast<TS extends Scalar = T>(other: IRange | TS, callbackFn: (a: TS, b: TS, coords: IRange.CellCoords, range: IRange<T>) => TS, options?: IRange.BroadcastOptions): this;
|
|
28
|
-
/**
|
|
29
|
-
* {@link broadcast} against a scalar operand: this range's OWN entries, with every empty position
|
|
30
|
-
* written as a run of one computed value. See the call site for why the general path cannot.
|
|
31
|
-
*
|
|
32
|
-
* @remarks
|
|
33
|
-
* Reached only for a coord-blind callback, so the single empty call carries the origin coords.
|
|
34
|
-
*/
|
|
35
|
-
private _broadcastScalar;
|
|
36
52
|
/** @inheritdoc IRange.choose */
|
|
37
53
|
choose<TS extends Scalar = T>(from: (IRange<TS> | TS)[], selectFn: (value: TS, coords: IRange.CellCoords, range: IRange<T>) => MaybeError<number>, options?: IRange.ValuesOptions): this;
|
|
38
54
|
/** @inheritdoc IRange.clear */
|
|
@@ -55,12 +71,34 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
55
71
|
fill(value: Scalar, coords?: Partial<IRange.Coords>): this;
|
|
56
72
|
/** @inheritdoc IRange.fillEmpty */
|
|
57
73
|
fillEmpty(value: Scalar, coords?: Partial<IRange.Coords>): this;
|
|
74
|
+
/**
|
|
75
|
+
* Writes `value` at every absent position of `absCoords` as runs — the stored form of
|
|
76
|
+
* {@link fillEmpty}, for the case the absent value cannot express (a partial fill), and of
|
|
77
|
+
* {@link _materializeEmpty}.
|
|
78
|
+
* The result reads its grid alone (no empty value).
|
|
79
|
+
*/
|
|
80
|
+
protected _fillAbsent(value: Scalar, absCoords: IRange.Coords): this;
|
|
81
|
+
/**
|
|
82
|
+
* This range with its empty value WRITTEN — every absent cell stored as runs of it — for a
|
|
83
|
+
* reader that goes to the grid rather than through the range: the stats walk, the calc grid's
|
|
84
|
+
* write of a result, a sheet write. `this` when there is nothing to write.
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
_materializeEmpty(): this;
|
|
58
88
|
/** @inheritdoc IRange.filter */
|
|
59
89
|
filter<TS extends Scalar = T>(callbackFn: (value: TS, coords: IRange.CellCoords, range: IRange<T>) => boolean, options?: IRange.IteratorOptions): this;
|
|
90
|
+
/** @inheritdoc IRange.firstError */
|
|
91
|
+
firstError(): FormulaError.Known | null;
|
|
60
92
|
/** @inheritdoc IRange.flatten */
|
|
61
93
|
flatten(options?: IRange.IteratorOptions): this;
|
|
62
94
|
/** @inheritdoc IRange.getValuesFlat */
|
|
63
95
|
getValuesFlat<TS extends Scalar = T>(options?: IRange.IteratorOptions): TS[];
|
|
96
|
+
/** @inheritdoc IRange.indexOf */
|
|
97
|
+
indexOf(value: Scalar, options?: IRange.IndexOfOptions): number;
|
|
98
|
+
/**
|
|
99
|
+
* The row-major walk behind {@link indexOf}, for the reads the run index cannot answer.
|
|
100
|
+
*/
|
|
101
|
+
protected _indexOfScan(value: Scalar, reverse: boolean): number;
|
|
64
102
|
/** @inheritdoc IRange.forEach */
|
|
65
103
|
forEach<TS extends Scalar = T, B = any>(callbackFn: (value: TS, coords: IRange.CellCoords, range: IRange<T>) => {
|
|
66
104
|
break: B;
|
|
@@ -76,6 +114,8 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
76
114
|
};
|
|
77
115
|
/** @inheritdoc IRange.getStats */
|
|
78
116
|
getStats(options?: IRange.IteratorOptions): IRangeStats;
|
|
117
|
+
/** The stats without the typed-read fault — what `hasError()` and the fault itself read. */
|
|
118
|
+
protected _getStats(options?: IRange.IteratorOptions): IRangeStats;
|
|
79
119
|
/** @inheritdoc IRange.hasError */
|
|
80
120
|
hasError(): boolean;
|
|
81
121
|
/** {@inheritDoc IRange.getType} */
|
|
@@ -85,7 +125,15 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
85
125
|
/** @inheritdoc IRange.getValues */
|
|
86
126
|
getValues<TS extends Scalar = T>(options?: IRange.GetValuesOptions): TS[][];
|
|
87
127
|
/** @inheritdoc IRange.map */
|
|
88
|
-
map<TS extends Scalar = T>(callbackFn: (value: TS, coords: IRange.CellCoords, range: IRange<T>) => TS, options?: IRange.
|
|
128
|
+
map<TS extends Scalar = T>(callbackFn: (value: TS, coords: IRange.CellCoords, range: IRange<T>) => TS, options?: IRange.MapOptions): this;
|
|
129
|
+
/**
|
|
130
|
+
* {@link map} over what the grid stores: one call per stored member, one per run holding one
|
|
131
|
+
* value, and under `once` one for the absent region — whose answer is the result's empty value,
|
|
132
|
+
* so the next consumer finds the blank region again (CALC-PERFORMANCE §5). A member the
|
|
133
|
+
* callback empties (`null`) and a blank region it answers cannot share the one absent state,
|
|
134
|
+
* so in that one case the region's answer is written out as runs.
|
|
135
|
+
*/
|
|
136
|
+
private _mapRuns;
|
|
89
137
|
/** @inheritdoc IRange.mask */
|
|
90
138
|
mask<TS extends Scalar = T>(conditions: IRange | TS, isTrues?: IRange | TS, options?: IRange.MaskOptions): this;
|
|
91
139
|
/** @inheritdoc IRange.alignValues */
|
|
@@ -135,17 +183,25 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
135
183
|
/** @inheritdoc IRange.values */
|
|
136
184
|
values<T extends Scalar = Scalar>(options?: IRange.IteratorOptions): IterableIterator<T>;
|
|
137
185
|
/** @inheritdoc IRange.zip */
|
|
138
|
-
zip(others: (IRange | Scalar)[], callbackFn: (values: Scalar[], coords: IRange.CellCoords, range: IRange<T>) => Scalar, options?: IRange.
|
|
139
|
-
/**
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
186
|
+
zip(others: (IRange | Scalar)[], callbackFn: (values: Scalar[], coords: IRange.CellCoords, range: IRange<T>) => Scalar, options?: IRange.ZipOptions): this;
|
|
187
|
+
/**
|
|
188
|
+
* The array-constant flag (`_isLiteral`), for the ENGINE only — the coercion alias that makes
|
|
189
|
+
* a typed `{…}` direct for a slot's coercion. Excel's runtime has no literal kind (a typed and
|
|
190
|
+
* a computed array are both `Array`), so a function body never reads it: bodies ask
|
|
191
|
+
* `FormulaContext.getArgs().getKindAt`, and the reference-vs-array question is
|
|
192
|
+
* `isIReferenceRange`.
|
|
193
|
+
* @internal
|
|
194
|
+
*/
|
|
195
|
+
_isLiteralArray(): boolean;
|
|
196
|
+
/**
|
|
197
|
+
* The boxed-bare-scalar flag (`_isDirectScalar`), for the ENGINE only — the box is call-local
|
|
198
|
+
* plumbing (born at a slot, unboxed at the call exit) and a function body never reads it:
|
|
199
|
+
* bodies ask `FormulaContext.getArgs().getKindAt`.
|
|
200
|
+
* @internal
|
|
201
|
+
*/
|
|
202
|
+
_isDirectScalarBox(): boolean;
|
|
145
203
|
/** {@inheritDoc IRange.isEmpty} */
|
|
146
204
|
isEmpty(): boolean;
|
|
147
|
-
/** {@inheritDoc IRange.isVector} */
|
|
148
|
-
isVector(): boolean;
|
|
149
205
|
/** @inheritdoc IRange.size */
|
|
150
206
|
get size(): number;
|
|
151
207
|
/** {@inheritDoc IRange[Symbol.iterator]} */
|
|
@@ -159,6 +215,17 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
159
215
|
protected _entries(options?: IRange.IteratorOptions & {
|
|
160
216
|
reuseResult?: boolean;
|
|
161
217
|
}): IGrid.EntryIterator<Scalar>;
|
|
218
|
+
/**
|
|
219
|
+
* The read `_entries` applies to one member under `options` - the typed coercion, its error
|
|
220
|
+
* policy, what an absent cell reads as - as a function, so a walk over runs (`RunHead`) reads a
|
|
221
|
+
* member exactly as the entry iterator would. Only a TYPED read (`options.type`) coerces; a raw
|
|
222
|
+
* read hands the member back, and an absent one (`undefined` in) as the empty value.
|
|
223
|
+
*
|
|
224
|
+
* @returns The value the member reads as, or `undefined` when the read DROPS it: a typed read
|
|
225
|
+
* filters what it cannot coerce - the declaration that the type is strict, so an aggregate
|
|
226
|
+
* ignores stray text the way Excel does - unless `includeEmpty` keeps it as an empty.
|
|
227
|
+
*/
|
|
228
|
+
protected _memberReader(options: IRange.IteratorOptions | undefined, includeEmpty: boolean): (fromValue: Scalar | undefined) => Scalar | undefined;
|
|
162
229
|
/**
|
|
163
230
|
* Finds an absolute intersection given a relative coord.
|
|
164
231
|
*/
|
|
@@ -192,11 +259,22 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
192
259
|
*/
|
|
193
260
|
protected _untyped(): this;
|
|
194
261
|
protected _createBuilder(axis?: IRange.Axis): Tuple.IBuilder;
|
|
195
|
-
|
|
196
|
-
|
|
262
|
+
/**
|
|
263
|
+
* Writes `region` into `values`: its clears first, unless `fresh` (a grid that stores nothing
|
|
264
|
+
* there), then its tuples.
|
|
265
|
+
*/
|
|
266
|
+
protected _applyRegion(values: ISparseGrid<Scalar>, region: Tuple.Region | null, fresh: boolean): void;
|
|
267
|
+
/**
|
|
268
|
+
* @param absentValue What the result's absent cells read as. Defaults to this range's own: the
|
|
269
|
+
* result is this grid written into, so what it lacked it still lacks. A caller whose writes
|
|
270
|
+
* changed that says so (`map`; `_fillAbsent`, which wrote it out).
|
|
271
|
+
*/
|
|
272
|
+
protected _cloneFromBuilder(builder: Tuple.IBuilder | undefined, deletes?: ISpatialMap.IConflatingEntries | null, fresh?: boolean, absentValue?: Scalar): this;
|
|
273
|
+
/** {@link _cloneFromBuilder} from a built region, whose clears are applied with the deletes. */
|
|
274
|
+
protected _cloneFromRegion(region: Tuple.Region | null, deletes?: ISpatialMap.IConflatingEntries | null, fresh?: boolean, absentValue?: Scalar): this;
|
|
197
275
|
protected _coerceValue<TS extends Scalar>(fromValue: Scalar, toType: ScalarType, options?: IRange.ValueOptions, fromType?: ScalarType): TS;
|
|
198
276
|
protected _mergeIterators<T = Scalar>(that: Range, callbackFn?: (a: T, b: T, coords: IRange.CellCoords, range: IRange) => T, options?: IRange.IteratorOptions): Tuple.IBuilder;
|
|
199
|
-
protected _newRange(values: ISparseGrid<Scalar>, coords: IRange.Coords | null, optionsIterator?: IRange.IteratorOptions | null, isLiteral?: boolean, isDirectScalar?: boolean): this;
|
|
277
|
+
protected _newRange(values: ISparseGrid<Scalar>, coords: IRange.Coords | null, optionsIterator?: IRange.IteratorOptions | null, isLiteral?: boolean, isDirectScalar?: boolean, absentValue?: Scalar): this;
|
|
200
278
|
/** @inheritdoc IRange.isIRange */
|
|
201
279
|
get isIRange(): true;
|
|
202
280
|
}
|
|
@@ -217,7 +295,7 @@ export declare class Range<T extends Scalar = Scalar> implements IRange<T> {
|
|
|
217
295
|
export declare class _VisibleScopedRange extends Range {
|
|
218
296
|
protected _visibleCoords: readonly IRange.Coords[];
|
|
219
297
|
constructor(runtime: IRuntime, values: ISparseGrid<Scalar>, coords: IRange.Coords, visibleCoords: readonly IRange.Coords[]);
|
|
220
|
-
/**
|
|
221
|
-
|
|
298
|
+
/** The rescoped stats; `getStats` (the typed-read fault) is inherited and reads through here. */
|
|
299
|
+
protected _getStats(options?: IRange.IteratorOptions): IRangeStats;
|
|
222
300
|
}
|
|
223
301
|
//# sourceMappingURL=Range.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ScalarType, IRange, IRuntime, IRangeStats, Scalar } from '@sheetxl/primitives';
|
|
2
2
|
import { ISparseGrid } from '../collections';
|
|
3
|
-
import { SortedNumbers, AggSegmentCache } from './stats';
|
|
3
|
+
import { SortedNumbers, AggSegmentCache, AggResults } from './stats';
|
|
4
4
|
export declare class RangeStats implements IRangeStats {
|
|
5
5
|
protected _runtime: IRuntime;
|
|
6
6
|
protected _grid: ISparseGrid<Scalar>;
|
|
@@ -12,18 +12,41 @@ export declare class RangeStats implements IRangeStats {
|
|
|
12
12
|
protected _sortedNumbers: SortedNumbers | undefined;
|
|
13
13
|
protected _aggregates: IRangeStats.Aggregates | undefined;
|
|
14
14
|
protected _typedCounts: Readonly<Record<ScalarType, number>> | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* The raw results of the ONE walk this instance has done, whichever consumer asked first.
|
|
17
|
+
* `count`, `typed` and the numeric aggregates are all recorded by the same pass and none of
|
|
18
|
+
* them depends on `onError` (the segment cache's own contract — only `coerce` changes content),
|
|
19
|
+
* so the typed counts a reject scan asks for and the aggregates the body then asks for come
|
|
20
|
+
* from a single scan instead of two. A partial-zone range (a `SUM($K$51:K#)` running total)
|
|
21
|
+
* never caches at the segment level, so without this every such call scanned twice.
|
|
22
|
+
* Two-state: `undefined` = not walked yet, `null` = walked, the grid was empty.
|
|
23
|
+
*/
|
|
24
|
+
protected _raw: AggResults | null | undefined;
|
|
15
25
|
protected _frequencies: Readonly<IRangeStats.IFrequency> | undefined;
|
|
16
26
|
protected _ranked: readonly Scalar[] | undefined;
|
|
17
27
|
protected _lastNumber: number | null | undefined;
|
|
18
28
|
constructor(runtime: IRuntime, grid: ISparseGrid<Scalar>, range: IRange | null, localCoords?: readonly (IRange.Coords | null)[], options?: IRange.IteratorOptions, segmentCache?: AggSegmentCache, zoneSizeMinor?: number);
|
|
29
|
+
/**
|
|
30
|
+
* The values grid this instance measures. Its owner re-points the cache when the map is
|
|
31
|
+
* replaced, which a clone of the map is.
|
|
32
|
+
*/
|
|
33
|
+
getGrid(): ISparseGrid<Scalar>;
|
|
19
34
|
clone(grid?: ISparseGrid<Scalar>, localCoords?: readonly (IRange.Coords | null)[]): this;
|
|
20
35
|
clear(): void;
|
|
21
36
|
/** Lazily resolved, then held for this instance's lifetime like the other per-instance results. */
|
|
22
37
|
protected _getLastNumber(): number | undefined;
|
|
23
38
|
toLocalCoords(coords: IRange.Coords | readonly IRange.Coords[], iteratorOptions?: IRange.IteratorOptions): IRangeStats;
|
|
39
|
+
/** @inheritdoc IRangeStats.getCoords */
|
|
40
|
+
getCoords(): IRange.Coords | null;
|
|
24
41
|
/** @inheritdoc IRangeStats.getSize */
|
|
25
42
|
getSize(): number;
|
|
26
43
|
/** @inheritdoc IRangeStats.getCount */
|
|
44
|
+
/**
|
|
45
|
+
* The instance's one walk (see `_raw`), taken with errors as population — the contract of
|
|
46
|
+
* every consumer that counts. Reused by the aggregate path when the instance's own error
|
|
47
|
+
* policy has no side effect to replay.
|
|
48
|
+
*/
|
|
49
|
+
protected _walk(): AggResults | null;
|
|
27
50
|
getCount(): number;
|
|
28
51
|
/** @inheritdoc IRangeStats.getAggregates */
|
|
29
52
|
getAggregates(options?: IRange.IteratorOptions): Readonly<IRangeStats.Aggregates>;
|
|
@@ -1,14 +1,56 @@
|
|
|
1
1
|
import { Scalar, ScalarType, IReferenceRange, IRange, IRuntime } from '@sheetxl/primitives';
|
|
2
2
|
import { ISparseGrid } from '../collections';
|
|
3
3
|
import { Range } from './Range';
|
|
4
|
+
/**
|
|
5
|
+
* Answers "is there an error value within these coords" for the grid a reference reads, from an
|
|
6
|
+
* index rather than a scan. The calculation grid maintains one at every write; a reference built
|
|
7
|
+
* over any other grid has none and scans.
|
|
8
|
+
*/
|
|
9
|
+
export interface ReferenceErrorIndex {
|
|
10
|
+
hasErrorIn(coords: IRange.Coords): boolean;
|
|
11
|
+
}
|
|
12
|
+
/** @internal */
|
|
13
|
+
export declare function _setReferenceErrorIndexAssert(enabled: boolean): void;
|
|
4
14
|
export declare class ReferenceRange extends Range implements IReferenceRange {
|
|
5
15
|
protected _getEntireCoords: () => IRange.Coords;
|
|
6
16
|
protected _resolveScope: (scope: string) => string | undefined;
|
|
17
|
+
/** The grid's error index, when the reference reads a grid that keeps one. */
|
|
18
|
+
protected _errorIndex: ReferenceErrorIndex | null;
|
|
19
|
+
/**
|
|
20
|
+
* Told when a body reads this reference's POSITION (`getCoords`). A reference's values are a
|
|
21
|
+
* property of what it points at; its address is a property of which cell is asking, so a
|
|
22
|
+
* formula that reads it (`ROW(A13)`, `CELL("address",A13)`) cannot share its answer with another
|
|
23
|
+
* cell — see `CalcScope.perCellRead`. Set by the context that builds the reference; a view
|
|
24
|
+
* (`slice`, `toType`) carries it.
|
|
25
|
+
*/
|
|
26
|
+
protected _onCoordsRead: (() => void) | null;
|
|
7
27
|
constructor(runtime: IRuntime, values: ISparseGrid<Scalar>, coords: IRange.Coords, options: IRange.ValueOptions | null | undefined, getEntireCoords: (() => IRange.Coords) | undefined, resolveScope: (scope: string) => string | undefined);
|
|
8
28
|
/** @inheritdoc IReferenceRange.getCoords */
|
|
9
29
|
getCoords(): Readonly<IRange.Coords>;
|
|
10
30
|
/** @inheritdoc IReferenceRange.isIReferenceRange */
|
|
11
31
|
get isIReferenceRange(): true;
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
* Attaches the error index of the grid this reference reads. Set by the context that builds
|
|
35
|
+
* the reference; a typed view (`toType`) carries it.
|
|
36
|
+
*/
|
|
37
|
+
_setErrorIndex(index: ReferenceErrorIndex | null): void;
|
|
38
|
+
/**
|
|
39
|
+
* @internal
|
|
40
|
+
* Attaches the hook a position read reports to — see {@link _onCoordsRead}.
|
|
41
|
+
*/
|
|
42
|
+
_setCoordsReadHook(hook: (() => void) | null): void;
|
|
43
|
+
/** @inheritdoc IRange.hasError */
|
|
44
|
+
hasError(): boolean;
|
|
45
|
+
/** @inheritdoc IRange.slice */
|
|
46
|
+
slice(coords: Partial<IRange.Coords>): this;
|
|
47
|
+
/**
|
|
48
|
+
* @internal
|
|
49
|
+
* The reference DEMOTED to its values: a plain `Range` over the same grid and coords, with no
|
|
50
|
+
* reference identity. The call-exit applies this to a VALUE-declared function's reference
|
|
51
|
+
* result (IFERROR/IFNA's surviving branch — ISREF of it is FALSE, measured; TypedFunction §3.1).
|
|
52
|
+
*/
|
|
53
|
+
_toValueRange(): IRange;
|
|
12
54
|
/** @inheritdoc IRange.toType */
|
|
13
55
|
toType(type: ScalarType | IRange.ValueOptions): this;
|
|
14
56
|
protected _validateCoords(coords: Partial<IRange.Coords>): void;
|
|
@@ -17,12 +17,23 @@ export interface RuntimeOptions {
|
|
|
17
17
|
*/
|
|
18
18
|
getLocaleOverrides?: () => LocaleProfileOverrides | null;
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* The clock behind {@link IRuntime.getNow}, as epoch milliseconds — not a serial date.
|
|
21
21
|
*
|
|
22
22
|
* @remarks
|
|
23
|
-
*
|
|
23
|
+
* Pinning it makes `NOW` and `TODAY` reproducible. A workbook that builds its own runtime pins
|
|
24
|
+
* this to the current commit's timestamp, so supplying a runtime without one hands those
|
|
25
|
+
* functions the wall clock instead.
|
|
24
26
|
*/
|
|
25
27
|
getNow?: () => number;
|
|
28
|
+
/**
|
|
29
|
+
* The value behind {@link IRuntime.getRandom}, drawn once per calculation pass — `Math.random`
|
|
30
|
+
* unless a host pins it.
|
|
31
|
+
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* Pinning it makes every draw in the workbook reproducible. Like a pinned clock it is a
|
|
34
|
+
* whole-run choice: collaborators who do not pin the same value do not draw the same values.
|
|
35
|
+
*/
|
|
36
|
+
getRandom?: () => number;
|
|
26
37
|
}
|
|
27
38
|
export declare const defaultLocale: () => string;
|
|
28
39
|
export declare const languageLocale: () => string | null;
|
|
@@ -37,6 +48,8 @@ export declare class Runtime implements IRuntime {
|
|
|
37
48
|
getLocale(): string;
|
|
38
49
|
/** @inheritdoc IRuntime.getNow */
|
|
39
50
|
getNow(): number;
|
|
51
|
+
/** @inheritdoc IRuntime.getRandom */
|
|
52
|
+
getRandom(): number;
|
|
40
53
|
/** @inheritdoc IRuntime.getLocaleProfile */
|
|
41
54
|
getLocaleProfile(): LocaleProfile;
|
|
42
55
|
/** @inheritdoc IRuntime.isDate1904 */
|
|
@@ -7,6 +7,13 @@ import { ISparseGrid } from '../../collections';
|
|
|
7
7
|
export interface FrequencyGroup {
|
|
8
8
|
readonly value: Scalar;
|
|
9
9
|
count: number;
|
|
10
|
+
/** Bounding box of the occurrences, in grid coordinates; absent when not tracked (merged, blank). */
|
|
11
|
+
extent?: {
|
|
12
|
+
rowStart: number;
|
|
13
|
+
colStart: number;
|
|
14
|
+
rowEnd: number;
|
|
15
|
+
colEnd: number;
|
|
16
|
+
};
|
|
10
17
|
}
|
|
11
18
|
/**
|
|
12
19
|
* Implements {@link IRangeStats.IFrequency}.
|
|
@@ -53,6 +60,8 @@ export declare class FrequencyStats implements IRangeStats.IFrequency {
|
|
|
53
60
|
getTotalCount(): number;
|
|
54
61
|
/** @inheritdoc IRangeStats.IFrequency.isTruncated */
|
|
55
62
|
isTruncated(): boolean;
|
|
63
|
+
/** @inheritdoc IRangeStats.IFrequency.getExtent */
|
|
64
|
+
getExtent(value: Scalar): IRange.Coords | null;
|
|
56
65
|
private _getValueOrderAscending;
|
|
57
66
|
/**
|
|
58
67
|
* Collects distinct-value frequencies from a grid and returns an instance over them.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { IRange, Scalar } from '@sheetxl/primitives';
|
|
2
|
+
import { IListLike, ISparseGrid } from '../../collections';
|
|
3
|
+
/**
|
|
4
|
+
* An exact-match index over a grid's stored runs, keyed by run identity.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Behind `IRange.indexOf`, and through it `MATCH(…, 0)`, `VLOOKUP(…, FALSE)` and the exact modes
|
|
8
|
+
* of `XLOOKUP`/`XMATCH`: the shape where one table is read by thousands of lookup cells. Each
|
|
9
|
+
* stored run is walked once into a map from member key to positions, and the map lives exactly as
|
|
10
|
+
* long as the run object. Every write REPLACES the runs it touches (`segmentCopyOnWrite.test.ts`),
|
|
11
|
+
* so a changed run is a miss whose map collects with it, while untouched runs — and every grid
|
|
12
|
+
* clone and sub-range that shares them — stay warm. Nothing is keyed on the grid, the range or the
|
|
13
|
+
* pass: none of those is stable across the calls that share a table.
|
|
14
|
+
*
|
|
15
|
+
* The key is the hashing side of the `=` rule, the one `UNIQUE` dedupes with: a number as itself,
|
|
16
|
+
* text through {@link toCompareKey}, a logical as itself. A `Map` keeps the three apart, so `1`,
|
|
17
|
+
* `"1"` and `TRUE` never collide. Blank, error and rich-data members are never candidates and are
|
|
18
|
+
* not indexed. Numbers match exactly, as the lookup family compares them; text carries the fold
|
|
19
|
+
* but not a locale's collation tailorings, the same deviation `UNIQUE` accepts.
|
|
20
|
+
*/
|
|
21
|
+
type Key = number | string | boolean;
|
|
22
|
+
/**
|
|
23
|
+
* The key a member hashes under, or `undefined` for a member that is never a match.
|
|
24
|
+
*/
|
|
25
|
+
export declare function lookupKey(value: Scalar): Key | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* The position of `value` along a vector that lies on the grid's own axis, or -1.
|
|
28
|
+
*
|
|
29
|
+
* @param values The grid the vector reads.
|
|
30
|
+
* @param coords One column of a column-oriented grid, or one row of a row-oriented one.
|
|
31
|
+
* @param isColumn Whether the vector is a column.
|
|
32
|
+
* @param value The value to find; one {@link lookupKey} answers for.
|
|
33
|
+
* @param reverse Answer the last position rather than the first.
|
|
34
|
+
*
|
|
35
|
+
* @remarks
|
|
36
|
+
* Runs are asked untrimmed (`overflowRun`), so a run that leaves the vector keeps its identity
|
|
37
|
+
* and its map: `A2:A100` and `A1:A100` are served by the same index, clipped by position.
|
|
38
|
+
*/
|
|
39
|
+
export declare function indexOfInRuns(values: ISparseGrid<Scalar>, coords: IRange.Coords, isColumn: boolean, value: Scalar, reverse: boolean): number;
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
* Whether `run` carries an index. For tests of the cache's lifetime.
|
|
43
|
+
*/
|
|
44
|
+
export declare function isRunIndexed(run: IListLike<Scalar>): boolean;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=LookupIndex.d.ts.map
|
|
@@ -27,6 +27,8 @@ export declare class SortedNumbers implements IRangeStats.ISortedNumbers {
|
|
|
27
27
|
getLarge(k: number): number | null;
|
|
28
28
|
/** @inheritdoc IRangeStats.ISortedNumbers.getSmall */
|
|
29
29
|
getSmall(k: number): number | null;
|
|
30
|
+
/** Whether a rank names a place at all: `1 <= k <= n`, judged before any truncation. */
|
|
31
|
+
private _inRank;
|
|
30
32
|
/** @inheritdoc IRangeStats.ISortedNumbers.getPercentile */
|
|
31
33
|
getPercentile(k: number, exclusive?: boolean): number | null;
|
|
32
34
|
/** @inheritdoc IRangeStats.ISortedNumbers.getRankOf */
|
|
@@ -204,28 +204,6 @@ export declare namespace IPrint {
|
|
|
204
204
|
*/
|
|
205
205
|
verticalCentered?: boolean;
|
|
206
206
|
}
|
|
207
|
-
/**
|
|
208
|
-
* Interface for outline properties used in print, such as
|
|
209
|
-
* the summary position and style application.
|
|
210
|
-
*/
|
|
211
|
-
interface OutlineProperties {
|
|
212
|
-
/**
|
|
213
|
-
* Whether to apply styles to outline symbols.
|
|
214
|
-
*/
|
|
215
|
-
applyStyles?: boolean;
|
|
216
|
-
/**
|
|
217
|
-
* Whether to display outline symbols in the print.
|
|
218
|
-
*/
|
|
219
|
-
showOutlineSymbols?: boolean;
|
|
220
|
-
/**
|
|
221
|
-
* Whether the summary rows are displayed below the details.
|
|
222
|
-
*/
|
|
223
|
-
summaryBelow?: boolean;
|
|
224
|
-
/**
|
|
225
|
-
* Whether the summary columns are displayed to the right of the details.
|
|
226
|
-
*/
|
|
227
|
-
summaryRight?: boolean;
|
|
228
|
-
}
|
|
229
207
|
type Break = IRange.JSONReference<{
|
|
230
208
|
man?: boolean;
|
|
231
209
|
pt?: boolean;
|
|
@@ -120,6 +120,10 @@ export interface IProtectedRange extends IAnchored {
|
|
|
120
120
|
* stack, and resets when the workbook is reopened — the same shape as
|
|
121
121
|
* {@link IProtection.isPaused}. This is what lets the write path consult it synchronously; a
|
|
122
122
|
* password check is async and cannot be awaited per cell.
|
|
123
|
+
*
|
|
124
|
+
* It lasts for one protection period: unprotecting the sheet revokes it (protecting again asks
|
|
125
|
+
* for the password afresh), while a {@link IProtection.pause} keeps it. Changing the password
|
|
126
|
+
* revokes it too.
|
|
123
127
|
*/
|
|
124
128
|
isUnlocked(): boolean;
|
|
125
129
|
/**
|
|
@@ -30,6 +30,8 @@ export interface IProtectedRangeCollection extends ICollection<IProtectedRange>
|
|
|
30
30
|
* @param template A template to use for the temporary item.
|
|
31
31
|
*/
|
|
32
32
|
createItem(template?: IProtectedRange): IProtectedRange;
|
|
33
|
+
/** For runtime type checking. */
|
|
34
|
+
readonly isIProtectedRangeCollection: true;
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* {@inheritDoc IProtectedRangeCollection}
|
|
@@ -13,7 +13,7 @@ import { IProtectedRange } from './IProtectedRange';
|
|
|
13
13
|
* Extends {@link AbstractAnchored} directly rather than `AnchoredConditional`: a protected range
|
|
14
14
|
* has no condition and does not depend on cell values, so it never subscribes to range events.
|
|
15
15
|
*/
|
|
16
|
-
export declare class ProtectedRange extends AbstractAnchored<State,
|
|
16
|
+
export declare class ProtectedRange extends AbstractAnchored<State, IProtectedRange.Events> implements IProtectedRange {
|
|
17
17
|
/**
|
|
18
18
|
* Session edit access — set by {@link unlock}, cleared by {@link relock}.
|
|
19
19
|
*
|
|
@@ -94,8 +94,5 @@ interface State extends AbstractAnchored.State {
|
|
|
94
94
|
securityDescriptor: string | null;
|
|
95
95
|
password: Partial<IProtection.EncryptedPassword> | null;
|
|
96
96
|
}
|
|
97
|
-
/** @internal */
|
|
98
|
-
interface CommitView extends AbstractAnchored.CommitView {
|
|
99
|
-
}
|
|
100
97
|
export {};
|
|
101
98
|
//# sourceMappingURL=ProtectedRange.d.ts.map
|