@sheetxl/sdk 0.7.28-beta.4 → 0.8.0-beta.2
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/4f5eoQQfV-V7LO2_.cjs +1 -0
- package/browser/cjs/BEnEDC1m546-gzWS.cjs +1 -0
- package/browser/cjs/CwCUa4IzGNGissLL.cjs +1 -0
- package/browser/cjs/Dg3GaW0QWwnlqetX.cjs +1 -0
- package/browser/cjs/KWQPie2u7AP69web.cjs +93 -0
- package/browser/cjs/index.cjs +2 -2
- package/browser/esm/{DBIu6NUHIcxOOBQp.mjs → BJ9hcZAGY8Tj5_9L.mjs} +1 -1
- package/browser/esm/C8vpA2ZBtZf6w4nq.mjs +394 -0
- package/browser/esm/DDojiE2-oycJ7qGi.mjs +20 -0
- package/browser/esm/DEPT7zmpiMdZ-_qC.mjs +70253 -0
- package/browser/esm/DOvCi3lf49To36WP.mjs +8 -0
- package/browser/esm/{CHSahmMFYNB0Ajkf.mjs → Dq3sc4B_HQHBrT5N.mjs} +2 -2
- package/browser/esm/index.mjs +871 -696
- package/browser/esm/{CKk58ZLcrllMzfou.mjs → trwZArJQQq7K9kL7.mjs} +2 -2
- package/licenses/dependencies.txt +204 -204
- package/node/esm/CGWsQOMWdnDeF4dX.mjs +8 -0
- package/node/esm/{DUYP6faJJHCaW1Xf.mjs → CL9MI-b6D9BmtVXW.mjs} +1 -1
- package/node/esm/CressiwiIhxCVp1v.mjs +28 -0
- package/node/esm/O2cOO3xIynWUgOWe.mjs +403 -0
- package/node/esm/index.mjs +53973 -38584
- 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 +7093 -0
- package/types/scripting-enums.json +54 -4
- package/types/scripting.d.ts +7185 -1079
- 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 +745 -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 +422 -34
- 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 +160 -29
- 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 +39 -3
- package/types/src/calculation/state/IContextContainer.d.ts +159 -26
- 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 +368 -90
- 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 +18 -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 +60 -21
- package/types/src/primitives/Range.d.ts +105 -25
- 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/FunctionArguments.d.ts +22 -0
- 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 +197 -4
- 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 +757 -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 +65 -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 +28 -0
- 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/BF14ZEAnaqxXroSj.cjs +0 -1
- package/browser/cjs/BXtvdT1Z-MsB_o5F.cjs +0 -1
- package/browser/cjs/Bc4JjVVZfFo3R4He.cjs +0 -33
- package/browser/cjs/CD2RXdnfqSYNc6gX.cjs +0 -57
- package/browser/cjs/DcLpXGexEtOxi-dD.cjs +0 -1
- package/browser/esm/0Mj5WKM362q6CECb.mjs +0 -824
- package/browser/esm/CPTtL2f6_4iblmFM.mjs +0 -4436
- package/browser/esm/CoA-sUxjiIUIpTUF.mjs +0 -109
- package/browser/esm/Dy4Sdpju1T2icURu.mjs +0 -50854
- package/node/esm/BtGxbEbBm79YvF_k.mjs +0 -843
- package/node/esm/DqgWsVXROpSgKq6c.mjs +0 -114
- 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
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { Scalar, IRange } from '@sheetxl/primitives';
|
|
2
|
+
import { CoordUtils } from '@sheetxl/utils';
|
|
3
|
+
import { ITransaction } from '../transaction';
|
|
4
|
+
import { Tuple, ISpatialMap } from '../collections';
|
|
5
|
+
import { ICellRange } from '../cellRange';
|
|
6
|
+
import { ICell } from '../cell';
|
|
7
|
+
import { IStyle } from '../style';
|
|
8
|
+
import { InternalTupleUpdate } from './_SheetStateTypes';
|
|
9
|
+
import { SheetMutationContext } from './Sheet';
|
|
10
|
+
import { ScanStyleUpdate } from './_SheetMutations';
|
|
11
|
+
/**
|
|
12
|
+
* What {@link CellBuffer} needs from its sheet.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export interface CellBufferContext {
|
|
16
|
+
readonly isDataColumn: boolean;
|
|
17
|
+
readonly transactions: ITransaction.IStore;
|
|
18
|
+
/**
|
|
19
|
+
* The records a flush writes: the sheet's, and the calculation's it marks dirty. A read of one
|
|
20
|
+
* from the store makes the held writes first.
|
|
21
|
+
*/
|
|
22
|
+
readonly writes: readonly string[];
|
|
23
|
+
isClosed(): boolean;
|
|
24
|
+
getEntireCoords(): IRange.Coords | null;
|
|
25
|
+
/**
|
|
26
|
+
* The sheet's spills as `transaction` sees them - a read that does not flush: nothing a held
|
|
27
|
+
* write makes changes them.
|
|
28
|
+
*/
|
|
29
|
+
getSpills(transaction: ITransaction): ISpatialMap;
|
|
30
|
+
/**
|
|
31
|
+
* Whether a style update written to one cell changes that cell alone, as `transaction` sees the
|
|
32
|
+
* sheet; see {@link CellBuffer.holdStyle}.
|
|
33
|
+
*/
|
|
34
|
+
isLocalStyle(transaction: ITransaction, rowIndex: number, colIndex: number, update: IStyle.Update): boolean;
|
|
35
|
+
/** What the sheet's cell writes are made through; the held ones are scanned and written with it. */
|
|
36
|
+
getMutations(): SheetMutationContext;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Single-cell writes made inside an open transaction, held and made as ONE write when something
|
|
40
|
+
* needs them made.
|
|
41
|
+
*
|
|
42
|
+
* @remarks
|
|
43
|
+
* A loop that writes a cell per call makes one full write per cell, and leaves one formula block
|
|
44
|
+
* per cell. Held, the loop is one write, and the formulas in it conflate into runs as they do in
|
|
45
|
+
* one `setValues`.
|
|
46
|
+
*
|
|
47
|
+
* A held run IS that one write, left open: each cell goes through the write's own scan as it
|
|
48
|
+
* comes ({@link scanCell}), and making the run is the scan's finish ({@link finishTupleScan}). So
|
|
49
|
+
* a cell is resolved once, by the rules of any other write, and what the scan refuses it refuses
|
|
50
|
+
* at the call.
|
|
51
|
+
*
|
|
52
|
+
* Holding has no outward behavior. Inside a transaction the events and the undo step are the
|
|
53
|
+
* transaction's anyway, and everything that could see the difference makes the held writes first
|
|
54
|
+
* (`ITransaction.Hooks`): a read of a record they change - the sheet's, or the calculation's they
|
|
55
|
+
* mark dirty - a transaction beginning inside the one that holds them, and its commit. Only what
|
|
56
|
+
* cannot fail once scanned is held: a write that is part of an array, or that carries a merge, a
|
|
57
|
+
* hyperlink or comments, is made as it comes, after the held ones. A LOCKED sheet is held like any
|
|
58
|
+
* other: the scan rules on every cell against its exemptions and throws at the call, and the run
|
|
59
|
+
* it makes stands its commit-time catch-all down exactly as one `setValues` over those cells does.
|
|
60
|
+
*
|
|
61
|
+
* A scan asks for its cells in one order. The sheet stores along its major axis and a loop usually
|
|
62
|
+
* writes across it (row by row into a column-major sheet), so the order is decided by the second
|
|
63
|
+
* cell written, and the scan and the {@link Tuple.IBuilder} the values are placed in follow it. A
|
|
64
|
+
* write that does not continue that order - a step back, a second value to the same cell, a change
|
|
65
|
+
* between `updateCells` and `setValue` - flushes what is held and starts a new run.
|
|
66
|
+
*
|
|
67
|
+
* A style set on a cell on its own ({@link holdStyle}) is held in the same run: styling the cell
|
|
68
|
+
* just written, or styling it again, continues it. The styles of a cell styled more than once are
|
|
69
|
+
* written in the order they were set.
|
|
70
|
+
*
|
|
71
|
+
* The first write of a run is scanned on its own, within its one cell. The second begins the scan
|
|
72
|
+
* the run keeps - over the whole sheet, since where the run ends is not known - and the first
|
|
73
|
+
* cell goes through it again. A loop that makes every write as it comes never pays for the sheet.
|
|
74
|
+
*
|
|
75
|
+
* A read of a held cell answers from what the scan has: the value from the builder it was placed
|
|
76
|
+
* in, and a clear, a formula or a style from the scan's collectors. Nothing is kept by cell.
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
export declare class CellBuffer {
|
|
80
|
+
private readonly _ctx;
|
|
81
|
+
private _transaction;
|
|
82
|
+
private _count;
|
|
83
|
+
private _isCell;
|
|
84
|
+
private _scan;
|
|
85
|
+
private _isBeginning;
|
|
86
|
+
private _isOriented;
|
|
87
|
+
private _isTransposed;
|
|
88
|
+
private _builder;
|
|
89
|
+
private _changes;
|
|
90
|
+
private _firstWrites;
|
|
91
|
+
private _firstValue;
|
|
92
|
+
private _lastMajor;
|
|
93
|
+
private _lastMinor;
|
|
94
|
+
private _isValueAtLast;
|
|
95
|
+
private _hasValues;
|
|
96
|
+
private _majorMin;
|
|
97
|
+
private _majorMax;
|
|
98
|
+
private _minorMin;
|
|
99
|
+
private _minorMax;
|
|
100
|
+
private _generation;
|
|
101
|
+
constructor(ctx: CellBufferContext);
|
|
102
|
+
/** Whether any write is held. */
|
|
103
|
+
isHolding(): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Holds a write if it can be held.
|
|
106
|
+
*
|
|
107
|
+
* @returns `true` if the write is held; `false` if it is to be made as it comes.
|
|
108
|
+
*/
|
|
109
|
+
hold(boundedTuples: Tuple.Region<ICell.Update> | null, options: ICellRange.UpdateCellsOptions | undefined, coordValidator: CoordUtils.CoordValidator | null | undefined, internalOptions: InternalTupleUpdate | null): boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Holds a style set on one cell on its own, if it can be held.
|
|
112
|
+
*
|
|
113
|
+
* @param isLocal Whether the update changes only its cell - asked only once the rest allows the
|
|
114
|
+
* hold. A border changes the neighbor's edge and a continuous alignment is drawn across the
|
|
115
|
+
* neighbors, and a read of a neighbor does not see a held write.
|
|
116
|
+
* @returns `true` if the style is held; `false` if it is to be written as it comes.
|
|
117
|
+
*/
|
|
118
|
+
holdStyle(rowIndex: number, colIndex: number, update: IStyle.Update, options: IStyle.UpdateOptions | undefined, isLocal: () => boolean): boolean;
|
|
119
|
+
private _holdIn;
|
|
120
|
+
/**
|
|
121
|
+
* The transaction the held writes are made into. While any is held it is the innermost one, and
|
|
122
|
+
* a read through it sees the sheet without them and does not make them.
|
|
123
|
+
*/
|
|
124
|
+
getTransaction(): ITransaction | null;
|
|
125
|
+
/**
|
|
126
|
+
* What a read of a cell's value returns once the held writes are made, answered without making
|
|
127
|
+
* them.
|
|
128
|
+
*
|
|
129
|
+
* @remarks
|
|
130
|
+
* The answer is the value the scan stores: a number as the write normalizes it, text as the
|
|
131
|
+
* write coerced and cut it, `null` for a cleared cell - and for a formula, which has no value
|
|
132
|
+
* until it is calculated.
|
|
133
|
+
*
|
|
134
|
+
* @returns The value; {@link CellBuffer.NotHeld} if no held write is to the cell's value - none
|
|
135
|
+
* is to the cell, or it writes a style alone, or it is a merged cell other than its first - so
|
|
136
|
+
* the sheet as it is answers.
|
|
137
|
+
*/
|
|
138
|
+
read(rowIndex: number, colIndex: number): Scalar | typeof CellBuffer.NotHeld;
|
|
139
|
+
/** {@link read}, at `major`/`minor` in the scan's orientation. */
|
|
140
|
+
private _valueAt;
|
|
141
|
+
/**
|
|
142
|
+
* What a held write leaves in its cell, answered without making the held writes.
|
|
143
|
+
*
|
|
144
|
+
* @returns The value, the formula text (`null` for none) and the style update; {@link
|
|
145
|
+
* CellBuffer.NotHeld} if no held write is to the cell; `undefined` if the held write has to be
|
|
146
|
+
* made to know - it clears the cell's style, link and comments.
|
|
147
|
+
*/
|
|
148
|
+
readCell(rowIndex: number, colIndex: number): CellBuffer.HeldCell | typeof CellBuffer.NotHeld | undefined;
|
|
149
|
+
/**
|
|
150
|
+
* The style update a held write carries to its cell - an implied one included, such as the
|
|
151
|
+
* number format of text that reads as a date - or the styles set on it on their own, in order.
|
|
152
|
+
*
|
|
153
|
+
* @returns The update; `undefined` if the held writes leave the cell's style as it is.
|
|
154
|
+
*/
|
|
155
|
+
readStyleUpdate(rowIndex: number, colIndex: number): ScanStyleUpdate | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Whether the run `generation` counted is still held: neither made nor dropped.
|
|
158
|
+
*
|
|
159
|
+
* @see {@link getGeneration}
|
|
160
|
+
*/
|
|
161
|
+
isHeldGeneration(generation: number): boolean;
|
|
162
|
+
/** Identifies the run being held; see {@link isHeldGeneration}. */
|
|
163
|
+
getGeneration(): number;
|
|
164
|
+
/** Makes the held writes, as one. */
|
|
165
|
+
flush(): void;
|
|
166
|
+
/** Drops the held writes: the transaction they were made in rolled back, or the sheet closed. */
|
|
167
|
+
discard(): void;
|
|
168
|
+
private _toRange;
|
|
169
|
+
/**
|
|
170
|
+
* Whether a write at `major`/`minor`, in the sheet's orientation, continues the run held.
|
|
171
|
+
*
|
|
172
|
+
* @param isCell The kind of value write; `null` for a style set on its own, which may also be to
|
|
173
|
+
* the cell last written.
|
|
174
|
+
*/
|
|
175
|
+
private _continues;
|
|
176
|
+
/** Begins a scan for the run. */
|
|
177
|
+
private _begin;
|
|
178
|
+
/** Scans one cell; `major`/`minor` in the scan's orientation. */
|
|
179
|
+
private _scanCell;
|
|
180
|
+
private _beginRun;
|
|
181
|
+
private _orientTo;
|
|
182
|
+
/**
|
|
183
|
+
* Scans and holds one write that continues the run, at `major`/`minor` in the sheet's
|
|
184
|
+
* orientation.
|
|
185
|
+
*
|
|
186
|
+
* @returns `false` if the scan refused it; it is not held then, and the run is as it was.
|
|
187
|
+
*/
|
|
188
|
+
private _push;
|
|
189
|
+
/** Holds a style set on its own, continuing the run, at `major`/`minor` in the sheet's orientation. */
|
|
190
|
+
private _pushStyle;
|
|
191
|
+
/**
|
|
192
|
+
* The second cell written decides the run's order: the run's scan begins, over the whole sheet,
|
|
193
|
+
* and the writes to the first cell go through it again, in order.
|
|
194
|
+
*/
|
|
195
|
+
private _orient;
|
|
196
|
+
private _clear;
|
|
197
|
+
}
|
|
198
|
+
/** @internal */
|
|
199
|
+
export declare namespace CellBuffer {
|
|
200
|
+
/** {@link CellBuffer.read}: no held write is to the cell. */
|
|
201
|
+
const NotHeld: unique symbol;
|
|
202
|
+
/** {@link CellBuffer.readCell}: what the held writes leave in their cell. */
|
|
203
|
+
interface HeldCell {
|
|
204
|
+
/** The value written; `null` too when {@link isValueHeld} is `false`. */
|
|
205
|
+
value: Scalar;
|
|
206
|
+
/** `false` if no held write is to the cell's value: the sheet's stands. */
|
|
207
|
+
isValueHeld: boolean;
|
|
208
|
+
/** The run's formula imaged at the cell, without a leading `=`; `null` for none. */
|
|
209
|
+
formula: string | null;
|
|
210
|
+
/** The style updates held for the cell, an implied one included; `undefined` for none. */
|
|
211
|
+
style: ScanStyleUpdate | undefined;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=_CellBuffer.d.ts.map
|
|
@@ -28,6 +28,7 @@ export declare class InvalidSheetRanges extends SheetRanges {
|
|
|
28
28
|
insert(): this;
|
|
29
29
|
delete(): this;
|
|
30
30
|
insertFrom(): Promise<this | null>;
|
|
31
|
+
canInsertFrom(): boolean;
|
|
31
32
|
getSnapshot(): ICellRange.ISnapshot;
|
|
32
33
|
copyFrom(): Promise<this | null>;
|
|
33
34
|
getEntireRows(): this;
|
|
@@ -41,10 +42,10 @@ export declare class InvalidSheetRanges extends SheetRanges {
|
|
|
41
42
|
getStats(): IRangeStats;
|
|
42
43
|
getCounts(): ICellRange.Counts;
|
|
43
44
|
getRegions(): ICellRegions;
|
|
44
|
-
getDirectPrecedents(): ICellRanges | null
|
|
45
|
-
getDirectDependents(): ICellRanges | null
|
|
46
|
-
getPrecedents(): ICellRanges | null
|
|
47
|
-
getDependents(): ICellRanges | null
|
|
45
|
+
getDirectPrecedents(): Promise<ICellRanges | null>;
|
|
46
|
+
getDirectDependents(): Promise<ICellRanges | null>;
|
|
47
|
+
getPrecedents(): Promise<ICellRanges | null>;
|
|
48
|
+
getDependents(): Promise<ICellRanges | null>;
|
|
48
49
|
isContentful(): boolean;
|
|
49
50
|
getRowCount(): number;
|
|
50
51
|
getColumnCount(): number;
|
|
@@ -58,7 +59,6 @@ export declare class InvalidSheetRanges extends SheetRanges {
|
|
|
58
59
|
isSingleCell(): boolean;
|
|
59
60
|
isEqual(): boolean;
|
|
60
61
|
getFixed(): this;
|
|
61
|
-
getCount(): number;
|
|
62
62
|
at(): ICellRange;
|
|
63
63
|
doBatch<R>(): R | Promise<R>;
|
|
64
64
|
getCoords(): readonly Readonly<IRange.FixableCoords>[];
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { IRange } from '@sheetxl/primitives';
|
|
2
|
+
import { ISpatialMap } from '../collections';
|
|
3
|
+
import { IListener } from '../listener';
|
|
4
|
+
import { IAnchored } from '../anchored/IAnchored';
|
|
5
|
+
import { Anchored } from '../anchored/Anchored';
|
|
6
|
+
import { ICellRange, ICellRanges } from '../cellRange';
|
|
7
|
+
/**
|
|
8
|
+
* The reference a range listener watches, as an entry in a versioned anchored map.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* This is the smallest thing that can be anchored. It deliberately does NOT extend
|
|
12
|
+
* `AbstractAnchored`: it has no store record of its own, no emitter, and no creation commit, so a
|
|
13
|
+
* UI layer can register one per scroll step. What it gets from living in the map is everything a
|
|
14
|
+
* conditional format's anchor gets - it shifts, splits and goes `#REF!` through `IAnchoredMap.shift`,
|
|
15
|
+
* and it comes back on undo because the map is in the snapshot.
|
|
16
|
+
*
|
|
17
|
+
* The callback is NOT here. It lives on the sheet instance keyed by {@link getNodeId}, because a
|
|
18
|
+
* callback is an observer, never document state.
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export declare class ListenerAnchor implements IAnchored {
|
|
23
|
+
/** For runtime type checking. */
|
|
24
|
+
readonly isIAnchored: true;
|
|
25
|
+
protected _nodeId: number;
|
|
26
|
+
protected _options: ICellRange.ListenerOptions;
|
|
27
|
+
protected _resolveRanges: (coords: IRange.Coords[] | null) => ICellRanges;
|
|
28
|
+
protected _getContainerCoords: () => IRange.Coords[] | null;
|
|
29
|
+
protected _deleted: boolean;
|
|
30
|
+
protected _closed: boolean;
|
|
31
|
+
constructor(options: ListenerAnchor.ConstructorOptions);
|
|
32
|
+
/**
|
|
33
|
+
* Identifies this node. The sheet holds the callback under the same key.
|
|
34
|
+
*/
|
|
35
|
+
getNodeId(): number;
|
|
36
|
+
/**
|
|
37
|
+
* The node's coords in the snapshot the sheet is currently at, or `null` when it holds no entry.
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* `null` is not an error state to guard against - it IS the answer for a range that was deleted
|
|
41
|
+
* (`#REF!`) and for a snapshot from before the node was registered (`#N/A`).
|
|
42
|
+
*/
|
|
43
|
+
getContainerCoords(): IRange.Coords[] | null;
|
|
44
|
+
/**
|
|
45
|
+
* What the listener asked for when it registered.
|
|
46
|
+
*/
|
|
47
|
+
getListenerOptions(): ICellRange.ListenerOptions;
|
|
48
|
+
/** {@inheritDoc IAnchored.getRanges} */
|
|
49
|
+
getRanges(): ICellRanges;
|
|
50
|
+
/** {@inheritDoc IAnchored.isProtected} */
|
|
51
|
+
isProtected(): boolean;
|
|
52
|
+
/** {@inheritDoc IAnchored.addListeners} */
|
|
53
|
+
addListeners(_listeners: IAnchored.IListeners, _options?: IListener.Options): IListener.Remove;
|
|
54
|
+
/** {@inheritDoc IAnchored.delete} */
|
|
55
|
+
delete(): void;
|
|
56
|
+
/**
|
|
57
|
+
* The node's ranges are back, so it is no longer `#REF!`.
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* Undo restores the map, and with it the entry a delete removed. The flag has to follow, or a
|
|
61
|
+
* reference that came back would keep reporting the error it had on the way out.
|
|
62
|
+
*/
|
|
63
|
+
undelete(): void;
|
|
64
|
+
/** {@inheritDoc IAnchored.isDeleted} */
|
|
65
|
+
isDeleted(): boolean;
|
|
66
|
+
/** {@inheritDoc IAnchored.close} */
|
|
67
|
+
close(): void;
|
|
68
|
+
/** {@inheritDoc IAnchored.isClosed} */
|
|
69
|
+
isClosed(): boolean;
|
|
70
|
+
}
|
|
71
|
+
/** @internal */
|
|
72
|
+
export declare namespace ListenerAnchor {
|
|
73
|
+
interface ConstructorOptions {
|
|
74
|
+
nodeId: number;
|
|
75
|
+
listenerOptions: ICellRange.ListenerOptions;
|
|
76
|
+
/** Builds the ranges for the node's coords; an INVALID ranges when it has none. */
|
|
77
|
+
resolveRanges: (coords: IRange.Coords[] | null) => ICellRanges;
|
|
78
|
+
/** The node's coords in the map the sheet is currently at, or `null` when it holds no entry. */
|
|
79
|
+
getContainerCoords: () => IRange.Coords[] | null;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Shift one of a node's ranges the way the calc graph shifts a formula precedent.
|
|
83
|
+
*
|
|
84
|
+
* @remarks
|
|
85
|
+
* The map the nodes live in is asked not to split on a shift, and to bring each entry here
|
|
86
|
+
* instead of using its own arithmetic. The answer is then, by construction, the answer
|
|
87
|
+
* `=SUM(A1:C3)` gets for the same operation: `shiftReferenceAxis` is the rule `shiftPrecedents`
|
|
88
|
+
* applies to every reference it rewrites. Inserting one cell at A1 shifting down leaves the
|
|
89
|
+
* reference `A2:C4`; deleting A1:A3 shifting up leaves it `#REF!`.
|
|
90
|
+
*
|
|
91
|
+
* A reference pushed past the edge of the sheet is `#REF!` as well, whole or in part. The graph
|
|
92
|
+
* applies that when it writes a reference out (`TokenUtils`: an endpoint outside the sheet's
|
|
93
|
+
* bounds is written as `#REF!`); the node applies it here, to the same effect.
|
|
94
|
+
*
|
|
95
|
+
* Handed to the map as {@link IAnchoredMap.ConstructorOptions.shiftEntry}.
|
|
96
|
+
*
|
|
97
|
+
* @param details The shift, as the map describes it.
|
|
98
|
+
* @param entire The bounds of the sheet the node is on.
|
|
99
|
+
*/
|
|
100
|
+
function shiftReference(details: ISpatialMap.ShiftDetails, entire: IRange.Coords): IRange.Coords | null;
|
|
101
|
+
/** The container hooks a node registers; see {@link Anchored.ContainerCallbacks}. */
|
|
102
|
+
type Callbacks = Anchored.ContainerCallbacks;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=_ListenerAnchor.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IRange } from '@sheetxl/primitives';
|
|
2
|
+
import { RunCoords } from '@sheetxl/utils';
|
|
3
|
+
import { RangeSweep, PieceStore } from '../collections/_RangeSweep';
|
|
4
|
+
import { RangeState } from './_SheetStateTypes';
|
|
5
|
+
import { SheetReadContext } from './_SheetStateReader';
|
|
6
|
+
export { type PieceStore } from '../collections/_RangeSweep';
|
|
7
|
+
export declare function collectPieces(ctx: SheetReadContext, bounds: IRange.Coords, searchTypes: RangeState.SearchTypes | null, injectReferences: IRange.JSONReference<any>[][] | undefined, containedBounds: IRange.Coords | undefined, hiddenRows: readonly RunCoords[] | null, hiddenColumns: readonly RunCoords[] | null): PieceStore | null;
|
|
8
|
+
/**
|
|
9
|
+
* The range-state sweep: regions materialize as `RangeState.Intersection` (values merged by type
|
|
10
|
+
* key, overlapping same-key values as arrays in overlap order).
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare class RangeStateSweep extends RangeSweep<RangeState.Intersection> {
|
|
14
|
+
protected _materialize(region: number): RangeState.Intersection;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=_RangeStateSweep.d.ts.map
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Scalar } from '@sheetxl/primitives';
|
|
2
|
+
import { IStringCollection } from '../string';
|
|
3
|
+
import { ICell } from '../cell';
|
|
4
|
+
import { IListLike } from '../collections';
|
|
5
|
+
import { MixedTypedArrayList } from '../collections/MixedTypedArrayList';
|
|
6
|
+
/**
|
|
7
|
+
* Makes the list a run of cell values is stored as, over the sheet's string collection.
|
|
8
|
+
*
|
|
9
|
+
* The representation is chosen from what the writer saw ({@link Tuple.Hint}) and the run's length,
|
|
10
|
+
* never by looking at the values again:
|
|
11
|
+
* - shorter than {@link ScalarListFactory.TypedThreshold}: a plain array (a typed list costs
|
|
12
|
+
* more than its values below that, measured at 64 on Node);
|
|
13
|
+
* - one value throughout: a `RepeatingList` of period 1, which the engine reads once;
|
|
14
|
+
* - holding rich data: a plain array (no pool for it yet);
|
|
15
|
+
* - otherwise a {@link MixedTypedArrayList}, strings and errors by id.
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
export declare class ScalarListFactory {
|
|
20
|
+
/** Below this length a run is a plain array. */
|
|
21
|
+
static readonly TypedThreshold = 64;
|
|
22
|
+
readonly codec: MixedTypedArrayList.Codec<Scalar>;
|
|
23
|
+
private readonly _strings;
|
|
24
|
+
private _codes;
|
|
25
|
+
private _nums;
|
|
26
|
+
constructor(strings: IStringCollection);
|
|
27
|
+
/**
|
|
28
|
+
* The list for a run a builder collected. Passed to `Tuple.Builder` as its `createList`.
|
|
29
|
+
*
|
|
30
|
+
* @param values The run's values, in an array that may be the writer's reused scratch: never
|
|
31
|
+
* retained, what the list keeps is copied out.
|
|
32
|
+
* @param length How many of `values` are the run's. Never 0.
|
|
33
|
+
* @param hint The {@link Tuple.Hint} bits the writer saw; computed here when a writer has none.
|
|
34
|
+
* @throws When a number is NaN or infinite: the entry points normalize those to `#NUM!`, so one
|
|
35
|
+
* arriving here is an internal path that skipped its boundary, and storing it would launder the
|
|
36
|
+
* defect into a plausible-looking cell.
|
|
37
|
+
*/
|
|
38
|
+
readonly createList: (values: Scalar[], length?: number, hint?: number) => IListLike<Scalar>;
|
|
39
|
+
/**
|
|
40
|
+
* The list for a run as a file holds it (`ISheet.JSON` data): numbers and booleans as they are,
|
|
41
|
+
* strings as their id in this factory's collection, errors and rich data typed. One look at each
|
|
42
|
+
* value classifies it into a reused scratch; nothing is resolved for a typed run.
|
|
43
|
+
*
|
|
44
|
+
* @param values The run's JSON values. Never empty.
|
|
45
|
+
* @param onError Called with the offset of every error value, for the error index.
|
|
46
|
+
*/
|
|
47
|
+
fromJSONRun(values: readonly ICell.JSON[], onError?: (offset: number) => void): IListLike<Scalar>;
|
|
48
|
+
/**
|
|
49
|
+
* The list for a run whose values are already codes and numbers, as a file holds them: string
|
|
50
|
+
* ids, error codes, ints and doubles. Nothing is resolved for a typed run; a short run is
|
|
51
|
+
* resolved into a plain array.
|
|
52
|
+
*
|
|
53
|
+
* @param codes The {@link MixedTypedArrayList.Type} per position; never `Rich`.
|
|
54
|
+
* @param values The number per position; ignored for a boolean or a blank.
|
|
55
|
+
*/
|
|
56
|
+
fromEncoded(codes: Uint8Array, values: ArrayLike<number>): IListLike<Scalar>;
|
|
57
|
+
/** The representation for `length` classified values, from what the classification saw. */
|
|
58
|
+
private _fromCodes;
|
|
59
|
+
private _decode;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=_ScalarListFactory.d.ts.map
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { IRange } from '@sheetxl/primitives';
|
|
2
|
+
import { ICellRange } from '../cellRange';
|
|
3
|
+
import { ICell } from '../cell';
|
|
4
|
+
import { IAutoFill } from '../autoFill';
|
|
5
|
+
import { ISheet } from './ISheet';
|
|
6
|
+
import { SheetMutationContext } from './Sheet';
|
|
7
|
+
/**
|
|
8
|
+
* The default fill a range implies — which cells it reads, which it covers, which types can be
|
|
9
|
+
* offered, and the one to open on. See {@link ICellRange.getDefaultAutoFillCriteria}.
|
|
10
|
+
*
|
|
11
|
+
* @returns `null` when the range is one cell deep along the direction — there is nowhere to fill.
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare function getDefaultAutoFillCriteria(sheet: ISheet, rangeCoords: IRange.Coords, direction?: IRange.Direction, destination?: IRange.Coords): IAutoFill.DefaultCriteria | null;
|
|
15
|
+
/**
|
|
16
|
+
* Resolve a raw destination to the nearest destination {@link autoFill} accepts — what
|
|
17
|
+
* {@link ICellRange.AutoFillOptions.snap} runs before the fill.
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare function autoFillRange(ctx: SheetMutationContext, template: IRange.Coords, destination: IRange.Coords): IRange.Coords;
|
|
21
|
+
/**
|
|
22
|
+
* What an `autoFill` run with `preview` hands back instead of committing: the destination plus a
|
|
23
|
+
* cell-level projection of the fill that *would* happen. `SheetRange` wraps this in a read-only
|
|
24
|
+
* `ICellRange` — see {@link ICellRange.autoFill}.
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export interface AutoFillProjection {
|
|
28
|
+
/** The destination the projection covers. */
|
|
29
|
+
coords: IRange.Coords;
|
|
30
|
+
/**
|
|
31
|
+
* The projected (uncommitted) cell at these coords. Cells the fill does not touch read straight from
|
|
32
|
+
* the sheet; filled cells are derived — value, style and, when the template tiles a merge across the
|
|
33
|
+
* fill, the merge itself (so `getRange`/`getSpans`/`getExtrusions` report the projected block, and a
|
|
34
|
+
* coord inside one resolves to that block's anchor, where the value lives).
|
|
35
|
+
*/
|
|
36
|
+
getCellAt(rowIndex: number, colIndex: number): ICell;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The single-entry series memo behind `autoFill({ preview })` — the "last autofill".
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
* A drag previews the same template in the same direction over and over, changing only the destination;
|
|
43
|
+
* the series does not depend on the destination, so scanning it once serves the whole drag. Held on the
|
|
44
|
+
* sheet (one entry) and validated against `state` identity: the transaction store rebuilds the state
|
|
45
|
+
* object on every real change (reference-equal *is* its "nothing changed" signal), so any mutation,
|
|
46
|
+
* undo or redo drops the memo without anything having to invalidate it explicitly.
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export interface AutoFillPreviewCache {
|
|
50
|
+
/** The sheet state the series was read from. */
|
|
51
|
+
state: unknown;
|
|
52
|
+
template: IRange.Coords;
|
|
53
|
+
isForward: boolean;
|
|
54
|
+
filler: IAutoFill.Filler;
|
|
55
|
+
/** The caller's `fillerOptions` **by reference** — a caller that rebuilds it simply misses the memo. */
|
|
56
|
+
fillerOptions: IAutoFill.Options | undefined;
|
|
57
|
+
/** Series per line of the opposite axis; `null` marks a line that produced nothing to fill. */
|
|
58
|
+
seriesByLine: Map<number, IAutoFill.FillAt | null>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Fill the template's series/pattern into the destination (outward drag of the fill handle). Handles
|
|
62
|
+
* merges (tiles them, never splits), date series, previewing, table extension, and copies the
|
|
63
|
+
* per-feature style maps into the filled range. Delegates a negative (inward) fill to
|
|
64
|
+
* {@link autoFillShrink}. See SHEET-SPLIT-DESIGN §5.4.
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
export declare function autoFill(ctx: SheetMutationContext, template: IRange.Coords, destination: IRange.Coords, options?: ICellRange.AutoFillOptions): boolean | AutoFillProjection;
|
|
68
|
+
/**
|
|
69
|
+
* An inward fill — Excel's drag of the fill handle back over the source range. The strip of the
|
|
70
|
+
* template beyond the destination edge is vacated: its cells are cleared, not filled.
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
73
|
+
export declare function autoFillShrink(ctx: SheetMutationContext, template: IRange.Coords, destination: IRange.Coords, direction: IRange.Direction, options?: ICellRange.AutoFillOptions): boolean;
|
|
74
|
+
//# sourceMappingURL=_SheetAutoFillUtils.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IRange } from '@sheetxl/primitives';
|
|
2
|
+
import { Size } from '@sheetxl/utils';
|
|
2
3
|
import { ICellRange } from '../cellRange';
|
|
3
4
|
import { Sheet } from './Sheet';
|
|
4
5
|
/**
|
|
@@ -15,4 +16,31 @@ import { Sheet } from './Sheet';
|
|
|
15
16
|
* @internal
|
|
16
17
|
*/
|
|
17
18
|
export declare function doAutoFit(sheet: Sheet, ranges: readonly IRange.Coords[], options?: ICellRange.AutoFitOptions): void;
|
|
19
|
+
/**
|
|
20
|
+
* The size `range`'s content needs — what {@link doAutoFit} would commit, reduced to a `Size`
|
|
21
|
+
* instead of written.
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* The same phases as `doAutoFit` ({@link measureRange}, then {@link reduceColumnWidths} /
|
|
25
|
+
* {@link reduceRowHeights}) minus the commit. Everything that differs follows from not writing:
|
|
26
|
+
*
|
|
27
|
+
* - No {@link ApplyPolicy}. `expandOnly` reconciles a measurement with the size a header already
|
|
28
|
+
* has; a query has no such size to reconcile against, and measurement never reads the policy.
|
|
29
|
+
* - `axes: Both` still lays the rows out against the widths the column pass produced — a wrapped
|
|
30
|
+
* cell's height is a function of its column width — but those widths reach
|
|
31
|
+
* {@link refreshSegmentWidths} as a lookup rather than being read back from headers that were
|
|
32
|
+
* never written.
|
|
33
|
+
* - The scan is not widened to the used range. Widening proves a shrink is safe, and a query does
|
|
34
|
+
* not shrink; so only the range's own content is measured.
|
|
35
|
+
* - No protection check and no protected-axis skip: nothing is written, so nothing can be violated.
|
|
36
|
+
*
|
|
37
|
+
* An axis not being fitted reports its current size, so the result is comparable with
|
|
38
|
+
* `getBounds()` whichever axes were asked for.
|
|
39
|
+
*
|
|
40
|
+
* @param sheet The sheet to measure.
|
|
41
|
+
* @param range The range to measure.
|
|
42
|
+
* @param options Measurement options (axes, minContent, formulaView).
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
export declare function doBestFit(sheet: Sheet, range: IRange.Coords, options?: ICellRange.BestFitOptions): Size;
|
|
18
46
|
//# sourceMappingURL=_SheetAutoFitUtils.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { IRange } from '@sheetxl/primitives';
|
|
2
|
+
/**
|
|
3
|
+
* The kinds of change a sheet announces from its commits, and the scope they are announced
|
|
4
|
+
* under.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Every mutation appends the ranges it wrote under one of these, so a commit carries what to
|
|
8
|
+
* announce rather than what its last operation changed. The categories are recorded as the
|
|
9
|
+
* `sheet.events` intent (`_SheetIntents`), so they are unioned across the operations of a batch
|
|
10
|
+
* and travel on the commit, which is what lets an undo announce the same categories the forward
|
|
11
|
+
* commit did.
|
|
12
|
+
*
|
|
13
|
+
* The scope is {@link ISheet.getId}, so a commit that spans sheets announces each of them
|
|
14
|
+
* separately.
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* A category of change to announce, named after the mutation kind that produces it.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
* * `data` - cell values written, cleared or pasted.
|
|
23
|
+
* * `style` - styles and number formats.
|
|
24
|
+
* * `comments` - comments and notes.
|
|
25
|
+
* * `hyperlinks` - hyperlinks.
|
|
26
|
+
* * `merges` - merge and unmerge.
|
|
27
|
+
* * `spills` - spill regions written or cleared.
|
|
28
|
+
* * `address` - a structural shift: an insert, a delete or a move of cells.
|
|
29
|
+
* * `layout` - sizes and hidden runs.
|
|
30
|
+
* * `anchored` - a model anchored over a range: a table, a conditional format, a validation, a
|
|
31
|
+
* protected range.
|
|
32
|
+
* * `sheets` - the sheet itself, over the cells a reader of it may now read differently. A rename
|
|
33
|
+
* is one: every cross-sheet formula naming it resolves again.
|
|
34
|
+
*
|
|
35
|
+
* `data`, `style`, `merges`, `spills`, `address` and `layout` each have an event of their own;
|
|
36
|
+
* the rest reach a consumer only through the union. A consumer that wants "did anything happen in
|
|
37
|
+
* my box" takes the union rather than naming categories, so a category added later cannot
|
|
38
|
+
* silently stop reaching it.
|
|
39
|
+
*/
|
|
40
|
+
export type EventCategory = 'data' | 'style' | 'comments' | 'hyperlinks' | 'merges' | 'spills' | 'address' | 'layout' | 'anchored' | 'sheets';
|
|
41
|
+
/** What one sheet has to announce from a commit, by category. */
|
|
42
|
+
export type SheetEvents = Readonly<Partial<Record<EventCategory, readonly IRange.Coords[]>>>;
|
|
43
|
+
//# sourceMappingURL=_SheetEvents.d.ts.map
|
|
@@ -1,9 +1,40 @@
|
|
|
1
1
|
import { IRange } from '@sheetxl/primitives';
|
|
2
|
+
import { RunCoords } from '@sheetxl/utils';
|
|
2
3
|
import { ITransaction } from '../transaction';
|
|
3
4
|
import { ICondition } from '../condition';
|
|
4
5
|
import { Sheet } from './Sheet';
|
|
5
6
|
/**
|
|
6
|
-
*
|
|
7
|
+
* What a filter evaluation settles: on one axis, the runs that stay visible and the runs that hide.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* The two halves of a filter are split so a caller with its own transaction (a table, which also
|
|
11
|
+
* writes its levels) can evaluate first and write inside: {@link evalFilter} may await a calc, and
|
|
12
|
+
* a transaction never stays open across an await.
|
|
13
|
+
*/
|
|
14
|
+
export interface FilterRuns {
|
|
15
|
+
/** The axis the runs index. */
|
|
16
|
+
axis: IRange.Axis;
|
|
17
|
+
/** The runs that match every condition, ascending. */
|
|
18
|
+
visibleRuns: readonly RunCoords[];
|
|
19
|
+
/** The runs that fail one, ascending. */
|
|
20
|
+
hiddenRuns: readonly RunCoords[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Read-only: resolves every condition and settles the final visible and hidden runs.
|
|
24
|
+
*/
|
|
25
|
+
export declare function evalFilter(sheet: Sheet, coords: Readonly<IRange.Coords>, condition: ICondition.Input | ICondition.RangeOptions | null | undefined): Promise<FilterRuns>;
|
|
26
|
+
/**
|
|
27
|
+
* Writes the hidden bits {@link evalFilter} settled. Inside the caller's open transaction.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* Full recompute, every apply (DESIGN-FILTER.md §2): unhide every row/column that now matches,
|
|
31
|
+
* then hide every row/column that doesn't — including one the user hid manually, matching real
|
|
32
|
+
* Excel AutoFilter (there's no persisted "hidden by filter" vs. "hidden by user" bit to preserve).
|
|
33
|
+
*/
|
|
34
|
+
export declare function applyFilterRuns(sheet: Sheet, runs: FilterRuns, options?: ITransaction.OperationOptions): void;
|
|
35
|
+
/**
|
|
36
|
+
* Sheet specific filter utils. Mirrors `_SheetSortUtils.doSort`: {@link evalFilter}, then one
|
|
37
|
+
* transaction around {@link applyFilterRuns}.
|
|
7
38
|
*/
|
|
8
39
|
export declare function doFilter(sheet: Sheet, coords: Readonly<IRange.Coords>, condition: ICondition.Input | ICondition.RangeOptions, options?: ITransaction.OperationOptions): Promise<IRange.Coords>;
|
|
9
40
|
//# sourceMappingURL=_SheetFilterUtils.d.ts.map
|