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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/THIRD-PARTY-NOTICES.md +1 -1
  2. package/browser/cjs/4f5eoQQfV-V7LO2_.cjs +1 -0
  3. package/browser/cjs/BEnEDC1m546-gzWS.cjs +1 -0
  4. package/browser/cjs/CwCUa4IzGNGissLL.cjs +1 -0
  5. package/browser/cjs/{a0Z-SXs_N71CtqYb.cjs → Dg3GaW0QWwnlqetX.cjs} +1 -1
  6. package/browser/cjs/KWQPie2u7AP69web.cjs +93 -0
  7. package/browser/cjs/index.cjs +2 -2
  8. package/browser/esm/{B0HS42a7lga1k1U_.mjs → BJ9hcZAGY8Tj5_9L.mjs} +1 -1
  9. package/browser/esm/C8vpA2ZBtZf6w4nq.mjs +394 -0
  10. package/browser/esm/DDojiE2-oycJ7qGi.mjs +20 -0
  11. package/browser/esm/DEPT7zmpiMdZ-_qC.mjs +70253 -0
  12. package/browser/esm/DOvCi3lf49To36WP.mjs +8 -0
  13. package/browser/esm/{uyWBMSIxMlt8n5Z3.mjs → Dq3sc4B_HQHBrT5N.mjs} +2 -2
  14. package/browser/esm/index.mjs +871 -696
  15. package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → trwZArJQQq7K9kL7.mjs} +2 -2
  16. package/licenses/dependencies.txt +204 -204
  17. package/node/esm/CGWsQOMWdnDeF4dX.mjs +8 -0
  18. package/node/esm/{Cku7XiUvw1xrRasi.mjs → CL9MI-b6D9BmtVXW.mjs} +1 -1
  19. package/node/esm/CressiwiIhxCVp1v.mjs +28 -0
  20. package/node/esm/O2cOO3xIynWUgOWe.mjs +403 -0
  21. package/node/esm/index.mjs +52356 -37345
  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 +7093 -0
  26. package/types/scripting-enums.json +54 -8
  27. package/types/scripting.d.ts +7006 -1202
  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,163 @@
