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

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 (564) hide show
  1. package/THIRD-PARTY-NOTICES.md +1 -1
  2. package/browser/esm/{B0HS42a7lga1k1U_.mjs → BEAY9XgKNx-bakXW.mjs} +2 -2
  3. package/browser/esm/BbSmt62FpFIpoVzu.mjs +392 -0
  4. package/browser/esm/BcHmrKHwMMOlzc9_.mjs +357 -0
  5. package/browser/esm/BgcZ-CoTbMfmyDJL.mjs +412 -0
  6. package/browser/esm/Bk7xxbdDpa7-sIwd.mjs +7 -0
  7. package/browser/esm/BqskM7wA8oPfFQue.mjs +20 -0
  8. package/browser/esm/Btg43M1Bf-ENDreu.mjs +540 -0
  9. package/browser/esm/BzLfNyc6OOShIErH.mjs +598 -0
  10. package/browser/esm/C9B0djuUarfNdoj0.mjs +466 -0
  11. package/browser/esm/{uyWBMSIxMlt8n5Z3.mjs → CSx9ed1JOs7K5BXO.mjs} +2 -2
  12. package/browser/esm/CYyv6uGjo10ig5FP.mjs +142 -0
  13. package/browser/esm/CZ5oa92wZEAXebgk.mjs +622 -0
  14. package/browser/esm/CdLZWVcH8cncBUPJ.mjs +849 -0
  15. package/browser/esm/Cgd5BnM3hg9RyUel.mjs +171 -0
  16. package/browser/esm/CjsUGJEQSbGjnH6R.mjs +1001 -0
  17. package/browser/esm/ClB5ix51roQOpZEr.mjs +7402 -0
  18. package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → Cqr3knDsBvoVZ6MN.mjs} +179 -202
  19. package/browser/esm/D4uVlrG0xEFctsSM.mjs +905 -0
  20. package/browser/esm/DOMHmhYzPcLVcpAW.mjs +7 -0
  21. package/browser/esm/DUvUK61b2_4pf4tG.mjs +484 -0
  22. package/browser/esm/De175LygU7ot4nQm.mjs +441 -0
  23. package/browser/esm/DhKkrCVASZ6Isvz6.mjs +527 -0
  24. package/browser/esm/Di58Ji1n--3Mgc_2.mjs +607 -0
  25. package/browser/esm/Dtoyt8q5RyGAlxCp.mjs +1141 -0
  26. package/browser/esm/Y79I7Sm8kjaYexhf.mjs +167 -0
  27. package/browser/esm/index.mjs +1472 -1023
  28. package/browser/esm/o8MFgcVXns987D6_.mjs +400 -0
  29. package/browser/esm/zqJOaweiXE9D8RY1.mjs +66681 -0
  30. package/licenses/dependencies.txt +209 -209
  31. package/node/esm/B6D7sSetrcOWLsKj.mjs +1135 -0
  32. package/node/esm/B9ljpEIZg6wOTzRE.mjs +142 -0
  33. package/node/esm/BH1v-E4Ro3bR7Znw.mjs +962 -0
  34. package/node/esm/BN9j8V9gCExMjVtJ.mjs +540 -0
  35. package/node/esm/{Cku7XiUvw1xrRasi.mjs → Bh4dv6tMjXX3X4nI.mjs} +1 -1
  36. package/node/esm/Bqd62L8KFgdS0Vou.mjs +7 -0
  37. package/node/esm/Bsx9uijd4X_SKV3L.mjs +360 -0
  38. package/node/esm/BtuY37FumvLE7EBo.mjs +629 -0
  39. package/node/esm/C6ZXsNyLXI6zA63X.mjs +402 -0
  40. package/node/esm/CCouEwT37f08qO3V.mjs +7 -0
  41. package/node/esm/CD9wbvufChVYYkrI.mjs +451 -0
  42. package/node/esm/CImNvdz1iP-lUlro.mjs +610 -0
  43. package/node/esm/CT0CN82y0_Qgoryk.mjs +7568 -0
  44. package/node/esm/CUQi5ZtMO02nhG0W.mjs +596 -0
  45. package/node/esm/CUUoseJmFsCf82bb.mjs +28 -0
  46. package/node/esm/CnSQ7MTXAUAyBOoS.mjs +911 -0
  47. package/node/esm/D7MfcID2Wf6l6VpC.mjs +171 -0
  48. package/node/esm/DCplLG93GfTs1vNw.mjs +1860 -0
  49. package/node/esm/DHUADiCmxNQS1ARz.mjs +417 -0
  50. package/node/esm/DMD12JUh7HJw2-jl.mjs +638 -0
  51. package/node/esm/DdFgXl-Ux2cMBTs_.mjs +15 -0
  52. package/node/esm/DefYISWfdZJFx57m.mjs +255 -0
  53. package/node/esm/Ds0d8zXzmgOu3MGx.mjs +403 -0
  54. package/node/esm/MiU4rDOiocmJ-9Ry.mjs +1783 -0
  55. package/node/esm/index.mjs +51616 -39665
  56. package/package.json +15 -16
  57. package/resources/contents.json +64 -0
  58. package/resources/fonts/arial-bold-italic.metrics.json +139 -0
  59. package/resources/fonts/arial-bold.metrics.json +139 -0
  60. package/resources/fonts/arial-italic.metrics.json +139 -0
  61. package/resources/fonts/arial-regular.metrics.json +139 -0
  62. package/resources/fonts/calibri-bold-italic.metrics.json +137 -0
  63. package/resources/fonts/calibri-bold.metrics.json +137 -0
  64. package/resources/fonts/calibri-italic.metrics.json +137 -0
  65. package/resources/fonts/calibri-regular.metrics.json +137 -0
  66. package/resources/fonts/cambria-bold-italic.metrics.json +66 -0
  67. package/resources/fonts/cambria-bold.metrics.json +66 -0
  68. package/resources/fonts/cambria-italic.metrics.json +66 -0
  69. package/resources/fonts/cambria-regular.metrics.json +66 -0
  70. package/resources/fonts/contents.json +126 -0
  71. package/resources/fonts/courier-new-bold-italic.metrics.json +143 -0
  72. package/resources/fonts/courier-new-bold.metrics.json +143 -0
  73. package/resources/fonts/courier-new-italic.metrics.json +143 -0
  74. package/resources/fonts/courier-new-regular.metrics.json +143 -0
  75. package/resources/fonts/times-new-roman-bold-italic.metrics.json +141 -0
  76. package/resources/fonts/times-new-roman-bold.metrics.json +141 -0
  77. package/resources/fonts/times-new-roman-italic.metrics.json +143 -0
  78. package/resources/fonts/times-new-roman-regular.metrics.json +141 -0
  79. package/resources/locales/de/model.msg.json +112 -12
  80. package/resources/locales/en/model.msg.json +119 -13
  81. package/types/scripting-api.json +8048 -0
  82. package/types/scripting-enums.json +277 -110
  83. package/types/scripting.d.ts +13077 -3224
  84. package/types/src/anchored/AbstractAnchored.d.ts +18 -8
  85. package/types/src/anchored/AnchoredMap.d.ts +2 -0
  86. package/types/src/anchored/IAnchoredMap.d.ts +52 -4
  87. package/types/src/autoFill/AutoFill.d.ts +316 -32
  88. package/types/src/autoFill/IAutoFill.d.ts +232 -15
  89. package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +42 -41
  90. package/types/src/border/index.d.ts +1 -1
  91. package/types/src/calculation/Calculation.d.ts +754 -49
  92. package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
  93. package/types/src/calculation/FormulaText.d.ts +82 -0
  94. package/types/src/calculation/ICalculation.d.ts +318 -81
  95. package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
  96. package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
  97. package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
  98. package/types/src/calculation/TokenType.d.ts +9 -0
  99. package/types/src/calculation/Types.d.ts +83 -2
  100. package/types/src/calculation/_CloneBoundary.d.ts +80 -0
  101. package/types/src/calculation/_TableRename.d.ts +13 -0
  102. package/types/src/calculation/compiler/ASTTypes.d.ts +71 -0
  103. package/types/src/calculation/compiler/CompilerUtils.d.ts +135 -44
  104. package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
  105. package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
  106. package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
  107. package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
  108. package/types/src/calculation/compiler/SRParser.d.ts +2 -1
  109. package/types/src/calculation/compiler/Types.d.ts +79 -9
  110. package/types/src/calculation/executor/CalcExecutor.d.ts +312 -33
  111. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
  112. package/types/src/calculation/executor/CircularReference.d.ts +2 -0
  113. package/types/src/calculation/formula/Formula.d.ts +58 -21
  114. package/types/src/calculation/formula/FormulaBlock.d.ts +125 -23
  115. package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
  116. package/types/src/calculation/formula/FunctionValues.d.ts +10 -0
  117. package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
  118. package/types/src/calculation/formula/LambdaValue.d.ts +46 -23
  119. package/types/src/calculation/formula/LazyValue.d.ts +96 -0
  120. package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
  121. package/types/src/calculation/formula/index.d.ts +1 -0
  122. package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
  123. package/types/src/calculation/functions/Operators.d.ts +8 -0
  124. package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
  125. package/types/src/calculation/grid/CalcGrid.d.ts +407 -158
  126. package/types/src/calculation/grid/CalcGridBackend.d.ts +493 -0
  127. package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
  128. package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
  129. package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
  130. package/types/src/calculation/grid/FormulaHost.d.ts +239 -0
  131. package/types/src/calculation/grid/ICalcGrid.d.ts +499 -141
  132. package/types/src/calculation/grid/_CalcRequest.d.ts +289 -0
  133. package/types/src/calculation/grid/index.d.ts +4 -0
  134. package/types/src/calculation/index.d.ts +2 -0
  135. package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
  136. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
  137. package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
  138. package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
  139. package/types/src/calculation/spatial/index.d.ts +1 -0
  140. package/types/src/calculation/state/CalcInputs.d.ts +41 -0
  141. package/types/src/calculation/state/CalcNode.d.ts +141 -30
  142. package/types/src/calculation/state/CalcScope.d.ts +37 -0
  143. package/types/src/calculation/state/CalcState.d.ts +22 -1
  144. package/types/src/calculation/state/CalculationContext.d.ts +50 -3
  145. package/types/src/calculation/state/IContextContainer.d.ts +129 -27
  146. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
  147. package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
  148. package/types/src/calculation/state/index.d.ts +1 -0
  149. package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
  150. package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
  151. package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
  152. package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
  153. package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
  154. package/types/src/calculation/symbol/index.d.ts +3 -2
  155. package/types/src/cell/ICell.d.ts +104 -29
  156. package/types/src/cell/ICellHeader.d.ts +24 -2
  157. package/types/src/cell/ICellProtection.d.ts +50 -10
  158. package/types/src/cellRange/ICellRange.d.ts +419 -79
  159. package/types/src/cellRange/ICellRanges.d.ts +23 -21
  160. package/types/src/chart/Chart.d.ts +41 -13
  161. package/types/src/chart/ChartCollection.d.ts +26 -0
  162. package/types/src/chart/IChart.d.ts +166 -12
  163. package/types/src/chart/IChartCollection.d.ts +25 -0
  164. package/types/src/chart/_ChartXml.d.ts +70 -0
  165. package/types/src/chart/index.d.ts +1 -3
  166. package/types/src/collections/ArraysGrid.d.ts +1 -1
  167. package/types/src/collections/IGrid.d.ts +1 -1
  168. package/types/src/collections/ISparseGrid.d.ts +9 -0
  169. package/types/src/collections/ISpatialMap.d.ts +59 -21
  170. package/types/src/collections/ImmutableList.d.ts +28 -0
  171. package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
  172. package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
  173. package/types/src/collections/RepeatingList.d.ts +7 -0
  174. package/types/src/collections/ScalarGrid.d.ts +50 -0
  175. package/types/src/collections/SparseGrid.d.ts +1 -1
  176. package/types/src/collections/SpatialMap.d.ts +13 -21
  177. package/types/src/collections/Tuple.d.ts +128 -16
  178. package/types/src/collections/_GridUtils.d.ts +19 -6
  179. package/types/src/collections/_RangeSweep.d.ts +97 -0
  180. package/types/src/collections/_SpatialUtils.d.ts +20 -2
  181. package/types/src/collections/index.d.ts +1 -0
  182. package/types/src/color/_BuiltInIndexDefs.d.ts +6 -0
  183. package/types/src/comment/Comment.d.ts +223 -0
  184. package/types/src/comment/CommentCollection.d.ts +40 -0
  185. package/types/src/comment/IComment.d.ts +340 -50
  186. package/types/src/comment/ICommentCollection.d.ts +90 -0
  187. package/types/src/comment/NoteMovable.d.ts +26 -0
  188. package/types/src/comment/_CommentUtils.d.ts +50 -0
  189. package/types/src/comment/_NoteBox.d.ts +50 -0
  190. package/types/src/comment/index.d.ts +1 -0
  191. package/types/src/condition/AnchoredConditional.d.ts +82 -17
  192. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +42 -12
  193. package/types/src/condition/BuiltInOperators/AfterEqualToOperator.d.ts +2 -0
  194. package/types/src/condition/BuiltInOperators/AfterOperator.d.ts +2 -0
  195. package/types/src/condition/BuiltInOperators/AndOperator.d.ts +3 -1
  196. package/types/src/condition/BuiltInOperators/AverageOperator.d.ts +2 -0
  197. package/types/src/condition/BuiltInOperators/BeforeEqualToOperator.d.ts +2 -0
  198. package/types/src/condition/BuiltInOperators/BeforeOperator.d.ts +2 -0
  199. package/types/src/condition/BuiltInOperators/BetweenOperator.d.ts +2 -0
  200. package/types/src/condition/BuiltInOperators/ColorOperator.d.ts +4 -0
  201. package/types/src/condition/BuiltInOperators/ContainsOperator.d.ts +2 -0
  202. package/types/src/condition/BuiltInOperators/EndsWithOperator.d.ts +2 -0
  203. package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +4 -1
  204. package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +5 -6
  205. package/types/src/condition/BuiltInOperators/GreaterThanEqualToOperator.d.ts +2 -0
  206. package/types/src/condition/BuiltInOperators/GreaterThanOperator.d.ts +2 -0
  207. package/types/src/condition/BuiltInOperators/IconOperator.d.ts +4 -0
  208. package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +22 -5
  209. package/types/src/condition/BuiltInOperators/LessThanEqualToOperator.d.ts +2 -0
  210. package/types/src/condition/BuiltInOperators/LessThanOperator.d.ts +2 -0
  211. package/types/src/condition/BuiltInOperators/NotOperator.d.ts +2 -0
  212. package/types/src/condition/BuiltInOperators/OrOperator.d.ts +3 -1
  213. package/types/src/condition/BuiltInOperators/StartsWithOperator.d.ts +2 -0
  214. package/types/src/condition/BuiltInOperators/TimePeriodOperator.d.ts +2 -0
  215. package/types/src/condition/BuiltInOperators/TopNOperator.d.ts +6 -0
  216. package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +21 -6
  217. package/types/src/condition/BuiltinSelectors/DateSelector.d.ts +4 -5
  218. package/types/src/condition/BuiltinSelectors/DisplaySelector.d.ts +20 -0
  219. package/types/src/condition/BuiltinSelectors/TextLengthSelector.d.ts +7 -5
  220. package/types/src/condition/BuiltinSelectors/TimeSelector.d.ts +3 -5
  221. package/types/src/condition/BuiltinSelectors/WholeSelector.d.ts +3 -5
  222. package/types/src/condition/BuiltinSelectors/index.d.ts +12 -6
  223. package/types/src/condition/Condition.d.ts +19 -1
  224. package/types/src/condition/ICondition.d.ts +293 -73
  225. package/types/src/condition/_ConditionFormula.d.ts +152 -0
  226. package/types/src/condition/_ConditionUtils.d.ts +167 -13
  227. package/types/src/conditionalFormat/ConditionalEntry.d.ts +3 -3
  228. package/types/src/conditionalFormat/ConditionalFormat.d.ts +25 -14
  229. package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
  230. package/types/src/conditionalFormat/IConditionalFormat.d.ts +12 -10
  231. package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
  232. package/types/src/dataValidation/DataValidation.d.ts +69 -3
  233. package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
  234. package/types/src/dataValidation/IDataValidation.d.ts +149 -30
  235. package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
  236. package/types/src/date/DateUtils.d.ts +20 -0
  237. package/types/src/date/_DateUtils.d.ts +91 -7
  238. package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
  239. package/types/src/externalBook/ExternalBookName.d.ts +96 -0
  240. package/types/src/externalBook/IExternalBook.d.ts +170 -18
  241. package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
  242. package/types/src/externalBook/index.d.ts +1 -0
  243. package/types/src/{lib/file → file}/file.browser.d.ts +22 -8
  244. package/types/src/{lib/file → file}/file.node.d.ts +7 -2
  245. package/types/src/fill/IEffect.d.ts +5 -5
  246. package/types/src/fill/IFill.d.ts +123 -78
  247. package/types/src/fill/IStroke.d.ts +190 -64
  248. package/types/src/fill/RectAlignment.d.ts +20 -0
  249. package/types/src/fill/_Fills.d.ts +187 -0
  250. package/types/src/fill/_Stroke.d.ts +89 -0
  251. package/types/src/fill/index.d.ts +1 -0
  252. package/types/src/filter/IFilter.d.ts +188 -5
  253. package/types/src/font/AdvanceBuilder.d.ts +25 -0
  254. package/types/src/font/AdvanceTable.d.ts +114 -0
  255. package/types/src/font/FontCollection.d.ts +57 -0
  256. package/types/src/font/IFont.d.ts +17 -0
  257. package/types/src/font/IFontCollection.d.ts +120 -22
  258. package/types/src/font/TableFileAdvanceBuilder.d.ts +27 -0
  259. package/types/src/font/_BuiltinFontTables.d.ts +10 -0
  260. package/types/src/font/index.d.ts +4 -1
  261. package/types/src/group/Group.d.ts +136 -0
  262. package/types/src/group/GroupMovableCollection.d.ts +37 -0
  263. package/types/src/group/IGroup.d.ts +129 -0
  264. package/types/src/group/index.d.ts +2 -0
  265. package/types/src/history/IHistory.d.ts +3 -2
  266. package/types/src/hyperlink/IHyperlink.d.ts +13 -0
  267. package/types/src/hyperlink/_Hyperlink.d.ts +5 -1
  268. package/types/src/i18n/LanguagePack.d.ts +12 -4
  269. package/types/src/index.d.ts +5 -0
  270. package/types/src/io/AbstractBackingStore.d.ts +24 -1
  271. package/types/src/io/ArrayBackingStore.d.ts +1 -1
  272. package/types/src/io/EmbeddedPart.d.ts +20 -0
  273. package/types/src/io/IEmbeddedPart.d.ts +63 -0
  274. package/types/src/io/IWorkbookIO.d.ts +185 -18
  275. package/types/src/io/WorkbookIO.d.ts +9 -0
  276. package/types/src/io/WorkbookOrigin.d.ts +20 -11
  277. package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
  278. package/types/src/io/_XmlFragment.d.ts +49 -0
  279. package/types/src/io/index.d.ts +1 -0
  280. package/types/src/license/LicenseDetails.d.ts +1 -0
  281. package/types/src/license/LicenseManager.d.ts +4 -1
  282. package/types/src/license/Types.d.ts +38 -0
  283. package/types/src/license/_Utils.d.ts +22 -0
  284. package/types/src/license/details.d.ts +24 -0
  285. package/types/src/license/license-key.d.ts +49 -2
  286. package/types/src/license/runtime.browser.d.ts +41 -0
  287. package/types/src/{lib/utils/utils.node.d.ts → license/runtime.node.d.ts} +9 -12
  288. package/types/src/listener/IListener.d.ts +12 -7
  289. package/types/src/listener/ListenerEmitter.d.ts +46 -5
  290. package/types/src/model/AbstractModel.d.ts +14 -5
  291. package/types/src/movable/AbstractMovableContent.d.ts +182 -0
  292. package/types/src/movable/CustomElement.d.ts +4 -5
  293. package/types/src/movable/ErrorContent.d.ts +49 -0
  294. package/types/src/movable/FormControl.d.ts +285 -0
  295. package/types/src/movable/GroupMember.d.ts +87 -0
  296. package/types/src/movable/ICustomElement.d.ts +7 -2
  297. package/types/src/movable/IErrorContent.d.ts +23 -0
  298. package/types/src/movable/IFormControl.d.ts +455 -0
  299. package/types/src/movable/IMovable.d.ts +378 -46
  300. package/types/src/movable/IMovableCollection.d.ts +63 -3
  301. package/types/src/movable/Movable.d.ts +149 -49
  302. package/types/src/movable/MovableCollection.d.ts +15 -8
  303. package/types/src/movable/MovableContentRegistry.d.ts +113 -0
  304. package/types/src/movable/_BuiltInContents.d.ts +14 -0
  305. package/types/src/movable/_ContentFactory.d.ts +35 -0
  306. package/types/src/movable/_DrawnBounds.d.ts +37 -0
  307. package/types/src/movable/_InsertableCollection.d.ts +28 -0
  308. package/types/src/movable/_MovableUtils.d.ts +5 -0
  309. package/types/src/movable/_PendingContent.d.ts +25 -0
  310. package/types/src/movable/_PlacementUtils.d.ts +55 -0
  311. package/types/src/movable/_RotatedFrame.d.ts +20 -0
  312. package/types/src/movable/index.d.ts +7 -1
  313. package/types/src/named/AbstractNamed.d.ts +1 -1
  314. package/types/src/named/INamed.d.ts +4 -1
  315. package/types/src/named/INamedCollection.d.ts +26 -0
  316. package/types/src/named/NamedCollection.d.ts +16 -15
  317. package/types/src/numFmt/BuiltInFormats.d.ts +20 -7
  318. package/types/src/numFmt/IFormatEngine.d.ts +2 -0
  319. package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
  320. package/types/src/numFmt/_FormatCell.d.ts +11 -2
  321. package/types/src/numFmt/_NumFmtUtils.d.ts +0 -1
  322. package/types/src/numFmt/vendor/numfmt/_sheetxl.d.ts +6 -0
  323. package/types/src/outline/IOutline.d.ts +186 -0
  324. package/types/src/outline/Outline.d.ts +157 -0
  325. package/types/src/outline/index.d.ts +2 -0
  326. package/types/src/person/IPerson.d.ts +99 -0
  327. package/types/src/person/IPersonCollection.d.ts +51 -0
  328. package/types/src/person/Person.d.ts +32 -0
  329. package/types/src/person/PersonCollection.d.ts +49 -0
  330. package/types/src/person/index.d.ts +4 -0
  331. package/types/src/picture/IPicture.d.ts +33 -3
  332. package/types/src/picture/Picture.d.ts +33 -13
  333. package/types/src/pivot/IPivotTable.d.ts +72 -0
  334. package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
  335. package/types/src/pivot/PivotCache.d.ts +34 -0
  336. package/types/src/pivot/PivotTable.d.ts +61 -0
  337. package/types/src/pivot/PivotTableCollection.d.ts +25 -0
  338. package/types/src/pivot/_PivotXml.d.ts +24 -0
  339. package/types/src/pivot/index.d.ts +6 -0
  340. package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
  341. package/types/src/primitives/Criteria.d.ts +1 -1
  342. package/types/src/primitives/Grouping.d.ts +65 -0
  343. package/types/src/primitives/LambdaBrand.d.ts +26 -0
  344. package/types/src/primitives/PrimitiveUtils.d.ts +56 -19
  345. package/types/src/primitives/Range.d.ts +133 -25
  346. package/types/src/primitives/RangeStats.d.ts +30 -2
  347. package/types/src/primitives/ReferenceRange.d.ts +44 -0
  348. package/types/src/primitives/Runtime.d.ts +15 -2
  349. package/types/src/primitives/environment.browser.d.ts +9 -0
  350. package/types/src/primitives/environment.node.d.ts +10 -0
  351. package/types/src/primitives/stats/AggregateStats.d.ts +49 -15
  352. package/types/src/primitives/stats/Cancellation.d.ts +13 -0
  353. package/types/src/primitives/stats/FrequencyStats.d.ts +10 -1
  354. package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
  355. package/types/src/primitives/stats/Ranked.d.ts +1 -1
  356. package/types/src/primitives/stats/SortedNumbers.d.ts +4 -2
  357. package/types/src/primitives/stats/index.d.ts +1 -0
  358. package/types/src/print/IPrint.d.ts +0 -22
  359. package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
  360. package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
  361. package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
  362. package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
  363. package/types/src/protection/DefaultProtection.d.ts +12 -1
  364. package/types/src/protection/IProtection.d.ts +36 -2
  365. package/types/src/reference/ReferenceUtils.d.ts +80 -0
  366. package/types/src/reference/index.d.ts +2 -0
  367. package/types/src/resource/IResource.d.ts +21 -1
  368. package/types/src/resource/IResourceCollection.d.ts +9 -1
  369. package/types/src/resource/ResourceCollection.d.ts +6 -6
  370. package/types/src/scripting/FunctionCollection.d.ts +49 -15
  371. package/types/src/scripting/IFunctionCollection.d.ts +62 -32
  372. package/types/src/scripting/IModule.d.ts +25 -0
  373. package/types/src/scripting/IModuleCollection.d.ts +17 -0
  374. package/types/src/scripting/IScript.d.ts +28 -26
  375. package/types/src/scripting/Module.d.ts +34 -6
  376. package/types/src/scripting/ModuleCollection.d.ts +17 -12
  377. package/types/src/scripting/Runtime.d.ts +15 -0
  378. package/types/src/scripting/Scripts.d.ts +3 -7
  379. package/types/src/scripting/TypedFunction.d.ts +154 -18
  380. package/types/src/scripting/_FunctionIndex.d.ts +8 -3
  381. package/types/src/scripting/_ModuleUtils.d.ts +11 -1
  382. package/types/src/scripting/_ScriptUtils.d.ts +3 -0
  383. package/types/src/scripting/declarations.browser.d.ts +10 -0
  384. package/types/src/scripting/declarations.d.ts +49 -0
  385. package/types/src/scripting/declarations.node.d.ts +9 -0
  386. package/types/src/scripting/index.d.ts +3 -0
  387. package/types/src/selection/IMovableSelection.d.ts +148 -0
  388. package/types/src/selection/IRangeSelection.d.ts +9 -4
  389. package/types/src/selection/MovableSelection.d.ts +48 -0
  390. package/types/src/selection/RangeSelection.d.ts +15 -0
  391. package/types/src/selection/index.d.ts +1 -0
  392. package/types/src/shape/GeometryPreset.d.ts +197 -0
  393. package/types/src/shape/IGeometry.d.ts +380 -0
  394. package/types/src/shape/IShape.d.ts +341 -194
  395. package/types/src/shape/IShapeStyle.d.ts +135 -0
  396. package/types/src/shape/Shape.d.ts +107 -21
  397. package/types/src/shape/ShapeStyleUtils.d.ts +54 -0
  398. package/types/src/shape/_ConnectorFrame.d.ts +32 -0
  399. package/types/src/shape/_ConnectorRoute.d.ts +33 -0
  400. package/types/src/shape/_Connectors.d.ts +108 -0
  401. package/types/src/shape/_Geometry.d.ts +14 -0
  402. package/types/src/shape/_GeometryLoader.d.ts +21 -0
  403. package/types/src/shape/_ShapeStyle.d.ts +70 -0
  404. package/types/src/shape/_builtIn/_BuiltInChunks.d.ts +10 -0
  405. package/types/src/shape/_builtIn/_BuiltInDef.d.ts +9 -0
  406. package/types/src/shape/_builtIn/arrows.d.ts +6 -0
  407. package/types/src/shape/_builtIn/basic.d.ts +6 -0
  408. package/types/src/shape/_builtIn/callouts.d.ts +6 -0
  409. package/types/src/shape/_builtIn/flowchart.d.ts +6 -0
  410. package/types/src/shape/_builtIn/lines.d.ts +6 -0
  411. package/types/src/shape/_builtIn/math.d.ts +6 -0
  412. package/types/src/shape/_builtIn/other.d.ts +6 -0
  413. package/types/src/shape/_builtIn/rectangles.d.ts +6 -0
  414. package/types/src/shape/_builtIn/starsBanners.d.ts +6 -0
  415. package/types/src/shape/geometry/_strokeEnds.d.ts +7 -0
  416. package/types/src/shape/geometry/format.d.ts +3 -0
  417. package/types/src/shape/geometry/geometry.d.ts +85 -0
  418. package/types/src/shape/geometry/guides.d.ts +54 -0
  419. package/types/src/shape/geometry/handles.d.ts +14 -0
  420. package/types/src/shape/geometry/index.d.ts +7 -0
  421. package/types/src/shape/geometry/lineEnds.d.ts +54 -0
  422. package/types/src/shape/geometry/paths.d.ts +35 -0
  423. package/types/src/shape/geometry/segments.d.ts +114 -0
  424. package/types/src/shape/index.d.ts +3 -0
  425. package/types/src/sheet/CellRegion.d.ts +6 -0
  426. package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
  427. package/types/src/sheet/ISheet.d.ts +197 -50
  428. package/types/src/sheet/ISheetCollection.d.ts +2 -5
  429. package/types/src/sheet/NamedCellRange.d.ts +16 -7
  430. package/types/src/sheet/NamedRange.d.ts +8 -0
  431. package/types/src/sheet/Sheet.d.ts +915 -138
  432. package/types/src/sheet/SheetCell.d.ts +92 -32
  433. package/types/src/sheet/SheetCollection.d.ts +19 -8
  434. package/types/src/sheet/SheetRange.d.ts +90 -18
  435. package/types/src/sheet/SheetRanges.d.ts +22 -9
  436. package/types/src/sheet/_CellBuffer.d.ts +214 -0
  437. package/types/src/sheet/_HeldFormula.d.ts +69 -0
  438. package/types/src/sheet/_InvalidSheetRange.d.ts +7 -7
  439. package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
  440. package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
  441. package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
  442. package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
  443. package/types/src/sheet/_SheetAutoFitUtils.d.ts +2 -2
  444. package/types/src/sheet/_SheetEvents.d.ts +43 -0
  445. package/types/src/sheet/_SheetFilterUtils.d.ts +49 -1
  446. package/types/src/sheet/_SheetIntents.d.ts +296 -0
  447. package/types/src/sheet/_SheetMutations.d.ts +182 -62
  448. package/types/src/sheet/_SheetStateReader.d.ts +19 -13
  449. package/types/src/sheet/_SheetStateTypes.d.ts +83 -78
  450. package/types/src/sheet/_SheetUtils.d.ts +39 -22
  451. package/types/src/sheet/_WatchAnchor.d.ts +93 -0
  452. package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
  453. package/types/src/sheet/spatial/index.d.ts +1 -0
  454. package/types/src/sheet/style/SheetCellStyle.d.ts +209 -304
  455. package/types/src/sheet/style/SheetDirectStyle.d.ts +30 -19
  456. package/types/src/sheet/style/SheetNamedStyle.d.ts +17 -17
  457. package/types/src/sheet/style/SheetTableStyle.d.ts +5 -5
  458. package/types/src/sheet/style/_Resolvers.d.ts +14 -8
  459. package/types/src/sheet/style/_StyleUtils.d.ts +38 -8
  460. package/types/src/sheetHeader/ISheetHeader.d.ts +94 -53
  461. package/types/src/sheetHeader/SheetCellHeader.d.ts +4 -0
  462. package/types/src/sheetHeader/SheetHeader.d.ts +42 -22
  463. package/types/src/sheetHeader/_HeaderMetrics.d.ts +37 -0
  464. package/types/src/sheetHeader/_HeaderUtils.d.ts +5 -3
  465. package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
  466. package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
  467. package/types/src/sheetView/ISheetView.d.ts +69 -15
  468. package/types/src/sheetView/SheetView.d.ts +20 -11
  469. package/types/src/slicer/ISlicer.d.ts +304 -17
  470. package/types/src/slicer/ISlicerStyle.d.ts +109 -0
  471. package/types/src/slicer/Slicer.d.ts +128 -13
  472. package/types/src/slicer/SlicerStyle.d.ts +25 -0
  473. package/types/src/slicer/_BuiltInSlicerStyles.d.ts +13 -0
  474. package/types/src/slicer/_SlicerUtils.d.ts +30 -0
  475. package/types/src/slicer/index.d.ts +1 -0
  476. package/types/src/sort/ISort.d.ts +4 -2
  477. package/types/src/string/IStringCollection.d.ts +5 -0
  478. package/types/src/string/StringCollection.d.ts +6 -6
  479. package/types/src/style/{IStyle.d.ts → ICellStyle.d.ts} +72 -52
  480. package/types/src/style/INamedStyleCollection.d.ts +72 -0
  481. package/types/src/style/ISlicerStyleCollection.d.ts +77 -0
  482. package/types/src/style/IStyleCollection.d.ts +91 -60
  483. package/types/src/style/ITableStyleCollection.d.ts +89 -0
  484. package/types/src/style/NamedStyleCollection.d.ts +39 -0
  485. package/types/src/style/SlicerStyleCollection.d.ts +46 -0
  486. package/types/src/style/StyleCollection.d.ts +81 -26
  487. package/types/src/style/TableStyleCollection.d.ts +49 -0
  488. package/types/src/style/_BuiltInStyleDefs.d.ts +6 -6
  489. package/types/src/style/_BuiltInStyleNames.d.ts +2 -2
  490. package/types/src/style/index.d.ts +7 -1
  491. package/types/src/table/AnchoredTable.d.ts +701 -72
  492. package/types/src/table/AutoTable.d.ts +7 -5
  493. package/types/src/table/ITable.d.ts +261 -34
  494. package/types/src/table/ITableCollection.d.ts +12 -0
  495. package/types/src/table/ITableStyle.d.ts +37 -37
  496. package/types/src/table/TableCollection.d.ts +19 -8
  497. package/types/src/table/_FilterField.d.ts +19 -6
  498. package/types/src/table/_NamedTable.d.ts +17 -1
  499. package/types/src/table/_NamedTableSource.d.ts +1 -0
  500. package/types/src/table/_SortField.d.ts +2 -0
  501. package/types/src/table/_TableColumn.d.ts +13 -2
  502. package/types/src/table/_TableMessages.d.ts +1 -0
  503. package/types/src/table/_TableUtils.d.ts +40 -0
  504. package/types/src/text/Bullet.d.ts +4 -0
  505. package/types/src/text/IText.d.ts +182 -0
  506. package/types/src/text/ITextFrame.d.ts +110 -1
  507. package/types/src/text/TextBoxAlignment.d.ts +25 -16
  508. package/types/src/text/TextFrame.d.ts +4 -0
  509. package/types/src/text/TextLine.d.ts +4 -0
  510. package/types/src/text/TextParagraph.d.ts +4 -0
  511. package/types/src/text/TextRotation.d.ts +3 -3
  512. package/types/src/text/TextRun.d.ts +9 -0
  513. package/types/src/text/TextStacked.d.ts +83 -0
  514. package/types/src/text/index.d.ts +1 -0
  515. package/types/src/text/richtext/IRichText.d.ts +36 -0
  516. package/types/src/text/richtext/IStyledFont.d.ts +18 -18
  517. package/types/src/text/richtext/index.d.ts +1 -0
  518. package/types/src/theme/ITheme.d.ts +45 -4
  519. package/types/src/theme/IThemeCollection.d.ts +2 -0
  520. package/types/src/theme/ThemeCollection.d.ts +11 -7
  521. package/types/src/theme/_OfficeFormatScheme.d.ts +3 -0
  522. package/types/src/transaction/ITransaction.d.ts +258 -45
  523. package/types/src/transaction/Transaction.d.ts +101 -11
  524. package/types/src/transaction/TransactionUndoManager.d.ts +4 -1
  525. package/types/src/type/AbstractCollection.d.ts +101 -0
  526. package/types/src/type/ICollection.d.ts +117 -0
  527. package/types/src/type/ITypes.d.ts +9 -7
  528. package/types/src/type/index.d.ts +1 -0
  529. package/types/src/utils/_CSSUtils.d.ts +3 -3
  530. package/types/src/wasm/_sdkWasm.d.ts +7 -0
  531. package/types/src/wasm/index.d.ts +2 -0
  532. package/types/src/wasm/sdkWasm.d.ts +29 -0
  533. package/types/src/workbook/IWorkbook.d.ts +180 -40
  534. package/types/src/workbook/Workbook.d.ts +123 -10
  535. package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
  536. package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
  537. package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
  538. package/types/src/workbookView/IWorkbookView.d.ts +12 -0
  539. package/types/src/workbookView/WorkbookView.d.ts +5 -0
  540. package/browser/cjs/B7_pDFYCVzt-3hUs.cjs +0 -1
  541. package/browser/cjs/BatsV2UUraVDCRXm.cjs +0 -57
  542. package/browser/cjs/CUz53T65cRGQRgvv.cjs +0 -33
  543. package/browser/cjs/DU0kYUtdFa3jK-im.cjs +0 -1
  544. package/browser/cjs/Dv3x6zut1ZRUt3IF.cjs +0 -10
  545. package/browser/cjs/Dv4yIPLV98M5zLHa.cjs +0 -1
  546. package/browser/cjs/a0Z-SXs_N71CtqYb.cjs +0 -1
  547. package/browser/cjs/index.cjs +0 -3
  548. package/browser/esm/6JKSOvc5czaQB2Bj.mjs +0 -109
  549. package/browser/esm/BtuJ9AGzeURtAsGo.mjs +0 -51241
  550. package/browser/esm/DGU6sM25u0EWCKl1.mjs +0 -824
  551. package/browser/esm/f2G3QRgEbvFJcoa2.mjs +0 -4436
  552. package/node/esm/-pxdn3M3tc6PLHs7.mjs +0 -114
  553. package/node/esm/0n5bslM9jhO1JnI2.mjs +0 -843
  554. package/types/src/cellRange/_GraphNode.d.ts +0 -38
  555. package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +0 -12
  556. package/types/src/dataValidation/_Utils.d.ts +0 -10
  557. package/types/src/lib/utils/_Utils.d.ts +0 -27
  558. package/types/src/lib/utils/utils.browser.d.ts +0 -33
  559. package/types/src/movable/IGroup.d.ts +0 -30
  560. package/types/src/movable/IMovableSelection.d.ts +0 -49
  561. package/types/src/sheet/listener/RangesListener.d.ts +0 -32
  562. package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
  563. package/types/src/sheet/listener/index.d.ts +0 -3
  564. /package/types/src/{lib/utils → license}/banner.d.ts +0 -0
