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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/THIRD-PARTY-NOTICES.md +1 -1
  2. package/browser/cjs/B0AS8k-hrSCBUlUY.cjs +1 -0
  3. package/browser/cjs/B308aXzcAYr1GN1c.cjs +1 -0
  4. package/browser/cjs/B44p8LIyxG3GtaGC.cjs +93 -0
  5. package/browser/cjs/{a0Z-SXs_N71CtqYb.cjs → D6YaqporVrSewZpm.cjs} +1 -1
  6. package/browser/cjs/DjWcveVCs0NFiKep.cjs +1 -0
  7. package/browser/cjs/index.cjs +2 -2
  8. package/browser/esm/-OKDZ9cUBtkgD4Zr.mjs +20 -0
  9. package/browser/esm/8Nw0lKc4ISs7hEJT.mjs +70223 -0
  10. package/browser/esm/{DlPMeIyxT9tG_WDk.mjs → BmEEyMxNzlbXG98H.mjs} +2 -2
  11. package/browser/esm/BtdDRkWn-zCV3oic.mjs +394 -0
  12. package/browser/esm/DaCTT4vda0m8Fnxo.mjs +8 -0
  13. package/browser/esm/{B0HS42a7lga1k1U_.mjs → DvFKKE72ZA02l8iF.mjs} +1 -1
  14. package/browser/esm/{uyWBMSIxMlt8n5Z3.mjs → Z-dzbKvqaxll9l_t.mjs} +2 -2
  15. package/browser/esm/index.mjs +871 -696
  16. package/licenses/dependencies.txt +204 -204
  17. package/node/esm/{Cku7XiUvw1xrRasi.mjs → BpMTlTrJLWh_wJ5H.mjs} +1 -1
  18. package/node/esm/D5quDVovf1zjYBgJ.mjs +28 -0
  19. package/node/esm/DP0M3_S_dwLwRMiA.mjs +403 -0
  20. package/node/esm/DTHN_EkuOscW3f3B.mjs +8 -0
  21. package/node/esm/index.mjs +54375 -39377
  22. package/package.json +6 -7
  23. package/resources/locales/de/model.msg.json +45 -9
  24. package/resources/locales/en/model.msg.json +42 -9
  25. package/types/scripting-api.json +7094 -0
  26. package/types/scripting-enums.json +54 -8
  27. package/types/scripting.d.ts +6985 -1171
  28. package/types/src/anchored/AbstractAnchored.d.ts +18 -8
  29. package/types/src/anchored/AnchoredMap.d.ts +2 -0
  30. package/types/src/anchored/IAnchoredMap.d.ts +52 -4
  31. package/types/src/autoFill/AutoFill.d.ts +316 -32
  32. package/types/src/autoFill/IAutoFill.d.ts +232 -15
  33. package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +41 -40
  34. package/types/src/border/index.d.ts +1 -1
  35. package/types/src/calculation/Calculation.d.ts +740 -35
  36. package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
  37. package/types/src/calculation/FormulaText.d.ts +74 -0
  38. package/types/src/calculation/ICalculation.d.ts +318 -81
  39. package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
  40. package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
  41. package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
  42. package/types/src/calculation/TokenType.d.ts +9 -0
  43. package/types/src/calculation/Types.d.ts +83 -2
  44. package/types/src/calculation/_CloneBoundary.d.ts +80 -0
  45. package/types/src/calculation/compiler/ASTTypes.d.ts +58 -0
  46. package/types/src/calculation/compiler/CompilerUtils.d.ts +134 -12
  47. package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
  48. package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
  49. package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
  50. package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
  51. package/types/src/calculation/compiler/SRParser.d.ts +2 -1
  52. package/types/src/calculation/compiler/Types.d.ts +79 -9
  53. package/types/src/calculation/executor/CalcExecutor.d.ts +312 -33
  54. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
  55. package/types/src/calculation/executor/CircularReference.d.ts +2 -0
  56. package/types/src/calculation/formula/Formula.d.ts +58 -21
  57. package/types/src/calculation/formula/FormulaBlock.d.ts +124 -21
  58. package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
  59. package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
  60. package/types/src/calculation/formula/LambdaValue.d.ts +15 -16
  61. package/types/src/calculation/formula/LazyValue.d.ts +96 -0
  62. package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
  63. package/types/src/calculation/formula/index.d.ts +1 -0
  64. package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
  65. package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
  66. package/types/src/calculation/grid/CalcGrid.d.ts +384 -158
  67. package/types/src/calculation/grid/CalcGridBackend.d.ts +450 -0
  68. package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
  69. package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
  70. package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
  71. package/types/src/calculation/grid/FormulaHost.d.ts +236 -0
  72. package/types/src/calculation/grid/ICalcGrid.d.ts +456 -143
  73. package/types/src/calculation/grid/_CalcRequest.d.ts +272 -0
  74. package/types/src/calculation/grid/index.d.ts +4 -0
  75. package/types/src/calculation/index.d.ts +2 -0
  76. package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
  77. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
  78. package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
  79. package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
  80. package/types/src/calculation/spatial/index.d.ts +1 -0
  81. package/types/src/calculation/state/CalcInputs.d.ts +41 -0
  82. package/types/src/calculation/state/CalcNode.d.ts +141 -30
  83. package/types/src/calculation/state/CalcScope.d.ts +37 -0
  84. package/types/src/calculation/state/CalcState.d.ts +22 -1
  85. package/types/src/calculation/state/CalculationContext.d.ts +36 -2
  86. package/types/src/calculation/state/IContextContainer.d.ts +129 -27
  87. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
  88. package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
  89. package/types/src/calculation/state/index.d.ts +1 -0
  90. package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
  91. package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
  92. package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
  93. package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
  94. package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
  95. package/types/src/calculation/symbol/index.d.ts +3 -2
  96. package/types/src/cell/ICell.d.ts +78 -23
  97. package/types/src/cell/ICellProtection.d.ts +50 -10
  98. package/types/src/cellRange/ICellRange.d.ts +329 -72
  99. package/types/src/cellRange/ICellRanges.d.ts +9 -7
  100. package/types/src/chart/Chart.d.ts +72 -2
  101. package/types/src/chart/ChartCollection.d.ts +26 -0
  102. package/types/src/chart/IChart.d.ts +162 -9
  103. package/types/src/chart/IChartCollection.d.ts +25 -0
  104. package/types/src/chart/_ChartXml.d.ts +70 -0
  105. package/types/src/chart/index.d.ts +1 -3
  106. package/types/src/collections/ArraysGrid.d.ts +1 -1
  107. package/types/src/collections/IGrid.d.ts +1 -1
  108. package/types/src/collections/ISparseGrid.d.ts +9 -0
  109. package/types/src/collections/ISpatialMap.d.ts +59 -21
  110. package/types/src/collections/ImmutableList.d.ts +28 -0
  111. package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
  112. package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
  113. package/types/src/collections/RepeatingList.d.ts +7 -0
  114. package/types/src/collections/ScalarGrid.d.ts +50 -0
  115. package/types/src/collections/SparseGrid.d.ts +1 -1
  116. package/types/src/collections/SpatialMap.d.ts +13 -21
  117. package/types/src/collections/Tuple.d.ts +128 -16
  118. package/types/src/collections/_GridUtils.d.ts +19 -6
  119. package/types/src/collections/_RangeSweep.d.ts +97 -0
  120. package/types/src/collections/_SpatialUtils.d.ts +20 -2
  121. package/types/src/collections/index.d.ts +1 -0
  122. package/types/src/comment/Comment.d.ts +159 -0
  123. package/types/src/comment/CommentCollection.d.ts +40 -0
  124. package/types/src/comment/IComment.d.ts +319 -48
  125. package/types/src/comment/ICommentCollection.d.ts +90 -0
  126. package/types/src/comment/_CommentUtils.d.ts +28 -0
  127. package/types/src/comment/index.d.ts +1 -0
  128. package/types/src/condition/AnchoredConditional.d.ts +76 -17
  129. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +8 -7
  130. package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +2 -1
  131. package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +3 -6
  132. package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +1 -1
  133. package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +7 -0
  134. package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +9 -0
  135. package/types/src/condition/Condition.d.ts +16 -0
  136. package/types/src/condition/ICondition.d.ts +86 -33
  137. package/types/src/condition/_ConditionFormula.d.ts +152 -0
  138. package/types/src/condition/_ConditionUtils.d.ts +73 -10
  139. package/types/src/conditionalFormat/ConditionalFormat.d.ts +21 -10
  140. package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
  141. package/types/src/conditionalFormat/IConditionalFormat.d.ts +5 -3
  142. package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
  143. package/types/src/dataValidation/DataValidation.d.ts +50 -3
  144. package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
  145. package/types/src/dataValidation/IDataValidation.d.ts +119 -30
  146. package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
  147. package/types/src/date/DateUtils.d.ts +20 -0
  148. package/types/src/date/_DateUtils.d.ts +91 -7
  149. package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
  150. package/types/src/externalBook/ExternalBookName.d.ts +96 -0
  151. package/types/src/externalBook/IExternalBook.d.ts +170 -18
  152. package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
  153. package/types/src/externalBook/index.d.ts +1 -0
  154. package/types/src/fill/IStroke.d.ts +1 -1
  155. package/types/src/filter/IFilter.d.ts +29 -4
  156. package/types/src/font/IFont.d.ts +17 -0
  157. package/types/src/history/IHistory.d.ts +3 -2
  158. package/types/src/i18n/LanguagePack.d.ts +12 -4
  159. package/types/src/index.d.ts +3 -0
  160. package/types/src/io/AbstractBackingStore.d.ts +24 -1
  161. package/types/src/io/ArrayBackingStore.d.ts +1 -1
  162. package/types/src/io/EmbeddedPart.d.ts +20 -0
  163. package/types/src/io/IEmbeddedPart.d.ts +63 -0
  164. package/types/src/io/IWorkbookIO.d.ts +185 -18
  165. package/types/src/io/WorkbookIO.d.ts +9 -0
  166. package/types/src/io/WorkbookOrigin.d.ts +20 -11
  167. package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
  168. package/types/src/io/_XmlFragment.d.ts +49 -0
  169. package/types/src/io/index.d.ts +1 -0
  170. package/types/src/lib/file/file.browser.d.ts +19 -5
  171. package/types/src/lib/file/file.node.d.ts +5 -0
  172. package/types/src/lib/utils/_Utils.d.ts +11 -0
  173. package/types/src/lib/utils/utils.browser.d.ts +9 -3
  174. package/types/src/license/license-key.d.ts +27 -0
  175. package/types/src/listener/IListener.d.ts +12 -7
  176. package/types/src/listener/ListenerEmitter.d.ts +46 -5
  177. package/types/src/model/AbstractModel.d.ts +14 -5
  178. package/types/src/movable/Control.d.ts +57 -0
  179. package/types/src/movable/IControl.d.ts +84 -0
  180. package/types/src/movable/IMovable.d.ts +23 -1
  181. package/types/src/movable/IMovableCollection.d.ts +2 -0
  182. package/types/src/movable/Movable.d.ts +4 -6
  183. package/types/src/movable/MovableCollection.d.ts +7 -7
  184. package/types/src/movable/index.d.ts +4 -0
  185. package/types/src/named/AbstractNamed.d.ts +1 -1
  186. package/types/src/named/INamed.d.ts +4 -1
  187. package/types/src/named/INamedCollection.d.ts +26 -0
  188. package/types/src/named/NamedCollection.d.ts +16 -15
  189. package/types/src/numFmt/BuiltInFormats.d.ts +15 -7
  190. package/types/src/numFmt/IFormatEngine.d.ts +2 -0
  191. package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
  192. package/types/src/person/IPerson.d.ts +99 -0
  193. package/types/src/person/IPersonCollection.d.ts +51 -0
  194. package/types/src/person/Person.d.ts +32 -0
  195. package/types/src/person/PersonCollection.d.ts +49 -0
  196. package/types/src/person/index.d.ts +3 -0
  197. package/types/src/picture/IPicture.d.ts +2 -0
  198. package/types/src/picture/Picture.d.ts +2 -0
  199. package/types/src/pivot/IPivotTable.d.ts +107 -0
  200. package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
  201. package/types/src/pivot/PivotTable.d.ts +57 -0
  202. package/types/src/pivot/PivotTableCollection.d.ts +25 -0
  203. package/types/src/pivot/index.d.ts +6 -0
  204. package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
  205. package/types/src/primitives/Criteria.d.ts +1 -1
  206. package/types/src/primitives/LambdaBrand.d.ts +21 -0
  207. package/types/src/primitives/PrimitiveUtils.d.ts +56 -19
  208. package/types/src/primitives/Range.d.ts +102 -24
  209. package/types/src/primitives/RangeStats.d.ts +24 -1
  210. package/types/src/primitives/ReferenceRange.d.ts +42 -0
  211. package/types/src/primitives/Runtime.d.ts +15 -2
  212. package/types/src/primitives/stats/FrequencyStats.d.ts +9 -0
  213. package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
  214. package/types/src/primitives/stats/SortedNumbers.d.ts +2 -0
  215. package/types/src/primitives/stats/index.d.ts +1 -0
  216. package/types/src/print/IPrint.d.ts +0 -22
  217. package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
  218. package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
  219. package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
  220. package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
  221. package/types/src/protection/DefaultProtection.d.ts +12 -1
  222. package/types/src/protection/IProtection.d.ts +36 -2
  223. package/types/src/reference/ReferenceUtils.d.ts +80 -0
  224. package/types/src/reference/index.d.ts +2 -0
  225. package/types/src/resource/IResource.d.ts +21 -1
  226. package/types/src/resource/IResourceCollection.d.ts +9 -1
  227. package/types/src/resource/ResourceCollection.d.ts +6 -6
  228. package/types/src/scripting/FunctionCollection.d.ts +41 -11
  229. package/types/src/scripting/IFunctionCollection.d.ts +41 -0
  230. package/types/src/scripting/IModule.d.ts +25 -0
  231. package/types/src/scripting/IModuleCollection.d.ts +17 -0
  232. package/types/src/scripting/IScript.d.ts +18 -0
  233. package/types/src/scripting/Module.d.ts +34 -6
  234. package/types/src/scripting/ModuleCollection.d.ts +17 -12
  235. package/types/src/scripting/Runtime.d.ts +15 -0
  236. package/types/src/scripting/Scripts.d.ts +2 -0
  237. package/types/src/scripting/TypedFunction.d.ts +151 -18
  238. package/types/src/scripting/_FunctionIndex.d.ts +5 -0
  239. package/types/src/scripting/_ModuleUtils.d.ts +11 -1
  240. package/types/src/scripting/_ScriptUtils.d.ts +3 -0
  241. package/types/src/scripting/declarations.browser.d.ts +10 -0
  242. package/types/src/scripting/declarations.d.ts +49 -0
  243. package/types/src/scripting/declarations.node.d.ts +9 -0
  244. package/types/src/scripting/index.d.ts +3 -0
  245. package/types/src/selection/IRangeSelection.d.ts +9 -4
  246. package/types/src/selection/RangeSelection.d.ts +2 -0
  247. package/types/src/shape/IShape.d.ts +41 -3
  248. package/types/src/shape/Shape.d.ts +10 -0
  249. package/types/src/shape/_ShapeXml.d.ts +28 -0
  250. package/types/src/sheet/CellRegion.d.ts +6 -0
  251. package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
  252. package/types/src/sheet/ISheet.d.ts +224 -41
  253. package/types/src/sheet/ISheetCollection.d.ts +2 -5
  254. package/types/src/sheet/NamedCellRange.d.ts +16 -7
  255. package/types/src/sheet/Sheet.d.ts +749 -114
  256. package/types/src/sheet/SheetCell.d.ts +81 -21
  257. package/types/src/sheet/SheetCollection.d.ts +19 -8
  258. package/types/src/sheet/SheetRange.d.ts +62 -14
  259. package/types/src/sheet/SheetRanges.d.ts +4 -6
  260. package/types/src/sheet/_CellBuffer.d.ts +214 -0
  261. package/types/src/sheet/_InvalidSheetRange.d.ts +5 -5
  262. package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
  263. package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
  264. package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
  265. package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
  266. package/types/src/sheet/_SheetAutoFitUtils.d.ts +2 -2
  267. package/types/src/sheet/_SheetEvents.d.ts +43 -0
  268. package/types/src/sheet/_SheetFilterUtils.d.ts +32 -1
  269. package/types/src/sheet/_SheetIntents.d.ts +250 -0
  270. package/types/src/sheet/_SheetMutations.d.ts +179 -59
  271. package/types/src/sheet/_SheetStateReader.d.ts +16 -10
  272. package/types/src/sheet/_SheetStateTypes.d.ts +57 -73
  273. package/types/src/sheet/_SheetUtils.d.ts +2 -18
  274. package/types/src/sheet/_WatchAnchor.d.ts +93 -0
  275. package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
  276. package/types/src/sheet/spatial/index.d.ts +1 -0
  277. package/types/src/sheet/style/SheetCellStyle.d.ts +91 -64
  278. package/types/src/sheet/style/SheetDirectStyle.d.ts +16 -5
  279. package/types/src/sheet/style/_Resolvers.d.ts +5 -3
  280. package/types/src/sheet/style/_StyleUtils.d.ts +37 -7
  281. package/types/src/sheetHeader/ISheetHeader.d.ts +2 -0
  282. package/types/src/sheetHeader/SheetHeader.d.ts +14 -0
  283. package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
  284. package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
  285. package/types/src/sheetView/ISheetView.d.ts +45 -1
  286. package/types/src/sheetView/SheetView.d.ts +11 -0
  287. package/types/src/slicer/ISlicer.d.ts +2 -0
  288. package/types/src/slicer/Slicer.d.ts +2 -0
  289. package/types/src/sort/ISort.d.ts +2 -0
  290. package/types/src/string/IStringCollection.d.ts +5 -0
  291. package/types/src/string/StringCollection.d.ts +6 -6
  292. package/types/src/style/INamedStyleCollection.d.ts +72 -0
  293. package/types/src/style/IStyle.d.ts +30 -10
  294. package/types/src/style/IStyleCollection.d.ts +63 -42
  295. package/types/src/style/ITableStyleCollection.d.ts +89 -0
  296. package/types/src/style/NamedStyleCollection.d.ts +39 -0
  297. package/types/src/style/StyleCollection.d.ts +41 -5
  298. package/types/src/style/TableStyleCollection.d.ts +49 -0
  299. package/types/src/style/_BuiltInStyleDefs.d.ts +3 -3
  300. package/types/src/style/index.d.ts +4 -0
  301. package/types/src/table/AnchoredTable.d.ts +644 -68
  302. package/types/src/table/AutoTable.d.ts +5 -5
  303. package/types/src/table/ITable.d.ts +228 -30
  304. package/types/src/table/ITableCollection.d.ts +2 -0
  305. package/types/src/table/TableCollection.d.ts +19 -8
  306. package/types/src/table/_FilterField.d.ts +7 -5
  307. package/types/src/table/_NamedTable.d.ts +17 -1
  308. package/types/src/table/_NamedTableSource.d.ts +1 -0
  309. package/types/src/table/_SortField.d.ts +2 -0
  310. package/types/src/table/_TableColumn.d.ts +13 -2
  311. package/types/src/table/_TableMessages.d.ts +1 -0
  312. package/types/src/table/_TableUtils.d.ts +40 -0
  313. package/types/src/text/Bullet.d.ts +4 -0
  314. package/types/src/text/ITextFrame.d.ts +25 -1
  315. package/types/src/text/TextBoxAlignment.d.ts +15 -6
  316. package/types/src/text/TextFrame.d.ts +4 -0
  317. package/types/src/text/TextLine.d.ts +4 -0
  318. package/types/src/text/TextParagraph.d.ts +4 -0
  319. package/types/src/text/TextRun.d.ts +9 -0
  320. package/types/src/text/TextStacked.d.ts +83 -0
  321. package/types/src/text/index.d.ts +1 -0
  322. package/types/src/theme/ITheme.d.ts +2 -0
  323. package/types/src/theme/IThemeCollection.d.ts +2 -0
  324. package/types/src/theme/ThemeCollection.d.ts +8 -7
  325. package/types/src/transaction/ITransaction.d.ts +238 -36
  326. package/types/src/transaction/Transaction.d.ts +99 -11
  327. package/types/src/type/AbstractCollection.d.ts +101 -0
  328. package/types/src/type/ICollection.d.ts +117 -0
  329. package/types/src/type/ITypes.d.ts +9 -7
  330. package/types/src/type/index.d.ts +1 -0
  331. package/types/src/utils/_CSSUtils.d.ts +3 -3
  332. package/types/src/workbook/IWorkbook.d.ts +171 -40
  333. package/types/src/workbook/Workbook.d.ts +103 -7
  334. package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
  335. package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
  336. package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
  337. package/types/src/workbookView/IWorkbookView.d.ts +12 -0
  338. package/types/src/workbookView/WorkbookView.d.ts +5 -0
  339. package/browser/cjs/BatsV2UUraVDCRXm.cjs +0 -57
  340. package/browser/cjs/CUz53T65cRGQRgvv.cjs +0 -33
  341. package/browser/cjs/DU0kYUtdFa3jK-im.cjs +0 -1
  342. package/browser/cjs/Dv4yIPLV98M5zLHa.cjs +0 -1
  343. package/browser/esm/6JKSOvc5czaQB2Bj.mjs +0 -109
  344. package/browser/esm/BtuJ9AGzeURtAsGo.mjs +0 -51241
  345. package/browser/esm/DGU6sM25u0EWCKl1.mjs +0 -824
  346. package/browser/esm/f2G3QRgEbvFJcoa2.mjs +0 -4436
  347. package/node/esm/-pxdn3M3tc6PLHs7.mjs +0 -114
  348. package/node/esm/0n5bslM9jhO1JnI2.mjs +0 -843
  349. package/types/src/cellRange/_GraphNode.d.ts +0 -38
  350. package/types/src/dataValidation/_Utils.d.ts +0 -10
  351. package/types/src/sheet/listener/RangesListener.d.ts +0 -32
  352. package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
  353. package/types/src/sheet/listener/index.d.ts +0 -3