1
+ import { IRange, Scalar } from '@sheetxl/primitives';
2
+ import { Direction, RangeAxis, CellCoords, RangeCoords } from '@sheetxl/utils';
3
+ import { IGrid, ISparseGrid, Tuple, IListLike } from '../../collections';
4
+ import { ReferenceErrorIndex } from '../../primitives/ReferenceRange';
5
+ /**
6
+ * The calc grid's committed values with the pass's UNCOMMITTED results laid over them.
7
+ *
8
+ * @remarks
9
+ * The executor batches results and commits them in one write (`writeCalcs`); a reference built
10
+ * during the pass used to force that commit whenever it could see a batched cell. On a row-chained
11
+ * sheet (`SUM($K$51:K#)` on every row) that was a commit per row — thousands of small persistent
12
+ * writes into the same long runs. This grid serves those reads from the batch instead, so the
13
+ * executor commits every N results and the writes are few and contiguous.
14
+ *
15
+ * It is a SUBSTITUTION view: iteration walks the committed runs and swaps in the pending value
16
+ * where one exists. That only describes a cell the committed grid already holds; a result for a
17
+ * cell with no committed run under it (a formula's first result — new after load, entry, paste)
18
+ * cannot be shown this way, so such a push marks the overlay `uncovered` and the next ITERATION
19
+ * over the pending box commits first (`_coverFor`), which is exactly the old behavior; a point
20
+ * read is answered by the map and never commits. A steady-state recalc never trips it. Reads
21
+ * outside the batch's bounding box never touch the map.
22
+ *
23
+ * Operations that materialize or write go through a commit first and then the committed grid —
24
+ * the safe fallback for anything a substitution cannot answer (`getValues`, `copyTo`, `clone`,
25
+ * every write). `cloneEmpty` needs no values.
26
+ *
27
+ * It is also the error index of references built over it ({@link ReferenceErrorIndex}): the
28
+ * committed index plus a scan of the pending map, taken only while the batch holds an error.
29
+ *
30
+ * A second layer holds DEMAND results (DESIGN-CIRCULAR-CALC.md §4.6): what demand evaluation and
31
+ * the iteration sweeps compute ahead of the plan. It is not part of the batch — a commit leaves it
32
+ * alone — and an entry lives until the plan takes its node ({@link takeDemand}), which then pushes
33
+ * the same value to the batch. A sweep rewrites its members many times, and every rewrite is a map
34
+ * write, not a persistent one. Substitution still needs a committed run under the cell, so the
35
+ * first result for a cell with nothing under it is written through as well; every later one is
36
+ * substituted.
37
+ */
38
+ export declare class PendingOverlayGrid implements ISparseGrid<Scalar>, ReferenceErrorIndex {
39
+ protected readonly _inner: ISparseGrid<Scalar>;
40
+ protected readonly _committed: ReferenceErrorIndex;
41
+ protected readonly _flush: () => void;
42
+ protected readonly _isColumn: boolean;
43
+ protected _pending: Map<number, Scalar>;
44
+ /** Pending values that are errors — the pending scan in {@link hasErrorIn} runs only while > 0. */
45
+ protected _errors: number;
46
+ /** A pending cell has no committed run under it; substitution cannot show it. */
47
+ protected _uncovered: boolean;
48
+ protected _rowStart: number;
49
+ protected _rowEnd: number;
50
+ protected _colStart: number;
51
+ protected _colEnd: number;
52
+ /** Demand results the plan has not taken yet; a commit leaves them. */
53
+ protected _demand: Map<number, Scalar>;
54
+ /** Demand values that are errors, as {@link _errors} is for the batch. */
55
+ protected _demandErrors: number;
56
+ protected _demandRowStart: number;
57
+ protected _demandRowEnd: number;
58
+ protected _demandColStart: number;
59
+ protected _demandColEnd: number;
60
+ protected _anyRowStart: number;
61
+ protected _anyRowEnd: number;
62
+ protected _anyColStart: number;
63
+ protected _anyColEnd: number;
64
+ constructor(inner: ISparseGrid<Scalar>, committed: ReferenceErrorIndex, flush: () => void);
65
+ get isPendingOverlay(): true;
66
+ /** The committed grid. */
67
+ getInner(): ISparseGrid<Scalar>;
68
+ /** Pending results. */
69
+ get size(): number;
70
+ /** Demand results the plan has not taken yet. */
71
+ get demandSize(): number;
72
+ /** Records one result. The executor's batch and this map are emptied together by a commit. */
73
+ push(row: number, col: number, value: Scalar): void;
74
+ /**
75
+ * Records one demand result, replacing the cell's last. A cell with nothing committed under it
76
+ * gets the value written through as well, so its later results can be substituted.
77
+ */
78
+ pushDemand(row: number, col: number, value: Scalar): void;
79
+ /** The plan has taken the cell's node: its result goes on as an ordinary one, or is written already. */
80
+ takeDemand(row: number, col: number): void;
81
+ /**
82
+ * Writes every demand result the plan did not take into the committed grid and empties the
83
+ * layer, so nothing computed is lost with the overlay.
84
+ */
85
+ commitDemand(): void;
86
+ /** After a commit: the committed grid now holds everything that was pending. Demand results stay. */
87
+ reset(): void;
88
+ protected _resetDemand(): void;
89
+ protected _growAny(row: number, col: number): void;
90
+ /** Rebuilds the union box from the two layers' own. */
91
+ protected _resetAny(): void;
92
+ /** Does a rectangle overlap the bounding box of the cells either layer holds? */
93
+ intersects(rowStart: number, colStart: number, rowEnd: number, colEnd: number): boolean;
94
+ /** Does a rectangle overlap the pending (batch) cells' bounding box? */
95
+ protected _pendingIntersects(rowStart: number, colStart: number, rowEnd: number, colEnd: number): boolean;
96
+ /** {@inheritDoc ReferenceErrorIndex.hasErrorIn} */
97
+ hasErrorIn(coords: IRange.Coords): boolean;
98
+ /** Does a (possibly partial) bounds box overlap the pending cells' box? Missing sides are open. */
99
+ protected _boundsIntersect(bounds: Partial<RangeCoords> | null | undefined): boolean;
100
+ /**
101
+ * Writes the demand results inside `bounds` (every one for `null`) into the committed grid, for
102
+ * a path that reads it without substituting. They stay in the layer — the grid now agrees with
103
+ * it, and the plan still takes each one.
104
+ */
105
+ protected _writeDemandIn(bounds: Partial<RangeCoords> | null | undefined): void;
106
+ /** The cell's value in either layer (they never share a cell), or `undefined`. */
107
+ protected _layered(key: number): Scalar | undefined;
108
+ /**
109
+ * Before an ITERATION over `bounds`: commits when a pending cell substitution cannot show
110
+ * (`uncovered`) lies inside them. A point read never needs this — the map answers it — and
111
+ * on a first calc, where every result is uncovered, a commit per read would be a commit per
112
+ * node. Nothing happens for reads outside the pending box.
113
+ */
114
+ protected _coverFor(bounds: Partial<RangeCoords> | null | undefined): void;
115
+ /** Before a MATERIALIZATION of `bounds` (no substitution on that path): commits what it would miss. */
116
+ protected _flushIfPendingIn(bounds: Partial<RangeCoords> | null | undefined): void;
117
+ /** Is the cell inside the box of either layer? */
118
+ protected _inBounds(row: number, col: number): boolean;
119
+ /** Nothing in either layer: every read is the committed grid's. */
120
+ protected _isEmpty(): boolean;
121
+ /** The run with pending values swapped in, or the run itself when none fall inside it. */
122
+ protected _substituteRun(major: number, minorFrom: number, run: IListLike<Scalar>): IListLike<Scalar>;
123
+ /** {@inheritDoc IGrid.getValueAt} */
124
+ getValueAt(row: number, column: number): Scalar;
125
+ /** {@inheritDoc ISparseGrid.getRuns} */
126
+ getRuns(options?: ISparseGrid.RunIteratorOptions): ISparseGrid.RunIterableIterator<Scalar>;
127
+ /** {@inheritDoc IGrid.entries} */
128
+ entries(options?: IGrid.IteratorOptions): IGrid.EntryIterator<Scalar>;
129
+ /** {@inheritDoc IGrid.values} */
130
+ values(options?: IGrid.IteratorOptions): IGrid.ValueIterator;
131
+ /** {@inheritDoc IGrid.keys} */
132
+ keys(options?: IGrid.IteratorOptions): IGrid.KeyIterator;
133
+ /** {@inheritDoc IGrid.getValues} */
134
+ getValues(coords?: RangeCoords): Tuple.Region<Scalar> | null;
135
+ /** {@inheritDoc IGrid.copyTo} */
136
+ copyTo(destination: IGrid, topLeft: CellCoords, from: RangeCoords): void;
137
+ /** {@inheritDoc IGrid.getAxis} */
138
+ getAxis(): RangeAxis;
139
+ /** {@inheritDoc IGrid.getCount} */
140
+ getCount(): number;
141
+ /** {@inheritDoc IGrid.getCoords} */
142
+ getCoords(): RangeCoords | null;
143
+ /** {@inheritDoc IGrid.getMaxCoords} */
144
+ getMaxCoords(): RangeCoords | null;
145
+ /** {@inheritDoc IGrid.clone} */
146
+ clone(cloneKey?: any): this;
147
+ /** {@inheritDoc IGrid.cloneEmpty} */
148
+ cloneEmpty(cloneKey?: any): this;
149
+ /** {@inheritDoc IGrid.setValues} */
150
+ setValues(values: Tuple.GridTuple<Scalar>): this;
151
+ /** {@inheritDoc IGrid.setValueAt} */
152
+ setValueAt(row: number, column: number, value: Scalar): void;
153
+ /** {@inheritDoc IGrid.delete} */
154
+ delete(coords: RangeCoords | null): boolean;
155
+ /** {@inheritDoc IGrid.clear} */
156
+ clear(): void;
157
+ /** {@inheritDoc IGrid.shift} */
158
+ shift(coords: RangeCoords, direction: Direction): boolean;
159
+ /** Both layers into the committed grid, so neither can shadow a write that follows. */
160
+ protected _commitAll(): void;
161
+ get [Symbol.toStringTag](): string;
162
+ }
163
+ //# sourceMappingURL=_PendingOverlayGrid.d.ts.map
@@ -5,16 +5,61 @@ import { IGrid, ISparseGrid, Tuple } from '../../collections';
5
5
  * Receives every value read a formula makes while a read hook is armed.
