@sheetxl/sdk 0.8.0-beta.1 → 0.8.0-beta.3

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.
Files changed (353) hide show
  1. package/THIRD-PARTY-NOTICES.md +1 -1
  2. package/browser/cjs/B0AS8k-hrSCBUlUY.cjs +1 -0
  3. package/browser/cjs/B308aXzcAYr1GN1c.cjs +1 -0
  4. package/browser/cjs/B44p8LIyxG3GtaGC.cjs +93 -0
  5. package/browser/cjs/{a0Z-SXs_N71CtqYb.cjs → D6YaqporVrSewZpm.cjs} +1 -1
  6. package/browser/cjs/DjWcveVCs0NFiKep.cjs +1 -0
  7. package/browser/cjs/index.cjs +2 -2
  8. package/browser/esm/-OKDZ9cUBtkgD4Zr.mjs +20 -0
  9. package/browser/esm/8Nw0lKc4ISs7hEJT.mjs +70223 -0
  10. package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → BmEEyMxNzlbXG98H.mjs} +2 -2
  11. package/browser/esm/BtdDRkWn-zCV3oic.mjs +394 -0
  12. package/browser/esm/DaCTT4vda0m8Fnxo.mjs +8 -0
  13. package/browser/esm/{B0HS42a7lga1k1U_.mjs → DvFKKE72ZA02l8iF.mjs} +1 -1
  14. package/browser/esm/{uyWBMSIxMlt8n5Z3.mjs → Z-dzbKvqaxll9l_t.mjs} +2 -2
  15. package/browser/esm/index.mjs +871 -696
  16. package/licenses/dependencies.txt +204 -204
  17. package/node/esm/{Cku7XiUvw1xrRasi.mjs → BpMTlTrJLWh_wJ5H.mjs} +1 -1
  18. package/node/esm/D5quDVovf1zjYBgJ.mjs +28 -0
  19. package/node/esm/DP0M3_S_dwLwRMiA.mjs +403 -0
  20. package/node/esm/DTHN_EkuOscW3f3B.mjs +8 -0
  21. package/node/esm/index.mjs +54375 -39377
  22. package/package.json +6 -7
  23. package/resources/locales/de/model.msg.json +45 -9
  24. package/resources/locales/en/model.msg.json +42 -9
  25. package/types/scripting-api.json +7094 -0
  26. package/types/scripting-enums.json +54 -8
  27. package/types/scripting.d.ts +6985 -1171
  28. package/types/src/anchored/AbstractAnchored.d.ts +18 -8
  29. package/types/src/anchored/AnchoredMap.d.ts +2 -0
  30. package/types/src/anchored/IAnchoredMap.d.ts +52 -4
  31. package/types/src/autoFill/AutoFill.d.ts +316 -32
  32. package/types/src/autoFill/IAutoFill.d.ts +232 -15
  33. package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +41 -40
  34. package/types/src/border/index.d.ts +1 -1
  35. package/types/src/calculation/Calculation.d.ts +740 -35
  36. package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
  37. package/types/src/calculation/FormulaText.d.ts +74 -0
  38. package/types/src/calculation/ICalculation.d.ts +318 -81
  39. package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
  40. package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
  41. package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
  42. package/types/src/calculation/TokenType.d.ts +9 -0
  43. package/types/src/calculation/Types.d.ts +83 -2
  44. package/types/src/calculation/_CloneBoundary.d.ts +80 -0
  45. package/types/src/calculation/compiler/ASTTypes.d.ts +58 -0
  46. package/types/src/calculation/compiler/CompilerUtils.d.ts +134 -12
  47. package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
  48. package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
  49. package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
  50. package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
  51. package/types/src/calculation/compiler/SRParser.d.ts +2 -1
  52. package/types/src/calculation/compiler/Types.d.ts +79 -9
  53. package/types/src/calculation/executor/CalcExecutor.d.ts +312 -33
  54. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
  55. package/types/src/calculation/executor/CircularReference.d.ts +2 -0
  56. package/types/src/calculation/formula/Formula.d.ts +58 -21
  57. package/types/src/calculation/formula/FormulaBlock.d.ts +124 -21
  58. package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
  59. package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
  60. package/types/src/calculation/formula/LambdaValue.d.ts +15 -16
  61. package/types/src/calculation/formula/LazyValue.d.ts +96 -0
  62. package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
  63. package/types/src/calculation/formula/index.d.ts +1 -0
  64. package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
  65. package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
  66. package/types/src/calculation/grid/CalcGrid.d.ts +384 -158
  67. package/types/src/calculation/grid/CalcGridBackend.d.ts +450 -0
  68. package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
  69. package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
  70. package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
  71. package/types/src/calculation/grid/FormulaHost.d.ts +236 -0
  72. package/types/src/calculation/grid/ICalcGrid.d.ts +456 -143
  73. package/types/src/calculation/grid/_CalcRequest.d.ts +272 -0
  74. package/types/src/calculation/grid/index.d.ts +4 -0
  75. package/types/src/calculation/index.d.ts +2 -0
  76. package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
  77. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
  78. package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
  79. package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
  80. package/types/src/calculation/spatial/index.d.ts +1 -0
  81. package/types/src/calculation/state/CalcInputs.d.ts +41 -0
  82. package/types/src/calculation/state/CalcNode.d.ts +141 -30
  83. package/types/src/calculation/state/CalcScope.d.ts +37 -0
  84. package/types/src/calculation/state/CalcState.d.ts +22 -1
  85. package/types/src/calculation/state/CalculationContext.d.ts +36 -2
  86. package/types/src/calculation/state/IContextContainer.d.ts +129 -27
  87. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
  88. package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
  89. package/types/src/calculation/state/index.d.ts +1 -0
  90. package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
  91. package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
  92. package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
  93. package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
  94. package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
  95. package/types/src/calculation/symbol/index.d.ts +3 -2
  96. package/types/src/cell/ICell.d.ts +78 -23
  97. package/types/src/cell/ICellProtection.d.ts +50 -10
  98. package/types/src/cellRange/ICellRange.d.ts +329 -72
  99. package/types/src/cellRange/ICellRanges.d.ts +9 -7
  100. package/types/src/chart/Chart.d.ts +72 -2
  101. package/types/src/chart/ChartCollection.d.ts +26 -0
  102. package/types/src/chart/IChart.d.ts +162 -9
  103. package/types/src/chart/IChartCollection.d.ts +25 -0
  104. package/types/src/chart/_ChartXml.d.ts +70 -0
  105. package/types/src/chart/index.d.ts +1 -3
  106. package/types/src/collections/ArraysGrid.d.ts +1 -1
  107. package/types/src/collections/IGrid.d.ts +1 -1
  108. package/types/src/collections/ISparseGrid.d.ts +9 -0
  109. package/types/src/collections/ISpatialMap.d.ts +59 -21
  110. package/types/src/collections/ImmutableList.d.ts +28 -0
  111. package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
  112. package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
  113. package/types/src/collections/RepeatingList.d.ts +7 -0
  114. package/types/src/collections/ScalarGrid.d.ts +50 -0
  115. package/types/src/collections/SparseGrid.d.ts +1 -1
  116. package/types/src/collections/SpatialMap.d.ts +13 -21
  117. package/types/src/collections/Tuple.d.ts +128 -16
  118. package/types/src/collections/_GridUtils.d.ts +19 -6
  119. package/types/src/collections/_RangeSweep.d.ts +97 -0
  120. package/types/src/collections/_SpatialUtils.d.ts +20 -2
  121. package/types/src/collections/index.d.ts +1 -0
  122. package/types/src/comment/Comment.d.ts +159 -0
  123. package/types/src/comment/CommentCollection.d.ts +40 -0
  124. package/types/src/comment/IComment.d.ts +319 -48
  125. package/types/src/comment/ICommentCollection.d.ts +90 -0
  126. package/types/src/comment/_CommentUtils.d.ts +28 -0
  127. package/types/src/comment/index.d.ts +1 -0
  128. package/types/src/condition/AnchoredConditional.d.ts +76 -17
  129. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +8 -7
  130. package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -1
  131. package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +3 -6
  132. package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +1 -1
  133. package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +7 -0
  134. package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +9 -0
  135. package/types/src/condition/Condition.d.ts +16 -0
  136. package/types/src/condition/ICondition.d.ts +86 -33
  137. package/types/src/condition/_ConditionFormula.d.ts +152 -0
  138. package/types/src/condition/_ConditionUtils.d.ts +73 -10
  139. package/types/src/conditionalFormat/ConditionalFormat.d.ts +21 -10
  140. package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
  141. package/types/src/conditionalFormat/IConditionalFormat.d.ts +5 -3
  142. package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
  143. package/types/src/dataValidation/DataValidation.d.ts +50 -3
  144. package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
  145. package/types/src/dataValidation/IDataValidation.d.ts +119 -30
  146. package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
  147. package/types/src/date/DateUtils.d.ts +20 -0
  148. package/types/src/date/_DateUtils.d.ts +91 -7
  149. package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
  150. package/types/src/externalBook/ExternalBookName.d.ts +96 -0
  151. package/types/src/externalBook/IExternalBook.d.ts +170 -18
  152. package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
  153. package/types/src/externalBook/index.d.ts +1 -0
  154. package/types/src/fill/IStroke.d.ts +1 -1
  155. package/types/src/filter/IFilter.d.ts +29 -4
  156. package/types/src/font/IFont.d.ts +17 -0
  157. package/types/src/history/IHistory.d.ts +3 -2
  158. package/types/src/i18n/LanguagePack.d.ts +12 -4
  159. package/types/src/index.d.ts +3 -0
  160. package/types/src/io/AbstractBackingStore.d.ts +24 -1
  161. package/types/src/io/ArrayBackingStore.d.ts +1 -1
  162. package/types/src/io/EmbeddedPart.d.ts +20 -0
  163. package/types/src/io/IEmbeddedPart.d.ts +63 -0
  164. package/types/src/io/IWorkbookIO.d.ts +185 -18
  165. package/types/src/io/WorkbookIO.d.ts +9 -0
  166. package/types/src/io/WorkbookOrigin.d.ts +20 -11
  167. package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
  168. package/types/src/io/_XmlFragment.d.ts +49 -0
  169. package/types/src/io/index.d.ts +1 -0
  170. package/types/src/lib/file/file.browser.d.ts +19 -5
  171. package/types/src/lib/file/file.node.d.ts +5 -0
  172. package/types/src/lib/utils/_Utils.d.ts +11 -0
  173. package/types/src/lib/utils/utils.browser.d.ts +9 -3
  174. package/types/src/license/license-key.d.ts +27 -0
  175. package/types/src/listener/IListener.d.ts +12 -7
  176. package/types/src/listener/ListenerEmitter.d.ts +46 -5
  177. package/types/src/model/AbstractModel.d.ts +14 -5
  178. package/types/src/movable/Control.d.ts +57 -0
  179. package/types/src/movable/IControl.d.ts +84 -0
  180. package/types/src/movable/IMovable.d.ts +23 -1
  181. package/types/src/movable/IMovableCollection.d.ts +2 -0
  182. package/types/src/movable/Movable.d.ts +4 -6
  183. package/types/src/movable/MovableCollection.d.ts +7 -7
  184. package/types/src/movable/index.d.ts +4 -0
  185. package/types/src/named/AbstractNamed.d.ts +1 -1
  186. package/types/src/named/INamed.d.ts +4 -1
  187. package/types/src/named/INamedCollection.d.ts +26 -0
  188. package/types/src/named/NamedCollection.d.ts +16 -15
  189. package/types/src/numFmt/BuiltInFormats.d.ts +15 -7
  190. package/types/src/numFmt/IFormatEngine.d.ts +2 -0
  191. package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
  192. package/types/src/person/IPerson.d.ts +99 -0
  193. package/types/src/person/IPersonCollection.d.ts +51 -0
  194. package/types/src/person/Person.d.ts +32 -0
  195. package/types/src/person/PersonCollection.d.ts +49 -0
  196. package/types/src/person/index.d.ts +3 -0
  197. package/types/src/picture/IPicture.d.ts +2 -0
  198. package/types/src/picture/Picture.d.ts +2 -0
  199. package/types/src/pivot/IPivotTable.d.ts +107 -0
  200. package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
  201. package/types/src/pivot/PivotTable.d.ts +57 -0
  202. package/types/src/pivot/PivotTableCollection.d.ts +25 -0
  203. package/types/src/pivot/index.d.ts +6 -0
  204. package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
  205. package/types/src/primitives/Criteria.d.ts +1 -1
  206. package/types/src/primitives/LambdaBrand.d.ts +21 -0
  207. package/types/src/primitives/PrimitiveUtils.d.ts +56 -19
  208. package/types/src/primitives/Range.d.ts +102 -24
  209. package/types/src/primitives/RangeStats.d.ts +24 -1
  210. package/types/src/primitives/ReferenceRange.d.ts +42 -0
  211. package/types/src/primitives/Runtime.d.ts +15 -2
  212. package/types/src/primitives/stats/FrequencyStats.d.ts +9 -0
  213. package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
  214. package/types/src/primitives/stats/SortedNumbers.d.ts +2 -0
  215. package/types/src/primitives/stats/index.d.ts +1 -0
  216. package/types/src/print/IPrint.d.ts +0 -22
  217. package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
  218. package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
  219. package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
  220. package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
  221. package/types/src/protection/DefaultProtection.d.ts +12 -1
  222. package/types/src/protection/IProtection.d.ts +36 -2
  223. package/types/src/reference/ReferenceUtils.d.ts +80 -0
  224. package/types/src/reference/index.d.ts +2 -0
  225. package/types/src/resource/IResource.d.ts +21 -1
  226. package/types/src/resource/IResourceCollection.d.ts +9 -1
  227. package/types/src/resource/ResourceCollection.d.ts +6 -6
  228. package/types/src/scripting/FunctionCollection.d.ts +41 -11
  229. package/types/src/scripting/IFunctionCollection.d.ts +41 -0
  230. package/types/src/scripting/IModule.d.ts +25 -0
  231. package/types/src/scripting/IModuleCollection.d.ts +17 -0
  232. package/types/src/scripting/IScript.d.ts +18 -0
  233. package/types/src/scripting/Module.d.ts +34 -6
  234. package/types/src/scripting/ModuleCollection.d.ts +17 -12
  235. package/types/src/scripting/Runtime.d.ts +15 -0
  236. package/types/src/scripting/Scripts.d.ts +2 -0
  237. package/types/src/scripting/TypedFunction.d.ts +151 -18
  238. package/types/src/scripting/_FunctionIndex.d.ts +5 -0
  239. package/types/src/scripting/_ModuleUtils.d.ts +11 -1
  240. package/types/src/scripting/_ScriptUtils.d.ts +3 -0
  241. package/types/src/scripting/declarations.browser.d.ts +10 -0
  242. package/types/src/scripting/declarations.d.ts +49 -0
  243. package/types/src/scripting/declarations.node.d.ts +9 -0
  244. package/types/src/scripting/index.d.ts +3 -0
  245. package/types/src/selection/IRangeSelection.d.ts +9 -4
  246. package/types/src/selection/RangeSelection.d.ts +2 -0
  247. package/types/src/shape/IShape.d.ts +41 -3
  248. package/types/src/shape/Shape.d.ts +10 -0
  249. package/types/src/shape/_ShapeXml.d.ts +28 -0
  250. package/types/src/sheet/CellRegion.d.ts +6 -0
  251. package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
  252. package/types/src/sheet/ISheet.d.ts +224 -41
  253. package/types/src/sheet/ISheetCollection.d.ts +2 -5
  254. package/types/src/sheet/NamedCellRange.d.ts +16 -7
  255. package/types/src/sheet/Sheet.d.ts +749 -114
  256. package/types/src/sheet/SheetCell.d.ts +81 -21
  257. package/types/src/sheet/SheetCollection.d.ts +19 -8
  258. package/types/src/sheet/SheetRange.d.ts +62 -14
  259. package/types/src/sheet/SheetRanges.d.ts +4 -6
  260. package/types/src/sheet/_CellBuffer.d.ts +214 -0
  261. package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
  262. package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
  263. package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
  264. package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
  265. package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
  266. package/types/src/sheet/_SheetAutoFitUtils.d.ts +2 -2
  267. package/types/src/sheet/_SheetEvents.d.ts +43 -0
  268. package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
  269. package/types/src/sheet/_SheetIntents.d.ts +250 -0
  270. package/types/src/sheet/_SheetMutations.d.ts +179 -59
  271. package/types/src/sheet/_SheetStateReader.d.ts +16 -10
  272. package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
  273. package/types/src/sheet/_SheetUtils.d.ts +2 -18
  274. package/types/src/sheet/_WatchAnchor.d.ts +93 -0
  275. package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
  276. package/types/src/sheet/spatial/index.d.ts +1 -0
  277. package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
  278. package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
  279. package/types/src/sheet/style/_Resolvers.d.ts +5 -3
  280. package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
  281. package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
  282. package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
  283. package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
  284. package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
  285. package/types/src/sheetView/ISheetView.d.ts +45 -1
  286. package/types/src/sheetView/SheetView.d.ts +11 -0
  287. package/types/src/slicer/ISlicer.d.ts +2 -0
  288. package/types/src/slicer/Slicer.d.ts +2 -0
  289. package/types/src/sort/ISort.d.ts +2 -0
  290. package/types/src/string/IStringCollection.d.ts +5 -0
  291. package/types/src/string/StringCollection.d.ts +6 -6
  292. package/types/src/style/INamedStyleCollection.d.ts +72 -0
  293. package/types/src/style/IStyle.d.ts +30 -10
  294. package/types/src/style/IStyleCollection.d.ts +63 -42
  295. package/types/src/style/ITableStyleCollection.d.ts +89 -0
  296. package/types/src/style/NamedStyleCollection.d.ts +39 -0
  297. package/types/src/style/StyleCollection.d.ts +41 -5
  298. package/types/src/style/TableStyleCollection.d.ts +49 -0
  299. package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
  300. package/types/src/style/index.d.ts +4 -0
  301. package/types/src/table/AnchoredTable.d.ts +644 -68
  302. package/types/src/table/AutoTable.d.ts +5 -5
  303. package/types/src/table/ITable.d.ts +228 -30
  304. package/types/src/table/ITableCollection.d.ts +2 -0
  305. package/types/src/table/TableCollection.d.ts +19 -8
  306. package/types/src/table/_FilterField.d.ts +7 -5
  307. package/types/src/table/_NamedTable.d.ts +17 -1
  308. package/types/src/table/_NamedTableSource.d.ts +1 -0
  309. package/types/src/table/_SortField.d.ts +2 -0
  310. package/types/src/table/_TableColumn.d.ts +13 -2
  311. package/types/src/table/_TableMessages.d.ts +1 -0
  312. package/types/src/table/_TableUtils.d.ts +40 -0
  313. package/types/src/text/Bullet.d.ts +4 -0
  314. package/types/src/text/ITextFrame.d.ts +25 -1
  315. package/types/src/text/TextBoxAlignment.d.ts +15 -6
  316. package/types/src/text/TextFrame.d.ts +4 -0
  317. package/types/src/text/TextLine.d.ts +4 -0
  318. package/types/src/text/TextParagraph.d.ts +4 -0
  319. package/types/src/text/TextRun.d.ts +9 -0
  320. package/types/src/text/TextStacked.d.ts +83 -0
  321. package/types/src/text/index.d.ts +1 -0
  322. package/types/src/theme/ITheme.d.ts +2 -0
  323. package/types/src/theme/IThemeCollection.d.ts +2 -0
  324. package/types/src/theme/ThemeCollection.d.ts +8 -7
  325. package/types/src/transaction/ITransaction.d.ts +238 -36
  326. package/types/src/transaction/Transaction.d.ts +99 -11
  327. package/types/src/type/AbstractCollection.d.ts +101 -0
  328. package/types/src/type/ICollection.d.ts +117 -0
  329. package/types/src/type/ITypes.d.ts +9 -7
  330. package/types/src/type/index.d.ts +1 -0
  331. package/types/src/utils/_CSSUtils.d.ts +3 -3
  332. package/types/src/workbook/IWorkbook.d.ts +171 -40
  333. package/types/src/workbook/Workbook.d.ts +103 -7
  334. package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
  335. package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
  336. package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
  337. package/types/src/workbookView/IWorkbookView.d.ts +12 -0
  338. package/types/src/workbookView/WorkbookView.d.ts +5 -0
  339. package/browser/cjs/BatsV2UUraVDCRXm.cjs +0 -57
  340. package/browser/cjs/CUz53T65cRGQRgvv.cjs +0 -33
  341. package/browser/cjs/DU0kYUtdFa3jK-im.cjs +0 -1
  342. package/browser/cjs/Dv4yIPLV98M5zLHa.cjs +0 -1
  343. package/browser/esm/6JKSOvc5czaQB2Bj.mjs +0 -109
  344. package/browser/esm/BtuJ9AGzeURtAsGo.mjs +0 -51241
  345. package/browser/esm/DGU6sM25u0EWCKl1.mjs +0 -824
  346. package/browser/esm/f2G3QRgEbvFJcoa2.mjs +0 -4436
  347. package/node/esm/-pxdn3M3tc6PLHs7.mjs +0 -114
  348. package/node/esm/0n5bslM9jhO1JnI2.mjs +0 -843
  349. package/types/src/cellRange/_GraphNode.d.ts +0 -38
  350. package/types/src/dataValidation/_Utils.d.ts +0 -10
  351. package/types/src/sheet/listener/RangesListener.d.ts +0 -32
  352. package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
  353. package/types/src/sheet/listener/index.d.ts +0 -3
