@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
|
@@ -23,6 +23,8 @@ export declare class ImmutableList<T> implements IReadableList<T> {
|
|
|
23
23
|
private _length;
|
|
24
24
|
/** Single-entry cache of the last-accessed run, to skip binary search on sequential reads. */
|
|
25
25
|
private _runCache;
|
|
26
|
+
/** See {@link getUniformRuns}. `undefined` = not looked yet, `null` = looked, there are none. */
|
|
27
|
+
private _uniform;
|
|
26
28
|
constructor(values?: T[] | IListLike<T>);
|
|
27
29
|
/**
|
|
28
30
|
* Returns the value at a given index.
|
|
@@ -42,6 +44,32 @@ export declare class ImmutableList<T> implements IReadableList<T> {
|
|
|
42
44
|
/** {@inheritDoc IReadableList.length} */
|
|
43
45
|
get length(): number;
|
|
44
46
|
[Symbol.iterator](): IterableIterator<T>;
|
|
47
|
+
/**
|
|
48
|
+
* The stretches of this list that hold ONE value throughout, as `[from, to, value]` triples in
|
|
49
|
+
* index order, or `null` when there are none.
|
|
50
|
+
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* A stretch is a period-1 `RepeatingList` (`isIRepeatingList`, the house brand convention)
|
|
53
|
+
* backing the whole list or one of its slices: a run written as "this value, this many times"
|
|
54
|
+
* stays recognizable after the list has been sliced or merged with its neighbors, so a reader
|
|
55
|
+
* can act on the stretch once instead of asking `at` for every position. Anything else — an
|
|
56
|
+
* array, a cyclic repeat — is not a stretch and is read per position. Computed once and held:
|
|
57
|
+
* the list is immutable.
|
|
58
|
+
*/
|
|
59
|
+
getUniformRuns(): readonly (readonly [from: number, to: number, value: T])[] | null;
|
|
60
|
+
/**
|
|
61
|
+
* Calls `fn` for each stretch of `list` that one leaf list backs, in index order, over
|
|
62
|
+
* `[from, to]` (inclusive). In a stretch `[stretchFrom, stretchTo]`, the value at list index `i`
|
|
63
|
+
* is `leaf.at(leafFrom + i - stretchFrom)`. Anything that is not an `ImmutableList` is its own
|
|
64
|
+
* leaf.
|
|
65
|
+
*
|
|
66
|
+
* @remarks
|
|
67
|
+
* For a reader that can do better with a leaf than ask `at` of the wrapper: a typed leaf's
|
|
68
|
+
* buffer, a repeat's one value.
|
|
69
|
+
*/
|
|
70
|
+
static forEachLeaf<T>(list: IListLike<T>, fn: (leaf: IListLike<T>, leafFrom: number, stretchFrom: number, stretchTo: number) => void, from?: number, to?: number): void;
|
|
71
|
+
/** {@link forEachLeaf} over `[from, to]` of `list`, reported `shift` further on. */
|
|
72
|
+
private static _forEachLeaf;
|
|
45
73
|
/** {@inheritDoc IReadableList.isIReadableList} */
|
|
46
74
|
get isIReadableList(): true;
|
|
47
75
|
/** {@inheritDoc IList.isIList} */
|
|
@@ -1,140 +1,200 @@
|
|
|
1
|
-
import { IListLike } from './IList';
|
|
1
|
+
import { IList, IListLike } from './IList';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* An immutable run of mixed scalar values in ONE `ArrayBuffer` or `SharedArrayBuffer`.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Numbers, booleans and blanks are stored natively; strings and errors as `int32` ids that a
|
|
6
|
+
* {@link MixedTypedArrayList.Codec} resolves. The buffer is the whole list: another thread that
|
|
7
|
+
* receives its {@link MixedTypedArrayList.Handle} (and has the same codec) reads it without a copy.
|
|
7
8
|
*
|
|
8
9
|
* @remarks
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Layout, for `length` values at `width` 4 or 8 bytes:
|
|
11
|
+
* - the value slots, `length * width` bytes, absent when no value needs one (booleans and blanks);
|
|
12
|
+
* - then one type byte per value, absent when every value is of one type.
|
|
13
|
+
*
|
|
14
|
+
* The width is 4 when no value is a non-int32 number, else 8. At width 8 an `int32` (int, string
|
|
15
|
+
* id, error code) lives in the low word of its slot and a double in the whole slot.
|
|
16
|
+
*
|
|
17
|
+
* Implements {@link IListLike}: `at` answers `undefined` past the end and `null` for a blank.
|
|
18
|
+
* Slicing and concatenation are `ImmutableList`'s, logically, over any list.
|
|
19
|
+
*
|
|
20
|
+
* Create with {@link MixedTypedArrayList.fromArray}; rebuild from a handle with the constructor.
|
|
13
21
|
*/
|
|
14
|
-
export declare class MixedTypedArrayList<T = any> implements
|
|
15
|
-
private _l;
|
|
16
|
-
private
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
private
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
-
private
|
|
24
|
-
private
|
|
25
|
-
private
|
|
26
|
-
|
|
22
|
+
export declare class MixedTypedArrayList<T = any> implements IList<T> {
|
|
23
|
+
private readonly _l;
|
|
24
|
+
private readonly _w;
|
|
25
|
+
/** `0` at width 4, `1` at width 8: the int32 index is `(i << _sh) + _lo`. */
|
|
26
|
+
private readonly _sh;
|
|
27
|
+
/** The word an int32 occupies at width 8: `0` little-endian, `1` big-endian. */
|
|
28
|
+
private readonly _lo;
|
|
29
|
+
private readonly _dt;
|
|
30
|
+
private readonly _m;
|
|
31
|
+
private readonly _buf;
|
|
32
|
+
private readonly _vi;
|
|
33
|
+
private readonly _vf;
|
|
34
|
+
private readonly _t;
|
|
35
|
+
private readonly _c;
|
|
36
|
+
private _v;
|
|
27
37
|
/**
|
|
28
|
-
*
|
|
38
|
+
* Rebuilds a list over a handle's buffer, without copying it.
|
|
39
|
+
*
|
|
40
|
+
* @param handle The handle, from {@link getHandle} or from another thread.
|
|
41
|
+
* @param codec Required when the run holds strings or errors.
|
|
29
42
|
*/
|
|
30
|
-
|
|
43
|
+
constructor(handle: MixedTypedArrayList.Handle, codec?: MixedTypedArrayList.Codec<T> | null);
|
|
31
44
|
/** {@inheritDoc IListLike.at} */
|
|
32
45
|
at(index: number): T | undefined;
|
|
33
|
-
/**
|
|
34
|
-
|
|
46
|
+
/**
|
|
47
|
+
* The type code of the value at `index` (see {@link MixedTypedArrayList.Type}), or `-1` past
|
|
48
|
+
* the end.
|
|
49
|
+
*/
|
|
50
|
+
typeAt(index: number): number;
|
|
51
|
+
/**
|
|
52
|
+
* The types the list may hold, as a bitmask of `1 << Type`. It never omits a type a value
|
|
53
|
+
* holds, so a missing bit answers "none here" without a scan; a set bit may name a type no
|
|
54
|
+
* value holds.
|
|
55
|
+
*/
|
|
56
|
+
get typeMask(): number;
|
|
57
|
+
/**
|
|
58
|
+
* The typed arrays under the list, for a loop over a stretch of it without `at`: the type of
|
|
59
|
+
* index `i` is `types[i]` (or `defaultType` when `types` is `null`), an int32, string id or
|
|
60
|
+
* error code is `ints[(i << intShift) + intOffset]`, and a double is `doubles[i]`.
|
|
61
|
+
*/
|
|
62
|
+
getViews(): MixedTypedArrayList.Views;
|
|
35
63
|
/** {@inheritDoc IListLike.length} */
|
|
36
64
|
get length(): number;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
protected static _createArrayBuffer(length: number): ArrayBufferLike;
|
|
65
|
+
/** {@inheritDoc IList.isIList} */
|
|
66
|
+
get isIList(): true;
|
|
40
67
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* @param array The array to convert.
|
|
44
|
-
* @param getCoercedKey A function that returns a key for a complex value.
|
|
45
|
-
* @param getCoercedValue A function that returns a coerced value for a given key.
|
|
46
|
-
* @param getCoerceType A function that returns a type for a given value.
|
|
47
|
-
* @returns A MixedTypedArrayList.
|
|
48
|
-
*
|
|
68
|
+
* {@inheritDoc IListLike.fromArray}
|
|
49
69
|
* @remarks
|
|
50
|
-
*
|
|
70
|
+
* A plain list: this is asked for small merges (`ImmutableList.concat`), below the length a
|
|
71
|
+
* typed list is worth.
|
|
51
72
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
73
|
+
fromArray(arr: T[]): IListLike<T>;
|
|
74
|
+
/** The bytes a value occupies: `4` or `8`. */
|
|
75
|
+
get width(): number;
|
|
76
|
+
/** Whether the buffer is a `SharedArrayBuffer`. */
|
|
77
|
+
get isShared(): boolean;
|
|
55
78
|
/**
|
|
56
|
-
* The
|
|
79
|
+
* The values as an `Array`.
|
|
80
|
+
* @param maxLength At most this many, from the start.
|
|
57
81
|
*/
|
|
58
|
-
|
|
82
|
+
toArray(maxLength?: number): T[];
|
|
59
83
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
* @remarks
|
|
63
|
-
* This is the default type if types is not provided.
|
|
64
|
-
*/
|
|
65
|
-
type: number;
|
|
66
|
-
/**
|
|
67
|
-
* The array used for storing types.
|
|
68
|
-
*
|
|
69
|
-
* @remarks
|
|
70
|
-
* This must be a Uint8Array. This or type must be provided.
|
|
84
|
+
* What rebuilds this list: the buffer and its shape. Post it to another thread (a shared
|
|
85
|
+
* buffer is shared; an `ArrayBuffer` is copied, or transferred and then unusable here).
|
|
71
86
|
*/
|
|
72
|
-
|
|
87
|
+
getHandle(): MixedTypedArrayList.Handle;
|
|
88
|
+
get [Symbol.toStringTag](): string;
|
|
89
|
+
toString(): string;
|
|
73
90
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
* @remarks
|
|
77
|
-
* If this is not provided then all values stored in values64.
|
|
78
|
-
* * Must be 32bit aligned
|
|
91
|
+
* Whether `SharedArrayBuffer` can be allocated here: it exists, and the page is cross-origin
|
|
92
|
+
* isolated where that applies.
|
|
79
93
|
*/
|
|
80
|
-
|
|
94
|
+
static get isSharedSupported(): boolean;
|
|
81
95
|
/**
|
|
82
|
-
*
|
|
96
|
+
* Encodes an array of values.
|
|
83
97
|
*
|
|
84
|
-
* @
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
98
|
+
* @param values The values, or a scratch holding them first (`options.length`). `undefined` is
|
|
99
|
+
* stored as a blank. Never retained.
|
|
100
|
+
* @param codec Resolves strings and errors. Without one a run holding either cannot be encoded.
|
|
101
|
+
* @param options Allocation and the hints a writer that saw the values already has.
|
|
102
|
+
* @returns The list, or `null` when a value cannot be encoded: a rich value, or a string or
|
|
103
|
+
* error with no codec. Nothing is allocated in that case.
|
|
89
104
|
*/
|
|
90
|
-
|
|
105
|
+
static fromArray<T = any>(values: readonly T[], codec?: MixedTypedArrayList.Codec<T> | null, options?: MixedTypedArrayList.FromArrayOptions): MixedTypedArrayList<T> | null;
|
|
91
106
|
/**
|
|
107
|
+
* Encodes values that are already codes and numbers: a load path that has string ids and
|
|
108
|
+
* error codes in hand writes them without resolving a single string.
|
|
92
109
|
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
* @param
|
|
97
|
-
* @returns Returns a coerced value.
|
|
98
|
-
*
|
|
99
|
-
* @remarks
|
|
100
|
-
* This is used for returning string lookup, error lookup, or custom.
|
|
110
|
+
* @param codes The {@link MixedTypedArrayList.Type} of each value. Never `Rich`.
|
|
111
|
+
* @param values Per position: the int, double, string id or error code; ignored for a boolean
|
|
112
|
+
* or a blank.
|
|
113
|
+
* @param codec For reads; the run is written as given.
|
|
101
114
|
*/
|
|
102
|
-
|
|
115
|
+
static fromEncoded<T = any>(codes: Uint8Array, values: ArrayLike<number>, codec?: MixedTypedArrayList.Codec<T> | null, options?: MixedTypedArrayList.FromArrayOptions): MixedTypedArrayList<T>;
|
|
103
116
|
}
|
|
104
117
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* @remarks
|
|
108
|
-
* MixedTypedArray stores a type using an Uint8Array. The first
|
|
109
|
-
* 127 bits are reserved for known types. The last 128-255 are
|
|
110
|
-
* reserved for custom types.
|
|
111
|
-
*
|
|
118
|
+
* {@inheritDoc MixedTypedArrayList}
|
|
112
119
|
* @see
|
|
113
|
-
*
|
|
114
|
-
*/
|
|
115
|
-
export declare const KnownType: {
|
|
116
|
-
readonly Null: 0;
|
|
117
|
-
readonly Boolean: 1;
|
|
118
|
-
readonly Integer: 2;
|
|
119
|
-
readonly Float: 3;
|
|
120
|
-
readonly Integer64: 4;
|
|
121
|
-
readonly Float64: 5;
|
|
122
|
-
readonly String: 6;
|
|
123
|
-
readonly Error: 7;
|
|
124
|
-
readonly PosInfinity: 16;
|
|
125
|
-
readonly NegInfinity: 17;
|
|
126
|
-
readonly NaN: 18;
|
|
127
|
-
readonly MaxSafeInteger: 19;
|
|
128
|
-
readonly MinSafeInteger: 20;
|
|
129
|
-
readonly Undefined: 15;
|
|
130
|
-
readonly Unknown: 127;
|
|
131
|
-
};
|
|
132
|
-
/**
|
|
133
|
-
* Return a 8 bit int that represents the type to using in the type array.
|
|
120
|
+
* ### **Class**
|
|
134
121
|
*
|
|
135
|
-
* @
|
|
136
|
-
* @param custom If provided this will be called if the type is not well known. Must return a value between '128' and '255'.
|
|
137
|
-
* @returns a number representing a type between '0' and '255'.
|
|
122
|
+
* {@link MixedTypedArrayList}
|
|
138
123
|
*/
|
|
139
|
-
export declare
|
|
124
|
+
export declare namespace MixedTypedArrayList {
|
|
125
|
+
/**
|
|
126
|
+
* The type codes, one byte each. A boolean or a blank is its code alone and has no value slot.
|
|
127
|
+
*/
|
|
128
|
+
const Type: {
|
|
129
|
+
readonly Blank: 0;
|
|
130
|
+
readonly False: 1;
|
|
131
|
+
readonly True: 2;
|
|
132
|
+
readonly Int32: 3;
|
|
133
|
+
readonly Float64: 4;
|
|
134
|
+
readonly String: 5;
|
|
135
|
+
readonly Error: 6;
|
|
136
|
+
/** Reserved. A run holding a rich value is not encoded. */
|
|
137
|
+
readonly Rich: 7;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Resolves what the buffer stores as an id: strings and errors, both ways.
|
|
141
|
+
*/
|
|
142
|
+
interface Codec<T = any> {
|
|
143
|
+
/** Whether an object value is an error (anything else is rich, and not encoded). */
|
|
144
|
+
isError(value: object): boolean;
|
|
145
|
+
/** The id a string is stored as; the same string must give the same id. */
|
|
146
|
+
encodeString(value: string): number;
|
|
147
|
+
/** The string for an id. */
|
|
148
|
+
decodeString(id: number): T;
|
|
149
|
+
/** The code an error is stored as. */
|
|
150
|
+
encodeError(value: T): number;
|
|
151
|
+
/** The error for a code. */
|
|
152
|
+
decodeError(code: number): T;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* What rebuilds a list over its buffer. Passes through `structuredClone` and `postMessage`.
|
|
156
|
+
*/
|
|
157
|
+
interface Handle {
|
|
158
|
+
buffer: ArrayBufferLike;
|
|
159
|
+
length: number;
|
|
160
|
+
width: 4 | 8;
|
|
161
|
+
/** The one type, when `hasTypes` is `false`. */
|
|
162
|
+
defaultType: number;
|
|
163
|
+
/** {@inheritDoc MixedTypedArrayList.typeMask} */
|
|
164
|
+
typeMask: number;
|
|
165
|
+
/** Whether a type byte per value follows the slots. */
|
|
166
|
+
hasTypes: boolean;
|
|
167
|
+
/** Whether any value has a slot; `false` for a run of booleans and blanks. */
|
|
168
|
+
hasSlots: boolean;
|
|
169
|
+
}
|
|
170
|
+
/** {@inheritDoc MixedTypedArrayList.getViews} */
|
|
171
|
+
interface Views {
|
|
172
|
+
readonly types: Uint8Array | null;
|
|
173
|
+
readonly defaultType: number;
|
|
174
|
+
readonly ints: Int32Array;
|
|
175
|
+
readonly doubles: Float64Array | null;
|
|
176
|
+
readonly intShift: 0 | 1;
|
|
177
|
+
readonly intOffset: 0 | 1;
|
|
178
|
+
}
|
|
179
|
+
interface FromArrayOptions {
|
|
180
|
+
/**
|
|
181
|
+
* Allocate a `SharedArrayBuffer` when supported.
|
|
182
|
+
* @defaultValue false
|
|
183
|
+
*/
|
|
184
|
+
shared?: boolean;
|
|
185
|
+
/**
|
|
186
|
+
* Encode only the first `length` values: the input is a writer's reused scratch, longer than
|
|
187
|
+
* the run.
|
|
188
|
+
* @defaultValue the input's length
|
|
189
|
+
*/
|
|
190
|
+
length?: number;
|
|
191
|
+
/**
|
|
192
|
+
* The types the values hold, as a bitmask of `1 << Type`, from a writer that saw them. Not
|
|
193
|
+
* validated: a wrong mask encodes wrong values, and it is kept as
|
|
194
|
+
* {@link MixedTypedArrayList.typeMask}. A single-type mask skips the type bytes and the
|
|
195
|
+
* classification; any mask sets the width before allocating.
|
|
196
|
+
*/
|
|
197
|
+
seen?: number;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
140
200
|
//# sourceMappingURL=MixedTypedArrayList.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RangeAxis,
|
|
1
|
+
import { RangeAxis, CellCoords, RangeCoords, RangeCoordValue } from '@sheetxl/utils';
|
|
2
2
|
/**
|
|
3
3
|
* Iterate over a collection of overlapping RangeCoords.
|
|
4
4
|
*
|
|
@@ -33,9 +33,10 @@ export declare namespace OverlappingRange {
|
|
|
33
33
|
* @defaultValue `undefined` (Creates new instances for each iterator)
|
|
34
34
|
*
|
|
35
35
|
* @remarks
|
|
36
|
-
* - **Performance:**
|
|
37
|
-
*
|
|
38
|
-
* - **Safety:**
|
|
36
|
+
* - **Performance:** Removes the per-step allocations (the result, range, cell, and overlaps
|
|
37
|
+
* objects are mutated in place), which matters for large sweeps.
|
|
38
|
+
* - **Safety:** A returned intersection is only valid until the next call to `next` — copy
|
|
39
|
+
* anything that is retained. Pass an `IteratorResult` to supply the reused buffer yourself.
|
|
39
40
|
*/
|
|
40
41
|
reuseIterator?: boolean | IteratorResult<OverlappingRange.Intersection>;
|
|
41
42
|
}
|
|
@@ -61,22 +62,17 @@ export declare namespace OverlappingRange {
|
|
|
61
62
|
overlaps: RangeCoordValue[];
|
|
62
63
|
}
|
|
63
64
|
type Iterator = ESIterator<Intersection, Intersection, CellCoords>;
|
|
65
|
+
/**
|
|
66
|
+
* An adapter over the shared line-sweep engine (`_RangeSweep`): the ranges become pieces (their
|
|
67
|
+
* input order is the stable order), the sweep partitions them into non-overlapping regions, and
|
|
68
|
+
* each step is handed out as a fresh {@link Intersection}.
|
|
69
|
+
*/
|
|
64
70
|
class IteratorInstance implements Iterator, IterableIterator<Intersection> {
|
|
65
|
-
private
|
|
71
|
+
private _sweep;
|
|
66
72
|
private _isByCell;
|
|
67
|
-
private
|
|
68
|
-
private
|
|
73
|
+
private _cellComparator;
|
|
74
|
+
private _lastCell;
|
|
69
75
|
private _reuse;
|
|
70
|
-
private _localReuse;
|
|
71
|
-
private _eventsMajor;
|
|
72
|
-
private _eventMajorIndex;
|
|
73
|
-
private _majorStart;
|
|
74
|
-
private _majorEnd;
|
|
75
|
-
private _eventsMinor;
|
|
76
|
-
private _eventsMinorIterator;
|
|
77
|
-
private _eventMinorPeek;
|
|
78
|
-
private _minorStart;
|
|
79
|
-
private _minorEnd;
|
|
80
76
|
constructor(ranges: readonly RangeCoordValue[], options?: IteratorOptions);
|
|
81
77
|
/**
|
|
82
78
|
* Returns the next Intersection as a IteratorResult.
|
|
@@ -13,8 +13,15 @@ export declare class RepeatingList<T> implements IList<T> {
|
|
|
13
13
|
toArray(maxLength?: number): T[];
|
|
14
14
|
/** {@inheritDoc IListLike.length} */
|
|
15
15
|
get length(): number;
|
|
16
|
+
/**
|
|
17
|
+
* The length of the repeated list — the period. A period of `1` is one value however long, so a
|
|
18
|
+
* consumer that would otherwise scan every position can read `at(0)` once.
|
|
19
|
+
*/
|
|
20
|
+
getPeriod(): number;
|
|
16
21
|
get [Symbol.toStringTag](): string;
|
|
17
22
|
/** {@inheritDoc IList.isIList} */
|
|
18
23
|
get isIList(): true;
|
|
24
|
+
/** For runtime type checking. */
|
|
25
|
+
get isIRepeatingList(): true;
|
|
19
26
|
}
|
|
20
27
|
//# sourceMappingURL=RepeatingList.d.ts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Direction, RangeAxis, CellCoords, RangeCoords } from '@sheetxl/utils';
|
|
2
|
+
import { Tuple } from './Tuple';
|
|
3
|
+
import { IGrid } from './IGrid';
|
|
4
|
+
import { ISparseGrid } from './ISparseGrid';
|
|
5
|
+
/**
|
|
6
|
+
* A grid holding one value at (0,0) — the backing of a direct-scalar box.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* Every scalar handed to a range-typed parameter (`IF`'s branches, `AND`/`OR`/`MIN`/`MAX`
|
|
10
|
+
* arguments) is boxed into a 1x1 range, and most boxes are only ever read back out again by the
|
|
11
|
+
* consumer (`getValueAt(0, 0)`), so building a full {@link SparseGrid} — a major list, a minor
|
|
12
|
+
* list, a run — for each was the single largest allocation in a recalculation: ~100K per pass on
|
|
13
|
+
* a 28K-formula template. This answers the reads a box gets natively and holds no structure at
|
|
14
|
+
* all; the first call that needs one (iteration, a write, a copy) materializes a real
|
|
15
|
+
* `SparseGrid` and delegates to it from then on, so every other behavior is exactly the grid's.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ScalarGrid<T = any> implements ISparseGrid<T> {
|
|
18
|
+
private _value;
|
|
19
|
+
private _axis;
|
|
20
|
+
private _maxCoords;
|
|
21
|
+
/** The real grid, once anything beyond a point read was asked for. */
|
|
22
|
+
private _grid;
|
|
23
|
+
constructor(value: T, options?: ScalarGrid.ConstructorOptions);
|
|
24
|
+
private _materialize;
|
|
25
|
+
getValueAt(row: number, column: number): T;
|
|
26
|
+
getCount(): number;
|
|
27
|
+
getCoords(): RangeCoords | null;
|
|
28
|
+
getAxis(): RangeAxis;
|
|
29
|
+
getMaxCoords(): RangeCoords | null;
|
|
30
|
+
clone(cloneKey?: any): this;
|
|
31
|
+
cloneEmpty(cloneKey?: any): this;
|
|
32
|
+
setValues(values: Tuple.GridTuple<T>): this;
|
|
33
|
+
setValueAt(row: number, column: number, value: T): void;
|
|
34
|
+
getValues(coords?: RangeCoords): Tuple.Region<T> | null;
|
|
35
|
+
entries(options?: IGrid.IteratorOptions): IGrid.EntryIterator<T>;
|
|
36
|
+
keys(options?: IGrid.IteratorOptions): IGrid.KeyIterator;
|
|
37
|
+
values(options?: IGrid.IteratorOptions): IGrid.ValueIterator;
|
|
38
|
+
getRuns(options?: ISparseGrid.RunIteratorOptions): ISparseGrid.RunIterableIterator<T>;
|
|
39
|
+
delete(coords: RangeCoords | null): boolean;
|
|
40
|
+
clear(): void;
|
|
41
|
+
shift(coords: RangeCoords, direction: Direction): boolean;
|
|
42
|
+
copyTo(destination: IGrid, topLeft: CellCoords, from: RangeCoords): void;
|
|
43
|
+
}
|
|
44
|
+
export declare namespace ScalarGrid {
|
|
45
|
+
interface ConstructorOptions {
|
|
46
|
+
axis?: RangeAxis;
|
|
47
|
+
maxCoords?: RangeCoords;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=ScalarGrid.d.ts.map
|
|
@@ -39,7 +39,7 @@ export declare class SparseGrid<T = any> implements ISparseGrid<T> {
|
|
|
39
39
|
/** {@inheritDoc IGrid.setValues} */
|
|
40
40
|
setValues(values: Tuple.GridTuple<T>): this;
|
|
41
41
|
/** {@inheritDoc IGrid.getValues} */
|
|
42
|
-
getValues(coords?: RangeCoords): Tuple.
|
|
42
|
+
getValues(coords?: RangeCoords): Tuple.Region<T> | null;
|
|
43
43
|
private _updateCountAndCoords;
|
|
44
44
|
/** {@inheritDoc IGrid.clear} */
|
|
45
45
|
clear(): void;
|
|
@@ -31,8 +31,19 @@ export declare class SpatialMap<T = any> implements ISpatialMap<T> {
|
|
|
31
31
|
shift(options: ISpatialMap.ShiftOptions<T>): this;
|
|
32
32
|
/** {@inheritDoc ISpatialMap.insertNonOverlapping} */
|
|
33
33
|
insertNonOverlapping(range: ISpatialMap.Entry<T>, options?: ISpatialMap.InsertNonOverlappingOptions<T>): this;
|
|
34
|
-
/** {@inheritDoc ISpatialMap.
|
|
35
|
-
|
|
34
|
+
/** {@inheritDoc ISpatialMap.insertAllNonOverlapping} */
|
|
35
|
+
insertAllNonOverlapping(ranges: readonly ISpatialMap.Entry<T>[], options?: ISpatialMap.InsertNonOverlappingOptions<T>): this;
|
|
36
|
+
/**
|
|
37
|
+
* One entry of {@link insertNonOverlapping} without the merge pass.
|
|
38
|
+
*
|
|
39
|
+
* @returns `true` when the map changed and a merge should rejoin what the insert fragmented.
|
|
40
|
+
*/
|
|
41
|
+
protected _insertOneNonOverlapping(range: ISpatialMap.Entry<T>, options?: ISpatialMap.InsertNonOverlappingOptions<T>): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Rejoins entries adjacent to `range` that an insert fragmented; the second half of
|
|
44
|
+
* {@link insertNonOverlapping}, run once for a whole batch by {@link insertAllNonOverlapping}.
|
|
45
|
+
*/
|
|
46
|
+
protected _mergeAdjacent(range: RangeCoords, options?: ISpatialMap.InsertNonOverlappingOptions<T>): void;
|
|
36
47
|
/** {@inheritDoc ISpatialMap.createCopiedEntries} */
|
|
37
48
|
createCopiedEntries(from: RangeCoords, to: RangeCoords, options?: ISpatialMap.CopyOptions, reuseInserts?: ISpatialMap.Entry<T>[], reuseRemoves?: ISpatialMap.Entry<T>[]): ISpatialMap.Updates;
|
|
38
49
|
/** {@inheritDoc ISpatialMap.remove} */
|
|
@@ -49,16 +60,6 @@ export declare class SpatialMap<T = any> implements ISpatialMap<T> {
|
|
|
49
60
|
delete(coords: RangeCoords | null): this;
|
|
50
61
|
/** {@inheritDoc ISpatialMap.clone} */
|
|
51
62
|
clone(cloneKey?: any): this;
|
|
52
|
-
/**
|
|
53
|
-
* Insert and removes nodes that contained with a group.
|
|
54
|
-
*
|
|
55
|
-
* @param groupsByGroupId Groups by the id of the group
|
|
56
|
-
* @param entriesByEntryId Amendments by the original id
|
|
57
|
-
*
|
|
58
|
-
* @remarks
|
|
59
|
-
* * This logic visits all group entries and ensures all entries are update and removed so that all group entries entries are the same instance.
|
|
60
|
-
*/
|
|
61
|
-
protected _updateGroupedEntries(groupsByGroupId: Map<string, Group>, entriesByEntryId: Map<string, (ISpatialMap.Entry<T> | null)[]>): void;
|
|
62
63
|
protected _copy(source: SharedRecord<T>, entries?: ReadonlyArray<ISpatialMap.Entry<T>>): SharedRecord<T>;
|
|
63
64
|
protected _updateNodes(nodesInsert: ISpatialMap.Entry<T>[], nodesRemove?: ISpatialMap.Entry<T>[], onUpdates?: (nodesInsert: ISpatialMap.Entry<T>[], nodesRemove: ISpatialMap.Entry<T>[], map: ISpatialMap<T>) => void): void;
|
|
64
65
|
protected _mergeNodes(range: RangeCoords, fullyContained?: boolean): ISpatialMap.Entry<T>[];
|
|
@@ -81,15 +82,6 @@ interface SharedRecord<T> {
|
|
|
81
82
|
refCount: number;
|
|
82
83
|
rTree: FilterRTree<T>;
|
|
83
84
|
}
|
|
84
|
-
interface Group<T = any> {
|
|
85
|
-
entries: InternalEntry<T>[];
|
|
86
|
-
uuid: string;
|
|
87
|
-
offset: number;
|
|
88
|
-
}
|
|
89
|
-
interface InternalEntry<T = any> extends ISpatialMap.Entry<T> {
|
|
90
|
-
group?: Group<T>;
|
|
91
|
-
timeStamp?: number;
|
|
92
|
-
}
|
|
93
85
|
/**
|
|
94
86
|
* Internal class that extends RTree to support Filters.
|
|
95
87
|
* is needed — the default passthrough in RTree works directly.
|