6
6
  *
7
7
  * @remarks
8
- * A single-cell read reports a 1x1 rectangle; a block read (iteration, runs, bounded tuples)
9
- * reports the rectangle it was asked for — the cells it *may* open — because a sparse iterator
10
- * cannot tell an empty cell from a formula cell whose value is not there yet, and the second is
11
- * exactly the read a cycle check must see. Coordinates are absolute and closed.
8
+ * A single-cell read reports a 1x1 rectangle. A block read reports the span the consumer actually
9
+ * SWEPT: the iterator is wrapped and each position reported as it is reached, so a function that
10
+ * stops early (`VLOOKUP` at its hit) never reports the tail it did not look at, while positions
11
+ * the iterator skipped over — an `includeEmpty: false` sweep past a formula cell whose value is
12
+ * not there yet — are reported, because a sparse iterator cannot tell such a cell from an empty
13
+ * one and that is exactly the read a cycle check must see. Coordinates are absolute and closed.
14
+ *
15
+ * `prefetch` marks the ONE call such a sweep makes up front, naming the rectangle it was asked
16
+ * for. It is not a claim that those cells were opened — only the decisions that must be made
17
+ * ahead of the first read belong to it (bringing unevaluated precedents forward); whether any
18
+ * cell in the rectangle was opened is answered by the per-position reports that follow. Its
19
+ * RETURN says whether those reports can tell the caller anything: `false` means nothing in the
20
+ * rectangle could ever produce an answer, and the sweep is left unobserved.
12
21
  *
13
22
  * The hook may throw; the throw propagates through the reading function up to the evaluation
14
23
  * that armed it. Nothing is reported for constructing a reference, for its coords or size, or for
15
24
  * a copy made to hold derived values.
16
25
  */