@@ -0,0 +1,96 @@
1
+ import { IExternalBook } from './IExternalBook';
2
+ /**
3
+ * The two halves of a scope that names an external book: how the book was written, and the sheet
4
+ * (if any) after it.
5
+ *
6
+ * @remarks
7
+ * `[1]Sheet1` -> `{ book: '1', positional: true, sheetName: 'Sheet1' }`
8
+ * `[1]` -> `{ book: '1', positional: true, sheetName: null }` — the `[1]!Name` form
9
+ * `[Budget.xlsx]Sheet1` -> `{ book: 'Budget.xlsx', positional: false, ... }`
10
+ * `C:\d\[Budget.xlsx]Sheet1` -> `{ book: 'Budget.xlsx', dir: 'C:\d\', positional: false, ... }`
11
+ */
12
+ export interface ExternalScopeParts {
13
+ /** The text inside the brackets — a position (`1`) or a file name (`Budget.xlsx`). */
14
+ book: string;
15
+ /** Whether {@link book} is a `[n]` position rather than a file name. */
16
+ positional: boolean;
17
+ /** Anything before the `[`, kept verbatim — a directory or URL prefix, `''` when there is none. */
18
+ dir: string;
19
+ /** The sheet after the `]`, or `null` for the book-scoped `[1]!Name` form. */
20
+ sheetName: string | null;
21
+ }
22
+ /**
23
+ * Splits a sheet scope that carries an external book prefix, or `null` if it carries none.
24
+ *
25
+ * @remarks
26
+ * Quotes are the caller's problem: the scope reaching here has already been unquoted by the parser
27
+ * (`'[1]P3.1'!` and `[1]P3.1!` both arrive as `[1]P3.1`), which is the whole reason a book and its
28
+ * sheet are ONE symbol rather than two.
29
+ */
30
+ export declare function parseExternalScope(scope: string): ExternalScopeParts | null;
31
+ /**
32
+ * The name Excel writes INSIDE the brackets — `Budget.xlsx` in `[Budget.xlsx]Sheet1`: the last
33
+ * segment of the book's first source, URL-decoded.
34
+ *
35
+ * @remarks
36
+ * A free function rather than a member of {@link IExternalBook}, deliberately. It is a projection of
37
+ * `getSources()`, and "the file's name" is already `IWorkbookIO.Origin`'s vocabulary, where
38
+ * `getName()` is the name WITHOUT its extension and `getExtension()` is separate. A second,
39
+ * conflicting spelling of that noun on a neighbouring interface is how the two get confused.
40
+ *
41
+ * The `book` role entry is the path the source is opened from and is sorted first by the reader, so
42
+ * the first entry is the one to read. An `xlPathMissing` target is a bare name rather than a URI and
43
+ * has no separator to split on, which this handles by finding none.
44
+ */
45
+ export declare function externalBookFileName(book: IExternalBook): string;
46
+ /**
47
+ * Excel's source-CLOSED spelling of a scope into this book: `C:\dir\[Book.xlsx]Sheet1`, unquoted.
48
+ *
49
+ * @remarks
50
+ * This is the form Excel's own formula bar shows for a book it cannot see, which is the state every
51
+ * book is in until a resolver opens one (DESIGN-EXTERNAL-LINKS §4B). The caller quotes it —
52
+ * `sheetNameToString` does, since a path carries separators no sheet name may.
53
+ *
54
+ * The directory is the first source that carries one: a book Excel recorded by a RELATIVE path
55
+ * (`NamesSource.xlsx`, a sibling of the host) keeps its absolute location in the xxl21
56
+ * `alternateUrls` companion, and Excel's formula bar shows that location, not the bare name — a
57
+ * bare name is the OPEN spelling ({@link externalBookOpenName}).
58
+ *
59
+ * @param sheetName Omitted for the book-scoped `[1]!Name` form, which shows as `C:\dir\[Book.xlsx]`.
60
+ */
61
+ export declare function externalBookClosedName(book: IExternalBook, sheetName?: string | null): string;
62
+ /**
63
+ * The relationship type a book's own part records for the path it is opened from — what
64
+ * {@link sourceEntryFromPath} writes, and what the xlsx reader finds on nearly every book.
65
+ */
66
+ export declare const EXTERNAL_LINK_PATH_REL_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath";
67
+ /**
68
+ * The source entry Excel would record for a path a user typed — the inverse of
69
+ * {@link externalBookClosedName}'s directory half, so a minted book displays back as it was typed.
70
+ *
71
+ * @remarks
72
+ * A Windows path becomes a `file:///` URI with forward slashes and percent-encoding, a UNC path a
73
+ * `file://server/share/…` one, and a URL or a bare relative name is kept verbatim — the three
74
+ * target shapes measured in the corpus (DESIGN-EXTERNAL-LINKS §2.2).
75
+ */
76
+ export declare function sourceEntryFromPath(path: string): IExternalBook.SourceEntry;
77
+ /**
78
+ * WHERE the source file is, as a path a reader can act on: `C:\dir\Book.xlsx`,
79
+ * `\server\share\Book.xlsx`, `https://host/Book.xlsx`. `null` when no source carries a
80
+ * location at all.
81
+ *
82
+ * @remarks
83
+ * NOT {@link externalBookClosedName}, which is a formula SPELLING (bracketed, and about the book's
84
+ * own recorded path). This answers the different question a links pane asks — "which file is
85
+ * this?" — and so it skips a source that records only a bare name: an `xlPathMissing` rel, or a
86
+ * relative `book` path whose absolute companion (the xxl21 `alternateUrls` extension) is the entry
87
+ * that actually locates the file. Sources are searched in order, so the book's own path still wins
88
+ * whenever it carries a directory.
89
+ */
90
+ export declare function externalBookLocation(book: IExternalBook): string | null;
91
+ /**
92
+ * Excel's source-OPEN spelling: `[Book.xlsx]Sheet1`. Used once a resolver holds the book, and as
93
+ * the form a user may type in either state.
94
+ */
95
+ export declare function externalBookOpenName(book: IExternalBook, sheetName?: string | null): string;
96
+ //# sourceMappingURL=ExternalBookName.d.ts.map
@@ -1,24 +1,50 @@
1
+ import { IRange } from '@sheetxl/primitives';
1
2
  import { Tuple } from '../collections';
