@sheetxl/sdk 0.8.0-beta.1 → 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/{a0Z-SXs_N71CtqYb.cjs → Dg3GaW0QWwnlqetX.cjs} +1 -1
- package/browser/cjs/KWQPie2u7AP69web.cjs +93 -0
- package/browser/cjs/index.cjs +2 -2
- package/browser/esm/{B0HS42a7lga1k1U_.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/{uyWBMSIxMlt8n5Z3.mjs → Dq3sc4B_HQHBrT5N.mjs} +2 -2
- package/browser/esm/index.mjs +871 -696
- package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → trwZArJQQq7K9kL7.mjs} +2 -2
- package/licenses/dependencies.txt +204 -204
- package/node/esm/CGWsQOMWdnDeF4dX.mjs +8 -0
- package/node/esm/{Cku7XiUvw1xrRasi.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 +52356 -37345
- 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 -8
- package/types/scripting.d.ts +7006 -1202
- package/types/src/anchored/AbstractAnchored.d.ts +18 -8
- package/types/src/anchored/AnchoredMap.d.ts +2 -0
- package/types/src/anchored/IAnchoredMap.d.ts +52 -4
- package/types/src/autoFill/AutoFill.d.ts +316 -32
- package/types/src/autoFill/IAutoFill.d.ts +232 -15
- package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +41 -40
- package/types/src/border/index.d.ts +1 -1
- package/types/src/calculation/Calculation.d.ts +740 -35
- package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
- package/types/src/calculation/FormulaText.d.ts +74 -0
- package/types/src/calculation/ICalculation.d.ts +318 -81
- package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
- package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
- package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
- package/types/src/calculation/TokenType.d.ts +9 -0
- package/types/src/calculation/Types.d.ts +83 -2
- package/types/src/calculation/_CloneBoundary.d.ts +80 -0
- package/types/src/calculation/compiler/ASTTypes.d.ts +58 -0
- package/types/src/calculation/compiler/CompilerUtils.d.ts +134 -12
- package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
- package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
- package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
- package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
- package/types/src/calculation/compiler/SRParser.d.ts +2 -1
- package/types/src/calculation/compiler/Types.d.ts +79 -9
- package/types/src/calculation/executor/CalcExecutor.d.ts +312 -33
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
- package/types/src/calculation/executor/CircularReference.d.ts +2 -0
- package/types/src/calculation/formula/Formula.d.ts +58 -21
- package/types/src/calculation/formula/FormulaBlock.d.ts +124 -21
- package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
- package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
- package/types/src/calculation/formula/LambdaValue.d.ts +15 -16
- package/types/src/calculation/formula/LazyValue.d.ts +96 -0
- package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
- package/types/src/calculation/formula/index.d.ts +1 -0
- package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
- package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
- package/types/src/calculation/grid/CalcGrid.d.ts +384 -158
- package/types/src/calculation/grid/CalcGridBackend.d.ts +450 -0
- package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
- package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
- package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
- package/types/src/calculation/grid/FormulaHost.d.ts +236 -0
- package/types/src/calculation/grid/ICalcGrid.d.ts +456 -143
- package/types/src/calculation/grid/_CalcRequest.d.ts +272 -0
- package/types/src/calculation/grid/index.d.ts +4 -0
- package/types/src/calculation/index.d.ts +2 -0
- package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
- package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
- package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
- package/types/src/calculation/spatial/index.d.ts +1 -0
- package/types/src/calculation/state/CalcInputs.d.ts +41 -0
- package/types/src/calculation/state/CalcNode.d.ts +141 -30
- package/types/src/calculation/state/CalcScope.d.ts +37 -0
- package/types/src/calculation/state/CalcState.d.ts +22 -1
- package/types/src/calculation/state/CalculationContext.d.ts +36 -2
- package/types/src/calculation/state/IContextContainer.d.ts +129 -27
- package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
- package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
- package/types/src/calculation/state/index.d.ts +1 -0
- package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
- package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
- package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
- package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
- package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
- package/types/src/calculation/symbol/index.d.ts +3 -2
- package/types/src/cell/ICell.d.ts +78 -23
- package/types/src/cell/ICellProtection.d.ts +50 -10
- package/types/src/cellRange/ICellRange.d.ts +329 -72
- package/types/src/cellRange/ICellRanges.d.ts +9 -7
- package/types/src/chart/Chart.d.ts +72 -2
- package/types/src/chart/ChartCollection.d.ts +26 -0
- package/types/src/chart/IChart.d.ts +162 -9
- package/types/src/chart/IChartCollection.d.ts +25 -0
- package/types/src/chart/_ChartXml.d.ts +70 -0
- package/types/src/chart/index.d.ts +1 -3
- package/types/src/collections/ArraysGrid.d.ts +1 -1
- package/types/src/collections/IGrid.d.ts +1 -1
- package/types/src/collections/ISparseGrid.d.ts +9 -0
- package/types/src/collections/ISpatialMap.d.ts +59 -21
- package/types/src/collections/ImmutableList.d.ts +28 -0
- package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
- package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
- package/types/src/collections/RepeatingList.d.ts +7 -0
- package/types/src/collections/ScalarGrid.d.ts +50 -0
- package/types/src/collections/SparseGrid.d.ts +1 -1
- package/types/src/collections/SpatialMap.d.ts +13 -21
- package/types/src/collections/Tuple.d.ts +128 -16
- package/types/src/collections/_GridUtils.d.ts +19 -6
- package/types/src/collections/_RangeSweep.d.ts +97 -0
- package/types/src/collections/_SpatialUtils.d.ts +20 -2
- package/types/src/collections/index.d.ts +1 -0
- package/types/src/comment/Comment.d.ts +159 -0
- package/types/src/comment/CommentCollection.d.ts +40 -0
- package/types/src/comment/IComment.d.ts +319 -48
- package/types/src/comment/ICommentCollection.d.ts +90 -0
- package/types/src/comment/_CommentUtils.d.ts +28 -0
- package/types/src/comment/index.d.ts +1 -0
- package/types/src/condition/AnchoredConditional.d.ts +76 -17
- package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +8 -7
- package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -1
- package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +3 -6
- package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +1 -1
- package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +7 -0
- package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +9 -0
- package/types/src/condition/Condition.d.ts +16 -0
- package/types/src/condition/ICondition.d.ts +86 -33
- package/types/src/condition/_ConditionFormula.d.ts +152 -0
- package/types/src/condition/_ConditionUtils.d.ts +73 -10
- package/types/src/conditionalFormat/ConditionalFormat.d.ts +21 -10
- package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
- package/types/src/conditionalFormat/IConditionalFormat.d.ts +5 -3
- package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
- package/types/src/dataValidation/DataValidation.d.ts +50 -3
- package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
- package/types/src/dataValidation/IDataValidation.d.ts +119 -30
- package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
- package/types/src/date/DateUtils.d.ts +20 -0
- package/types/src/date/_DateUtils.d.ts +91 -7
- package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
- package/types/src/externalBook/ExternalBookName.d.ts +96 -0
- package/types/src/externalBook/IExternalBook.d.ts +170 -18
- package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
- package/types/src/externalBook/index.d.ts +1 -0
- package/types/src/fill/IStroke.d.ts +1 -1
- package/types/src/filter/IFilter.d.ts +29 -4
- package/types/src/font/IFont.d.ts +17 -0
- package/types/src/history/IHistory.d.ts +3 -2
- package/types/src/i18n/LanguagePack.d.ts +12 -4
- package/types/src/index.d.ts +3 -0
- package/types/src/io/AbstractBackingStore.d.ts +24 -1
- package/types/src/io/ArrayBackingStore.d.ts +1 -1
- package/types/src/io/EmbeddedPart.d.ts +20 -0
- package/types/src/io/IEmbeddedPart.d.ts +63 -0
- package/types/src/io/IWorkbookIO.d.ts +185 -18
- package/types/src/io/WorkbookIO.d.ts +9 -0
- package/types/src/io/WorkbookOrigin.d.ts +20 -11
- package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
- package/types/src/io/_XmlFragment.d.ts +49 -0
- package/types/src/io/index.d.ts +1 -0
- package/types/src/lib/file/file.browser.d.ts +19 -5
- package/types/src/lib/file/file.node.d.ts +5 -0
- package/types/src/lib/utils/_Utils.d.ts +11 -0
- package/types/src/lib/utils/utils.browser.d.ts +9 -3
- package/types/src/license/license-key.d.ts +27 -0
- package/types/src/listener/IListener.d.ts +12 -7
- package/types/src/listener/ListenerEmitter.d.ts +46 -5
- package/types/src/model/AbstractModel.d.ts +14 -5
- package/types/src/movable/Control.d.ts +57 -0
- package/types/src/movable/IControl.d.ts +84 -0
- package/types/src/movable/IMovable.d.ts +23 -1
- package/types/src/movable/IMovableCollection.d.ts +2 -0
- package/types/src/movable/Movable.d.ts +4 -6
- package/types/src/movable/MovableCollection.d.ts +7 -7
- package/types/src/movable/index.d.ts +4 -0
- package/types/src/named/AbstractNamed.d.ts +1 -1
- package/types/src/named/INamed.d.ts +4 -1
- package/types/src/named/INamedCollection.d.ts +26 -0
- package/types/src/named/NamedCollection.d.ts +16 -15
- package/types/src/numFmt/BuiltInFormats.d.ts +15 -7
- package/types/src/numFmt/IFormatEngine.d.ts +2 -0
- package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
- package/types/src/person/IPerson.d.ts +99 -0
- package/types/src/person/IPersonCollection.d.ts +51 -0
- package/types/src/person/Person.d.ts +32 -0
- package/types/src/person/PersonCollection.d.ts +49 -0
- package/types/src/person/index.d.ts +3 -0
- package/types/src/picture/IPicture.d.ts +2 -0
- package/types/src/picture/Picture.d.ts +2 -0
- package/types/src/pivot/IPivotTable.d.ts +107 -0
- package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
- package/types/src/pivot/PivotTable.d.ts +57 -0
- package/types/src/pivot/PivotTableCollection.d.ts +25 -0
- package/types/src/pivot/index.d.ts +6 -0
- package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
- package/types/src/primitives/Criteria.d.ts +1 -1
- package/types/src/primitives/LambdaBrand.d.ts +21 -0
- package/types/src/primitives/PrimitiveUtils.d.ts +56 -19
- package/types/src/primitives/Range.d.ts +102 -24
- package/types/src/primitives/RangeStats.d.ts +24 -1
- package/types/src/primitives/ReferenceRange.d.ts +42 -0
- package/types/src/primitives/Runtime.d.ts +15 -2
- package/types/src/primitives/stats/FrequencyStats.d.ts +9 -0
- package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
- package/types/src/primitives/stats/SortedNumbers.d.ts +2 -0
- package/types/src/primitives/stats/index.d.ts +1 -0
- package/types/src/print/IPrint.d.ts +0 -22
- package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
- package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
- package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
- package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
- package/types/src/protection/DefaultProtection.d.ts +12 -1
- package/types/src/protection/IProtection.d.ts +36 -2
- package/types/src/reference/ReferenceUtils.d.ts +80 -0
- package/types/src/reference/index.d.ts +2 -0
- package/types/src/resource/IResource.d.ts +21 -1
- package/types/src/resource/IResourceCollection.d.ts +9 -1
- package/types/src/resource/ResourceCollection.d.ts +6 -6
- package/types/src/scripting/FunctionCollection.d.ts +41 -11
- package/types/src/scripting/IFunctionCollection.d.ts +41 -0
- package/types/src/scripting/IModule.d.ts +25 -0
- package/types/src/scripting/IModuleCollection.d.ts +17 -0
- package/types/src/scripting/IScript.d.ts +18 -0
- package/types/src/scripting/Module.d.ts +34 -6
- package/types/src/scripting/ModuleCollection.d.ts +17 -12
- package/types/src/scripting/Runtime.d.ts +15 -0
- package/types/src/scripting/Scripts.d.ts +2 -0
- package/types/src/scripting/TypedFunction.d.ts +151 -18
- package/types/src/scripting/_FunctionIndex.d.ts +5 -0
- package/types/src/scripting/_ModuleUtils.d.ts +11 -1
- package/types/src/scripting/_ScriptUtils.d.ts +3 -0
- package/types/src/scripting/declarations.browser.d.ts +10 -0
- package/types/src/scripting/declarations.d.ts +49 -0
- package/types/src/scripting/declarations.node.d.ts +9 -0
- package/types/src/scripting/index.d.ts +3 -0
- package/types/src/selection/IRangeSelection.d.ts +9 -4
- package/types/src/selection/RangeSelection.d.ts +2 -0
- package/types/src/shape/IShape.d.ts +41 -3
- package/types/src/shape/Shape.d.ts +10 -0
- package/types/src/shape/_ShapeXml.d.ts +28 -0
- package/types/src/sheet/CellRegion.d.ts +6 -0
- package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
- package/types/src/sheet/ISheet.d.ts +224 -41
- package/types/src/sheet/ISheetCollection.d.ts +2 -5
- package/types/src/sheet/NamedCellRange.d.ts +16 -7
- package/types/src/sheet/Sheet.d.ts +749 -114
- package/types/src/sheet/SheetCell.d.ts +81 -21
- package/types/src/sheet/SheetCollection.d.ts +19 -8
- package/types/src/sheet/SheetRange.d.ts +62 -14
- package/types/src/sheet/SheetRanges.d.ts +4 -6
- package/types/src/sheet/_CellBuffer.d.ts +214 -0
- package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
- package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
- package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
- package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
- package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
- package/types/src/sheet/_SheetAutoFitUtils.d.ts +2 -2
- package/types/src/sheet/_SheetEvents.d.ts +43 -0
- package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
- package/types/src/sheet/_SheetIntents.d.ts +250 -0
- package/types/src/sheet/_SheetMutations.d.ts +179 -59
- package/types/src/sheet/_SheetStateReader.d.ts +16 -10
- package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
- package/types/src/sheet/_SheetUtils.d.ts +2 -18
- package/types/src/sheet/_WatchAnchor.d.ts +93 -0
- package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
- package/types/src/sheet/spatial/index.d.ts +1 -0
- package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
- package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
- package/types/src/sheet/style/_Resolvers.d.ts +5 -3
- package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
- package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
- package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
- package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
- package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
- package/types/src/sheetView/ISheetView.d.ts +45 -1
- package/types/src/sheetView/SheetView.d.ts +11 -0
- package/types/src/slicer/ISlicer.d.ts +2 -0
- package/types/src/slicer/Slicer.d.ts +2 -0
- package/types/src/sort/ISort.d.ts +2 -0
- package/types/src/string/IStringCollection.d.ts +5 -0
- package/types/src/string/StringCollection.d.ts +6 -6
- package/types/src/style/INamedStyleCollection.d.ts +72 -0
- package/types/src/style/IStyle.d.ts +30 -10
- package/types/src/style/IStyleCollection.d.ts +63 -42
- package/types/src/style/ITableStyleCollection.d.ts +89 -0
- package/types/src/style/NamedStyleCollection.d.ts +39 -0
- package/types/src/style/StyleCollection.d.ts +41 -5
- package/types/src/style/TableStyleCollection.d.ts +49 -0
- package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
- package/types/src/style/index.d.ts +4 -0
- package/types/src/table/AnchoredTable.d.ts +644 -68
- package/types/src/table/AutoTable.d.ts +5 -5
- package/types/src/table/ITable.d.ts +228 -30
- package/types/src/table/ITableCollection.d.ts +2 -0
- package/types/src/table/TableCollection.d.ts +19 -8
- package/types/src/table/_FilterField.d.ts +7 -5
- package/types/src/table/_NamedTable.d.ts +17 -1
- package/types/src/table/_NamedTableSource.d.ts +1 -0
- package/types/src/table/_SortField.d.ts +2 -0
- package/types/src/table/_TableColumn.d.ts +13 -2
- package/types/src/table/_TableMessages.d.ts +1 -0
- package/types/src/table/_TableUtils.d.ts +40 -0
- package/types/src/text/Bullet.d.ts +4 -0
- package/types/src/text/ITextFrame.d.ts +25 -1
- package/types/src/text/TextBoxAlignment.d.ts +15 -6
- package/types/src/text/TextFrame.d.ts +4 -0
- package/types/src/text/TextLine.d.ts +4 -0
- package/types/src/text/TextParagraph.d.ts +4 -0
- package/types/src/text/TextRun.d.ts +9 -0
- package/types/src/text/TextStacked.d.ts +83 -0
- package/types/src/text/index.d.ts +1 -0
- package/types/src/theme/ITheme.d.ts +2 -0
- package/types/src/theme/IThemeCollection.d.ts +2 -0
- package/types/src/theme/ThemeCollection.d.ts +8 -7
- package/types/src/transaction/ITransaction.d.ts +238 -36
- package/types/src/transaction/Transaction.d.ts +99 -11
- package/types/src/type/AbstractCollection.d.ts +101 -0
- package/types/src/type/ICollection.d.ts +117 -0
- package/types/src/type/ITypes.d.ts +9 -7
- package/types/src/type/index.d.ts +1 -0
- package/types/src/utils/_CSSUtils.d.ts +3 -3
- package/types/src/workbook/IWorkbook.d.ts +171 -40
- package/types/src/workbook/Workbook.d.ts +103 -7
- package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
- package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
- package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
- package/types/src/workbookView/IWorkbookView.d.ts +12 -0
- package/types/src/workbookView/WorkbookView.d.ts +5 -0
- package/browser/cjs/BatsV2UUraVDCRXm.cjs +0 -57
- package/browser/cjs/CUz53T65cRGQRgvv.cjs +0 -33
- package/browser/cjs/DU0kYUtdFa3jK-im.cjs +0 -1
- package/browser/cjs/Dv4yIPLV98M5zLHa.cjs +0 -1
- package/browser/esm/6JKSOvc5czaQB2Bj.mjs +0 -109
- package/browser/esm/BtuJ9AGzeURtAsGo.mjs +0 -51241
- package/browser/esm/DGU6sM25u0EWCKl1.mjs +0 -824
- package/browser/esm/f2G3QRgEbvFJcoa2.mjs +0 -4436
- package/node/esm/-pxdn3M3tc6PLHs7.mjs +0 -114
- package/node/esm/0n5bslM9jhO1JnI2.mjs +0 -843
- package/types/src/cellRange/_GraphNode.d.ts +0 -38
- package/types/src/dataValidation/_Utils.d.ts +0 -10
- package/types/src/sheet/listener/RangesListener.d.ts +0 -32
- package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
- package/types/src/sheet/listener/index.d.ts +0 -3
|
@@ -8,7 +8,7 @@ import { ListenerEmitter } from '../listener/ListenerEmitter';
|
|
|
8
8
|
/**
|
|
9
9
|
* Abstract implement of {@link IAnchorItem}.
|
|
10
10
|
*/
|
|
11
|
-
export declare abstract class AbstractAnchored<STATE extends AbstractAnchored.State = AbstractAnchored.State,
|
|
11
|
+
export declare abstract class AbstractAnchored<STATE extends AbstractAnchored.State = AbstractAnchored.State, EVENTS extends IAnchored.Events = IAnchored.Events> implements IAnchored, ITransaction.ITransactional, IListener.ISource<IAnchored> {
|
|
12
12
|
protected _options: Anchored.ConstructorOptions;
|
|
13
13
|
protected _emitter: ListenerEmitter<IAnchored, EVENTS>;
|
|
14
14
|
private _transactions;
|
|
@@ -17,6 +17,8 @@ export declare abstract class AbstractAnchored<STATE extends AbstractAnchored.St
|
|
|
17
17
|
private _closed;
|
|
18
18
|
protected _range: ICellRange | null;
|
|
19
19
|
protected _ranges: ICellRanges | null;
|
|
20
|
+
private _rangeAnchor;
|
|
21
|
+
private _rangesAnchor;
|
|
20
22
|
constructor(options: Anchored.ConstructorOptions);
|
|
21
23
|
protected _initializeOptions(options: Anchored.ConstructorOptions): Anchored.ConstructorOptions;
|
|
22
24
|
protected _initialize(options: Anchored.ConstructorOptions): void;
|
|
@@ -107,11 +109,16 @@ export declare abstract class AbstractAnchored<STATE extends AbstractAnchored.St
|
|
|
107
109
|
/** @internal */
|
|
108
110
|
protected _processTransactionDone(_transaction: ITransaction): void;
|
|
109
111
|
protected _getState(): Readonly<STATE>;
|
|
110
|
-
protected _beginCommit(options?: string | ITransaction.
|
|
112
|
+
protected _beginCommit(options?: string | ITransaction.StoreOperationOptions): ITransaction;
|
|
111
113
|
protected _getTransactions(): ITransaction.IStore;
|
|
112
114
|
protected _updateState(updateState?: Partial<STATE>, //(prevState: STATE) => STATE,
|
|
113
115
|
options?: string | ITransaction.OperationOptions | null, events?: (keyof EVENTS)[] | null, skipProtection?: boolean): this;
|
|
114
116
|
protected _notify(events?: (keyof EVENTS)[] | keyof EVENTS): void;
|
|
117
|
+
/**
|
|
118
|
+
* Whether this model announces `onAnyChange` itself, once for every change of its state (undo and
|
|
119
|
+
* redo included), so that {@link _notify} must not add it to what a writer announces.
|
|
120
|
+
*/
|
|
121
|
+
protected _isAnyChangeFromState(): boolean;
|
|
115
122
|
/**
|
|
116
123
|
* The authoritative anchor write for a shift.
|
|
117
124
|
*
|
|
@@ -125,16 +132,21 @@ export declare abstract class AbstractAnchored<STATE extends AbstractAnchored.St
|
|
|
125
132
|
/** @internal */
|
|
126
133
|
protected _processContainerShift(options: Anchored.ShiftOptions): IRange.Coords | null | void;
|
|
127
134
|
/** @internal */
|
|
128
|
-
protected _processBeforeCommitStart(_state: STATE,
|
|
129
|
-
/**
|
|
130
|
-
|
|
135
|
+
protected _processBeforeCommitStart(_state: STATE, _commit: ITransaction.ICommit): void;
|
|
136
|
+
/**
|
|
137
|
+
* Called after this item's state changed: by a commit, or by an undo (`isRevert`) or redo
|
|
138
|
+
* (`isRestore`) that landed on a different state for it. Items whose state the undo or redo
|
|
139
|
+
* left alone are not called.
|
|
140
|
+
* @internal
|
|
141
|
+
*/
|
|
142
|
+
protected _processAfterStateChange(_state: STATE, _commit: ITransaction.ICommit, _isRevert?: boolean, _isRestore?: boolean): void;
|
|
131
143
|
/**
|
|
132
144
|
* Called before local commit
|
|
133
145
|
* @internal
|
|
134
146
|
*/
|
|
135
147
|
protected _processUpdateState(prevState: Partial<STATE>, newState: Partial<STATE>): void;
|
|
136
148
|
/** @internal */
|
|
137
|
-
protected _processRestoreOrRevert(_state: STATE,
|
|
149
|
+
protected _processRestoreOrRevert(_state: STATE, _commit: ITransaction.ICommit): void;
|
|
138
150
|
/** @internal */
|
|
139
151
|
protected _processAnchorCoords(): void;
|
|
140
152
|
/** @internal */
|
|
@@ -194,7 +206,5 @@ export declare namespace AbstractAnchored {
|
|
|
194
206
|
anchorType: IAnchored.Type;
|
|
195
207
|
isDeleted: boolean;
|
|
196
208
|
}
|
|
197
|
-
interface CommitView {
|
|
198
|
-
}
|
|
199
209
|
}
|
|
200
210
|
//# sourceMappingURL=AbstractAnchored.d.ts.map
|
|
@@ -108,6 +108,8 @@ export declare class AnchoredMap<T extends IAnchored, J, P = any> implements IAn
|
|
|
108
108
|
has(range: Readonly<IRange.Coords>): boolean;
|
|
109
109
|
/** {@inheritDoc IAnchoredMap.shift} */
|
|
110
110
|
shift(options: IAnchoredMap.ShiftOptions): this;
|
|
111
|
+
/** {@inheritDoc IAnchoredMap.copyTo} */
|
|
112
|
+
copyTo(topLeft: IRange.CellCoords, from: IRange.Coords, move?: boolean): this;
|
|
111
113
|
/**
|
|
112
114
|
* Applies a per-model entry delta, then notifies each affected model **exactly once**.
|
|
113
115
|
*
|
|
@@ -111,6 +111,37 @@ export interface IAnchoredMap<T extends IAnchored, J = any> extends ISpatialQuer
|
|
|
111
111
|
* @param options The options for the shift.
|
|
112
112
|
*/
|
|
113
113
|
shift(options: IAnchoredMap.ShiftOptions): this;
|
|
114
|
+
/**
|
|
115
|
+
* Copies every range the source rectangle carries to a destination, optionally removing the
|
|
116
|
+
* source - which is what a cut is.
|
|
117
|
+
*
|
|
118
|
+
* @param topLeft Where the source's top-left cell lands. The destination's extent is the
|
|
119
|
+
* source's, so naming the corner is the whole of it; a destination RANGE would carry a size
|
|
120
|
+
* nobody reads and could disagree with `from`.
|
|
121
|
+
* @param from The source rectangle.
|
|
122
|
+
* @param move Remove the source entries, making this a cut rather than a copy.
|
|
123
|
+
*
|
|
124
|
+
* @returns The map as the copy leaves it - `this` when nothing was carried.
|
|
125
|
+
*
|
|
126
|
+
* @remarks
|
|
127
|
+
* The spatial copy path ({@link ISpatialMap.createCopiedEntries}), so an anchored range is
|
|
128
|
+
* carried the way every other spatial value is: an entry the source encloses is carried whole;
|
|
129
|
+
* one that crosses the source boundary is split and its enclosed part carried - or, for a map
|
|
130
|
+
* whose entries cannot be split ({@link ConstructorOptions.isSplittable}), left behind whole.
|
|
131
|
+
* What the carried entry is comes from the value's own
|
|
132
|
+
* {@link ISpatialMap.IUpdatableValue.copyTo}; the default carries the value across untouched,
|
|
133
|
+
* so the model's identity survives, and a {@link CreateEntryOptions.createEntry} may supply
|
|
134
|
+
* another.
|
|
135
|
+
*
|
|
136
|
+
* The destination is this map. Copying into ANOTHER map - which is what a cut to another sheet
|
|
137
|
+
* needs - waits for a consumer: this map is copy-on-write, so a cross-map copy has to hand back
|
|
138
|
+
* both a source without the entries and a destination with them, and no caller wants that yet.
|
|
139
|
+
*
|
|
140
|
+
* A copy (`move` unset) leaves the source where it is and gives the same MODEL a second
|
|
141
|
+
* rectangle. Whether a copy should instead mint a new model is undecided; only the cut has a
|
|
142
|
+
* consumer today.
|
|
143
|
+
*/
|
|
144
|
+
copyTo(topLeft: IRange.CellCoords, from: IRange.Coords, move?: boolean): this;
|
|
114
145
|
/**
|
|
115
146
|
* Remove all models at range.
|
|
116
147
|
*/
|
|
@@ -155,6 +186,25 @@ export declare namespace IAnchoredMap {
|
|
|
155
186
|
* Get the entire range of the current model.
|
|
156
187
|
*/
|
|
157
188
|
getEntireRange: () => ICellRange;
|
|
189
|
+
/**
|
|
190
|
+
* Whether this map's entries may be cut into pieces.
|
|
191
|
+
*
|
|
192
|
+
* @defaultValue `true`
|
|
193
|
+
*
|
|
194
|
+
* @remarks
|
|
195
|
+
* `false` says an entry is indivisible: on a partial shift the whole of it moves, the way a
|
|
196
|
+
* formula precedent does, rather than fragmenting into the part that moved and the part that
|
|
197
|
+
* did not. See {@link ISpatialMap.UpdateOptions.isSplittable}.
|
|
198
|
+
*/
|
|
199
|
+
isSplittable?: boolean;
|
|
200
|
+
/**
|
|
201
|
+
* Shifts one entry of a model, in place of the map's own arithmetic.
|
|
202
|
+
*
|
|
203
|
+
* @remarks
|
|
204
|
+
* Returns the entry's new coords, `null` to remove it, or `undefined` to keep the map's answer.
|
|
205
|
+
* Called once per entry the shift reaches, with the map's own answer in `details.after`.
|
|
206
|
+
*/
|
|
207
|
+
shiftEntry?: (model: IAnchored, details: ISpatialMap.ShiftDetails) => IRange.Coords | null | undefined;
|
|
158
208
|
}
|
|
159
209
|
interface CreateEntryOptions<T extends IAnchored> {
|
|
160
210
|
/**
|
|
@@ -165,7 +215,8 @@ export declare namespace IAnchoredMap {
|
|
|
165
215
|
* If provided then will allow for custom Anchored.Entry.
|
|
166
216
|
*
|
|
167
217
|
* @remarks
|
|
168
|
-
* Useful when the entries have custom merge/split or other spatial logic
|
|
218
|
+
* Useful when the entries have custom merge/split or other spatial logic. A value without a
|
|
219
|
+
* `getSplit` or a `copyTo` is given the map's default for it.
|
|
169
220
|
*/
|
|
170
221
|
createEntry?: (model: T, coords: IRange.Coords) => Anchored.Entry2<T>;
|
|
171
222
|
/**
|
|
@@ -182,9 +233,6 @@ export declare namespace IAnchoredMap {
|
|
|
182
233
|
*/
|
|
183
234
|
invalidate?: (coords?: IRange.Coords) => void;
|
|
184
235
|
}
|
|
185
|
-
/**
|
|
186
|
-
* Options for the shift method on the Index.
|
|
187
|
-
*/
|
|
188
236
|
interface ShiftOptions {
|
|
189
237
|
/**
|
|
190
238
|
* The range to shift.
|
|
@@ -1,46 +1,135 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InteropScalarType } from '@sheetxl/primitives';
|
|
2
|
+
import { DateUnit } from '../date/DateUtils';
|
|
2
3
|
import { IAutoFill } from './IAutoFill';
|
|
3
|
-
type JavaScriptDate = Date;
|
|
4
4
|
export declare namespace AutoFill {
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Fills date series. Values are spreadsheet SERIAL numbers, never JavaScript `Date` objects —
|
|
7
|
+
* a cell stores a date as a number, so filling one is arithmetic on that number and nothing has
|
|
8
|
+
* to be boxed and unboxed to run it.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* Which numbers are dates comes from {@link IAutoFill.Options.types}, because a serial is
|
|
12
|
+
* indistinguishable from any other number without the cell's format.
|
|
7
13
|
*/
|
|
8
|
-
class Date implements IAutoFill.Filler<
|
|
14
|
+
class Date implements IAutoFill.Filler<number> {
|
|
9
15
|
private _options;
|
|
10
16
|
constructor(options?: DateOptions);
|
|
17
|
+
/** {@inheritDoc IAutoFill.Filler.id} */
|
|
18
|
+
readonly id: string;
|
|
19
|
+
/** {@inheritDoc IAutoFill.Filler.type} */
|
|
20
|
+
readonly type: InteropScalarType;
|
|
21
|
+
/** {@inheritDoc IAutoFill.Filler.supportsStep} */
|
|
22
|
+
readonly supportsStep: boolean;
|
|
23
|
+
/** {@inheritDoc IAutoFill.Filler.supportsStop} */
|
|
24
|
+
readonly supportsStop: boolean;
|
|
11
25
|
/**
|
|
12
|
-
*
|
|
26
|
+
* Claims every serial in the run — a date template that turns out NOT to be a series is
|
|
27
|
+
* repeated whole (Excel does the same), so it is never split into shorter ones.
|
|
13
28
|
* @see
|
|
14
|
-
* {@link IAutoFill.Filler.
|
|
29
|
+
* {@link IAutoFill.Filler.matches}
|
|
15
30
|
*/
|
|
16
|
-
|
|
31
|
+
matches(values: readonly number[], from?: number): number;
|
|
17
32
|
/** {@inheritDoc IAutoFill.Filler.createFillAt} */
|
|
18
|
-
createFillAt(values: readonly
|
|
33
|
+
createFillAt(values: readonly number[], options?: DateOptions): IAutoFill.FillAt<number> | null;
|
|
19
34
|
}
|
|
20
35
|
/**
|
|
21
36
|
* Adds additional fill options for Dates.
|
|
22
37
|
*/
|
|
23
38
|
interface DateOptions extends IAutoFill.Options {
|
|
24
39
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
40
|
+
* The unit each step counts, which is what makes a named date fill its own type.
|
|
41
|
+
*
|
|
42
|
+
* @defaultValue Read off the template, LARGEST unit first — years, month ends, months,
|
|
43
|
+
* weekdays, then the serial's own arithmetic (days, or hours for a bare time).
|
|
44
|
+
*
|
|
45
|
+
* @remarks
|
|
46
|
+
* {@link DateUnit.Weekday} is only ever read off a template that a plain day series can NOT
|
|
47
|
+
* explain: `Mon, Tue, Wed` is a one-day step, and so is `Fri, Mon` — Excel's three days —
|
|
48
|
+
* because two dates are always a plain step apart. `Fri, Mon, Tue` has no such reading and is a
|
|
49
|
+
* business-day series.
|
|
28
50
|
*/
|
|
29
51
|
unit?: DateUnit;
|
|
52
|
+
/**
|
|
53
|
+
* Land every filled value on the last day of its month, rather than keeping the template's
|
|
54
|
+
* day-of-month.
|
|
55
|
+
*
|
|
56
|
+
* @defaultValue false — but a template whose values are ALL month ends is read as a month-end
|
|
57
|
+
* series anyway, so this is only needed to force one.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* `Jan 15` with `{ unit: Month, monthEnd: true }` fills `Jan 31, Feb 28, Mar 31` where the
|
|
61
|
+
* plain month fill gives `Feb 15, Mar 15`.
|
|
62
|
+
*/
|
|
63
|
+
monthEnd?: boolean;
|
|
30
64
|
}
|
|
31
65
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
66
|
+
* Fills a straight numeric series — each value the previous one PLUS a step.
|
|
67
|
+
*
|
|
68
|
+
* @remarks
|
|
69
|
+
* The step is read off the template as a least-squares fit, so a template that only roughly
|
|
70
|
+
* trends still extends along its line. {@link IAutoFill.Options.stepValue} replaces that step
|
|
71
|
+
* outright, and {@link IAutoFill.Options.trend} keeps the fit while refusing any step at all.
|
|
34
72
|
*/
|
|
35
73
|
class Linear implements IAutoFill.Filler<number> {
|
|
36
74
|
private _options;
|
|
37
75
|
constructor(options?: IAutoFill.Options);
|
|
76
|
+
/** {@inheritDoc IAutoFill.Filler.id} */
|
|
77
|
+
readonly id: string;
|
|
78
|
+
/** {@inheritDoc IAutoFill.Filler.type} */
|
|
79
|
+
readonly type: InteropScalarType;
|
|
80
|
+
/** {@inheritDoc IAutoFill.Filler.supportsStep} */
|
|
81
|
+
readonly supportsStep: boolean;
|
|
82
|
+
/** {@inheritDoc IAutoFill.Filler.supportsStop} */
|
|
83
|
+
readonly supportsStop: boolean;
|
|
84
|
+
/** {@inheritDoc IAutoFill.Filler.supportsTrend} */
|
|
85
|
+
readonly supportsTrend: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Claims the run of numbers — a numeric template is one series, however its values trend.
|
|
88
|
+
* @see
|
|
89
|
+
* {@link IAutoFill.Filler.matches}
|
|
90
|
+
*/
|
|
91
|
+
matches(values: readonly number[], from?: number): number;
|
|
92
|
+
/** {@inheritDoc IAutoFill.Filler.createFillAt} */
|
|
93
|
+
createFillAt(values: readonly number[], options?: IAutoFill.Options): IAutoFill.FillAt<number> | null;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Fills a geometric series — each value the previous one MULTIPLIED by a ratio, where
|
|
97
|
+
* {@link Linear} adds.
|
|
98
|
+
*
|
|
99
|
+
* @remarks
|
|
100
|
+
* {@link IAutoFill.Options.stepValue} is that ratio, not an increment: `1` stepping by `2` fills
|
|
101
|
+
* `2, 4, 8, 16`. Nothing here is a special case — a ratio of `0` collapses the series to zeros,
|
|
102
|
+
* a negative one alternates the sign, and a zero anchor stays zero, all of which is just the
|
|
103
|
+
* multiplication.
|
|
104
|
+
*
|
|
105
|
+
* With {@link IAutoFill.Options.trend} the ratio is FITTED instead — a least-squares line
|
|
106
|
+
* through the logs of the values, which is a geometric curve through the values themselves.
|
|
107
|
+
*
|
|
108
|
+
* Never auto-detected: Excel offers growth only as an explicit choice, so this is not among the
|
|
109
|
+
* fillers {@link Types.Series} composes.
|
|
110
|
+
*/
|
|
111
|
+
class Growth implements IAutoFill.Filler<number> {
|
|
112
|
+
private _options;
|
|
113
|
+
constructor(options?: IAutoFill.Options);
|
|
114
|
+
/** {@inheritDoc IAutoFill.Filler.id} */
|
|
115
|
+
readonly id: string;
|
|
116
|
+
/** {@inheritDoc IAutoFill.Filler.type} */
|
|
117
|
+
readonly type: InteropScalarType;
|
|
118
|
+
/** {@inheritDoc IAutoFill.Filler.supportsStep} */
|
|
119
|
+
readonly supportsStep: boolean;
|
|
120
|
+
/** {@inheritDoc IAutoFill.Filler.supportsStop} */
|
|
121
|
+
readonly supportsStop: boolean;
|
|
122
|
+
/** {@inheritDoc IAutoFill.Filler.supportsTrend} */
|
|
123
|
+
readonly supportsTrend: boolean;
|
|
38
124
|
/**
|
|
39
|
-
*
|
|
125
|
+
* Claims the run of numbers — but only one it could fill: with no ratio given (and no fit
|
|
126
|
+
* asked for) the numbers must already step by a constant ratio, or there is nothing to
|
|
127
|
+
* continue and the caller would only repeat them. `1, 2, 3, 4` is not offered a growth fill;
|
|
128
|
+
* `1, 2, 4, 8` and a lone `5` are.
|
|
40
129
|
* @see
|
|
41
|
-
* {@link IAutoFill.Filler.
|
|
130
|
+
* {@link IAutoFill.Filler.matches}
|
|
42
131
|
*/
|
|
43
|
-
|
|
132
|
+
matches(values: readonly number[], from?: number, options?: IAutoFill.Options): number;
|
|
44
133
|
/** {@inheritDoc IAutoFill.Filler.createFillAt} */
|
|
45
134
|
createFillAt(values: readonly number[], options?: IAutoFill.Options): IAutoFill.FillAt<number> | null;
|
|
46
135
|
}
|
|
@@ -48,13 +137,18 @@ export declare namespace AutoFill {
|
|
|
48
137
|
* Ordinal implements IAutoFill.Filler to handles Strings that have a Integer value.
|
|
49
138
|
*/
|
|
50
139
|
class Ordinal implements IAutoFill.Filler<string> {
|
|
140
|
+
/** {@inheritDoc IAutoFill.Filler.id} */
|
|
141
|
+
readonly id: string;
|
|
142
|
+
/** {@inheritDoc IAutoFill.Filler.type} */
|
|
143
|
+
readonly type: InteropScalarType;
|
|
51
144
|
private _template;
|
|
52
145
|
/**
|
|
53
|
-
*
|
|
146
|
+
* Claims the leading run that shares one ordinal template, so `Test 1, Test 3, Wow 1` is two
|
|
147
|
+
* series rather than one.
|
|
54
148
|
* @see
|
|
55
|
-
* {@link IAutoFill.Filler.
|
|
149
|
+
* {@link IAutoFill.Filler.matches}
|
|
56
150
|
*/
|
|
57
|
-
|
|
151
|
+
matches(values: readonly string[], from?: number): number;
|
|
58
152
|
/** {@inheritDoc IAutoFill.Filler.createFillAt} */
|
|
59
153
|
createFillAt(values: readonly string[], options?: IAutoFill.Options): IAutoFill.FillAt<string> | null;
|
|
60
154
|
}
|
|
@@ -66,12 +160,14 @@ export declare namespace AutoFill {
|
|
|
66
160
|
* being provided.
|
|
67
161
|
*/
|
|
68
162
|
class Copy implements IAutoFill.Filler<any> {
|
|
163
|
+
/** {@inheritDoc IAutoFill.Filler.id} */
|
|
164
|
+
readonly id: string;
|
|
69
165
|
/**
|
|
70
|
-
*
|
|
166
|
+
* Claims everything up to the last value that is not blank.
|
|
71
167
|
* @see
|
|
72
|
-
* {@link IAutoFill.Filler.
|
|
168
|
+
* {@link IAutoFill.Filler.matches}
|
|
73
169
|
*/
|
|
74
|
-
|
|
170
|
+
matches(values: readonly any[], from?: number): number;
|
|
75
171
|
/** {@inheritDoc IAutoFill.Filler.createFillAt} */
|
|
76
172
|
createFillAt(values: readonly number[], _options?: IAutoFill.Options): IAutoFill.FillAt<number>;
|
|
77
173
|
}
|
|
@@ -92,15 +188,21 @@ export declare namespace AutoFill {
|
|
|
92
188
|
* being provided.
|
|
93
189
|
*/
|
|
94
190
|
class List implements IAutoFill.Filler<string> {
|
|
191
|
+
/** {@inheritDoc IAutoFill.Filler.id} */
|
|
192
|
+
readonly id: string;
|
|
193
|
+
/** {@inheritDoc IAutoFill.Filler.type} */
|
|
194
|
+
readonly type: InteropScalarType;
|
|
95
195
|
private _lists;
|
|
96
196
|
private _map;
|
|
97
197
|
constructor(options?: ListOptions);
|
|
98
198
|
/**
|
|
99
|
-
*
|
|
199
|
+
* Claims the leading run whose values all belong to ONE list. A value can sit in several (`May`
|
|
200
|
+
* is in both the long and the short months), so the claim narrows the candidate lists as it
|
|
201
|
+
* goes and stops at the first value that leaves none.
|
|
100
202
|
* @see
|
|
101
|
-
* {@link IAutoFill.Filler.
|
|
203
|
+
* {@link IAutoFill.Filler.matches}
|
|
102
204
|
*/
|
|
103
|
-
|
|
205
|
+
matches(values: readonly string[], from?: number): number;
|
|
104
206
|
/** {@inheritDoc IAutoFill.Filler.createFillAt} */
|
|
105
207
|
createFillAt(values: readonly string[], options?: IAutoFill.Options): IAutoFill.FillAt<string> | null;
|
|
106
208
|
}
|
|
@@ -108,21 +210,31 @@ export declare namespace AutoFill {
|
|
|
108
210
|
* A specialized `Filler` that aggregates multiple `Filler` instances to handle various data types
|
|
109
211
|
* during autofill operations.
|
|
110
212
|
*
|
|
111
|
-
* It
|
|
112
|
-
*
|
|
213
|
+
* It splits the template into series and hands each one to the first `Filler` in its collection
|
|
214
|
+
* that reads the segment's type and claims it, so a range holding several kinds of data — and
|
|
215
|
+
* several series of the same kind — fills as the sum of its parts.
|
|
113
216
|
*
|
|
114
217
|
* @remarks
|
|
115
218
|
* This filler will also handle blanks.
|
|
116
219
|
*/
|
|
117
220
|
class Composite<T = any> implements IAutoFill.Filler<T> {
|
|
118
221
|
private _fillers;
|
|
119
|
-
constructor(fillers: IAutoFill.Filler | IAutoFill.Filler[]);
|
|
120
222
|
/**
|
|
121
|
-
*
|
|
223
|
+
* The fillers that can be offered each value type, in registration order. Built once so a
|
|
224
|
+
* segment costs a lookup rather than a walk of every filler, and so a filler registered for
|
|
225
|
+
* two types keeps a separate priority in each.
|
|
226
|
+
*/
|
|
227
|
+
private _byType;
|
|
228
|
+
constructor(fillers: IAutoFill.Filler | IAutoFill.Filler[], id?: string);
|
|
229
|
+
/** {@inheritDoc IAutoFill.Filler.id} */
|
|
230
|
+
readonly id: string;
|
|
231
|
+
/**
|
|
232
|
+
* Claims everything up to the last value that is not blank — a Composite splits the template
|
|
233
|
+
* into series itself rather than handing part of it back.
|
|
122
234
|
* @see
|
|
123
|
-
* {@link IAutoFill.Filler.
|
|
235
|
+
* {@link IAutoFill.Filler.matches}
|
|
124
236
|
*/
|
|
125
|
-
|
|
237
|
+
matches(values: readonly T[], from?: number, options?: IAutoFill.Options): number;
|
|
126
238
|
/** {@inheritDoc IAutoFill.Filler.createFillAt} */
|
|
127
239
|
createFillAt(values: readonly T[], options?: IAutoFill.Options): IAutoFill.FillAt<T>;
|
|
128
240
|
}
|
|
@@ -135,10 +247,28 @@ export declare namespace AutoFill {
|
|
|
135
247
|
* This attempts to fill use `Dates`, `Linear`, `Ordinal`, then `List`.
|
|
136
248
|
*/
|
|
137
249
|
readonly Series: Composite<any>;
|
|
250
|
+
/**
|
|
251
|
+
* Fills a straight numeric series — the step read from the template, or given outright.
|
|
252
|
+
*/
|
|
253
|
+
readonly Linear: Linear;
|
|
254
|
+
/**
|
|
255
|
+
* Fills a geometric series — each value the previous one times a ratio.
|
|
256
|
+
*/
|
|
257
|
+
readonly Growth: Growth;
|
|
138
258
|
/**
|
|
139
259
|
* Fills using individual days.
|
|
140
260
|
*/
|
|
141
261
|
readonly DateDays: Date;
|
|
262
|
+
/**
|
|
263
|
+
* Fills business days, skipping Saturday and Sunday.
|
|
264
|
+
*
|
|
265
|
+
* @remarks
|
|
266
|
+
* A template that only a business-day series explains — `Fri, Mon, Tue` — fills this way under
|
|
267
|
+
* {@link Series} too; this is for asking for it outright, from a template a plain day series
|
|
268
|
+
* would otherwise account for. A weekend anchor is taken rather than refused: the fill means
|
|
269
|
+
* "give me business days from here".
|
|
270
|
+
*/
|
|
271
|
+
readonly DateWeekdays: Date;
|
|
142
272
|
/**
|
|
143
273
|
* Fills using months.
|
|
144
274
|
*/
|
|
@@ -147,15 +277,169 @@ export declare namespace AutoFill {
|
|
|
147
277
|
* Fills using years.
|
|
148
278
|
*/
|
|
149
279
|
readonly DateYears: Date;
|
|
280
|
+
/**
|
|
281
|
+
* Fills month by month, landing on the last day of each.
|
|
282
|
+
*
|
|
283
|
+
* @remarks
|
|
284
|
+
* A template already on month ends fills this way under {@link Series} too — this is for
|
|
285
|
+
* asking for it outright, from a day-of-month the template does not otherwise imply.
|
|
286
|
+
*/
|
|
287
|
+
readonly DateMonthEnd: Date;
|
|
150
288
|
/**
|
|
151
289
|
* Fills with a repeating values.
|
|
152
290
|
*/
|
|
153
291
|
readonly Copy: Copy;
|
|
154
292
|
};
|
|
293
|
+
/**
|
|
294
|
+
* The fills that can be OFFERED to a user — the entries of a fill menu or a Series type list.
|
|
295
|
+
*
|
|
296
|
+
* @remarks
|
|
297
|
+
* These are {@link IAutoFill.Preset}s, not fillers: the same filler appears under several of
|
|
298
|
+
* them with different options. Ids are stable and are what a menu entry, a script, or a
|
|
299
|
+
* transaction's operation params name; display labels are localized against the id.
|
|
300
|
+
*
|
|
301
|
+
* Which of these to show for a given selection is {@link canApply}.
|
|
302
|
+
*/
|
|
303
|
+
const Presets: {
|
|
304
|
+
/** Repeat the template, filling nothing. Excel's `Copy Cells`. */
|
|
305
|
+
readonly Copy: {
|
|
306
|
+
readonly id: "copy";
|
|
307
|
+
readonly filler: Copy;
|
|
308
|
+
};
|
|
309
|
+
/** Read the series off the template. Excel's `Fill Series` / the Series dialog's `AutoFill`. */
|
|
310
|
+
readonly Series: {
|
|
311
|
+
readonly id: "series";
|
|
312
|
+
readonly filler: Composite<any>;
|
|
313
|
+
};
|
|
314
|
+
/** A straight numeric series. */
|
|
315
|
+
readonly Linear: {
|
|
316
|
+
readonly id: "linear";
|
|
317
|
+
readonly filler: Linear;
|
|
318
|
+
};
|
|
319
|
+
/** A geometric series — the step is a ratio. */
|
|
320
|
+
readonly Growth: {
|
|
321
|
+
readonly id: "growth";
|
|
322
|
+
readonly filler: Growth;
|
|
323
|
+
};
|
|
324
|
+
/** Year by year. */
|
|
325
|
+
readonly DateYears: {
|
|
326
|
+
readonly id: "date.years";
|
|
327
|
+
readonly filler: Date;
|
|
328
|
+
};
|
|
329
|
+
/** Month by month, landing on the last day of each. */
|
|
330
|
+
readonly DateMonthEnd: {
|
|
331
|
+
readonly id: "date.monthEnd";
|
|
332
|
+
readonly filler: Date;
|
|
333
|
+
};
|
|
334
|
+
/** Month by month, keeping the day where the month is long enough. */
|
|
335
|
+
readonly DateMonths: {
|
|
336
|
+
readonly id: "date.months";
|
|
337
|
+
readonly filler: Date;
|
|
338
|
+
};
|
|
339
|
+
/** Business day by business day, skipping weekends. */
|
|
340
|
+
readonly DateWeekdays: {
|
|
341
|
+
readonly id: "date.weekdays";
|
|
342
|
+
readonly filler: Date;
|
|
343
|
+
};
|
|
344
|
+
/** Day by day. */
|
|
345
|
+
readonly DateDays: {
|
|
346
|
+
readonly id: "date.days";
|
|
347
|
+
readonly filler: Date;
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* A straight numeric series FITTED to the template rather than stepped from it.
|
|
351
|
+
*
|
|
352
|
+
* @remarks
|
|
353
|
+
* A fit needs two points, which is why Excel greys `Linear Trend` on a single cell and offers
|
|
354
|
+
* `Fill Days` there. The arity belongs to the option, not to {@link Types.Linear}, which fills
|
|
355
|
+
* a single value happily enough without it.
|
|
356
|
+
*/
|
|
357
|
+
readonly LinearTrend: {
|
|
358
|
+
readonly id: "linear.trend";
|
|
359
|
+
readonly filler: Linear;
|
|
360
|
+
readonly options: {
|
|
361
|
+
readonly trend: true;
|
|
362
|
+
};
|
|
363
|
+
readonly minValues: 2;
|
|
364
|
+
};
|
|
365
|
+
/** A geometric series fitted to the template — the same fit, run on the logs. */
|
|
366
|
+
readonly GrowthTrend: {
|
|
367
|
+
readonly id: "growth.trend";
|
|
368
|
+
readonly filler: Growth;
|
|
369
|
+
readonly options: {
|
|
370
|
+
readonly trend: true;
|
|
371
|
+
};
|
|
372
|
+
readonly minValues: 2;
|
|
373
|
+
};
|
|
374
|
+
};
|
|
375
|
+
/**
|
|
376
|
+
* Whether `preset` can be offered for a selection holding these value types.
|
|
377
|
+
*
|
|
378
|
+
* @param types The type of each value in the selection, `Null` for a blank.
|
|
379
|
+
*
|
|
380
|
+
* @remarks
|
|
381
|
+
* Three checks, and between them they account for every state Excel's fill menu shows:
|
|
382
|
+
* * **Type** — a filler is offered only where the values are the type it reads. This is what
|
|
383
|
+
* greys `Fill Months` on a numeric selection, and `Linear Trend` on a date one.
|
|
384
|
+
* * **Arity** — {@link IAutoFill.Preset.minValues} against the non-blank count. This is what
|
|
385
|
+
* greys `Linear Trend` on a single cell.
|
|
386
|
+
* * **Claim** — {@link IAutoFill.Filler.matches}. This is what greys `Fill Series` on `abc,
|
|
387
|
+
* def` while leaving `Copy Cells` alone: nothing recognizes a series there, so the fill would
|
|
388
|
+
* be a copy by another name.
|
|
389
|
+
*
|
|
390
|
+
* A filler's `matches` therefore has to answer *could you fill from this if asked*, which is
|
|
391
|
+
* NOT always *is this template already a series of my kind*. The two come apart for a filler
|
|
392
|
+
* that is never auto-detected: `Fill Weekdays` should be offered for a template of two weekend
|
|
393
|
+
* dates — it means "give me business days from here", and the engine happily takes a Saturday
|
|
394
|
+
* anchor — even though those two dates are not a weekday series. A filler outside
|
|
395
|
+
* {@link Types.Series}'s composite is only ever asked on the explicit path, so it should claim
|
|
396
|
+
* permissively.
|
|
397
|
+
*/
|
|
398
|
+
const canApply: (preset: IAutoFill.Preset, values: readonly any[], types: readonly InteropScalarType[]) => boolean;
|
|
399
|
+
/**
|
|
400
|
+
* The preset registered under `id`, or `undefined` for one that is not.
|
|
401
|
+
*
|
|
402
|
+
* @remarks
|
|
403
|
+
* An id is what a surface, a script, or a transaction's {@link ITransaction.Operation.params}
|
|
404
|
+
* names a fill type by — it survives a round trip where a filler instance would not — so
|
|
405
|
+
* something has to resolve one again.
|
|
406
|
+
*/
|
|
407
|
+
const getPreset: (id: string) => IAutoFill.Preset | undefined;
|
|
408
|
+
/**
|
|
409
|
+
* The preset that best DESCRIBES a template — what a Series dialog opens on, and what a caller
|
|
410
|
+
* asking "what is this?" is told.
|
|
411
|
+
*
|
|
412
|
+
* @param types The type of each value, `Null` for a blank — without which a serial date is
|
|
413
|
+
* indistinguishable from any other number.
|
|
414
|
+
*
|
|
415
|
+
* @remarks
|
|
416
|
+
* This is the opposite question from {@link canApply}, which asks whether a NAMED fill could be
|
|
417
|
+
* applied. Here the template names itself: a date series at its largest unit (see
|
|
418
|
+
* {@link IAutoFill.DateSeries}), a numeric one as {@link Presets.Linear}, and text as
|
|
419
|
+
* {@link Presets.Series} — reading the series off the template is the best guess text can be
|
|
420
|
+
* given, and is what makes `test 1, test 2` and `Jan, Feb` fill as series rather than repeat.
|
|
421
|
+
* Only values nothing recognizes fall through to {@link Presets.Copy}.
|
|
422
|
+
*
|
|
423
|
+
* The answer is not checked against the selection — a caller offering it should fall back to a
|
|
424
|
+
* preset {@link canApply} allows.
|
|
425
|
+
*/
|
|
426
|
+
const detectPreset: (values: readonly any[], types: readonly InteropScalarType[], options?: IAutoFill.Options) => IAutoFill.Preset;
|
|
427
|
+
/**
|
|
428
|
+
* The `filler` and `fillerOptions` a chosen preset and a surface's own settings amount to — what
|
|
429
|
+
* {@link ICellRange.autoFill} is handed.
|
|
430
|
+
*
|
|
431
|
+
* @remarks
|
|
432
|
+
* A fit refuses a step and a stop, and a filler that cannot fit refuses the fit itself, so
|
|
433
|
+
* neither is passed where it means nothing — a surface hiding those fields makes that *displayed*
|
|
434
|
+
* where this makes it true.
|
|
435
|
+
*/
|
|
436
|
+
const toFillOptions: (preset: IAutoFill.Preset, options?: IAutoFill.Options) => {
|
|
437
|
+
filler: IAutoFill.Filler;
|
|
438
|
+
fillerOptions: IAutoFill.Options;
|
|
439
|
+
};
|
|
155
440
|
/**
|
|
156
441
|
* Simple methods that builds an array from a Filler.
|
|
157
442
|
*/
|
|
158
443
|
const fillTo: <T>(filler: IAutoFill.Filler, values: T[], to: number, options?: IAutoFill.Options) => T[];
|
|
159
444
|
}
|
|
160
|
-
export {};
|
|
161
445
|
//# sourceMappingURL=AutoFill.d.ts.map
|