@sheetxl/sdk 0.7.27 → 0.7.28-beta.1
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 +34 -0
- package/browser/cjs/B7_pDFYCVzt-3hUs.cjs +1 -0
- package/browser/cjs/D590vnHyyrIYenQ7.cjs +33 -0
- package/browser/cjs/DfVZ_U2YapkL3Y3y.cjs +1 -0
- package/browser/cjs/DsII2GRIYGbaZjIE.cjs +1 -0
- package/browser/cjs/Dv3x6zut1ZRUt3IF.cjs +10 -0
- package/browser/cjs/index.cjs +3 -6
- package/browser/cjs/nE4y6hua6AwWSil7.cjs +1 -0
- package/browser/cjs/nMss3hrHzgX9s6dC.cjs +57 -0
- package/browser/esm/AyOmyt_vaPirbWnn.mjs +49986 -0
- package/browser/esm/BJ5lU2Y0r4Vy8n4q.mjs +109 -0
- package/browser/esm/BvaEmG7AaTSm7dFt.mjs +818 -0
- package/browser/esm/CWKJatjtHKfWtM2b.mjs +503 -0
- package/browser/esm/CkhE5KvHQvKzw4Ll.mjs +4436 -0
- package/browser/esm/Dpwf1IgHZjpEpK-K.mjs +24 -0
- package/browser/esm/index.mjs +3225 -62
- package/browser/esm/uFvYxePB3xD2HrP0.mjs +14 -0
- package/licenses/dependencies.txt +74 -193
- package/node/esm/CYXOvL3qwWeDE0xf.mjs +114 -0
- package/node/esm/Dgmq_XXiU2AQw1tX.mjs +22 -0
- package/node/esm/index.mjs +53620 -23262
- package/node/esm/qxrG4h6T0dAo8eZ6.mjs +837 -0
- package/package.json +19 -14
- package/resources/contents.json +21 -0
- package/resources/locales/contents.json +19 -0
- package/resources/locales/de/grammar.json +16 -0
- package/resources/locales/de/model.msg.json +510 -0
- package/resources/locales/en/model.msg.json +525 -0
- package/types/index.d.ts +2 -21294
- package/types/scripting-enums.json +1009 -0
- package/types/scripting.d.ts +26540 -31455
- package/types/src/address/AddressUtils.d.ts +252 -0
- package/types/src/address/_AddressMessages.d.ts +7 -0
- package/types/src/address/index.d.ts +35 -0
- package/types/src/anchored/AbstractAnchored.d.ts +200 -0
- package/types/src/anchored/Anchored.d.ts +154 -0
- package/types/src/anchored/AnchoredMap.d.ts +178 -0
- package/types/src/anchored/IAnchored.d.ts +118 -0
- package/types/src/anchored/IAnchoredMap.d.ts +207 -0
- package/types/src/anchored/_AnchorMessages.d.ts +3 -0
- package/types/src/anchored/index.d.ts +2 -0
- package/types/src/autoFill/AutoFill.d.ts +161 -0
- package/types/src/autoFill/IAutoFill.d.ts +117 -0
- package/types/src/autoFill/index.d.ts +3 -0
- package/types/src/border/IBorder.d.ts +284 -0
- package/types/src/border/index.d.ts +2 -0
- package/types/src/calculation/Calculation.d.ts +440 -0
- package/types/src/calculation/FormulaLiterals.d.ts +18 -0
- package/types/src/calculation/ICalculation.d.ts +1016 -0
- package/types/src/calculation/INamedFormulasCollection.d.ts +141 -0
- package/types/src/calculation/NamedFormulaCollection.d.ts +671 -0
- package/types/src/calculation/TokenType.d.ts +117 -0
- package/types/src/calculation/Types.d.ts +110 -0
- package/types/src/calculation/_CalculationMessages.d.ts +3 -0
- package/types/src/calculation/builtInNames.d.ts +2 -0
- package/types/src/calculation/compiler/ASTTypes.d.ts +180 -0
- package/types/src/calculation/compiler/CompilerLocale.d.ts +69 -0
- package/types/src/calculation/compiler/CompilerUtils.d.ts +331 -0
- package/types/src/calculation/compiler/FormulaCompiler.d.ts +69 -0
- package/types/src/calculation/compiler/FormulaLexer.d.ts +85 -0
- package/types/src/calculation/compiler/FormulaParser.d.ts +270 -0
- package/types/src/calculation/compiler/FormulaSeparators.d.ts +35 -0
- package/types/src/calculation/compiler/LiteTransform.d.ts +15 -0
- package/types/src/calculation/compiler/ParserUtils.d.ts +167 -0
- package/types/src/calculation/compiler/SRLexer.d.ts +19 -0
- package/types/src/calculation/compiler/SRParser.d.ts +38 -0
- package/types/src/calculation/compiler/Types.d.ts +274 -0
- package/types/src/calculation/compiler/index.d.ts +3 -0
- package/types/src/calculation/executor/CalcExecutor.d.ts +115 -0
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +11 -0
- package/types/src/calculation/executor/index.d.ts +3 -0
- package/types/src/calculation/formula/Formula.d.ts +168 -0
- package/types/src/calculation/formula/FormulaBlock.d.ts +207 -0
- package/types/src/calculation/formula/IFormulaBlock.d.ts +181 -0
- package/types/src/calculation/formula/LambdaValue.d.ts +166 -0
- package/types/src/calculation/formula/TokenUtils.d.ts +26 -0
- package/types/src/calculation/formula/index.d.ts +4 -0
- package/types/src/calculation/functions/Operators.d.ts +30 -0
- package/types/src/calculation/functions/index.d.ts +2 -0
- package/types/src/calculation/functions/initializeFunctions.d.ts +22 -0
- package/types/src/calculation/grid/CalcGrid.d.ts +205 -0
- package/types/src/calculation/grid/CalcGridUtils.d.ts +172 -0
- package/types/src/calculation/grid/ICalcGrid.d.ts +500 -0
- package/types/src/calculation/grid/index.d.ts +3 -0
- package/types/src/calculation/index.d.ts +5 -0
- package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +25 -0
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +120 -0
- package/types/src/calculation/spatial/PrecedentSpatialValue.d.ts +115 -0
- package/types/src/calculation/spatial/SpillEntry.d.ts +40 -0
- package/types/src/calculation/spatial/index.d.ts +5 -0
- package/types/src/calculation/state/CalcNode.d.ts +71 -0
- package/types/src/calculation/state/CalcScope.d.ts +35 -0
- package/types/src/calculation/state/CalcState.d.ts +28 -0
- package/types/src/calculation/state/CalculationContext.d.ts +125 -0
- package/types/src/calculation/state/IContextContainer.d.ts +320 -0
- package/types/src/calculation/state/index.d.ts +6 -0
- package/types/src/calculation/symbol/FunctionSymbolProvider.d.ts +44 -0
- package/types/src/calculation/symbol/ISymbolRegistry.d.ts +93 -0
- package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +144 -0
- package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +18 -0
- package/types/src/calculation/symbol/SymbolRegistry.d.ts +19 -0
- package/types/src/calculation/symbol/TableColumnSymbolProvider.d.ts +21 -0
- package/types/src/calculation/symbol/TableSymbolProvider.d.ts +19 -0
- package/types/src/calculation/symbol/index.d.ts +9 -0
- package/types/src/cell/ICell.d.ts +672 -0
- package/types/src/cell/ICellHeader.d.ts +142 -0
- package/types/src/cell/ICellProtection.d.ts +41 -0
- package/types/src/cell/index.d.ts +4 -0
- package/types/src/cellRange/ICellHeaderRange.d.ts +306 -0
- package/types/src/cellRange/ICellHeaderRanges.d.ts +107 -0
- package/types/src/cellRange/ICellRange.d.ts +2509 -0
- package/types/src/cellRange/ICellRanges.d.ts +407 -0
- package/types/src/cellRange/ICellRegion.d.ts +133 -0
- package/types/src/cellRange/_GraphNode.d.ts +38 -0
- package/types/src/cellRange/index.d.ts +6 -0
- package/types/src/chart/Chart.d.ts +53 -0
- package/types/src/chart/IChart.d.ts +42 -0
- package/types/src/chart/index.d.ts +5 -0
- package/types/src/collections/ArraysGrid.d.ts +72 -0
- package/types/src/collections/BooleanList.d.ts +67 -0
- package/types/src/collections/GridMap.d.ts +47 -0
- package/types/src/collections/HashMap.d.ts +15 -0
- package/types/src/collections/IGrid.d.ts +278 -0
- package/types/src/collections/IList.d.ts +89 -0
- package/types/src/collections/IMap.d.ts +45 -0
- package/types/src/collections/IReadableList.d.ts +120 -0
- package/types/src/collections/ISortedMap.d.ts +171 -0
- package/types/src/collections/ISparseGrid.d.ts +61 -0
- package/types/src/collections/ISparseList.d.ts +103 -0
- package/types/src/collections/ISpatialMap.d.ts +515 -0
- package/types/src/collections/ISpatialMap3D.d.ts +116 -0
- package/types/src/collections/IWritableList.d.ts +41 -0
- package/types/src/collections/ImmutableList.d.ts +52 -0
- package/types/src/collections/IteratorUtils.d.ts +91 -0
- package/types/src/collections/MixedTypedArrayList.d.ts +140 -0
- package/types/src/collections/OverlappingRangeIterator.d.ts +91 -0
- package/types/src/collections/RTree.d.ts +111 -0
- package/types/src/collections/RepeatingList.d.ts +20 -0
- package/types/src/collections/SortedMap.d.ts +396 -0
- package/types/src/collections/SparseGrid.d.ts +99 -0
- package/types/src/collections/SparseList.d.ts +90 -0
- package/types/src/collections/SpatialMap.d.ts +102 -0
- package/types/src/collections/SpatialMap3D.d.ts +64 -0
- package/types/src/collections/Tuple.d.ts +160 -0
- package/types/src/collections/_CollectionUtils.d.ts +25 -0
- package/types/src/collections/_GridUtils.d.ts +268 -0
- package/types/src/collections/_RunUtils.d.ts +170 -0
- package/types/src/collections/_SpatialUtils.d.ts +115 -0
- package/types/src/collections/index.d.ts +21 -0
- package/types/src/color/Color.d.ts +120 -0
- package/types/src/color/ColorSpace.d.ts +45 -0
- package/types/src/color/IColor.d.ts +1110 -0
- package/types/src/color/_BuiltInIndexDefs.d.ts +4 -0
- package/types/src/color/_BuiltInNamedDefs.d.ts +29 -0
- package/types/src/color/_BuiltInSchemeDefs.d.ts +7 -0
- package/types/src/color/_ColorUtils.d.ts +93 -0
- package/types/src/color/index.d.ts +3 -0
- package/types/src/comment/IComment.d.ts +108 -0
- package/types/src/comment/index.d.ts +2 -0
- package/types/src/condition/AnchoredConditional.d.ts +263 -0
- package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +83 -0
- package/types/src/condition/BuiltInOperators/AfterEqualToOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/AfterOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/AndOperator.d.ts +12 -0
- package/types/src/condition/BuiltInOperators/AverageOperator.d.ts +12 -0
- package/types/src/condition/BuiltInOperators/BeforeEqualToOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/BeforeOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/BetweenOperator.d.ts +12 -0
- package/types/src/condition/BuiltInOperators/BlankOperator.d.ts +9 -0
- package/types/src/condition/BuiltInOperators/ColorOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/ContainsOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/EndsWithOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +11 -0
- package/types/src/condition/BuiltInOperators/ErrorOperator.d.ts +9 -0
- package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +17 -0
- package/types/src/condition/BuiltInOperators/GreaterThanEqualToOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/GreaterThanOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/IconOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +14 -0
- package/types/src/condition/BuiltInOperators/LessThanEqualToOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/LessThanOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/NotOperator.d.ts +12 -0
- package/types/src/condition/BuiltInOperators/OrOperator.d.ts +12 -0
- package/types/src/condition/BuiltInOperators/StartsWithOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/TimePeriodOperator.d.ts +13 -0
- package/types/src/condition/BuiltInOperators/TopNOperator.d.ts +12 -0
- package/types/src/condition/BuiltInOperators/UniqueOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/ValidEmailOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/ValidUrlOperator.d.ts +8 -0
- package/types/src/condition/BuiltInOperators/index.d.ts +59 -0
- package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +43 -0
- package/types/src/condition/BuiltinSelectors/DateSelector.d.ts +14 -0
- package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +12 -0
- package/types/src/condition/BuiltinSelectors/TextLengthSelector.d.ts +16 -0
- package/types/src/condition/BuiltinSelectors/TimeSelector.d.ts +14 -0
- package/types/src/condition/BuiltinSelectors/WholeSelector.d.ts +14 -0
- package/types/src/condition/BuiltinSelectors/index.d.ts +18 -0
- package/types/src/condition/Condition.d.ts +123 -0
- package/types/src/condition/ICondition.d.ts +915 -0
- package/types/src/condition/_ConditionUtils.d.ts +190 -0
- package/types/src/condition/index.d.ts +3 -0
- package/types/src/conditionalFormat/ConditionalEntry.d.ts +20 -0
- package/types/src/conditionalFormat/ConditionalFormat.d.ts +190 -0
- package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +20 -0
- package/types/src/conditionalFormat/IConditionalFormat.d.ts +518 -0
- package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +70 -0
- package/types/src/conditionalFormat/_ConditionalMessages.d.ts +2 -0
- package/types/src/conditionalFormat/index.d.ts +3 -0
- package/types/src/dataValidation/DataValidation.d.ts +121 -0
- package/types/src/dataValidation/DataValidationCollection.d.ts +20 -0
- package/types/src/dataValidation/IDataValidation.d.ts +327 -0
- package/types/src/dataValidation/IDataValidationCollection.d.ts +63 -0
- package/types/src/dataValidation/_DataValidationMessages.d.ts +2 -0
- package/types/src/dataValidation/_Utils.d.ts +10 -0
- package/types/src/dataValidation/index.d.ts +3 -0
- package/types/src/date/DateUtils.d.ts +8 -0
- package/types/src/date/_DateUtils.d.ts +122 -0
- package/types/src/date/index.d.ts +2 -0
- package/types/src/externalBook/ExternalBookCollection.d.ts +36 -0
- package/types/src/externalBook/IExternalBook.d.ts +97 -0
- package/types/src/externalBook/IExternalBookCollection.d.ts +29 -0
- package/types/src/externalBook/index.d.ts +3 -0
- package/types/src/fill/IEffect.d.ts +389 -0
- package/types/src/fill/IFill.d.ts +597 -0
- package/types/src/fill/IStroke.d.ts +265 -0
- package/types/src/fill/_BuiltInPatterns.d.ts +27 -0
- package/types/src/fill/index.d.ts +4 -0
- package/types/src/filter/IFilter.d.ts +83 -0
- package/types/src/filter/index.d.ts +2 -0
- package/types/src/font/CanvasFontMeasurer.d.ts +25 -0
- package/types/src/font/ExtendedTextMetrics.d.ts +1 -0
- package/types/src/font/Font.d.ts +19 -0
- package/types/src/font/FontKitFontMeasurer.d.ts +11 -0
- package/types/src/font/FontUtils.d.ts +9 -0
- package/types/src/font/IFont.d.ts +261 -0
- package/types/src/font/IFontCollection.d.ts +31 -0
- package/types/src/font/SimpleFontMeasurer.d.ts +4 -0
- package/types/src/font/_FontUtils.d.ts +22 -0
- package/types/src/font/index.d.ts +5 -0
- package/types/src/history/IHistory.d.ts +110 -0
- package/types/src/history/index.d.ts +2 -0
- package/types/src/hyperlink/IHyperlink.d.ts +96 -0
- package/types/src/hyperlink/_Hyperlink.d.ts +21 -0
- package/types/src/hyperlink/index.d.ts +2 -0
- package/types/src/i18n/LanguagePack.d.ts +97 -0
- package/types/src/i18n/LocaleProfile.d.ts +15 -0
- package/types/src/i18n/_CurrencyData.d.ts +20 -0
- package/types/src/i18n/functionLocales.d.ts +6 -0
- package/types/src/i18n/index.d.ts +4 -0
- package/types/src/i18n/locales.d.ts +3 -0
- package/types/src/index.d.ts +71 -0
- package/types/src/io/AbstractBackingStore.d.ts +53 -0
- package/types/src/io/ArrayBackingStore.d.ts +34 -0
- package/types/src/io/IWorkbookIO.d.ts +1322 -0
- package/types/src/io/WorkbookIO.d.ts +91 -0
- package/types/src/io/WorkbookOrigin.d.ts +114 -0
- package/types/src/io/WorkbookRegistry.d.ts +49 -0
- package/types/src/io/index.d.ts +5 -0
- package/types/src/lib/file/file.browser.d.ts +41 -0
- package/types/src/lib/file/file.node.d.ts +25 -0
- package/types/src/lib/utils/_Utils.d.ts +20 -0
- package/types/src/lib/utils/banner.d.ts +6 -0
- package/types/src/lib/utils/utils.browser.d.ts +28 -0
- package/types/src/lib/utils/utils.node.d.ts +42 -0
- package/types/src/license/LicenseDetails.d.ts +22 -0
- package/types/src/license/LicenseManager.d.ts +63 -0
- package/types/src/license/index.d.ts +3 -0
- package/types/src/license/license-key.d.ts +33 -0
- package/types/src/listener/IListener.d.ts +62 -0
- package/types/src/listener/ListenerEmitter.d.ts +47 -0
- package/types/src/listener/index.d.ts +2 -0
- package/types/src/model/AbstractModel.d.ts +90 -0
- package/types/src/model/IModel.d.ts +108 -0
- package/types/src/model/_ModelMessages.d.ts +2 -0
- package/types/src/model/index.d.ts +3 -0
- package/types/src/movable/CustomElement.d.ts +42 -0
- package/types/src/movable/ICustomElement.d.ts +29 -0
- package/types/src/movable/IGroup.d.ts +30 -0
- package/types/src/movable/IMovable.d.ts +327 -0
- package/types/src/movable/IMovableCollection.d.ts +129 -0
- package/types/src/movable/IMovableSelection.d.ts +49 -0
- package/types/src/movable/Movable.d.ts +221 -0
- package/types/src/movable/MovableCollection.d.ts +29 -0
- package/types/src/movable/_MovableUtils.d.ts +4 -0
- package/types/src/movable/index.d.ts +4 -0
- package/types/src/named/AbstractNamed.d.ts +41 -0
- package/types/src/named/INamed.d.ts +225 -0
- package/types/src/named/INamedCollection.d.ts +230 -0
- package/types/src/named/NamedCollection.d.ts +302 -0
- package/types/src/named/_BuiltInNamed.d.ts +6 -0
- package/types/src/named/index.d.ts +3 -0
- package/types/src/numFmt/BuiltInFormats.d.ts +49 -0
- package/types/src/numFmt/IFormatEngine.d.ts +149 -0
- package/types/src/numFmt/NumberFormatBuilder.d.ts +46 -0
- package/types/src/numFmt/NumberFormatParser.d.ts +168 -0
- package/types/src/numFmt/NumberFormatStyles.d.ts +43 -0
- package/types/src/numFmt/NumberFormatType.d.ts +79 -0
- package/types/src/numFmt/NumfmtFormatEngine.d.ts +33 -0
- package/types/src/numFmt/_BuiltInNumberFormats.d.ts +12 -0
- package/types/src/numFmt/_FormatCell.d.ts +52 -0
- package/types/src/numFmt/_NumFmtUtils.d.ts +102 -0
- package/types/src/numFmt/index.d.ts +105 -0
- package/types/src/numFmt/vendor/numfmt/_sheetxl.d.ts +15 -0
- package/types/src/numFmt/vendor/numfmt/index.d.ts +721 -0
- package/types/src/picture/IPicture.d.ts +69 -0
- package/types/src/picture/Picture.d.ts +67 -0
- package/types/src/picture/index.d.ts +2 -0
- package/types/src/primitives/CompositeRangeStats.d.ts +63 -0
- package/types/src/primitives/Criteria.d.ts +35 -0
- package/types/src/primitives/FormulaContext.d.ts +2 -0
- package/types/src/primitives/PrimitiveUtils.d.ts +255 -0
- package/types/src/primitives/Range.d.ts +221 -0
- package/types/src/primitives/RangeStats.d.ts +48 -0
- package/types/src/primitives/ReferenceRange.d.ts +19 -0
- package/types/src/primitives/Runtime.d.ts +55 -0
- package/types/src/primitives/ScalarCollation.d.ts +174 -0
- package/types/src/primitives/TextFold.d.ts +62 -0
- package/types/src/primitives/_PrimitiveMessages.d.ts +3 -0
- package/types/src/primitives/index.d.ts +7 -0
- package/types/src/primitives/stats/AggregateStats.d.ts +119 -0
- package/types/src/primitives/stats/Cancellation.d.ts +43 -0
- package/types/src/primitives/stats/FrequencyStats.d.ts +94 -0
- package/types/src/primitives/stats/Ranked.d.ts +26 -0
- package/types/src/primitives/stats/ScalarOrder.d.ts +18 -0
- package/types/src/primitives/stats/SortedNumbers.d.ts +48 -0
- package/types/src/primitives/stats/index.d.ts +7 -0
- package/types/src/print/IPrint.d.ts +234 -0
- package/types/src/print/index.d.ts +2 -0
- package/types/src/protectedRange/IProtectedRange.d.ts +239 -0
- package/types/src/protectedRange/IProtectedRangeCollection.d.ts +73 -0
- package/types/src/protectedRange/ProtectedRange.d.ts +101 -0
- package/types/src/protectedRange/ProtectedRangeCollection.d.ts +21 -0
- package/types/src/protectedRange/index.d.ts +3 -0
- package/types/src/protection/DefaultProtection.d.ts +43 -0
- package/types/src/protection/IProtection.d.ts +170 -0
- package/types/src/protection/PasswordHasher.d.ts +35 -0
- package/types/src/protection/index.d.ts +6 -0
- package/types/src/resource/IResource.d.ts +98 -0
- package/types/src/resource/IResourceCollection.d.ts +96 -0
- package/types/src/resource/Resource.d.ts +39 -0
- package/types/src/resource/ResourceCollection.d.ts +19 -0
- package/types/src/resource/_ResourceMessages.d.ts +4 -0
- package/types/src/resource/index.d.ts +5 -0
- package/types/src/resource/resourceKinds.d.ts +23 -0
- package/types/src/richData/index.d.ts +1 -0
- package/types/src/scripting/FunctionCollection.d.ts +88 -0
- package/types/src/scripting/IFunctionCollection.d.ts +208 -0
- package/types/src/scripting/IModule.d.ts +82 -0
- package/types/src/scripting/IModuleCollection.d.ts +79 -0
- package/types/src/scripting/IScript.d.ts +289 -0
- package/types/src/scripting/ITypedFunction.d.ts +61 -0
- package/types/src/scripting/MacroFunction.d.ts +15 -0
- package/types/src/scripting/Module.d.ts +39 -0
- package/types/src/scripting/ModuleCollection.d.ts +56 -0
- package/types/src/scripting/Runtime.d.ts +16 -0
- package/types/src/scripting/Scripts.d.ts +79 -0
- package/types/src/scripting/TypedFunction.d.ts +161 -0
- package/types/src/scripting/_FunctionIndex.d.ts +111 -0
- package/types/src/scripting/_FunctionMessages.d.ts +6 -0
- package/types/src/scripting/_ModuleUtils.d.ts +5 -0
- package/types/src/scripting/_ScriptUtils.d.ts +18 -0
- package/types/src/scripting/enumManifest.browser.d.ts +9 -0
- package/types/src/scripting/enumManifest.node.d.ts +13 -0
- package/types/src/scripting/index.d.ts +4 -0
- package/types/src/selection/IRangeSelection.d.ts +307 -0
- package/types/src/selection/RangeSelection.d.ts +144 -0
- package/types/src/selection/_RangeSelectionUtils.d.ts +32 -0
- package/types/src/selection/index.d.ts +2 -0
- package/types/src/shape/IShape.d.ts +279 -0
- package/types/src/shape/Shape.d.ts +54 -0
- package/types/src/shape/index.d.ts +2 -0
- package/types/src/sheet/CellRegion.d.ts +106 -0
- package/types/src/sheet/ICellContainerOptions.d.ts +97 -0
- package/types/src/sheet/ISheet.d.ts +1074 -0
- package/types/src/sheet/ISheetCollection.d.ts +70 -0
- package/types/src/sheet/NamedCellRange.d.ts +45 -0
- package/types/src/sheet/NamedRange.d.ts +30 -0
- package/types/src/sheet/Sheet.d.ts +1068 -0
- package/types/src/sheet/SheetCell.d.ts +335 -0
- package/types/src/sheet/SheetCollection.d.ts +18 -0
- package/types/src/sheet/SheetRange.d.ts +362 -0
- package/types/src/sheet/SheetRanges.d.ts +225 -0
- package/types/src/sheet/_CopyUtils.d.ts +33 -0
- package/types/src/sheet/_InvalidSheetRange.d.ts +70 -0
- package/types/src/sheet/_SheetAutoFitUtils.d.ts +18 -0
- package/types/src/sheet/_SheetCoords.d.ts +54 -0
- package/types/src/sheet/_SheetFilterUtils.d.ts +9 -0
- package/types/src/sheet/_SheetMessages.d.ts +11 -0
- package/types/src/sheet/_SheetMutations.d.ts +137 -0
- package/types/src/sheet/_SheetSortUtils.d.ts +9 -0
- package/types/src/sheet/_SheetStateReader.d.ts +161 -0
- package/types/src/sheet/_SheetStateTypes.d.ts +446 -0
- package/types/src/sheet/_SheetUtils.d.ts +265 -0
- package/types/src/sheet/clipboard/IHTMLParser.d.ts +92 -0
- package/types/src/sheet/clipboard/RangeClipboardItems.d.ts +55 -0
- package/types/src/sheet/clipboard/SheetHTMLTableParser.d.ts +29 -0
- package/types/src/sheet/clipboard/SheetHTMLTableWriter.d.ts +46 -0
- package/types/src/sheet/clipboard/_ClipboardUtils.d.ts +10 -0
- package/types/src/sheet/clipboard/index.d.ts +2 -0
- package/types/src/sheet/index.d.ts +6 -0
- package/types/src/sheet/listener/RangesListener.d.ts +32 -0
- package/types/src/sheet/listener/RangesListenerEntry.d.ts +19 -0
- package/types/src/sheet/listener/index.d.ts +3 -0
- package/types/src/sheet/spatial/MergeEntry.d.ts +17 -0
- package/types/src/sheet/spatial/index.d.ts +2 -0
- package/types/src/sheet/style/SheetCellStyle.d.ts +540 -0
- package/types/src/sheet/style/SheetDirectStyle.d.ts +130 -0
- package/types/src/sheet/style/SheetNamedStyle.d.ts +47 -0
- package/types/src/sheet/style/SheetTableStyle.d.ts +47 -0
- package/types/src/sheet/style/UsedRangeSpatialMap.d.ts +80 -0
- package/types/src/sheet/style/_Resolvers.d.ts +41 -0
- package/types/src/sheet/style/_StyleUtils.d.ts +69 -0
- package/types/src/sheet/style/index.d.ts +1 -0
- package/types/src/sheetHeader/ISheetHeader.d.ts +217 -0
- package/types/src/sheetHeader/SheetCellHeader.d.ts +61 -0
- package/types/src/sheetHeader/SheetCellHeaderRange.d.ts +54 -0
- package/types/src/sheetHeader/SheetCellHeaderRanges.d.ts +46 -0
- package/types/src/sheetHeader/SheetHeader.d.ts +257 -0
- package/types/src/sheetHeader/_HeaderUtils.d.ts +94 -0
- package/types/src/sheetHeader/_InvalidSheetHeaderRange.d.ts +7 -0
- package/types/src/sheetHeader/index.d.ts +2 -0
- package/types/src/sheetProtection/ISheetProtection.d.ts +150 -0
- package/types/src/sheetProtection/SheetProtection.d.ts +39 -0
- package/types/src/sheetProtection/index.d.ts +2 -0
- package/types/src/sheetView/ISheetView.d.ts +439 -0
- package/types/src/sheetView/SheetView.d.ts +113 -0
- package/types/src/sheetView/_SheetViewUtils.d.ts +19 -0
- package/types/src/sheetView/index.d.ts +2 -0
- package/types/src/slicer/ISlicer.d.ts +38 -0
- package/types/src/slicer/Slicer.d.ts +41 -0
- package/types/src/slicer/index.d.ts +2 -0
- package/types/src/sort/ISort.d.ts +318 -0
- package/types/src/sort/Sort.d.ts +48 -0
- package/types/src/sort/_SortUtils.d.ts +12 -0
- package/types/src/sort/index.d.ts +3 -0
- package/types/src/string/IStringCollection.d.ts +50 -0
- package/types/src/string/StringCollection.d.ts +26 -0
- package/types/src/string/index.d.ts +3 -0
- package/types/src/style/IStyle.d.ts +485 -0
- package/types/src/style/IStyleCollection.d.ts +292 -0
- package/types/src/style/StyleCollection.d.ts +125 -0
- package/types/src/style/_BuiltInStyleDefs.d.ts +18 -0
- package/types/src/style/_BuiltInStyleNames.d.ts +20 -0
- package/types/src/style/index.d.ts +5 -0
- package/types/src/table/AnchoredTable.d.ts +349 -0
- package/types/src/table/AutoTable.d.ts +64 -0
- package/types/src/table/ITable.d.ts +714 -0
- package/types/src/table/ITableCollection.d.ts +88 -0
- package/types/src/table/ITableStyle.d.ts +318 -0
- package/types/src/table/Table.d.ts +8 -0
- package/types/src/table/TableCollection.d.ts +20 -0
- package/types/src/table/_AutoTableColumn.d.ts +27 -0
- package/types/src/table/_BuiltInTableStyles.d.ts +9 -0
- package/types/src/table/_FilterField.d.ts +30 -0
- package/types/src/table/_NamedTable.d.ts +84 -0
- package/types/src/table/_NamedTableSource.d.ts +57 -0
- package/types/src/table/_SortField.d.ts +29 -0
- package/types/src/table/_TableColumn.d.ts +51 -0
- package/types/src/table/_TableMessages.d.ts +5 -0
- package/types/src/table/_TableUtils.d.ts +94 -0
- package/types/src/table/index.d.ts +5 -0
- package/types/src/text/AutoNumberingScheme.d.ts +175 -0
- package/types/src/text/Bullet.d.ts +34 -0
- package/types/src/text/IText.d.ts +53 -0
- package/types/src/text/ITextFrame.d.ts +313 -0
- package/types/src/text/TextBoxAlignment.d.ts +141 -0
- package/types/src/text/TextFrame.d.ts +43 -0
- package/types/src/text/TextLine.d.ts +24 -0
- package/types/src/text/TextParagraph.d.ts +61 -0
- package/types/src/text/TextRotation.d.ts +106 -0
- package/types/src/text/TextRun.d.ts +85 -0
- package/types/src/text/TextUtils.d.ts +165 -0
- package/types/src/text/TextVisitor.d.ts +11 -0
- package/types/src/text/TextWrapper.d.ts +78 -0
- package/types/src/text/_TextUtils.d.ts +90 -0
- package/types/src/text/impl/Phrase.d.ts +3 -0
- package/types/src/text/impl/TabStrategy.d.ts +9 -0
- package/types/src/text/impl/WordWrapUtils.d.ts +6 -0
- package/types/src/text/index.d.ts +7 -0
- package/types/src/text/richtext/IStyledFont.d.ts +330 -0
- package/types/src/text/richtext/index.d.ts +2 -0
- package/types/src/theme/ITheme.d.ts +252 -0
- package/types/src/theme/IThemeCollection.d.ts +84 -0
- package/types/src/theme/ThemeCollection.d.ts +62 -0
- package/types/src/theme/_BuiltInColorSchemes.d.ts +3 -0
- package/types/src/theme/_BuiltInFontSchemes.d.ts +3 -0
- package/types/src/theme/_BuiltInThemeDefs.d.ts +3 -0
- package/types/src/theme/_ThemeMessages.d.ts +3 -0
- package/types/src/theme/_ThemeUtils.d.ts +3 -0
- package/types/src/theme/index.d.ts +4 -0
- package/types/src/transaction/ITransaction.d.ts +594 -0
- package/types/src/transaction/Transaction.d.ts +184 -0
- package/types/src/transaction/TransactionSaveStateManager.d.ts +85 -0
- package/types/src/transaction/TransactionUndoManager.d.ts +60 -0
- package/types/src/transaction/index.d.ts +5 -0
- package/types/src/type/ICollection.d.ts +110 -0
- package/types/src/type/IProperties.d.ts +51 -0
- package/types/src/type/ITypes.d.ts +69 -0
- package/types/src/type/Registry.d.ts +66 -0
- package/types/src/type/index.d.ts +5 -0
- package/types/src/utils/GeomUtils.d.ts +61 -0
- package/types/src/utils/ObjectPath.d.ts +9 -0
- package/types/src/utils/Profiler.d.ts +38 -0
- package/types/src/utils/_CSSUtils.d.ts +156 -0
- package/types/src/utils/_GeomUtils.d.ts +14 -0
- package/types/src/utils/_RangeCoordUtils.d.ts +84 -0
- package/types/src/utils/_RangeSetUtils.d.ts +55 -0
- package/types/src/utils/index.d.ts +2 -0
- package/types/src/workbook/IWorkbook.d.ts +711 -0
- package/types/src/workbook/Workbook.d.ts +342 -0
- package/types/src/workbook/WorkbookRange.d.ts +25 -0
- package/types/src/workbook/WorkbookRanges.d.ts +39 -0
- package/types/src/workbook/_WorkbookMessages.d.ts +8 -0
- package/types/src/workbook/_WorkbookUtils.d.ts +35 -0
- package/types/src/workbook/index.d.ts +3 -0
- package/types/src/workbookProtection/IWorkbookProtection.d.ts +57 -0
- package/types/src/workbookProtection/WorkbookProtection.d.ts +14 -0
- package/types/src/workbookProtection/index.d.ts +2 -0
- package/types/src/workbookView/IWorkbookView.d.ts +134 -0
- package/types/src/workbookView/WorkbookView.d.ts +49 -0
- package/types/src/workbookView/index.d.ts +3 -0
- package/browser/cjs/-P9BHlnCf8OF6D_m.cjs +0 -6
- package/browser/cjs/4kU87sIrnTEoJHwl.cjs +0 -6
- package/browser/cjs/B8mBx-uU2X9Qvdnr.cjs +0 -6
- package/browser/cjs/BD9lJn7w8OVsIwgC.cjs +0 -6
- package/browser/cjs/BI57E6P5MbZI3G2Z.cjs +0 -6
- package/browser/cjs/BRgYzaAY9tLpJe7C.cjs +0 -6
- package/browser/cjs/BdoGTvcTjso5IcRq.cjs +0 -15
- package/browser/cjs/C3ScwpfBnQ8JeHF-.cjs +0 -6
- package/browser/cjs/CI8H5FLYtzy-Y2TO.cjs +0 -55
- package/browser/cjs/ClUc2Qdf-BFmgsJR.cjs +0 -6
- package/browser/cjs/CsEmF6ZwF-2A9AvC.cjs +0 -6
- package/browser/cjs/D6eH4loatnriRosn.cjs +0 -124
- package/browser/cjs/DJTioC8laMAxiW-z.cjs +0 -6
- package/browser/cjs/DN6U4mb4Jt2b37q-.cjs +0 -7
- package/browser/cjs/DfNwTsshId9JPwTK.cjs +0 -6
- package/browser/cjs/DnQwOaG_1n5GvCnM.cjs +0 -6
- package/browser/cjs/DtOYNHcDq5p3S21C.cjs +0 -6
- package/browser/cjs/Dy2xo5nrA4OFe7w4.cjs +0 -6
- package/browser/cjs/EzhtX7d4GOngN0Se.cjs +0 -6
- package/browser/cjs/FBky5iT5me5H1I0-.cjs +0 -6
- package/browser/cjs/JcziJrpVHeAEo8Iv.cjs +0 -6
- package/browser/cjs/LABm2VcP5Duieabc.cjs +0 -6
- package/browser/cjs/OZxxkm3CI5jiE3O-.cjs +0 -6
- package/browser/cjs/W8_0e_fQB-spiB55.cjs +0 -6
- package/browser/cjs/nS_oDgpzBeOV487v.cjs +0 -6
- package/browser/cjs/srhqHYaGNtcM9evy.cjs +0 -6
- package/browser/cjs/v2J4J4s0rRAvsx4v.cjs +0 -6
- package/browser/esm/8Cdp6eg5fQM4U0CD.mjs +0 -10
- package/browser/esm/BvtSjnucMGltTjeM.mjs +0 -426
- package/browser/esm/Bzw2Xms8ZtifZcAF.mjs +0 -10
- package/browser/esm/C9ojFSLlGrdG3EDE.mjs +0 -10
- package/browser/esm/CPxdCZqGhuQENst8.mjs +0 -10
- package/browser/esm/CQXqHgLFDd57bQSy.mjs +0 -10
- package/browser/esm/CRlsrdZLcL-QKyo2.mjs +0 -12
- package/browser/esm/CUqge0vhYI_M8Hpg.mjs +0 -10
- package/browser/esm/C__wCYJcwKkBqp8t.mjs +0 -10
- package/browser/esm/Cou0jxSdkKrqQBPA.mjs +0 -10
- package/browser/esm/CtGy0C3HHvNhQ3j5.mjs +0 -10
- package/browser/esm/Ctol2MswJyCxIJcQ.mjs +0 -10
- package/browser/esm/D7tUJDQqPM4e3FEC.mjs +0 -10
- package/browser/esm/DB5Wpq1m-bJ7gpBF.mjs +0 -10
- package/browser/esm/DLXAhFMo3NyECo8b.mjs +0 -23842
- package/browser/esm/DTlPJulnTLqG3WSw.mjs +0 -10
- package/browser/esm/DwfM2tfEPAzMl86c.mjs +0 -10
- package/browser/esm/Dx0TIy0V5EVTNOEZ.mjs +0 -10
- package/browser/esm/Dxfd2MfY8kHHUtnu.mjs +0 -4022
- package/browser/esm/E0SwR3N6qggAhdBh.mjs +0 -10
- package/browser/esm/JGdZf2WBzvkRao7-.mjs +0 -10
- package/browser/esm/NAcqiYlYK4mm9q_F.mjs +0 -10
- package/browser/esm/NGg21AIVBhRCHoOh.mjs +0 -10
- package/browser/esm/PjtmxdNFMVskYmPB.mjs +0 -10
- package/browser/esm/a_LQ18tLbXq3N9hu.mjs +0 -10
- package/browser/esm/hXx5ZKLpc4RvmCjH.mjs +0 -10
- package/browser/esm/zoqPtKWJmGQs1ZUb.mjs +0 -5653
- package/node/esm/7QlvuodPxz-B25P9.mjs +0 -10
- package/node/esm/8Cdp6eg5fQM4U0CD.mjs +0 -10
- package/node/esm/B94PecmbGgqY0k9O.mjs +0 -13
- package/node/esm/BpvIVwL4NNRKuaD7.mjs +0 -10
- package/node/esm/Bzw2Xms8ZtifZcAF.mjs +0 -10
- package/node/esm/C9ojFSLlGrdG3EDE.mjs +0 -10
- package/node/esm/CQXqHgLFDd57bQSy.mjs +0 -10
- package/node/esm/CSg2ysafDv5h1zz2.mjs +0 -2458
- package/node/esm/CUqge0vhYI_M8Hpg.mjs +0 -10
- package/node/esm/C__wCYJcwKkBqp8t.mjs +0 -10
- package/node/esm/Cou0jxSdkKrqQBPA.mjs +0 -10
- package/node/esm/CtlHMovXY4x1NgI6.mjs +0 -10
- package/node/esm/Ctol2MswJyCxIJcQ.mjs +0 -10
- package/node/esm/Cv3hTIkdeILrJGYc.mjs +0 -10
- package/node/esm/D7tUJDQqPM4e3FEC.mjs +0 -10
- package/node/esm/DTlPJulnTLqG3WSw.mjs +0 -10
- package/node/esm/Dvg1Ay14DLNhMgmD.mjs +0 -10
- package/node/esm/DwfM2tfEPAzMl86c.mjs +0 -10
- package/node/esm/Dx0TIy0V5EVTNOEZ.mjs +0 -10
- package/node/esm/F5A4vdvxqRt8hFAs.mjs +0 -10
- package/node/esm/NGg21AIVBhRCHoOh.mjs +0 -10
- package/node/esm/PjtmxdNFMVskYmPB.mjs +0 -10
- package/node/esm/a_LQ18tLbXq3N9hu.mjs +0 -10
- package/node/esm/hXx5ZKLpc4RvmCjH.mjs +0 -10
- package/node/esm/lUsLEOryW9viP9g7.mjs +0 -1072
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { FormulaError, IFormulaContext, Scalar, IRange, IFunction } from '@sheetxl/primitives';
|
|
2
|
+
import { ICalculation } from '../ICalculation';
|
|
3
|
+
import { CalcScope } from '../state';
|
|
4
|
+
import { CompiledFormula } from '../compiler';
|
|
5
|
+
import { ASTNode, FunctionNode } from '../compiler/ASTTypes';
|
|
6
|
+
import { NamedReference, StructuredReference, ReferenceCoords, SetReferenceOptions } from '../Types';
|
|
7
|
+
import { LambdaValue } from './LambdaValue';
|
|
8
|
+
import { IFormulaBlock } from './IFormulaBlock';
|
|
9
|
+
/**
|
|
10
|
+
* Optional resolver callbacks injected by `Calculation` at construction time.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* When a callback is absent the corresponding reference type falls back to a
|
|
14
|
+
* formula error (`#NAME?` for named, `#REF!` for table). This allows the
|
|
15
|
+
* formula engine to operate without a full workbook context (e.g. in tests).
|
|
16
|
+
*/
|
|
17
|
+
export interface FormulaBlockResolvers {
|
|
18
|
+
/**
|
|
19
|
+
* Resolves a table structured reference to absolute coordinates.
|
|
20
|
+
*
|
|
21
|
+
* @param structuredReference Structured reference object.
|
|
22
|
+
* @param row Formula anchor row (needed for implicit table detection when `tableId` is empty).
|
|
23
|
+
* @param column Formula anchor column (same as `row`).
|
|
24
|
+
*/
|
|
25
|
+
getStructureReferenceCoords?(structuredReference: StructuredReference, row: number, column: number, gridId: string | null): IRange.FixableCoords | FormulaError.Known;
|
|
26
|
+
/**
|
|
27
|
+
* Resolves a nameId to its shared compiled body — the named formula's virtual-grid
|
|
28
|
+
* block at (0,0). The caller evaluates / precedent-resolves this body at its own anchor
|
|
29
|
+
* (Design 3, apply-at-eval). Returns `null` when the name is unresolved.
|
|
30
|
+
*/
|
|
31
|
+
getNamedFormulaBlock?(nameId: string): IFormulaBlock | null;
|
|
32
|
+
}
|
|
33
|
+
export declare class FormulaBlock implements IFormulaBlock {
|
|
34
|
+
protected _compiled: CompiledFormula;
|
|
35
|
+
protected _context: IFormulaContext;
|
|
36
|
+
protected _calcScope: CalcScope;
|
|
37
|
+
protected _gridId: string | null;
|
|
38
|
+
protected _getEntireCoords: () => IRange.Coords;
|
|
39
|
+
/**
|
|
40
|
+
* Optional resolver callbacks supplied by `Calculation` (or a test harness).
|
|
41
|
+
* Used to resolve table and named references to absolute coordinates at runtime.
|
|
42
|
+
* When `null` both reference types return formula errors.
|
|
43
|
+
*/
|
|
44
|
+
protected _resolvers: FormulaBlockResolvers | null;
|
|
45
|
+
constructor(compiled: CompiledFormula, context: IFormulaContext, scope: CalcScope, gridId: string | null, getEntireCoords: () => IRange.Coords, resolvers?: FormulaBlockResolvers | null);
|
|
46
|
+
/** @inheritdoc IFormulaBlock.getTextAt */
|
|
47
|
+
getTextAt(row: number, column: number, r1c1?: boolean, formulaTransform?: ICalculation.FormulaTransform, evalIndex?: number, canonical?: boolean): string;
|
|
48
|
+
/**
|
|
49
|
+
* The display (non-canonical) locale: separators from the workbook locale (Plane 1) and boolean/
|
|
50
|
+
* error/specifier literals from the active spreadsheet-language pack (Plane 3). Resolved per call so
|
|
51
|
+
* a live locale/language switch is reflected without recompiling. Only its `localize*` face is used
|
|
52
|
+
* on the emit path; the parse callbacks and raw word-lists go unused here.
|
|
53
|
+
*/
|
|
54
|
+
private _displayLocale;
|
|
55
|
+
/** @inheritdoc IFormulaBlock.getTokensAt */
|
|
56
|
+
getTokensAt(row: number, column: number, evalIndex?: number): ICalculation.FormulaToken[];
|
|
57
|
+
/** @inheritdoc IFormulaBlock.getError */
|
|
58
|
+
getError(): any;
|
|
59
|
+
/** @inheritdoc IFormulaBlock.getNamedIds */
|
|
60
|
+
getNamedIds(): string[];
|
|
61
|
+
/** @inheritdoc IFormulaBlock.getReferencedSymbolIds */
|
|
62
|
+
getReferencedSymbolIds(): string[];
|
|
63
|
+
/** @inheritdoc IFormulaBlock.hasTotals */
|
|
64
|
+
hasTotals(): boolean;
|
|
65
|
+
/** @inheritdoc IFormulaBlock.isReferenceOnly */
|
|
66
|
+
isReferenceOnly(): boolean;
|
|
67
|
+
/** @inheritdoc IFormulaBlock.isEquals */
|
|
68
|
+
isEquals(other: IFormulaBlock): boolean;
|
|
69
|
+
/** @inheritdoc IFormulaBlock.getReferences */
|
|
70
|
+
getReferences(row: number, column: number): ReferenceCoords[];
|
|
71
|
+
/** @inheritdoc IFormulaBlock.getReferenceAt */
|
|
72
|
+
getReferenceAt(row: number, column: number, index: number): ReferenceCoords;
|
|
73
|
+
/** @inheritdoc IFormulaBlock.setReferenceAt */
|
|
74
|
+
setReferenceAt(index: number, reference: ReferenceCoords, options?: SetReferenceOptions): this;
|
|
75
|
+
/** @inheritdoc IFormulaBlock.reanchorReferences */
|
|
76
|
+
reanchorReferences(scopeFrom: string, force?: boolean): this;
|
|
77
|
+
/** @inheritdoc IFormulaBlock.replaceSheetReferences */
|
|
78
|
+
replaceSheetReferences(fromSheetDisplay: string, toSheetDisplay: string): this;
|
|
79
|
+
/**
|
|
80
|
+
* Resolves a named reference by evaluating its shared body at the caller's anchor
|
|
81
|
+
* (Design 3, apply-at-eval). The body value is taken **raw** (no finalize) so a
|
|
82
|
+
* range / multi-area body survives as a reference for the consuming operator or
|
|
83
|
+
* function. Cycle-guarded via `calcScope.activeNames` (a plain name re-entering itself
|
|
84
|
+
* is `#REF!`); `depth` is tracked for the future LAMBDA recursion limit. Scope
|
|
85
|
+
* (`gridId`/`rowIndex`/`colIndex`) is saved and restored around the descent so the
|
|
86
|
+
* caller's remaining reference resolution is unaffected; `node` (the owner) is left
|
|
87
|
+
* intact so the body's cell reads attribute to the outermost caller.
|
|
88
|
+
*/
|
|
89
|
+
protected _evaluateNamed(namedReference: NamedReference, row: number, column: number): any;
|
|
90
|
+
/**
|
|
91
|
+
* Resolves the precedents of a named reference: the named formula's body cells, resolved
|
|
92
|
+
* at the caller's anchor (apply-at-eval, Step 12). Returned as an array that the caller's
|
|
93
|
+
* `resolvedPrecedentsAt` **flattens** into its own precedents (static edges) — so a name
|
|
94
|
+
* contributes its real input cells, not a virtual-cell edge. Cycle-guarded via
|
|
95
|
+
* `activeNames` (a recursive name contributes no static precedents → eval returns `#REF!`).
|
|
96
|
+
*/
|
|
97
|
+
protected _resolveNamedPrecedents(named: NamedReference, row: number, column: number): readonly (Readonly<IRange.FixableCoords> | FormulaError.Known)[] | FormulaError.Known;
|
|
98
|
+
/**
|
|
99
|
+
* Resolves {@link StructuredReference} to absolute coordinates.
|
|
100
|
+
*
|
|
101
|
+
* @remarks
|
|
102
|
+
* - Delegates to {@link FormulaBlockResolvers.getStructureReferenceCoords}.
|
|
103
|
+
* - Returns `FormulaError.Name` when no resolver is registered.
|
|
104
|
+
*/
|
|
105
|
+
protected _resolveStructuredRef(structuredReference: StructuredReference, row: number, column: number, reuse?: IRange.Coords): IRange.FixableCoords | FormulaError.Known;
|
|
106
|
+
/** @inheritdoc IFormulaBlock.resolvedPrecedentsAt */
|
|
107
|
+
resolvedPrecedentsAt(row: number, column: number, includeInvalidIntersect?: boolean, verticalAbs?: boolean[], horizontalAbs?: boolean[]): readonly (Readonly<IRange.FixableCoords> | FormulaError.Known)[];
|
|
108
|
+
/** @inheritdoc IFormulaBlock.evaluateAt */
|
|
109
|
+
evaluateAt(row: number, column: number, evalIndex?: number): Scalar | Promise<Scalar>;
|
|
110
|
+
/** @inheritdoc IFormulaBlock.wrapImplicit */
|
|
111
|
+
wrapImplicit(rowIndex: number, colIndex: number, setSpills: Set<string>): this;
|
|
112
|
+
/**
|
|
113
|
+
* Executes one AST node against a register file.
|
|
114
|
+
*
|
|
115
|
+
* @param node The node (its inputs' values are already in `regs`).
|
|
116
|
+
* @param regs The register file — `compiled.evaluations` on the eager path, a private
|
|
117
|
+
* ACTIVATION copy during a lambda apply (`_evaluateBody`). Extracted from `evaluateAt`'s old
|
|
118
|
+
* closure so both paths run the identical semantics.
|
|
119
|
+
* @param row The anchor the formula is being evaluated at (lambda values record it).
|
|
120
|
+
* @param column The anchor column.
|
|
121
|
+
*/
|
|
122
|
+
protected _executeNode(node: ASTNode, regs: any[], row: number, column: number): any;
|
|
123
|
+
/**
|
|
124
|
+
* Closes a `LAMBDA` node over the current registers — the node's whole evaluation (design §3.3).
|
|
125
|
+
*
|
|
126
|
+
* @param frame The lambda-parameter frame in scope at the creation site — `null` at an eager
|
|
127
|
+
* site, the enclosing activation's frame when a nested lambda is created during an apply
|
|
128
|
+
* (`LAMBDA(x,LAMBDA(y,x+y))` — the inner value must see `x`).
|
|
129
|
+
*
|
|
130
|
+
* @remarks
|
|
131
|
+
* The registers are SNAPSHOTTED (copied), not shared: a recursive named lambda re-evaluates the
|
|
132
|
+
* shared named-body block at every level, and only a copy keeps an outer activation's captured
|
|
133
|
+
* environment intact underneath it. See `LambdaValue`.
|
|
134
|
+
*/
|
|
135
|
+
protected _createLambdaValue(node: FunctionNode, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number): LambdaValue;
|
|
136
|
+
/**
|
|
137
|
+
* The callee verdicts + apply for a `Call` node (design §3.4, §1.1):
|
|
138
|
+
*
|
|
139
|
+
* - a lambda value → arity check, bind, evaluate the body;
|
|
140
|
+
* - a function value (eta `SUM`) → dispatch to the function itself;
|
|
141
|
+
* - a reference that is not a lambda → `#REF!` (Excel resolved it and failed to CALL it);
|
|
142
|
+
* - any other value → `#VALUE!` (a failed coercion, same class as `="a"+1`).
|
|
143
|
+
*
|
|
144
|
+
* All three error rows are MEASURED (probe-lambda-call.ps1; Excel Online
|
|
145
|
+
* `FunctionDispatcher.applyOperatorOrFunction` agrees structurally).
|
|
146
|
+
*/
|
|
147
|
+
protected _applyCallee(callee: any, node: ASTNode, regs: any[]): any;
|
|
148
|
+
/**
|
|
149
|
+
* Apply over VALUES — the marshalled-callable twin of {@link _applyCallee}'s lambda branch
|
|
150
|
+
* (design §4). Reached through {@link LambdaValue.makeCallable} while a CONSUMER's body
|
|
151
|
+
* (`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 unsupplied argument — it binds
|
|
153
|
+
* the OMITTED sentinel at an OPTIONAL parameter and is `#VALUE!` at a required one, mirroring
|
|
154
|
+
* the spelled-call rule (§2.6).
|
|
155
|
+
*/
|
|
156
|
+
_applyValues(callee: LambdaValue, args: readonly any[]): any;
|
|
157
|
+
/**
|
|
158
|
+
* Evaluates a lambda's body segment for one application — the deferred half of the carve-out
|
|
159
|
+
* (design §3.3/§3.4). `this` is the lambda's OWNER block (the body's nodes belong to its
|
|
160
|
+
* compiled formula).
|
|
161
|
+
*
|
|
162
|
+
* @param lambda The value being applied.
|
|
163
|
+
* @param frame slot → argument value for this activation (already includes any captured
|
|
164
|
+
* enclosing frame — see `_applyCallee`).
|
|
165
|
+
*
|
|
166
|
+
* @remarks
|
|
167
|
+
* The walker mirrors the eager pipeline exactly: literals and eagerly-resolved references read
|
|
168
|
+
* from the activation registers (a copy of the creation snapshot), operators and functions
|
|
169
|
+
* execute through the same `_executeNode`, and a node's result lands in its register before the
|
|
170
|
+
* parent reads it. Only three things differ from eager evaluation — a bound name may read the
|
|
171
|
+
* FRAME (a lambda parameter has no register), an unbound name resolves NOW at the creation
|
|
172
|
+
* anchor (`deferredResolve`), and a nested `LAMBDA` closes over this activation.
|
|
173
|
+
*
|
|
174
|
+
* Recursion arrives only via a defined name cycling back through a deferred resolve, and
|
|
175
|
+
* `depth` is the budget that bounds it. NOTE the engine's eager `IF` makes a terminating
|
|
176
|
+
* recursion still BURN to the depth limit before unwinding (the un-taken branch is evaluated,
|
|
177
|
+
* bottoms out at `#NUM!`, and the selector discards it) — correct results at O(limit) cost;
|
|
178
|
+
* Excel Online avoids the cost with a lazy `Conditional` term. Recorded in the plan.
|
|
179
|
+
*/
|
|
180
|
+
protected _evaluateBody(lambda: LambdaValue, frame: ReadonlyMap<number, any>): any;
|
|
181
|
+
/**
|
|
182
|
+
* Calls a function.
|
|
183
|
+
*
|
|
184
|
+
* @param context The context to use.
|
|
185
|
+
* @param fnName The name of the function to call.
|
|
186
|
+
* @param args The args to pass to the function.
|
|
187
|
+
*/
|
|
188
|
+
protected _callFunction(node: FunctionNode, argsValues: any[], argsLength: number): any;
|
|
189
|
+
/**
|
|
190
|
+
* The dispatch half of {@link _callFunction} — invoke a RESOLVED function over evaluated
|
|
191
|
+
* arguments. Split out so eta application (`FunctionValue` — `LET(f,SUM,f(1,2))`) can dispatch
|
|
192
|
+
* a function it already holds, with no node to resolve or cache on.
|
|
193
|
+
*/
|
|
194
|
+
protected _dispatchFunction(fn: IFunction, argsValues: any[], argsLength: number): any;
|
|
195
|
+
/** @inheritdoc IFormulaBlock.finalizeValue */
|
|
196
|
+
finalizeValue(retValue: any): Scalar | Scalar[];
|
|
197
|
+
/** @inheritdoc IFormulaBlock.finalizeValueForCell */
|
|
198
|
+
finalizeValueForCell(retValue: any): Scalar;
|
|
199
|
+
toString(): string;
|
|
200
|
+
get [Symbol.toStringTag](): string;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Similar to AddressUtils.toAbsoluteRange but
|
|
204
|
+
* does not set the $fixed flags
|
|
205
|
+
*/
|
|
206
|
+
export declare function toSimpleAbsoluteRange(fixable: IRange.FixableCoords, positionRow: number, positionCol: number, reuseRange: IRange.FixableCoords): IRange.Coords;
|
|
207
|
+
//# sourceMappingURL=FormulaBlock.d.ts.map
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { IRange, FormulaError } from '@sheetxl/primitives';
|
|
2
|
+
import { ICalculation } from '../ICalculation';
|
|
3
|
+
import { ReferenceCoords, SetReferenceOptions } from '../Types';
|
|
4
|
+
export interface IFormulaBlock {
|
|
5
|
+
/**
|
|
6
|
+
* This is the eval used internally by graph.
|
|
7
|
+
* precedents must be an array of either IRange or Scalar.
|
|
8
|
+
*
|
|
9
|
+
* @param row The row of the cell to evaluate.
|
|
10
|
+
* @param column The column of the cell to evaluate.
|
|
11
|
+
* @param evalIndex The index of the evaluation to use from the tokens.
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* The precedents can be passed in as a performance optimization graph caches them as it calculates.
|
|
15
|
+
*/
|
|
16
|
+
evaluateAt(row: number, column: number, evalIndex?: number): any;
|
|
17
|
+
/**
|
|
18
|
+
* Finalizes a raw value from {@link evaluateAt} for RETURN to a caller: collapses a range to
|
|
19
|
+
* its anchor scalar (implicit intersection) and prepares a spillable range. A multi-area
|
|
20
|
+
* result (`=(A1:A3,C1:C3)`, or a name whose body is a comma union) stays an **array**, one
|
|
21
|
+
* finalized area per element, so an API caller receives every area. Applied by the return
|
|
22
|
+
* sites (`IFormula.evaluate()`, `ICalculation.evaluate()`) — `evaluateAt` itself returns the
|
|
23
|
+
* raw value so a consumer (e.g. a named reference used by a function) sees the reference intact.
|
|
24
|
+
*
|
|
25
|
+
* @see {@link finalizeValueForCell} for the write-to-a-grid variant.
|
|
26
|
+
*/
|
|
27
|
+
finalizeValue(value: any): any;
|
|
28
|
+
/**
|
|
29
|
+
* {@link finalizeValue} plus the one rule that is specific to STORING a result in a single
|
|
30
|
+
* grid cell: a cell has no representation for a multi-area union, so an array of areas
|
|
31
|
+
* becomes `#VALUE!`. Applied by the executor when committing to a grid; returning a
|
|
32
|
+
* multi-area through the API is legal and uses {@link finalizeValue} instead.
|
|
33
|
+
*/
|
|
34
|
+
finalizeValueForCell(value: any): any;
|
|
35
|
+
/**
|
|
36
|
+
* Return the formula as an array of formula token values.
|
|
37
|
+
*
|
|
38
|
+
* @param row The row of the cell to evaluate.
|
|
39
|
+
* @param column The column of the cell to evaluate.
|
|
40
|
+
* @param evalIndex The index of the evaluation to use from the tokens.
|
|
41
|
+
* @remarks
|
|
42
|
+
* These can be used by advanced editors.
|
|
43
|
+
*/
|
|
44
|
+
getTokensAt(row: number, column: number, evalIndex?: number): ICalculation.FormulaToken[];
|
|
45
|
+
/**
|
|
46
|
+
* Return the formula string.
|
|
47
|
+
*
|
|
48
|
+
* @param row The row of the cell to evaluate.
|
|
49
|
+
* @param column The column of the cell to evaluate.
|
|
50
|
+
* @param r1c1 If 'true' then returns string as r1c1
|
|
51
|
+
* @param formulaTransform An {@link ICalculation.FormulaTransform} applied structurally to
|
|
52
|
+
* the compiled AST before imaging (runs once per block; an all-void transform costs no
|
|
53
|
+
* recompile) — how a format exporter (io-xlsx `LegacyFormula`) applies its dialect spellings.
|
|
54
|
+
*/
|
|
55
|
+
getTextAt(row: number, column: number, r1c1?: boolean, formulaTransform?: ICalculation.FormulaTransform, evalIndex?: number,
|
|
56
|
+
/**
|
|
57
|
+
* Serialize function names in CANONICAL (English) form — the persistence/internal
|
|
58
|
+
* representation (files, undo snapshots, re-parses). Default `false` = display form
|
|
59
|
+
* (localized via the active language pack).
|
|
60
|
+
*/
|
|
61
|
+
canonical?: boolean): string;
|
|
62
|
+
/**
|
|
63
|
+
* Returns a new formula block with the reference at `index` replaced.
|
|
64
|
+
*
|
|
65
|
+
* @param index The index of the reference to replace (aligned to {@link getReferences}).
|
|
66
|
+
* @param reference The new reference — the {@link ReferenceCoords} TYPE carries the shape intent:
|
|
67
|
+
* - an {@link IRange.FixableCellCoords} (single cell) collapses an existing range to a lone cell
|
|
68
|
+
* (`A1:B2` → `A1`, dropping the `:`);
|
|
69
|
+
* - an {@link IRange.FixableCoords} (range, or degenerate 1×1) PRESERVES the existing shape, so a
|
|
70
|
+
* single-cell *range* `A1:A1` stays a range (this is what F4 `$`-cycle / handle-resize pass);
|
|
71
|
+
* - a {@link NamedReference} replaces a named ref with another named ref;
|
|
72
|
+
* - a {@link FormulaError.Ref} injects a `#REF!`; `null` clears.
|
|
73
|
+
* @param options See {@link SetReferenceOptions}.
|
|
74
|
+
*/
|
|
75
|
+
setReferenceAt(index: number, reference: ReferenceCoords, options?: SetReferenceOptions): this;
|
|
76
|
+
/**
|
|
77
|
+
* Reanchors the formula by updating the precedent at an index with a new reference.
|
|
78
|
+
*
|
|
79
|
+
* @param scopeFrom The scope from which to reanchor.
|
|
80
|
+
* @param force If `true`, forces re-anchoring even if the scope matches the current grid id.
|
|
81
|
+
* @returns The formula block with updated precedents.
|
|
82
|
+
*
|
|
83
|
+
* @remarks
|
|
84
|
+
* This is used for moving formulas between grids and requires the formula block to be able to update all of its precedents based on the new and old grid ids.
|
|
85
|
+
* This is required for cut/paste and drag fill between sheets.
|
|
86
|
+
*/
|
|
87
|
+
reanchorReferences(scopeFrom: string, force?: boolean): this;
|
|
88
|
+
/**
|
|
89
|
+
* Replaces all refs explicitly qualified to `fromSheetDisplay` with `toSheetDisplay`.
|
|
90
|
+
* Unlike reanchorReferences, unqualified refs are left untouched.
|
|
91
|
+
* Used when moving data cross-sheet so explicit same-sheet refs follow the data.
|
|
92
|
+
*/
|
|
93
|
+
replaceSheetReferences(fromSheetDisplay: string, toSheetDisplay: string): this;
|
|
94
|
+
/**
|
|
95
|
+
* Returns all references used by the formula.
|
|
96
|
+
* Named references are {@link NamedReference} objects (detect via `'nameId' in ref`);
|
|
97
|
+
* cell/range references are {@link IRange.FixableCoords}; unresolvable refs are `null`.
|
|
98
|
+
*/
|
|
99
|
+
getReferences(row: number, column: number): ReferenceCoords[];
|
|
100
|
+
/**
|
|
101
|
+
* Returns the reference at `index`, or `null` if out of range.
|
|
102
|
+
* Convenience single-slot accessor aligned to {@link getReferences}.
|
|
103
|
+
*/
|
|
104
|
+
getReferenceAt(row: number, column: number, index: number): ReferenceCoords;
|
|
105
|
+
/**
|
|
106
|
+
* Returns the absolute ranges that provide data to a formula.
|
|
107
|
+
*
|
|
108
|
+
* @param row The row of the formula.
|
|
109
|
+
* @param column The column of the formula.
|
|
110
|
+
* @param includeInvalidIntersect If `true` then invalid ranges will be included in the result.
|
|
111
|
+
* @param verticalAbs If provided the array will be populated with flags if a vertical absolute is detected
|
|
112
|
+
* @param horizontalAbs If provided the array will be populated with flags if a horizontal absolute is detected
|
|
113
|
+
*
|
|
114
|
+
* @remarks
|
|
115
|
+
* * `[]` if no precedents are present; either because it has no formula or a formula with no inputs.
|
|
116
|
+
* * Precedents are the logical ranges and may different the inputs into the formula.
|
|
117
|
+
* * includeInvalidIntersect is required to manage dependencies for invalid intersections in shared formulas.
|
|
118
|
+
* * Returns as absolute coordinates.
|
|
119
|
+
*/
|
|
120
|
+
resolvedPrecedentsAt(row: number, column: number, includeInvalidIntersect?: boolean, verticalAbs?: boolean[], horizontalAbs?: boolean[]): readonly (Readonly<IRange.FixableCoords> | FormulaError.Known)[];
|
|
121
|
+
/**
|
|
122
|
+
* Wraps the formula in an implicit reference operator if hasSpill returns true and the formula
|
|
123
|
+
* expects a spill.
|
|
124
|
+
*
|
|
125
|
+
* @param rowIndex The row index of the formula.
|
|
126
|
+
* @param colIndex The column index of the formula.
|
|
127
|
+
* @param setSpillCells A1 notation for all of the cells that contains spills.
|
|
128
|
+
*
|
|
129
|
+
* @remarks
|
|
130
|
+
* This is used for importing Excel as it doesn't always add '@' for backward compatibility.
|
|
131
|
+
*/
|
|
132
|
+
wrapImplicit(rowIndex: number, colIndex: number, setSpillCells: Set<string>): this;
|
|
133
|
+
/**
|
|
134
|
+
* @see
|
|
135
|
+
* { @link ICalculation.IFormula.isReferenceOnly }
|
|
136
|
+
*/
|
|
137
|
+
isReferenceOnly(): boolean;
|
|
138
|
+
/**
|
|
139
|
+
* Return an error with the formula.
|
|
140
|
+
*
|
|
141
|
+
* @remarks
|
|
142
|
+
* This is not a value error but that the formula is unable to resolve.
|
|
143
|
+
*/
|
|
144
|
+
getError(): FormulaError.Parse | null;
|
|
145
|
+
/**
|
|
146
|
+
* Returns the distinct stable nameIds of the named references in this formula
|
|
147
|
+
* (see `collectNamedIds`). Direct only, never descends into a name's body —
|
|
148
|
+
* transitivity is carried by the dependency graph. Used by `recompileNamed`'s all3D
|
|
149
|
+
* scan to find the formulas to invalidate when a named formula changes.
|
|
150
|
+
*/
|
|
151
|
+
getNamedIds(): string[];
|
|
152
|
+
/**
|
|
153
|
+
* Returns the distinct stable fake ids of the direct indirect-symbol references in this formula —
|
|
154
|
+
* named formulas AND tables. Superset of {@link getNamedIds}.
|
|
155
|
+
*
|
|
156
|
+
* @remarks
|
|
157
|
+
* Used to reverse-invalidate dependents when a name/table's resolution changes (add/heal, delete,
|
|
158
|
+
* rename), matched against `IndirectSymbolProvider.reconcile()`. Catches unresolved (`#NAME?`/
|
|
159
|
+
* `#REF!`) references that a precedent-range markDirty would miss.
|
|
160
|
+
*/
|
|
161
|
+
getReferencedSymbolIds(): string[];
|
|
162
|
+
/**
|
|
163
|
+
* Whether the formula calls `SUBTOTAL` or `AGGREGATE` anywhere in its tree.
|
|
164
|
+
*
|
|
165
|
+
* @remarks
|
|
166
|
+
* Read straight off the compiled cache — see `CompiledFormula.hasTotals`. What
|
|
167
|
+
* `IFormulaContext.filterTotals` asks of every formula block overlapping a total's range
|
|
168
|
+
* argument, so that a nested total can be excluded from the enclosing one.
|
|
169
|
+
*
|
|
170
|
+
* A property of the BLOCK, not of a cell within it: every cell of a block shares one AST, so
|
|
171
|
+
* either all of them call a total function or none do.
|
|
172
|
+
*/
|
|
173
|
+
hasTotals(): boolean;
|
|
174
|
+
/**
|
|
175
|
+
* If the formula is logically equal to another formula.
|
|
176
|
+
*
|
|
177
|
+
* @param other The other formula block to compare to.
|
|
178
|
+
*/
|
|
179
|
+
isEquals(other: IFormulaBlock): boolean;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=IFormulaBlock.d.ts.map
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { IFunction } from '@sheetxl/primitives';
|
|
2
|
+
import { ASTNode } from '../compiler/ASTTypes';
|
|
3
|
+
import { CompiledFormula } from '../compiler/Types';
|
|
4
|
+
import { IFormulaBlock } from './IFormulaBlock';
|
|
5
|
+
/**
|
|
6
|
+
* The plain JS callable `TypedFunction` hands a lambda-typed parameter — apply over VALUES
|
|
7
|
+
* (design §4). The consumer's body invokes it once per element; errors come back as VALUES
|
|
8
|
+
* (they embed as members of the output), never as throws.
|
|
9
|
+
*
|
|
10
|
+
* `checkArity` is the family's shared verdict input (`BYROW` asks 1, `MAKEARRAY` 2, `MAP` one per
|
|
11
|
+
* array): a mismatch is `#VALUE!` for the WHOLE call, decided by the consumer before any element
|
|
12
|
+
* runs. The properties are read STRUCTURALLY by `formulas` bodies, which cannot import this
|
|
13
|
+
* calculation-private module.
|
|
14
|
+
*/
|
|
15
|
+
export interface LambdaCallable {
|
|
16
|
+
(...args: any[]): any;
|
|
17
|
+
/** Marks a marshalled function value. */
|
|
18
|
+
isLambdaCallable: true;
|
|
19
|
+
/** Whether the value can be applied with `count` arguments. */
|
|
20
|
+
checkArity(count: number): boolean;
|
|
21
|
+
/** Declared parameter count (`-1` when flexible — an eta-reduced function). */
|
|
22
|
+
paramCount: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* One parameter of a {@link LambdaValue}, as the binder declared it.
|
|
26
|
+
*/
|
|
27
|
+
export interface LambdaParam {
|
|
28
|
+
/** The parameter's binding slot (an index into `CompiledFormula.bindings`). */
|
|
29
|
+
readonly slot: number;
|
|
30
|
+
/** The declared spelling — for arity messages and (later) the wizard signature. */
|
|
31
|
+
readonly name: string;
|
|
32
|
+
/**
|
|
33
|
+
* Declared optional (`[b]`). Always `false` until P2.5 lands the `[b]` parse; the apply arity
|
|
34
|
+
* rule is already written against it.
|
|
35
|
+
*/
|
|
36
|
+
readonly optional: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The engine value a `LAMBDA(…)` node evaluates to — a first-class result that flows through any
|
|
40
|
+
* untyped slot (design §1).
|
|
41
|
+
*
|
|
42
|
+
* @remarks
|
|
43
|
+
* CALCULATION-PRIVATE, like stable ids: nothing here reaches a public API. The one boundary rule
|
|
44
|
+
* is the cell's — an unconsumed lambda renders `#CALC!` (`finalizeValue`), and every consumer that
|
|
45
|
+
* needs a scalar or a location fails to COERCE it with `#VALUE!` (the `isLambda` brand is what the
|
|
46
|
+
* coercion sites check, the same structural pattern as `isIRange`).
|
|
47
|
+
*
|
|
48
|
+
* A lambda closes over its creation context by SNAPSHOT, not by reference: `regs` is a copy of the
|
|
49
|
+
* creating formula's register file at the moment the `LAMBDA` node evaluated. The copy is what
|
|
50
|
+
* makes recursion sound — a self-recursive named lambda re-evaluates the SHARED named body block
|
|
51
|
+
* at every level, clobbering the block's live registers, and only a captured copy keeps an outer
|
|
52
|
+
* activation's environment intact underneath it.
|
|
53
|
+
*/
|
|
54
|
+
export declare class LambdaValue {
|
|
55
|
+
/** The declared parameters, in order. */
|
|
56
|
+
readonly params: readonly LambdaParam[];
|
|
57
|
+
/** The body subtree (excluded from the eager execution list — design §3.3). */
|
|
58
|
+
readonly body: ASTNode;
|
|
59
|
+
/** The block that created this value — apply evaluates the body through it. */
|
|
60
|
+
readonly owner: IFormulaBlock;
|
|
61
|
+
/** The owner's compiled formula (for `bindings` and node prefills). */
|
|
62
|
+
readonly compiled: CompiledFormula;
|
|
63
|
+
/** SNAPSHOT of the owner's register file at creation (see the class remarks). */
|
|
64
|
+
readonly regs: any[];
|
|
65
|
+
/**
|
|
66
|
+
* The lambda-parameter frame in scope at creation — slot → value. `null` at an eager creation
|
|
67
|
+
* site; a nested `LAMBDA` created during an apply captures the enclosing activation's frame,
|
|
68
|
+
* which is what makes `LAMBDA(x,LAMBDA(y,x+y))(1)(2)` see `x`.
|
|
69
|
+
*/
|
|
70
|
+
readonly frame: ReadonlyMap<number, any> | null;
|
|
71
|
+
/** The anchor the owner was being evaluated at — deferred name resolution re-uses it. */
|
|
72
|
+
readonly anchorRow: number;
|
|
73
|
+
readonly anchorCol: number;
|
|
74
|
+
/**
|
|
75
|
+
* The function-value brand, shared with {@link FunctionValue} — checked structurally by the
|
|
76
|
+
* coercion sites (`coerceScalar`, `addCoercedValue`, the operators), which cannot import this
|
|
77
|
+
* calculation-private module.
|
|
78
|
+
*/
|
|
79
|
+
readonly isLambda: true;
|
|
80
|
+
constructor(
|
|
81
|
+
/** The declared parameters, in order. */
|
|
82
|
+
params: readonly LambdaParam[],
|
|
83
|
+
/** The body subtree (excluded from the eager execution list — design §3.3). */
|
|
84
|
+
body: ASTNode,
|
|
85
|
+
/** The block that created this value — apply evaluates the body through it. */
|
|
86
|
+
owner: IFormulaBlock,
|
|
87
|
+
/** The owner's compiled formula (for `bindings` and node prefills). */
|
|
88
|
+
compiled: CompiledFormula,
|
|
89
|
+
/** SNAPSHOT of the owner's register file at creation (see the class remarks). */
|
|
90
|
+
regs: any[],
|
|
91
|
+
/**
|
|
92
|
+
* The lambda-parameter frame in scope at creation — slot → value. `null` at an eager creation
|
|
93
|
+
* site; a nested `LAMBDA` created during an apply captures the enclosing activation's frame,
|
|
94
|
+
* which is what makes `LAMBDA(x,LAMBDA(y,x+y))(1)(2)` see `x`.
|
|
95
|
+
*/
|
|
96
|
+
frame: ReadonlyMap<number, any> | null,
|
|
97
|
+
/** The anchor the owner was being evaluated at — deferred name resolution re-uses it. */
|
|
98
|
+
anchorRow: number, anchorCol: number);
|
|
99
|
+
/**
|
|
100
|
+
* Marshals this value into a {@link LambdaCallable} — how a lambda-typed parameter receives it
|
|
101
|
+
* (`TypedFunction`, design §4). The callable applies through the OWNER block's value-apply,
|
|
102
|
+
* which shares `_evaluateBody` (and the recursion budget) with the spelled `Call` path.
|
|
103
|
+
*/
|
|
104
|
+
makeCallable(): LambdaCallable;
|
|
105
|
+
get [Symbol.toStringTag](): string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* An eta-reduced function reference — `SUM` in `BYROW(r,SUM)`, on disk `_xleta.SUM` — the value a
|
|
109
|
+
* bare built-in (or UDF) name resolves to (design §1, the bare-name NODE half).
|
|
110
|
+
*
|
|
111
|
+
* @remarks
|
|
112
|
+
* Shares the `isLambda` brand: both are function values, and every non-callee consumer treats them
|
|
113
|
+
* identically (cell → `#CALC!`, coercion → `#VALUE!`). Apply dispatches to the function itself.
|
|
114
|
+
*/
|
|
115
|
+
export declare class FunctionValue {
|
|
116
|
+
/** The referenced function. */
|
|
117
|
+
readonly fn: IFunction;
|
|
118
|
+
/** @see LambdaValue.isLambda */
|
|
119
|
+
readonly isLambda: true;
|
|
120
|
+
constructor(
|
|
121
|
+
/** The referenced function. */
|
|
122
|
+
fn: IFunction);
|
|
123
|
+
/**
|
|
124
|
+
* @see LambdaValue.makeCallable
|
|
125
|
+
*
|
|
126
|
+
* Eta dispatch — `BYROW(r,SUM)`: the function's own marshalling owns arity and coercion, so
|
|
127
|
+
* `checkArity` defers (`SCAN(0,r,BYROW)` fails inside the dispatch, not before it) and a thrown
|
|
128
|
+
* arity/coercion error comes back as a value, embedding per element like any other result.
|
|
129
|
+
*/
|
|
130
|
+
makeCallable(): LambdaCallable;
|
|
131
|
+
get [Symbol.toStringTag](): string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* The sentinel apply binds for an absent or explicitly-skipped OPTIONAL parameter (design §3.5).
|
|
135
|
+
*
|
|
136
|
+
* @remarks
|
|
137
|
+
* `ISOMITTED(x)` answers TRUE for it and FALSE for everything else; EVERY other consumer reads it
|
|
138
|
+
* as BLANK. The sentinel never escapes a frame: reads coerce it to blank at the use site
|
|
139
|
+
* (`readFrameValue`), except in the argument slot of `ISOMITTED` itself. Unreachable until P2.5
|
|
140
|
+
* lands the `[b]` optional-parameter parse — no declaration can mark a parameter optional yet.
|
|
141
|
+
*/
|
|
142
|
+
export declare const OMITTED: unique symbol;
|
|
143
|
+
/**
|
|
144
|
+
* A frame read, with the OMITTED → blank rule applied — the single place the sentinel is allowed
|
|
145
|
+
* to convert, so it cannot leak (plan risk 2).
|
|
146
|
+
*/
|
|
147
|
+
export declare const readFrameValue: (value: any) => any;
|
|
148
|
+
/**
|
|
149
|
+
* The recursion budget apply enforces via `CalcScope.depth`.
|
|
150
|
+
*
|
|
151
|
+
* @remarks
|
|
152
|
+
* Excel Online configures `maxLambdaDepth: 1000` (plus a tail-call carve-out we do not implement
|
|
153
|
+
* and a separate `maxLambdaCalls: 10000`). DESKTOP measured (probe-lambda-eval block A,
|
|
154
|
+
* 2026-08-21): its cap sits between 5,000 and 100,000, and the error at it IS `#NUM!` — the
|
|
155
|
+
* error Microsoft's own LAMBDA documentation names for runaway recursion.
|
|
156
|
+
*
|
|
157
|
+
* 512 rather than Online's 1000: each apply level costs a dozen JS frames, and past ~1000 levels a
|
|
158
|
+
* BROWSER stack dies first — not as a catchable `RangeError` at the recursion site, but as
|
|
159
|
+
* arbitrary near-exhaustion failures deep inside the engine (a regex compile inside the number
|
|
160
|
+
* parser was the observed one), which inner catch sites convert to `#VALUE!` values. The budget
|
|
161
|
+
* has to keep the engine comfortably inside every platform's stack; raising it toward the measured
|
|
162
|
+
* desktop number needs the lazy-`IF` (Conditional) carve-out first, since eager `IF` makes every
|
|
163
|
+
* terminating recursion burn to this cap before unwinding.
|
|
164
|
+
*/
|
|
165
|
+
export declare const MAX_LAMBDA_DEPTH = 512;
|
|
166
|
+
//# sourceMappingURL=LambdaValue.d.ts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FormulaError, IRange } from '@sheetxl/primitives';
|
|
2
|
+
import { ISymbolRegistry } from '../symbol';
|
|
3
|
+
import { ICalculation } from '../ICalculation';
|
|
4
|
+
import { CompilerLocale } from '../compiler/CompilerLocale';
|
|
5
|
+
/**
|
|
6
|
+
* Resolves all stable IDs in a token array to their display names.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* `generateFormulaTokens` is called on an AST that has already been through
|
|
10
|
+
* `linkSymbols`, so symbol-bearing tokens carry stable UUIDs rather than the
|
|
11
|
+
* names the user typed. This function post-processes those tokens into
|
|
12
|
+
* display-safe values so callers do not need to carry the registry.
|
|
13
|
+
*
|
|
14
|
+
* When `symbols` is absent (no registry was used at compile time) the tokens
|
|
15
|
+
* already hold display names and are returned as-is.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveTokenSymbols(tokens: ICalculation.FormulaToken[], symbols: ISymbolRegistry | null | undefined, canonical?: boolean): ICalculation.FormulaToken[];
|
|
18
|
+
/**
|
|
19
|
+
* Token Utils used by FormulaBlock
|
|
20
|
+
*/
|
|
21
|
+
export declare function tokensToString(tokens: ICalculation.FormulaToken[], entireCoords: IRange.Coords, isR1C1?: boolean, rowIndex?: number, colIndex?: number, locale?: CompilerLocale): string;
|
|
22
|
+
export declare function tokensToR1C1(tokens: ICalculation.FormulaToken[], entireCoords: IRange.Coords, locale?: CompilerLocale): string;
|
|
23
|
+
export declare function tokensToA1(tokens: ICalculation.FormulaToken[], entireCoords: IRange.Coords, rowIndex?: number, colIndex?: number, locale?: CompilerLocale): string;
|
|
24
|
+
export declare function tokensToPosition(tokens: ICalculation.FormulaToken[], rowIndex?: number, colIndex?: number): ICalculation.FormulaToken[];
|
|
25
|
+
export declare function referencesToPosition(references: readonly (IRange.FixableCoords | string | FormulaError.Known)[], rowIndex?: number, colIndex?: number): (IRange.FixableCoords | string | FormulaError.Known)[];
|
|
26
|
+
//# sourceMappingURL=TokenUtils.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FormulaError, IReferenceRange, IRange, IFormulaContext } from '@sheetxl/primitives';
|
|
2
|
+
export declare const Infix: {
|
|
3
|
+
'+': (context: IFormulaContext, valueA: any, valueB: any) => number | IRange | FormulaError.Known;
|
|
4
|
+
'-': (context: IFormulaContext, valueA: any, valueB: any) => number | IRange | FormulaError.Known;
|
|
5
|
+
'*': (context: IFormulaContext, valueA: any, valueB: any) => number | IRange | FormulaError.Known;
|
|
6
|
+
'/': (context: IFormulaContext, valueA: any, valueB: any) => number | IRange | FormulaError.Known;
|
|
7
|
+
'^': (context: IFormulaContext, valueA: any, valueB: any) => number | IRange | FormulaError.Known;
|
|
8
|
+
' ': (context: IFormulaContext, valueA: IReferenceRange, valueB: IReferenceRange, reuse?: IRange.Coords) => IReferenceRange | FormulaError.Known;
|
|
9
|
+
':': (context: IFormulaContext, valueA: IReferenceRange, valueB: IReferenceRange, reuse?: IRange.Coords) => IReferenceRange | FormulaError.Known;
|
|
10
|
+
'.:.': (context: IFormulaContext, valueA: IReferenceRange, valueB: IReferenceRange, reuse?: IRange.Coords) => IReferenceRange | FormulaError.Known;
|
|
11
|
+
'.:': (context: IFormulaContext, valueA: IReferenceRange, valueB: IReferenceRange, reuse?: IRange.Coords) => IReferenceRange | FormulaError.Known;
|
|
12
|
+
':.': (context: IFormulaContext, valueA: IReferenceRange, valueB: IReferenceRange, reuse?: IRange.Coords) => IReferenceRange | FormulaError.Known;
|
|
13
|
+
'&': (context: IFormulaContext, valueA: any, valueB: any) => string | IRange;
|
|
14
|
+
'=': (context: IFormulaContext, valueA: any, valueB: any) => boolean | IRange;
|
|
15
|
+
'<>': (context: IFormulaContext, valueA: any, valueB: any) => boolean | IRange;
|
|
16
|
+
'>': (context: IFormulaContext, valueA: any, valueB: any) => boolean | IRange;
|
|
17
|
+
'<': (context: IFormulaContext, valueA: any, valueB: any) => boolean | IRange;
|
|
18
|
+
'>=': (context: IFormulaContext, valueA: any, valueB: any) => boolean | IRange;
|
|
19
|
+
'<=': (context: IFormulaContext, valueA: any, valueB: any) => boolean | IRange;
|
|
20
|
+
};
|
|
21
|
+
export declare const Prefix: {
|
|
22
|
+
'-': (context: IFormulaContext, value: any) => any;
|
|
23
|
+
'+': (context: IFormulaContext, value: any) => any;
|
|
24
|
+
'@': (context: IFormulaContext, value: any) => any;
|
|
25
|
+
};
|
|
26
|
+
export declare const Postfix: {
|
|
27
|
+
'%': (context: IFormulaContext, value: any) => any;
|
|
28
|
+
'#': (context: IFormulaContext, value: any) => IReferenceRange;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=Operators.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IFunction, IFormulaContext } from '@sheetxl/primitives';
|
|
2
|
+
import { Implementations, MinifiedDeclaration, DynamicDescriptors, FunctionProvider } from '@sheetxl/scripting';
|
|
3
|
+
/**
|
|
4
|
+
* Builds the function map for a calculation: core (open-source) functions, then enterprise
|
|
5
|
+
* (default-on), then any caller-supplied {@link FunctionProvider}s. Later binders override earlier
|
|
6
|
+
* ones on name collision, so custom functions win over built-ins.
|
|
7
|
+
*/
|
|
8
|
+
export declare function initializeFunctions(getContext: () => IFormulaContext, providers?: readonly FunctionProvider[]): Map<string, IFunction>;
|
|
9
|
+
/**
|
|
10
|
+
* Load and bind functions to the mapFunctions.
|
|
11
|
+
*
|
|
12
|
+
* @param mapFunctions the map to bind functions to
|
|
13
|
+
* @param getContext a function to get the current formula context
|
|
14
|
+
* @param implementations the function module containing the actual implementations
|
|
15
|
+
* @param declarations the built-in declarations
|
|
16
|
+
* @param getDynamicDescriptors an optional function to get the dynamic descriptor module
|
|
17
|
+
* @param defaultCategory the default category to use if not specified in the declaration
|
|
18
|
+
*/
|
|
19
|
+
export declare const bindDeclarations: (mapFunctions: Map<string, IFunction>, getContext: () => IFormulaContext, implementations: Implementations, // TODO make this dynamic
|
|
20
|
+
declarations: MinifiedDeclaration, // TODO make this dynamic
|
|
21
|
+
getDynamicDescriptors?: DynamicDescriptors, defaultCategory?: string) => void;
|
|
22
|
+
//# sourceMappingURL=initializeFunctions.d.ts.map
|