2
3
  import { ICell } from '../cell';
4
+ import { ITransaction } from '../transaction';
3
5
  /**
4
6
  * A cached snapshot of another workbook, referenced from a formula as `[n]Sheet1!$A$1`.
5
7
  *
6
8
  * @remarks
7
- * Excel's external link is not a live reference — it is the cache plus enough identity to go
8
- * re-fetch the source. See the design doc for the full model:
9
+ * Excel's external link is not a live reference — it is the cache plus enough to go re-fetch the
10
+ * source. See the design doc for the full model:
9
11
  * `private-assets/design/calc/DESIGN-EXTERNAL-LINKS.md`.
10
12
  *
11
- * Read-only. There is no `setPath`/`breakLinks` here yet — authoring lands with the resolver API
12
- * (design doc §4C), not this phase.
13
+ * Two members read as "which book is this", and they answer different questions:
14
+ *
15
+ * | member | answers | persisted | unique |
16
+ * | --- | --- | --- | --- |
17
+ * | {@link getSources} | WHERE the source file is | yes, in the file | **no** — two books can both be `Budget.xlsx` |
18
+ * | {@link getId} | WHICH book this is, to us | no, minted per load | yes |
19
+ *
20
+ * They cannot collapse into one: a path cannot be the key, because two books may share one — hence
21
+ * a runtime id that is not one. {@link getDisplayName} is a projection of {@link getSources}, not a
22
+ * third identity.
23
+ *
24
+ * A book has no position member. The `n` in `[n]` is where the SOURCE FILE stores this book in its
25
+ * list, it renumbers when another book is removed, and no surface the reader sees spells one — so
26
+ * it belongs to {@link IExternalBookCollection}, which is what orders them, and not to the book.
27
+ *
28
+ * A book is immutable. Adding, removing and breaking one are the collection's operations
29
+ * ({@link IExternalBookCollection}); what a book itself answers beyond its snapshot is
30
+ * {@link getDependents} — which formulas cite it.
13
31
  */