17
- export type ReadHook = (gridId: string, rowStart: number, colStart: number, rowEnd: number, colEnd: number) => void;
26
+ export type ReadHook = (gridId: string, rowStart: number, colStart: number, rowEnd: number, colEnd: number, prefetch?: boolean) => boolean;
27
+ /**
28
+ * Turns the positions an iterator reaches into rectangles, in iteration order.
29
+ *
30
+ * @remarks
31
+ * Positions are numbered along the iteration's own axis and direction, so the cells between the
32
+ * last one reported and the one just reached are always a contiguous run of that numbering — at
33
+ * most three rectangles: the tail of the first major line, the whole lines between, and the head
34
+ * of the last.
35
+ */
36
+ declare class SweptSpan {
37
+ private readonly _onRead;
38
+ private readonly _gridId;
39
+ private readonly _rowStart;
40
+ private readonly _colStart;
41
+ private readonly _rowEnd;
42
+ private readonly _colEnd;
43
+ /** The major axis is the column: positions run down a column, then on to the next. */
44
+ private readonly _byColumn;
45
+ private readonly _reverse;
46
+ /** Positions per major line — the height for a column sweep, the width for a row sweep. */
47
+ private readonly _minorCount;
48
+ private readonly _total;
49
+ /** The last position reported, in iteration order; `-1` before the first. */
50
+ private _cursor;
51
+ constructor(onRead: ReadHook, gridId: string, rowStart: number, colStart: number, rowEnd: number, colEnd: number, byColumn: boolean, reverse: boolean);
52
+ /** Reports everything from the last reported position up to and including this cell. */
53
+ reach(row: number, col: number): void;
54
+ /** A minor index (the row of a column sweep, the column of a row sweep) held inside the span. */
55
+ clampMinor(minor: number): number;
56
+ /** Reports the tail: an iterator run to exhaustion looked at everything it could yield. */
57
+ finish(): void;
58
+ /** Reports iteration positions `(cursor, to]`, then moves the cursor to `to`. */
59
+ private _advance;
60
+ /** One rectangle, in major/minor offsets from the sweep's origin. */
61
+ private _report;
62
+ }
18
63
  /**
19
64
  * An `ISparseGrid` that reports every value access on an inner grid to a {@link ReadHook}.
20
65
  *
@@ -23,6 +68,13 @@ export type ReadHook = (gridId: string, rowStart: number, colStart: number, rowE
23
68
  * and never touches the sheet directly, so wrapping that grid observes every value read the
24
69
  * reference makes — through any `Range` view derived from it, since views share the grid.
25
70
  *
71
+ * A block read is wrapped rather than reported whole: the iterator reports each position as it is
72
+ * reached, so a consumer that stops early — every exact-match lookup — never reports the tail it
73
+ * did not look at, and one run to exhaustion reports everything. Positions the iterator skipped
74
+ * over are reported with the one that follows them, because skipping is what a sparse iterator
75
+ * does to a formula cell whose value is not there yet. A materialization (`getValues`, `copyTo`)
76
+ * has no span and reports its rectangle whole.
77
+ *
26
78
  * `clone`/`cloneEmpty` hand back the inner grid's copy UNWRAPPED. A `Range` operation clones
27
79
  * its grid only as scratch space for a derived result (`fill`, `map`, a scalar broadcast) and
28
80
  * overwrites what it later reads back; the coordinates in such a copy no longer name sheet
@@ -38,6 +90,8 @@ export declare class ReadObservedGrid implements ISparseGrid<Scalar> {
38
90
  * A pass that Kahn orders builds none; tests pin that the ordinary path stays unwrapped.
39
91
  */
40
92
  static created: number;
93
+ /** {@inheritDoc ISparseGrid.observesReads} */
94
+ readonly observesReads: true;
41
95
  protected readonly _inner: ISparseGrid<Scalar>;
42
96
  protected readonly _gridId: string;
43
97
  protected readonly _onRead: ReadHook;
