@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
|
@@ -4,7 +4,7 @@ import { ICellRanges, ICellRange } from '../../cellRange';
|
|
|
4
4
|
import { ICalcGrid } from '../grid';
|
|
5
5
|
import { ReferenceCoords } from '../Types';
|
|
6
6
|
import { ICalculation } from '../ICalculation';
|
|
7
|
-
import { IFormulaBlock } from './IFormulaBlock';
|
|
7
|
+
import { IFormulaBlock, IFormulaBlockView } from './IFormulaBlock';
|
|
8
8
|
/**
|
|
9
9
|
* A formula for a cell.
|
|
10
10
|
*/
|
|
@@ -12,6 +12,7 @@ export declare class Formula implements ICalculation.IFormula {
|
|
|
12
12
|
protected _coords: IRange.CellCoords | null;
|
|
13
13
|
private _blockOwn;
|
|
14
14
|
protected _options: Formula.ConstructorOptions;
|
|
15
|
+
private _isCompiled;
|
|
15
16
|
/**
|
|
16
17
|
* The compiled body this formula reads through.
|
|
17
18
|
*
|
|
@@ -23,16 +24,31 @@ export declare class Formula implements ICalculation.IFormula {
|
|
|
23
24
|
* undo replaces the block in the versioned store and any captured instance is a snapshot of the
|
|
24
25
|
* definition as it was. A cell formula is handed its block at construction and keeps it.
|
|
25
26
|
*/
|
|
26
|
-
protected get _block():
|
|
27
|
+
protected get _block(): IFormulaBlockView;
|
|
28
|
+
/**
|
|
29
|
+
* @param isCompiled Whether the engine has compiled the body behind `block` yet. Supplied by a
|
|
30
|
+
* sheet cell, whose block is the sheet's own entry and may still be pending; a detached formula
|
|
31
|
+
* holds a compiled block and omits it. Read on every call, never captured: the entry heals in
|
|
32
|
+
* place when the engine vends, and so does this handle.
|
|
33
|
+
*/
|
|
27
34
|
constructor(coords: IRange.CellCoords | null, // temporary
|
|
28
|
-
block:
|
|
35
|
+
block: IFormulaBlockView, options: Formula.ConstructorOptions, isCompiled?: () => boolean);
|
|
36
|
+
/** {@inheritDoc ICalculation.IFormula.isCompiled} */
|
|
37
|
+
isCompiled(): boolean;
|
|
29
38
|
/** {@inheritDoc ICalculation.IFormula.getTokens} */
|
|
30
39
|
getTokens(evalIndex?: number): readonly ICalculation.FormulaToken[];
|
|
31
40
|
/** {@inheritDoc ICalculation.IFormula.isValid} */
|
|
32
41
|
isValid(): boolean;
|
|
33
42
|
/** {@inheritDoc ICalculation.IFormula.autoCorrect} */
|
|
34
43
|
autoCorrect(): ICalculation.IFormula | null;
|
|
35
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* {@inheritDoc ICalculation.IFormula.evaluate}
|
|
46
|
+
*
|
|
47
|
+
* @remarks
|
|
48
|
+
* Through the grid, not this formula's own block: evaluating needs the engine's calc scope.
|
|
49
|
+
* ({@link TemporaryFormula} overrides this - an in-flight formula was never written to a grid
|
|
50
|
+
* and evaluates locally.)
|
|
51
|
+
*/
|
|
36
52
|
evaluate(options?: number | ICalculation.EvaluateOptions): Promise<Scalar | IRange>;
|
|
37
53
|
/** {@inheritDoc ICalculation.IFormula.getCalculationStatus} */
|
|
38
54
|
getCalculationStatus(): ICalculation.ResultStatus;
|
|
@@ -40,6 +56,11 @@ export declare class Formula implements ICalculation.IFormula {
|
|
|
40
56
|
getReferences(): ICellRanges | null;
|
|
41
57
|
/** {@inheritDoc ICalculation.IFormula.hasRefError} */
|
|
42
58
|
hasRefError(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* The written references at this formula's cell, absolute, from its block: a committed formula's
|
|
61
|
+
* is the model's view of the engine's record, so nothing asks the engine. `null` with no cell.
|
|
62
|
+
*/
|
|
63
|
+
protected _referencesAt(): ReferenceCoords[] | null;
|
|
43
64
|
/**
|
|
44
65
|
* Resolve raw ABSOLUTE precedent refs (cell/range coords or named ids) into an {@link ICellRanges}, or
|
|
45
66
|
* `null` when there are none. Shared by the committed path ({@link getReferences}) and
|
|
@@ -47,13 +68,20 @@ export declare class Formula implements ICalculation.IFormula {
|
|
|
47
68
|
*/
|
|
48
69
|
protected _resolveReferences(rawRefs: ReferenceCoords[] | undefined): ICellRanges | null;
|
|
49
70
|
/** {@inheritDoc ICalculation.IFormula.setReferenceAt} */
|
|
50
|
-
setReferenceAt(index: number, reference: ICellRange.Address, options?: string | ITransaction.OperationOptions): this
|
|
71
|
+
setReferenceAt(index: number, reference: ICellRange.Address, options?: string | ITransaction.OperationOptions): Promise<this>;
|
|
72
|
+
/**
|
|
73
|
+
* The formula after a rewrite: the cell's own handle, which reads the entry the grid adopted
|
|
74
|
+
* the block into inside the batch; this one when the rewrite emptied the cell.
|
|
75
|
+
*/
|
|
76
|
+
protected _rewritten(written: IFormulaBlockView | null, coords: IRange.CellCoords): this;
|
|
51
77
|
/** {@inheritDoc ICalculation.IFormula.setReferenceModeAt} */
|
|
52
|
-
setReferenceModeAt(index: number, side?: ICalculation.ReferenceSide, mode?: number, options?: string | ITransaction.OperationOptions): this
|
|
78
|
+
setReferenceModeAt(index: number, side?: ICalculation.ReferenceSide, mode?: number, options?: string | ITransaction.OperationOptions): Promise<this>;
|
|
79
|
+
/** A reference edit rewrites the compiled body; there is none to rewrite while pending. */
|
|
80
|
+
protected _checkCompiled(): void;
|
|
53
81
|
/** {@inheritDoc ICalculation.IFormula.isReferenceOnly} */
|
|
54
82
|
isReferenceOnly(): boolean;
|
|
55
83
|
/** {@inheritDoc ICalculation.IFormula.isVolatile} */
|
|
56
|
-
isVolatile(): boolean
|
|
84
|
+
isVolatile(): Promise<boolean>;
|
|
57
85
|
/** {@inheritDoc ICalculation.IFormula.getExpression} */
|
|
58
86
|
getExpression(options?: ICalculation.FormulaTextOptions): string;
|
|
59
87
|
/** {@inheritDoc ICalculation.IFormula.getAnchor} */
|
|
@@ -69,20 +97,17 @@ export declare class Formula implements ICalculation.IFormula {
|
|
|
69
97
|
get isIFormula(): true;
|
|
70
98
|
}
|
|
71
99
|
export declare class TemporaryFormula extends Formula {
|
|
100
|
+
/**
|
|
101
|
+
* Narrowed to the full {@link IFormulaBlock}. An in-flight formula evaluates LOCALLY rather
|
|
102
|
+
* than reading a grid, and that path reaches engine-side members (`_doEval` calls
|
|
103
|
+
* `finalizeValueForCell`) - so unlike the committed base, which needs only
|
|
104
|
+
* {@link IFormulaBlockView}, this holds a real compiled block.
|
|
105
|
+
*/
|
|
106
|
+
protected get _block(): IFormulaBlock;
|
|
72
107
|
protected _doEval: (block: IFormulaBlock, options: number | ICalculation.EvaluateOptions) => Promise<Scalar | IRange>;
|
|
73
108
|
constructor(coords: IRange.CellCoords | null, block: IFormulaBlock, options: Formula.ConstructorOptions, doEval: (block: IFormulaBlock, options: number | ICalculation.EvaluateOptions) => Promise<Scalar | IRange>);
|
|
74
109
|
/** {@inheritDoc ICalculation.IFormula.evaluate} */
|
|
75
110
|
evaluate(options: number | ICalculation.EvaluateOptions): Promise<Scalar | IRange>;
|
|
76
|
-
/**
|
|
77
|
-
* {@inheritDoc ICalculation.IFormula.getReferences}
|
|
78
|
-
*
|
|
79
|
-
* @remarks
|
|
80
|
-
* Sources references from THIS block, not the grid — a temporary / in-flight formula (what the editor
|
|
81
|
-
* tokenizes while typing) was never written to the grid, so `getReferencesAt` at these coords would
|
|
82
|
-
* come back empty (blank cell) or stale (an existing formula being edited). The block yields RELATIVE
|
|
83
|
-
* refs; convert to absolute exactly as `ICalcGrid.getReferencesAt` does, then resolve as usual.
|
|
84
|
-
*/
|
|
85
|
-
getReferences(): ICellRanges | null;
|
|
86
111
|
/**
|
|
87
112
|
* {@inheritDoc ICalculation.IFormula.hasRefError}
|
|
88
113
|
*
|
|
@@ -100,7 +125,7 @@ export declare class TemporaryFormula extends Formula {
|
|
|
100
125
|
* committed cell); an in-flight edit (an editor range drag) must instead just produce the new text
|
|
101
126
|
* (via `getExpression`) without committing. Returns a new `TemporaryFormula` so it stays evaluable + chainable.
|
|
102
127
|
*/
|
|
103
|
-
setReferenceAt(index: number, reference: ICellRange.Address): this
|
|
128
|
+
setReferenceAt(index: number, reference: ICellRange.Address): Promise<this>;
|
|
104
129
|
/**
|
|
105
130
|
* {@inheritDoc ICalculation.IFormula.setReferenceModeAt}
|
|
106
131
|
*
|
|
@@ -109,14 +134,20 @@ export declare class TemporaryFormula extends Formula {
|
|
|
109
134
|
* block's reference and writes through the (pure) {@link setReferenceAt} instead of a grid transaction.
|
|
110
135
|
* Returns `this` unchanged when there's no reference at `index` (e.g. the caret isn't on one).
|
|
111
136
|
*/
|
|
112
|
-
setReferenceModeAt(index: number, side?: ICalculation.ReferenceSide, mode?: number, _options?: string | ITransaction.OperationOptions): this
|
|
137
|
+
setReferenceModeAt(index: number, side?: ICalculation.ReferenceSide, mode?: number, _options?: string | ITransaction.OperationOptions): Promise<this>;
|
|
113
138
|
}
|
|
114
139
|
export declare namespace Formula {
|
|
115
140
|
interface ConstructorOptions {
|
|
116
141
|
getRanges(address: ICellRanges.Address, options?: ICellRange.GetRangeOptions): ICellRanges;
|
|
117
142
|
getRange(address: ICellRange.Address, options?: ICellRange.GetRangeOptions): ICellRange;
|
|
118
|
-
|
|
119
|
-
|
|
143
|
+
/** The grid the formula is in: what it evaluates and rewrites its references through. */
|
|
144
|
+
getCalcGrid?(): Pick<ICalcGrid, 'evaluateAt' | 'setReferenceAt' | 'setReferenceModeAt' | 'isVolatileAt'> | null;
|
|
145
|
+
doBatchCalcGrid?(callback: (calcGrid: ICalcGrid) => Promise<IRange.Coords | null>, options?: string | ITransaction.OperationOptions): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* The engine's status, read when a pending formula is asked to evaluate: a `Starting` engine
|
|
148
|
+
* is awaited, an `Off` one is not started (see {@link ICalculation.IFormula.isCompiled}).
|
|
149
|
+
*/
|
|
150
|
+
getCalculationStatus?(): ICalculation.Status;
|
|
120
151
|
/**
|
|
121
152
|
* Resolve a sheet's internal stableId (`Sheet1-<uuid>`, rename-safe) to its current display name,
|
|
122
153
|
* or `null` when it can't be resolved. Reference coords from the calc engine carry stableId scopes;
|
|
@@ -143,6 +174,12 @@ export declare namespace Formula {
|
|
|
143
174
|
* coords (the temporary path's `scope`-carrying originals) may ignore it.
|
|
144
175
|
*/
|
|
145
176
|
autoCorrect?(text: string, coords?: Partial<IRange.CellCoords>): ICalculation.IFormula | null;
|
|
177
|
+
/**
|
|
178
|
+
* The form of the text {@link autoCorrect} and {@link createAt} are handed and compile.
|
|
179
|
+
*
|
|
180
|
+
* @defaultValue `'storage'`
|
|
181
|
+
*/
|
|
182
|
+
inputTarget?: ICalculation.FormulaTarget;
|
|
146
183
|
/**
|
|
147
184
|
* Compile `text` as a DETACHED formula anchored at `coords`. Supplied by the calculation, which
|
|
148
185
|
* owns the editing compiler (`Calculation.createFormula`), for the same reason
|
|
@@ -3,9 +3,9 @@ import { ICalculation } from '../ICalculation';
|
|
|
3
3
|
import { CalcScope } from '../state';
|
|
4
4
|
import { CompiledFormula } from '../compiler';
|
|
5
5
|
import { ASTNode, FunctionNode } from '../compiler/ASTTypes';
|
|
6
|
-
import { NamedReference, StructuredReference, ReferenceCoords, SetReferenceOptions } from '../Types';
|
|
6
|
+
import { NamedReference, StructuredReference, ReferenceCoords, SetReferenceOptions, PrecedentTemplate } from '../Types';
|
|
7
7
|
import { LambdaValue } from './LambdaValue';
|
|
8
|
-
import { IFormulaBlock } from './IFormulaBlock';
|
|
8
|
+
import { IFormulaBlock, FormulaRecord } from './IFormulaBlock';
|
|
9
9
|
/**
|
|
10
10
|
* Optional resolver callbacks injected by `Calculation` at construction time.
|
|
11
11
|
*
|
|
@@ -42,9 +42,16 @@ export declare class FormulaBlock implements IFormulaBlock {
|
|
|
42
42
|
* When `null` both reference types return formula errors.
|
|
43
43
|
*/
|
|
44
44
|
protected _resolvers: FormulaBlockResolvers | null;
|
|
45
|
+
/**
|
|
46
|
+
* {@link getPrecedentTemplate}'s answer, computed on first ask. `undefined` = not asked yet,
|
|
47
|
+
* `null` = this block's precedents are not a pure translation.
|
|
48
|
+
*/
|
|
49
|
+
protected _precedentTemplate: PrecedentTemplate | null | undefined;
|
|
50
|
+
/** {@link getRecord}'s answer, built on first ask; every vend of this block shares it. */
|
|
51
|
+
private _record;
|
|
45
52
|
constructor(compiled: CompiledFormula, context: IFormulaContext, scope: CalcScope, gridId: string | null, getEntireCoords: () => IRange.Coords, resolvers?: FormulaBlockResolvers | null);
|
|
46
53
|
/** @inheritdoc IFormulaBlock.getTextAt */
|
|
47
|
-
getTextAt(row: number, column: number, r1c1?: boolean,
|
|
54
|
+
getTextAt(row: number, column: number, r1c1?: boolean, evalIndex?: number, target?: ICalculation.FormulaTarget): string;
|
|
48
55
|
/**
|
|
49
56
|
* The display (non-canonical) locale: separators from the workbook locale (Plane 1) and boolean/
|
|
50
57
|
* error/specifier literals from the active spreadsheet-language pack (Plane 3). Resolved per call so
|
|
@@ -52,6 +59,15 @@ export declare class FormulaBlock implements IFormulaBlock {
|
|
|
52
59
|
* on the emit path; the parse callbacks and raw word-lists go unused here.
|
|
53
60
|
*/
|
|
54
61
|
private _displayLocale;
|
|
62
|
+
/** @inheritdoc IFormulaBlock.getRecord */
|
|
63
|
+
getRecord(): FormulaRecord;
|
|
64
|
+
/**
|
|
65
|
+
* The written references as the record carries them: {@link getReferences} before anything is
|
|
66
|
+
* resolved against a cell or a symbol.
|
|
67
|
+
*/
|
|
68
|
+
private _recordReferences;
|
|
69
|
+
/** @inheritdoc IFormulaBlock.getNode */
|
|
70
|
+
getNode(): ICalculation.FormulaNode | null;
|
|
55
71
|
/** @inheritdoc IFormulaBlock.getTokensAt */
|
|
56
72
|
getTokensAt(row: number, column: number, evalIndex?: number): ICalculation.FormulaToken[];
|
|
57
73
|
/** @inheritdoc IFormulaBlock.getError */
|
|
@@ -62,20 +78,35 @@ export declare class FormulaBlock implements IFormulaBlock {
|
|
|
62
78
|
getReferencedSymbolIds(): string[];
|
|
63
79
|
/** @inheritdoc IFormulaBlock.hasTotals */
|
|
64
80
|
hasTotals(): boolean;
|
|
81
|
+
/** @inheritdoc IFormulaBlock.isBlankCacheable */
|
|
82
|
+
isBlankCacheable(arrayMode?: boolean): boolean;
|
|
83
|
+
/** @inheritdoc IFormulaBlock.demandFirstCell */
|
|
84
|
+
demandFirstCell(): void;
|
|
65
85
|
/** @inheritdoc IFormulaBlock.isReferenceOnly */
|
|
66
86
|
isReferenceOnly(): boolean;
|
|
67
87
|
/** @inheritdoc IFormulaBlock.isEquals */
|
|
68
88
|
isEquals(other: IFormulaBlock): boolean;
|
|
69
89
|
/** @inheritdoc IFormulaBlock.getReferences */
|
|
70
90
|
getReferences(row: number, column: number): ReferenceCoords[];
|
|
91
|
+
/** @inheritdoc IFormulaBlockView.getReferencesAt */
|
|
92
|
+
getReferencesAt(row: number, column: number): ReferenceCoords[];
|
|
93
|
+
/** Built on first ask; the same array for every cell, so a run of cells conflates by identity. */
|
|
94
|
+
private _formatReferences;
|
|
95
|
+
/** @inheritdoc IFormulaBlock.getFormatReferences */
|
|
96
|
+
getFormatReferences(): IRange.FixableCoords[];
|
|
71
97
|
/** @inheritdoc IFormulaBlock.getReferenceAt */
|
|
72
98
|
getReferenceAt(row: number, column: number, index: number): ReferenceCoords;
|
|
73
99
|
/** @inheritdoc IFormulaBlock.setReferenceAt */
|
|
74
100
|
setReferenceAt(index: number, reference: ReferenceCoords, options?: SetReferenceOptions): this;
|
|
75
101
|
/** @inheritdoc IFormulaBlock.reanchorReferences */
|
|
76
102
|
reanchorReferences(scopeFrom: string, force?: boolean): this;
|
|
77
|
-
/** @inheritdoc IFormulaBlock.
|
|
78
|
-
|
|
103
|
+
/** @inheritdoc IFormulaBlock.replaceScopeIds */
|
|
104
|
+
replaceScopeIds(fromScopeId: string | null, toScopeId: string | null): this;
|
|
105
|
+
/**
|
|
106
|
+
* This block with every structured reference to `tableId` replaced by the node `replace` builds
|
|
107
|
+
* for it (`null` keeps the reference), or this block when nothing was replaced.
|
|
108
|
+
*/
|
|
109
|
+
replaceTableReferences(tableId: string, replace: (reference: StructuredReference) => ASTNode | null): this;
|
|
79
110
|
/**
|
|
80
111
|
* Resolves a named reference by evaluating its shared body at the caller's anchor
|
|
81
112
|
* (Design 3, apply-at-eval). The body value is taken **raw** (no finalize) so a
|
|
@@ -105,6 +136,8 @@ export declare class FormulaBlock implements IFormulaBlock {
|
|
|
105
136
|
protected _resolveStructuredRef(structuredReference: StructuredReference, row: number, column: number, reuse?: IRange.Coords): IRange.FixableCoords | FormulaError.Known;
|
|
106
137
|
/** @inheritdoc IFormulaBlock.resolvedPrecedentsAt */
|
|
107
138
|
resolvedPrecedentsAt(row: number, column: number, includeInvalidIntersect?: boolean, verticalAbs?: boolean[], horizontalAbs?: boolean[]): readonly (Readonly<IRange.FixableCoords> | FormulaError.Known)[];
|
|
139
|
+
/** @inheritdoc IFormulaBlock.getPrecedentTemplate */
|
|
140
|
+
getPrecedentTemplate(): PrecedentTemplate | null;
|
|
108
141
|
/** @inheritdoc IFormulaBlock.evaluateAt */
|
|
109
142
|
evaluateAt(row: number, column: number, evalIndex?: number): Scalar | Promise<Scalar>;
|
|
110
143
|
/** @inheritdoc IFormulaBlock.wrapImplicit */
|
|
@@ -118,8 +151,11 @@ export declare class FormulaBlock implements IFormulaBlock {
|
|
|
118
151
|
* closure so both paths run the identical semantics.
|
|
119
152
|
* @param row The anchor the formula is being evaluated at (lambda values record it).
|
|
120
153
|
* @param column The anchor column.
|
|
154
|
+
* @param frame The lambda-parameter frame in scope, when this node is executing inside an
|
|
155
|
+
* activation. Only a LAZY argument's handle needs it — it must resolve a bound name the same way
|
|
156
|
+
* the enclosing body would have.
|
|
121
157
|
*/
|
|
122
|
-
protected _executeNode(node: ASTNode, regs: any[], row: number, column: number): any;
|
|
158
|
+
protected _executeNode(node: ASTNode, regs: any[], row: number, column: number, frame?: ReadonlyMap<number, any> | null): any;
|
|
123
159
|
/**
|
|
124
160
|
* Closes a `LAMBDA` node over the current registers — the node's whole evaluation (design §3.3).
|
|
125
161
|
*
|
|
@@ -132,6 +168,25 @@ export declare class FormulaBlock implements IFormulaBlock {
|
|
|
132
168
|
* shared named-body block at every level, and only a copy keeps an outer activation's captured
|
|
133
169
|
* environment intact underneath it. See `LambdaValue`.
|
|
134
170
|
*/
|
|
171
|
+
/**
|
|
172
|
+
* Fills the shared argument buffer for a call that has at least one LAZY argument, deciding per
|
|
173
|
+
* call whether to defer at all.
|
|
174
|
+
*
|
|
175
|
+
* @remarks
|
|
176
|
+
* The engine declines whenever an eager argument is a CONTAINER, because the call is then about
|
|
177
|
+
* to LIFT: the body runs once per element and different elements may select different arms, so
|
|
178
|
+
* every arm is needed. Excel abandons laziness there too — `=IF(B1:B3>0,1,A1+1)` in A1 IS a
|
|
179
|
+
* circular reference where the scalar-condition form is not (measured, `probe-lazy-args.ps1`).
|
|
180
|
+
*
|
|
181
|
+
* A declined argument is evaluated ONCE, here, and handed over as the VALUE rather than as a
|
|
182
|
+
* filled handle: the lift SAMPLES an arm per element (`IF(A1:A5>2,A1:A5,0)` answers element by
|
|
183
|
+
* element), and only the marshaller can sample it. The handle it hands the body is rebuilt there,
|
|
184
|
+
* around the sampled member. So the arm is evaluated once and indexed, never re-evaluated.
|
|
185
|
+
*
|
|
186
|
+
* Deferring evaluates nothing, so nothing can re-enter `_reuseArgs` while it is being filled.
|
|
187
|
+
* The decline path does evaluate, and takes a private array for exactly that reason.
|
|
188
|
+
*/
|
|
189
|
+
protected _fillLazyArgs(argsIndexed: ASTNode[], argsLength: number, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number, depth: number): void;
|
|
135
190
|
protected _createLambdaValue(node: FunctionNode, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number): LambdaValue;
|
|
136
191
|
/**
|
|
137
192
|
* The callee verdicts + apply for a `Call` node (design §3.4, §1.1):
|
|
@@ -149,9 +204,9 @@ export declare class FormulaBlock implements IFormulaBlock {
|
|
|
149
204
|
* Apply over VALUES — the marshalled-callable twin of {@link _applyCallee}'s lambda branch
|
|
150
205
|
* (design §4). Reached through {@link LambdaValue.makeCallable} while a CONSUMER's body
|
|
151
206
|
* (`BYROW`, `REDUCE`, …) is running; the arguments are plain engine values, so binding needs no
|
|
152
|
-
* argument nodes. `undefined` is the callable's spelling for an
|
|
153
|
-
*
|
|
154
|
-
* the spelled-call rule (§2.6).
|
|
207
|
+
* argument nodes. An `undefined` IN the list is the callable's spelling for an explicitly
|
|
208
|
+
* empty argument and binds the OMITTED sentinel; a list SHORT of the required count is the
|
|
209
|
+
* arity `#VALUE!`, mirroring the spelled-call rule (§2.6).
|
|
155
210
|
*/
|
|
156
211
|
_applyValues(callee: LambdaValue, args: readonly any[]): any;
|
|
157
212
|
/**
|
|
@@ -164,20 +219,68 @@ export declare class FormulaBlock implements IFormulaBlock {
|
|
|
164
219
|
* enclosing frame — see `_applyCallee`).
|
|
165
220
|
*
|
|
166
221
|
* @remarks
|
|
167
|
-
* The
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
* Excel Online avoids the cost with a lazy `Conditional` term. Recorded in the plan.
|
|
222
|
+
* The body's list runs against the lambda's register SNAPSHOT (`LambdaValue.regs`), the same
|
|
223
|
+
* loop and node semantics as the eager pass, with this frame in scope. The snapshot is shared
|
|
224
|
+
* by every application of the value: a body writes each register it reads before it reads it,
|
|
225
|
+
* so a sequential re-application (`BYROW` over a range) leaves nothing stale behind. Only a
|
|
226
|
+
* RE-ENTRANT application — the same value applied while an activation of it is still running,
|
|
227
|
+
* which takes the value being passed to itself (`LET(f,LAMBDA(self,n,…self(self,n-1)…),f(f,3))`)
|
|
228
|
+
* — gets a private copy, since the inner run would otherwise clobber registers the outer
|
|
229
|
+
* parent has yet to read.
|
|
230
|
+
*
|
|
231
|
+
* Recursion arrives via a defined name cycling back through a deferred resolve (each level a
|
|
232
|
+
* fresh value with its own snapshot), and `depth` is the budget that bounds it.
|
|
179
233
|
*/
|
|
180
234
|
protected _evaluateBody(lambda: LambdaValue, frame: ReadonlyMap<number, any>): any;
|
|
235
|
+
/**
|
|
236
|
+
* The VALUE of a lazy argument's subtree — {@link _evaluateSubtree} plus the one conversion the
|
|
237
|
+
* marshaller used to make on the way in.
|
|
238
|
+
*
|
|
239
|
+
* @remarks
|
|
240
|
+
* A bare reference's register holds resolved COORDS, an internal shape: every eager consumer
|
|
241
|
+
* turns it into a reference at the slot it lands in. A forced handle has no slot — its value IS
|
|
242
|
+
* the call's answer — so the conversion happens here, and `=IF(TRUE,E200,0)` answers a reference
|
|
243
|
+
* exactly as the eagerly-marshalled arm did.
|
|
244
|
+
*/
|
|
245
|
+
_valueOfLazy(node: ASTNode, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number): any;
|
|
246
|
+
/**
|
|
247
|
+
* Evaluates one subtree that the eager pass did not — a lambda's BODY at apply, or a LAZY
|
|
248
|
+
* argument when the call's answer turns out to be its handle. The deferred half of the
|
|
249
|
+
* carve-out (design §3.3).
|
|
250
|
+
*
|
|
251
|
+
* @param node The subtree root — a node the compiler stamped a `deferred` list on, or (for a
|
|
252
|
+
* partial evaluation) any node inside one.
|
|
253
|
+
* @param regs The register file to evaluate against — a lambda ACTIVATION, or the block's own
|
|
254
|
+
* live file for a lazy argument, which is forced within the evaluation that built it.
|
|
255
|
+
* @param frame slot → argument value for the enclosing activation, or `null` outside one.
|
|
256
|
+
* @param row The anchor to evaluate at.
|
|
257
|
+
* @param column The anchor column.
|
|
258
|
+
*
|
|
259
|
+
* @remarks
|
|
260
|
+
* The same loop as the eager pass over the subtree's own post-order list: literals and
|
|
261
|
+
* eagerly-resolved references are already in their registers, and everything else executes
|
|
262
|
+
* through `_executeNode` into its register before the parent reads it. The frame is the one
|
|
263
|
+
* thing the eager pass never has.
|
|
264
|
+
*
|
|
265
|
+
* Recursion arrives via a defined name cycling back through a deferred resolve, and the caller's
|
|
266
|
+
* `depth` bounds it. With lazy arguments a terminating recursion costs O(depth): the base case's
|
|
267
|
+
* untaken arm is a handle nobody forces.
|
|
268
|
+
*/
|
|
269
|
+
protected _evaluateSubtree(node: ASTNode, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number): any;
|
|
270
|
+
/**
|
|
271
|
+
* Runs an execution list — the eager `executions` or a deferred root's list — writing each
|
|
272
|
+
* node's result into its register. Answers the promise chain when a node is async, in which
|
|
273
|
+
* case the rest of the list is queued behind it.
|
|
274
|
+
*/
|
|
275
|
+
protected _runList(list: ASTNode[], regs: any[], row: number, column: number, frame: ReadonlyMap<number, any> | null): Promise<any> | undefined;
|
|
276
|
+
/**
|
|
277
|
+
* The execution list of a subtree that is NOT a deferred root — a partial evaluation (the
|
|
278
|
+
* editor's tooltip) pointing inside a lazy argument. The enclosing root's list restricted to
|
|
279
|
+
* the subtree keeps its post-order, and is cached on the node. Not a hot path.
|
|
280
|
+
*/
|
|
281
|
+
private _listWithin;
|
|
282
|
+
/** Whether the cell being evaluated is in a block that demands its first cell (`FormulaSpatialValue.arrayFirstCell`). */
|
|
283
|
+
private _demandsFirstCell;
|
|
181
284
|
/**
|
|
182
285
|
* Calls a function.
|
|
183
286
|
*
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { FormulaError, IRange } from '@sheetxl/primitives';
|
|
2
|
+
import { ISymbolRegistry } from '../symbol';
|
|
3
|
+
import { ICalculation } from '../ICalculation';
|
|
4
|
+
import { ReferenceCoords, StructuredReference } from '../Types';
|
|
5
|
+
import { CompilerLocale } from '../compiler/CompilerLocale';
|
|
6
|
+
import { FormulaRecord, IFormulaBlockView } from './IFormulaBlock';
|
|
7
|
+
/**
|
|
8
|
+
* What imaging a {@link FormulaRecord} needs beside the record (DESIGN-CALC-SERVICE §8): the
|
|
9
|
+
* symbol map to resolve its stable ids against, the grid the formula sits on, and the reader's
|
|
10
|
+
* locale. The facade supplies the model's own map; the engine never images for it.
|
|
11
|
+
*/
|
|
12
|
+
export interface FormulaImager {
|
|
13
|
+
/** Stable ids to display names. */
|
|
14
|
+
readonly symbols: ISymbolRegistry;
|
|
15
|
+
/** The grid the formula sits on: the home scope of a display image (`Table1[@Qty]` drops the table's name). */
|
|
16
|
+
readonly gridId: string | null;
|
|
17
|
+
/** The grid's bounds: a relative reference driven off them images `#REF!`. */
|
|
18
|
+
getEntireCoords(): IRange.Coords;
|
|
19
|
+
/** The reader's separators and literal words, for a display image. */
|
|
20
|
+
getDisplayLocale(): CompilerLocale;
|
|
21
|
+
/**
|
|
22
|
+
* The cells a table reference designates from `row`, against the model's table as it is now.
|
|
23
|
+
* Without it a table reference is a hole.
|
|
24
|
+
*/
|
|
25
|
+
resolveTableReference?(reference: StructuredReference, row: number): IRange.FixableCoords | FormulaError.Known;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A block as the model reads it: the engine's record imaged against the reader's own symbols
|
|
29
|
+
* (DESIGN-CALC-SERVICE §8).
|
|
30
|
+
*
|
|
31
|
+
* @remarks
|
|
32
|
+
* What the facade hands the model for every block the engine vends. The record is plain data and
|
|
33
|
+
* crosses the channel; the imager is the facade's and never does. Text is the same function of
|
|
34
|
+
* (tokens, symbols, anchor, locale) the compiled block images by - only where it runs differs -
|
|
35
|
+
* so what a sheet reads is what the engine would image, by the model's names.
|
|
36
|
+
*/
|
|
37
|
+
export declare class FormulaRecordView implements IFormulaBlockView {
|
|
38
|
+
/** The block as data: what this view images. */
|
|
39
|
+
readonly record: FormulaRecord;
|
|
40
|
+
private readonly _imager;
|
|
41
|
+
private _error;
|
|
42
|
+
constructor(record: FormulaRecord, imager: FormulaImager);
|
|
43
|
+
/**
|
|
44
|
+
* {@inheritDoc IFormulaBlockView.getTextAt}
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* A record that did not parse has no faithful tokens and answers with the text as written.
|
|
48
|
+
*/
|
|
49
|
+
getTextAt(row: number, column: number, r1c1?: boolean, evalIndex?: number, target?: ICalculation.FormulaTarget): string;
|
|
50
|
+
/** {@inheritDoc IFormulaBlockView.getTokensAt} */
|
|
51
|
+
getTokensAt(row: number, column: number, evalIndex?: number): ICalculation.FormulaToken[];
|
|
52
|
+
/** {@inheritDoc IFormulaBlockView.isReferenceOnly} */
|
|
53
|
+
isReferenceOnly(): boolean;
|
|
54
|
+
/** {@inheritDoc IFormulaBlockView.getError} */
|
|
55
|
+
getError(): FormulaError.Parse | null;
|
|
56
|
+
/**
|
|
57
|
+
* {@inheritDoc IFormulaBlockView.getReferencesAt}
|
|
58
|
+
*
|
|
59
|
+
* @remarks
|
|
60
|
+
* From the record's references: a name is spelled by the model's symbols, a table reference is
|
|
61
|
+
* resolved against the model's table.
|
|
62
|
+
*/
|
|
63
|
+
getReferencesAt(row: number, column: number): ReferenceCoords[];
|
|
64
|
+
get [Symbol.toStringTag](): string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The tokens of the subtree evaluated at `evalIndex`, from the flat token list alone.
|
|
68
|
+
*
|
|
69
|
+
* @remarks
|
|
70
|
+
* A subtree's tokens are contiguous, and its nodes are indexed after the node they hang from:
|
|
71
|
+
* so the subtree is the widest run around the node's own tokens in which every token's index is
|
|
72
|
+
* the node's or greater. A token of the enclosing node - the operator or separator between two
|
|
73
|
+
* siblings, the parenthesis around an argument list - carries the smaller index that bounds it.
|
|
74
|
+
* Whitespace at either end is not part of the expression, and whitespace alone never places a
|
|
75
|
+
* node: the cells of a range carry the range's index, and the whitespace after one may carry
|
|
76
|
+
* the cell's own, which no consumer holding tokens can ask for.
|
|
77
|
+
*/
|
|
78
|
+
export declare function subtreeTokens(tokens: readonly ICalculation.FormulaToken[], evalIndex: number): ICalculation.FormulaToken[];
|
|
79
|
+
//# sourceMappingURL=FormulaRecordView.d.ts.map
|