14
32
  export interface IExternalBook {
15
33
  /**
16
- * The book's identity, as read from its part's own relationships — an ORDERED list, not a single
17
- * path with optional alternates. A book can carry several of these at once (`externalLinkPath`,
18
- * `xlExternalLinkPath/xlPathMissing`, `externalLinkLongPath`, and the xxl21 `alternateUrls`
19
- * extension are all instances of this one shape).
34
+ * Where the source workbook is — read from this book's own part relationships.
35
+ *
36
+ * @remarks
37
+ * An ORDERED list, not one path with optional alternates: a book can carry several at once
38
+ * (`externalLinkPath`, `xlExternalLinkPath/xlPathMissing`, `externalLinkLongPath` and the xxl21
39
+ * `alternateUrls` extension are all instances of this one shape), and the entry the book is opened
40
+ * from is sorted first. A LOCATION, never a key — two books can both be `Budget.xlsx`, which is
41
+ * exactly why {@link getId} exists.
42
+ *
43
+ * Deliberately NOT an {@link IWorkbookIO.Origin}: an origin is a live, listenable handle the IO
44
+ * layer owns and can write back to, and this is a dead `(relType, target)` pair the source file
45
+ * recorded. Turning one into the other is what a phase-E locator does.
20
46
  */
21
- getIdentity(): readonly IExternalBook.IdentityEntry[];
47
+ getSources(): readonly IExternalBook.SourceEntry[];
22
48
  /**
23
49
  * The source book's sheet names, in its own order — the ONLY names the book is known by.
24
50
  *
@@ -28,23 +54,94 @@ export interface IExternalBook {
28
54
  */
29
55
  getSheetNames(): readonly string[];
30
56
  /**
31
- * The source book's own defined names, as seen at cache time — raw, uncompiled text.
57
+ * The source book's own defined names, as seen at cache time — raw text, as the part spells it.
32
58
  *
33
59
  * @remarks
34
- * Parsing `refersTo` into something evaluable is phase 2/3's job (design doc §5). Kept verbatim
35
- * here so nothing is lost between read and then.
60
+ * `refersTo` is what Excel cached: a leading `=` and quoted sheet names of the SOURCE
61
+ * (`='Data Sheet'!$B$2`), `#REF!` for a name that held an expression rather than a reference, and
62
+ * never a `sheetId` — Excel flattens a sheet-scoped source name into the book's namespace. Kept
63
+ * verbatim; the engine compiles it inside the book (`[1]!Name` computes from the cache).
36
64
  */
37
65
  getDefinedNames(): readonly IExternalBook.DefinedNameEntry[];
38
66
  /**
39
67
  * The cached cell values for one of the book's sheets, or `null` if that sheet was never cached.
40
68
  *
41
69
  * @remarks
42
- * **Sparse, and uncached is not the same as empty.** Values only — no format, no style, no
43
- * comment; a cached date is a plain serial (design doc §2.5).
70
+ * **Sparse.** A cell the cache does not hold — and a sheet it holds nothing for — reads as a
71
+ * BLANK cell, which is what Excel computes with the source closed (design doc §6 items 1/2).
72
+ * Values only — no format, no style, no comment; a cached date is a plain serial (§2.5).
44
73
  *
45
74
  * @param sheetIndex Position in {@link getSheetNames}, matching the XML's `sheetId` (0-based).
46
75
  */
47
76
  getSheetData(sheetIndex: number): IExternalBook.SheetData | null;
77
+ /**
78
+ * Which book this is, to us — stable for the life of the workbook and **never persisted**.
79
+ *
80
+ * @remarks
81
+ * `[n]` is a POSITION, not a key: removing a book renumbers every citation after it. So a compiled
82
+ * formula stores this id, and the `[n]` is projected from the collection's ordering
83
+ * (the collection's ordering) whenever canonical text is produced. Same arrangement
84
+ * `NamedFormulaCollection` uses for a named formula. Minted at
85
+ * construction; a `.sxl` round trip mints new ones.
86
+ */
87
+ getId(): string;
88
+ /**
89
+ * How a scope into this book SPELLS, unquoted — Excel's source-closed form
90
+ * (`C:\dir\[Budget.xlsx]Sheet1`) while the book is closed, its source-open form
91
+ * (`[Budget.xlsx]Sheet1`) once a resolver holds it.
92
+ *
93
+ * @remarks
94
+ * A readout of the book's state, not a preference — see DESIGN-EXTERNAL-LINKS §4B. Until phase E
95
+ * there is no resolver, so this is always the closed form. The caller quotes it.
96
+ *
97
+ * @param sheetName Omitted for the book-scoped `[1]!Name` form.
98
+ */
99
+ getDisplayName(sheetName?: string | null): string;
100
+ /**
101
+ * Every formula block that cites this book — directly, through a sheet of it, or as `[n]!Name`.
102
+ *
103
+ * @remarks
104
+ * Derived from the compiled formulas, never stored: the same index a defined name's dependents
105
+ * come from, so it is exact and current after any edit. A block on a sheet has that sheet's
106
+ * stable id as its `scope`; a block whose `scope` is a defined name's id is that name's body,
107
+ * which cites the book on behalf of everything that uses the name. A block citing the book
108
+ * through two sheets is listed once.
109
+ *
110
+ * Empty until the calculation engine has compiled the workbook's formulas.
111
+ */
112
+ getDependents(): readonly IRange.Coords[];
113
+ /**
114
+ * Removes this book, renumbering every later `[n]`. One undoable step.
115
+ *
116
+ * @remarks
117
+ * A formula still citing the book is NOT rewritten: it keeps the slot's id, images as `#REF!`
118
+ * and computes `#REF!` — so an undo, which brings the slot and its id back, heals it. To turn
119
+ * citations into values first, as Excel's Break Links does, use {@link breakLink}. A book that
120
+ * is already gone is left alone.
121
+ */
122
+ delete(txOptions?: ITransaction.OperationOptions): void;
123
+ /**
124
+ * Excel's Break Link: every cell formula that cites this book becomes its current values (the
125
+ * whole formula, not only the external operand), then the book is removed. One undoable step.
126
+ *
127
+ * @remarks
128
+ * A defined name that cites the book is left as it is and images as `#REF!` afterwards.
129
+ * {@link IExternalBookCollection.breakAll} is this for every book. A book that is already gone
130
+ * is left alone.
131
+ */
132
+ breakLink(txOptions?: ITransaction.OperationOptions): void;
133
+ /**
134
+ * Re-reads this book from its source and replaces the cache — Excel's Refresh on a row of the
135
+ * Workbook Links pane.
136
+ *
137
+ * @remarks
138
+ * Needs a resolver (`ICellContainerOptions.externalBookResolver`, given when the workbook is
139
+ * built); without one every book is `'unavailable'` and nothing changes, which is the state a
140
+ * workbook is in until a host supplies one (DESIGN-EXTERNAL-LINKS §4D). A replaced cache is one undoable step, and every formula
141
+ * citing the book reads the new values. A resolver that throws leaves the cache as it was and
142
+ * marks each cached sheet `refreshError`, as Excel records a refresh it could not complete.
143
+ */
144
+ refresh(): Promise<IExternalBook.RefreshResult>;
48
145
  /**
49
146
  * For runtime type checking.
50
147
  */
@@ -53,7 +150,8 @@ export interface IExternalBook {
53
150
  }
54
151
  export declare namespace IExternalBook {
55
152
  /**
56
- * One `(relTypeUri, target)` pair from the book part's own relationships.
153
+ * One `(relTypeUri, target)` pair from the book part's own relationships — one place the source
154
+ * workbook may be found.
57
155
  *
58
156
  * @remarks
59
157
  * `type` is the full relationship-type URI (not a shorthand) — it is what tells apart an
@@ -61,9 +159,20 @@ export declare namespace IExternalBook {
61
159
  * `externalLinkLongPath`, and an xxl21 `alternateUrls` entry. Emitting one under a hard-coded rel
62
160
  * type would silently rewrite what the source file said.
63
161
  */
64
- interface IdentityEntry {
162
+ interface SourceEntry {
65
163
  type: string;
66
164
  target: string;
165
+ /**
166
+ * How the book's own XML refers to this entry, when it refers to it at all: `book` is the path
167
+ * the book is opened from, `absoluteUrl` its 2021 cloud-URL companion.
168
+ *
169
+ * @remarks
170
+ * Not derivable from {@link type} — the two can carry the SAME relationship type (measured on
171
+ * task 40234, where a relative and an absolute `externalLinkPath` sit on one part). Absent for
172
+ * an entry nothing points at, which is a real shape too: an `xlPathMissing` or
173
+ * `externalLinkLongPath` rel rides along on the part without being referenced from it.
174
+ */
175
+ role?: 'book' | 'absoluteUrl';
67
176
  }
68
177
  interface DefinedNameEntry {
69
178
  name: string;
@@ -72,6 +181,45 @@ export declare namespace IExternalBook {
72
181
  /** Position in {@link IExternalBook.getSheetNames}, when the name is sheet-scoped. */
73
182
  sheetIndex?: number;
74
183
  }
184
+ /**
185
+ * A source book's current contents, as a resolver answers them — the cache that replaces the
186
+ * book's. The same three parts the file caches; the book's sources are not part of it.
187
+ */
188
+ interface Snapshot {
189
+ sheetNames: readonly string[];
190
+ definedNames?: readonly DefinedNameEntry[];
191
+ /** One entry per sheet the source holds values for; a sheet absent here reads blank. */
192
+ sheetDataSet?: readonly SheetData[];
193
+ }
194
+ /** What one {@link IExternalBook.refresh} came to. */
195
+ interface RefreshResult {
196
+ bookId: string;
197
+ /**
198
+ * `'refreshed'` — the cache was replaced from the source. `'unavailable'` — nothing could open
199
+ * the source: no resolver is installed, or the resolver declined this book; the cache stands.
200
+ * `'failed'` — the resolver threw; the cache stands and its sheets are marked `refreshError`.
201
+ */
202
+ status: 'refreshed' | 'unavailable' | 'failed';
203
+ /** For `'failed'`: what went wrong. */
204
+ error?: string;
205
+ }
206
+ /**
207
+ * Opens a book's source and answers its current contents, or declines.
208
+ *
209
+ * @remarks
210
+ * DESIGN-EXTERNAL-LINKS §4D: the default one (phase E) is `WorkbookIO.read` with
211
+ * `calcOnLoad: 'none'`, taking the source's own cached values and never evaluating it — that is
212
+ * what Excel's cache holds, and it keeps A-cites-B-cites-C from becoming a crawl. An extension
213
+ * point for a source that is not a workbook file. WHETHER a source may be opened at all — an
214
+ * untrusted file naming an arbitrary path or URL — is the host's decision, made before this is
215
+ * asked; a resolver never fetches on its own initiative, only on {@link IExternalBook.refresh}.
216
+ */
217
+ interface IResolver {
218
+ /** The name to show for a book, overriding its own spelling. Sync, fetches nothing. */
219
+ displayName?(book: IExternalBook): string | null;
220
+ /** The source's current contents, or `null` to decline (the cache stands). */
221
+ resolve(book: IExternalBook): Promise<Snapshot | null>;
222
+ }
75
223
  interface SheetData {
76
224
  /** Position in {@link IExternalBook.getSheetNames} this cache belongs to — the XML's `sheetId`, 0-based. */
77
225
  sheetIndex: number;
@@ -85,10 +233,14 @@ export declare namespace IExternalBook {
85
233
  data: Tuple.GridTuple<ICell.JSON>;
86
234
  }
87
235
  interface JSON {
88
- identity: IdentityEntry[];
236
+ /**
237
+ * Absent between the link visitor and `XLSXReader`: a visitor never sees its own part's sibling
238
+ * `.rels` file, so the reader attaches these afterwards. `getSources()` reads it as empty.
239
+ */
240
+ sources?: SourceEntry[];
89
241
  sheetNames: string[];
90
242
  definedNames?: DefinedNameEntry[];
91
- /** One entry per CACHED sheet, not per sheet — a sheet absent here was never cached (not empty). */
243
+ /** One entry per CACHED sheet, not per sheet — a sheet absent here was never cached, and reads blank. */
92
244
  sheetDataSet?: SheetData[];
93
245
  /** `mc:Ignorable="x14 xxl21"` was present on the part root — preserved so a future writer round-trips it. */
94
246
  mceIgnorable?: boolean;
@@ -1,20 +1,47 @@
1
1
  import { ICollection } from '../type';
2
+ import { ITransaction } from '../transaction';
3
+ import { IListener } from '../listener';
2
4
  import { IExternalBook } from './IExternalBook';
3
5
  /**
4
6
  * The workbook's external books, in `[n]` order.
5
7
  *
6
8
  * @remarks
7
- * **Positional, not an identity — see {@link IExternalBook}.** `[n]` in a formula is this
8
- * collection's index at read time; nothing in the source file names a book any other way. Read-only
9
- * for now: there is no `add`/`remove` here yet, matching the design doc's phase 1 scope (authoring
10
- * arrives with the resolver API in a later phase).
9
+ * **Positional, not a key — see {@link IExternalBook}.** `[n]` in a formula is this
10
+ * collection's index at read time; nothing in the source file names a book any other way.
11
+ *
12
+ * A link is created by a formula and removed by breaking it — Excel's model, and ours. Typing
13
+ * `'C:\path\[Budget.xlsx]Sheet1'!A1` into a cell adds a book here with an empty cache; {@link add}
14
+ * is the same step without the formula. {@link IExternalBook.breakLink} is what Excel's Workbook
15
+ * Links pane does: every citing formula becomes its values, then the slot goes.
11
16
  */
12
17
  export interface IExternalBookCollection extends ICollection<IExternalBook> {
13
18
  /**
14
- * The book that formula text `[n]` (1-based) addresses, or `null` if `n` is beyond what was
15
- * preserved on read, or its position is a DDE/OLE link (unmodeled — see {@link getItems}).
19
+ * The book carrying a runtime id, or `null` — for an unknown id and for a DDE/OLE gap alike,
20
+ * since a gap has an id but no book.
21
+ */
22
+ getById(id: string): IExternalBook | null;
23
+ /**
24
+ * Adds a book at the end — the next `[n]` — with an empty cache.
25
+ *
26
+ * @remarks
27
+ * This is the state Excel is in when it cannot find a link's source: the file round-trips, and
28
+ * Excel opens it and offers to update. Undoable.
29
+ *
30
+ * @param options Where the source is and, optionally, which sheets it has.
31
+ */
32
+ add(options: IExternalBookCollection.AddOptions, txOptions?: ITransaction.OperationOptions): IExternalBook;
33
+ /**
34
+ * {@link IExternalBook.breakLink} for every book, in one undoable step — the pane's Break all.
35
+ *
36
+ * @returns How many books were broken. Gaps stay: a DDE/OLE slot has nothing to value.
37
+ */
38
+ breakAll(txOptions?: ITransaction.OperationOptions): number;
39
+ /**
40
+ * {@link IExternalBook.refresh} for every book, in order — the pane's Refresh all.
41
+ *
42
+ * @returns One result per book. Without a resolver every one is `'unavailable'`.
16
43
  */
17
- getByIndex(n: number): IExternalBook | null;
44
+ refreshAll(): Promise<IExternalBook.RefreshResult[]>;
18
45
  /**
19
46
  * @returns The positional array, gaps included — `null` at index `i` means `[i+1]` is a DDE/OLE
20
47
  * link or otherwise unmodeled, not that it is absent. `null` overall if there are no entries at
@@ -25,5 +52,50 @@ export interface IExternalBookCollection extends ICollection<IExternalBook> {
25
52
  * For runtime type checking.
26
53
  */
27
54
  readonly isIExternalBookCollection: true;
55
+ /**
56
+ * Add Listeners.
57
+ *
58
+ * @see
59
+ * {@link IListener.ISource.addListeners}
60
+ */
61
+ addListeners(listeners: IExternalBookCollection.IListeners, options?: IListener.Options): IListener.Remove;
62
+ /** Closes the collection; the workbook's to call. */
63
+ close(): void;
64
+ }
65
+ export declare namespace IExternalBookCollection {
66
+ /**
67
+ * When the cached values of these books should be re-read from their sources, on open.
68
+ *
69
+ * @remarks
70
+ * `userSet` asks the user on open, `always` refreshes without asking, `never` uses the cache.
71
+ *
72
+ * The mode governs the books as a SET — no single book carries one — but it is read and written
73
+ * on the workbook (`IWorkbook.getUpdateLinks`), where Excel's object model and the file both
74
+ * keep it.
75
+ */
76
+ type UpdateLinks = 'always' | 'never' | 'userSet';
77
+ interface AddOptions {
78
+ /**
79
+ * Where the source workbook is: a path or URL (`C:\dir\Budget.xlsx`, `\\server\share\Budget.xlsx`,
80
+ * `https://host/Budget.xlsx`, or a bare `Budget.xlsx` relative to this workbook), or the
81
+ * full `(relType, target)` entries a file would record.
82
+ */
83
+ sources: string | readonly IExternalBook.SourceEntry[];
84
+ /** The source's sheet names, if known. A formula citing a sheet not listed here adds it. */
85
+ sheetNames?: readonly string[];
86
+ }
87
+ interface Events {
88
+ /**
89
+ * A book was added, removed or refreshed, or a sheet name was recorded on one. Fires once per
90
+ * change, and on the undo or redo of one.
91
+ */
92
+ onCollectionChange?(source: IExternalBookCollection): void;
93
+ /**
94
+ * Called once, when the workbook that owns these books closes.
95
+ */
96
+ onClose?(source: IExternalBookCollection): void;
97
+ }
98
+ interface IListeners extends IListener.Callbacks<IExternalBookCollection, IExternalBookCollection.Events> {
99
+ }
28
100
  }
29
101
  //# sourceMappingURL=IExternalBookCollection.d.ts.map
@@ -1,3 +1,4 @@
1
1
  export * from './IExternalBook';
2
2
  export * from './IExternalBookCollection';
3
+ export * from './ExternalBookName';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -238,7 +238,7 @@ export declare namespace IStroke {
238
238
  readonly Single: "none";
239
239
  readonly Double: "double";
240
240
  readonly ThickThin: "thickThin";
241
- readonly ThinThick: "thickThin";
241
+ readonly ThinThick: "thinThick";
242
242
  };
243
243
  type PresetMarkerShape = typeof PresetMarkerShape[keyof typeof PresetMarkerShape];
244
244
  const StrokeStyle: {
@@ -4,10 +4,16 @@ import { ICondition } from '../condition';
4
4
  import { ICellRange } from '../cellRange';
5
5
  /**
6
6
  * Filters are used to hide spans (rows or columns). that do not match a set of conditions.
7
+ *
8
+ * @remarks
9
+ * A column's filter ANDs with the other columns' (Excel's AutoFilter): setting one leaves the
10
+ * rest in place unless `replace` says otherwise. Every write returns a Promise that resolves once
11
+ * the rows are hidden; the criteria are written in the same transaction, so an `await` is what
12
+ * makes a read after the call see them.
7
13
  */
8
14
  export interface IFilter extends ICondition.Stateful, IFilter.IFilterable {
9
15
  /**
10
- * Returns the range this filter applies to.
16
+ * Returns the range this filter applies to: the column's data rows, header and totals excluded.
11
17
  *
12
18
  * @remarks
13
19
  * A filter is exactly one column of its table, which is why the singular is declared here rather
@@ -15,9 +21,24 @@ export interface IFilter extends ICondition.Stateful, IFilter.IFilterable {
15
21
  */
16
22
  getRange(): ICellRange;
17
23
  /**
18
- * Set the condition.
24
+ * Set the condition, `null` to clear this column's.
25
+ *
26
+ * @param condition The condition, or `null` to clear.
27
+ * @param replace If `true`, every other column's filter is dropped; omitted, they stay and this
28
+ * one ANDs with them. A column already filtered keeps its place in the level order.
29
+ * @param options Transaction options.
30
+ *
31
+ * @returns Resolves once the rows are hidden; one transaction, one undo step.
32
+ */
33
+ setCondition(condition: ICondition.Input | null, replace?: boolean, options?: ITransaction.OperationOptions): Promise<this>;
34
+ /**
35
+ * Re-runs every filter on the table with its current criteria.
36
+ */
37
+ apply(options?: ITransaction.OperationOptions): Promise<this>;
38
+ /**
39
+ * Clears this column's condition. The other columns' filters stay.
19
40
  */
20
- setCondition(condition: ICondition.Input, append?: boolean, options?: ITransaction.OperationOptions): void;
41
+ delete(options?: ITransaction.OperationOptions): Promise<this>;
21
42
  /**
22
43
  * The offset index from the range
23
44
  *
@@ -25,6 +46,8 @@ export interface IFilter extends ICondition.Stateful, IFilter.IFilterable {
25
46
  * This is relative to the table.
26
47
  */
27
48
  getIndex(): number;
49
+ /** For runtime type checking. */
50
+ readonly isIFilter: true;
28
51
  }
29
52
  /**
30
53
  * {@inheritDoc IFilter}
@@ -76,8 +99,10 @@ export declare namespace IFilter {
76
99
  * ``` ts
77
100
  * sheet.getRange('E:E').filter('>= 30');
78
101
  * ```
102
+ *
103
+ * @returns Resolves once the rows are hidden.
79
104
  */
80
- filter(condition?: ICondition.Input, options?: ITransaction.OperationOptions): this;
105
+ filter(condition?: ICondition.Input, options?: ITransaction.OperationOptions): Promise<this>;
81
106
  }
82
107
  }
83
108
  //# sourceMappingURL=IFilter.d.ts.map
@@ -152,9 +152,26 @@ export declare namespace IFont {
152
152
  readonly strikePosition?: number;
153
153
  readonly strikeThickness?: number;
154
154
  readonly italicAngle?: number;
155
+ /**
156
+ * The line pitch in px — what a line of this font advances by, and the height of a row sized
157
+ * to it: `ascent + descent + 2` (Excel's standard row height for the font; the 2 is the
158
+ * gridline gutter above and below the font box). Includes {@link lineGap}.
159
+ */
155
160
  readonly lineHeight: number;
161
+ /**
162
+ * The baseline's offset from the top of a {@link lineHeight} box, in px: where a renderer that
163
+ * paints the line as a box (a CSS line box) puts the alphabetic baseline.
164
+ */
156
165
  readonly baseline: number;
157
166
  readonly lineGap: number;
167
+ /**
168
+ * The font's ascent above the baseline in whole px at the measured size — GDI's `tmAscent`,
169
+ * which is what Excel lays text out with (the OS/2 `winAscent`, hinted where the font has a
170
+ * VDMX table).
171
+ */
172
+ readonly ascent: number;
173
+ /** The font's descent below the baseline in whole px — GDI's `tmDescent` (OS/2 `winDescent`). */
174
+ readonly descent: number;
158
175
  }
159
176
  interface MetricOptions {
160
177
  isBold?: boolean;
@@ -22,8 +22,9 @@ export declare namespace IHistory {
22
22
  * @template S The type of the source for `getSource``.
23
23
  * @template C The type of the coordinates the snapshot is bound to.
24
24
  * @template J The type of the JSON for `toJSON`.
25
+ * @template R What `copyTo` resolves with; the coordinates unless the source has more to report.
25
26
  */
26
- interface ISnapshot<D = any, S = any, C = any, J = any> {
27
+ interface ISnapshot<D = any, S = any, C = any, J = any, R = C> {
27
28
  /**
28
29
  * Copies the snapshot to the specified range.
29
30
  *
@@ -32,7 +33,7 @@ export declare namespace IHistory {
32
33
  *
33
34
  * @returns A promise that resolves when the copy is complete, or `void` if no asynchronous operation is required.
34
35
  */
35
- copyTo(destination: D, options?: IHistory.CopyToOptions): Promise<C> | C;
36
+ copyTo(destination: D, options?: IHistory.CopyToOptions): Promise<R> | R;
36
37
  /**
37
38
  * The source that created the snapshot.
38
39
  * This is used to quickly do comparisons.
@@ -1,5 +1,5 @@
1
1
  import { FormulaError } from '@sheetxl/primitives';
2
- import { MinifiedDescriptor } from '@sheetxl/scripting';
2
+ import { MinifiedDescriptor, MinifiedEnumDescriptors } from '@sheetxl/scripting';
3
3
  import { LanguagePack as BaseLanguagePack, LanguageTag } from '@sheetxl/utils';
4
4
  /**
5
5
  * The **spreadsheet-language plane** of a language pack (I18N-DESIGN.md Plane 3): function names,
@@ -56,10 +56,18 @@ export interface LanguagePack extends BaseLanguagePack {
56
56
  * descriptor. Values are {@link MinifiedDescriptor}s — the SAME shape the built-in
57
57
  * descriptor modules compile to, so a generated per-locale module IS a pack chunk with
58
58
  * no reshaping; `initializeFunctions` overlays it per-field over the built-in English.
59
+ *
60
+ * The module form may also carry `enums` — the copy for enum parameters, again the shape the
61
+ * descriptor modules compile to. A key is an enum id (`MatchMode`), which serves every function
62
+ * that declares an enum of that name, or `FUNCTION:EnumId` (`TEXTAFTER:MatchMode`) for the one
63
+ * function where the same name means something else. The qualified entry wins, per field.
59
64
  */
60
- functionHelp?: () => Promise<Record<string, MinifiedDescriptor> | {
61
- default: Record<string, MinifiedDescriptor>;
62
- }>;
65
+ functionHelp?: () => Promise<Record<string, MinifiedDescriptor> | FunctionHelpModule>;
66
+ }
67
+ /** The module form of a {@link LanguagePack.functionHelp} chunk. */
68
+ export interface FunctionHelpModule {
69
+ default: Record<string, MinifiedDescriptor>;
70
+ enums?: MinifiedEnumDescriptors;
63
71
  }
64
72
  /**
65
73
  * The active (or `tag`'s) spreadsheet-language pack — the MERGE of every contributor's plane: the
@@ -22,6 +22,7 @@ export * from './text';
22
22
  export * from './condition';
23
23
  export * from './sort';
24
24
  export * from './filter';
25
+ export * from './person';
25
26
  export * from './comment';
26
27
  export * from './hyperlink';
27
28
  export * from './numFmt';
@@ -30,7 +31,9 @@ export * from './resource';
30
31
  export * from './string';
31
32
  export * from './anchored';
32
33
  export * from './chart';
34
+ export * from './pivot';
33
35
  export * from './picture';
36
+ export * from './shape';
34
37
  export * from './scripting';
35
38
  export * from './calculation';
36
39
  export * from './address';