@@ -45,10 +99,21 @@ export declare class ReadObservedGrid implements ISparseGrid<Scalar> {
45
99
  /** The grid being observed. */
46
100
  getInner(): ISparseGrid<Scalar>;
47
101
  /**
48
- * Reports a block read. Missing sides of a partial bound are taken from the grid's maximum
49
- * extent, then from its data extent; a grid with neither has nothing to read.
102
+ * The rectangle a block read names, absolute and closed. Missing sides of a partial bound are
103
+ * taken from the grid's maximum extent, then from its data extent; a grid with neither has
104
+ * nothing to read, and answers `null`.
105
+ */
106
+ protected _resolveBounds(bounds: Partial<RangeCoords> | null | undefined): RangeCoords | null;
107
+ /**
108
+ * Reports a rectangle whose every cell the caller does open.
50
109
  */
51
110
  protected _reportBounds(bounds: Partial<RangeCoords> | null | undefined): void;
111
+ /**
112
+ * Announces the rectangle an iteration was asked for and opens a {@link SweptSpan} over it, or
113
+ * answers `null` when the sweep need not be observed at all — either the rectangle could not be
114
+ * resolved, or the hook says nothing in it can produce an answer.
115
+ */
116
+ protected _openSweep(bounds: Partial<RangeCoords> | null | undefined, axis: RangeAxis | undefined, reverse: boolean | undefined): SweptSpan | null;
52
117
  /** {@inheritDoc IGrid.getValueAt} */
53
118
  getValueAt(row: number, column: number): Scalar;
54
119
  /** {@inheritDoc ISparseGrid.getRuns} */
@@ -60,7 +125,7 @@ export declare class ReadObservedGrid implements ISparseGrid<Scalar> {
60
125
  /** {@inheritDoc IGrid.keys} */
61
126
  keys(options?: IGrid.IteratorOptions): IGrid.KeyIterator;
62
127
  /** {@inheritDoc IGrid.getValues} */
63
- getValues(coords?: RangeCoords): Tuple.BoundedTuples<Scalar> | null;
128
+ getValues(coords?: RangeCoords): Tuple.Region<Scalar> | null;
64
129
  /** {@inheritDoc IGrid.copyTo} */
65
130
  copyTo(destination: IGrid, topLeft: CellCoords, from: RangeCoords): void;
66
131
  /** {@inheritDoc IGrid.getAxis} */
@@ -87,4 +152,5 @@ export declare class ReadObservedGrid implements ISparseGrid<Scalar> {
87
152
  shift(coords: RangeCoords, direction: Direction): boolean;
88
153
  get [Symbol.toStringTag](): string;
89
154
  }
155
+ export {};
90
156
  //# sourceMappingURL=_ReadObservedGrid.d.ts.map
@@ -1,4 +1,5 @@
1
1
  export * from './CalcNode';
2
+ export * from './CalcInputs';
2
3
  export * from './CalcScope';
3
4
  export * from './CalcState';
4
5
  export * from './IContextContainer';
@@ -0,0 +1,80 @@
1
+ import { IExternalBookCollection, ExternalScopeParts } from '../../externalBook';
2
+ import { ExternalBookCollection } from '../../externalBook/ExternalBookCollection';
3
+ import { SheetSymbolHandle } from './SheetSymbolProvider';
4
+ /**
5
+ * The stable-id prefix that marks a sheet symbol as living in an external book.
6
+ *
7
+ * @remarks
8
+ * `ext:<bookId>` is the book-scoped form (`[1]!Name`); `ext:<bookId>:<sheetIndex>` adds a sheet, and
9
+ * `ext:<bookId>:<first>:<last>` is a 3-D span across the book's sheets (`[1]Alpha:Data Sheet`). The
10
+ * prefix is the test every consumer uses — "is this scope external" is a `startsWith`, which is why
11
+ * external books needed no new {@link SymbolType} and no new branch in the twenty-odd places that
12
+ * ask the Sheet provider (DESIGN-EXTERNAL-LINKS §4B).
13
+ */
14
+ export declare const EXTERNAL_ID_PREFIX = "ext:";
15
+ /** Is this stable id an external sheet or book? */
16
+ export declare const isExternalSymbolId: (stableId: string | null | undefined) => boolean;
17
+ /**
18
+ * The book id and sheet positions inside an `ext:` stable id, or `null` if it is not one.
19
+ *
20
+ * @remarks
21
+ * A book is `sheetIndex` and `sheetEnd` of `-1`; a sheet has both equal; a 3-D span has the first and
22
+ * last sheet. A uuid carries no `:`, so every `:` after the book id is a separator.
23
+ */
24
+ export declare function splitExternalSymbolId(stableId: string): {
25
+ bookId: string;
26
+ sheetIndex: number;
27
+ sheetEnd: number;
28
+ } | null;
29
+ /**
30
+ * The stable id of a book (`sheetIndex < 0`), of one of its sheets, or of a 3-D span from
31
+ * `sheetIndex` to `sheetEnd` — the inverse of {@link splitExternalSymbolId}.
32
+ */
33
+ export declare const externalSymbolId: (bookId: string, sheetIndex: number, sheetEnd?: number) => string;
34
+ /**
35
+ * The authoring half of {@link bindExternalScope}: how a scope that names no existing book, or a
36
+ * sheet no book lists, becomes one. Supplied by the engine from the collection it owns.
37
+ */
38
+ export interface ExternalBookMinter {
39
+ /** A new book for a typed `<dir>[<file>]` — answers its id. */
40
+ addBook(parts: ExternalScopeParts): string;
41
+ /** Records `sheetName` on an existing book — answers the sheet's index. */
42
+ addSheet(bookId: string, sheetName: string): number;
43
+ }
44
+ /**
45
+ * Binds a sheet scope that names an external book, or `null` if it names none of this workbook's.
46
+ *
47
+ * @remarks
48
+ * Every spelling a book answers to binds to the SAME id, so the storage form (`[1]Sheet1`), the
49
+ * closed display form (`C:\dir\[Book.xlsx]Sheet1`) and the open one (`[Book.xlsx]Sheet1`) are three
50
+ * ways of writing one symbol — which is the invariant that lets a handle's `toString()` be fed
51
+ * straight back to `bind` (see {@link SheetSymbolProvider}).
52
+ *
53
+ * A position that does not exist (`[7]` of three books) answers `null`: the typed image is kept
54
+ * verbatim, the reference is `#REF!`, and the writer warns. A file name matching more than one book
55
+ * answers `null` too — the citation is genuinely ambiguous and `[n]` is the only spelling that is
56
+ * not — unless the typed directory picks one of them out.
57
+ *
58
+ * A 3-D span (`[1]Alpha:Data Sheet`) binds to one id with its sheets in the book's own order, so
59
+ * `[1]Data Sheet:Alpha` is the same symbol; both sheets must be listed.
60
+ *
61
+ * With a `minter`, a file name no book carries MINTS one (DESIGN-EXTERNAL-LINKS §4C): typing
62
+ * `'C:\dir\[Book.xlsx]Sheet1'!A1` creates the link, cache empty, exactly as Excel does when it cannot
63
+ * see the source. A sheet a known book does not list is recorded on it the same way. A `[n]` is never
64
+ * minted — a position is a citation of something that exists, and a directory that differs from a
65
+ * same-named book's is a different book, not a respelling of it. A span never mints either.
66
+ */
67
+ export declare function bindExternalScope(books: ExternalBookCollection | null | undefined, displayName: string, minter?: ExternalBookMinter | null, withinBook?: string | null): string | null;
68
+ /**
69
+ * Resolves an `ext:` stable id to a sheet handle, or `null` if the book has since been removed.
70
+ *
71
+ * @remarks
72
+ * `toString()` is the projection DESIGN-EXTERNAL-LINKS §4B describes: `[n]Sheet1` by default — the
73
+ * form a formula is STORED as, read off the book's current position — and the book's display name
74
+ * when the caller asks for one. Both bind back. A span spells both sheets after one book prefix
75
+ * (`[1]Alpha:Data Sheet`), as Excel writes it.
76
+ */
77
+ export declare function resolveExternalSymbol(books: ExternalBookCollection | null | undefined, stableId: string, display: boolean): SheetSymbolHandle | null;
78
+ /** The `AddOptions` a minted book starts from: the typed directory and file, the typed sheet. */
79
+ export declare function mintedBookOptions(parts: ExternalScopeParts): IExternalBookCollection.AddOptions;
80
+ //# sourceMappingURL=ExternalSheetSymbols.d.ts.map
@@ -10,6 +10,29 @@ export declare const SymbolType: {
10
10
  };
11
11
  export type SymbolType = typeof SymbolType[keyof typeof SymbolType];
12
12
  export interface SheetCtx {
13
+ /**
14
+ * Resolve to the form a READER sees rather than the form a formula is stored as.
15
+ *
16
+ * @remarks
17
+ * The two differ only for an external book: stored is `[n]Sheet1`, where `n` is a position
18
+ * projected from the book's place in the collection, and display is the book's own spelling
19
+ * (`'C:\dir\[Book.xlsx]Sheet1'`). A local sheet has one name and ignores this.
20
+ */
21
+ display?: boolean;
22
+ /**
23
+ * Bind is AUTHORING: a scope that names an external book this workbook has none of may create
24
+ * one (`'C:\dir\[Book.xlsx]Sheet1'` typed into a cell is how a link is made — DESIGN-EXTERNAL-LINKS
25
+ * §5 step 13). Off by default, and off for an editing compile, so a keystroke mints nothing; a
26
+ * local sheet is never minted.
27
+ */
28
+ mint?: boolean;
29
+ /**
30
+ * The formula being linked belongs to an external BOOK — a cached defined name's body — so a
31
+ * plain sheet name (`Alpha`) is that book's sheet, never one of this workbook's, and a `[n]`
32
+ * position cites the source's own links, which this workbook cannot see (`null`). Nothing is
33
+ * minted inside a book.
34
+ */
35
+ book?: string;
13
36
  }
14
37
  export interface NamedFormulaCtx {
15
38
  /** The stableId of the sheet that owns the formula scope, if any. */
@@ -57,6 +57,11 @@ export declare class IndirectSymbolProvider<T extends INamed.INamedValue = IName
57
57
  */
58
58
  private readonly _getByName;
59
59
  private readonly _getById;
60
+ /**
61
+ * The name an item goes by for this provider's reader - what a bind matches and a resolve
62
+ * displays. The item's own name unless the reader holds a copy of the names of its own.
63
+ */
64
+ private readonly _nameOf;
60
65
  private _byName;
61
66
  private _byId;
62
67
  /**
@@ -79,7 +84,12 @@ export declare class IndirectSymbolProvider<T extends INamed.INamedValue = IName
79
84
  * shadowing (a name scoped to that sheet beats a global of the same name). Providers with no
80
85
  * scoped items — tables — may ignore it.
81
86
  */
82
- _getByName: (name: string, scope?: string | null) => T | null, _getById: (id: string) => T | null);
87
+ _getByName: (name: string, scope?: string | null) => T | null, _getById: (id: string) => T | null,
88
+ /**
89
+ * The name an item goes by for this provider's reader - what a bind matches and a resolve
90
+ * displays. The item's own name unless the reader holds a copy of the names of its own.
91
+ */
92
+ _nameOf?: (item: T) => string);
83
93
  /**
84
94
  * @inheritdoc ISymbolProvider.bind
85
95
  *
@@ -98,8 +108,12 @@ export declare class IndirectSymbolProvider<T extends INamed.INamedValue = IName
98
108
  * it heals to turns out to be scoped.
99
109
  *
100
110
  * A miss on `_byName` is not proof the item has no proxy — see {@link _byRealId}.
111
+ *
112
+ * `ctx.existing: true` asks only whether the name is an item NOW: it answers `null` rather than
113
+ * minting a proxy for a name nothing holds. For a caller deciding what a spelling IS (a bare name
114
+ * that may be a table) — a proxy minted for every other name would never heal into anything.
101
115
  */
102
- bind(displayName: string, ctx?: Record<string, unknown>): string;
116
+ bind(displayName: string, ctx?: Record<string, unknown>): string | null;
103
117
  /** Points a proxy at its real item, keeping {@link _byRealId} in step. */
104
118
  private _adopt;
105
119
  /** Moves a proxy to the `_byName` key its current name/scope spell. */
@@ -2,17 +2,77 @@ import { IRange } from '@sheetxl/primitives';
2
2
  import { ISymbolProvider, SymbolHandle } from './ISymbolRegistry';
3
3
  /**
4
4
  * Strict provider for sheet symbols.
5
+ *
6
+ * @remarks
7
+ * An EXTERNAL sheet is a sheet symbol too. A scope this workbook has no sheet for, and which names
8
+ * a book (`[1]Sheet1`, `C:\dir\[Book.xlsx]Sheet1`), falls through to `_getExternal` rather than to a
9
+ * `SymbolType` of its own — the twenty-odd consumers of a scope all ask this provider, and teaching
10
+ * one provider a second spelling touches none of them (DESIGN-EXTERNAL-LINKS §4B).
11
+ *
12
+ * So is a 3-D span (`Alpha:Gamma`, PLAN-3D-REFS §2.1): one symbol naming its two endpoint sheets,
13
+ * `<firstId>:<lastId>`, with the endpoints in tab order.
5
14
  */
6
15
  export declare class SheetSymbolProvider implements ISymbolProvider {
7
16
  private readonly _getId;
8
17
  private readonly _getById;
9
- constructor(_getId: (displayName: string) => string | null, _getById: (sheetId: string) => SheetSymbolHandle | null);
18
+ private readonly _external?;
19
+ /** A sheet's position in tab order, hidden sheets included, or `-1`. */
20
+ private readonly _getIndexById?;
21
+ constructor(_getId: (displayName: string) => string | null, _getById: (sheetId: string) => SheetSymbolHandle | null, _external?: (ExternalSheetSymbols | null) | undefined,
22
+ /** A sheet's position in tab order, hidden sheets included, or `-1`. */
23
+ _getIndexById?: ((sheetId: string) => number) | null | undefined);
10
24
  /** @inheritdoc ISymbolProvider.bind */
11
- bind(displayName: string, _ctx: Record<string, unknown>): string | null;
25
+ bind(displayName: string, ctx?: Record<string, unknown>): string | null;
12
26
  /** @inheritdoc ISymbolProvider.resolve */
13
- resolve(stableId: string, _ctx: Record<string, unknown>): SheetSymbolHandle | null;
27
+ resolve(stableId: string, ctx?: Record<string, unknown>): SheetSymbolHandle | null;
28
+ /**
29
+ * `First:Last` (names or ids) to a span id with the endpoints in tab order, the plain sheet id when
30
+ * both ends are one sheet (`Alpha:Alpha` is `Alpha`, as Excel normalizes it), or `null` when either
31
+ * end is not a sheet of this workbook.
32
+ */
33
+ private _bindSpan;
34
+ /** One end of a span: a sheet's id or name, never a virtual grid (which has no name). */
35
+ private _bindEndpoint;
36
+ private _resolveSpan;
37
+ }
38
+ /**
39
+ * The two endpoint sheet ids of a LOCAL span id (`<firstId>:<lastId>`), or `null` if it is not one.
40
+ *
41
+ * @remarks
42
+ * A sheet id is `<name>-<uuid>` and a sheet name cannot contain `:`, so a `:` in a non-external id is
43
+ * the separator. Both halves must end in a uuid: typed text that never bound (`Alpha:Nope`) reaches
44
+ * `resolve` too, and must not be mistaken for a span whose sheets are gone.
45
+ */
46
+ export declare function splitSheetSpanSymbolId(stableId: string | null | undefined): [string, string] | null;
47
+ /**
48
+ * What a local span id becomes when tab order changes from `before` to `after` — `undefined` when it
49
+ * stands.
50
+ *
51
+ * @remarks
52
+ * An endpoint that is gone, or that `movedId` carried across the other endpoint, is replaced by its
53
+ * inward neighbor in `before`: the nearest sheet between the endpoints that is still there. When both
54
+ * ends land on one sheet the answer is that sheet's plain id, as Excel collapses `Alpha:Beta` to
55
+ * `Beta!A1`. A span that lost every sheet stands too; it has nothing to shrink to.
56
+ */
57
+ export declare function replaceSheetSpanEndpoints(spanId: string, before: readonly string[], after: readonly string[], movedId?: string): string | undefined;
58
+ /** Whether a sheet stable id is a 3-D span — local `<firstId>:<lastId>` or external `ext:<bookId>:<i>:<j>`. */
59
+ export declare function isSpanSymbolId(stableId: string | null | undefined): boolean;
60
+ /** The external-book half of {@link SheetSymbolProvider}, supplied by `Calculation`. */
61
+ export interface ExternalSheetSymbols {
62
+ /**
63
+ * `mint`: a scope naming a book this workbook has none of may CREATE one — see {@link SheetCtx.mint}.
64
+ * `withinBook`: the id of the book a plain sheet name belongs to — see {@link SheetCtx.book}.
65
+ */
66
+ bind(displayName: string, mint: boolean, withinBook?: string | null): string | null;
67
+ resolve(stableId: string, display: boolean): SheetSymbolHandle | null;
14
68
  }
15
69
  export interface SheetSymbolHandle extends SymbolHandle {
16
70
  getEntireCoords(): IRange.Coords | null;
71
+ /**
72
+ * The sheet's own name, `null` for a sheet that has none. `toString` is the DISPLAY form and
73
+ * substitutes a placeholder for a nameless sheet; a caller that means to bind or compare a
74
+ * name reads this instead. Absent on a handle that is not a sheet (a virtual grid).
75
+ */
76
+ getName?(): string | null;
17
77
  }
18
78
  //# sourceMappingURL=SheetSymbolProvider.d.ts.map
@@ -16,4 +16,24 @@ export declare class SymbolRegistry implements ISymbolRegistry {
16
16
  /** @inheritdoc ISymbolRegistry.resolve */
17
17
  resolve(type: SymbolType, stableId: string, ctx?: Record<string, unknown>): SymbolHandle | null;
18
18
  }
19
+ /**
20
+ * A registry that answers some symbol types from providers of its own and every other from a base.
21
+ *
22
+ * @remarks
23
+ * The model's symbol map (DESIGN-CALC-SERVICE §8) is this over the engine's: the types the engine
24
+ * keeps a copy of resolve through the model's live items here, while the rest resolve through the
25
+ * engine's providers. Registering a provider registers it on the base, so a provider that arrives
26
+ * late (the functions, once their module loads) is seen by both.
27
+ */
28
+ export declare class OverlaidSymbolRegistry implements ISymbolRegistry {
29
+ private readonly _base;
30
+ private readonly _overrides;
31
+ constructor(_base: ISymbolRegistry, _overrides: ReadonlyMap<SymbolType, ISymbolProvider>);
32
+ /** @inheritdoc ISymbolRegistry.registerProvider */
33
+ registerProvider(type: SymbolType, provider: ISymbolProvider): void;
34
+ /** @inheritdoc ISymbolRegistry.bind */
35
+ bind(type: SymbolType, displayName: string, ctx?: Record<string, unknown>): string | null;
36
+ /** @inheritdoc ISymbolRegistry.resolve */
37
+ resolve(type: SymbolType, stableId: string, ctx?: Record<string, unknown>): SymbolHandle | null;
38
+ }
19
39
  //# sourceMappingURL=SymbolRegistry.d.ts.map
@@ -1,7 +1,8 @@
1
1
  export { type ISymbolRegistry, type ISymbolProvider, type SymbolHandle, SymbolType } from './ISymbolRegistry';
2
2
  export { type SheetCtx, type NamedFormulaCtx, type TableCtx, type ColumnCtx, type FunctionCtx } from './ISymbolRegistry';
3
- export { SymbolRegistry } from './SymbolRegistry';
4
- export { SheetSymbolProvider } from './SheetSymbolProvider';
3
+ export { SymbolRegistry, OverlaidSymbolRegistry } from './SymbolRegistry';
4
+ export { SheetSymbolProvider, isSpanSymbolId, splitSheetSpanSymbolId, replaceSheetSpanEndpoints, type SheetSymbolHandle, type ExternalSheetSymbols } from './SheetSymbolProvider';
5
+ export { EXTERNAL_ID_PREFIX, isExternalSymbolId, splitExternalSymbolId, externalSymbolId, bindExternalScope, resolveExternalSymbol, mintedBookOptions, type ExternalBookMinter } from './ExternalSheetSymbols';
5
6
  export { TableSymbolProvider } from './TableSymbolProvider';
6
7
  export { IndirectSymbolProvider, IndirectProxy } from './IndirectSymbolProvider';
7
8
  export { TableColumnSymbolProvider } from './TableColumnSymbolProvider';