@sheetxl/sdk 0.7.28-beta.4 → 0.8.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +1 -1
- package/browser/cjs/4f5eoQQfV-V7LO2_.cjs +1 -0
- package/browser/cjs/BEnEDC1m546-gzWS.cjs +1 -0
- package/browser/cjs/CwCUa4IzGNGissLL.cjs +1 -0
- package/browser/cjs/Dg3GaW0QWwnlqetX.cjs +1 -0
- package/browser/cjs/KWQPie2u7AP69web.cjs +93 -0
- package/browser/cjs/index.cjs +2 -2
- package/browser/esm/{DBIu6NUHIcxOOBQp.mjs → BJ9hcZAGY8Tj5_9L.mjs} +1 -1
- package/browser/esm/C8vpA2ZBtZf6w4nq.mjs +394 -0
- package/browser/esm/DDojiE2-oycJ7qGi.mjs +20 -0
- package/browser/esm/DEPT7zmpiMdZ-_qC.mjs +70253 -0
- package/browser/esm/DOvCi3lf49To36WP.mjs +8 -0
- package/browser/esm/{CHSahmMFYNB0Ajkf.mjs → Dq3sc4B_HQHBrT5N.mjs} +2 -2
- package/browser/esm/index.mjs +871 -696
- package/browser/esm/{CKk58ZLcrllMzfou.mjs → trwZArJQQq7K9kL7.mjs} +2 -2
- package/licenses/dependencies.txt +204 -204
- package/node/esm/CGWsQOMWdnDeF4dX.mjs +8 -0
- package/node/esm/{DUYP6faJJHCaW1Xf.mjs → CL9MI-b6D9BmtVXW.mjs} +1 -1
- package/node/esm/CressiwiIhxCVp1v.mjs +28 -0
- package/node/esm/O2cOO3xIynWUgOWe.mjs +403 -0
- package/node/esm/index.mjs +53973 -38584
- package/package.json +6 -7
- package/resources/locales/de/model.msg.json +45 -9
- package/resources/locales/en/model.msg.json +42 -9
- package/types/scripting-api.json +7093 -0
- package/types/scripting-enums.json +54 -4
- package/types/scripting.d.ts +7185 -1079
- package/types/src/anchored/AbstractAnchored.d.ts +18 -8
- package/types/src/anchored/AnchoredMap.d.ts +2 -0
- package/types/src/anchored/IAnchoredMap.d.ts +52 -4
- package/types/src/autoFill/AutoFill.d.ts +316 -32
- package/types/src/autoFill/IAutoFill.d.ts +232 -15
- package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +41 -40
- package/types/src/border/index.d.ts +1 -1
- package/types/src/calculation/Calculation.d.ts +745 -35
- package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
- package/types/src/calculation/FormulaText.d.ts +74 -0
- package/types/src/calculation/ICalculation.d.ts +318 -81
- package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
- package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
- package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
- package/types/src/calculation/TokenType.d.ts +9 -0
- package/types/src/calculation/Types.d.ts +83 -2
- package/types/src/calculation/_CloneBoundary.d.ts +80 -0
- package/types/src/calculation/compiler/ASTTypes.d.ts +58 -0
- package/types/src/calculation/compiler/CompilerUtils.d.ts +134 -12
- package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
- package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
- package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
- package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
- package/types/src/calculation/compiler/SRParser.d.ts +2 -1
- package/types/src/calculation/compiler/Types.d.ts +79 -9
- package/types/src/calculation/executor/CalcExecutor.d.ts +422 -34
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
- package/types/src/calculation/executor/CircularReference.d.ts +2 -0
- package/types/src/calculation/formula/Formula.d.ts +58 -21
- package/types/src/calculation/formula/FormulaBlock.d.ts +124 -21
- package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
- package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
- package/types/src/calculation/formula/LambdaValue.d.ts +15 -16
- package/types/src/calculation/formula/LazyValue.d.ts +96 -0
- package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
- package/types/src/calculation/formula/index.d.ts +1 -0
- package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
- package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
- package/types/src/calculation/grid/CalcGrid.d.ts +384 -158
- package/types/src/calculation/grid/CalcGridBackend.d.ts +450 -0
- package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
- package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
- package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
- package/types/src/calculation/grid/FormulaHost.d.ts +236 -0
- package/types/src/calculation/grid/ICalcGrid.d.ts +456 -143
- package/types/src/calculation/grid/_CalcRequest.d.ts +272 -0
- package/types/src/calculation/grid/index.d.ts +4 -0
- package/types/src/calculation/index.d.ts +2 -0
- package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
- package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
- package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
- package/types/src/calculation/spatial/index.d.ts +1 -0
- package/types/src/calculation/state/CalcInputs.d.ts +41 -0
- package/types/src/calculation/state/CalcNode.d.ts +160 -29
- package/types/src/calculation/state/CalcScope.d.ts +37 -0
- package/types/src/calculation/state/CalcState.d.ts +22 -1
- package/types/src/calculation/state/CalculationContext.d.ts +39 -3
- package/types/src/calculation/state/IContextContainer.d.ts +159 -26
- package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
- package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
- package/types/src/calculation/state/index.d.ts +1 -0
- package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
- package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
- package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
- package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
- package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
- package/types/src/calculation/symbol/index.d.ts +3 -2
- package/types/src/cell/ICell.d.ts +78 -23
- package/types/src/cell/ICellProtection.d.ts +50 -10
- package/types/src/cellRange/ICellRange.d.ts +368 -90
- package/types/src/cellRange/ICellRanges.d.ts +9 -7
- package/types/src/chart/Chart.d.ts +72 -2
- package/types/src/chart/ChartCollection.d.ts +26 -0
- package/types/src/chart/IChart.d.ts +162 -9
- package/types/src/chart/IChartCollection.d.ts +25 -0
- package/types/src/chart/_ChartXml.d.ts +70 -0
- package/types/src/chart/index.d.ts +1 -3
- package/types/src/collections/ArraysGrid.d.ts +1 -1
- package/types/src/collections/IGrid.d.ts +1 -1
- package/types/src/collections/ISparseGrid.d.ts +9 -0
- package/types/src/collections/ISpatialMap.d.ts +59 -21
- package/types/src/collections/ImmutableList.d.ts +28 -0
- package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
- package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
- package/types/src/collections/RepeatingList.d.ts +7 -0
- package/types/src/collections/ScalarGrid.d.ts +50 -0
- package/types/src/collections/SparseGrid.d.ts +1 -1
- package/types/src/collections/SpatialMap.d.ts +13 -21
- package/types/src/collections/Tuple.d.ts +128 -16
- package/types/src/collections/_GridUtils.d.ts +19 -6
- package/types/src/collections/_RangeSweep.d.ts +97 -0
- package/types/src/collections/_SpatialUtils.d.ts +20 -2
- package/types/src/collections/index.d.ts +1 -0
- package/types/src/comment/Comment.d.ts +159 -0
- package/types/src/comment/CommentCollection.d.ts +40 -0
- package/types/src/comment/IComment.d.ts +319 -48
- package/types/src/comment/ICommentCollection.d.ts +90 -0
- package/types/src/comment/_CommentUtils.d.ts +28 -0
- package/types/src/comment/index.d.ts +1 -0
- package/types/src/condition/AnchoredConditional.d.ts +76 -17
- package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +8 -7
- package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -1
- package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +3 -6
- package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +1 -1
- package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +7 -0
- package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +9 -0
- package/types/src/condition/Condition.d.ts +16 -0
- package/types/src/condition/ICondition.d.ts +86 -33
- package/types/src/condition/_ConditionFormula.d.ts +152 -0
- package/types/src/condition/_ConditionUtils.d.ts +73 -10
- package/types/src/conditionalFormat/ConditionalFormat.d.ts +21 -10
- package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
- package/types/src/conditionalFormat/IConditionalFormat.d.ts +5 -3
- package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
- package/types/src/dataValidation/DataValidation.d.ts +50 -3
- package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
- package/types/src/dataValidation/IDataValidation.d.ts +119 -30
- package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
- package/types/src/date/DateUtils.d.ts +20 -0
- package/types/src/date/_DateUtils.d.ts +91 -7
- package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
- package/types/src/externalBook/ExternalBookName.d.ts +96 -0
- package/types/src/externalBook/IExternalBook.d.ts +170 -18
- package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
- package/types/src/externalBook/index.d.ts +1 -0
- package/types/src/fill/IStroke.d.ts +1 -1
- package/types/src/filter/IFilter.d.ts +29 -4
- package/types/src/font/IFont.d.ts +17 -0
- package/types/src/history/IHistory.d.ts +3 -2
- package/types/src/i18n/LanguagePack.d.ts +12 -4
- package/types/src/index.d.ts +3 -0
- package/types/src/io/AbstractBackingStore.d.ts +24 -1
- package/types/src/io/ArrayBackingStore.d.ts +1 -1
- package/types/src/io/EmbeddedPart.d.ts +20 -0
- package/types/src/io/IEmbeddedPart.d.ts +63 -0
- package/types/src/io/IWorkbookIO.d.ts +185 -18
- package/types/src/io/WorkbookIO.d.ts +9 -0
- package/types/src/io/WorkbookOrigin.d.ts +20 -11
- package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
- package/types/src/io/_XmlFragment.d.ts +49 -0
- package/types/src/io/index.d.ts +1 -0
- package/types/src/lib/file/file.browser.d.ts +19 -5
- package/types/src/lib/file/file.node.d.ts +5 -0
- package/types/src/lib/utils/_Utils.d.ts +18 -0
- package/types/src/lib/utils/utils.browser.d.ts +9 -3
- package/types/src/license/license-key.d.ts +27 -0
- package/types/src/listener/IListener.d.ts +12 -7
- package/types/src/listener/ListenerEmitter.d.ts +46 -5
- package/types/src/model/AbstractModel.d.ts +14 -5
- package/types/src/movable/Control.d.ts +57 -0
- package/types/src/movable/IControl.d.ts +84 -0
- package/types/src/movable/IMovable.d.ts +23 -1
- package/types/src/movable/IMovableCollection.d.ts +2 -0
- package/types/src/movable/Movable.d.ts +4 -6
- package/types/src/movable/MovableCollection.d.ts +7 -7
- package/types/src/movable/index.d.ts +4 -0
- package/types/src/named/AbstractNamed.d.ts +1 -1
- package/types/src/named/INamed.d.ts +4 -1
- package/types/src/named/INamedCollection.d.ts +26 -0
- package/types/src/named/NamedCollection.d.ts +16 -15
- package/types/src/numFmt/BuiltInFormats.d.ts +15 -7
- package/types/src/numFmt/IFormatEngine.d.ts +2 -0
- package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
- package/types/src/person/IPerson.d.ts +99 -0
- package/types/src/person/IPersonCollection.d.ts +51 -0
- package/types/src/person/Person.d.ts +32 -0
- package/types/src/person/PersonCollection.d.ts +49 -0
- package/types/src/person/index.d.ts +3 -0
- package/types/src/picture/IPicture.d.ts +2 -0
- package/types/src/picture/Picture.d.ts +2 -0
- package/types/src/pivot/IPivotTable.d.ts +107 -0
- package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
- package/types/src/pivot/PivotTable.d.ts +57 -0
- package/types/src/pivot/PivotTableCollection.d.ts +25 -0
- package/types/src/pivot/index.d.ts +6 -0
- package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
- package/types/src/primitives/Criteria.d.ts +1 -1
- package/types/src/primitives/LambdaBrand.d.ts +21 -0
- package/types/src/primitives/PrimitiveUtils.d.ts +60 -21
- package/types/src/primitives/Range.d.ts +105 -25
- package/types/src/primitives/RangeStats.d.ts +24 -1
- package/types/src/primitives/ReferenceRange.d.ts +42 -0
- package/types/src/primitives/Runtime.d.ts +15 -2
- package/types/src/primitives/stats/FrequencyStats.d.ts +9 -0
- package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
- package/types/src/primitives/stats/SortedNumbers.d.ts +2 -0
- package/types/src/primitives/stats/index.d.ts +1 -0
- package/types/src/print/IPrint.d.ts +0 -22
- package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
- package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
- package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
- package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
- package/types/src/protection/DefaultProtection.d.ts +12 -1
- package/types/src/protection/IProtection.d.ts +36 -2
- package/types/src/reference/ReferenceUtils.d.ts +80 -0
- package/types/src/reference/index.d.ts +2 -0
- package/types/src/resource/IResource.d.ts +21 -1
- package/types/src/resource/IResourceCollection.d.ts +9 -1
- package/types/src/resource/ResourceCollection.d.ts +6 -6
- package/types/src/scripting/FunctionArguments.d.ts +22 -0
- package/types/src/scripting/FunctionCollection.d.ts +41 -11
- package/types/src/scripting/IFunctionCollection.d.ts +41 -0
- package/types/src/scripting/IModule.d.ts +25 -0
- package/types/src/scripting/IModuleCollection.d.ts +17 -0
- package/types/src/scripting/IScript.d.ts +18 -0
- package/types/src/scripting/Module.d.ts +34 -6
- package/types/src/scripting/ModuleCollection.d.ts +17 -12
- package/types/src/scripting/Runtime.d.ts +15 -0
- package/types/src/scripting/Scripts.d.ts +2 -0
- package/types/src/scripting/TypedFunction.d.ts +197 -4
- package/types/src/scripting/_FunctionIndex.d.ts +5 -0
- package/types/src/scripting/_ModuleUtils.d.ts +11 -1
- package/types/src/scripting/_ScriptUtils.d.ts +3 -0
- package/types/src/scripting/declarations.browser.d.ts +10 -0
- package/types/src/scripting/declarations.d.ts +49 -0
- package/types/src/scripting/declarations.node.d.ts +9 -0
- package/types/src/scripting/index.d.ts +3 -0
- package/types/src/selection/IRangeSelection.d.ts +9 -4
- package/types/src/selection/RangeSelection.d.ts +2 -0
- package/types/src/shape/IShape.d.ts +41 -3
- package/types/src/shape/Shape.d.ts +10 -0
- package/types/src/shape/_ShapeXml.d.ts +28 -0
- package/types/src/sheet/CellRegion.d.ts +6 -0
- package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
- package/types/src/sheet/ISheet.d.ts +224 -41
- package/types/src/sheet/ISheetCollection.d.ts +2 -5
- package/types/src/sheet/NamedCellRange.d.ts +16 -7
- package/types/src/sheet/Sheet.d.ts +757 -114
- package/types/src/sheet/SheetCell.d.ts +81 -21
- package/types/src/sheet/SheetCollection.d.ts +19 -8
- package/types/src/sheet/SheetRange.d.ts +65 -14
- package/types/src/sheet/SheetRanges.d.ts +4 -6
- package/types/src/sheet/_CellBuffer.d.ts +214 -0
- package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
- package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
- package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
- package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
- package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
- package/types/src/sheet/_SheetAutoFitUtils.d.ts +28 -0
- package/types/src/sheet/_SheetEvents.d.ts +43 -0
- package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
- package/types/src/sheet/_SheetIntents.d.ts +250 -0
- package/types/src/sheet/_SheetMutations.d.ts +179 -59
- package/types/src/sheet/_SheetStateReader.d.ts +16 -10
- package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
- package/types/src/sheet/_SheetUtils.d.ts +2 -18
- package/types/src/sheet/_WatchAnchor.d.ts +93 -0
- package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
- package/types/src/sheet/spatial/index.d.ts +1 -0
- package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
- package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
- package/types/src/sheet/style/_Resolvers.d.ts +5 -3
- package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
- package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
- package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
- package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
- package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
- package/types/src/sheetView/ISheetView.d.ts +45 -1
- package/types/src/sheetView/SheetView.d.ts +11 -0
- package/types/src/slicer/ISlicer.d.ts +2 -0
- package/types/src/slicer/Slicer.d.ts +2 -0
- package/types/src/sort/ISort.d.ts +2 -0
- package/types/src/string/IStringCollection.d.ts +5 -0
- package/types/src/string/StringCollection.d.ts +6 -6
- package/types/src/style/INamedStyleCollection.d.ts +72 -0
- package/types/src/style/IStyle.d.ts +30 -10
- package/types/src/style/IStyleCollection.d.ts +63 -42
- package/types/src/style/ITableStyleCollection.d.ts +89 -0
- package/types/src/style/NamedStyleCollection.d.ts +39 -0
- package/types/src/style/StyleCollection.d.ts +41 -5
- package/types/src/style/TableStyleCollection.d.ts +49 -0
- package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
- package/types/src/style/index.d.ts +4 -0
- package/types/src/table/AnchoredTable.d.ts +644 -68
- package/types/src/table/AutoTable.d.ts +5 -5
- package/types/src/table/ITable.d.ts +228 -30
- package/types/src/table/ITableCollection.d.ts +2 -0
- package/types/src/table/TableCollection.d.ts +19 -8
- package/types/src/table/_FilterField.d.ts +7 -5
- package/types/src/table/_NamedTable.d.ts +17 -1
- package/types/src/table/_NamedTableSource.d.ts +1 -0
- package/types/src/table/_SortField.d.ts +2 -0
- package/types/src/table/_TableColumn.d.ts +13 -2
- package/types/src/table/_TableMessages.d.ts +1 -0
- package/types/src/table/_TableUtils.d.ts +40 -0
- package/types/src/text/Bullet.d.ts +4 -0
- package/types/src/text/ITextFrame.d.ts +25 -1
- package/types/src/text/TextBoxAlignment.d.ts +15 -6
- package/types/src/text/TextFrame.d.ts +4 -0
- package/types/src/text/TextLine.d.ts +4 -0
- package/types/src/text/TextParagraph.d.ts +4 -0
- package/types/src/text/TextRun.d.ts +9 -0
- package/types/src/text/TextStacked.d.ts +83 -0
- package/types/src/text/index.d.ts +1 -0
- package/types/src/theme/ITheme.d.ts +2 -0
- package/types/src/theme/IThemeCollection.d.ts +2 -0
- package/types/src/theme/ThemeCollection.d.ts +8 -7
- package/types/src/transaction/ITransaction.d.ts +238 -36
- package/types/src/transaction/Transaction.d.ts +99 -11
- package/types/src/type/AbstractCollection.d.ts +101 -0
- package/types/src/type/ICollection.d.ts +117 -0
- package/types/src/type/ITypes.d.ts +9 -7
- package/types/src/type/index.d.ts +1 -0
- package/types/src/utils/_CSSUtils.d.ts +3 -3
- package/types/src/workbook/IWorkbook.d.ts +171 -40
- package/types/src/workbook/Workbook.d.ts +103 -7
- package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
- package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
- package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
- package/types/src/workbookView/IWorkbookView.d.ts +12 -0
- package/types/src/workbookView/WorkbookView.d.ts +5 -0
- package/browser/cjs/BF14ZEAnaqxXroSj.cjs +0 -1
- package/browser/cjs/BXtvdT1Z-MsB_o5F.cjs +0 -1
- package/browser/cjs/Bc4JjVVZfFo3R4He.cjs +0 -33
- package/browser/cjs/CD2RXdnfqSYNc6gX.cjs +0 -57
- package/browser/cjs/DcLpXGexEtOxi-dD.cjs +0 -1
- package/browser/esm/0Mj5WKM362q6CECb.mjs +0 -824
- package/browser/esm/CPTtL2f6_4iblmFM.mjs +0 -4436
- package/browser/esm/CoA-sUxjiIUIpTUF.mjs +0 -109
- package/browser/esm/Dy4Sdpju1T2icURu.mjs +0 -50854
- package/node/esm/BtGxbEbBm79YvF_k.mjs +0 -843
- package/node/esm/DqgWsVXROpSgKq6c.mjs +0 -114
- package/types/src/cellRange/_GraphNode.d.ts +0 -38
- package/types/src/dataValidation/_Utils.d.ts +0 -10
- package/types/src/sheet/listener/RangesListener.d.ts +0 -32
- package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
- package/types/src/sheet/listener/index.d.ts +0 -3
|
@@ -2,21 +2,23 @@ import { IRange, IRuntime, Scalar } from '@sheetxl/primitives';
|
|
|
2
2
|
import { MaybePromise } from '@sheetxl/utils';
|
|
3
3
|
import { IListener } from '../listener';
|
|
4
4
|
import { ITransaction } from '../transaction';
|
|
5
|
-
import { ISparseGrid } from '../collections';
|
|
5
|
+
import { Tuple, ISparseGrid } from '../collections';
|
|
6
6
|
import { ICalculation } from '../calculation';
|
|
7
7
|
import { ICellRange, ICellRanges } from '../cellRange';
|
|
8
8
|
import { ICondition } from '../condition';
|
|
9
|
+
import { ConditionFormulaBinding } from '../condition/_ConditionFormula';
|
|
9
10
|
import { IAnchored } from '../anchored';
|
|
10
11
|
import { AbstractAnchored } from '../anchored/AbstractAnchored';
|
|
11
12
|
import { Anchored } from '../anchored/Anchored';
|
|
13
|
+
import * as _ConditionUtils from '../condition/_ConditionUtils';
|
|
12
14
|
/**
|
|
13
15
|
* Implementation of {@link IDataValidation}.
|
|
14
16
|
*/
|
|
15
|
-
export declare abstract class AnchoredConditional<STATE extends AnchoredConditional.State,
|
|
17
|
+
export declare abstract class AnchoredConditional<STATE extends AnchoredConditional.State, EVENTS extends ICondition.Events = ICondition.Events, JSON = any> extends AbstractAnchored<STATE, EVENTS> implements IAnchored, ITransaction.ITransactional, IListener.ISource<IAnchored> {
|
|
16
18
|
protected _rangeListener: ICellRange.Listener | null;
|
|
17
19
|
protected _getValueGrid: () => ISparseGrid<Scalar>;
|
|
18
20
|
/**
|
|
19
|
-
* One registered watch per formula the condition asked for, keyed by
|
|
21
|
+
* One registered watch per formula the condition asked for, keyed by the formula: its remove, and
|
|
20
22
|
* the values delivered so far, indexed by anchored area.
|
|
21
23
|
*
|
|
22
24
|
* @remarks
|
|
@@ -26,7 +28,9 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
|
|
|
26
28
|
* the difference between a new formula-valued operator working automatically and needing this
|
|
27
29
|
* class edited to know about it.
|
|
28
30
|
*/
|
|
29
|
-
protected _conditionWatches: Map<string, WatchEntry>;
|
|
31
|
+
protected _conditionWatches: Map<ICalculation.IFormula | string, WatchEntry>;
|
|
32
|
+
/** What this rule's condition formulas compile with — see {@link _getFormulaBinding}. */
|
|
33
|
+
protected _formulaBinding: ConditionFormulaBinding | undefined;
|
|
30
34
|
/**
|
|
31
35
|
* The area marked stale since the last flush: `undefined` = nothing, `null` = the whole rule,
|
|
32
36
|
* a range = just that part. See {@link _markValueUpdates}.
|
|
@@ -75,10 +79,11 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
|
|
|
75
79
|
*
|
|
76
80
|
* Registered through `ICellRanges.addWatch`, which fills the expression to every area — a rule
|
|
77
81
|
* over `'C19:C23 C3:C7'` reads different cells in its second area, and only the filled form knows
|
|
78
|
-
* which. The delivery re-runs the rule; the pass after it has values.
|
|
82
|
+
* which. The delivery re-runs the rule; the pass after it has values. Evaluated as a rule's
|
|
83
|
+
* formula is (`arrayFirstCell`): each cell an array-entered formula over itself.
|
|
79
84
|
* @internal
|
|
80
85
|
*/
|
|
81
|
-
protected _watchConditionFormula(ranges: ICellRanges,
|
|
86
|
+
protected _watchConditionFormula(ranges: ICellRanges, formula: ICalculation.IFormula | string, areaIndex: number, used: Set<ICalculation.IFormula | string>): MaybePromise<IRange | null>;
|
|
82
87
|
/**
|
|
83
88
|
* Drops watches nothing asked for during the evaluation that just finished.
|
|
84
89
|
*
|
|
@@ -88,7 +93,7 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
|
|
|
88
93
|
* the pass and pruning after is what closes that.
|
|
89
94
|
* @internal
|
|
90
95
|
*/
|
|
91
|
-
protected _pruneConditionWatches(used: Set<string>): void;
|
|
96
|
+
protected _pruneConditionWatches(used: Set<ICalculation.IFormula | string>): void;
|
|
92
97
|
/** @internal */
|
|
93
98
|
protected _removeConditionWatches(): void;
|
|
94
99
|
/**
|
|
@@ -100,13 +105,35 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
|
|
|
100
105
|
* resolve. They resolve to `null` — "no values", which reads as an inert condition.
|
|
101
106
|
* @internal
|
|
102
107
|
*/
|
|
103
|
-
protected _removeConditionWatch(entry: WatchEntry): void;
|
|
108
|
+
protected _removeConditionWatch(formula: ICalculation.IFormula | string, entry: WatchEntry): void;
|
|
104
109
|
/** @internal */
|
|
105
110
|
protected _processClose(): void;
|
|
111
|
+
/**
|
|
112
|
+
* An undo or redo can hand back a different condition while no value changes, so no range
|
|
113
|
+
* listener fires to re-derive the results. Heard here, not in `_processRestoreOrRevert`: that
|
|
114
|
+
* is told of every record in the store on every undo, this only of the ones the undo changed.
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
protected _processAfterStateChange(state: STATE, commit: ITransaction.ICommit, isRevert?: boolean, isRestore?: boolean): void;
|
|
106
118
|
/** @internal */
|
|
107
119
|
protected _processAnchorCoords(): void;
|
|
120
|
+
/**
|
|
121
|
+
* Set while the container is shifting or deleting this rule, so {@link _processAnchorCoords}
|
|
122
|
+
* leaves the listener alone.
|
|
123
|
+
*
|
|
124
|
+
* @remarks
|
|
125
|
+
* Both run INSIDE the anchored map's own pass. The listener's reference lives in a map of the
|
|
126
|
+
* same kind and is moved (or dropped) by the same pass, so there is nothing to re-register - and
|
|
127
|
+
* reaching into a map that is mid-shift to do it is what used to throw.
|
|
128
|
+
* @internal
|
|
129
|
+
*/
|
|
130
|
+
protected _isContainerShifting: boolean;
|
|
131
|
+
/** @internal */
|
|
132
|
+
protected _processContainerDelete(): void;
|
|
108
133
|
/** @internal */
|
|
109
134
|
protected _processContainerShift(options: Anchored.ShiftOptions): IRange.Coords | null | void;
|
|
135
|
+
/** @internal */
|
|
136
|
+
protected _doProcessContainerShift(options: Anchored.ShiftOptions): IRange.Coords | null | void;
|
|
110
137
|
/**
|
|
111
138
|
* Whether the anchor is absolute. See {@link AbstractAnchored._isAnchorAbsolute}.
|
|
112
139
|
*
|
|
@@ -132,11 +159,19 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
|
|
|
132
159
|
setIndex(index: number): this;
|
|
133
160
|
/** {@inheritDoc ICondition.Stateful.getCondition} */
|
|
134
161
|
getCondition(): Readonly<ICondition> | null;
|
|
162
|
+
/**
|
|
163
|
+
* The engine and anchor this rule's condition formulas compile with: the rule's calculation, at
|
|
164
|
+
* the top-left of the bounding box of its ranges.
|
|
165
|
+
* @internal
|
|
166
|
+
*/
|
|
167
|
+
protected _getFormulaBinding(): ConditionFormulaBinding;
|
|
168
|
+
/** @internal */
|
|
169
|
+
protected _bindConditionFormulas(condition: ICondition | null): void;
|
|
135
170
|
/** {@inheritDoc IDataValidation.setCondition} */
|
|
136
171
|
setCondition(condition: ICondition.Input | ICondition.Predicate | string | null, options?: ITransaction.OperationOptions): this;
|
|
137
172
|
/**
|
|
138
|
-
* Rewrites the condition's anchor-relative formulas after the anchor cell (the
|
|
139
|
-
* range
|
|
173
|
+
* Rewrites the condition's anchor-relative formulas after the anchor cell (the top-left of
|
|
174
|
+
* the bounding box of every range) moves — fill semantics: relative references follow the anchor,
|
|
140
175
|
* absolute ones stay put. Excel does the same when extending a rule's applies-to moves
|
|
141
176
|
* its origin: `G5>5` on `F5:F10` becomes `G1>5` when the rule grows to `F1:F10`.
|
|
142
177
|
*
|
|
@@ -214,8 +249,6 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
|
|
|
214
249
|
* @internal
|
|
215
250
|
*/
|
|
216
251
|
protected _shiftFormulaText(text: string, from: IRange.CellCoords, to: IRange.CellCoords): string | null;
|
|
217
|
-
/** {@inheritDoc ICondition.createDefaultCondition} */
|
|
218
|
-
createDefaultCondition(): ICondition;
|
|
219
252
|
/** {@inheritDoc ICondition.Stateful.apply} */
|
|
220
253
|
apply(): void;
|
|
221
254
|
/**
|
|
@@ -229,12 +262,41 @@ export declare abstract class AnchoredConditional<STATE extends AnchoredConditio
|
|
|
229
262
|
* be answered from a single cell's value.
|
|
230
263
|
*/
|
|
231
264
|
protected _evalConditionRanges(handlers: {
|
|
232
|
-
|
|
233
|
-
|
|
265
|
+
/** `area` is the anchored area the cell belongs to — see {@link AreaResultCollector}. */
|
|
266
|
+
onTrue?: (coords: IRange.CellCoords, value: Scalar, area: IRange.Coords) => void;
|
|
267
|
+
onFalse?: (coords: IRange.CellCoords, value: Scalar, area: IRange.Coords) => void;
|
|
268
|
+
/**
|
|
269
|
+
* The answer for the BLANK cells of one anchored area, once per area — see
|
|
270
|
+
* `DoRunConditionsOptions.onBlank`. `area` is that area's coords, so a caller keeping the
|
|
271
|
+
* resolver can tell which cells it answers for.
|
|
272
|
+
*/
|
|
273
|
+
onBlank?: (resolve: _ConditionUtils.BlankResolver, area: IRange.Coords) => void;
|
|
234
274
|
}): Promise<void>;
|
|
235
275
|
get [Symbol.toStringTag](): string;
|
|
236
276
|
toString(): string;
|
|
237
277
|
}
|
|
278
|
+
/**
|
|
279
|
+
* Collects a rule's per-cell `true` results across its anchored areas into one grid.
|
|
280
|
+
*
|
|
281
|
+
* @remarks
|
|
282
|
+
* One tuple builder PER AREA. A builder takes cells in axis order, and a rule's areas are in
|
|
283
|
+
* authored order, not axis order — Excel writes `C3 C1` when it merges identical rules on save —
|
|
284
|
+
* and two areas can interleave on the major axis besides. One builder across all of them throws
|
|
285
|
+
* on the first area that runs backwards.
|
|
286
|
+
* @internal
|
|
287
|
+
*/
|
|
288
|
+
export declare class AreaResultCollector {
|
|
289
|
+
protected _isColumn: boolean;
|
|
290
|
+
protected _regions: Tuple.GridTuple<boolean>[];
|
|
291
|
+
protected _builder: Tuple.IBuilder<boolean> | null;
|
|
292
|
+
protected _area: IRange.Coords | null;
|
|
293
|
+
constructor(isColumn: boolean);
|
|
294
|
+
/** Adds a cell. Cells of one area arrive together, in axis order. */
|
|
295
|
+
push(coords: IRange.CellCoords, area: IRange.Coords): void;
|
|
296
|
+
/** The collected cells, or `null` when none were pushed. */
|
|
297
|
+
build(axis: IRange.Axis): ISparseGrid<boolean> | null;
|
|
298
|
+
protected _flush(): void;
|
|
299
|
+
}
|
|
238
300
|
/**
|
|
239
301
|
* One registered formula watch: its remove, the values delivered per area, and any resolver still
|
|
240
302
|
* waiting on an area's first delivery.
|
|
@@ -275,9 +337,6 @@ export declare namespace AnchoredConditional {
|
|
|
275
337
|
condition: ICondition | null;
|
|
276
338
|
removeListener: IListener.Remove | null;
|
|
277
339
|
}
|
|
278
|
-
/** @internal */
|
|
279
|
-
interface CommitView extends AbstractAnchored.CommitView {
|
|
280
|
-
}
|
|
281
340
|
}
|
|
282
341
|
export {};
|
|
283
342
|
//# sourceMappingURL=AnchoredConditional.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { InteropScalarType, IRange, Scalar } from '@sheetxl/primitives';
|
|
2
2
|
import { MaybePromise } from '@sheetxl/utils';
|
|
3
|
+
import { ICalculation } from '../../calculation';
|
|
3
4
|
import { ICondition } from '../ICondition';
|
|
4
5
|
/**
|
|
5
6
|
* Reads a comparison operand's value at the cell being evaluated. Built once per
|
|
@@ -42,8 +43,8 @@ export declare abstract class AbstractOperator<P> implements ICondition.IOperato
|
|
|
42
43
|
/** {@inheritDoc ICondition.doBatch} */
|
|
43
44
|
doBatch(keys: Set<any>, param: P, ctx: ICondition.IContext): MaybePromise<IRange<boolean> | null>;
|
|
44
45
|
/**
|
|
45
|
-
* Resolves a comparison operand that may be formula-valued —
|
|
46
|
-
*
|
|
46
|
+
* Resolves a comparison operand that may be formula-valued — an {@link ICalculation.IFormula}, or
|
|
47
|
+
* a string param with a leading `=` — into a per-cell {@link OperandReader}.
|
|
47
48
|
*
|
|
48
49
|
* @returns The reader, or `null` when the operand is a formula with nothing to read (no engine,
|
|
49
50
|
* an empty expression) — the caller returns a `null` predicate and the condition is inert
|
|
@@ -57,18 +58,18 @@ export declare abstract class AbstractOperator<P> implements ICondition.IOperato
|
|
|
57
58
|
* same code path.
|
|
58
59
|
*
|
|
59
60
|
* A per-cell value that is an ERROR is returned as the error — comparisons must treat it as
|
|
60
|
-
* no-match, never a throw — and warns once per predicate build. A
|
|
61
|
-
*
|
|
62
|
-
*
|
|
61
|
+
* no-match, never a throw — and warns once per predicate build. A reference operand reads its
|
|
62
|
+
* top-left: Excel does NOT implicitly intersect here (`$E$5:$F$6>10` tested `E5` for every cell;
|
|
63
|
+
* measured 2026-08-21), which is the watch's `arrayFirstCell` evaluation.
|
|
63
64
|
*/
|
|
64
|
-
protected _resolveOperand(param: Scalar | undefined, ctx: ICondition.IContext): Promise<OperandReader | null>;
|
|
65
|
+
protected _resolveOperand(param: Scalar | ICalculation.IFormula | undefined, ctx: ICondition.IContext): Promise<OperandReader | null>;
|
|
65
66
|
/**
|
|
66
67
|
* The shared predicate shape of the ordered comparisons (`greaterThan` … `before`): resolve the
|
|
67
68
|
* operand (formula or literal — see {@link _resolveOperand}), then compare per cell. An ERROR
|
|
68
69
|
* operand never matches; a `null` return means the operand could not resolve and the condition
|
|
69
70
|
* is inert.
|
|
70
71
|
*/
|
|
71
|
-
protected _createComparePredicate(param: Scalar | undefined, ctx: ICondition.IContext, compare: (value: number, operand: number) => boolean): Promise<ICondition.Predicate | null>;
|
|
72
|
+
protected _createComparePredicate(param: Scalar | ICalculation.IFormula | undefined, ctx: ICondition.IContext, compare: (value: number, operand: number) => boolean): Promise<ICondition.Predicate | null>;
|
|
72
73
|
/** {@inheritDoc ICondition.IOperator.toString} */
|
|
73
74
|
toString(param?: P, lhsSelector?: ICondition.ISelector): string | undefined;
|
|
74
75
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Scalar } from '@sheetxl/primitives';
|
|
2
|
+
import { ICalculation } from '../../calculation';
|
|
2
3
|
import { ICondition } from '../ICondition';
|
|
3
4
|
import { AbstractOperator } from './AbstractOperator';
|
|
4
5
|
export declare class EqualToOperator extends AbstractOperator<Scalar> implements ICondition.IOperator<Scalar> {
|
|
5
6
|
constructor();
|
|
6
7
|
/** {@inheritDoc ICondition.IOperator.createPredicate} */
|
|
7
|
-
createPredicate(param: Scalar, ctx: ICondition.IContext): Promise<ICondition.Predicate | null>;
|
|
8
|
+
createPredicate(param: Scalar | ICalculation.IFormula, ctx: ICondition.IContext): Promise<ICondition.Predicate | null>;
|
|
8
9
|
/** {@inheritDoc ICondition.IOperator.createDefaultParam} */
|
|
9
10
|
createDefaultParam(lhsSelector?: ICondition.ISelector): Scalar | undefined;
|
|
10
11
|
}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
+
import { ICalculation } from '../../calculation';
|
|
1
2
|
import { ICondition } from '../ICondition';
|
|
2
3
|
import { AbstractOperator } from './AbstractOperator';
|
|
3
4
|
/**
|
|
4
5
|
* Evaluates a formula expression against the value of the cell.
|
|
5
6
|
*/
|
|
6
|
-
export declare class ExpressionOperator extends AbstractOperator<string> implements ICondition.IOperator<string> {
|
|
7
|
+
export declare class ExpressionOperator extends AbstractOperator<ICalculation.IFormula | string> implements ICondition.IOperator<ICalculation.IFormula | string> {
|
|
7
8
|
constructor();
|
|
8
9
|
/** {@inheritDoc ICondition.IOperator.createDefaultParam} */
|
|
9
10
|
createDefaultParam(lhsSelector?: ICondition.ISelector): string;
|
|
10
11
|
/** {@inheritDoc ICondition.IOperator.createPredicate} */
|
|
11
|
-
createPredicate(param: string, ctx: ICondition.IContext): Promise<ICondition.Predicate | null>;
|
|
12
|
+
createPredicate(param: ICalculation.IFormula | string, ctx: ICondition.IContext): Promise<ICondition.Predicate | null>;
|
|
12
13
|
}
|
|
13
|
-
/**
|
|
14
|
-
* Creates a temporary range. This is for illustrations only.
|
|
15
|
-
*/
|
|
16
|
-
export declare const ExpressionRuleAccumulate: ICondition.IOperator<string>;
|
|
17
14
|
//# sourceMappingURL=ExpressionOperator.d.ts.map
|
|
@@ -5,7 +5,7 @@ export declare class InSetOperator extends AbstractOperator<ICondition.InSetOpti
|
|
|
5
5
|
/** {@inheritDoc ICondition.IOperator.acceptsList} */
|
|
6
6
|
acceptsList(): boolean;
|
|
7
7
|
/** {@inheritDoc ICondition.IOperator.createPredicate} */
|
|
8
|
-
createPredicate(param: ICondition.InSetOption, ctx: ICondition.IContext): ICondition.Predicate
|
|
8
|
+
createPredicate(param: ICondition.InSetOption, ctx: ICondition.IContext): ICondition.Predicate | Promise<ICondition.Predicate | null>;
|
|
9
9
|
/** {@inheritDoc ICondition.IOperator.createDefaultParam} */
|
|
10
10
|
createDefaultParam(lhsSelector?: ICondition.ISelector): ICondition.InSetOption;
|
|
11
11
|
/** {@inheritDoc ICondition.IOperator.toString} */
|
|
@@ -8,6 +8,7 @@ export declare class BaseSelector<T extends Scalar = Scalar, I extends Scalar =
|
|
|
8
8
|
protected _title: string | undefined;
|
|
9
9
|
protected _description: string | undefined;
|
|
10
10
|
protected _renderingHints: readonly string[] | null;
|
|
11
|
+
protected _defaultCondition: ICondition.DefaultCondition | null;
|
|
11
12
|
constructor(options: ConstructorOptions);
|
|
12
13
|
/** {@inheritDoc ICondition.ISelector.createTransformer} */
|
|
13
14
|
createTransformer(ctx: ICondition.IContext): MaybePromise<ICondition.Transformer<T, I> | null>;
|
|
@@ -31,6 +32,8 @@ export declare class BaseSelector<T extends Scalar = Scalar, I extends Scalar =
|
|
|
31
32
|
getDescription(): string;
|
|
32
33
|
/** {@inheritDoc ICondition.ISelector.getRenderHints} */
|
|
33
34
|
getRenderHints(): readonly string[] | null;
|
|
35
|
+
/** {@inheritDoc ICondition.ISelector.getDefaultCondition} */
|
|
36
|
+
getDefaultCondition(_context?: ICondition.DefaultConditionContext): ICondition.DefaultCondition | null;
|
|
34
37
|
}
|
|
35
38
|
export interface ConstructorOptions {
|
|
36
39
|
name: string;
|
|
@@ -39,5 +42,9 @@ export interface ConstructorOptions {
|
|
|
39
42
|
title?: string;
|
|
40
43
|
description?: string;
|
|
41
44
|
renderingHints?: string | string[];
|
|
45
|
+
/**
|
|
46
|
+
* What {@link ICondition.ISelector.getDefaultCondition} returns.
|
|
47
|
+
*/
|
|
48
|
+
defaultCondition?: ICondition.DefaultCondition | null;
|
|
42
49
|
}
|
|
43
50
|
//# sourceMappingURL=BaseSelector.d.ts.map
|
|
@@ -8,5 +8,14 @@ export declare class ListSelector<T extends Scalar = Scalar, I extends Scalar =
|
|
|
8
8
|
constructor(options: ConstructorOptions);
|
|
9
9
|
/** {@inheritDoc ICondition.IListSelector.isList} */
|
|
10
10
|
get isList(): true;
|
|
11
|
+
/**
|
|
12
|
+
* {@inheritDoc ICondition.ISelector.getDefaultCondition}
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* `inSet` over the distinct values already in the selection, sorted as a filter lists them,
|
|
16
|
+
* when there are a few, spelled as a list literal; otherwise `inSet` with no items (also when a
|
|
17
|
+
* value holds `,`, which a literal cannot). Read through the range's stats.
|
|
18
|
+
*/
|
|
19
|
+
getDefaultCondition(context?: ICondition.DefaultConditionContext): ICondition.DefaultCondition | null;
|
|
11
20
|
}
|
|
12
21
|
//# sourceMappingURL=ListSelector.d.ts.map
|
|
@@ -79,6 +79,22 @@ export declare namespace Condition {
|
|
|
79
79
|
Or: import("./BuiltInOperators/OrOperator").OrOperator;
|
|
80
80
|
Not: import("./BuiltInOperators/NotOperator").NotOperator;
|
|
81
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* The items of a list literal, the `inSet` source `'"Yes,No"'`, or `null` when the text is a
|
|
84
|
+
* reference or formula rather than a literal.
|
|
85
|
+
*
|
|
86
|
+
* @remarks
|
|
87
|
+
* Items are returned as stored, spaces included, and split on `,` with no quoting: `'"q,r",s'`
|
|
88
|
+
* is three items. See {@link ICondition.InSetOption.items} for how they match.
|
|
89
|
+
*/
|
|
90
|
+
const parseListLiteral: (text: string) => string[] | null;
|
|
91
|
+
/**
|
|
92
|
+
* Spells `items` as a list literal for {@link ICondition.InSetOption.items}: `['Yes', 'No']` is
|
|
93
|
+
* `'"Yes,No"'`.
|
|
94
|
+
*
|
|
95
|
+
* @returns The literal, or `null` when an item contains `,`, which a list literal cannot hold.
|
|
96
|
+
*/
|
|
97
|
+
const formatListLiteral: (items: readonly string[]) => string | null;
|
|
82
98
|
/**
|
|
83
99
|
* Registry for selectors (built-in + custom).
|
|
84
100
|
*
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Scalar, InteropScalar, IRange, InteropScalarType } from '@sheetxl/primitives';
|
|
2
2
|
import { MaybePromise } from '@sheetxl/utils';
|
|
3
3
|
import { IAnchored } from '../anchored';
|
|
4
|
+
import { ICellRanges } from '../cellRange';
|
|
4
5
|
import { ICalculation } from '../calculation';
|
|
5
6
|
import { IStyle } from '../style';
|
|
6
7
|
import { ParsedDateTime } from '../date/_DateUtils';
|
|
@@ -88,6 +89,10 @@ export interface ICondition<P = any> {
|
|
|
88
89
|
export declare namespace ICondition {
|
|
89
90
|
/**
|
|
90
91
|
* A single condition applied to a range.
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* A holder that must evaluate before it writes (a filter, which hides rows) returns a Promise
|
|
95
|
+
* from its writes; see {@link IFilter}.
|
|
91
96
|
*/
|
|
92
97
|
interface Stateful {
|
|
93
98
|
/**
|
|
@@ -244,7 +249,8 @@ export declare namespace ICondition {
|
|
|
244
249
|
* Evaluates a formula expression.
|
|
245
250
|
*
|
|
246
251
|
* @remarks
|
|
247
|
-
* * Accepts a
|
|
252
|
+
* * Accepts formula text or an {@link ICalculation.IFormula}; a resolved condition holds an
|
|
253
|
+
* `IFormula`.
|
|
248
254
|
*
|
|
249
255
|
* Backs conditional formatting's `expression` rule and data validation's `type="custom"`.
|
|
250
256
|
*/
|
|
@@ -300,15 +306,21 @@ export declare namespace ICondition {
|
|
|
300
306
|
*/
|
|
301
307
|
interface BetweenOption {
|
|
302
308
|
/**
|
|
303
|
-
* The lower bound value — a number, or a
|
|
304
|
-
*
|
|
309
|
+
* The lower bound value — a number, or a formula whose result is compared per cell.
|
|
310
|
+
*
|
|
311
|
+
* @remarks
|
|
312
|
+
* A formula is authored as a `=`-prefixed string or an {@link ICalculation.IFormula}; a resolved
|
|
313
|
+
* condition holds it as an `IFormula`.
|
|
305
314
|
*/
|
|
306
|
-
from: number | string;
|
|
315
|
+
from: number | string | ICalculation.IFormula;
|
|
307
316
|
/**
|
|
308
|
-
* The upper bound value — a number, or a
|
|
309
|
-
*
|
|
317
|
+
* The upper bound value — a number, or a formula whose result is compared per cell.
|
|
318
|
+
*
|
|
319
|
+
* @remarks
|
|
320
|
+
* A formula is authored as a `=`-prefixed string or an {@link ICalculation.IFormula}; a resolved
|
|
321
|
+
* condition holds it as an `IFormula`.
|
|
310
322
|
*/
|
|
311
|
-
to: number | string;
|
|
323
|
+
to: number | string | ICalculation.IFormula;
|
|
312
324
|
}
|
|
313
325
|
interface ColorOption {
|
|
314
326
|
/**
|
|
@@ -437,10 +449,21 @@ export declare namespace ICondition {
|
|
|
437
449
|
*/
|
|
438
450
|
blank?: boolean;
|
|
439
451
|
/**
|
|
440
|
-
*
|
|
452
|
+
* The values that match: an array, or a list validation's source as formula text.
|
|
441
453
|
*
|
|
442
454
|
* @remarks
|
|
443
|
-
*
|
|
455
|
+
* A string is formula text in the typed-slot convention: bare, without a leading `=`.
|
|
456
|
+
*
|
|
457
|
+
* - A quoted literal, `"Yes,No"`, lists its items. They match as Excel matches a literal list:
|
|
458
|
+
* the value's text, trimmed, against each item without its leading spaces, case-sensitively.
|
|
459
|
+
* - Anything else, `$A$1:$A$5`, `Sheet2!$A$1:$A$9`, `MyList`, `OFFSET(...)`, `INDIRECT($E1)`,
|
|
460
|
+
* is a source whose result is the list. A value matches when `MATCH(value, source, 0)` finds
|
|
461
|
+
* it, which is Excel's rule for a list validation: text case-insensitively and with `*`, `?`
|
|
462
|
+
* and `~` as wildcards, numbers by value, text never equal to a number. The source is
|
|
463
|
+
* evaluated for each cell, so a relative reference gives each cell its own list, and the
|
|
464
|
+
* source follows inserts and deletes as any formula does.
|
|
465
|
+
*
|
|
466
|
+
* An array matches as a filter's list of values does.
|
|
444
467
|
*/
|
|
445
468
|
items?: Scalar[] | string;
|
|
446
469
|
/**
|
|
@@ -611,10 +634,11 @@ export declare namespace ICondition {
|
|
|
611
634
|
*/
|
|
612
635
|
createFormula(expression: string, coords?: IRange.CellCoords | null): ICalculation.IFormula | null;
|
|
613
636
|
/**
|
|
614
|
-
* Declares that this condition depends on `
|
|
637
|
+
* Declares that this condition depends on `formula`, and resolves to its values across
|
|
615
638
|
* {@link getCoords}.
|
|
616
639
|
*
|
|
617
|
-
* @param
|
|
640
|
+
* @param formula The formula this operator needs — the param's {@link ICalculation.IFormula},
|
|
641
|
+
* or formula text as authored.
|
|
618
642
|
*
|
|
619
643
|
* @returns One value per cell of {@link getCoords}, read with LOCAL coordinates
|
|
620
644
|
* (`getValueAt(0, 0)` is the coords' top-left), or `null` when there is no engine to
|
|
@@ -634,25 +658,7 @@ export declare namespace ICondition {
|
|
|
634
658
|
* - A one-shot caller (`Range.filter()`) has no lifetime to keep fresh, so it simply evaluates
|
|
635
659
|
* once and resolves. Correct there, and identical from here.
|
|
636
660
|
*/
|
|
637
|
-
watchFormula(
|
|
638
|
-
/**
|
|
639
|
-
* Resolves a formula string or scalar value to its evaluated result.
|
|
640
|
-
*
|
|
641
|
-
* @param formula A formula string (e.g., "=A1+B1") or a scalar value
|
|
642
|
-
* @returns The evaluated scalar value
|
|
643
|
-
*
|
|
644
|
-
* @remarks
|
|
645
|
-
* - Call this during `createPredicate` to resolve formula-based param
|
|
646
|
-
* - Returns immediately if value is already a scalar
|
|
647
|
-
* - Handles formula parsing, evaluation, and dependency tracking
|
|
648
|
-
* - Example: `const threshold = await ctx.resolveFormula(param);`
|
|
649
|
-
*
|
|
650
|
-
* **Why This Exists:**
|
|
651
|
-
* - Keeps operators simple - they work with values, not formulas
|
|
652
|
-
* - Centralizes formula evaluation infrastructure
|
|
653
|
-
* - Enables formula references in validation rules (e.g., "greater than A1")
|
|
654
|
-
*/
|
|
655
|
-
resolveFormula(formula: Scalar | string): Promise<Scalar>;
|
|
661
|
+
watchFormula(formula: ICalculation.IFormula | string): MaybePromise<IRange | null>;
|
|
656
662
|
}
|
|
657
663
|
/**
|
|
658
664
|
* Predicate function used to evaluate condition matches.
|
|
@@ -829,6 +835,46 @@ export declare namespace ICondition {
|
|
|
829
835
|
* * The `Boolean` operator might return `"checkbox"`.
|
|
830
836
|
*/
|
|
831
837
|
getRenderHints?(): readonly string[] | null;
|
|
838
|
+
/**
|
|
839
|
+
* The condition a user starts from on choosing this selector.
|
|
840
|
+
*
|
|
841
|
+
* @param context What the condition will apply to, when known.
|
|
842
|
+
* @returns The operator and, only where one value is plainly the right one, its param. `null`
|
|
843
|
+
* for a selector with no natural operator.
|
|
844
|
+
*
|
|
845
|
+
* @remarks
|
|
846
|
+
* An authoring UI asks for this when a user picks the selector, so the choice shows an operator
|
|
847
|
+
* at once rather than an empty condition. An omitted `param` is filled by the operator's own
|
|
848
|
+
* {@link ICondition.IOperator.createDefaultParam}; supply one only when it is the value the user
|
|
849
|
+
* would have chosen, since an invented value that is saved unnoticed is a rule nobody wrote.
|
|
850
|
+
*
|
|
851
|
+
* Read `context.ranges` through `getStats()`, never by visiting its cells: a whole column may be
|
|
852
|
+
* selected.
|
|
853
|
+
*/
|
|
854
|
+
getDefaultCondition?(context?: ICondition.DefaultConditionContext): ICondition.DefaultCondition | null;
|
|
855
|
+
}
|
|
856
|
+
/**
|
|
857
|
+
* What {@link ISelector.getDefaultCondition} may fit its default to.
|
|
858
|
+
*/
|
|
859
|
+
interface DefaultConditionContext {
|
|
860
|
+
/**
|
|
861
|
+
* The cells the condition will cover.
|
|
862
|
+
*/
|
|
863
|
+
ranges?: ICellRanges | null;
|
|
864
|
+
}
|
|
865
|
+
/**
|
|
866
|
+
* The operator and param a selector's condition starts with. See
|
|
867
|
+
* {@link ISelector.getDefaultCondition}.
|
|
868
|
+
*/
|
|
869
|
+
interface DefaultCondition<P = any> {
|
|
870
|
+
/**
|
|
871
|
+
* The operator's name.
|
|
872
|
+
*/
|
|
873
|
+
operator: string;
|
|
874
|
+
/**
|
|
875
|
+
* The operator's param. Omitted to take the operator's own default.
|
|
876
|
+
*/
|
|
877
|
+
param?: P;
|
|
832
878
|
}
|
|
833
879
|
/**
|
|
834
880
|
* A selector that operates on lists of values, such as "is in list" or "contains".
|
|
@@ -881,7 +927,8 @@ export declare namespace ICondition {
|
|
|
881
927
|
*/
|
|
882
928
|
interface RangeOptions {
|
|
883
929
|
/**
|
|
884
|
-
* The
|
|
930
|
+
* The conditions, each carrying the column (or row, per {@link axis}) it tests through
|
|
931
|
+
* {@link IndexedProperties.index}; one that omits it tests its position in the array.
|
|
885
932
|
*/
|
|
886
933
|
conditions: ICondition.Input[];
|
|
887
934
|
/**
|
|
@@ -889,9 +936,15 @@ export declare namespace ICondition {
|
|
|
889
936
|
*/
|
|
890
937
|
axis?: IRange.Axis;
|
|
891
938
|
/**
|
|
892
|
-
*
|
|
939
|
+
* Whether rows/columns already hidden take part.
|
|
893
940
|
*
|
|
894
|
-
* @
|
|
941
|
+
* @remarks
|
|
942
|
+
* For a filter (`ICellRange.filter`, `ITable.filter`) the default is `true`: an apply is a full
|
|
943
|
+
* recompute, so a row hidden by an earlier apply, or by hand, comes back when it matches.
|
|
944
|
+
* `false` pins the rows already hidden as excluded. Conditional formats and data validations
|
|
945
|
+
* default to `false` and skip hidden cells.
|
|
946
|
+
*
|
|
947
|
+
* @defaultValue `true` for a filter, `false` otherwise
|
|
895
948
|
*/
|
|
896
949
|
includeHidden?: boolean | IRange.Axis;
|
|
897
950
|
/**
|