@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,250 @@
|
|
|
1
|
+
import { IRange } from '@sheetxl/primitives';
|
|
2
|
+
import { ICellRange } from '../cellRange';
|
|
3
|
+
import { IRangeSelection } from '../selection';
|
|
4
|
+
import { ITransaction } from '../transaction';
|
|
5
|
+
import { SheetEvents } from './_SheetEvents';
|
|
6
|
+
/**
|
|
7
|
+
* Directives a sheet operation records on its transaction: something to do once the operation
|
|
8
|
+
* completes, rather than a change the operation makes.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* All coords, ids and options - no sheet, view or range instances. An intent is recorded on the
|
|
12
|
+
* root transaction, so a batch of operations resolves one set of them, and it travels on the
|
|
13
|
+
* commit, so undo and redo read it back.
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
/** Key for the {@link EventsIntent}. */
|
|
18
|
+
export declare const IntentEvents = "sheet.events";
|
|
19
|
+
/** Key for the {@link FormulasEnteredIntent}. */
|
|
20
|
+
export declare const IntentFormulasEntered = "sheet.formulasEntered";
|
|
21
|
+
/** Key for the {@link SelectionIntent}`[]` the operations of a commit declared. */
|
|
22
|
+
export declare const IntentSelection = "sheet.selection";
|
|
23
|
+
/** Key for the {@link BatchSelectIntent}. */
|
|
24
|
+
export declare const IntentBatchSelect = "sheet.batchSelect";
|
|
25
|
+
/** Key for {@link AutoFitIntent}`[]`. */
|
|
26
|
+
export declare const IntentAutoFit = "sheet.autoFit";
|
|
27
|
+
/**
|
|
28
|
+
* Key for the sheet ids ({@link ISheet.getId}) whose commit-time protection check stands down.
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* The catch-all at `onBeforeCommitStart` refuses any write to a locked sheet. An operation that
|
|
32
|
+
* has already ruled on its own allowance (`Sheet._protectionCheck`) records itself here so the
|
|
33
|
+
* catch-all does not veto what the allowance permitted; so does a load, which is not a user's
|
|
34
|
+
* write. Read on the way in, so it has to be on the record before the root commits.
|
|
35
|
+
*/
|
|
36
|
+
export declare const IntentSkipProtectionCheck = "sheet.skipProtectionCheck";
|
|
37
|
+
/** Key for the {@link FreezePanesIntent}. */
|
|
38
|
+
export declare const IntentFreezePanes = "sheet.freezePanes";
|
|
39
|
+
/** Key for the {@link MovableSelectionIntent}. */
|
|
40
|
+
export declare const IntentMovableSelection = "sheet.movableSelection";
|
|
41
|
+
/**
|
|
42
|
+
* Key for the sheet ids ({@link ISheet.getId}) a load is populating in this commit.
|
|
43
|
+
*
|
|
44
|
+
* @remarks
|
|
45
|
+
* A load is not an edit: nothing it writes is announced, and the calculation it would otherwise
|
|
46
|
+
* trigger is the calc-on-load decision's to make, not the commit's. The writes inside a load go
|
|
47
|
+
* through the same mutation paths as an edit and record the same changes (an added table records
|
|
48
|
+
* `anchored`), so the announce has to be told to stand down for the commit as a whole. Implies
|
|
49
|
+
* {@link IntentSkipProtectionCheck}.
|
|
50
|
+
*/
|
|
51
|
+
export declare const IntentInitial = "sheet.initial";
|
|
52
|
+
/**
|
|
53
|
+
* Key for the sheet ids ({@link ISheet.getId}) whose entered formulas should take the number
|
|
54
|
+
* format of the first cell they read that has one, or failing that the format their results
|
|
55
|
+
* carry, once the compile and the calculation have them.
|
|
56
|
+
*
|
|
57
|
+
* @remarks
|
|
58
|
+
* The one directive that cannot be resolved when the operation completes: the result it formats,
|
|
59
|
+
* and the engine's word on which cells the formula reads, do not exist yet. It is resolved by the
|
|
60
|
+
* calculation's amend into this commit (`Sheet._promoteCalcResults`), and only once - see
|
|
61
|
+
* {@link IntentCalcResolved}.
|
|
62
|
+
*/
|
|
63
|
+
export declare const IntentAutoFormat = "sheet.autoFormat";
|
|
64
|
+
/**
|
|
65
|
+
* Key for the sheet ids whose entry directives the calculation has resolved for this commit.
|
|
66
|
+
*
|
|
67
|
+
* @remarks
|
|
68
|
+
* Recorded by the calculation's amend once it has formatted and fitted the results of the
|
|
69
|
+
* formulas the commit entered on that sheet. A later pass for the same commit - a dependent on
|
|
70
|
+
* another sheet, an explicit recalculation, the pass a redo triggers - finds the sheet here and
|
|
71
|
+
* leaves the promoted format and the sizes as they are, which is also why an undo and a redo see
|
|
72
|
+
* them: they are in the snapshot, not re-derived.
|
|
73
|
+
*/
|
|
74
|
+
export declare const IntentCalcResolved = "sheet.calcResolved";
|
|
75
|
+
/**
|
|
76
|
+
* What to announce once the operation lands, by sheet ({@link ISheet.getId}) and by category.
|
|
77
|
+
*
|
|
78
|
+
* @remarks
|
|
79
|
+
* The one intent every mutation writes. A union: each write appends the ranges it wrote, so a
|
|
80
|
+
* batch describes all of its operations rather than its last, and an amend unions into the commit
|
|
81
|
+
* it folds into. Written copy-on-write ({@link Sheet._recordChange}), because an amend's
|
|
82
|
+
* accumulator is handed the TARGET commit's value as its `prev` and must not mutate it.
|
|
83
|
+
*
|
|
84
|
+
* What it holds is not "what was touched" - a registration amend writes state and deliberately
|
|
85
|
+
* records nothing - but what a consumer has to hear about. Six of the categories have an event of
|
|
86
|
+
* their own; the rest reach a consumer through the union ({@link Sheet._changedRanges}), which is
|
|
87
|
+
* also what an undo selects over and what gates the calculation.
|
|
88
|
+
*/
|
|
89
|
+
export type EventsIntent = Readonly<Record<string, SheetEvents>>;
|
|
90
|
+
/**
|
|
91
|
+
* The ranges a formula was entered over, by sheet ({@link ISheet.getId}).
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* A subset of the `data` category, found from what the write produced rather than named by the
|
|
95
|
+
* caller - a cleared formula is a data change and nothing more. No event fires for it: it is read
|
|
96
|
+
* by the calculation's amend (`Sheet._promoteCalcResults`) to decide what to format and what to
|
|
97
|
+
* fit, which is Excel's rule that entering a formula formats and fits it while recalculating it
|
|
98
|
+
* does not.
|
|
99
|
+
*/
|
|
100
|
+
export type FormulasEnteredIntent = Readonly<Record<string, readonly IRange.Coords[]>>;
|
|
101
|
+
/**
|
|
102
|
+
* `list` with `ranges` appended, for an intent accumulator that unions range lists.
|
|
103
|
+
*
|
|
104
|
+
* @param list The list on the record so far, or none.
|
|
105
|
+
* @param ranges What this write adds.
|
|
106
|
+
* @param owner The id of the operation recording it ({@link ITransaction.getId}).
|
|
107
|
+
*
|
|
108
|
+
* @remarks
|
|
109
|
+
* An accumulator must not change the value it is handed: on a fold that value is the TARGET
|
|
110
|
+
* commit's, and a list the target announces would grow by what the amend recorded. A list this
|
|
111
|
+
* operation built is a different matter - nothing else holds it until the operation lands - so it
|
|
112
|
+
* is appended to, and only a list from elsewhere is copied first. Without that, a batch of one
|
|
113
|
+
* write per cell copies every range recorded so far on each write, and so does the replay of those
|
|
114
|
+
* writes when the batch folds.
|
|
115
|
+
*/
|
|
116
|
+
export declare const _appendOwnedRanges: (list: readonly IRange.Coords[] | undefined, ranges: readonly IRange.Coords[], owner: string) => readonly IRange.Coords[];
|
|
117
|
+
/**
|
|
118
|
+
* What one operation declared about the selection: where it leaves the user, and where an undo of
|
|
119
|
+
* it lands when that is somewhere else.
|
|
120
|
+
*
|
|
121
|
+
* @remarks
|
|
122
|
+
* Every operation declares, whatever it was asked, and never applies: whether the view moves, and
|
|
123
|
+
* which declaration it moves to, is decided once the commit closes ({@link resolveSelection}). So
|
|
124
|
+
* an operation neither reads the transaction stack nor decides whether it is the one that counts,
|
|
125
|
+
* and a replay can apply a different policy to the same record.
|
|
126
|
+
*
|
|
127
|
+
* Entries are kept in the order they were declared, one per operation, so a batch holds all of
|
|
128
|
+
* its operations'.
|
|
129
|
+
*/
|
|
130
|
+
export interface SelectionIntent {
|
|
131
|
+
/** {@link ISheet.getId} of the sheet the selection is on. */
|
|
132
|
+
sheetId: string;
|
|
133
|
+
/**
|
|
134
|
+
* {@link ISheetView.getId} of the view the operation was made against.
|
|
135
|
+
*
|
|
136
|
+
* @remarks
|
|
137
|
+
* A sheet can be shown through more than one view - each user in a shared workbook has their
|
|
138
|
+
* own - and only the view that made the change is moved by undoing it.
|
|
139
|
+
*/
|
|
140
|
+
viewId: string;
|
|
141
|
+
/** Where the operation leaves the user, and where a redo of it lands. */
|
|
142
|
+
selection: Partial<IRangeSelection.Coords>;
|
|
143
|
+
/**
|
|
144
|
+
* Where an undo of the operation lands, when it is not {@link selection}: an auto-fill undoes
|
|
145
|
+
* to the template it was dragged from, a cut-drag to the source.
|
|
146
|
+
*/
|
|
147
|
+
undo?: Partial<IRangeSelection.Coords>;
|
|
148
|
+
/**
|
|
149
|
+
* The operation's `autoSelect`, resolved against its axis (see `Sheet._resolveSelectOptions`),
|
|
150
|
+
* or `false` when it was not asked to select.
|
|
151
|
+
*/
|
|
152
|
+
options: boolean | ICellRange.SelectOptions;
|
|
153
|
+
/** The operation's `autoSelectRestore`, resolved like {@link options}: whether an undo or a redo selects. */
|
|
154
|
+
restoreOptions: boolean | ICellRange.SelectOptions;
|
|
155
|
+
/**
|
|
156
|
+
* The operation ran inside another one ({@link _isInsideOperation}): the writes a table makes
|
|
157
|
+
* when it expands are the expansion's, and where they would put the user is not the
|
|
158
|
+
* expansion's to say.
|
|
159
|
+
*/
|
|
160
|
+
nested: boolean;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The `autoSelect` a batch was opened with, by sheet ({@link ISheet.getId}).
|
|
164
|
+
*
|
|
165
|
+
* @remarks
|
|
166
|
+
* A batch asks to select for the operations inside it that did not ask for themselves: a command
|
|
167
|
+
* groups a per-range loop and selects the result, and the operations in the loop were never told.
|
|
168
|
+
*/
|
|
169
|
+
export type BatchSelectIntent = Readonly<Record<string, boolean | ICellRange.SelectOptions>>;
|
|
170
|
+
/**
|
|
171
|
+
* Whether `trans` is begun inside a transaction that names an operation
|
|
172
|
+
* ({@link ITransaction.getOperation}).
|
|
173
|
+
*
|
|
174
|
+
* @remarks
|
|
175
|
+
* An enclosing transaction that names no operation - a batch - is not one.
|
|
176
|
+
*/
|
|
177
|
+
export declare const _isInsideOperation: (trans: ITransaction) => boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Where a commit moves a view's selection, or `null` when it does not move it.
|
|
180
|
+
*
|
|
181
|
+
* @param intents The commit's intents.
|
|
182
|
+
* @param sheetId The sheet whose view is asking.
|
|
183
|
+
* @param viewId The view that is asking.
|
|
184
|
+
* @param direction Whether the operation has just run, or is being undone or redone.
|
|
185
|
+
*
|
|
186
|
+
* @remarks
|
|
187
|
+
* The local policy. Only an operation that is not part of another one counts, and only one that
|
|
188
|
+
* was asked to select - itself, or by the batch it ran in: by `autoSelect` as it runs, by
|
|
189
|
+
* `autoSelectRestore` when it is undone or redone. A script that did not ask never moves the user,
|
|
190
|
+
* and neither does anything that reacts to the user's edit. Forward and redo land where the LAST
|
|
191
|
+
* such operation left the user; an undo lands where the FIRST one says, since a batch is undone
|
|
192
|
+
* as a whole.
|
|
193
|
+
*/
|
|
194
|
+
export declare const resolveSelection: (intents: Readonly<Record<string, any>> | undefined, sheetId: string, viewId: string, direction: "forward" | "undo" | "redo") => {
|
|
195
|
+
selection: Partial<IRangeSelection.Coords>;
|
|
196
|
+
options: boolean | ICellRange.SelectOptions;
|
|
197
|
+
} | null;
|
|
198
|
+
/**
|
|
199
|
+
* Where the freeze panes sit before and after the operation, by sheet ({@link ISheet.getId}).
|
|
200
|
+
*
|
|
201
|
+
* @remarks
|
|
202
|
+
* The one view fact an insert or delete changes: a frozen row above the insertion point moves
|
|
203
|
+
* with the cells. Recorded only by an operation that moved them, and merged the way the
|
|
204
|
+
* selection pair is - `before` first-writer-wins, `after` last-writer-wins - so a batch undoes to
|
|
205
|
+
* where it started and redoes to where it ended. The forward operation moves the panes itself;
|
|
206
|
+
* this is what undo and redo read.
|
|
207
|
+
*/
|
|
208
|
+
export type FreezePanesIntent = Readonly<Record<string, {
|
|
209
|
+
before: IRange.CellCoords;
|
|
210
|
+
after: IRange.CellCoords;
|
|
211
|
+
}>>;
|
|
212
|
+
/**
|
|
213
|
+
* Which movables are selected before and after the operation, by sheet ({@link ISheet.getId}).
|
|
214
|
+
*
|
|
215
|
+
* @remarks
|
|
216
|
+
* The movable counterpart of {@link SelectionIntent}, merged the way the freeze pair is - `before`
|
|
217
|
+
* first-writer-wins, `after` last-writer-wins - so a batch undoes to the selection it began with
|
|
218
|
+
* and redoes to the one it ended on. Recorded only by an operation that changes which movables
|
|
219
|
+
* exist or which of them the user is working on; everything else leaves the selection alone.
|
|
220
|
+
*
|
|
221
|
+
* Movables are named by their id ({@link ITransaction.ITransactional.getId}). A snapshot restores
|
|
222
|
+
* the same instances, so holding them would work - but an intent is data, and an id is what
|
|
223
|
+
* survives a reload and a collaborator.
|
|
224
|
+
*/
|
|
225
|
+
export type MovableSelectionIntent = Readonly<Record<string, {
|
|
226
|
+
/**
|
|
227
|
+
* {@link ISheetView.getId} of the view the operation was made against.
|
|
228
|
+
*
|
|
229
|
+
* @remarks
|
|
230
|
+
* Only the view that made the change is moved by undoing it - see {@link SelectionIntent}.
|
|
231
|
+
*/
|
|
232
|
+
viewId: string;
|
|
233
|
+
before?: readonly string[];
|
|
234
|
+
after?: readonly string[];
|
|
235
|
+
}>>;
|
|
236
|
+
/**
|
|
237
|
+
* Fit these ranges when the operation completes.
|
|
238
|
+
*
|
|
239
|
+
* @remarks
|
|
240
|
+
* A union: every operation in a batch adds the ranges it wrote, and one fit covers them all.
|
|
241
|
+
* Entries are kept per sheet and per option set - two operations that fit differently cannot
|
|
242
|
+
* be measured as one.
|
|
243
|
+
*/
|
|
244
|
+
export interface AutoFitIntent {
|
|
245
|
+
/** {@link ISheet.getId} of the sheet to fit on. */
|
|
246
|
+
sheetId: string;
|
|
247
|
+
ranges: IRange.Coords[];
|
|
248
|
+
options?: ICellRange.AutoFitOptions;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=_SheetIntents.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IRange } from '@sheetxl/primitives';
|
|
1
|
+
import { IRange, Scalar } from '@sheetxl/primitives';
|
|
2
2
|
import { CoordUtils } from '@sheetxl/utils';
|
|
3
3
|
import { ITransaction } from '../transaction';
|
|
4
4
|
import { Tuple, ISpatialMap } from '../collections';
|
|
@@ -7,8 +7,11 @@ import { ICell } from '../cell';
|
|
|
7
7
|
import { IComment } from '../comment';
|
|
8
8
|
import { IHyperlink } from '../hyperlink';
|
|
9
9
|
import { IStyle } from '../style';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { IProperties } from '../type';
|
|
11
|
+
import { FormulaEntry } from '../calculation/grid';
|
|
12
|
+
import { CellStateIteratorContext } from './_SheetUtils';
|
|
13
|
+
import { SheetDirectStyle } from './style/SheetDirectStyle';
|
|
14
|
+
import { RangeState, InternalTupleUpdate } from './_SheetStateTypes';
|
|
12
15
|
import { SheetMutationContext } from './Sheet';
|
|
13
16
|
/**
|
|
14
17
|
* The shared insert/delete engine (see SHEET-SPLIT-DESIGN §6e). Shifts every state map (values,
|
|
@@ -19,11 +22,16 @@ import { SheetMutationContext } from './Sheet';
|
|
|
19
22
|
*/
|
|
20
23
|
export declare function shiftCells(ctx: SheetMutationContext, ranges: readonly IRange.Coords[], options: IRange.Axis | ICellRange.InsertOptions | ICellRange.DeleteOptions | undefined, isInsert: boolean, coordValidator?: CoordUtils.CoordValidator): void;
|
|
21
24
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
25
|
+
* Sets the comment on each range's first cell, or clears every comment within a range when its
|
|
26
|
+
* update is `null`. Commits with auto-select. See SHEET-SPLIT-DESIGN §5.4.
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* A comment is one cell's, so a value lands on the top-left cell: the comment there is updated
|
|
30
|
+
* when the update is modifiers, replaced when it is a whole JSON (how `updateTuples` carries a
|
|
31
|
+
* moved cell's thread, id and replies included), and added when there is none.
|
|
24
32
|
* @internal
|
|
25
33
|
*/
|
|
26
|
-
export declare function setComments(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<IComment.
|
|
34
|
+
export declare function setComments(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<IComment.Update>[], comments?: IComment.Update, // `undefined` = each entry carries its own (updateTuples)
|
|
27
35
|
options?: ITransaction.OperationOptions): void;
|
|
28
36
|
/**
|
|
29
37
|
* Set (or clear when the resolved update is `null`) the hyperlink over each range, applying the
|
|
@@ -45,7 +53,38 @@ options?: ITransaction.OperationOptions): void;
|
|
|
45
53
|
* @internal
|
|
46
54
|
*/
|
|
47
55
|
export declare function updateStyles(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<IStyle.Update>[], defaultUpdate?: IStyle.Update, // we do this because updateTuples may update each
|
|
48
|
-
options?: IStyle.UpdateOptions, calcedNumberFormat?: boolean
|
|
56
|
+
options?: IStyle.UpdateOptions, calcedNumberFormat?: boolean, // this is a bit of a hack. This is prevent number formats from functions to override user defined formats.
|
|
57
|
+
isStep?: boolean): void;
|
|
58
|
+
/**
|
|
59
|
+
* A cell's direct styles as `update` leaves them, applied to each style map the way
|
|
60
|
+
* {@link updateStyles} applies it, so a held style reads without being written.
|
|
61
|
+
*
|
|
62
|
+
* @remarks
|
|
63
|
+
* A function update is given the cell's composed direct style and its result is split back by
|
|
64
|
+
* category, as `updateStyles`' function form does over its region.
|
|
65
|
+
*
|
|
66
|
+
* @param intersection The cell's range state before the update.
|
|
67
|
+
* @returns The intersection with the updated styles; `null` if the update reaches past the cell
|
|
68
|
+
* (a border, a continuous alignment) or clears every style, so it has to be written to know.
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export declare function intersectionAfterStyleUpdate(ctx: SheetMutationContext, intersection: RangeState.Intersection | null, rowIndex: number, colIndex: number, update: ScanStyleUpdate): RangeState.Intersection | null;
|
|
72
|
+
/**
|
|
73
|
+
* Whether a style update written to one cell changes that cell alone. A border does not: it
|
|
74
|
+
* changes the neighbor's edge. Nor does a horizontal alignment that is, or replaces, a continuous
|
|
75
|
+
* one: it is drawn across the neighbors.
|
|
76
|
+
*
|
|
77
|
+
* @param continuousFillSpatial The sheet's continuous alignments.
|
|
78
|
+
* @internal
|
|
79
|
+
*/
|
|
80
|
+
export declare function isLocalStyleUpdate(ctx: SheetMutationContext, continuousFillSpatial: ISpatialMap<SheetDirectStyle>, rowIndex: number, colIndex: number, update: IStyle.Update): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Whether a cell's number reads as a date once `update` is applied to its style - decided as
|
|
83
|
+
* {@link updateStyles} decides its date map: by the number format the update leaves in the cell's
|
|
84
|
+
* direct style. `contentSpatial` is the content map the update would be applied over.
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
export declare function isDateAfterStyleUpdate(ctx: SheetMutationContext, contentSpatial: ISpatialMap<SheetDirectStyle>, rowIndex: number, colIndex: number, update: ScanStyleUpdate): boolean;
|
|
49
88
|
/**
|
|
50
89
|
* Merge each range into a single cell: relocates/keeps a lone value at the top-left (discarding the
|
|
51
90
|
* rest, or throwing on multiple values unless `discardMultipleValues`), unifies the style over the
|
|
@@ -61,77 +100,158 @@ export declare function merge(ctx: SheetMutationContext, ranges: readonly IRange
|
|
|
61
100
|
*/
|
|
62
101
|
export declare function unmerge(ctx: SheetMutationContext, ranges: readonly IRange.Coords[], options?: ITransaction.OperationOptions): void;
|
|
63
102
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* values + contentful + calc grids, and delegates the side-updates to {@link updateStyles} /
|
|
67
|
-
* {@link setHyperlinks} / {@link merge}. See SHEET-SPLIT-DESIGN §5.4.
|
|
68
|
-
* @internal
|
|
103
|
+
* A formula text on its way through {@link updateTuples}: the A1 text as entered, the cell it was
|
|
104
|
+
* entered at, and its relative (R1C1) form, derived only when a neighbor asks for it.
|
|
69
105
|
*/
|
|
70
|
-
export
|
|
106
|
+
export interface FormulaTextUpdate {
|
|
107
|
+
a1: string;
|
|
108
|
+
rowIndex: number;
|
|
109
|
+
colIndex: number;
|
|
110
|
+
/** Derived on first use by {@link relativeFormOf}. */
|
|
111
|
+
r1c1: string | null;
|
|
112
|
+
/** Derived on first use by {@link formulaEntryFor}. */
|
|
113
|
+
entry: FormulaEntry | null;
|
|
114
|
+
}
|
|
71
115
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
116
|
+
* The text a conflated run's formula reads as at one of the run's cells, before the run is written.
|
|
117
|
+
*
|
|
118
|
+
* @remarks
|
|
119
|
+
* A run keeps its FIRST cell's text, and every other cell reads that text imaged at it - as it
|
|
120
|
+
* will once the run is written and until it is compiled.
|
|
75
121
|
* @internal
|
|
76
122
|
*/
|
|
77
|
-
export declare function
|
|
123
|
+
export declare function formulaTextAt(update: FormulaTextUpdate, rowIndex: number, colIndex: number): string;
|
|
78
124
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
125
|
+
* Style updates to one cell, in the order they were made: a cell styled more than once in one
|
|
126
|
+
* scan. Written in that order, as separate calls would write them; a callback cannot be folded
|
|
127
|
+
* into the update before it.
|
|
81
128
|
* @internal
|
|
82
129
|
*/
|
|
83
|
-
export declare
|
|
130
|
+
export declare class StyleUpdateSequence {
|
|
131
|
+
readonly updates: readonly IStyle.Update[];
|
|
132
|
+
constructor(updates: readonly IStyle.Update[]);
|
|
133
|
+
}
|
|
134
|
+
/** A {@link TupleScan}'s style update to a cell: one update, or several in order. @internal */
|
|
135
|
+
export type ScanStyleUpdate = IStyle.Update | StyleUpdateSequence;
|
|
136
|
+
/** The updates in a {@link ScanStyleUpdate}, in order. @internal */
|
|
137
|
+
export declare function styleUpdatesOf(update: ScanStyleUpdate): readonly IStyle.Update[];
|
|
84
138
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
139
|
+
* One scan of cell updates: what {@link updateTuples} knows while it walks its cells, and what the
|
|
140
|
+
* walk collects for {@link finishTupleScan} to write.
|
|
141
|
+
*
|
|
142
|
+
* @remarks
|
|
143
|
+
* A scan is {@link beginTupleScan}, {@link scanCell} for each cell in order, then
|
|
144
|
+
* {@link finishTupleScan}. The cells are asked in ONE order, major then minor, and both the
|
|
145
|
+
* range-state sweep and the collectors rely on it. Which axis is the major one is the scan's
|
|
146
|
+
* own ({@link TupleScan.isColumn}), not necessarily the sheet's.
|
|
147
|
+
*
|
|
148
|
+
* An open scan changes nothing and holds no transaction: the finish begins one, writes and commits
|
|
149
|
+
* it. So a scan can stay open across calls ({@link CellBuffer}), and one that is dropped needs no
|
|
150
|
+
* undoing.
|
|
88
151
|
* @internal
|
|
89
152
|
*/
|
|
90
|
-
export interface
|
|
91
|
-
|
|
92
|
-
|
|
153
|
+
export interface TupleScan {
|
|
154
|
+
readonly ctx: SheetMutationContext;
|
|
155
|
+
readonly options: ICellRange.UpdateCellsOptions | undefined;
|
|
156
|
+
readonly internalOptions: InternalTupleUpdate | null;
|
|
157
|
+
/** The order the cells are asked in: `true` if a column is the major axis. */
|
|
158
|
+
readonly isColumn: boolean;
|
|
159
|
+
readonly isDataChange: boolean;
|
|
160
|
+
readonly isInternalHyperlink: boolean;
|
|
161
|
+
readonly isBroadcast: boolean;
|
|
162
|
+
readonly isLocked: boolean;
|
|
163
|
+
readonly allowFormatCells: boolean;
|
|
164
|
+
readonly hasUnlockRanges: boolean;
|
|
165
|
+
readonly runtime: SheetMutationContext['runtime'];
|
|
166
|
+
/**
|
|
167
|
+
* A scan that stays open holds only cells whose write cannot fail once scanned, and whose held
|
|
168
|
+
* style changes that cell alone: a cell that carries a hyperlink or comments, or a style that
|
|
169
|
+
* {@link isLocalStyle} refuses, is REFUSED - nothing is collected for it and {@link isRefused} is
|
|
170
|
+
* set - for the caller to write on its own.
|
|
171
|
+
*/
|
|
172
|
+
readonly isHeld: boolean;
|
|
173
|
+
isRefused: boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Whether a style held for a cell changes that cell alone; a held scan refuses one that does not,
|
|
176
|
+
* since a read of a neighbor does not see a held write. Set by the scan's holder.
|
|
177
|
+
*/
|
|
178
|
+
isLocalStyle: ((rowIndex: number, colIndex: number, update: IStyle.Update) => boolean) | null;
|
|
93
179
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* coord inside one resolves to that block's anchor, where the value lives).
|
|
180
|
+
* A merge, hyperlink, comments or a style callback that can throw was collected. Their writes can
|
|
181
|
+
* still refuse after the finish has changed the maps in place, so the finish writes them in a
|
|
182
|
+
* savepoint of its own.
|
|
98
183
|
*/
|
|
99
|
-
|
|
184
|
+
hasLateRefusals: boolean;
|
|
185
|
+
iterRanges: ReturnType<SheetMutationContext['rangeStateIterator']> | null;
|
|
186
|
+
requiresRangeCheck: boolean;
|
|
187
|
+
readonly seekCoords: IRange.CellCoords;
|
|
188
|
+
cellMajor: number;
|
|
189
|
+
cellMinor: number;
|
|
190
|
+
cellIntersection: RangeState.Intersection | null;
|
|
191
|
+
readonly optionsFromString: ICell.ModifiersFromStringOptions | null;
|
|
192
|
+
readonly contextState: CellStateIteratorContext | null;
|
|
193
|
+
readonly resolvedStringCache: Map<string, ICell.Modifiers>;
|
|
194
|
+
lastDirectStyle: IProperties.ICellRanged<IStyle.Properties> | undefined;
|
|
195
|
+
isTextNumFmt: boolean;
|
|
196
|
+
readonly defaultStyleUnlocked: boolean;
|
|
197
|
+
isStyleUnlocked: boolean;
|
|
198
|
+
usedStyleUnlock: boolean;
|
|
199
|
+
lastUnlock: RangeState.Intersection['unlock'];
|
|
200
|
+
isUnlockExempt: boolean;
|
|
201
|
+
isPasswordGated: boolean;
|
|
202
|
+
readonly deletes: ISpatialMap.IConflatingEntries<any>;
|
|
203
|
+
readonly styleUpdates: ISpatialMap.IConflatingEntries<ScanStyleUpdate>;
|
|
204
|
+
readonly hyperlinkUpdates: ISpatialMap.IConflatingEntries<IHyperlink.Update>;
|
|
205
|
+
readonly commentUpdates: ISpatialMap.IConflatingEntries<IComment.Update>;
|
|
206
|
+
readonly formulaUpdates: ISpatialMap.IConflatingEntries<FormulaTextUpdate | null>;
|
|
207
|
+
readonly mergeUpdates: IRange.Coords[];
|
|
100
208
|
}
|
|
101
209
|
/**
|
|
102
|
-
*
|
|
210
|
+
* Begins a scan of cell updates within `boundsRange`.
|
|
103
211
|
*
|
|
104
|
-
* @
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
* @
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
212
|
+
* @param isColumn The order the cells will be asked in; the sheet's if not given.
|
|
213
|
+
* @param isHeld See {@link TupleScan.isHeld}.
|
|
214
|
+
* @internal
|
|
215
|
+
*/
|
|
216
|
+
export declare function beginTupleScan(ctx: SheetMutationContext, boundsRange: IRange.Coords, options: ICellRange.UpdateCellsOptions | undefined, internalOptions: InternalTupleUpdate | null, isColumn?: boolean, isHeld?: boolean): TupleScan;
|
|
217
|
+
/**
|
|
218
|
+
* Scans one cell of a {@link TupleScan}: the next one, major then minor.
|
|
219
|
+
*
|
|
220
|
+
* @returns The value to store, for the caller to place; `null` if the cell is cleared and
|
|
221
|
+
* `undefined` if it is not written - either ends a run of values.
|
|
222
|
+
* @internal
|
|
223
|
+
*/
|
|
224
|
+
export declare function scanCell(scan: TupleScan, update: ICell.Update, major: number, minor: number): Scalar | null | undefined;
|
|
225
|
+
/**
|
|
226
|
+
* Writes what a {@link TupleScan} collected, with the values the caller placed, in a transaction
|
|
227
|
+
* of its own; rolled back if the write throws.
|
|
228
|
+
*
|
|
229
|
+
* @param gridTuple The values {@link scanCell} returned, in the SHEET's orientation whatever the
|
|
230
|
+
* scan's was.
|
|
231
|
+
* @param written The cells to report as changed and the selection the write leaves, where they
|
|
232
|
+
* are not `boundsRange`.
|
|
233
|
+
* @internal
|
|
234
|
+
*/
|
|
235
|
+
export declare function finishTupleScan(scan: TupleScan, gridTuple: Tuple.GridTuple<Scalar>, bounds: Tuple.OrientatedCoords, boundsRange: IRange.Coords, written?: {
|
|
236
|
+
changes: readonly IRange.Coords[];
|
|
237
|
+
selection: IRange.Coords;
|
|
238
|
+
}): void;
|
|
123
239
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* {@link
|
|
240
|
+
* The central cell-write path: iterates the incoming `ICell.Update` tuples, resolves each cell
|
|
241
|
+
* (parsing text, applying merges/spills), splits out style / hyperlink / formula side-updates, writes
|
|
242
|
+
* values + contentful + calc grids, and delegates the side-updates to {@link updateStyles} /
|
|
243
|
+
* {@link setHyperlinks} / {@link merge}. See SHEET-SPLIT-DESIGN §5.4.
|
|
128
244
|
* @internal
|
|
129
245
|
*/
|
|
130
|
-
export declare function
|
|
246
|
+
export declare function updateTuples(ctx: SheetMutationContext, boundedTuples: Tuple.Region<ICell.Update> | null, options?: ICellRange.UpdateCellsOptions, coordValidator?: CoordUtils.CoordValidator | null | undefined, internalOptions?: InternalTupleUpdate | null): void;
|
|
131
247
|
/**
|
|
132
|
-
*
|
|
133
|
-
*
|
|
248
|
+
* Clear the given content category over each range (`null` = all): delegates styles / hyperlinks /
|
|
249
|
+
* comments / notes to their ops, deletes values + spills + calc, and drops tables / auto-tables
|
|
250
|
+
* inside the cleared area (unless `excludeSorts`). See SHEET-SPLIT-DESIGN §5.4.
|
|
251
|
+
*
|
|
252
|
+
* `cutFrom` is the source of a cut this clear is part of: a table inside it is the cut's to move
|
|
253
|
+
* or remove, so the clear leaves it standing.
|
|
134
254
|
* @internal
|
|
135
255
|
*/
|
|
136
|
-
export declare function
|
|
256
|
+
export declare function clear(ctx: SheetMutationContext, ranges: readonly IRange.Coords[], applyTo?: ICell.Content | null, options?: ITransaction.OperationOptions, excludeSorts?: boolean, cutFrom?: IRange.Coords | null): void;
|
|
137
257
|
//# sourceMappingURL=_SheetMutations.d.ts.map
|
|
@@ -5,7 +5,10 @@ import { ICell } from '../cell';
|
|
|
5
5
|
import { IStyle } from '../style';
|
|
6
6
|
import { ICellRange, ICellHeaderRange } from '../cellRange';
|
|
7
7
|
import { ISheetHeader } from '../sheetHeader';
|
|
8
|
+
import { ScalarListFactory } from './_ScalarListFactory';
|
|
8
9
|
import { IStringCollection } from '../string';
|
|
10
|
+
import { ITransaction } from '../transaction';
|
|
11
|
+
import { ICalcGrid } from '../calculation/grid';
|
|
9
12
|
import { RangeState, CellState, State } from './_SheetStateTypes';
|
|
10
13
|
import { SheetCellOptions } from './SheetCell';
|
|
11
14
|
/** @internal */
|
|
@@ -34,19 +37,21 @@ export interface OverFlowsAndStops {
|
|
|
34
37
|
*/
|
|
35
38
|
export interface SheetReadContext {
|
|
36
39
|
readonly state: Readonly<State>;
|
|
40
|
+
/**
|
|
41
|
+
* The sheet's grid, as an object. NOT part of `state`: one grid serves every version of the
|
|
42
|
+
* sheet, so a scoped read that overrides `state` with a snapshot still gets the live grid here.
|
|
43
|
+
* What it HOLDS versions in its own record; a read that must not make the writes a cell buffer
|
|
44
|
+
* holds asks its reads for that buffer's transaction, beside the `state` it took the same way.
|
|
45
|
+
*/
|
|
46
|
+
readonly calcGrid: ICalcGrid;
|
|
37
47
|
readonly rowHeaders: ISheetHeader;
|
|
38
48
|
readonly columnHeaders: ISheetHeader;
|
|
39
49
|
readonly cellOptions: SheetCellOptions;
|
|
40
50
|
readonly strings: IStringCollection;
|
|
51
|
+
/** Makes the lists cell values are stored as. */
|
|
52
|
+
readonly lists: ScalarListFactory;
|
|
41
53
|
getEntireCoords(): IRange.Coords;
|
|
42
54
|
getUsedCoords(options?: ICellRange.GetRangeOptions): IRange.Coords | null;
|
|
43
|
-
/**
|
|
44
|
-
* The RECONCILED error-VALUE spatial (`RangeState.Type.Error`) — current values are the truth,
|
|
45
|
-
* not `state.errorSpatial` (write-path only; stale for formula cells after a recalc). Calling
|
|
46
|
-
* this may lazily build the view (a value scan, cached per state version) — which is why
|
|
47
|
-
* `Type.Error` is opt-in only and never part of the all-types sweep.
|
|
48
|
-
*/
|
|
49
|
-
getErrorSpatial(): ISpatialMap<boolean>;
|
|
50
55
|
}
|
|
51
56
|
/**
|
|
52
57
|
* The read engine for a {@link Sheet}'s versioned state.
|
|
@@ -132,13 +137,14 @@ export declare function getVisible(ctx: SheetReadContext, coords: readonly IRang
|
|
|
132
137
|
* `state` defaults to `ctx.state` but can be overridden for a scoped query against a snapshot.
|
|
133
138
|
* @internal
|
|
134
139
|
*/
|
|
135
|
-
export declare function collectRanges(ctx: SheetReadContext, queryCoords: IRange.Coords, rangesByType?: ISpatialMap.Entry<RangeState.Intersection>[], searchTypes?: boolean | RangeState.SearchTypes | null, injectReferences?: IRange.JSONReference<any>[][], state?: Readonly<State>, containedBounds?: IRange.Coords): void;
|
|
140
|
+
export declare function collectRanges(ctx: SheetReadContext, queryCoords: IRange.Coords, rangesByType?: ISpatialMap.Entry<RangeState.Intersection>[], searchTypes?: boolean | RangeState.SearchTypes | null, injectReferences?: IRange.JSONReference<any>[][], state?: Readonly<State>, containedBounds?: IRange.Coords, transaction?: ITransaction | null): void;
|
|
136
141
|
/**
|
|
137
142
|
* Iterate the non-overlapping range-state intersections over the bounded region.
|
|
138
143
|
*
|
|
139
144
|
* @remarks
|
|
140
|
-
*
|
|
141
|
-
*
|
|
145
|
+
* Each searched map is queried once over the bounds; `RangeStateSweep` then flattens the entries
|
|
146
|
+
* into a non-overlapping sequence (major-axis bands, minor-axis intervals of constant overlap set),
|
|
147
|
+
* clipped to the visible headers when hidden ones are excluded.
|
|
142
148
|
* @internal
|
|
143
149
|
*/
|
|
144
150
|
export declare function rangeStateIterator(ctx: SheetReadContext, options: RangeState.IteratorOptions): RangeState.Iterator;
|