@sheetxl/sdk 0.7.28-beta.4 → 0.8.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +1 -1
- package/browser/cjs/4f5eoQQfV-V7LO2_.cjs +1 -0
- package/browser/cjs/BEnEDC1m546-gzWS.cjs +1 -0
- package/browser/cjs/CwCUa4IzGNGissLL.cjs +1 -0
- package/browser/cjs/Dg3GaW0QWwnlqetX.cjs +1 -0
- package/browser/cjs/KWQPie2u7AP69web.cjs +93 -0
- package/browser/cjs/index.cjs +2 -2
- package/browser/esm/{DBIu6NUHIcxOOBQp.mjs → BJ9hcZAGY8Tj5_9L.mjs} +1 -1
- package/browser/esm/C8vpA2ZBtZf6w4nq.mjs +394 -0
- package/browser/esm/DDojiE2-oycJ7qGi.mjs +20 -0
- package/browser/esm/DEPT7zmpiMdZ-_qC.mjs +70253 -0
- package/browser/esm/DOvCi3lf49To36WP.mjs +8 -0
- package/browser/esm/{CHSahmMFYNB0Ajkf.mjs → Dq3sc4B_HQHBrT5N.mjs} +2 -2
- package/browser/esm/index.mjs +871 -696
- package/browser/esm/{CKk58ZLcrllMzfou.mjs → trwZArJQQq7K9kL7.mjs} +2 -2
- package/licenses/dependencies.txt +204 -204
- package/node/esm/CGWsQOMWdnDeF4dX.mjs +8 -0
- package/node/esm/{DUYP6faJJHCaW1Xf.mjs → CL9MI-b6D9BmtVXW.mjs} +1 -1
- package/node/esm/CressiwiIhxCVp1v.mjs +28 -0
- package/node/esm/O2cOO3xIynWUgOWe.mjs +403 -0
- package/node/esm/index.mjs +53973 -38584
- package/package.json +6 -7
- package/resources/locales/de/model.msg.json +45 -9
- package/resources/locales/en/model.msg.json +42 -9
- package/types/scripting-api.json +7093 -0
- package/types/scripting-enums.json +54 -4
- package/types/scripting.d.ts +7185 -1079
- package/types/src/anchored/AbstractAnchored.d.ts +18 -8
- package/types/src/anchored/AnchoredMap.d.ts +2 -0
- package/types/src/anchored/IAnchoredMap.d.ts +52 -4
- package/types/src/autoFill/AutoFill.d.ts +316 -32
- package/types/src/autoFill/IAutoFill.d.ts +232 -15
- package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +41 -40
- package/types/src/border/index.d.ts +1 -1
- package/types/src/calculation/Calculation.d.ts +745 -35
- package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
- package/types/src/calculation/FormulaText.d.ts +74 -0
- package/types/src/calculation/ICalculation.d.ts +318 -81
- package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
- package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
- package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
- package/types/src/calculation/TokenType.d.ts +9 -0
- package/types/src/calculation/Types.d.ts +83 -2
- package/types/src/calculation/_CloneBoundary.d.ts +80 -0
- package/types/src/calculation/compiler/ASTTypes.d.ts +58 -0
- package/types/src/calculation/compiler/CompilerUtils.d.ts +134 -12
- package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
- package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
- package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
- package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
- package/types/src/calculation/compiler/SRParser.d.ts +2 -1
- package/types/src/calculation/compiler/Types.d.ts +79 -9
- package/types/src/calculation/executor/CalcExecutor.d.ts +422 -34
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
- package/types/src/calculation/executor/CircularReference.d.ts +2 -0
- package/types/src/calculation/formula/Formula.d.ts +58 -21
- package/types/src/calculation/formula/FormulaBlock.d.ts +124 -21
- package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
- package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
- package/types/src/calculation/formula/LambdaValue.d.ts +15 -16
- package/types/src/calculation/formula/LazyValue.d.ts +96 -0
- package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
- package/types/src/calculation/formula/index.d.ts +1 -0
- package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
- package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
- package/types/src/calculation/grid/CalcGrid.d.ts +384 -158
- package/types/src/calculation/grid/CalcGridBackend.d.ts +450 -0
- package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
- package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
- package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
- package/types/src/calculation/grid/FormulaHost.d.ts +236 -0
- package/types/src/calculation/grid/ICalcGrid.d.ts +456 -143
- package/types/src/calculation/grid/_CalcRequest.d.ts +272 -0
- package/types/src/calculation/grid/index.d.ts +4 -0
- package/types/src/calculation/index.d.ts +2 -0
- package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
- package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
- package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
- package/types/src/calculation/spatial/index.d.ts +1 -0
- package/types/src/calculation/state/CalcInputs.d.ts +41 -0
- package/types/src/calculation/state/CalcNode.d.ts +160 -29
- package/types/src/calculation/state/CalcScope.d.ts +37 -0
- package/types/src/calculation/state/CalcState.d.ts +22 -1
- package/types/src/calculation/state/CalculationContext.d.ts +39 -3
- package/types/src/calculation/state/IContextContainer.d.ts +159 -26
- package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
- package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
- package/types/src/calculation/state/index.d.ts +1 -0
- package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
- package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
- package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
- package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
- package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
- package/types/src/calculation/symbol/index.d.ts +3 -2
- package/types/src/cell/ICell.d.ts +78 -23
- package/types/src/cell/ICellProtection.d.ts +50 -10
- package/types/src/cellRange/ICellRange.d.ts +368 -90
- package/types/src/cellRange/ICellRanges.d.ts +9 -7
- package/types/src/chart/Chart.d.ts +72 -2
- package/types/src/chart/ChartCollection.d.ts +26 -0
- package/types/src/chart/IChart.d.ts +162 -9
- package/types/src/chart/IChartCollection.d.ts +25 -0
- package/types/src/chart/_ChartXml.d.ts +70 -0
- package/types/src/chart/index.d.ts +1 -3
- package/types/src/collections/ArraysGrid.d.ts +1 -1
- package/types/src/collections/IGrid.d.ts +1 -1
- package/types/src/collections/ISparseGrid.d.ts +9 -0
- package/types/src/collections/ISpatialMap.d.ts +59 -21
- package/types/src/collections/ImmutableList.d.ts +28 -0
- package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
- package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
- package/types/src/collections/RepeatingList.d.ts +7 -0
- package/types/src/collections/ScalarGrid.d.ts +50 -0
- package/types/src/collections/SparseGrid.d.ts +1 -1
- package/types/src/collections/SpatialMap.d.ts +13 -21
- package/types/src/collections/Tuple.d.ts +128 -16
- package/types/src/collections/_GridUtils.d.ts +19 -6
- package/types/src/collections/_RangeSweep.d.ts +97 -0
- package/types/src/collections/_SpatialUtils.d.ts +20 -2
- package/types/src/collections/index.d.ts +1 -0
- package/types/src/comment/Comment.d.ts +159 -0
- package/types/src/comment/CommentCollection.d.ts +40 -0
- package/types/src/comment/IComment.d.ts +319 -48
- package/types/src/comment/ICommentCollection.d.ts +90 -0
- package/types/src/comment/_CommentUtils.d.ts +28 -0
- package/types/src/comment/index.d.ts +1 -0
- package/types/src/condition/AnchoredConditional.d.ts +76 -17
- package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +8 -7
- package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -1
- package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +3 -6
- package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +1 -1
- package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +7 -0
- package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +9 -0
- package/types/src/condition/Condition.d.ts +16 -0
- package/types/src/condition/ICondition.d.ts +86 -33
- package/types/src/condition/_ConditionFormula.d.ts +152 -0
- package/types/src/condition/_ConditionUtils.d.ts +73 -10
- package/types/src/conditionalFormat/ConditionalFormat.d.ts +21 -10
- package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
- package/types/src/conditionalFormat/IConditionalFormat.d.ts +5 -3
- package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
- package/types/src/dataValidation/DataValidation.d.ts +50 -3
- package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
- package/types/src/dataValidation/IDataValidation.d.ts +119 -30
- package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
- package/types/src/date/DateUtils.d.ts +20 -0
- package/types/src/date/_DateUtils.d.ts +91 -7
- package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
- package/types/src/externalBook/ExternalBookName.d.ts +96 -0
- package/types/src/externalBook/IExternalBook.d.ts +170 -18
- package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
- package/types/src/externalBook/index.d.ts +1 -0
- package/types/src/fill/IStroke.d.ts +1 -1
- package/types/src/filter/IFilter.d.ts +29 -4
- package/types/src/font/IFont.d.ts +17 -0
- package/types/src/history/IHistory.d.ts +3 -2
- package/types/src/i18n/LanguagePack.d.ts +12 -4
- package/types/src/index.d.ts +3 -0
- package/types/src/io/AbstractBackingStore.d.ts +24 -1
- package/types/src/io/ArrayBackingStore.d.ts +1 -1
- package/types/src/io/EmbeddedPart.d.ts +20 -0
- package/types/src/io/IEmbeddedPart.d.ts +63 -0
- package/types/src/io/IWorkbookIO.d.ts +185 -18
- package/types/src/io/WorkbookIO.d.ts +9 -0
- package/types/src/io/WorkbookOrigin.d.ts +20 -11
- package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
- package/types/src/io/_XmlFragment.d.ts +49 -0
- package/types/src/io/index.d.ts +1 -0
- package/types/src/lib/file/file.browser.d.ts +19 -5
- package/types/src/lib/file/file.node.d.ts +5 -0
- package/types/src/lib/utils/_Utils.d.ts +18 -0
- package/types/src/lib/utils/utils.browser.d.ts +9 -3
- package/types/src/license/license-key.d.ts +27 -0
- package/types/src/listener/IListener.d.ts +12 -7
- package/types/src/listener/ListenerEmitter.d.ts +46 -5
- package/types/src/model/AbstractModel.d.ts +14 -5
- package/types/src/movable/Control.d.ts +57 -0
- package/types/src/movable/IControl.d.ts +84 -0
- package/types/src/movable/IMovable.d.ts +23 -1
- package/types/src/movable/IMovableCollection.d.ts +2 -0
- package/types/src/movable/Movable.d.ts +4 -6
- package/types/src/movable/MovableCollection.d.ts +7 -7
- package/types/src/movable/index.d.ts +4 -0
- package/types/src/named/AbstractNamed.d.ts +1 -1
- package/types/src/named/INamed.d.ts +4 -1
- package/types/src/named/INamedCollection.d.ts +26 -0
- package/types/src/named/NamedCollection.d.ts +16 -15
- package/types/src/numFmt/BuiltInFormats.d.ts +15 -7
- package/types/src/numFmt/IFormatEngine.d.ts +2 -0
- package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
- package/types/src/person/IPerson.d.ts +99 -0
- package/types/src/person/IPersonCollection.d.ts +51 -0
- package/types/src/person/Person.d.ts +32 -0
- package/types/src/person/PersonCollection.d.ts +49 -0
- package/types/src/person/index.d.ts +3 -0
- package/types/src/picture/IPicture.d.ts +2 -0
- package/types/src/picture/Picture.d.ts +2 -0
- package/types/src/pivot/IPivotTable.d.ts +107 -0
- package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
- package/types/src/pivot/PivotTable.d.ts +57 -0
- package/types/src/pivot/PivotTableCollection.d.ts +25 -0
- package/types/src/pivot/index.d.ts +6 -0
- package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
- package/types/src/primitives/Criteria.d.ts +1 -1
- package/types/src/primitives/LambdaBrand.d.ts +21 -0
- package/types/src/primitives/PrimitiveUtils.d.ts +60 -21
- package/types/src/primitives/Range.d.ts +105 -25
- package/types/src/primitives/RangeStats.d.ts +24 -1
- package/types/src/primitives/ReferenceRange.d.ts +42 -0
- package/types/src/primitives/Runtime.d.ts +15 -2
- package/types/src/primitives/stats/FrequencyStats.d.ts +9 -0
- package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
- package/types/src/primitives/stats/SortedNumbers.d.ts +2 -0
- package/types/src/primitives/stats/index.d.ts +1 -0
- package/types/src/print/IPrint.d.ts +0 -22
- package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
- package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
- package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
- package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
- package/types/src/protection/DefaultProtection.d.ts +12 -1
- package/types/src/protection/IProtection.d.ts +36 -2
- package/types/src/reference/ReferenceUtils.d.ts +80 -0
- package/types/src/reference/index.d.ts +2 -0
- package/types/src/resource/IResource.d.ts +21 -1
- package/types/src/resource/IResourceCollection.d.ts +9 -1
- package/types/src/resource/ResourceCollection.d.ts +6 -6
- package/types/src/scripting/FunctionArguments.d.ts +22 -0
- package/types/src/scripting/FunctionCollection.d.ts +41 -11
- package/types/src/scripting/IFunctionCollection.d.ts +41 -0
- package/types/src/scripting/IModule.d.ts +25 -0
- package/types/src/scripting/IModuleCollection.d.ts +17 -0
- package/types/src/scripting/IScript.d.ts +18 -0
- package/types/src/scripting/Module.d.ts +34 -6
- package/types/src/scripting/ModuleCollection.d.ts +17 -12
- package/types/src/scripting/Runtime.d.ts +15 -0
- package/types/src/scripting/Scripts.d.ts +2 -0
- package/types/src/scripting/TypedFunction.d.ts +197 -4
- package/types/src/scripting/_FunctionIndex.d.ts +5 -0
- package/types/src/scripting/_ModuleUtils.d.ts +11 -1
- package/types/src/scripting/_ScriptUtils.d.ts +3 -0
- package/types/src/scripting/declarations.browser.d.ts +10 -0
- package/types/src/scripting/declarations.d.ts +49 -0
- package/types/src/scripting/declarations.node.d.ts +9 -0
- package/types/src/scripting/index.d.ts +3 -0
- package/types/src/selection/IRangeSelection.d.ts +9 -4
- package/types/src/selection/RangeSelection.d.ts +2 -0
- package/types/src/shape/IShape.d.ts +41 -3
- package/types/src/shape/Shape.d.ts +10 -0
- package/types/src/shape/_ShapeXml.d.ts +28 -0
- package/types/src/sheet/CellRegion.d.ts +6 -0
- package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
- package/types/src/sheet/ISheet.d.ts +224 -41
- package/types/src/sheet/ISheetCollection.d.ts +2 -5
- package/types/src/sheet/NamedCellRange.d.ts +16 -7
- package/types/src/sheet/Sheet.d.ts +757 -114
- package/types/src/sheet/SheetCell.d.ts +81 -21
- package/types/src/sheet/SheetCollection.d.ts +19 -8
- package/types/src/sheet/SheetRange.d.ts +65 -14
- package/types/src/sheet/SheetRanges.d.ts +4 -6
- package/types/src/sheet/_CellBuffer.d.ts +214 -0
- package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
- package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
- package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
- package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
- package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
- package/types/src/sheet/_SheetAutoFitUtils.d.ts +28 -0
- package/types/src/sheet/_SheetEvents.d.ts +43 -0
- package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
- package/types/src/sheet/_SheetIntents.d.ts +250 -0
- package/types/src/sheet/_SheetMutations.d.ts +179 -59
- package/types/src/sheet/_SheetStateReader.d.ts +16 -10
- package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
- package/types/src/sheet/_SheetUtils.d.ts +2 -18
- package/types/src/sheet/_WatchAnchor.d.ts +93 -0
- package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
- package/types/src/sheet/spatial/index.d.ts +1 -0
- package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
- package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
- package/types/src/sheet/style/_Resolvers.d.ts +5 -3
- package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
- package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
- package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
- package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
- package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
- package/types/src/sheetView/ISheetView.d.ts +45 -1
- package/types/src/sheetView/SheetView.d.ts +11 -0
- package/types/src/slicer/ISlicer.d.ts +2 -0
- package/types/src/slicer/Slicer.d.ts +2 -0
- package/types/src/sort/ISort.d.ts +2 -0
- package/types/src/string/IStringCollection.d.ts +5 -0
- package/types/src/string/StringCollection.d.ts +6 -6
- package/types/src/style/INamedStyleCollection.d.ts +72 -0
- package/types/src/style/IStyle.d.ts +30 -10
- package/types/src/style/IStyleCollection.d.ts +63 -42
- package/types/src/style/ITableStyleCollection.d.ts +89 -0
- package/types/src/style/NamedStyleCollection.d.ts +39 -0
- package/types/src/style/StyleCollection.d.ts +41 -5
- package/types/src/style/TableStyleCollection.d.ts +49 -0
- package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
- package/types/src/style/index.d.ts +4 -0
- package/types/src/table/AnchoredTable.d.ts +644 -68
- package/types/src/table/AutoTable.d.ts +5 -5
- package/types/src/table/ITable.d.ts +228 -30
- package/types/src/table/ITableCollection.d.ts +2 -0
- package/types/src/table/TableCollection.d.ts +19 -8
- package/types/src/table/_FilterField.d.ts +7 -5
- package/types/src/table/_NamedTable.d.ts +17 -1
- package/types/src/table/_NamedTableSource.d.ts +1 -0
- package/types/src/table/_SortField.d.ts +2 -0
- package/types/src/table/_TableColumn.d.ts +13 -2
- package/types/src/table/_TableMessages.d.ts +1 -0
- package/types/src/table/_TableUtils.d.ts +40 -0
- package/types/src/text/Bullet.d.ts +4 -0
- package/types/src/text/ITextFrame.d.ts +25 -1
- package/types/src/text/TextBoxAlignment.d.ts +15 -6
- package/types/src/text/TextFrame.d.ts +4 -0
- package/types/src/text/TextLine.d.ts +4 -0
- package/types/src/text/TextParagraph.d.ts +4 -0
- package/types/src/text/TextRun.d.ts +9 -0
- package/types/src/text/TextStacked.d.ts +83 -0
- package/types/src/text/index.d.ts +1 -0
- package/types/src/theme/ITheme.d.ts +2 -0
- package/types/src/theme/IThemeCollection.d.ts +2 -0
- package/types/src/theme/ThemeCollection.d.ts +8 -7
- package/types/src/transaction/ITransaction.d.ts +238 -36
- package/types/src/transaction/Transaction.d.ts +99 -11
- package/types/src/type/AbstractCollection.d.ts +101 -0
- package/types/src/type/ICollection.d.ts +117 -0
- package/types/src/type/ITypes.d.ts +9 -7
- package/types/src/type/index.d.ts +1 -0
- package/types/src/utils/_CSSUtils.d.ts +3 -3
- package/types/src/workbook/IWorkbook.d.ts +171 -40
- package/types/src/workbook/Workbook.d.ts +103 -7
- package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
- package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
- package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
- package/types/src/workbookView/IWorkbookView.d.ts +12 -0
- package/types/src/workbookView/WorkbookView.d.ts +5 -0
- package/browser/cjs/BF14ZEAnaqxXroSj.cjs +0 -1
- package/browser/cjs/BXtvdT1Z-MsB_o5F.cjs +0 -1
- package/browser/cjs/Bc4JjVVZfFo3R4He.cjs +0 -33
- package/browser/cjs/CD2RXdnfqSYNc6gX.cjs +0 -57
- package/browser/cjs/DcLpXGexEtOxi-dD.cjs +0 -1
- package/browser/esm/0Mj5WKM362q6CECb.mjs +0 -824
- package/browser/esm/CPTtL2f6_4iblmFM.mjs +0 -4436
- package/browser/esm/CoA-sUxjiIUIpTUF.mjs +0 -109
- package/browser/esm/Dy4Sdpju1T2icURu.mjs +0 -50854
- package/node/esm/BtGxbEbBm79YvF_k.mjs +0 -843
- package/node/esm/DqgWsVXROpSgKq6c.mjs +0 -114
- package/types/src/cellRange/_GraphNode.d.ts +0 -38
- package/types/src/dataValidation/_Utils.d.ts +0 -10
- package/types/src/sheet/listener/RangesListener.d.ts +0 -32
- package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
- package/types/src/sheet/listener/index.d.ts +0 -3
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { IRange, Scalar } from '@sheetxl/primitives';
|
|
2
|
+
import { ITransaction } from '../transaction';
|
|
3
|
+
import { ICellRanges, ICellRange } from '../cellRange';
|
|
4
|
+
import { ICalculation } from '../calculation/ICalculation';
|
|
5
|
+
import { FormulaHost } from '../calculation/grid';
|
|
6
|
+
/**
|
|
7
|
+
* What a condition formula needs from the rule that owns it: the engine to compile with, and the
|
|
8
|
+
* cell — and sheet — its text is authored at.
|
|
9
|
+
*/
|
|
10
|
+
export interface ConditionFormulaBinding {
|
|
11
|
+
getCalculation(): ICalculation | null;
|
|
12
|
+
getAnchor(): IRange.CellCoords | null;
|
|
13
|
+
/** The display name of the sheet the rule is on. */
|
|
14
|
+
getScope(): string | null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* `text` (as a view images it at `at`) imaged through `transform`, or the text itself when there
|
|
18
|
+
* is no transform, the text does not parse, or the transform changes nothing.
|
|
19
|
+
*/
|
|
20
|
+
export declare function imageTransformed(text: string, at: IRange.CellCoords, transform: ICalculation.FormulaTransform | undefined): string;
|
|
21
|
+
/** Drops the qualifier from a cell reference to `sheetName`, so it reads as authored on that sheet. */
|
|
22
|
+
export declare function unqualifyTransform(sheetName: string): ICalculation.FormulaTransform;
|
|
23
|
+
/**
|
|
24
|
+
* Compiles storage `text` at `anchor`, or `null` when the engine cannot compile yet.
|
|
25
|
+
*/
|
|
26
|
+
export declare function createStoredFormula(calculation: ICalculation, text: string, anchor: Partial<IRange.CellCoords> | null): ICalculation.IFormula | null;
|
|
27
|
+
/**
|
|
28
|
+
* A formula held by a condition — an `expression` param, a comparison operand, a between bound.
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* Its text is CANONICAL, and once the owning rule watches it the engine holds the body: the text is
|
|
32
|
+
* then read back from the watch's body on every access, so what the engine did to the body — a row
|
|
33
|
+
* insert, a sheet rename, an undo — is what the condition reports and what `toJSON` persists. Before
|
|
34
|
+
* that (no engine, a standalone condition) it answers from the text it was created with, and it keeps
|
|
35
|
+
* the last text the body had when the watch goes away.
|
|
36
|
+
*
|
|
37
|
+
* The rest of {@link ICalculation.IFormula} is a detached formula compiled from that text, with the
|
|
38
|
+
* storage compiler, at the rule's anchor.
|
|
39
|
+
*/
|
|
40
|
+
export declare class ConditionFormula implements ICalculation.IFormula {
|
|
41
|
+
protected _text: string;
|
|
42
|
+
protected readonly _marked: boolean;
|
|
43
|
+
protected _host: FormulaHost | null;
|
|
44
|
+
protected _binding: ConditionFormulaBinding | null;
|
|
45
|
+
protected _compiled: {
|
|
46
|
+
key: string;
|
|
47
|
+
formula: ICalculation.IFormula;
|
|
48
|
+
} | null;
|
|
49
|
+
/**
|
|
50
|
+
* @param text Canonical formula text, with or without a leading `=`.
|
|
51
|
+
* @param marked Whether the slot spells the formula with a leading `=` on the wire (a comparison
|
|
52
|
+
* operand, a between bound) or bare (an `expression` param).
|
|
53
|
+
*/
|
|
54
|
+
constructor(text: string, marked: boolean);
|
|
55
|
+
/** Whether the wire form carries the leading `=`. */
|
|
56
|
+
isMarked(): boolean;
|
|
57
|
+
/** @internal */
|
|
58
|
+
bind(binding: ConditionFormulaBinding | null): void;
|
|
59
|
+
/**
|
|
60
|
+
* Reads the text from `host`'s body from now on; `null` stops, keeping the body's last text.
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
bindHost(host: FormulaHost | null): void;
|
|
64
|
+
protected _readHost(host: FormulaHost): string | null;
|
|
65
|
+
/** The transform the body's text is imaged through; see {@link _readHost}. */
|
|
66
|
+
protected _readTransform(scope: string | null): ICalculation.FormulaTransform | undefined;
|
|
67
|
+
/** The canonical text, without a leading `=`. */
|
|
68
|
+
getText(): string;
|
|
69
|
+
protected _formula(): ICalculation.IFormula | null;
|
|
70
|
+
/** {@inheritDoc ICalculation.IFormula.evaluate} */
|
|
71
|
+
evaluate(options?: number | ICalculation.EvaluateOptions): Promise<Scalar | IRange>;
|
|
72
|
+
/** {@inheritDoc ICalculation.IFormula.getCalculationStatus} */
|
|
73
|
+
getCalculationStatus(): ICalculation.ResultStatus;
|
|
74
|
+
/** {@inheritDoc ICalculation.IFormula.isCompiled} */
|
|
75
|
+
isCompiled(): boolean;
|
|
76
|
+
/** {@inheritDoc ICalculation.IFormula.getExpression} */
|
|
77
|
+
getExpression(options?: ICalculation.FormulaTextOptions): string;
|
|
78
|
+
/** {@inheritDoc ICalculation.IFormula.getAnchor} */
|
|
79
|
+
getAnchor(): IRange.CellCoords | null;
|
|
80
|
+
/** {@inheritDoc ICalculation.IFormula.shift} */
|
|
81
|
+
shift(target: IRange.CellCoords): ICalculation.IFormula | null;
|
|
82
|
+
/** {@inheritDoc ICalculation.IFormula.getReferences} */
|
|
83
|
+
getReferences(): ICellRanges | null;
|
|
84
|
+
/** {@inheritDoc ICalculation.IFormula.hasRefError} */
|
|
85
|
+
hasRefError(): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* {@inheritDoc ICalculation.IFormula.setReferenceAt}
|
|
88
|
+
*
|
|
89
|
+
* @remarks
|
|
90
|
+
* Not supported: a condition's formula changes by setting the condition.
|
|
91
|
+
*/
|
|
92
|
+
setReferenceAt(_index: number, _reference: ICellRange.Address, _options?: string | ITransaction.OperationOptions): Promise<this>;
|
|
93
|
+
/**
|
|
94
|
+
* {@inheritDoc ICalculation.IFormula.setReferenceModeAt}
|
|
95
|
+
*
|
|
96
|
+
* @remarks
|
|
97
|
+
* Not supported: a condition's formula changes by setting the condition.
|
|
98
|
+
*/
|
|
99
|
+
setReferenceModeAt(_index: number, _side?: ICalculation.ReferenceSide, _mode?: number, _options?: string | ITransaction.OperationOptions): Promise<this>;
|
|
100
|
+
/** {@inheritDoc ICalculation.IFormula.isReferenceOnly} */
|
|
101
|
+
isReferenceOnly(): boolean;
|
|
102
|
+
/** {@inheritDoc ICalculation.IFormula.isVolatile} */
|
|
103
|
+
isVolatile(): Promise<boolean>;
|
|
104
|
+
/** {@inheritDoc ICalculation.IFormula.getTokens} */
|
|
105
|
+
getTokens(evalIndex?: number): readonly ICalculation.FormulaToken[];
|
|
106
|
+
/** {@inheritDoc ICalculation.IFormula.isValid} */
|
|
107
|
+
isValid(): boolean;
|
|
108
|
+
/** {@inheritDoc ICalculation.IFormula.autoCorrect} */
|
|
109
|
+
autoCorrect(): ICalculation.IFormula | null;
|
|
110
|
+
/** The wire form: canonical text, `=`-prefixed for a marked slot. */
|
|
111
|
+
toJSON(): string;
|
|
112
|
+
/** The expression, `=`-prefixed for a marked slot. */
|
|
113
|
+
toString(): string;
|
|
114
|
+
get [Symbol.toStringTag](): string;
|
|
115
|
+
/** {@inheritDoc ICalculation.IFormula.isIFormula} */
|
|
116
|
+
get isIFormula(): true;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The source of a list condition (`inSet` with formula text for its items): a reference, a name,
|
|
120
|
+
* or a formula whose result is the list.
|
|
121
|
+
*
|
|
122
|
+
* @remarks
|
|
123
|
+
* What the rule WATCHES is not the source but the check Excel makes with it,
|
|
124
|
+
* `ISNUMBER(MATCH(<cell>, <source>, 0))`: `MATCH`'s exact mode is Excel's list-validation rule
|
|
125
|
+
* (wildcards, text case-insensitive, type strict), and as a per-cell formula it resolves a
|
|
126
|
+
* relative source (`INDIRECT($E11)`) against each cell's own row the way every condition formula
|
|
127
|
+
* does. The text this holds is still the source's: read back from the watched body with the root
|
|
128
|
+
* swapped for `MATCH`'s second argument, so a row insert above the source moves the source here
|
|
129
|
+
* as it does any condition formula.
|
|
130
|
+
*/
|
|
131
|
+
export declare class ListSourceFormula extends ConditionFormula {
|
|
132
|
+
constructor(text: string);
|
|
133
|
+
/**
|
|
134
|
+
* The per-cell check, authored at `at`: `<cell>` is `at` itself, relative, so a fill to each
|
|
135
|
+
* cell tests that cell's own value.
|
|
136
|
+
*
|
|
137
|
+
* @remarks
|
|
138
|
+
* A source that does not compile on its own fails every cell (`FALSE`) rather than being spliced
|
|
139
|
+
* in: an unclosed one (`OFFSET($A$1,0,0,3`) would take the check's own `,0))` as its arguments,
|
|
140
|
+
* and the text read back from the check would carry them.
|
|
141
|
+
*/
|
|
142
|
+
getCheckExpression(at: IRange.CellCoords): string;
|
|
143
|
+
/**
|
|
144
|
+
* Not for a source that does not compile: its check does not hold it (see
|
|
145
|
+
* {@link getCheckExpression}), so its text stays as authored.
|
|
146
|
+
*/
|
|
147
|
+
bindHost(host: FormulaHost | null): void;
|
|
148
|
+
/** {@inheritDoc ConditionFormula._readTransform} */
|
|
149
|
+
protected _readTransform(scope: string | null): ICalculation.FormulaTransform | undefined;
|
|
150
|
+
get [Symbol.toStringTag](): string;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=_ConditionFormula.d.ts.map
|
|
@@ -3,6 +3,7 @@ import { RunCoords, MaybePromise } from '@sheetxl/utils';
|
|
|
3
3
|
import { ISparseGrid } from '../collections';
|
|
4
4
|
import { ICalculation } from '../calculation';
|
|
5
5
|
import { ICondition } from './ICondition';
|
|
6
|
+
import { ConditionFormula } from './_ConditionFormula';
|
|
6
7
|
export declare class ConditionOperator<P = any> implements ICondition.IOperator<P> {
|
|
7
8
|
protected _delegate: ICondition.IOperator;
|
|
8
9
|
protected _types: readonly (InteropScalarType | null)[] | null;
|
|
@@ -48,6 +49,46 @@ export declare function encodeParamJSON(param: any): any;
|
|
|
48
49
|
* are left encoded — they decode when their own input resolves.
|
|
49
50
|
*/
|
|
50
51
|
export declare function decodeParamJSON(param: any): any;
|
|
52
|
+
/**
|
|
53
|
+
* The operators whose Scalar param may be a `=`-prefixed formula operand. The text rules
|
|
54
|
+
* (`textContains` &c.) are not among them: their param is text by type.
|
|
55
|
+
*/
|
|
56
|
+
export declare const FormulaOperandOperators: ReadonlySet<string>;
|
|
57
|
+
/**
|
|
58
|
+
* Lifts the formula slots of `param`, for `operatorName`, into {@link ConditionFormula}s: an
|
|
59
|
+
* `expression` param, a `=`-prefixed comparison operand, a between bound, and the same inside a
|
|
60
|
+
* combinator's raw children. An `IFormula` is taken by its canonical text.
|
|
61
|
+
*/
|
|
62
|
+
export declare function liftFormulaParam(operatorName: string | null | undefined, param: any): any;
|
|
63
|
+
/**
|
|
64
|
+
* Whether `text` is a list LITERAL (`"a,b,c"`): one string token, a doubled quote inside being one
|
|
65
|
+
* quote. Anything else is a reference or a formula whose result is the list.
|
|
66
|
+
*/
|
|
67
|
+
export declare function isListLiteral(text: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* The items of a list literal, or `null` when `text` is not one (see {@link isListLiteral}).
|
|
70
|
+
*
|
|
71
|
+
* @remarks
|
|
72
|
+
* Excel's reading: the string's doubled quotes become one quote, then the whole is split on `,`
|
|
73
|
+
* with no quoting inside, so `"q,r",s` is the three items `"q`, `r"` and `s`. The items are returned
|
|
74
|
+
* as stored, spaces and all; matching is {@link createListLiteralMatcher}'s business.
|
|
75
|
+
*/
|
|
76
|
+
export declare function parseListLiteral(text: string): string[] | null;
|
|
77
|
+
/**
|
|
78
|
+
* `items` spelled as a list literal (`"a,b,c"`), the inverse of {@link parseListLiteral}: items kept
|
|
79
|
+
* as given, a quote doubled. `null` when an item holds `,`, which a literal has no way to spell.
|
|
80
|
+
*/
|
|
81
|
+
export declare function formatListLiteral(items: readonly string[]): string | null;
|
|
82
|
+
/**
|
|
83
|
+
* Whether a cell's `text` is on a literal list, the way Excel checks one: the text trimmed of
|
|
84
|
+
* spaces, against each item with its LEADING spaces dropped, case-sensitively. An item with a
|
|
85
|
+
* trailing space can therefore never match, as in Excel.
|
|
86
|
+
*/
|
|
87
|
+
export declare function createListLiteralMatcher(items: readonly string[]): (text: string) => boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Visits every {@link ConditionFormula} a condition holds, at any combinator depth.
|
|
90
|
+
*/
|
|
91
|
+
export declare function forEachConditionFormula(condition: ICondition | null | undefined, visit: (formula: ConditionFormula) => void): void;
|
|
51
92
|
export declare function resolveInput(condition: ICondition.Input | null): ICondition | null;
|
|
52
93
|
/**
|
|
53
94
|
* A condition whose selector or operator is not in the registry.
|
|
@@ -99,6 +140,15 @@ export declare class UnresolvedCondition<P = any> implements ICondition<P> {
|
|
|
99
140
|
* of an exception that costs the caller the entire rule.
|
|
100
141
|
*/
|
|
101
142
|
export declare function fromJSON<P = any>(json: ICondition.JSON<P> | null | undefined): ICondition<P> | null;
|
|
143
|
+
/**
|
|
144
|
+
* Per-condition options shared by the single-condition ({@link evalConditions}) and
|
|
145
|
+
* multi-condition ({@link evalRangeConditions}) drivers.
|
|
146
|
+
*/
|
|
147
|
+
/**
|
|
148
|
+
* The condition's answer for the BLANK cells of a range, asked per cell — lazily, by the caller,
|
|
149
|
+
* for the cells it actually reads. Blank cells are never visited by the engine.
|
|
150
|
+
*/
|
|
151
|
+
export type BlankResolver = (rowIndex: number, colIndex: number) => boolean;
|
|
102
152
|
/**
|
|
103
153
|
* Iterates through all values executing a single condition (`conditions[0]`) and calling the
|
|
104
154
|
* appropriate callbacks. Used by Data Validation and Conditional Formatting.
|
|
@@ -120,7 +170,7 @@ export interface DoRunRangeConditionsOptions extends ICondition.RangeOptions {
|
|
|
120
170
|
* long-lived owner; absent for a one-shot evaluation, which leaves the operator to evaluate for
|
|
121
171
|
* itself.
|
|
122
172
|
*/
|
|
123
|
-
watchFormula?: ((
|
|
173
|
+
watchFormula?: ((formula: ICalculation.IFormula | string) => MaybePromise<IRange | null>) | null;
|
|
124
174
|
values: ISparseGrid<Scalar>;
|
|
125
175
|
coords: Readonly<IRange.Coords>;
|
|
126
176
|
getHiddenRuns?: (axis: IRange.Axis) => readonly RunCoords[];
|
|
@@ -135,6 +185,15 @@ export interface DoRunRangeConditionsOptions extends ICondition.RangeOptions {
|
|
|
135
185
|
*/
|
|
136
186
|
onHiddenRun?: (run: Readonly<RunCoords>) => void;
|
|
137
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* The `RangeOptions` a filter call means: a bare `ICondition.Input` is one condition at index 0
|
|
190
|
+
* (the JSDoc example on `ICellRange.filter`), a `RangeOptions` (identified by its `conditions`
|
|
191
|
+
* array) passes through unchanged, and nothing is an empty list.
|
|
192
|
+
*
|
|
193
|
+
* @remarks
|
|
194
|
+
* Shared by `ICellRange.filter` and `ITable.filter`, so a bare input means the same to both.
|
|
195
|
+
*/
|
|
196
|
+
export declare function normalizeFilterInput(condition: ICondition.Input | ICondition.RangeOptions | null | undefined): ICondition.RangeOptions;
|
|
138
197
|
/**
|
|
139
198
|
* Evaluates `conditions[]` in array order against the row (or column) axis, ANDing each condition
|
|
140
199
|
* into a running visibility mask — Excel's own AutoFilter model (DESIGN-FILTER.md §2): a dynamic
|
|
@@ -151,13 +210,12 @@ export declare function evalRangeConditions(options: DoRunRangeConditionsOptions
|
|
|
151
210
|
export interface DoRunConditionsOptions extends ICondition.RangeOptions {
|
|
152
211
|
runtime: IRuntime;
|
|
153
212
|
/**
|
|
154
|
-
* The calculation engine backing {@link ICondition.IContext.createFormula}
|
|
155
|
-
* {@link ICondition.IContext.
|
|
213
|
+
* The calculation engine backing {@link ICondition.IContext.createFormula} and the unwatched
|
|
214
|
+
* fallback of {@link ICondition.IContext.watchFormula}.
|
|
156
215
|
*
|
|
157
216
|
* @remarks
|
|
158
217
|
* Optional — a caller with no live workbook (e.g. a headless condition eval) simply gets a
|
|
159
|
-
* context where
|
|
160
|
-
* was implemented. See `ConditionContext.createFormula`.
|
|
218
|
+
* context where both return `null`. See `ConditionContext.createFormula`.
|
|
161
219
|
*/
|
|
162
220
|
calculation?: ICalculation | null;
|
|
163
221
|
/**
|
|
@@ -166,7 +224,7 @@ export interface DoRunConditionsOptions extends ICondition.RangeOptions {
|
|
|
166
224
|
* long-lived owner; absent for a one-shot evaluation, which leaves the operator to evaluate for
|
|
167
225
|
* itself.
|
|
168
226
|
*/
|
|
169
|
-
watchFormula?: ((
|
|
227
|
+
watchFormula?: ((formula: ICalculation.IFormula | string) => MaybePromise<IRange | null>) | null;
|
|
170
228
|
values: ISparseGrid<Scalar>;
|
|
171
229
|
coords: Readonly<IRange.Coords>;
|
|
172
230
|
getHiddenRuns?: (axis: IRange.Axis) => readonly RunCoords[];
|
|
@@ -179,12 +237,17 @@ export interface DoRunConditionsOptions extends ICondition.RangeOptions {
|
|
|
179
237
|
*/
|
|
180
238
|
onFalse?: (coords: IRange.CellCoords, value: Scalar) => void;
|
|
181
239
|
/**
|
|
182
|
-
*
|
|
240
|
+
* How to answer for the BLANK cells of `coords`, delivered ONCE per evaluation and only when
|
|
241
|
+
* the range has at least one.
|
|
183
242
|
*
|
|
184
243
|
* @remarks
|
|
185
|
-
*
|
|
186
|
-
*
|
|
244
|
+
* Blank cells are not stored and are never visited. What the caller gets is a reader to ask per
|
|
245
|
+
* cell, lazily, for the cells it actually reads — a render asks for the cells on screen — so the
|
|
246
|
+
* evaluation itself costs nothing for them however many there are. A reader rather than one
|
|
247
|
+
* precomputed answer because the answer can differ per blank: an `expression` shifts its
|
|
248
|
+
* references with the cell, so `Key!B3="#"` over an all-blank grid is TRUE in some cells and
|
|
249
|
+
* FALSE in others, and the formula's own block evaluation already holds each one.
|
|
187
250
|
*/
|
|
188
|
-
onBlank?: (
|
|
251
|
+
onBlank?: (resolve: BlankResolver) => void;
|
|
189
252
|
}
|
|
190
253
|
//# sourceMappingURL=_ConditionUtils.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IRange, Scalar } from '@sheetxl/primitives';
|
|
2
2
|
import { ReferenceableClipboard } from '@sheetxl/utils';
|
|
3
3
|
import { ITransaction } from '../transaction';
|
|
4
4
|
import { IListener } from '../listener';
|
|
@@ -6,12 +6,15 @@ import { ICellRange, ICellRanges } from '../cellRange';
|
|
|
6
6
|
import { IStyle, IStyleCollection } from '../style';
|
|
7
7
|
import { ISheet } from '../sheet';
|
|
8
8
|
import { ISparseGrid, ISpatialMap } from '../collections';
|
|
9
|
+
import { ICalculation } from '../calculation';
|
|
10
|
+
import { BlankResolver } from '../condition/_ConditionUtils';
|
|
11
|
+
import { ConditionFormula } from '../condition/_ConditionFormula';
|
|
9
12
|
import { AnchoredConditional } from '../condition/AnchoredConditional';
|
|
10
13
|
import { IConditionalFormat } from './IConditionalFormat';
|
|
11
14
|
/**
|
|
12
15
|
* Implementation of {@link IConditionalFormat}.
|
|
13
16
|
*/
|
|
14
|
-
export declare class ConditionalFormat extends AnchoredConditional<State,
|
|
17
|
+
export declare class ConditionalFormat extends AnchoredConditional<State, IConditionalFormat.Events> implements IConditionalFormat {
|
|
15
18
|
protected _styles: IStyleCollection;
|
|
16
19
|
protected _stylesRemoveListener: IListener.Remove | null;
|
|
17
20
|
protected _colorScale: PreparedColorScale | null;
|
|
@@ -19,7 +22,16 @@ export declare class ConditionalFormat extends AnchoredConditional<State, Commit
|
|
|
19
22
|
protected _iconSet: PreparedIconSet | null;
|
|
20
23
|
protected _matches: ISparseGrid<boolean> | null;
|
|
21
24
|
/**
|
|
22
|
-
*
|
|
25
|
+
* How to answer for the BLANK cells, one reader per anchored area, asked per cell read. Blanks
|
|
26
|
+
* are never materialized into `_matches`: a rule over a whole empty column is one entry here,
|
|
27
|
+
* not a million there.
|
|
28
|
+
*/
|
|
29
|
+
protected _blankResolvers: {
|
|
30
|
+
area: IRange.Coords;
|
|
31
|
+
resolve: BlankResolver;
|
|
32
|
+
}[] | null;
|
|
33
|
+
/**
|
|
34
|
+
* What each `formula` stop currently resolves to, keyed by its formula — kept fresh by the
|
|
23
35
|
* watches {@link _syncStopWatches} registers, and read (never computed) while preparing a scale.
|
|
24
36
|
*
|
|
25
37
|
* @remarks
|
|
@@ -27,9 +39,10 @@ export declare class ConditionalFormat extends AnchoredConditional<State, Commit
|
|
|
27
39
|
* listener cannot see. Resolving it during the prepare therefore answered once and then aged
|
|
28
40
|
* silently; a watch is what makes it keep answering.
|
|
29
41
|
*/
|
|
30
|
-
protected _stopValues: Map<
|
|
31
|
-
/** Removes for those watches, and the (anchor,
|
|
42
|
+
protected _stopValues: Map<ICalculation.IFormula, number | null>;
|
|
43
|
+
/** Removes for those watches, the formulas they hold, and the (anchor, formulas) pair they were registered for. */
|
|
32
44
|
protected _stopWatchRemoves: IListener.Remove[] | null;
|
|
45
|
+
protected _stopWatchFormulas: ConditionFormula[] | null;
|
|
33
46
|
protected _stopWatchKey: string | null;
|
|
34
47
|
/**
|
|
35
48
|
* Which round of prepares is current. Bumped once per {@link _processValueUpdates}; a prepare
|
|
@@ -68,9 +81,9 @@ export declare class ConditionalFormat extends AnchoredConditional<State, Commit
|
|
|
68
81
|
*/
|
|
69
82
|
protected _resolveStopValues(ranges: ICellRanges, stops: IConditionalFormat.Stop[]): Promise<(number | null)[]>;
|
|
70
83
|
/**
|
|
71
|
-
* The cell a stop's formula is anchored at — the top-left of the
|
|
72
|
-
* origin an `expression` rule's relative references shift from (and the origin
|
|
73
|
-
* anchors a generated formula to).
|
|
84
|
+
* The cell a stop's formula is anchored at — the top-left of the bounding box of the rule's
|
|
85
|
+
* ranges, the same origin an `expression` rule's relative references shift from (and the origin
|
|
86
|
+
* the writer anchors a generated formula to).
|
|
74
87
|
*/
|
|
75
88
|
protected _formulaAnchor(ranges: ICellRanges): Partial<IRange.CellCoords> | null;
|
|
76
89
|
/**
|
|
@@ -173,8 +186,6 @@ interface State extends AnchoredConditional.State {
|
|
|
173
186
|
/** Opaque third-party payload. Carried, never interpreted. */
|
|
174
187
|
ext: Record<string, unknown> | null;
|
|
175
188
|
}
|
|
176
|
-
interface CommitView extends AnchoredConditional.CommitView {
|
|
177
|
-
}
|
|
178
189
|
type RGB = readonly [number, number, number];
|
|
179
190
|
interface ResolvedStop {
|
|
180
191
|
v: number;
|
|
@@ -1,20 +1,31 @@
|
|
|
1
1
|
import { ICellRanges } from '../cellRange';
|
|
2
|
+
import { ICollection, AbstractCollection } from '../type';
|
|
3
|
+
import { IListener } from '../listener';
|
|
2
4
|
import { IConditionalFormatCollection } from './IConditionalFormatCollection';
|
|
3
5
|
import { IConditionalFormat } from './IConditionalFormat';
|
|
4
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Implementation for {@link IConditionalFormatCollection}.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* A front over the sheet's own conditional-format state — the sheet keeps the store and the
|
|
11
|
+
* events, this class keeps the API. `onCollectionChange` is the sheet's
|
|
12
|
+
* `onConditionalFormatsChange`, forwarded with this collection as the source.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ConditionalFormatCollection extends AbstractCollection<IConditionalFormat, IConditionalFormatCollection.GetItemsOptions> implements IConditionalFormatCollection {
|
|
5
15
|
private _add;
|
|
6
16
|
private _get;
|
|
7
17
|
private _createItem;
|
|
8
|
-
|
|
18
|
+
private _addListeners;
|
|
19
|
+
constructor(add: (address: ICellRanges.Address | IConditionalFormat, options?: IConditionalFormatCollection.AddOptions) => IConditionalFormat, get: (address: ICellRanges.Address | null | undefined, ignoreHidden?: boolean, fullyContained?: boolean) => IConditionalFormat[], createItem: (template?: IConditionalFormat | null) => IConditionalFormat, addListeners: (listeners: ICollection.IListeners, options?: IListener.Options) => IListener.Remove);
|
|
9
20
|
/** {@inheritDoc IConditionalFormatCollection.add} */
|
|
10
21
|
add(address: ICellRanges.Address | IConditionalFormat, options?: IConditionalFormatCollection.AddOptions): IConditionalFormat;
|
|
11
|
-
/** {@inheritDoc
|
|
12
|
-
|
|
13
|
-
/** {@inheritDoc IConditionalFormatCollection.getItems} */
|
|
14
|
-
getItems(options?: IConditionalFormatCollection.GetItemsOptions): IConditionalFormat[];
|
|
22
|
+
/** {@inheritDoc AbstractCollection._getItems} */
|
|
23
|
+
protected _getItems(options?: IConditionalFormatCollection.GetItemsOptions): IConditionalFormat[];
|
|
15
24
|
/** {@inheritDoc IConditionalFormatCollection.createItem} */
|
|
16
25
|
createItem(template?: IConditionalFormat | null): IConditionalFormat;
|
|
17
|
-
/** {@inheritDoc
|
|
18
|
-
|
|
26
|
+
/** {@inheritDoc ICollection.addListeners} */
|
|
27
|
+
addListeners(listeners: ICollection.IListeners, options?: IListener.Options): IListener.Remove;
|
|
28
|
+
/** {@inheritDoc IConditionalFormatCollection.isIConditionalFormatCollection} */
|
|
29
|
+
get isIConditionalFormatCollection(): true;
|
|
19
30
|
}
|
|
20
31
|
//# sourceMappingURL=ConditionalFormatCollection.d.ts.map
|
|
@@ -6,6 +6,7 @@ import { IHistory } from '../history';
|
|
|
6
6
|
import { IAnchored } from '../anchored';
|
|
7
7
|
import { ICellRanges } from '../cellRange';
|
|
8
8
|
import { IListener } from '../listener';
|
|
9
|
+
import { ICalculation } from '../calculation';
|
|
9
10
|
import { ICondition } from '../condition';
|
|
10
11
|
import { IStyle } from '../style';
|
|
11
12
|
import { IConditionalFormatCollection } from './IConditionalFormatCollection';
|
|
@@ -241,10 +242,11 @@ export declare namespace IConditionalFormat {
|
|
|
241
242
|
* - Num: absolute number
|
|
242
243
|
* - Percent: 0..100 of min..max span
|
|
243
244
|
* - Percentile: 0..100 quantile (requires percentile stats)
|
|
244
|
-
* * For
|
|
245
|
-
* - Formula: a formula
|
|
245
|
+
* * For formulas:
|
|
246
|
+
* - Formula: a formula whose result is the threshold. Authored as formula text or an
|
|
247
|
+
* {@link ICalculation.IFormula}; a rule holds it as an `IFormula`.
|
|
246
248
|
*/
|
|
247
|
-
value?: number | string;
|
|
249
|
+
value?: number | string | ICalculation.IFormula;
|
|
248
250
|
/**
|
|
249
251
|
* Upper bound exclusivity.
|
|
250
252
|
*
|
|
@@ -27,6 +27,8 @@ export interface IConditionalFormatCollection extends ICollection<IConditionalFo
|
|
|
27
27
|
* @param template A template to use for the temporary item.
|
|
28
28
|
*/
|
|
29
29
|
createItem(template?: IConditionalFormat): IConditionalFormat;
|
|
30
|
+
/** For runtime type checking. */
|
|
31
|
+
readonly isIConditionalFormatCollection: true;
|
|
30
32
|
}
|
|
31
33
|
/**
|
|
32
34
|
* {@inheritDoc IConditionalFormatCollection}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import { IRange } from '@sheetxl/primitives';
|
|
1
2
|
import { ReferenceableClipboard } from '@sheetxl/utils';
|
|
2
3
|
import { IListener } from '../listener';
|
|
3
4
|
import { ITransaction } from '../transaction';
|
|
4
5
|
import { IGrid } from '../collections';
|
|
5
6
|
import { ICellRange } from '../cellRange';
|
|
7
|
+
import { BlankResolver } from '../condition/_ConditionUtils';
|
|
6
8
|
import { AnchoredConditional } from '../condition/AnchoredConditional';
|
|
7
9
|
import { IDataValidation } from './IDataValidation';
|
|
8
10
|
/**
|
|
9
11
|
* Implementation of {@link IDataValidation}.
|
|
10
12
|
*/
|
|
11
|
-
export declare class DataValidation extends AnchoredConditional<State,
|
|
13
|
+
export declare class DataValidation extends AnchoredConditional<State, IDataValidation.Events> implements IDataValidation {
|
|
12
14
|
/**
|
|
13
15
|
* Cache of failing cells for quick reads in {@link getAlertAt} — a plain field, NOT transactional
|
|
14
16
|
* state, mirroring ConditionalFormat's `_matches`.
|
|
@@ -20,6 +22,21 @@ export declare class DataValidation extends AnchoredConditional<State, CommitVie
|
|
|
20
22
|
* commit onto the undo stack for a change no user made.
|
|
21
23
|
*/
|
|
22
24
|
protected _results: IGrid<boolean> | null;
|
|
25
|
+
/**
|
|
26
|
+
* How the EMPTY cells answer, one reader per anchored area, or `null` when every blank passes
|
|
27
|
+
* (Ignore blank on, or no condition). Swapped with {@link _results}, never materialized into it:
|
|
28
|
+
* a whole-column rule is one entry here, not a million there.
|
|
29
|
+
*/
|
|
30
|
+
protected _blankAreas: BlankArea[] | null;
|
|
31
|
+
/**
|
|
32
|
+
* Whether the rule's answer for a blank can differ by position (it reads a formula). When it
|
|
33
|
+
* cannot, one question per area answers every blank in it.
|
|
34
|
+
*/
|
|
35
|
+
protected _blankPerCell: boolean;
|
|
36
|
+
/** {@link _blankAreas} split into disjoint pieces, built on the first count or entries read. */
|
|
37
|
+
protected _blankPieces: BlankPiece[] | null;
|
|
38
|
+
/** {@link getAlertCount}'s answer for the current results, or `null` until asked. */
|
|
39
|
+
protected _alertCount: number | null;
|
|
23
40
|
/**
|
|
24
41
|
* Which evaluation round is current. Bumped once per {@link _processValueUpdates}; a round
|
|
25
42
|
* writes its results only if it is still the newest when it finishes. Same shape and reason as
|
|
@@ -34,12 +51,33 @@ export declare class DataValidation extends AnchoredConditional<State, CommitVie
|
|
|
34
51
|
protected _getDefaultState(options: DataValidation.ConstructorOptions): Readonly<State>;
|
|
35
52
|
/** @internal */
|
|
36
53
|
protected _processValueUpdates(_range?: ICellRange | null): void;
|
|
54
|
+
/** Swaps in one evaluation's answers; everything derived from the previous ones goes with them. */
|
|
55
|
+
protected _setResults(results: IGrid<boolean> | null, blankAreas: BlankArea[] | null, blankPerCell?: boolean): void;
|
|
56
|
+
/** Whether an EMPTY cell of `areas` fails. Every area covering the cell has a say, as for values. */
|
|
57
|
+
protected _isBlankFailing(areas: readonly BlankArea[], rowIndex: number, columnIndex: number): boolean;
|
|
58
|
+
/** One area's answer for a blank. A rule reading no formula answers once for the whole area. */
|
|
59
|
+
protected _isBlankPassing(blankArea: BlankArea, rowIndex: number, columnIndex: number): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* The blank areas as disjoint pieces, each knowing every area that covers it — so an overlap is
|
|
62
|
+
* counted once and still answered by all of its rules. Disjoint areas are their own pieces.
|
|
63
|
+
*/
|
|
64
|
+
protected _getBlankPieces(): BlankPiece[];
|
|
65
|
+
/** How many cells of `coords` hold a value — off the value grid's runs, never its cells. */
|
|
66
|
+
protected _countValues(coords: IRange.Coords): number;
|
|
37
67
|
/** {@inheritDoc IDataValidation.getAlertAt} */
|
|
38
68
|
getAlertAt(rowIndex: number, columnIndex: number): boolean;
|
|
39
69
|
/** {@inheritDoc IDataValidation.getAlertEntries} */
|
|
40
70
|
getAlertEntries(options?: ICellRange.IteratorOptions): IGrid.EntryIterator<boolean>;
|
|
71
|
+
/**
|
|
72
|
+
* Each piece in axis order: its stored results and its blanks, merged as the caller reads. A
|
|
73
|
+
* piece whose blanks pass is read off the results grid alone; one whose blanks fail walks its
|
|
74
|
+
* values, yielding the gaps between them without asking; one read per cell asks per gap cell.
|
|
75
|
+
*/
|
|
76
|
+
protected _pieceEntries(pieces: readonly BlankPiece[], results: IGrid<boolean> | null, axis: IRange.Axis, reverse: boolean): Generator<IGrid.Entry<boolean>, undefined, undefined>;
|
|
41
77
|
/** {@inheritDoc IDataValidation.getAlertCount} */
|
|
42
78
|
getAlertCount(): number;
|
|
79
|
+
/** {@inheritDoc IDataValidation.getListItemsAt} */
|
|
80
|
+
getListItemsAt(rowIndex: number, columnIndex: number): Promise<readonly IDataValidation.ListItem[]>;
|
|
43
81
|
/** {@inheritDoc IDataValidation.setHideDropdown} */
|
|
44
82
|
setHideDropdown(hide: boolean, options?: ITransaction.OperationOptions): this;
|
|
45
83
|
/** {@inheritDoc IDataValidation.isHideDropdown} */
|
|
@@ -114,8 +152,17 @@ interface State extends AnchoredConditional.State {
|
|
|
114
152
|
/** Opaque third-party payload. Carried, never interpreted. */
|
|
115
153
|
ext: Record<string, unknown> | null;
|
|
116
154
|
}
|
|
117
|
-
/**
|
|
118
|
-
interface
|
|
155
|
+
/** One anchored area's reader for its empty cells. */
|
|
156
|
+
interface BlankArea {
|
|
157
|
+
area: IRange.Coords;
|
|
158
|
+
resolve: BlankResolver;
|
|
159
|
+
/** The area's one answer when it cannot vary by position; `null` until asked. */
|
|
160
|
+
passes: boolean | null;
|
|
161
|
+
}
|
|
162
|
+
/** A disjoint piece of the blank areas, with every area that covers all of it. */
|
|
163
|
+
interface BlankPiece {
|
|
164
|
+
coords: IRange.Coords;
|
|
165
|
+
areas: readonly BlankArea[];
|
|
119
166
|
}
|
|
120
167
|
export {};
|
|
121
168
|
//# sourceMappingURL=DataValidation.d.ts.map
|
|
@@ -1,20 +1,31 @@
|
|
|
1
1
|
import { ICellRanges } from '../cellRange';
|
|
2
|
+
import { ICollection, AbstractCollection } from '../type';
|
|
3
|
+
import { IListener } from '../listener';
|
|
2
4
|
import { IDataValidationCollection } from './IDataValidationCollection';
|
|
3
5
|
import { IDataValidation } from './IDataValidation';
|
|
4
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Implementation for {@link IDataValidationCollection}.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* A front over the sheet's own data-validation state — the sheet keeps the store and the
|
|
11
|
+
* events, this class keeps the API. `onCollectionChange` is the sheet's
|
|
12
|
+
* `onDataValidationsChange`, forwarded with this collection as the source.
|
|
13
|
+
*/
|
|
14
|
+
export declare class DataValidationCollection extends AbstractCollection<IDataValidation, IDataValidationCollection.GetItemsOptions> implements IDataValidationCollection {
|
|
5
15
|
private _add;
|
|
6
16
|
private _get;
|
|
7
17
|
private _createItem;
|
|
8
|
-
|
|
18
|
+
private _addListeners;
|
|
19
|
+
constructor(add: (address: ICellRanges.Address | IDataValidation, options?: IDataValidationCollection.AddOptions) => IDataValidation, get: (address: ICellRanges.Address | null | undefined, ignoreHidden?: boolean, fullyContained?: boolean) => IDataValidation[], createItem: (template?: IDataValidation | null) => IDataValidation, addListeners: (listeners: ICollection.IListeners, options?: IListener.Options) => IListener.Remove);
|
|
9
20
|
/** {@inheritDoc IDataValidationCollection.add} */
|
|
10
21
|
add(address: ICellRanges.Address | IDataValidation, options?: IDataValidationCollection.AddOptions): IDataValidation;
|
|
11
|
-
/** {@inheritDoc
|
|
12
|
-
|
|
13
|
-
/** {@inheritDoc IDataValidationCollection.
|
|
14
|
-
getItems(options?: IDataValidationCollection.GetItemsOptions): IDataValidation[];
|
|
15
|
-
/** {@inheritDoc IDataValidationCollection.getCount} */
|
|
16
|
-
getCount(): number;
|
|
17
|
-
/** {@inheritDoc IDataValidationCollection.getCount} */
|
|
22
|
+
/** {@inheritDoc AbstractCollection._getItems} */
|
|
23
|
+
protected _getItems(options?: IDataValidationCollection.GetItemsOptions): IDataValidation[];
|
|
24
|
+
/** {@inheritDoc IDataValidationCollection.createItem} */
|
|
18
25
|
createItem(template?: IDataValidation | null): IDataValidation;
|
|
26
|
+
/** {@inheritDoc ICollection.addListeners} */
|
|
27
|
+
addListeners(listeners: ICollection.IListeners, options?: IListener.Options): IListener.Remove;
|
|
28
|
+
/** {@inheritDoc IDataValidationCollection.isIDataValidationCollection} */
|
|
29
|
+
get isIDataValidationCollection(): true;
|
|
19
30
|
}
|
|
20
31
|
//# sourceMappingURL=DataValidationCollection.d.ts.map
|