@@ -1,36 +1,169 @@
1
+ import { IRange } from '@sheetxl/primitives';
2
+ import { AbstractCollection } from '../type';
3
+ import { ITransaction } from '../transaction';
4
+ import { IListener } from '../listener';
5
+ import { ICellRange } from '../cellRange';
1
6
  import { IExternalBook } from './IExternalBook';
2
7
  import { IExternalBookCollection } from './IExternalBookCollection';
3
8
  /**
4
- * Implementation for {@link IExternalBookCollection}.
9
+ * A single cached snapshot of another workbook — the read-only view over one {@link IExternalBook.JSON}.
5
10
  */
6
- export declare class ExternalBookCollection implements IExternalBookCollection {
11
+ declare class ExternalBook implements IExternalBook {
12
+ private _json;
13
+ private _id;
14
+ /** The owner, for the `[n]` projection — a book's position is the collection's fact, not its own. */
15
+ private _collection;
16
+ constructor(json: IExternalBook.JSON, id: string, collection: ExternalBookCollection);
17
+ getId(): string;
18
+ getDisplayName(sheetName?: string | null): string;
19
+ getSources(): readonly IExternalBook.SourceEntry[];
20
+ getSheetNames(): readonly string[];
21
+ getDefinedNames(): readonly IExternalBook.DefinedNameEntry[];
22
+ getSheetData(sheetIndex: number): IExternalBook.SheetData | null;
23
+ getDependents(): readonly IRange.Coords[];
24
+ delete(txOptions?: ITransaction.OperationOptions): void;
25
+ breakLink(txOptions?: ITransaction.OperationOptions): void;
26
+ refresh(): Promise<IExternalBook.RefreshResult>;
27
+ toJSON(): IExternalBook.JSON | null;
28
+ /** A copy holding a source's current contents in place of the cache; the sources stay. */
29
+ _withSnapshot(snapshot: IExternalBook.Snapshot): ExternalBook;
30
+ /** A copy with every cached sheet marked `refreshError` — the values themselves untouched. */
31
+ _withRefreshError(): ExternalBook;
32
+ /** A copy with one more sheet name — the book is immutable; the collection swaps it. */
33
+ _withSheetName(sheetName: string): ExternalBook;
34
+ readonly isIExternalBook: true;
35
+ }
36
+ interface State {
7
37
  /**
8
- * Positional, `[n]`-indexed (`_items[0]` is `[1]`) — `null` at a position is a DDE/OLE link or
38
+ * Positional, `[n]`-indexed (`items[0]` is `[1]`) — `null` at a position is a DDE/OLE link or
9
39
  * otherwise unmodeled. Gaps carry meaning (the position still counts), so this is never compacted.
10
40
  */
11
- private _items;
41
+ items: readonly (ExternalBook | null)[];
42
+ /**
43
+ * Runtime ids, parallel to {@link items} and one per POSITION — a `null` DDE/OLE slot gets one
44
+ * too, so a formula citing it keeps its place when a book in front of it is removed.
45
+ */
46
+ ids: readonly string[];
47
+ }
48
+ /**
49
+ * Implementation for {@link IExternalBookCollection}.
50
+ *
51
+ * @remarks
52
+ * The positional list lives in the transaction store rather than in fields, so `add`, `delete` and
53
+ * `breakLink` undo — and an undo brings a slot's id back with it, which is what heals the formulas
54
+ * that kept citing it (see {@link _remove}).
55
+ */
56
+ export declare class ExternalBookCollection extends AbstractCollection<IExternalBook> implements IExternalBookCollection {
57
+ protected _transactions: ITransaction.IStore;
58
+ private _stateId;
59
+ private _transactionsRemoveListener;
60
+ private _getDependentsById;
61
+ private _getSheetRange;
62
+ private readonly _resolver;
12
63
  constructor(options?: ExternalBookCollection.ConstructorOptions);
13
- [Symbol.iterator](): IterableIterator<IExternalBook>;
14
- /** Only the modeled books — gaps (DDE/OLE) are omitted, not positional. Use {@link getByIndex} for `[n]` lookup. */
15
- getItems(): IExternalBook[];
16
- getCount(): number;
17
- getByIndex(n: number): IExternalBook | null;
64
+ /**
65
+ * @internal
66
+ * The runtime id at `[n]` (1-based), including a DDE/OLE gap's, or `null` if there is no such
67
+ * position. `[n]` is where the SOURCE FILE stores a book — it renumbers when another is broken,
68
+ * and no surface a reader sees spells one — so this and its inverse are the compiler's, for
69
+ * parsing a typed `[7]` and for imaging an id back into canonical text. Not on
70
+ * {@link IExternalBookCollection}: a consumer wanting one book wants `getById`.
71
+ */
72
+ _getIdByIndex(n: number): string | null;
73
+ /**
74
+ * @internal
75
+ * The 1-based `[n]` a runtime id currently sits at, or `-1` — the inverse of
76
+ * {@link _getIdByIndex}. Linear: a workbook has a handful of books.
77
+ */
78
+ _getIndexById(id: string): number;
79
+ getById(id: string): IExternalBook | null;
80
+ /** Only the modeled books — gaps (DDE/OLE) are omitted, not positional. */
81
+ protected _getItems(): IExternalBook[];
82
+ /**
83
+ * @internal
84
+ * The book at `[n]` (1-based), or `null` where `n` is past the end or holds a DDE/OLE gap.
85
+ * Slot-numbered, so it is the compiler's and the tests' — not on
86
+ * {@link IExternalBookCollection}, where `at()` gives position among the books that exist and
87
+ * `toJSON()` gives the slots with their gaps.
88
+ */
89
+ _getByIndex(n: number): IExternalBook | null;
90
+ /** {@inheritDoc IExternalBookCollection.add} */
91
+ add(options: IExternalBookCollection.AddOptions, txOptions?: ITransaction.OperationOptions): IExternalBook;
92
+ /**
93
+ * @internal
94
+ * {@link IExternalBook.delete} — the book delegates here, where the state lives. Takes an id
95
+ * rather than a book so a DDE/OLE gap, which has no book object, can go too.
96
+ *
97
+ * @returns `false` if nothing was at that id.
98
+ */
99
+ _remove(id: string, txOptions?: ITransaction.OperationOptions): boolean;
100
+ /** @internal {@link IExternalBook.breakLink} — the book delegates here, where the state lives. */
101
+ _breakLink(id: string, txOptions?: ITransaction.OperationOptions): boolean;
102
+ /** {@inheritDoc IExternalBookCollection.breakAll} */
103
+ breakAll(txOptions?: ITransaction.OperationOptions): number;
104
+ /** {@inheritDoc IExternalBookCollection.refreshAll} */
105
+ refreshAll(): Promise<IExternalBook.RefreshResult[]>;
106
+ /**
107
+ * @internal
108
+ * {@link IExternalBook.refresh}: the resolver is asked, and its answer replaces the book's cache
109
+ * in one transaction — the engine rebuilds the book's grids from it on the change notification.
110
+ */
111
+ _refresh(bookId: string): Promise<IExternalBook.RefreshResult>;
112
+ /** Excel's record of a refresh that could not complete: `refreshError` on each cached sheet. */
113
+ protected _markRefreshError(bookId: string): void;
114
+ /**
115
+ * The value pass in front of a removal: every cell block that cites the book becomes its current
116
+ * values — the WHOLE formula, as Excel does, not only the external operand.
117
+ *
118
+ * @remarks
119
+ * A dependent that is a NAME (its scope is the name's virtual grid, not a sheet) is left as it
120
+ * is. Its citation then images as `#REF!` once the slot goes, which is one of the three outcomes
121
+ * DESIGN-EXTERNAL-LINKS §6 item 8 lists for Excel; the measurement that picks between them has
122
+ * not been taken, and a name has no computed value to write back until phase D in any case.
123
+ */
124
+ protected _breakDependents(book: IExternalBook): void;
125
+ /** @internal Backs {@link IExternalBook.getDependents}; empty without an engine to ask. */
126
+ _getDependents(bookId: string): readonly IRange.Coords[];
127
+ /**
128
+ * @internal
129
+ * Records a sheet name a formula cited on a book that did not list it — the authoring half of
130
+ * the bind rule (DESIGN-EXTERNAL-LINKS §5 step 13). Returns the sheet's index in the book.
131
+ */
132
+ _addSheetName(bookId: string, sheetName: string): number;
18
133
  toJSON(): (IExternalBook.JSON | null)[] | null;
134
+ /** {@inheritDoc IListener.ISource.addListeners} */
135
+ addListeners(listeners: IExternalBookCollection.IListeners, options?: IListener.Options): IListener.Remove;
136
+ close(): void;
137
+ protected _assertWritable(): void;
138
+ protected _getState(): State;
139
+ protected _beginCommit(options?: string | ITransaction.OperationOptions): ITransaction;
140
+ protected _updateState(state: (prevState: State) => State, options: ITransaction.OperationOptions): void;
19
141
  readonly isIExternalBookCollection: true;
20
142
  }
21
143
  export declare namespace ExternalBookCollection {
22
144
  interface ConstructorOptions {
23
145
  /**
24
146
  * Books to hydrate at construction, in `IWorkbook.JSON.externalBooks` order — which IS `[n]`
25
- * order (1-based). A `null` entry is a preserved gap (see {@link IExternalBookCollection.getByIndex}).
147
+ * order (1-based). A `null` entry is a preserved gap.
26
148
  *
27
149
  * @remarks
28
150
  * Taken here rather than through a separate `fromJSON()` call — mirrors
29
151
  * `NamedFormulaCollection`'s reasoning: this collection owns the items, so hydrating at
30
- * construction avoids a pre-load lifecycle state. Unlike named formulas, nothing here is
31
- * mutable yet, so there is no transactional persist scope to speak of either.
152
+ * construction avoids a pre-load lifecycle state.
32
153
  */
33
154
  json?: (IExternalBook.JSON | null)[];
155
+ /** Shared with the workbook so `add`/`delete`/`breakLink` undo with everything else. */
156
+ transactions?: ITransaction.IStore;
157
+ /** The engine's citation index — backs {@link IExternalBook.getDependents}. */
158
+ getDependents?: (bookId: string) => readonly IRange.Coords[];
159
+ /** Opens a source on refresh — `ICellContainerOptions.externalBookResolver`, for the collection's life. */
160
+ resolver?: IExternalBook.IResolver | null;
161
+ /**
162
+ * A range over a dependent's coords, whose `scope` is a sheet's stable id — or `null` for a
163
+ * scope that is not a sheet (a name's virtual grid). Backs the value pass of `breakLink`.
164
+ */
165
+ getSheetRange?: (coords: IRange.Coords) => ICellRange | null;
34
166
  }
35
167
  }
168
+ export {};
36
169
  //# sourceMappingURL=ExternalBookCollection.d.ts.map
@@ -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