@sheetxl/sdk 0.8.0-beta.1 → 0.8.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +1 -1
- package/browser/cjs/4f5eoQQfV-V7LO2_.cjs +1 -0
- package/browser/cjs/BEnEDC1m546-gzWS.cjs +1 -0
- package/browser/cjs/CwCUa4IzGNGissLL.cjs +1 -0
- package/browser/cjs/{a0Z-SXs_N71CtqYb.cjs → Dg3GaW0QWwnlqetX.cjs} +1 -1
- package/browser/cjs/KWQPie2u7AP69web.cjs +93 -0
- package/browser/cjs/index.cjs +2 -2
- package/browser/esm/{B0HS42a7lga1k1U_.mjs → BJ9hcZAGY8Tj5_9L.mjs} +1 -1
- package/browser/esm/C8vpA2ZBtZf6w4nq.mjs +394 -0
- package/browser/esm/DDojiE2-oycJ7qGi.mjs +20 -0
- package/browser/esm/DEPT7zmpiMdZ-_qC.mjs +70253 -0
- package/browser/esm/DOvCi3lf49To36WP.mjs +8 -0
- package/browser/esm/{uyWBMSIxMlt8n5Z3.mjs → Dq3sc4B_HQHBrT5N.mjs} +2 -2
- package/browser/esm/index.mjs +871 -696
- package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → trwZArJQQq7K9kL7.mjs} +2 -2
- package/licenses/dependencies.txt +204 -204
- package/node/esm/CGWsQOMWdnDeF4dX.mjs +8 -0
- package/node/esm/{Cku7XiUvw1xrRasi.mjs → CL9MI-b6D9BmtVXW.mjs} +1 -1
- package/node/esm/CressiwiIhxCVp1v.mjs +28 -0
- package/node/esm/O2cOO3xIynWUgOWe.mjs +403 -0
- package/node/esm/index.mjs +52356 -37345
- package/package.json +6 -7
- package/resources/locales/de/model.msg.json +45 -9
- package/resources/locales/en/model.msg.json +42 -9
- package/types/scripting-api.json +7093 -0
- package/types/scripting-enums.json +54 -8
- package/types/scripting.d.ts +7006 -1202
- package/types/src/anchored/AbstractAnchored.d.ts +18 -8
- package/types/src/anchored/AnchoredMap.d.ts +2 -0
- package/types/src/anchored/IAnchoredMap.d.ts +52 -4
- package/types/src/autoFill/AutoFill.d.ts +316 -32
- package/types/src/autoFill/IAutoFill.d.ts +232 -15
- package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +41 -40
- package/types/src/border/index.d.ts +1 -1
- package/types/src/calculation/Calculation.d.ts +740 -35
- package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
- package/types/src/calculation/FormulaText.d.ts +74 -0
- package/types/src/calculation/ICalculation.d.ts +318 -81
- package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
- package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
- package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
- package/types/src/calculation/TokenType.d.ts +9 -0
- package/types/src/calculation/Types.d.ts +83 -2
- package/types/src/calculation/_CloneBoundary.d.ts +80 -0
- package/types/src/calculation/compiler/ASTTypes.d.ts +58 -0
- package/types/src/calculation/compiler/CompilerUtils.d.ts +134 -12
- package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
- package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
- package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
- package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
- package/types/src/calculation/compiler/SRParser.d.ts +2 -1
- package/types/src/calculation/compiler/Types.d.ts +79 -9
- package/types/src/calculation/executor/CalcExecutor.d.ts +312 -33
- package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
- package/types/src/calculation/executor/CircularReference.d.ts +2 -0
- package/types/src/calculation/formula/Formula.d.ts +58 -21
- package/types/src/calculation/formula/FormulaBlock.d.ts +124 -21
- package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
- package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
- package/types/src/calculation/formula/LambdaValue.d.ts +15 -16
- package/types/src/calculation/formula/LazyValue.d.ts +96 -0
- package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
- package/types/src/calculation/formula/index.d.ts +1 -0
- package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
- package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
- package/types/src/calculation/grid/CalcGrid.d.ts +384 -158
- package/types/src/calculation/grid/CalcGridBackend.d.ts +450 -0
- package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
- package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
- package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
- package/types/src/calculation/grid/FormulaHost.d.ts +236 -0
- package/types/src/calculation/grid/ICalcGrid.d.ts +456 -143
- package/types/src/calculation/grid/_CalcRequest.d.ts +272 -0
- package/types/src/calculation/grid/index.d.ts +4 -0
- package/types/src/calculation/index.d.ts +2 -0
- package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
- package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
- package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
- package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
- package/types/src/calculation/spatial/index.d.ts +1 -0
- package/types/src/calculation/state/CalcInputs.d.ts +41 -0
- package/types/src/calculation/state/CalcNode.d.ts +141 -30
- package/types/src/calculation/state/CalcScope.d.ts +37 -0
- package/types/src/calculation/state/CalcState.d.ts +22 -1
- package/types/src/calculation/state/CalculationContext.d.ts +36 -2
- package/types/src/calculation/state/IContextContainer.d.ts +129 -27
- package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
- package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
- package/types/src/calculation/state/index.d.ts +1 -0
- package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
- package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
- package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
- package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
- package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
- package/types/src/calculation/symbol/index.d.ts +3 -2
- package/types/src/cell/ICell.d.ts +78 -23
- package/types/src/cell/ICellProtection.d.ts +50 -10
- package/types/src/cellRange/ICellRange.d.ts +329 -72
- package/types/src/cellRange/ICellRanges.d.ts +9 -7
- package/types/src/chart/Chart.d.ts +72 -2
- package/types/src/chart/ChartCollection.d.ts +26 -0
- package/types/src/chart/IChart.d.ts +162 -9
- package/types/src/chart/IChartCollection.d.ts +25 -0
- package/types/src/chart/_ChartXml.d.ts +70 -0
- package/types/src/chart/index.d.ts +1 -3
- package/types/src/collections/ArraysGrid.d.ts +1 -1
- package/types/src/collections/IGrid.d.ts +1 -1
- package/types/src/collections/ISparseGrid.d.ts +9 -0
- package/types/src/collections/ISpatialMap.d.ts +59 -21
- package/types/src/collections/ImmutableList.d.ts +28 -0
- package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
- package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
- package/types/src/collections/RepeatingList.d.ts +7 -0
- package/types/src/collections/ScalarGrid.d.ts +50 -0
- package/types/src/collections/SparseGrid.d.ts +1 -1
- package/types/src/collections/SpatialMap.d.ts +13 -21
- package/types/src/collections/Tuple.d.ts +128 -16
- package/types/src/collections/_GridUtils.d.ts +19 -6
- package/types/src/collections/_RangeSweep.d.ts +97 -0
- package/types/src/collections/_SpatialUtils.d.ts +20 -2
- package/types/src/collections/index.d.ts +1 -0
- package/types/src/comment/Comment.d.ts +159 -0
- package/types/src/comment/CommentCollection.d.ts +40 -0
- package/types/src/comment/IComment.d.ts +319 -48
- package/types/src/comment/ICommentCollection.d.ts +90 -0
- package/types/src/comment/_CommentUtils.d.ts +28 -0
- package/types/src/comment/index.d.ts +1 -0
- package/types/src/condition/AnchoredConditional.d.ts +76 -17
- package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +8 -7
- package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -1
- package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +3 -6
- package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +1 -1
- package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +7 -0
- package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +9 -0
- package/types/src/condition/Condition.d.ts +16 -0
- package/types/src/condition/ICondition.d.ts +86 -33
- package/types/src/condition/_ConditionFormula.d.ts +152 -0
- package/types/src/condition/_ConditionUtils.d.ts +73 -10
- package/types/src/conditionalFormat/ConditionalFormat.d.ts +21 -10
- package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
- package/types/src/conditionalFormat/IConditionalFormat.d.ts +5 -3
- package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
- package/types/src/dataValidation/DataValidation.d.ts +50 -3
- package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
- package/types/src/dataValidation/IDataValidation.d.ts +119 -30
- package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
- package/types/src/date/DateUtils.d.ts +20 -0
- package/types/src/date/_DateUtils.d.ts +91 -7
- package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
- package/types/src/externalBook/ExternalBookName.d.ts +96 -0
- package/types/src/externalBook/IExternalBook.d.ts +170 -18
- package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
- package/types/src/externalBook/index.d.ts +1 -0
- package/types/src/fill/IStroke.d.ts +1 -1
- package/types/src/filter/IFilter.d.ts +29 -4
- package/types/src/font/IFont.d.ts +17 -0
- package/types/src/history/IHistory.d.ts +3 -2
- package/types/src/i18n/LanguagePack.d.ts +12 -4
- package/types/src/index.d.ts +3 -0
- package/types/src/io/AbstractBackingStore.d.ts +24 -1
- package/types/src/io/ArrayBackingStore.d.ts +1 -1
- package/types/src/io/EmbeddedPart.d.ts +20 -0
- package/types/src/io/IEmbeddedPart.d.ts +63 -0
- package/types/src/io/IWorkbookIO.d.ts +185 -18
- package/types/src/io/WorkbookIO.d.ts +9 -0
- package/types/src/io/WorkbookOrigin.d.ts +20 -11
- package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
- package/types/src/io/_XmlFragment.d.ts +49 -0
- package/types/src/io/index.d.ts +1 -0
- package/types/src/lib/file/file.browser.d.ts +19 -5
- package/types/src/lib/file/file.node.d.ts +5 -0
- package/types/src/lib/utils/_Utils.d.ts +11 -0
- package/types/src/lib/utils/utils.browser.d.ts +9 -3
- package/types/src/license/license-key.d.ts +27 -0
- package/types/src/listener/IListener.d.ts +12 -7
- package/types/src/listener/ListenerEmitter.d.ts +46 -5
- package/types/src/model/AbstractModel.d.ts +14 -5
- package/types/src/movable/Control.d.ts +57 -0
- package/types/src/movable/IControl.d.ts +84 -0
- package/types/src/movable/IMovable.d.ts +23 -1
- package/types/src/movable/IMovableCollection.d.ts +2 -0
- package/types/src/movable/Movable.d.ts +4 -6
- package/types/src/movable/MovableCollection.d.ts +7 -7
- package/types/src/movable/index.d.ts +4 -0
- package/types/src/named/AbstractNamed.d.ts +1 -1
- package/types/src/named/INamed.d.ts +4 -1
- package/types/src/named/INamedCollection.d.ts +26 -0
- package/types/src/named/NamedCollection.d.ts +16 -15
- package/types/src/numFmt/BuiltInFormats.d.ts +15 -7
- package/types/src/numFmt/IFormatEngine.d.ts +2 -0
- package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
- package/types/src/person/IPerson.d.ts +99 -0
- package/types/src/person/IPersonCollection.d.ts +51 -0
- package/types/src/person/Person.d.ts +32 -0
- package/types/src/person/PersonCollection.d.ts +49 -0
- package/types/src/person/index.d.ts +3 -0
- package/types/src/picture/IPicture.d.ts +2 -0
- package/types/src/picture/Picture.d.ts +2 -0
- package/types/src/pivot/IPivotTable.d.ts +107 -0
- package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
- package/types/src/pivot/PivotTable.d.ts +57 -0
- package/types/src/pivot/PivotTableCollection.d.ts +25 -0
- package/types/src/pivot/index.d.ts +6 -0
- package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
- package/types/src/primitives/Criteria.d.ts +1 -1
- package/types/src/primitives/LambdaBrand.d.ts +21 -0
- package/types/src/primitives/PrimitiveUtils.d.ts +56 -19
- package/types/src/primitives/Range.d.ts +102 -24
- package/types/src/primitives/RangeStats.d.ts +24 -1
- package/types/src/primitives/ReferenceRange.d.ts +42 -0
- package/types/src/primitives/Runtime.d.ts +15 -2
- package/types/src/primitives/stats/FrequencyStats.d.ts +9 -0
- package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
- package/types/src/primitives/stats/SortedNumbers.d.ts +2 -0
- package/types/src/primitives/stats/index.d.ts +1 -0
- package/types/src/print/IPrint.d.ts +0 -22
- package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
- package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
- package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
- package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
- package/types/src/protection/DefaultProtection.d.ts +12 -1
- package/types/src/protection/IProtection.d.ts +36 -2
- package/types/src/reference/ReferenceUtils.d.ts +80 -0
- package/types/src/reference/index.d.ts +2 -0
- package/types/src/resource/IResource.d.ts +21 -1
- package/types/src/resource/IResourceCollection.d.ts +9 -1
- package/types/src/resource/ResourceCollection.d.ts +6 -6
- package/types/src/scripting/FunctionCollection.d.ts +41 -11
- package/types/src/scripting/IFunctionCollection.d.ts +41 -0
- package/types/src/scripting/IModule.d.ts +25 -0
- package/types/src/scripting/IModuleCollection.d.ts +17 -0
- package/types/src/scripting/IScript.d.ts +18 -0
- package/types/src/scripting/Module.d.ts +34 -6
- package/types/src/scripting/ModuleCollection.d.ts +17 -12
- package/types/src/scripting/Runtime.d.ts +15 -0
- package/types/src/scripting/Scripts.d.ts +2 -0
- package/types/src/scripting/TypedFunction.d.ts +151 -18
- package/types/src/scripting/_FunctionIndex.d.ts +5 -0
- package/types/src/scripting/_ModuleUtils.d.ts +11 -1
- package/types/src/scripting/_ScriptUtils.d.ts +3 -0
- package/types/src/scripting/declarations.browser.d.ts +10 -0
- package/types/src/scripting/declarations.d.ts +49 -0
- package/types/src/scripting/declarations.node.d.ts +9 -0
- package/types/src/scripting/index.d.ts +3 -0
- package/types/src/selection/IRangeSelection.d.ts +9 -4
- package/types/src/selection/RangeSelection.d.ts +2 -0
- package/types/src/shape/IShape.d.ts +41 -3
- package/types/src/shape/Shape.d.ts +10 -0
- package/types/src/shape/_ShapeXml.d.ts +28 -0
- package/types/src/sheet/CellRegion.d.ts +6 -0
- package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
- package/types/src/sheet/ISheet.d.ts +224 -41
- package/types/src/sheet/ISheetCollection.d.ts +2 -5
- package/types/src/sheet/NamedCellRange.d.ts +16 -7
- package/types/src/sheet/Sheet.d.ts +749 -114
- package/types/src/sheet/SheetCell.d.ts +81 -21
- package/types/src/sheet/SheetCollection.d.ts +19 -8
- package/types/src/sheet/SheetRange.d.ts +62 -14
- package/types/src/sheet/SheetRanges.d.ts +4 -6
- package/types/src/sheet/_CellBuffer.d.ts +214 -0
- package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
- package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
- package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
- package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
- package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
- package/types/src/sheet/_SheetAutoFitUtils.d.ts +2 -2
- package/types/src/sheet/_SheetEvents.d.ts +43 -0
- package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
- package/types/src/sheet/_SheetIntents.d.ts +250 -0
- package/types/src/sheet/_SheetMutations.d.ts +179 -59
- package/types/src/sheet/_SheetStateReader.d.ts +16 -10
- package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
- package/types/src/sheet/_SheetUtils.d.ts +2 -18
- package/types/src/sheet/_WatchAnchor.d.ts +93 -0
- package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
- package/types/src/sheet/spatial/index.d.ts +1 -0
- package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
- package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
- package/types/src/sheet/style/_Resolvers.d.ts +5 -3
- package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
- package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
- package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
- package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
- package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
- package/types/src/sheetView/ISheetView.d.ts +45 -1
- package/types/src/sheetView/SheetView.d.ts +11 -0
- package/types/src/slicer/ISlicer.d.ts +2 -0
- package/types/src/slicer/Slicer.d.ts +2 -0
- package/types/src/sort/ISort.d.ts +2 -0
- package/types/src/string/IStringCollection.d.ts +5 -0
- package/types/src/string/StringCollection.d.ts +6 -6
- package/types/src/style/INamedStyleCollection.d.ts +72 -0
- package/types/src/style/IStyle.d.ts +30 -10
- package/types/src/style/IStyleCollection.d.ts +63 -42
- package/types/src/style/ITableStyleCollection.d.ts +89 -0
- package/types/src/style/NamedStyleCollection.d.ts +39 -0
- package/types/src/style/StyleCollection.d.ts +41 -5
- package/types/src/style/TableStyleCollection.d.ts +49 -0
- package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
- package/types/src/style/index.d.ts +4 -0
- package/types/src/table/AnchoredTable.d.ts +644 -68
- package/types/src/table/AutoTable.d.ts +5 -5
- package/types/src/table/ITable.d.ts +228 -30
- package/types/src/table/ITableCollection.d.ts +2 -0
- package/types/src/table/TableCollection.d.ts +19 -8
- package/types/src/table/_FilterField.d.ts +7 -5
- package/types/src/table/_NamedTable.d.ts +17 -1
- package/types/src/table/_NamedTableSource.d.ts +1 -0
- package/types/src/table/_SortField.d.ts +2 -0
- package/types/src/table/_TableColumn.d.ts +13 -2
- package/types/src/table/_TableMessages.d.ts +1 -0
- package/types/src/table/_TableUtils.d.ts +40 -0
- package/types/src/text/Bullet.d.ts +4 -0
- package/types/src/text/ITextFrame.d.ts +25 -1
- package/types/src/text/TextBoxAlignment.d.ts +15 -6
- package/types/src/text/TextFrame.d.ts +4 -0
- package/types/src/text/TextLine.d.ts +4 -0
- package/types/src/text/TextParagraph.d.ts +4 -0
- package/types/src/text/TextRun.d.ts +9 -0
- package/types/src/text/TextStacked.d.ts +83 -0
- package/types/src/text/index.d.ts +1 -0
- package/types/src/theme/ITheme.d.ts +2 -0
- package/types/src/theme/IThemeCollection.d.ts +2 -0
- package/types/src/theme/ThemeCollection.d.ts +8 -7
- package/types/src/transaction/ITransaction.d.ts +238 -36
- package/types/src/transaction/Transaction.d.ts +99 -11
- package/types/src/type/AbstractCollection.d.ts +101 -0
- package/types/src/type/ICollection.d.ts +117 -0
- package/types/src/type/ITypes.d.ts +9 -7
- package/types/src/type/index.d.ts +1 -0
- package/types/src/utils/_CSSUtils.d.ts +3 -3
- package/types/src/workbook/IWorkbook.d.ts +171 -40
- package/types/src/workbook/Workbook.d.ts +103 -7
- package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
- package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
- package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
- package/types/src/workbookView/IWorkbookView.d.ts +12 -0
- package/types/src/workbookView/WorkbookView.d.ts +5 -0
- package/browser/cjs/BatsV2UUraVDCRXm.cjs +0 -57
- package/browser/cjs/CUz53T65cRGQRgvv.cjs +0 -33
- package/browser/cjs/DU0kYUtdFa3jK-im.cjs +0 -1
- package/browser/cjs/Dv4yIPLV98M5zLHa.cjs +0 -1
- package/browser/esm/6JKSOvc5czaQB2Bj.mjs +0 -109
- package/browser/esm/BtuJ9AGzeURtAsGo.mjs +0 -51241
- package/browser/esm/DGU6sM25u0EWCKl1.mjs +0 -824
- package/browser/esm/f2G3QRgEbvFJcoa2.mjs +0 -4436
- package/node/esm/-pxdn3M3tc6PLHs7.mjs +0 -114
- package/node/esm/0n5bslM9jhO1JnI2.mjs +0 -843
- package/types/src/cellRange/_GraphNode.d.ts +0 -38
- package/types/src/dataValidation/_Utils.d.ts +0 -10
- package/types/src/sheet/listener/RangesListener.d.ts +0 -32
- package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
- package/types/src/sheet/listener/index.d.ts +0 -3
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
import { ICellRanges } from '../cellRange';
|
|
2
|
+
import { ICollection, AbstractCollection } from '../type';
|
|
3
|
+
import { IListener } from '../listener';
|
|
2
4
|
import { IProtectedRangeCollection } from './IProtectedRangeCollection';
|
|
3
5
|
import { IProtectedRange } from './IProtectedRange';
|
|
4
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Implementation for {@link IProtectedRangeCollection}.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* A front over the sheet's own protected-range state — the sheet keeps the store and the
|
|
11
|
+
* events, this class keeps the API. `onCollectionChange` is the sheet's
|
|
12
|
+
* `onProtectedRangesChange`, forwarded with this collection as the source.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ProtectedRangeCollection extends AbstractCollection<IProtectedRange, IProtectedRangeCollection.GetItemsOptions> implements IProtectedRangeCollection {
|
|
5
15
|
private _add;
|
|
6
16
|
private _get;
|
|
7
17
|
private _getByName;
|
|
8
18
|
private _createItem;
|
|
9
|
-
|
|
19
|
+
private _addListeners;
|
|
20
|
+
constructor(add: (address: ICellRanges.Address | IProtectedRange, options?: IProtectedRangeCollection.AddOptions) => IProtectedRange, get: (address: ICellRanges.Address | null | undefined, ignoreHidden?: boolean, fullyContained?: boolean) => IProtectedRange[], getByName: (name: string) => IProtectedRange | null, createItem: (template?: IProtectedRange | null) => IProtectedRange, addListeners: (listeners: ICollection.IListeners, options?: IListener.Options) => IListener.Remove);
|
|
10
21
|
/** {@inheritDoc IProtectedRangeCollection.add} */
|
|
11
22
|
add(address: ICellRanges.Address | IProtectedRange, options?: IProtectedRangeCollection.AddOptions): IProtectedRange;
|
|
12
|
-
/** {@inheritDoc
|
|
13
|
-
|
|
14
|
-
/** {@inheritDoc IProtectedRangeCollection.getItems} */
|
|
15
|
-
getItems(options?: IProtectedRangeCollection.GetItemsOptions): IProtectedRange[];
|
|
23
|
+
/** {@inheritDoc AbstractCollection._getItems} */
|
|
24
|
+
protected _getItems(options?: IProtectedRangeCollection.GetItemsOptions): IProtectedRange[];
|
|
16
25
|
/** {@inheritDoc IProtectedRangeCollection.createItem} */
|
|
17
26
|
createItem(template?: IProtectedRange | null): IProtectedRange;
|
|
18
|
-
/** {@inheritDoc
|
|
19
|
-
|
|
27
|
+
/** {@inheritDoc ICollection.addListeners} */
|
|
28
|
+
addListeners(listeners: ICollection.IListeners, options?: IListener.Options): IListener.Remove;
|
|
29
|
+
/** {@inheritDoc IProtectedRangeCollection.isIProtectedRangeCollection} */
|
|
30
|
+
get isIProtectedRangeCollection(): true;
|
|
20
31
|
}
|
|
21
32
|
//# sourceMappingURL=ProtectedRangeCollection.d.ts.map
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { IListener } from '../listener';
|
|
2
2
|
import { IProtection } from './IProtection';
|
|
3
3
|
import { ListenerEmitter } from '../listener/ListenerEmitter';
|
|
4
|
-
export declare class DefaultProtection<T, P extends IProtection.Properties, J extends IProtection.JSON> implements IProtection<T, P, J> {
|
|
4
|
+
export declare abstract class DefaultProtection<T, P extends IProtection.Properties, J extends IProtection.JSON> implements IProtection<T, P, J> {
|
|
5
5
|
protected _emitter: ListenerEmitter<this, IProtection.IListeners>;
|
|
6
6
|
protected _isPaused: boolean;
|
|
7
|
+
/** Not protected, but keeping `_properties` for the next lock. Saved as {@link _getAllowedKey}. */
|
|
8
|
+
protected _isDisabled: boolean;
|
|
7
9
|
protected _password: Partial<IProtection.EncryptedPassword> | null;
|
|
8
10
|
protected _identities: IProtection.IdentityProvider[] | null;
|
|
9
11
|
protected _properties: Partial<P> | null;
|
|
@@ -21,6 +23,8 @@ export declare class DefaultProtection<T, P extends IProtection.Properties, J ex
|
|
|
21
23
|
pause(password?: string): Promise<IProtection<T, P, J>>;
|
|
22
24
|
/** {@inheritDoc IProtection.resume} */
|
|
23
25
|
resume(): IProtection<T, P, J>;
|
|
26
|
+
/** {@inheritDoc IProtection.setProperties} */
|
|
27
|
+
setProperties(properties: Partial<P>): Promise<IProtection<T, P, J>>;
|
|
24
28
|
/** {@inheritDoc IProtection.isPaused} */
|
|
25
29
|
isPaused(): boolean;
|
|
26
30
|
/** {@inheritDoc IProtection.isLocked} */
|
|
@@ -35,9 +39,16 @@ export declare class DefaultProtection<T, P extends IProtection.Properties, J ex
|
|
|
35
39
|
/** {@inheritDoc IListener.ISource.addListeners} */
|
|
36
40
|
addListeners(listeners: IProtection.IListeners, options?: IListener.Options): IListener.Remove;
|
|
37
41
|
fromJSON(json?: J): void;
|
|
42
|
+
/**
|
|
43
|
+
* The JSON key that says the whole object stays allowed: unprotected, keeping its options. Named
|
|
44
|
+
* for the object (`sheet`, `workbook`), like the allowances beside it.
|
|
45
|
+
*/
|
|
46
|
+
protected abstract _getAllowedKey(): string;
|
|
38
47
|
protected _fromJSON(_json: J | null): void;
|
|
39
48
|
protected _toJSON(json: Partial<J>): Partial<J>;
|
|
40
49
|
/** {@inheritDoc IWorkbookProtection.toJSON} */
|
|
41
50
|
toJSON(): J | null;
|
|
51
|
+
/** {@inheritDoc IProtection.isIProtection} */
|
|
52
|
+
get isIProtection(): true;
|
|
42
53
|
}
|
|
43
54
|
//# sourceMappingURL=DefaultProtection.d.ts.map
|
|
@@ -8,13 +8,15 @@ export interface IProtection<T, P extends IProtection.Properties, J extends IPro
|
|
|
8
8
|
* Locks the object (workbook or sheet or range) with the specified options and password.
|
|
9
9
|
*
|
|
10
10
|
* @param password The password required to unlock the object.
|
|
11
|
-
* @param properties The properties to allow to remain unlocked.
|
|
11
|
+
* @param properties The properties to allow to remain unlocked. Omitted, the options the object
|
|
12
|
+
* already carries are used (see {@link unlock} and {@link setProperties}).
|
|
12
13
|
* @param algorithm The algorithm for encrypting the password.
|
|
13
14
|
* @param spinCount The spin count for encrypting the password.
|
|
14
15
|
* @returns The `IProtection` instance for method chaining.
|
|
15
16
|
*
|
|
16
17
|
* @remarks
|
|
17
18
|
* By default all properties are locked but you can specify which properties to remain unlocked.
|
|
19
|
+
* Throws when the object is already protected, paused included.
|
|
18
20
|
*/
|
|
19
21
|
lock(properties?: Partial<P>, password?: string, algorithm?: string, spinCount?: number): Promise<IProtection<T, P, J>>;
|
|
20
22
|
/**
|
|
@@ -24,9 +26,31 @@ export interface IProtection<T, P extends IProtection.Properties, J extends IPro
|
|
|
24
26
|
* @returns The `IProtection` instance for method chaining.
|
|
25
27
|
*
|
|
26
28
|
* @remarks
|
|
27
|
-
* If the correct password is provided, protection is removed from the object
|
|
29
|
+
* If the correct password is provided, protection is removed from the object and the password is
|
|
30
|
+
* cleared. The options are kept, and saved, so a later {@link lock} with no properties protects
|
|
31
|
+
* the same way again.
|
|
28
32
|
*/
|
|
29
33
|
unlock(password?: string): Promise<IProtection<T, P, J>>;
|
|
34
|
+
/**
|
|
35
|
+
* Replaces the options of an unprotected or paused object. On a paused object they apply when it
|
|
36
|
+
* resumes; on an unprotected one, when it is next locked.
|
|
37
|
+
*
|
|
38
|
+
* @param properties The properties to allow to remain unlocked.
|
|
39
|
+
* @returns The `IProtection` instance for method chaining.
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
* Throws while the object is locked: unprotect or {@link pause} first. Neither asks for the
|
|
43
|
+
* password here, since an unprotected object has none and a pause already asked for it.
|
|
44
|
+
*/
|
|
45
|
+
setProperties(properties: Partial<P>): Promise<IProtection<T, P, J>>;
|
|
46
|
+
/**
|
|
47
|
+
* The object's options, kept while it is unlocked; `null` when it has none.
|
|
48
|
+
*
|
|
49
|
+
* @remarks
|
|
50
|
+
* A property names what stays **allowed** while locked - it is not a list of what is forbidden.
|
|
51
|
+
* Whether the options are in force is {@link isLocked}.
|
|
52
|
+
*/
|
|
53
|
+
getProperties(): Partial<P> | null;
|
|
30
54
|
/**
|
|
31
55
|
* Temporarily disables protection with the provided password.
|
|
32
56
|
*
|
|
@@ -36,6 +60,14 @@ export interface IProtection<T, P extends IProtection.Properties, J extends IPro
|
|
|
36
60
|
* @remarks
|
|
37
61
|
* This method allows temporarily pausing protection without permanently unlocking the object.
|
|
38
62
|
* Use {@link resume} to restore protection.
|
|
63
|
+
*
|
|
64
|
+
* Not a shortcut for {@link unlock}, even on a lock without a password: unlocking is a document
|
|
65
|
+
* change (the file saves unprotected, and the password is gone), whereas a pause
|
|
66
|
+
* keeps the whole configuration - password, options, and any session access already granted to
|
|
67
|
+
* an {@link IProtectedRange} - and {@link resume} restores it exactly. The password is required
|
|
68
|
+
* only when one is set. Throws when the object is not locked.
|
|
69
|
+
*
|
|
70
|
+
* The paused state is session-only and is never serialized.
|
|
39
71
|
*/
|
|
40
72
|
pause(password?: string): Promise<IProtection<T, P, J>>;
|
|
41
73
|
/**
|
|
@@ -91,6 +123,8 @@ export interface IProtection<T, P extends IProtection.Properties, J extends IPro
|
|
|
91
123
|
*/
|
|
92
124
|
addListeners(listeners: IProtection.IListeners, options?: IListener.Options): IListener.Remove;
|
|
93
125
|
toJSON(): IProtection.JSON | null;
|
|
126
|
+
/** For runtime type checking. */
|
|
127
|
+
readonly isIProtection: true;
|
|
94
128
|
}
|
|
95
129
|
/**
|
|
96
130
|
* {@inheritDoc IProtection}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { IRange } from '@sheetxl/primitives';
|
|
2
|
+
/**
|
|
3
|
+
* The rules a reference follows when the cells around it change.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* A reference is a rectangle that names cells - a formula's precedent, a range listener's
|
|
7
|
+
* subscription, a watch's location. Everything that holds one has to answer the same questions
|
|
8
|
+
* when the sheet is restructured: where is it after an insert or a delete, when does it become
|
|
9
|
+
* `#REF!`, and when does a cut carry it along. These are those answers, and they live here rather
|
|
10
|
+
* than in the calc graph so that the graph's precedents and the sheet's listeners map cannot
|
|
11
|
+
* disagree - they call the same functions.
|
|
12
|
+
*
|
|
13
|
+
* Nothing here knows about formulas, blocks or grids. A reference is two numbers per axis plus,
|
|
14
|
+
* for a formula, which of its endpoints a structural change is allowed to move.
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Shift one axis of a reference the way a structural change shifts a formula precedent.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
* This is the rule `shiftPrecedents` applies, per axis, to every reference it rewrites, and the
|
|
23
|
+
* rule a range listener's reference follows so that the two can never disagree. A reference is
|
|
24
|
+
* judged on the shifted axis alone - whether it overlaps the inserted or deleted band on the OTHER
|
|
25
|
+
* axis plays no part - which is why `=SUM(A1:C3)` reads `A2:C4` after one cell is inserted at A1
|
|
26
|
+
* shifting down: the whole reference moves, it does not come apart.
|
|
27
|
+
*
|
|
28
|
+
* * An insert (`shiftBy` > 0) moves every endpoint at or past `shiftStart` by `shiftBy`; an
|
|
29
|
+
* endpoint before it stays, so a reference straddling the insert line grows.
|
|
30
|
+
* * A delete (`shiftBy` < 0) whose zone covers the whole reference makes it `#REF!` (`null`); one
|
|
31
|
+
* that covers an end trims that end to the zone's edge; one entirely before the reference moves
|
|
32
|
+
* it whole.
|
|
33
|
+
*
|
|
34
|
+
* An immune endpoint is left exactly as it is, and a reference with an immune endpoint is never
|
|
35
|
+
* `#REF!`: that is a relative endpoint of an unanchored block (a named formula's body), which
|
|
36
|
+
* names no cell for a structural change to move. See the note in `shiftPrecedents`.
|
|
37
|
+
*
|
|
38
|
+
* @param start The reference's absolute start on this axis.
|
|
39
|
+
* @param end The reference's absolute end on this axis.
|
|
40
|
+
* @param shiftStart The first index of the inserted or deleted band.
|
|
41
|
+
* @param shiftBy How far the band moves cells: positive for an insert, negative for a delete.
|
|
42
|
+
* @param deleteEnd The last index of the deleted band; ignored for an insert.
|
|
43
|
+
* @param immuneStart `true` if the start endpoint must not move.
|
|
44
|
+
* @param immuneEnd `true` if the end endpoint must not move.
|
|
45
|
+
* @returns The shifted `[start, end]`, or `null` when the delete removed the whole reference.
|
|
46
|
+
*/
|
|
47
|
+
export declare function shiftReferenceAxis(start: number, end: number, shiftStart: number, shiftBy: number, deleteEnd: number, immuneStart?: boolean, immuneEnd?: boolean): [start: number, end: number] | null;
|
|
48
|
+
/**
|
|
49
|
+
* Move one axis of a reference the way a cut moves a formula precedent.
|
|
50
|
+
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* A move is a rigid translation, so unlike a shift there is no zone to compare against and no
|
|
53
|
+
* `#REF!`: both endpoints travel the same distance or neither does. Whether this reference travels
|
|
54
|
+
* at all is {@link isReferenceEnclosed}'s question, asked before this one.
|
|
55
|
+
*
|
|
56
|
+
* An immune endpoint is left exactly as it is. That is a relative endpoint whose own cells are
|
|
57
|
+
* moving by the same amount - the formula and its target translate together, so the offset between
|
|
58
|
+
* them is already right - or one of an unanchored block, which names no cell to re-point.
|
|
59
|
+
*
|
|
60
|
+
* @param start The reference's start on this axis.
|
|
61
|
+
* @param end The reference's end on this axis.
|
|
62
|
+
* @param moveBy How far the cut carries the cells on this axis.
|
|
63
|
+
* @param immuneStart `true` if the start endpoint must not move.
|
|
64
|
+
* @param immuneEnd `true` if the end endpoint must not move.
|
|
65
|
+
*/
|
|
66
|
+
export declare function moveReferenceAxis(start: number, end: number, moveBy: number, immuneStart?: boolean, immuneEnd?: boolean): [start: number, end: number];
|
|
67
|
+
/**
|
|
68
|
+
* Whether a cut of `from` carries `reference` with it.
|
|
69
|
+
*
|
|
70
|
+
* @remarks
|
|
71
|
+
* Excel's test, and the graph's: a reference moves only when the cut rectangle FULLY ENCLOSES it.
|
|
72
|
+
* Cut A1:C3 and `=SUM(A1:B2)` follows to the destination; `=SUM(A1:C5)` reaches outside the cut
|
|
73
|
+
* and so is left exactly where it is, pointing at cells that are now empty. There is no partial
|
|
74
|
+
* answer and no split - a reference that is only half carried would name two different rectangles.
|
|
75
|
+
*
|
|
76
|
+
* A formula BLOCK asks a longer version of this question, because each of its cells has a
|
|
77
|
+
* reference of its own and all of them have to be enclosed; see `movePrecedents`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function isReferenceEnclosed(reference: Readonly<IRange.Coords>, from: Readonly<IRange.Coords>): boolean;
|
|
80
|
+
//# sourceMappingURL=ReferenceUtils.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { JSONSerializableAsync } from '@sheetxl/utils';
|
|
1
|
+
import { JSONSerializableAsync, MaybePromise } from '@sheetxl/utils';
|
|
2
2
|
/**
|
|
3
3
|
* A resource is an item referenced elsewhere with the application.
|
|
4
4
|
* This will track when a resource is no longer being used and can be removed.
|
|
@@ -63,6 +63,26 @@ export interface IResource extends JSONSerializableAsync<IResource.JSON> {
|
|
|
63
63
|
* {@link IResource}
|
|
64
64
|
*/
|
|
65
65
|
export declare namespace IResource {
|
|
66
|
+
/**
|
|
67
|
+
* Writes a single resource wherever the caller wants it, and returns the {@link IResource.JSON}
|
|
68
|
+
* that should stand for it in the serialized model.
|
|
69
|
+
*
|
|
70
|
+
* @param resource The resource being written.
|
|
71
|
+
* @param id The id the serialized model references this resource by.
|
|
72
|
+
*
|
|
73
|
+
* @returns The JSON to record for the resource, or `null` to record nothing.
|
|
74
|
+
*
|
|
75
|
+
* @remarks
|
|
76
|
+
* Called once per resource that the write actually touched, never for unused ones.
|
|
77
|
+
*
|
|
78
|
+
* Returning `{ uri }` is the useful case: the bytes go wherever the writer put them and the
|
|
79
|
+
* model keeps a pointer, which reads back as an external resource with no reader changes.
|
|
80
|
+
*
|
|
81
|
+
* Ids are positions, so a `null` leaves a `{}` placeholder rather than shifting the resources
|
|
82
|
+
* after it. If every resource returns `null` no resources are recorded at all — for a writer
|
|
83
|
+
* that emits the bytes itself and only needs the ids, such as the xlsx writer.
|
|
84
|
+
*/
|
|
85
|
+
type Writer = (resource: IResource, id: number) => MaybePromise<IResource.JSON | null>;
|
|
66
86
|
interface IUnloadListener {
|
|
67
87
|
onUnload: (ref: IResource) => void;
|
|
68
88
|
}
|
|
@@ -3,6 +3,9 @@ import { ICollection } from '../type';
|
|
|
3
3
|
import { IResource } from './IResource';
|
|
4
4
|
/**
|
|
5
5
|
* Collections of {@link IResource}.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Keyed by the resource, not ordered: iteration order is unspecified.
|
|
6
9
|
*/
|
|
7
10
|
export interface IResourceCollection extends ICollection<IResource> {
|
|
8
11
|
/**
|
|
@@ -24,6 +27,8 @@ export interface IResourceCollection extends ICollection<IResource> {
|
|
|
24
27
|
* will only save the resource that were accessed within the persist scope.
|
|
25
28
|
*/
|
|
26
29
|
beginPersist(): IResourceCollection.IPersistScope<IResource.JSON>;
|
|
30
|
+
/** For runtime type checking. */
|
|
31
|
+
readonly isIResourceCollection: true;
|
|
27
32
|
}
|
|
28
33
|
/**
|
|
29
34
|
* {@inheritDoc IResourceCollection}
|
|
@@ -89,8 +94,11 @@ export declare namespace IResourceCollection {
|
|
|
89
94
|
fromJSON(json: J[]): void;
|
|
90
95
|
/**
|
|
91
96
|
* This can be called multiple times.
|
|
97
|
+
*
|
|
98
|
+
* @param writer Called once per resource in place of serializing it, to write it elsewhere.
|
|
99
|
+
* Returns `[]` when the writer records nothing for any of them.
|
|
92
100
|
*/
|
|
93
|
-
toJSONAsync(): Promise<J[]>;
|
|
101
|
+
toJSONAsync(writer?: IResource.Writer): Promise<J[]>;
|
|
94
102
|
}
|
|
95
103
|
}
|
|
96
104
|
//# sourceMappingURL=IResourceCollection.d.ts.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { ICollection } from '../type';
|
|
1
|
+
import { ICollection, AbstractCollection } from '../type';
|
|
2
2
|
import { IResource } from './IResource';
|
|
3
3
|
import { IResourceCollection } from './IResourceCollection';
|
|
4
|
-
export declare class ResourceCollection implements IResourceCollection {
|
|
4
|
+
export declare class ResourceCollection extends AbstractCollection<IResource> implements IResourceCollection {
|
|
5
5
|
private _resources;
|
|
6
6
|
private _persistOpen;
|
|
7
7
|
constructor();
|
|
8
8
|
/** {@inheritDoc IResourceCollection.add} */
|
|
9
9
|
add(res: string | IResource | IResourceCollection.AddOptions): IResource;
|
|
10
|
-
/** {@inheritDoc
|
|
11
|
-
|
|
12
|
-
/** {@inheritDoc IResourceCollection.getItems} */
|
|
13
|
-
getItems(options?: ICollection.GetItemsOptions): IResource[];
|
|
10
|
+
/** {@inheritDoc AbstractCollection._getItems} */
|
|
11
|
+
protected _getItems(options?: ICollection.GetItemsOptions): IResource[];
|
|
14
12
|
/** {@inheritDoc IResourceCollection.getCount} */
|
|
15
13
|
getCount(): number;
|
|
16
14
|
/** {@inheritDoc IResourceCollection.beginPersist} */
|
|
17
15
|
beginPersist(): IResourceCollection.IPersistScope<IResource.JSON>;
|
|
16
|
+
/** {@inheritDoc IResourceCollection.isIResourceCollection} */
|
|
17
|
+
get isIResourceCollection(): true;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=ResourceCollection.d.ts.map
|
|
@@ -1,33 +1,48 @@
|
|
|
1
1
|
import { IFunction, IFormulaContext } from '@sheetxl/primitives';
|
|
2
2
|
import { ITransaction } from '../transaction';
|
|
3
3
|
import { IListener } from '../listener';
|
|
4
|
-
import {
|
|
5
|
-
import { ListenerEmitter } from '../listener/ListenerEmitter';
|
|
4
|
+
import { AbstractCollection } from '../type';
|
|
6
5
|
import { IFunctionCollection } from './IFunctionCollection';
|
|
7
6
|
import { FunctionMatch } from './_FunctionIndex';
|
|
8
7
|
/**
|
|
9
8
|
* Implementation for `IFunctionCollection`.
|
|
10
9
|
*/
|
|
11
|
-
export declare class FunctionCollection implements IFunctionCollection {
|
|
12
|
-
protected _emitter: ListenerEmitter<this, IFunctionCollection.IListeners>;
|
|
10
|
+
export declare class FunctionCollection extends AbstractCollection<IFunction, IFunctionCollection.GetItemsOptions> implements IFunctionCollection {
|
|
13
11
|
private _options;
|
|
14
12
|
private _readonly;
|
|
15
|
-
|
|
13
|
+
/** The functions lambda-valued defined names export. See {@link _setNamedSource}. */
|
|
14
|
+
private _named;
|
|
15
|
+
protected _transactions: ITransaction.IStore;
|
|
16
16
|
private _stateId;
|
|
17
17
|
private _transactionsRemoveListener;
|
|
18
|
-
private _closed;
|
|
19
18
|
/**
|
|
20
19
|
* The descriptor index behind the metadata searches. Built on first use and dropped whenever the
|
|
21
20
|
* collection's contents change — see {@link FunctionIndex}.
|
|
22
21
|
*/
|
|
23
22
|
private _index;
|
|
24
23
|
constructor(options: ConstructorOptions);
|
|
25
|
-
/** {@inheritDoc
|
|
26
|
-
|
|
27
|
-
/** {@inheritDoc IFunctionCollection.getItems} */
|
|
28
|
-
getItems(options?: ICollection.GetItemsOptions): IFunction[];
|
|
24
|
+
/** {@inheritDoc AbstractCollection._getItems} */
|
|
25
|
+
protected _getItems(options?: IFunctionCollection.GetItemsOptions): IFunction[];
|
|
29
26
|
/** {@inheritDoc IFunctionCollection.getByName} */
|
|
30
27
|
getByName(name: string, options?: IFunctionCollection.GetByNameOptions): IFunction | null;
|
|
28
|
+
/**
|
|
29
|
+
* Installs the functions lambda-valued defined names export: {@link getByName} falls back to them
|
|
30
|
+
* for a name no registered function has, and {@link getItems}, {@link search} and
|
|
31
|
+
* {@link getCategories} list them.
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* Supplied by the calculation, which owns defined names — this layer does not know them. What it
|
|
35
|
+
* answers reports `isLambda()`, which is how the engine's own lookups tell it apart and skip it: a
|
|
36
|
+
* call to a named lambda evaluates the name, not a function.
|
|
37
|
+
*/
|
|
38
|
+
_setNamedSource(source: NamedFunctionSource | null): void;
|
|
39
|
+
/**
|
|
40
|
+
* The exported named lambdas that no registered function shadows, read LIVE: a name's body and
|
|
41
|
+
* comment change without this collection hearing of it, so they never enter the cached index.
|
|
42
|
+
*/
|
|
43
|
+
private _namedFunctions;
|
|
44
|
+
/** The cached index, followed by entries for {@link _namedFunctions} built fresh. */
|
|
45
|
+
private _entries;
|
|
31
46
|
/** {@inheritDoc IFunctionCollection.search} */
|
|
32
47
|
search(options?: IFunctionCollection.SearchOptions): Promise<IFunction[]>;
|
|
33
48
|
/**
|
|
@@ -66,9 +81,24 @@ export declare class FunctionCollection implements IFunctionCollection {
|
|
|
66
81
|
protected _initState(): void;
|
|
67
82
|
/** {@inheritDoc IListener.ISource.addListeners} */
|
|
68
83
|
addListeners(listeners: IFunctionCollection.IListeners, options?: IListener.Options): IListener.Remove;
|
|
69
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Closes the collection. Called by the owner when it closes; announces
|
|
86
|
+
* {@link ICollection.Events.onClose} once.
|
|
87
|
+
*/
|
|
70
88
|
close(): void;
|
|
71
89
|
get isFunctionCollection(): true;
|
|
90
|
+
/** {@inheritDoc IFunctionCollection.isIFunctionCollection} */
|
|
91
|
+
get isIFunctionCollection(): true;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Functions a collection lists and answers without holding them — the calculation's named lambdas.
|
|
95
|
+
* See {@link FunctionCollection._setNamedSource}.
|
|
96
|
+
*/
|
|
97
|
+
export interface NamedFunctionSource {
|
|
98
|
+
/** The function `name` exports as seen from `sheet` (a sheet's own name shadows a global), or `null`. */
|
|
99
|
+
getByName(name: string, sheet?: string): IFunction | null;
|
|
100
|
+
/** Every exported function, one per name. */
|
|
101
|
+
getItems(): IFunction[];
|
|
72
102
|
}
|
|
73
103
|
export interface ConstructorOptions {
|
|
74
104
|
/**
|
|
@@ -3,6 +3,9 @@ import { ICollection } from '../type';
|
|
|
3
3
|
import { IListener } from '../listener';
|
|
4
4
|
/**
|
|
5
5
|
* Collections of {@link IFunction}.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Keyed by name, not ordered: iteration order is unspecified.
|
|
6
9
|
*/
|
|
7
10
|
export interface IFunctionCollection extends ICollection<IFunction> {
|
|
8
11
|
/**
|
|
@@ -15,6 +18,19 @@ export interface IFunctionCollection extends ICollection<IFunction> {
|
|
|
15
18
|
* are registered and the first (primary) one is returned.
|
|
16
19
|
*/
|
|
17
20
|
add(option: string | IFunction | IFunctionCollection.AddOptions): Promise<IFunction>;
|
|
21
|
+
/**
|
|
22
|
+
* The functions in the collection, narrowed by {@link IFunctionCollection.GetItemsOptions}.
|
|
23
|
+
*
|
|
24
|
+
* @remarks
|
|
25
|
+
* Synchronous, and therefore deliberately narrower than {@link IFunctionCollection.search}: it
|
|
26
|
+
* offers only the filters that read no {@link IFunction.IDescriptor} (`name`, `type`). Anything
|
|
27
|
+
* that needs a descriptor — `text`, `category`, `includeDeprecated` — has to load them, which
|
|
28
|
+
* is why it lives on `search` and returns a promise.
|
|
29
|
+
*
|
|
30
|
+
* Unlike `search`, this does NOT resolve shadowing: a custom function sharing a built-in's name
|
|
31
|
+
* is returned alongside it rather than in place of it.
|
|
32
|
+
*/
|
|
33
|
+
getItems(options?: IFunctionCollection.GetItemsOptions): IFunction[];
|
|
18
34
|
/**
|
|
19
35
|
* Returns functions that match the filter criteria.
|
|
20
36
|
*
|
|
@@ -68,8 +84,16 @@ export interface IFunctionCollection extends ICollection<IFunction> {
|
|
|
68
84
|
* resolve against the bound sheet with no evaluation current, and the instance is safe to
|
|
69
85
|
* hold across awaits. Without options, the shared registry instance is returned (the one the
|
|
70
86
|
* engine evaluates with); its reference resolution requires an active evaluation.
|
|
87
|
+
*
|
|
88
|
+
* A defined name whose body is `LAMBDA(…)` answers too, when no function has the name: a function
|
|
89
|
+
* whose `isLambda()` is `true`, with the lambda's parameters and, as its summary, the name's comment
|
|
90
|
+
* (or its formula, without one).
|
|
91
|
+
* {@link getItems} and {@link search} list these under the category `Lambda`. `options.sheet` only
|
|
92
|
+
* chooses which sheet's names are visible — a named lambda cannot be bound or called outside its name.
|
|
71
93
|
*/
|
|
72
94
|
getByName(name: string, options?: IFunctionCollection.GetByNameOptions): IFunction | null;
|
|
95
|
+
/** For runtime type checking. */
|
|
96
|
+
readonly isIFunctionCollection: true;
|
|
73
97
|
}
|
|
74
98
|
/**
|
|
75
99
|
* {@inheritDoc IFunctionCollection}
|
|
@@ -82,6 +106,23 @@ export declare namespace IFunctionCollection {
|
|
|
82
106
|
/**
|
|
83
107
|
* Options for {@link IFunctionCollection.getByName}.
|
|
84
108
|
*/
|
|
109
|
+
/**
|
|
110
|
+
* Options for {@link IFunctionCollection.getItems}.
|
|
111
|
+
*/
|
|
112
|
+
interface GetItemsOptions extends ICollection.GetItemsOptions {
|
|
113
|
+
/**
|
|
114
|
+
* Only the function with this name. Case insensitive.
|
|
115
|
+
*/
|
|
116
|
+
name?: string;
|
|
117
|
+
/**
|
|
118
|
+
* Only functions of this type: `'formula'`, `'macro'` or `'autoRun'`.
|
|
119
|
+
*
|
|
120
|
+
* @remarks
|
|
121
|
+
* Compared against {@link IFunction.getContext}, which is what `search` filters on too, so the
|
|
122
|
+
* two agree on what a type means.
|
|
123
|
+
*/
|
|
124
|
+
type?: string;
|
|
125
|
+
}
|
|
85
126
|
interface GetByNameOptions {
|
|
86
127
|
/**
|
|
87
128
|
* A sheet name to bind the returned function to. Vends a NEW instance whose evaluation
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CompileOptions as _CompileOptions, CompileResult as _CompileResult, CompiledModule, Diagnostic as _Diagnostic } from '@sheetxl/scripting';
|
|
2
2
|
import { IListener } from '../listener';
|
|
3
|
+
import { ISheet } from '../sheet';
|
|
4
|
+
import { IWorkbook } from '../workbook';
|
|
3
5
|
import { IFunctionCollection } from './IFunctionCollection';
|
|
4
6
|
/**
|
|
5
7
|
* Represents a collection of functions. This is analogous to a file.
|
|
@@ -23,6 +25,21 @@ export interface IModule {
|
|
|
23
25
|
* The language the function is written in.
|
|
24
26
|
*/
|
|
25
27
|
getLanguage(): string;
|
|
28
|
+
/**
|
|
29
|
+
* What the module is bound to — the sheet or workbook that owns it, or `null` when it is
|
|
30
|
+
* global.
|
|
31
|
+
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* Scope is a **visibility rule**, not a label: only a globally scoped module contributes
|
|
34
|
+
* functions to the workbook's formula namespace. A UDF declared in a sheet- or
|
|
35
|
+
* workbook-scoped module is unreachable from a cell formula.
|
|
36
|
+
*
|
|
37
|
+
* It is also **derived, not stored** — a module's scope is where it lives. A sheet's modules
|
|
38
|
+
* are reached through {@link ISheet.getModules}, and go away with the sheet; there is
|
|
39
|
+
* deliberately no setter, because changing a module's scope would silently promote or demote
|
|
40
|
+
* every function in it.
|
|
41
|
+
*/
|
|
42
|
+
getScope(): IModule.Scope;
|
|
26
43
|
/**
|
|
27
44
|
* Returns the error-severity diagnostics for the module (a subset of {@link IModule.getDiagnostics}).
|
|
28
45
|
*/
|
|
@@ -45,6 +62,10 @@ export interface IModule {
|
|
|
45
62
|
*/
|
|
46
63
|
toJSON(): IModule.JSON;
|
|
47
64
|
addListeners(listeners: IModule.IListeners, options?: IListener.Options): IListener.Remove;
|
|
65
|
+
/**
|
|
66
|
+
* For runtime type checking.
|
|
67
|
+
*/
|
|
68
|
+
readonly isIModule: true;
|
|
48
69
|
}
|
|
49
70
|
/**
|
|
50
71
|
* {@inheritDoc IModule}
|
|
@@ -66,6 +87,10 @@ export declare namespace IModule {
|
|
|
66
87
|
* Used to serialize a module.
|
|
67
88
|
*/
|
|
68
89
|
type JSON = CompiledModule;
|
|
90
|
+
/**
|
|
91
|
+
* What a module is bound to: a sheet, the workbook, or `null` for global.
|
|
92
|
+
*/
|
|
93
|
+
type Scope = ISheet | IWorkbook | null;
|
|
69
94
|
/**
|
|
70
95
|
* A positioned compile diagnostic (error or warning).
|
|
71
96
|
*/
|
|
@@ -3,6 +3,11 @@ import { IListener } from '../listener';
|
|
|
3
3
|
import { IModule } from './IModule';
|
|
4
4
|
/**
|
|
5
5
|
* Represents a collection of functions. This is analogous to a file.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Keyed by the module's id, not ordered: iteration order is unspecified. The unfiltered walk
|
|
9
|
+
* (`for…of`, `getCount()`, `toArray()`) is what `getItems()` returns with no options — the
|
|
10
|
+
* default language's modules; pass `{ language: null }` to `getItems` for every language.
|
|
6
11
|
*/
|
|
7
12
|
export interface IModuleCollection extends ICollection<IModule> {
|
|
8
13
|
/**
|
|
@@ -39,6 +44,10 @@ export interface IModuleCollection extends ICollection<IModule> {
|
|
|
39
44
|
* Returns a JSON representation of the module collection.
|
|
40
45
|
*/
|
|
41
46
|
toJSON(): Record<string, IModule.JSON>;
|
|
47
|
+
/**
|
|
48
|
+
* For runtime type checking.
|
|
49
|
+
*/
|
|
50
|
+
readonly isIModuleCollection: true;
|
|
42
51
|
}
|
|
43
52
|
export declare namespace IModuleCollection {
|
|
44
53
|
interface AddOptions {
|
|
@@ -59,6 +68,14 @@ export declare namespace IModuleCollection {
|
|
|
59
68
|
* Search with the given name. This is case insensitive.
|
|
60
69
|
*/
|
|
61
70
|
name?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Only return modules written in this language. This is case insensitive.
|
|
73
|
+
*
|
|
74
|
+
* Pass `null` for every module, whatever its language.
|
|
75
|
+
*
|
|
76
|
+
* @defaultValue `'typescript'`
|
|
77
|
+
*/
|
|
78
|
+
language?: string | null;
|
|
62
79
|
}
|
|
63
80
|
interface Events {
|
|
64
81
|
/**
|
|
@@ -131,6 +131,8 @@ export interface IScript {
|
|
|
131
131
|
* Returns a JSON representation of the script.
|
|
132
132
|
*/
|
|
133
133
|
toJSON(): Record<string, IModule.JSON>;
|
|
134
|
+
/** For runtime type checking. */
|
|
135
|
+
readonly isIScript: true;
|
|
134
136
|
}
|
|
135
137
|
/**
|
|
136
138
|
* {@inheritDoc IFunctionCollection}
|
|
@@ -140,6 +142,10 @@ export interface IScript {
|
|
|
140
142
|
* {@link IFunctionCollection}
|
|
141
143
|
*/
|
|
142
144
|
export declare namespace IScript {
|
|
145
|
+
/**
|
|
146
|
+
* The name a module gets when nothing named it — the one an editor opens by default.
|
|
147
|
+
*/
|
|
148
|
+
const DEFAULT_MODULE: string;
|
|
143
149
|
/**
|
|
144
150
|
* Events for {@link ISheet}.
|
|
145
151
|
*/
|
|
@@ -250,6 +256,18 @@ export declare namespace IScript {
|
|
|
250
256
|
* objects fall back to JSON.
|
|
251
257
|
*/
|
|
252
258
|
render?: LogRenderer;
|
|
259
|
+
/**
|
|
260
|
+
* How long a finished run waits for what it logged to settle, in milliseconds. `0` waits
|
|
261
|
+
* indefinitely.
|
|
262
|
+
*
|
|
263
|
+
* @remarks
|
|
264
|
+
* `log(promise)` prints what the promise settles to, so a run is not done until its log is. A
|
|
265
|
+
* value still unsettled when this elapses prints as `[pending]`; nothing is thrown and the rest
|
|
266
|
+
* of the log is kept.
|
|
267
|
+
*
|
|
268
|
+
* @defaultValue 10 seconds
|
|
269
|
+
*/
|
|
270
|
+
logTimeoutMs?: number;
|
|
253
271
|
}
|
|
254
272
|
/**
|
|
255
273
|
* The result of {@link IScript.run}.
|