@@ -1,5 +1,5 @@
1
1
  import { ChainedError } from '@sheetxl/utils';
2
- import { IList, IListLike } from './IList';
2
+ import { IListLike } from './IList';
3
3
  /**
4
4
  * Namespace for tuples.
5
5
  */
@@ -37,22 +37,39 @@ export declare namespace Tuple {
37
37
  */
38
38
  type GridTuple<T = any> = MajorTuple<T>[];
39
39
  /**
40
- * Adds precomputed bounds for the `MajorTuple`s.
40
+ * A block of a grid: the values it stores with their precomputed bounds and, from a builder that
41
+ * tracks it, what every position it does not store reads as.
41
42
  *
42
43
  * @remarks
43
44
  * In some scenarios the maximum bounds of the tuples is required (e.g., during rendering or calculations),
44
45
  * providing precomputed bounds can improve performance by avoiding the need to scan the entire collection.
45
46
  */
46
- interface BoundedTuples<T = any> {
47
+ interface Region<T = any> {
47
48
  /**
48
- * The bounded tuples.
49
+ * The stored values.
49
50
  */
50
51
  tuples: Tuple.GridTuple<T>;
51
52
  /**
52
- * The precomputed bounds encompassing all the `MajorTuple`s.
53
+ * The precomputed bounds encompassing all the `MajorTuple`s; empty (`majorEnd < majorStart`)
54
+ * when nothing is stored.
53
55
  */
54
56
  bounds: Tuple.OrientatedCoords;
57
+ /**
58
+ * What a position the tuples do not store reads as. `undefined` from a builder that does not
59
+ * track it (see {@link Builder}).
60
+ */
61
+ absentValue?: T | null;
62
+ /**
63
+ * Positions to delete before the tuples are written over a grid that already holds values: the
64
+ * blanks, and the values not stored because they equal {@link absentValue}. A grid that stores
65
+ * nothing there can ignore them.
66
+ */
67
+ clears?: Tuple.Span[];
55
68
  }
69
+ /**
70
+ * `length` positions of one major line, starting at `minor`.
71
+ */
72
+ type Span = [major: number, minor: number, length: number];
56
73
  /**
57
74
  * RangeCoords expressed in relative coordinates.
58
75
  */
@@ -62,6 +79,38 @@ export declare namespace Tuple {
62
79
  majorEnd: number;
63
80
  minorEnd: number;
64
81
  }
82
+ /**
83
+ * What a builder learns about a run as it pushes, as a bitmask handed to `createList`: one
84
+ * bit per kind of value seen (bits 0-7, aligned with `MixedTypedArrayList.Type` so a run with
85
+ * no `Object` bit can be encoded without a second look), plus:
86
+ * - `NotUniform`: some value differs from the run's first;
87
+ * - `NotFinite`: a number was NaN or infinite (a storage policy the builder does not judge).
88
+ *
89
+ * An `Object` is anything else: an error, rich data. The builder cannot tell them apart.
90
+ */
91
+ const Hint: {
92
+ readonly Blank: number;
93
+ readonly False: number;
94
+ readonly True: number;
95
+ readonly Int32: number;
96
+ readonly Float64: number;
97
+ readonly String: number;
98
+ readonly Object: number;
99
+ /** The bits that describe the kinds of value seen. */
100
+ readonly KindMask: 255;
101
+ readonly NotUniform: number;
102
+ readonly NotFinite: number;
103
+ };
104
+ /** The {@link Hint} bits of one value. */
105
+ const hintOf: (value: unknown) => number;
106
+ /**
107
+ * A list for the values of one run, from a builder that collected them into an array.
108
+ * @param values The run's values, in order, in an array the builder REUSES: it may be longer
109
+ * than the run, and what the list keeps must be copied out of it.
110
+ * @param length How many of `values` are the run's. Never 0.
111
+ * @param hint What the builder saw: {@link Hint} bits.
112
+ */
113
+ type CreateList<T = any> = (values: T[], length: number, hint: number) => IListLike<T>;
65
114
  /**
66
115
  * A builder for easily creating tuples that can be either contiguous or non-contiguous.
67
116
  * A builder maintains an ordered structure where major and minor values must always
@@ -100,10 +149,27 @@ export declare namespace Tuple {
100
149
  *
101
150
  * @returns The built bounded tuples.
102
151
  */
103
- build(): Tuple.BoundedTuples<T>;
152
+ build(): Tuple.Region<T>;
153
+ /**
154
+ * The value pushed at a position, as `pushAt` was given it.
155
+ *
156
+ * @returns `undefined` if no value is stored there.
157
+ */
158
+ getAt(major: number, minor: number): T | undefined;
104
159
  }
105
160
  /**
106
161
  * Implementation of {@link IBuilder} that that adds in aligned order.
162
+ *
163
+ * @remarks
164
+ * With `trackAbsent` the builder also decides what the positions it does not store read as, the
165
+ * built region's {@link Region.absentValue}:
166
+ * - a value equal to the absent value is not stored once that value is known
167
+ * ({@link setAbsentValue}); one pushed before is stored, which reads the same;
168
+ * - a `null` is a blank and is never stored;
169
+ * - a blank and a non-null absent value cannot share the unstored state, so when both occur the
170
+ * absent positions are written out as runs and the region's absent value is `null`.
171
+ *
172
+ * Only a {@link RepeatingList} is read as one value; any other list is stored as given.
107
173
  */
108
174
  class Builder<T = any> implements IBuilder<T> {
109
175
  private _tuples;
@@ -111,18 +177,56 @@ export declare namespace Tuple {
111
177
  private _values;
112
178
  private _minorMin;
113
179
  private _minorMax;
180
+ /** The major of the last tuple stored, and the last minor stored in it. */
114
181
  private _majorIndex;
115
182
  private _minorIndex;
183
+ /** The last position pushed, stored or not: every push must advance past it. */
184
+ private _lastMajor;
185
+ private _lastMinor;
186
+ /** The index in `_tuples` the last {@link getAt} landed on. */
187
+ private _readIndex;
116
188
  private _createList;
189
+ /**
190
+ * With a `createList`, runs are collected into ONE reused array and closed as soon as the next
191
+ * begins; `_run` is the open one, `_filled` how much of `_scratch` is its, `_runMinors` where
192
+ * it sits (always last). Without one, each run is its own array and is the output.
193
+ */
194
+ private _run;
195
+ private _runMinors;
196
+ private readonly _scratch;
197
+ private _filled;
198
+ private readonly _track;
117
199
  private _offsetMajor;
118
200
  private _offsetMinor;
119
- constructor(createList?: (arr: Array<T>) => IList<T>, offsetMajor?: number, offsetMinor?: number);
201
+ private readonly _trackAbsent;
202
+ private _absentValue;
203
+ private _gaps;
204
+ private _skips;
205
+ private _blanks;
206
+ constructor(createList?: Tuple.CreateList<T>, offsetMajor?: number, offsetMinor?: number, trackAbsent?: boolean);
207
+ /**
208
+ * Sets the value the positions this builder does not store read as. Set once, when it is known.
209
+ * Requires `trackAbsent`.
210
+ */
211
+ setAbsentValue(value: T | null): this;
212
+ /**
213
+ * Declares `length` positions as reading the absent value over a grid that stores nothing there.
214
+ * Nothing is written for them unless a blank forces the absent value out. Requires `trackAbsent`.
215
+ */
216
+ pushAbsentAt(major: number, minor: number, length: number): this;
120
217
  /** {@inheritDoc IBuilder.pushMultipleAt} */
121
- pushMultipleAt(major: number, minor: number, value: T[]): IBuilder<T>;
218
+ pushMultipleAt(major: number, minor: number, value: IListLike<T> | T[]): IBuilder<T>;
122
219
  /** {@inheritDoc IBuilder.pushAt} */
123
220
  pushAt(major: number, minor: number, value: T): IBuilder<T>;
221
+ /** The open run becomes the list `createList` makes of the scratch's filled prefix. */
222
+ private _closeRun;
223
+ /** {@inheritDoc IBuilder.getAt} */
224
+ getAt(major: number, minor: number): T | undefined;
225
+ private _advance;
124
226
  /** {@inheritDoc IBuilder.build} */
125
- build(): Tuple.BoundedTuples<T>;
227
+ build(): Tuple.Region<T>;
228
+ /** {@link build} under `trackAbsent`: never `null`, so the absent value always reaches the caller. */
229
+ private _buildTracked;
126
230
  }
127
231
  /**
128
232
  * Transposes cell coordinates within tuples to create `MajorTuple` representations
@@ -131,24 +235,32 @@ export declare namespace Tuple {
131
235
  * This utility efficiently converts data organized by one axis into the opposite.
132
236
  */
133
237
  class TransposedBuilder<T> implements IBuilder<T> {
134
- private _minors;
135
- /** the currentNode the node.minorIndex >= _minorIndex */
136
- private _current;
137
- private _first;
238
+ /**
239
+ * The output lines, one per pushed minor, at `minor - _base`: `[minor, runs]`, where the last
240
+ * run is the one a push continues. A hole where no minor was pushed; kept in order, so the
241
+ * build reads them straight through.
242
+ */
243
+ private _lines;
244
+ private _base;
138
245
  private _majorMin;
139
246
  private _majorMax;
140
247
  private _majorIndex;
141
248
  private _minorIndex;
142
249
  private _createList;
250
+ private readonly _track;
143
251
  private _offsetMajor;
144
252
  private _offsetMinor;
145
- constructor(createList?: <T>(arr: Array<T>) => IListLike<T>, offsetMajor?: number, offsetMinor?: number);
253
+ constructor(createList?: Tuple.CreateList<T>, offsetMajor?: number, offsetMinor?: number);
146
254
  /** {@inheritDoc IBuilder.pushMultipleAt} */
147
- pushMultipleAt(major: number, minor: number, value: T[]): IBuilder<T>;
255
+ pushMultipleAt(major: number, minor: number, value: IListLike<T> | T[]): IBuilder<T>;
148
256
  /** {@inheritDoc IBuilder.pushAt} */
149
257
  pushAt(major: number, minor: number, value: T): IBuilder<T>;
258
+ /** Moves the lines along so `minor` is the first. */
259
+ private _rebase;
260
+ /** {@inheritDoc IBuilder.getAt} */
261
+ getAt(major: number, minor: number): T | undefined;
150
262
  /** {@inheritDoc IBuilder.build} */
151
- build(): Tuple.BoundedTuples<T>;
263
+ build(): Tuple.Region<T>;
152
264
  }
153
265
  /**
154
266
  * Thrown when a major minor is set out of order.
@@ -1,5 +1,7 @@
1
1
  import { RangeAxis, CellCoords, RangeCoords } from '@sheetxl/utils';
2
+ import { Scalar } from '@sheetxl/primitives';
2
3
  import { IGrid } from './IGrid';
4
+ import { ISparseGrid } from './ISparseGrid';
3
5
  import { ISpatialMap } from './ISpatialMap';
4
6
  import { Tuple } from './Tuple';
5
7
  /**
@@ -209,7 +211,7 @@ export declare const MESSAGE_ERROR_REQUIRE_INT = "Tuple indices must be integers
209
211
  *
210
212
  * @internal
211
213
  */
212
- export declare function valueToTuples<T>(value: T | ((row: number, column: number) => T | null), ranges: Tuple.OrientatedCoords, isColumn: boolean): Tuple.BoundedTuples<T>;
214
+ export declare function valueToTuples<T>(value: T | ((row: number, column: number) => T | null), ranges: Tuple.OrientatedCoords, isColumn: boolean): Tuple.Region<T>;
213
215
  /**
214
216
  * Entry for a Range iterator or visiting.
215
217
  */
@@ -223,7 +225,7 @@ export interface Entry<T extends any> {
223
225
  * @remarks
224
226
  * This should generally be avoid in preference for zero-copy approaches but exist as a fallback.
225
227
  */
226
- export declare function iteratorToTuples<T>(iterator: IterableIterator<Entry<T>>, axis: RangeAxis, builder: Tuple.IBuilder<T>, topLeft?: CellCoords | null): Tuple.BoundedTuples<T>;
228
+ export declare function iteratorToTuples<T>(iterator: IterableIterator<Entry<T>>, axis: RangeAxis, builder: Tuple.IBuilder<T>, topLeft?: CellCoords | null): Tuple.Region<T>;
227
229
  /**
228
230
  * Creates an array of Tuple.GridTuple from a 2D array using {@link ITuple.IBuilder}.
229
231
  * This adds supports for max bounds and offsetting the indices.
@@ -231,7 +233,7 @@ export declare function iteratorToTuples<T>(iterator: IterableIterator<Entry<T>>
231
233
  * @remarks
232
234
  * For performance reasons this will not visit ths minor axis but will remove empty major axises.
233
235
  */
234
- export declare function array2DToTuples<T>(array2d: T[][], transpose?: boolean, ranges?: Partial<Tuple.OrientatedCoords> | null, removeEmpty?: boolean): Tuple.BoundedTuples<T>;
236
+ export declare function array2DToTuples<T>(array2d: T[][], transpose?: boolean, ranges?: Partial<Tuple.OrientatedCoords> | null, removeEmpty?: boolean): Tuple.Region<T>;
235
237
  /**
236
238
  * This is for the edge case where were have a GridTuple but need a bounds.
237
239
  * This will iterator through all majors comparing the first and last minor
@@ -242,7 +244,7 @@ export declare function array2DToTuples<T>(array2d: T[][], transpose?: boolean,
242
244
  */
243
245
  export declare function calcTupleBounds(gridTuples: Tuple.GridTuple): Tuple.OrientatedCoords | null;
244
246
  /**
245
- * Returns a new `BoundedTuples` with all major and minor indices shifted by the given offsets.
247
+ * Returns a new `Region` with all major and minor indices shifted by the given offsets.
246
248
  *
247
249
  * @param boundedTuples The source tuples to translate.
248
250
  * @param translateMajor Delta added to every major index (and to `bounds.majorStart/End`).
@@ -256,7 +258,7 @@ export declare function calcTupleBounds(gridTuples: Tuple.GridTuple): Tuple.Orie
256
258
  * @remarks
257
259
  * Run arrays inside each `MinorTuple` are shared by reference; they are immutable `IList`s so this is safe.
258
260
  */
259
- export declare function translateTupleBounds<T = any>(boundedTuples: Tuple.BoundedTuples<T>, translateMajor: number, translateMinor: number): Tuple.BoundedTuples<T>;
261
+ export declare function translateTupleBounds<T = any>(boundedTuples: Tuple.Region<T>, translateMajor: number, translateMinor: number): Tuple.Region<T>;
260
262
  /**
261
263
  * Returns api for incrementally building ranges against minor and optionally major.
262
264
  *
@@ -264,5 +266,16 @@ export declare function translateTupleBounds<T = any>(boundedTuples: Tuple.Bound
264
266
  * * Assumes ordered writes.
265
267
  * * Allows for reusable ranges.
266
268
  */
267
- export declare function createConflatingRangeValue<T = any>(isColumn?: boolean, canMerge?: (a: T, b: T, isColumn: boolean) => T | undefined): ISpatialMap.IConflatingEntries<T>;
269
+ export declare function createConflatingRangeValue<T = any>(isColumn?: boolean, canMerge?: (a: T, b: T, isColumn: boolean) => T | undefined, combine?: (previous: T, next: T) => T): ISpatialMap.IConflatingEntries<T>;
270
+ /**
271
+ * A grid's runs as grid tuples, in the grid's own axis: one major tuple per major that holds a
272
+ * run, the runs shared by reference.
273
+ *
274
+ * @remarks
275
+ * This is the seam the values half of a seed crosses (DESIGN-CALC-SERVICE §6.6): what a grid
276
+ * holds becomes the tuples another grid is loaded from. Runs are immutable lists, so sharing them
277
+ * is what the load already does when it hands one set of tuples to the sheet and its grid.
278
+ * @internal
279
+ */
280
+ export declare function gridToTuples<T = Scalar>(grid: ISparseGrid<T>): Tuple.GridTuple<T>;
268
281
  //# sourceMappingURL=_GridUtils.d.ts.map
@@ -0,0 +1,97 @@
1
+ import { RangeCoords } from '@sheetxl/utils';
2
+ /**
3
+ * Pieces: the clipped entries of every searched map, in parallel arrays.
4
+ * @internal
5
+ */
6
+ export interface PieceStore {
7
+ count: number;
8
+ rowS: Int32Array;
9
+ rowE: Int32Array;
10
+ colS: Int32Array;
11
+ colE: Int32Array;
12
+ /** Index into `keys`. */
13
+ type: Uint16Array;
14
+ value: any[];
15
+ keys: string[];
16
+ }
17
+ export declare const createPieceStore: (capacity?: number) => PieceStore;
18
+ export declare const growInt32: (arr: Int32Array, size: number) => Int32Array;
19
+ export declare const growPieces: (store: PieceStore, size: number) => void;
20
+ /**
21
+ * The sweep. Pieces are the input; bands and the regions inside them are computed lazily, one band
22
+ * at a time, into reusable arrays. The consumer steps regions (`nextRegion`) or cells
23
+ * (`nextCell` / `seekCell`) and reads the current position from the public fields.
24
+ * @internal
25
+ */
26
+ export declare abstract class RangeSweep<T> {
27
+ private readonly _isColumn;
28
+ private readonly _isReverse;
29
+ protected readonly _store: PieceStore;
30
+ private readonly _n;
31
+ private readonly _M0;
32
+ private readonly _M1;
33
+ private readonly _m0;
34
+ private readonly _m1;
35
+ private readonly _order;
36
+ private _nextOrder;
37
+ private _active;
38
+ private _activeLen;
39
+ private _scratch;
40
+ private _events;
41
+ private _hasBand;
42
+ private _bandStart;
43
+ private _bandEnd;
44
+ private _rMinS;
45
+ private _rMinE;
46
+ protected _rOff: Int32Array;
47
+ private _rCount;
48
+ protected _pool: Int32Array;
49
+ private _overlaps;
50
+ private _rInter;
51
+ private _region;
52
+ private _major;
53
+ private _minor;
54
+ private _done;
55
+ rowStart: number;
56
+ rowEnd: number;
57
+ colStart: number;
58
+ colEnd: number;
59
+ cellRow: number;
60
+ cellCol: number;
61
+ intersection: T;
62
+ constructor(store: PieceStore, bounds: RangeCoords, isColumn: boolean, isReverse: boolean);
63
+ /** Build the value of a region from its overlap set (pieces in `_pool[_rOff[region].._rOff[region+1])`). */
64
+ protected abstract _materialize(region: number): T;
65
+ /** Stable id of a piece in scan order (reverse scans invert the push order). */
66
+ private _stable;
67
+ /** The minor-event order: closest edge, starts before ends, opposite edge, stable id. */
68
+ private _compareEvents;
69
+ /**
70
+ * Sort `len` events (given in ascending stable order, start before end per piece). Returns the
71
+ * buffer holding the result, which may be the scratch buffer.
72
+ *
73
+ * @remarks
74
+ * Comparator sort for small groups; LSD counting sort when the minor span is small relative to
75
+ * the group (the million-fragment case).
76
+ */
77
+ private _sortEvents;
78
+ /** Advance to the next band, materializing its regions. `false` when the sweep is exhausted. */
79
+ private _advanceBand;
80
+ /** The minor sweep of the current band: intervals of constant, non-empty overlap set. */
81
+ private _sweepBand;
82
+ /** Set the public region fields for the band × region (and the intersection). */
83
+ private _setRegion;
84
+ /** Step to the next region. `false` when exhausted. */
85
+ nextRegion(): boolean;
86
+ private _setCell;
87
+ /** Enter a band for cell stepping: the intersection cache is only worth it when majors replay. */
88
+ private _enterBandByCell;
89
+ /** Step to the next cell that has an intersection (major, then minor order). `false` when exhausted. */
90
+ nextCell(): boolean;
91
+ /**
92
+ * Step to the first cell at or after (`rowIndex`, `colIndex`) in scan order that has an
93
+ * intersection; a target at or before the current cell behaves as {@link nextCell}.
94
+ */
95
+ seekCell(rowIndex: number, colIndex: number): boolean;
96
+ }
97
+ //# sourceMappingURL=_RangeSweep.d.ts.map
@@ -20,7 +20,7 @@ export declare function isEqualCoords(a: RangeCoords, b: RangeCoords): boolean;
20
20
  * * If there is no intersect then null is returned. If it is completely contained it will return a 1 value.
21
21
  * * All range coords values contain the values from the original splits
22
22
  */
23
- export declare function splitIntersect<T = any>(orig: ISpatialMap.Entry<T>, inter: RangeCoords, getSplit?: ((orig: ISpatialMap.Entry<T>, coords: [RangeCoords, RangeCoords], axis: RangeAxis, offset: number) => [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>] | null | undefined) | null | undefined, updateLastId?: boolean): ISpatialMap.Entry<T>[] | null;
23
+ export declare function splitIntersect<T = any>(orig: ISpatialMap.Entry<T>, inter: RangeCoords, getSplit?: ((orig: ISpatialMap.Entry<T>, coords: [RangeCoords, RangeCoords], axis: RangeAxis, offset: number) => [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>] | null | undefined) | null | undefined): ISpatialMap.Entry<T>[] | null;
24
24
  /**
25
25
  * Create a set of non overlapping ranges from a set of existing ranges.
26
26
  *
@@ -68,6 +68,24 @@ export declare function fastMerge(ranges: RangeCoords[], axis?: RangeAxis, itera
68
68
  export declare function removeOverlapsAndMerge(ranges: readonly RangeCoords[], iterations?: number, axis?: RangeAxis, getMerge?: (from: [RangeCoords, b: RangeCoords], destination: RangeCoords, axis: RangeAxis) => RangeCoords | null | undefined, onOverlap?: (intersection: RangeCoords, overlaps: RangeCoords[]) => void, reuseArray?: [RangeCoords | null, RangeCoords | null]): RangeCoords[];
69
69
  export declare function delegatingNodeSplitter<T>(from: ISpatialMap.Entry<T>, destination: [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>], axis: RangeAxis, offset: number): [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>] | undefined;
70
70
  export declare function delegatingNodeMerger<T>(from: [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>], destination: ISpatialMap.Entry<T>, axis: RangeAxis): ISpatialMap.Entry<T> | undefined;
71
+ /**
72
+ * Joins `entry` with each neighbor that spans exactly its edge and can join it, repeating with the
73
+ * joined entry until none can.
74
+ *
75
+ * @param search Finds the entries a range intersects.
76
+ * @param entry The entry just written; it is in the map.
77
+ * @param join The value of `first` and `second` joined over `coords`, or `undefined` when they
78
+ * cannot join. `first` is the upper or left one; `axis` is `Row` for a join down, `Column` across.
79
+ * @param replace Replaces `removes` with `insert` in the map.
80
+ * @returns The entry `entry` ended up in: itself when nothing joined.
81
+ *
82
+ * @remarks
83
+ * A neighbor joins only when it spans exactly the same columns (above and below) or rows (left
84
+ * and right), so the result is a rectangle and nothing is split to make it. The map's own merge
85
+ * (`insertNonOverlapping` without `noMerge`) rejoins everything around the range; this touches
86
+ * only what is beside the entry.
87
+ */
88
+ export declare function joinAdjacent<T>(search: (range: RangeCoords) => ISpatialMap.Entry<T>[], entry: ISpatialMap.Entry<T>, join: (first: ISpatialMap.Entry<T>, second: ISpatialMap.Entry<T>, coords: RangeCoords, axis: RangeAxis) => T | undefined, replace: (removes: ISpatialMap.Entry<T>[], insert: ISpatialMap.Entry<T>) => void): ISpatialMap.Entry<T>;
71
89
  /**
72
90
  * If the two coords overlap in a way that would required them to be split.
73
91
  *
@@ -90,7 +108,7 @@ export declare function isSplitIntersect(a: RangeCoords, b: RangeCoords, selecti
90
108
  * * May result in either 0, 1, 2, or 3. Nodes.
91
109
  */
92
110
  export declare function defaultShiftProcessor<T>(before: ISpatialMap.Entry<T>, after: ISpatialMap.Entry<T> | null, optionsProcess: ISpatialMap.ShiftDetails<T>, getShifted: ((orig: ISpatialMap.Entry<T>, after: ISpatialMap.Entry<T>, options: ISpatialMap.ShiftDetails<T>) => ISpatialMap.Entry<T> | undefined) | undefined, getSplit: (orig: ISpatialMap.Entry<T>, coords: [RangeCoords, RangeCoords], axis: RangeAxis, offset: number) => [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>] | null | undefined, onShift: ((options: ISpatialMap.ShiftDetails<T>) => void) | null | undefined, splitExpand: boolean): ISpatialMap.Entry<T>[] | null | undefined;
93
- export declare function createCopiedSpatialEntries<T = any>(spatial: ISpatialMap, coordsFrom: RangeCoords, coordsTo: RangeCoords, options?: ISpatialMap.CopyOptions, reuseInserts?: ISpatialMap.Entry<T>[], reuseRemoves?: ISpatialMap.Entry<T>[], onSplit?: (from: ISpatialMap.Entry<T>, destination: [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>], axis: RangeAxis, offset: number) => [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>] | null | undefined): ISpatialMap.Updates;
111
+ export declare function createCopiedSpatialEntries<T = any>(spatial: ISpatialMap, coordsFrom: RangeCoords, coordsTo: RangeCoords, options?: ISpatialMap.CopyOptions, reuseInserts?: ISpatialMap.Entry<T>[], reuseRemoves?: ISpatialMap.Entry<T>[], onSplit?: ((from: ISpatialMap.Entry<T>, destination: [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>], axis: RangeAxis, offset: number) => [ISpatialMap.Entry<T>, ISpatialMap.Entry<T>] | null | undefined) | null): ISpatialMap.Updates;
94
112
  /**
95
113
  * Use to remove spills.
96
114
  *
@@ -12,6 +12,7 @@ export * from './IList';
12
12
  export * from './OverlappingRangeIterator';
13
13
  export * from './SortedMap';
14
14
  export * from './SparseGrid';
15
+ export * from './ScalarGrid';
15
16
  export * from './SparseList';
16
17
  export * from './SpatialMap';
17
18
  export * from './SpatialMap3D';
@@ -0,0 +1,159 @@
1
+ import { IRange } from '@sheetxl/primitives';
2
+ import { IListener } from '../listener';
3
+ import { ITransaction } from '../transaction';
4
+ import { ICellRange } from '../cellRange';
5
+ import { ISheet } from '../sheet';
6
+ import { IPerson, IPersonCollection } from '../person';
7
+ import { Anchored } from '../anchored/Anchored';
8
+ import { AbstractAnchored } from '../anchored/AbstractAnchored';
9
+ import { IComment } from './IComment';
10
+ /**
11
+ * Implementation of {@link IComment}.
12
+ *
13
+ * @remarks
14
+ * Extends {@link AbstractAnchored} directly: a comment is pinned to one cell and never reads it,
15
+ * so it subscribes to nothing. The replies are part of this model's state — a reply has no cell
16
+ * and no transaction of its own — and {@link CommentReply} objects are handles over them, one
17
+ * per reply id, minted on demand and kept so identity is stable.
18
+ */
19
+ export declare class Comment extends AbstractAnchored<State, IComment.Events> implements IComment {
20
+ private _replies;
21
+ /** @internal */
22
+ protected _initialize(options: Comment.ConstructorOptions): void;
23
+ /** @internal */
24
+ protected _getActionDescription(action: 'delete' | 'initialize' | 'updateListener'): string | null;
25
+ /**
26
+ * Whether the anchor is absolute. See {@link AbstractAnchored._isAnchorAbsolute}.
27
+ *
28
+ * @remarks
29
+ * Always — a comment names the cell it is on, and Excel shows that as an absolute reference.
30
+ */
31
+ protected _isAnchorAbsolute(): boolean;
32
+ /** @internal */
33
+ protected _processContainerShift(options: Anchored.ShiftOptions): IRange.Coords | null | void;
34
+ /**
35
+ * {@inheritDoc IComment.getId}
36
+ *
37
+ * @remarks
38
+ * The comment's own id, not the transaction store's: the store keys state by its own id and
39
+ * never asks the model for it, so this is free to answer the way Office Scripts does.
40
+ */
41
+ getId(): string;
42
+ /** {@inheritDoc IComment.getSheet} */
43
+ getSheet(): ISheet;
44
+ /** {@inheritDoc IComment.getRange} */
45
+ getRange(options?: ICellRange.GetRangeOptions): ICellRange;
46
+ /** {@inheritDoc IComment.getContent} */
47
+ getContent(): string;
48
+ /** {@inheritDoc IComment.setContent} */
49
+ setContent(content: IComment.Content, options?: ITransaction.OperationOptions): this;
50
+ /** {@inheritDoc IComment.getRichContent} */
51
+ getRichContent(): IComment.RichContent | null;
52
+ /** {@inheritDoc IComment.getAuthor} */
53
+ getAuthor(): IPerson | null;
54
+ /** {@inheritDoc IComment.getCreationDate} */
55
+ getCreationDate(): Date | null;
56
+ /** {@inheritDoc IComment.isResolved} */
57
+ isResolved(): boolean;
58
+ /** {@inheritDoc IComment.setResolved} */
59
+ setResolved(resolved: boolean, options?: ITransaction.OperationOptions): this;
60
+ /** {@inheritDoc IComment.isNote} */
61
+ isNote(): boolean;
62
+ /** {@inheritDoc IComment.getReplies} */
63
+ getReplies(): IComment.IReply[];
64
+ /** {@inheritDoc IComment.getReply} */
65
+ getReply(id: string): IComment.IReply | null;
66
+ /** {@inheritDoc IComment.addReply} */
67
+ addReply(content: IComment.Content, options?: IComment.AddReplyOptions): IComment.IReply;
68
+ /** {@inheritDoc IComment.update} */
69
+ update(update: IComment.Modifiers | IComment, options?: ITransaction.OperationOptions): this;
70
+ /** {@inheritDoc IListener.ISource.addListeners} */
71
+ addListeners(listeners: IComment.IListeners, options?: IListener.Options): IListener.Remove;
72
+ /** {@inheritDoc IComment.toJSON} */
73
+ toJSON(): IComment.JSON | null;
74
+ /** @internal */
75
+ protected _fromJSON(json?: IComment.JSON | null, options?: ITransaction.OperationOptions): void;
76
+ /**
77
+ * The note's box, as read.
78
+ * @internal
79
+ */
80
+ getBox(): IComment.BoxJSON | null;
81
+ /** @internal */
82
+ protected _getPeople(): IPersonCollection | null;
83
+ /** @internal */
84
+ protected _resolvePerson(personId: string | null | undefined): IPerson | null;
85
+ /** @internal */
86
+ protected _findReplyJSON(id: string): IComment.ReplyJSON | null;
87
+ /** @internal */
88
+ protected _replyFor(id: string): CommentReply;
89
+ /** @internal */
90
+ protected _updateReply(id: string, content: IComment.Content, options?: ITransaction.OperationOptions): void;
91
+ /** @internal */
92
+ protected _deleteReply(id: string, options?: ITransaction.OperationOptions): void;
93
+ get [Symbol.toStringTag](): string;
94
+ toString(): string;
95
+ /** {@inheritDoc IComment.isIComment} */
96
+ get isIComment(): true;
97
+ }
98
+ /**
99
+ * Implementation of {@link IComment.IReply}: a handle over one entry in its parent's state.
100
+ */
101
+ export declare class CommentReply implements IComment.IReply {
102
+ private readonly _parent;
103
+ private readonly _id;
104
+ constructor(parent: Comment, id: string);
105
+ /** @internal */
106
+ protected _json(): IComment.ReplyJSON;
107
+ /** {@inheritDoc IComment.IReply.getId} */
108
+ getId(): string;
109
+ /** {@inheritDoc IComment.IReply.getParent} */
110
+ getParent(): IComment;
111
+ /** {@inheritDoc IComment.IReply.getRange} */
112
+ getRange(options?: ICellRange.GetRangeOptions): ICellRange;
113
+ /** {@inheritDoc IComment.IReply.getContent} */
114
+ getContent(): string;
115
+ /** {@inheritDoc IComment.IReply.setContent} */
116
+ setContent(content: IComment.Content, options?: ITransaction.OperationOptions): this;
117
+ /** {@inheritDoc IComment.IReply.getAuthor} */
118
+ getAuthor(): IPerson | null;
119
+ /** {@inheritDoc IComment.IReply.getCreationDate} */
120
+ getCreationDate(): Date | null;
121
+ /** {@inheritDoc IComment.IReply.isResolved} */
122
+ isResolved(): boolean;
123
+ /** {@inheritDoc IComment.IReply.delete} */
124
+ delete(options?: ITransaction.OperationOptions): void;
125
+ /** {@inheritDoc IComment.IReply.isDeleted} */
126
+ isDeleted(): boolean;
127
+ /** {@inheritDoc IComment.IReply.toJSON} */
128
+ toJSON(): IComment.ReplyJSON;
129
+ get [Symbol.toStringTag](): string;
130
+ /** {@inheritDoc IComment.IReply.isICommentReply} */
131
+ get isICommentReply(): true;
132
+ }
133
+ /**
134
+ * Interfaces for creating a {@link Comment}.
135
+ */
136
+ export declare namespace Comment {
137
+ interface ConstructorOptions extends Anchored.ConstructorOptions<IComment.JSON> {
138
+ /**
139
+ * The workbook's people, for resolving authors. Lazy: a sheet is built before its workbook
140
+ * has finished loading.
141
+ */
142
+ getPeople?: () => IPersonCollection | null;
143
+ }
144
+ }
145
+ /** @internal */
146
+ interface State extends AbstractAnchored.State {
147
+ /** Named apart from the transaction record's own `id`, which the store writes over. */
148
+ commentId: string;
149
+ personId: string | null;
150
+ content: IComment.Content;
151
+ dt: string | null;
152
+ done: boolean;
153
+ asNote: boolean;
154
+ mentions: IComment.MentionJSON[] | null;
155
+ replies: readonly IComment.ReplyJSON[];
156
+ box: IComment.BoxJSON | null;
157
+ }
158
+ export {};
159
+ //# sourceMappingURL=Comment.d.ts.map
@@ -0,0 +1,40 @@
1
+ import { ICellRange } from '../cellRange';
2
+ import { ICollection, AbstractCollection } from '../type';
3
+ import { IListener } from '../listener';
4
+ import { ICommentCollection } from './ICommentCollection';
5
+ import { IComment } from './IComment';
6
+ /**
7
+ * Implementation for {@link ICommentCollection}.
8
+ *
9
+ * @remarks
10
+ * A front over storage held elsewhere — the sheet's own comments, or a walk over every sheet's
11
+ * for the workbook — so the same class serves both. The sheet keeps the store and the events,
12
+ * this class keeps the API; `onCollectionChange` is the sheet's `onCommentsChange`, forwarded
13
+ * with this collection as the source.
14
+ */
15
+ export declare class CommentCollection extends AbstractCollection<IComment, ICommentCollection.GetItemsOptions> implements ICommentCollection {
16
+ private _add;
17
+ private _get;
18
+ private _addListeners;
19
+ /**
20
+ * @param add Adds to the store; `null` for a view that cannot add (the workbook's).
21
+ * @param get Returns the items intersecting the address, or all of them for none.
22
+ * @param addListeners Forwards the owner's change event.
23
+ */
24
+ constructor(add: ((address: ICellRange.Address, content: IComment.Content, options?: ICommentCollection.AddOptions) => IComment) | null, get: (address: ICellRange.Address | null | undefined, ignoreHidden?: boolean, fullyContained?: boolean) => IComment[], addListeners: (listeners: ICollection.IListeners, options?: IListener.Options) => IListener.Remove);
25
+ /** {@inheritDoc ICommentCollection.add} */
26
+ add(address: ICellRange.Address, content: IComment.Content, options?: ICommentCollection.AddOptions): IComment;
27
+ /** {@inheritDoc AbstractCollection._getItems} */
28
+ protected _getItems(options?: ICommentCollection.GetItemsOptions): IComment[];
29
+ /** {@inheritDoc ICommentCollection.getById} */
30
+ getById(id: string): IComment | null;
31
+ /** {@inheritDoc ICommentCollection.getAt} */
32
+ getAt(address: ICellRange.Address): IComment | null;
33
+ /** {@inheritDoc ICommentCollection.getByReplyId} */
34
+ getByReplyId(replyId: string): IComment | null;
35
+ /** {@inheritDoc ICollection.addListeners} */
36
+ addListeners(listeners: ICollection.IListeners, options?: IListener.Options): IListener.Remove;
37
+ /** {@inheritDoc ICommentCollection.isICommentCollection} */
38
+ get isICommentCollection(): true;
39
+ }
40
+ //# sourceMappingURL=CommentCollection.d.ts.map