@sheetxl/sdk 0.8.0-beta.15 → 0.8.0-beta.16

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 (195) hide show
  1. package/LICENSE.md +8 -7
  2. package/browser/esm/4MbBwfmW2hDXk9_w.mjs +165 -0
  3. package/browser/esm/{zjEXdQiQruTkUyf5.mjs → 9YWdxmSjzLN4j_ts.mjs} +22 -22
  4. package/browser/esm/B6BdiHigbUdbZp3J.mjs +686 -0
  5. package/browser/esm/{D8PxKK6OrmancpLT.mjs → BF_QwkZ_hs2rFoTT.mjs} +3 -3
  6. package/browser/esm/{Do8TQqQvnFXRlFu-.mjs → BMo2_9Ul36IwRm3S.mjs} +3 -3
  7. package/browser/esm/{DDQtExVGSoCzAf6-.mjs → BWY1qiidTUBVPJoD.mjs} +506 -502
  8. package/browser/esm/{DA4S5eqog20pG7b2.mjs → Bf80epSsm_RyAOb9.mjs} +29 -29
  9. package/browser/esm/{FHp0QfwZMIfP0Sry.mjs → BfoE6Dn_GQCIkQD3.mjs} +2 -2
  10. package/browser/esm/{D4ZCoKyNCJvDQAkx.mjs → BlMYYQZP-QM-iBHz.mjs} +23 -22
  11. package/browser/esm/{CWyzk_3eDCR9bKq6.mjs → BqT-ASHP0NVSUUnY.mjs} +1528 -1433
  12. package/browser/esm/{DwH4H_p6gTAcpQ17.mjs → BtNuoQIrrHw_jnbJ.mjs} +4 -4
  13. package/browser/esm/BxFzcCYhvo9NXFjC.mjs +527 -0
  14. package/browser/esm/{BsGN0Tk0jVc2n0hy.mjs → BxYuRTSF9ykc-Tpz.mjs} +3 -3
  15. package/browser/esm/{KgTozk3nvOZzEG27.mjs → C2PvZwqK-uvsugVS.mjs} +2 -2
  16. package/browser/esm/C3JOjQwdG9kAig7i.mjs +2017 -0
  17. package/browser/esm/{Blo0Hwg2ojXt99Dl.mjs → C5x0EzqElYGTiTQc.mjs} +2 -2
  18. package/browser/esm/{Bbrhl946_QbCz5WS.mjs → CMChv-fCFh68VQQt.mjs} +588 -587
  19. package/browser/esm/{Cl3jq6y4Idilod82.mjs → CRbQATfI0yZxe1kX.mjs} +3 -3
  20. package/browser/esm/{CxhXbk-5XhaK8UNs.mjs → CUu3zeHqcwMRYiov.mjs} +2 -2
  21. package/browser/esm/{CNM5d4p0Y7In0rTf.mjs → C_jLGkFemj55_BP3.mjs} +3 -3
  22. package/browser/esm/{BGPT-k25jo0UhtT5.mjs → CkZoDPUCK5jMUaeJ.mjs} +26901 -22016
  23. package/browser/esm/{DMbcmIZ-G2fbWn8v.mjs → D-iHJ3q4nwOLcn1D.mjs} +2 -2
  24. package/browser/esm/{KsfZhE6ocmYobGjY.mjs → D807piM0VSokWz-L.mjs} +2 -2
  25. package/browser/esm/{BVsG6Vpvb1ZzpURJ.mjs → DW3oQ39IF0bsc_lm.mjs} +2 -2
  26. package/browser/esm/{BzG0p8RdGDWHttVr.mjs → DcB52JPBPmkc3l1m.mjs} +4 -4
  27. package/browser/esm/{CZ_ZPliIkoh8BViV.mjs → DlVnybrgwZWxWN3_.mjs} +10 -10
  28. package/browser/esm/{CqzKBrmmV-fWRoK7.mjs → DvVhatd0J1ch3OCO.mjs} +22 -22
  29. package/browser/esm/{tm7XJ-Zd_04xWKG6.mjs → Dx9Fya60meMpuHqm.mjs} +2 -2
  30. package/browser/esm/{Blo0jHze0bQxnKh4.mjs → HV0FkJ6k3Ils318J.mjs} +78 -78
  31. package/browser/esm/{DJNLo8Rd_5UQP0U5.mjs → JV9Szh5qTssjxJoE.mjs} +2 -2
  32. package/browser/esm/{D0KMmRjGOQUs7Ls-.mjs → KpuD1kEcWB7cT0VM.mjs} +3 -3
  33. package/browser/esm/{Bw66vzKThXKvXvPI.mjs → U4FL-QeC0bRUhTEo.mjs} +2 -2
  34. package/browser/esm/{Dp4OIVjjAVhpD815.mjs → WLlpmgLN5OVLoLrC.mjs} +3 -3
  35. package/browser/esm/{D6OqcO9IWPaY211T.mjs → WR146UAqrsUsL39e.mjs} +2 -2
  36. package/browser/esm/{CPUobTehcKZllBDS.mjs → WcHfawW2lkTHtWUd.mjs} +51 -49
  37. package/browser/esm/{XrasOsWQ-64jwMn1.mjs → Zp5-cTJ0Llb6EfGi.mjs} +4 -4
  38. package/browser/esm/{CMSeF5rGzeuMUydM.mjs → ad9PX897hYE4Srkc.mjs} +3 -3
  39. package/browser/esm/{CIab4UYcHQQKTHeD.mjs → d_t-7d5BD1AdHg3u.mjs} +404 -404
  40. package/browser/esm/{L7SKr6r1tmMwFx6Q.mjs → dwGdnbV-CykjNrlm.mjs} +2 -2
  41. package/browser/esm/{DpaqR081c-Q7WemN.mjs → e69NcYnKMLnAmqyA.mjs} +2 -2
  42. package/browser/esm/index.mjs +886 -578
  43. package/browser/esm/{BN1MW1nuBndrzryn.mjs → r-o0UCm7KtluNmyK.mjs} +3 -3
  44. package/licenses/dependencies.txt +69 -69
  45. package/node/esm/{DjsOfZn5vYpB7L6U.mjs → 446KYBjJQa8g-8Gg.mjs} +52 -50
  46. package/node/esm/{BlHlBRvKGt-4CS0A.mjs → 5OfKfTRX2_y2NwpU.mjs} +2 -2
  47. package/node/esm/{BRnNpoS8VpkAhdVk.mjs → A3PEHO1HJvkHfb5n.mjs} +2 -2
  48. package/node/esm/{ZtF9EuipL7Z9Iwfs.mjs → B4WUGzJBkQu7BXRm.mjs} +2 -2
  49. package/node/esm/{DKdFasYVvjAitASZ.mjs → BH8J6vKSO5zI_TWo.mjs} +2 -2
  50. package/node/esm/BLmdKnkLwkb3wWe6.mjs +2040 -0
  51. package/node/esm/{D9RwzPR5s2mWrbCQ.mjs → BZSxu_ZqX8-Uczzn.mjs} +2 -2
  52. package/node/esm/{-afI0SRg_vgXtea7.mjs → BfPBiAgVmWhuFgFP.mjs} +3 -3
  53. package/node/esm/{OnkJkCGFDjamqIUQ.mjs → Bknw7zWZhl2-w1pi.mjs} +3 -3
  54. package/node/esm/{BNiG1ISiMjs-G2mE.mjs → BvIPsPiHhMclZ1kH.mjs} +22 -22
  55. package/node/esm/{B07QPde9GloqsW8e.mjs → By2TFKOjA1HekZap.mjs} +4 -4
  56. package/node/esm/{D9zb5xVRehABdbXL.mjs → BywIhvYkWk2o7MSW.mjs} +2 -2
  57. package/node/esm/{BZ0IRjh2hYuI86xW.mjs → C3zyhnMwQ2hRQBz7.mjs} +31 -30
  58. package/node/esm/{DVejVdSBXzAFQbqo.mjs → C884edhUf9yMqpPp.mjs} +2 -2
  59. package/node/esm/{DDIiQZTdeY4vdK8_.mjs → CDHY-0OyQ9348Brb.mjs} +189 -189
  60. package/node/esm/{BlzPuXtKvF3Qfr0p.mjs → CERNLhFrAwtu_p-q.mjs} +2 -2
  61. package/node/esm/{BfXLtDqsXXYeZ6LX.mjs → CFkX_Cn6avQqQiVC.mjs} +78 -78
  62. package/node/esm/CJDV8P3hI8lu--3Z.mjs +530 -0
  63. package/node/esm/{C6b4rM62pIWIywlM.mjs → CKwiipdPJGzAiPjg.mjs} +2 -2
  64. package/node/esm/{DUft-qpAS4MMANwG.mjs → CLtUMJfKsy4SevWE.mjs} +3 -3
  65. package/node/esm/{Cx9nQSsuyqhayyBS.mjs → CVPieTgKCwkL21nD.mjs} +32752 -27295
  66. package/node/esm/{DW3u4bBJIUaHZ6m-.mjs → C_fYuynP2a_70WdL.mjs} +2 -2
  67. package/node/esm/{C-JEySqMuKdpcKe0.mjs → CgdNA3B_GFG_yJiN.mjs} +3 -3
  68. package/node/esm/Cs3ibv6YHCDwLRlk.mjs +115 -0
  69. package/node/esm/{CjwmkzMtjj6OMJbO.mjs → Cxak8i2NidZ4Uv6v.mjs} +487 -483
  70. package/node/esm/{MtRwC1PMkOEb1Nty.mjs → D88A3UpCyGRjcX3U.mjs} +3 -3
  71. package/node/esm/{B8KEX44VZTFTTKb3.mjs → DBIUe2BC9xU7qMHR.mjs} +3 -3
  72. package/node/esm/{C7h7SvhWNwQ9TfGh.mjs → DELfV5HQZo1mInBd.mjs} +4 -4
  73. package/node/esm/{WBHD7ECKG6HZ5UpY.mjs → DOt3t-13tsnM7Fj6.mjs} +2 -2
  74. package/node/esm/{BqvqbFsPQB0gEvwF.mjs → DfWc3nW_Z_qqc_Wf.mjs} +1762 -1674
  75. package/node/esm/DgnwKbUEyQN5_gWT.mjs +169 -0
  76. package/node/esm/{D7ia4o3y5Wvl__9Y.mjs → Dhv9JymnXqcF54oo.mjs} +2 -2
  77. package/node/esm/{CHBlLTJaoPUVxA2J.mjs → DvtyKKzOnoOM80NB.mjs} +22 -22
  78. package/node/esm/{Dh8o-woVpmUL50BD.mjs → KDGrIa9R5XzWfjM2.mjs} +2 -2
  79. package/node/esm/{DyIASfKKPuNl5Xx-.mjs → RTwm9ge1KoPdlBNt.mjs} +2 -2
  80. package/node/esm/{DQqXPS05dvF0F-gh.mjs → _RIAmJI98l6bIFfZ.mjs} +2 -2
  81. package/node/esm/{j8DqCwPgfIPICFtf.mjs → bIGdvfpnijWeCac6.mjs} +1005 -1004
  82. package/node/esm/index.mjs +913 -598
  83. package/node/esm/kaiXmn0AA5WDsLPo.mjs +199 -0
  84. package/node/esm/{Ddd1y3TP0kqnnSs7.mjs → mTIhoz1gEcaEm7s1.mjs} +3 -3
  85. package/package.json +7 -7
  86. package/resources/locales/de/model.msg.json +82 -1
  87. package/resources/locales/en/model.msg.json +80 -1
  88. package/types/scripting-api.json +9967 -9497
  89. package/types/scripting-enums.json +27 -0
  90. package/types/scripting.d.ts +2282 -166
  91. package/types/src/.generated/wasm/sdk.d.ts +332 -0
  92. package/types/src/calculation/Calculation.d.ts +8 -0
  93. package/types/src/calculation/ICalculation.d.ts +51 -0
  94. package/types/src/calculation/compiler/Types.d.ts +5 -0
  95. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +1 -1
  96. package/types/src/calculation/formula/FormulaBlock.d.ts +2 -0
  97. package/types/src/calculation/formula/IFormulaBlock.d.ts +18 -0
  98. package/types/src/calculation/grid/CalcGrid.d.ts +5 -1
  99. package/types/src/calculation/grid/CalcGridBackend.d.ts +36 -1
  100. package/types/src/calculation/grid/CalcGridProxy.d.ts +2 -0
  101. package/types/src/calculation/grid/CalcGridUtils.d.ts +4 -2
  102. package/types/src/calculation/grid/FormulaHost.d.ts +3 -1
  103. package/types/src/calculation/grid/ICalcGrid.d.ts +88 -0
  104. package/types/src/calculation/grid/_CalcRequest.d.ts +9 -0
  105. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +2 -0
  106. package/types/src/calculation/spatial/SpillEntry.d.ts +55 -4
  107. package/types/src/calculation/state/CalcNode.d.ts +6 -3
  108. package/types/src/calculation/state/CalculationContext.d.ts +4 -2
  109. package/types/src/calculation/state/_PivotView.d.ts +22 -0
  110. package/types/src/cell/ICell.d.ts +1 -21
  111. package/types/src/cellRange/ICellRange.d.ts +18 -2
  112. package/types/src/collections/MixedTypedArrayList.d.ts +16 -2
  113. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +10 -0
  114. package/types/src/condition/BuiltInOperators/GreaterThanEqualToOperator.d.ts +3 -0
  115. package/types/src/condition/BuiltInOperators/GreaterThanOperator.d.ts +3 -0
  116. package/types/src/condition/BuiltInOperators/LessThanEqualToOperator.d.ts +3 -0
  117. package/types/src/condition/BuiltInOperators/LessThanOperator.d.ts +3 -0
  118. package/types/src/condition/BuiltInOperators/MatchesOperator.d.ts +10 -0
  119. package/types/src/condition/BuiltInOperators/TimePeriodOperator.d.ts +2 -0
  120. package/types/src/condition/BuiltInOperators/index.d.ts +2 -0
  121. package/types/src/condition/Condition.d.ts +1 -0
  122. package/types/src/condition/ICondition.d.ts +15 -0
  123. package/types/src/condition/_ConditionUtils.d.ts +14 -0
  124. package/types/src/conditionalFormat/ConditionalFormat.d.ts +2 -1
  125. package/types/src/conditionalFormat/IConditionalFormat.d.ts +4 -3
  126. package/types/src/license/LicenseDetails.d.ts +27 -0
  127. package/types/src/license/LicenseManager.d.ts +24 -7
  128. package/types/src/license/_Utils.d.ts +34 -3
  129. package/types/src/license/index.d.ts +1 -0
  130. package/types/src/license/runtime.browser.d.ts +32 -4
  131. package/types/src/license/runtime.node.d.ts +8 -5
  132. package/types/src/license/summary.d.ts +18 -0
  133. package/types/src/pivot/IPivotTable.d.ts +1549 -13
  134. package/types/src/pivot/IPivotTableCollection.d.ts +70 -4
  135. package/types/src/pivot/PivotCache.d.ts +95 -11
  136. package/types/src/pivot/PivotDataField.d.ts +73 -0
  137. package/types/src/pivot/PivotField.d.ts +142 -0
  138. package/types/src/pivot/PivotTable.d.ts +548 -14
  139. package/types/src/pivot/PivotTableCollection.d.ts +18 -3
  140. package/types/src/pivot/_PivotAreas.d.ts +48 -0
  141. package/types/src/pivot/_PivotControls.d.ts +140 -0
  142. package/types/src/pivot/_PivotEngine.d.ts +9 -0
  143. package/types/src/pivot/_PivotGroups.d.ts +25 -0
  144. package/types/src/pivot/_PivotItems.d.ts +167 -0
  145. package/types/src/pivot/_PivotStructure.d.ts +237 -0
  146. package/types/src/pivot/_PivotStylePreview.d.ts +21 -0
  147. package/types/src/pivot/_PivotUtils.d.ts +37 -0
  148. package/types/src/pivot/engine/PivotAdd.d.ts +37 -0
  149. package/types/src/pivot/engine/PivotData.d.ts +65 -0
  150. package/types/src/pivot/engine/PivotEdit.d.ts +45 -0
  151. package/types/src/pivot/engine/PivotFilters.d.ts +50 -0
  152. package/types/src/pivot/engine/PivotFormulas.d.ts +72 -0
  153. package/types/src/pivot/engine/PivotLayout.d.ts +133 -0
  154. package/types/src/pivot/engine/PivotMove.d.ts +24 -0
  155. package/types/src/pivot/engine/PivotRefresh.d.ts +87 -0
  156. package/types/src/pivot/engine/PivotSort.d.ts +26 -0
  157. package/types/src/pivot/engine/PivotViewBuilder.d.ts +22 -0
  158. package/types/src/pivot/engine/index.d.ts +15 -0
  159. package/types/src/pivot/index.d.ts +4 -0
  160. package/types/src/pivot/kernel/KernelPivot.d.ts +63 -0
  161. package/types/src/pivot/kernel/_KernelLeaves.d.ts +100 -0
  162. package/types/src/pivot/kernel/_PivotAxisTree.d.ts +71 -0
  163. package/types/src/primitives/Range.d.ts +12 -1
  164. package/types/src/sheet/IWorksheet.d.ts +35 -0
  165. package/types/src/sheet/SheetCell.d.ts +21 -14
  166. package/types/src/sheet/SheetRange.d.ts +3 -0
  167. package/types/src/sheet/Worksheet.d.ts +175 -7
  168. package/types/src/sheet/_PivotFootprint.d.ts +42 -0
  169. package/types/src/sheet/_SheetAutoFitUtils.d.ts +12 -1
  170. package/types/src/sheet/_SheetMutations.d.ts +47 -0
  171. package/types/src/sheet/_SheetStateTypes.d.ts +11 -0
  172. package/types/src/sheet/style/SheetCellStyle.d.ts +6 -0
  173. package/types/src/sheet/style/SheetPivotStyle.d.ts +83 -0
  174. package/types/src/sheet/style/_IndentUnit.d.ts +14 -0
  175. package/types/src/sheetHeader/SheetCellHeader.d.ts +1 -1
  176. package/types/src/slicer/ISlicer.d.ts +114 -34
  177. package/types/src/slicer/ITimeline.d.ts +61 -0
  178. package/types/src/slicer/Slicer.d.ts +76 -3
  179. package/types/src/slicer/_PivotSlicer.d.ts +51 -0
  180. package/types/src/slicer/index.d.ts +1 -0
  181. package/types/src/table/AnchoredTable.d.ts +11 -1
  182. package/types/src/table/ITable.d.ts +5 -6
  183. package/types/src/table/ITableStyle.d.ts +50 -34
  184. package/types/src/table/_BuiltInPivotStyles.d.ts +8 -0
  185. package/types/src/table/_BuiltInTableStyles.d.ts +0 -1
  186. package/types/src/type/ITypes.d.ts +5 -1
  187. package/types/src/workbook/IWorkbook.d.ts +8 -2
  188. package/types/src/workbook/Workbook.d.ts +72 -6
  189. package/browser/esm/BrHplg4RuI5jOmmr.mjs +0 -357
  190. package/browser/esm/eImPONkfn5DstmS8.mjs +0 -184
  191. package/node/esm/03AYPvCda2x9EOlY.mjs +0 -360
  192. package/node/esm/BmVQRGAijOHzgHmz.mjs +0 -199
  193. package/node/esm/Dk4KLs5GoRRuD8J4.mjs +0 -115
  194. package/types/src/pivot/_PivotXml.d.ts +0 -24
  195. package/types/src/primitives/Grouping.d.ts +0 -65
@@ -0,0 +1,8 @@
1
+ import { ITableStyle } from './ITableStyle';
2
+ /**
3
+ * Excel's built-in pivot table styles, `PivotStyleLight1` to `PivotStyleDark28`, by lowercase
4
+ * name, in gallery order. Shown for pivot tables only.
5
+ */
6
+ export declare const _BuiltInPivotStyles: () => ReadonlyMap<string, ITableStyle.Properties>;
7
+ export declare const DefaultPivotStyleName: string;
8
+ //# sourceMappingURL=_BuiltInPivotStyles.d.ts.map
@@ -5,5 +5,4 @@ import { ITableStyle } from './ITableStyle';
5
5
  */
6
6
  export declare const _BuiltInTableStyles: () => ReadonlyMap<string, ITableStyle.Properties>;
7
7
  export declare const DefaultTableStyleName: string;
8
- export declare const DefaultPivotStyleName: string;
9
8
  //# sourceMappingURL=_BuiltInTableStyles.d.ts.map
@@ -40,8 +40,12 @@ export declare namespace ITypes {
40
40
  * `fixed + error` is not a state: a fixed block owns its cells, so a write into part of it is
41
41
  * refused at the write site rather than detected at calc. That is what lets these three be one
42
42
  * enum rather than two booleans.
43
+ *
44
+ * A fourth kind is the calculation engine's alone: `pivot`, the cells a pivot table lays out. It
45
+ * is never saved, and a cell never reports it ({@link ICell.getSpillKind}): a pivot table's
46
+ * cells are the table's, not an array's. A blocked pivot table is `error`.
43
47
  */
44
- type FormulaArrayKind = 'dynamic' | 'fixed' | 'error';
48
+ type FormulaArrayKind = 'dynamic' | 'fixed' | 'error' | 'pivot';
45
49
  /**
46
50
  * Options for controlling selection behavior, including scrolling and focus.
47
51
  */
@@ -970,13 +970,19 @@ export declare namespace IWorkbook {
970
970
  * Absent when the source said nothing, which Excel reads as `userSet`.
971
971
  */
972
972
  updateLinks?: IExternalBookCollection.UpdateLinks;
973
+ /**
974
+ * The PivotTable Fields pane does not open when a pivot table is selected; absent, it does.
975
+ *
976
+ * @remarks
977
+ * Carried, not obeyed: SheetXL has no fields pane yet. Round-trips as `workbookPr@hidePivotFieldList`.
978
+ */
979
+ hiddenPivotFieldList?: true;
973
980
  /**
974
981
  * The workbook's pivot caches — the source snapshots its pivot tables summarize, each shared
975
982
  * by every table that references its id.
976
983
  *
977
984
  * @remarks
978
- * Carried, not modeled — see {@link IPivotTable.CacheJSON}. The tables that summarize a cache
979
- * are the modeled side; a table names its cache by {@link IPivotTable.getCacheId}.
985
+ * See {@link IPivotTable.CacheJSON}. A table names its cache by {@link IPivotTable.getCacheId}.
980
986
  */
981
987
  pivotCaches?: IPivotTable.CacheJSON[];
982
988
  /**
@@ -4,9 +4,10 @@ import { IListener } from '../listener';
4
4
  import { INamedCollection } from '../named';
5
5
  import { IExternalBookCollection } from '../externalBook';
6
6
  import { NamedTableSource } from '../table/_NamedTableSource';
7
- import { IPivotTableCollection } from '../pivot';
7
+ import { IPivotTable, IPivotTableCollection } from '../pivot';
8
8
  import { IEmbeddedPart } from '../io/IEmbeddedPart';
9
9
  import { PivotCache } from '../pivot/PivotCache';
10
+ import { PivotEngineModule } from '../pivot/_PivotEngine';
10
11
  import { ICommentCollection } from '../comment';
11
12
  import { IPersonCollection } from '../person';
12
13
  import { ICalculation } from '../calculation';
@@ -73,12 +74,15 @@ export declare class Workbook implements IWorkbook {
73
74
  * The workbook's pivot caches, by the id its tables reference them by.
74
75
  *
75
76
  * @remarks
76
- * Carried, not modeled — see {@link IPivotTable.CacheJSON}. Held in part form rather than as
77
- * the JSON it was read from because the resources a part can carry are model references, and
78
- * their ids are assigned per save.
77
+ * See {@link IPivotTable.CacheJSON}. The part is held as a part rather than as the JSON it was
78
+ * read from because the resources a part can carry are model references, and their ids are
79
+ * assigned per save.
79
80
  */
80
81
  protected _pivotCaches: PivotCache[];
81
- /** Every sheet's pivot tables, in sheet order — a walk, not a second store. */
82
+ /**
83
+ * Every sheet's pivot tables, in sheet order — a walk, not a second store. A hidden sheet's
84
+ * count: its tables' caches are written only for the tables found here.
85
+ */
82
86
  protected _pivotTableCollection: IPivotTableCollection;
83
87
  /** The people the workbook knows — comment authors. Not workbook state: never undone. */
84
88
  protected _people: IPersonCollection;
@@ -119,6 +123,8 @@ export declare class Workbook implements IWorkbook {
119
123
  protected _codeName: string | null;
120
124
  /** Carried, not obeyed — see {@link IWorkbook.JSON.updateLinks}. `null` when the source said nothing. */
121
125
  protected _updateLinks: IExternalBookCollection.UpdateLinks | null;
126
+ /** Carried, not obeyed — see {@link IWorkbook.JSON.hiddenPivotFieldList}. */
127
+ protected _hiddenPivotFieldList: boolean;
122
128
  /** See {@link IWorkbook.getProperties}. */
123
129
  protected _documentProperties: DocumentProperties;
124
130
  /** `null` follows the environment locale. */
@@ -401,10 +407,68 @@ export declare class Workbook implements IWorkbook {
401
407
  protected _sheetToWBEvent(listenerWB: ICellRange.Listener<any>): ICellRange.Listener<any>;
402
408
  /**
403
409
  * Each pivot cache's source is held through the sheet it names, once the sheets exist, so an
404
- * insert above the source moves it (see `PivotCache`).
410
+ * insert above the source moves it and a rename of the table it names renames it (see
411
+ * `PivotCache`), and watched, so an edit to its cells marks it stale.
405
412
  * @internal
406
413
  */
407
414
  protected _holdPivotCaches(): void;
415
+ /** Where the cache with this id keeps its contents: the workbook's state. */
416
+ private _pivotCacheStore;
417
+ /**
418
+ * The cache with this id, or `null` when the workbook has none.
419
+ * @internal
420
+ */
421
+ _getPivotCache(cacheId: number): PivotCache | null;
422
+ /**
423
+ * What a new table's source names: a table, a defined name, or cells on a sheet, an address with no
424
+ * sheet being on `sheet`.
425
+ *
426
+ * @returns `null` when it names none of them.
427
+ * @internal
428
+ */
429
+ _pivotSourceOf(source: IPivotTableCollection.Source, sheet: IWorksheet): IPivotTable.CacheSourceJSON | null;
430
+ /**
431
+ * The cache a new table on `source` shares: the one naming the same source, unless its cells were
432
+ * edited since it read them, as a new table shows them as they are.
433
+ * @internal
434
+ */
435
+ _findPivotCache(source: IPivotTable.CacheSourceJSON): PivotCache | null;
436
+ /**
437
+ * Adds a cache in the caller's commit, held and watched as a loaded one is.
438
+ * @internal
439
+ */
440
+ _addPivotCache(model: PivotCache.Model): PivotCache;
441
+ /**
442
+ * Refreshes caches from their sources inside the caller's batch: each is read again from the
443
+ * cells its source names now, every table on it carried over to the new cache and laid out again
444
+ * (`PivotRefresh`). A table on another cache is left as it is. Async: each table's filters are
445
+ * evaluated over its new cache before it is laid out.
446
+ *
447
+ * @throws ExpectedError when a cache names no source this workbook holds, or holds fields a
448
+ * refresh does not rebuild yet; ProtectedError when a table on it is on a locked sheet.
449
+ * @internal
450
+ */
451
+ _refreshPivotCaches(cacheIds: ReadonlySet<number>, engine: PivotEngineModule): Promise<void>;
452
+ /**
453
+ * Refreshes the caches a file asks to be refreshed as it opens (`refreshOnLoad`), each on its own
454
+ * and as no step to undo. One it cannot refresh, its source gone or a table of it on a locked
455
+ * sheet, keeps what the file saved, silently, as Excel's does (`pivot-probes/probe-pivot-refresh-on-load.ps1`).
456
+ */
457
+ private _refreshPivotCachesOnLoad;
458
+ /**
459
+ * The cells a cache's source names now: its range on a sheet, the table it names without the
460
+ * total row, or what the defined name it names refers to now, whatever computes that.
461
+ * @internal
462
+ */
463
+ _pivotSourceRangeOf(source: IPivotTable.CacheSourceJSON | null): Promise<ICellRange | null>;
464
+ /** The defined name a cache's source names: the sheet's own with `sheet`, otherwise the workbook's. */
465
+ private _pivotSourceNamed;
466
+ /**
467
+ * Each slicer on pivot tables holds the tables it names, once the sheets exist, so a sheet
468
+ * renamed later is followed.
469
+ * @internal
470
+ */
471
+ protected _holdPivotSlicers(): void;
408
472
  /** @internal */
409
473
  protected _fromJSON(json: IWorkbook.JSON, uids?: readonly string[]): void;
410
474
  /**
@@ -484,6 +548,8 @@ interface State {
484
548
  lastId: number;
485
549
  sheetsCreated: Set<ISheet>;
486
550
  listenersSheets: Map<number, IListener.Remove>;
551
+ /** Each pivot cache's contents, by id: a refresh replaces one, and an undo puts it back. */
552
+ pivotCacheData: ReadonlyMap<number, PivotCache.Data>;
487
553
  }
488
554
  interface InternalCreateSheet {
489
555
  (
@@ -1,357 +0,0 @@
1
- /**
2
- * @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.8.0-beta.15
3
- *
4
- * (C) 2026-present SheetXL Inc. & Michael T. Ford
5
- * License: The license can be found at https://www.sheetxl.com/license.
6
- */
7
- import { t as e } from "./KsfZhE6ocmYobGjY.mjs";
8
- import { An as t, Dn as n, Mi as r, Mr as i, On as a, jn as o, kn as s, kr as c } from "./BGPT-k25jo0UhtT5.mjs";
9
- import { ExpectedError as l, messageKey as u, t as d } from "@sheetxl/utils";
10
- var f = "SlicerStyleLight1", p = "ascending", m = "showItemsWithDataAtTop", h = u("op.setSlicerCaption"), g = u("op.setSlicerStyle"), _ = u("op.setSlicerLayout"), v = u("op.setSlicerSort"), y = u("op.selectSlicerItems"), b = c.BuiltInSelectorNames.Display, x = Object.freeze({
11
- selector: b,
12
- scope: "column"
13
- }), S = Object.freeze({ transactional: !1 }), C = class extends e {
14
- constructor(e) {
15
- let t = s(e.json?.source)?.column ?? "", n = e.name;
16
- !n && e.getMovable && (n = t || null), super({
17
- ...e,
18
- name: n
19
- }), this._formula = null, this._wired = null, this._binding = null, this._lossPending = !1, this._columnName = t;
20
- let r = e.json;
21
- r && this._updateState({ data: { ...r } }), r?.source && this._addWatch(r.source, (e) => {
22
- this._formula = e.formula, this._wired ??= e.formula.getExpression(), this._checkSource(!1);
23
- });
24
- }
25
- getType() {
26
- return "slicer";
27
- }
28
- getTypeDescription() {
29
- return "Slicer";
30
- }
31
- getDefaultAnchorType() {
32
- return i.Type.Absolute;
33
- }
34
- getSource() {
35
- let e = this._data()?.source ?? "", t = this._formula?.getExpression() ?? null;
36
- return t === null || t === this._wired ? e : t;
37
- }
38
- getTable() {
39
- return this._resolve()?.table ?? null;
40
- }
41
- getColumn() {
42
- return this._resolve()?.column ?? null;
43
- }
44
- setName(e) {
45
- let t = this._getWorkbook();
46
- if (t && o(t, e, this) !== e) throw new l(d("error.slicer.nameTaken", { name: e }));
47
- return super.setName(e);
48
- }
49
- getCaption() {
50
- return this._data()?.caption ?? this._getColumnName();
51
- }
52
- setCaption(e, t) {
53
- return this._set({ caption: e ?? void 0 }, h, t);
54
- }
55
- isShowCaption() {
56
- return !0 !== this._data()?.hiddenCaption;
57
- }
58
- setShowCaption(e, t) {
59
- return this._set({ hiddenCaption: !e || void 0 }, h, t);
60
- }
61
- getCacheName() {
62
- return this._data()?.cacheName || (t(this._getWorkbook()).get(this) ?? n(this._getColumnName()));
63
- }
64
- getStyle() {
65
- return this._data()?.style ?? f;
66
- }
67
- setStyle(e, t) {
68
- return this._set({ style: e && e !== f ? e : void 0 }, g, t);
69
- }
70
- getSortOrder() {
71
- return this._data()?.sortOrder ?? p;
72
- }
73
- setSortOrder(e, t) {
74
- return this._set({ sortOrder: e === p ? void 0 : e }, v, t);
75
- }
76
- getCrossFilter() {
77
- return this._data()?.crossFilter ?? m;
78
- }
79
- setCrossFilter(e, t) {
80
- return this._set({ crossFilter: e === m ? void 0 : e }, v, t);
81
- }
82
- getColumnCount() {
83
- return this._data()?.columnCount ?? 1;
84
- }
85
- setColumnCount(e, t) {
86
- let n = Math.max(1, Math.trunc(e));
87
- return this._set({ columnCount: n === 1 ? void 0 : n }, _, t);
88
- }
89
- getRowHeight() {
90
- return this._data()?.rowHeight ?? 27;
91
- }
92
- setRowHeight(e, t) {
93
- let n = Math.max(1, e);
94
- return this._set({ rowHeight: n === 27 ? void 0 : n }, _, t);
95
- }
96
- isLockedPosition() {
97
- return !0 === this._data()?.lockedPosition;
98
- }
99
- setLockedPosition(e, t) {
100
- return this._set({ lockedPosition: e || void 0 }, _, t);
101
- }
102
- isFilterCleared() {
103
- return !this.getColumn()?.getFilter()?.getCondition();
104
- }
105
- async getItems() {
106
- let e = this.getColumn()?.getFilter();
107
- if (!e) return w;
108
- let t = await e.getItems(x), n = e.getCondition(), i = n ? function(e, t) {
109
- let n = e.toJSON();
110
- if (n.operator !== c.BuiltInOperatorNames.InSet) return () => !1;
111
- let r = n.param ?? {}, i = /* @__PURE__ */ new Set(), a = r.items ?? [];
112
- for (let e = 0; e < a.length; e++) a[e] !== null && i.add(String(a[e]).toLowerCase());
113
- let o = r.dateGroups ?? [], s = t.dates?.[t.dates.length - 1] ?? null;
114
- return (e) => {
115
- if (e < 0) return !0 === r.blank;
116
- if (i.has(t.items[e].text.toLowerCase())) return !0;
117
- if (!s || o.length === 0) return !1;
118
- let n = null;
119
- for (let t = 0; t < s.runs.length && !n; t++) {
120
- let r = s.runs[t];
121
- r.min <= e && e <= r.max && (n = r.value ?? null);
122
- }
123
- if (!n) return !1;
124
- for (let e = 0; e < o.length; e++) if (D(o[e], n)) return !0;
125
- return !1;
126
- };
127
- }(n, t) : null, a = [];
128
- for (let e = 0; e < t.items.length; e++) {
129
- let n = t.items[e], r = !0 === n.passesOthers;
130
- a.push({
131
- item: {
132
- key: n.text,
133
- name: n.text,
134
- value: n.value,
135
- hasData: r,
136
- isSelected: !i || (r ? n.checked : i(e))
137
- },
138
- firstRow: n.firstRow
139
- });
140
- }
141
- let o = this.getSortOrder();
142
- if (o === "dataSource") a.sort((e, t) => e.firstRow - t.firstRow);
143
- else {
144
- let t = e.getRange().getWorksheet().getRuntime().getLocaleProfile(), n = o === "descending" ? -1 : 1;
145
- a.sort((e, i) => n * (r.compare(e.item.value, i.item.value, t) || r.compare(e.item.key, i.item.key, t)));
146
- }
147
- let s = null;
148
- if (t.hasBlanks) {
149
- let e = !0 === t.blanksPassOthers;
150
- s = {
151
- key: T,
152
- name: d("slicer.blankItem"),
153
- value: null,
154
- hasData: e,
155
- isSelected: !i || (e ? t.blanksChecked : i(-1))
156
- };
157
- }
158
- let l = [], u = this.getCrossFilter();
159
- if (u === "showItemsWithNoData") {
160
- for (let e = 0; e < a.length; e++) l.push(a[e].item);
161
- return s && l.push(s), l;
162
- }
163
- for (let e = 0; e < a.length; e++) a[e].item.hasData && l.push(a[e].item);
164
- if (s?.hasData && l.push(s), u === "none") return l;
165
- for (let e = 0; e < a.length; e++) a[e].item.hasData || l.push(a[e].item);
166
- return s && !s.hasData && l.push(s), l;
167
- }
168
- async getItem(e) {
169
- let t = await this.getItems();
170
- for (let n = 0; n < t.length; n++) if (t[n].key === e) return t[n];
171
- return null;
172
- }
173
- async selectItems(e, t) {
174
- let n = this.getColumn()?.getFilter();
175
- if (!n) return this;
176
- if (!e || e.length === 0) return this.clearFilters(t);
177
- let r = await n.getItems(x), i = new Set(e), a = r.dates?.[r.dates.length - 1] ?? null, o = a && a.runs.length > 0 ? a.runs[a.runs.length - 1].max : -1, s = [], l = [], u = !0, d = 0;
178
- for (let e = 0; e < r.items.length; e++) {
179
- if (!i.has(r.items[e].text)) {
180
- u = !1;
181
- continue;
182
- }
183
- if (e > o) {
184
- s.push(r.items[e].text);
185
- continue;
186
- }
187
- for (; a.runs[d].max < e;) d++;
188
- let t = a.runs[d].value;
189
- t && l[l.length - 1] !== t && l.push(t);
190
- }
191
- let f = r.hasBlanks && i.has(T);
192
- if (r.hasBlanks && !f && (u = !1), u && !r.truncated) return this.clearFilters(t);
193
- let p = { items: s };
194
- return l.length > 0 && (p.dateGroups = l), f && (p.blank = !0), await n.setCondition({
195
- selector: b,
196
- operator: c.BuiltInOperatorNames.InSet,
197
- param: p
198
- }, !1, {
199
- description: y,
200
- ...t
201
- }), this;
202
- }
203
- async clearFilters(e) {
204
- return await this.getColumn()?.getFilter()?.delete(e), this;
205
- }
206
- addListeners(e, t) {
207
- let n = super.addListeners(e, t);
208
- if (!this._binding) {
209
- let e = this._resolve();
210
- e && this._bind(e);
211
- }
212
- return n;
213
- }
214
- toJSON(e) {
215
- let t = this._data();
216
- if (!t) return null;
217
- let n = this.getSource();
218
- return n ? {
219
- ...t,
220
- source: n
221
- } : t;
222
- }
223
- get isISlicer() {
224
- return !0;
225
- }
226
- get [Symbol.toStringTag]() {
227
- return "[Slicer]";
228
- }
229
- toString() {
230
- return this.getTypeDescription();
231
- }
232
- _attach() {
233
- this._checkSource(!0);
234
- }
235
- _data() {
236
- return this._getState()?.data ?? null;
237
- }
238
- _getWorkbook() {
239
- try {
240
- return this.getMovable()?.getRange().getWorksheet().getWorkbook() ?? null;
241
- } catch {
242
- return null;
243
- }
244
- }
245
- _resolve() {
246
- if (this._closed) return null;
247
- let e = s(this.getSource());
248
- if (!e) return null;
249
- let t = a(this._getWorkbook(), e.table), n = t?.getColumnByName(e.column) ?? null;
250
- return n ? (this._columnName = n.getName(), {
251
- table: t,
252
- column: n
253
- }) : null;
254
- }
255
- _getColumnName() {
256
- return this._resolve()?.column.getName() ?? this._columnName;
257
- }
258
- _checkSource(e) {
259
- if (this._closed || this.isDeleted()) return;
260
- let t = this._resolve();
261
- if (t) return void this._bind(t);
262
- let n = this._getTransactions();
263
- n.isRestoring() || (n.isOpenTransaction() ? this.delete() : e && !this._lossPending && (this._lossPending = !0, queueMicrotask(() => {
264
- if (this._lossPending = !1, this._closed || this.isDeleted() || n.isOpenTransaction() || n.isRestoring()) return;
265
- let e = this._resolve();
266
- e ? this._bind(e) : n.amend(n.getCurrentCommit(!1).getId(), () => {
267
- this.delete();
268
- });
269
- })));
270
- }
271
- _bind(e) {
272
- let t = e.table;
273
- if (this._binding?.table !== t) {
274
- this._unbind();
275
- let e = () => {
276
- this._checkSource(!0);
277
- };
278
- this._binding = {
279
- table: t,
280
- removeTable: t.addListeners({
281
- onFilterChange: () => {
282
- this._notify("onSelectionChange");
283
- },
284
- onAnyChange: () => {
285
- this._checkSource(!0), this._bindRange(!0);
286
- },
287
- onAnchorCoordsChange: () => {
288
- this._bindRange(!0);
289
- },
290
- onDelete: e
291
- }, S),
292
- coords: null,
293
- removeRange: null
294
- };
295
- }
296
- this._bindRange(!1);
297
- }
298
- _bindRange(e) {
299
- let t = this._binding;
300
- if (!t || this._closed) return;
301
- let n = this.getColumn()?.getFilter()?.getRange() ?? null, r = n ? n.getCoords() : null;
302
- (r && t.coords ? r.rowStart !== t.coords.rowStart || r.rowEnd !== t.coords.rowEnd || r.colStart !== t.coords.colStart || r.colEnd !== t.coords.colEnd : r !== t.coords) && (t.removeRange?.(), t.removeRange = n?.addListener(() => {
303
- this._notify("onItemsChange");
304
- }, {
305
- ignoreAddressChanges: !0,
306
- ...S
307
- }) ?? null, t.coords = r, e && this._notify("onItemsChange"));
308
- }
309
- _unbind() {
310
- let e = this._binding;
311
- e && (this._binding = null, e.removeTable(), e.removeRange?.());
312
- }
313
- _notify(e) {
314
- this._closed || this.isDeleted() || (this._emitter.notify(e), this._emitter.notify("onAnyChange"));
315
- }
316
- _set(e, t, n) {
317
- this._protectionCheck(t);
318
- let r = this._data();
319
- if (!r) return this;
320
- let i = {
321
- ...r,
322
- ...e
323
- };
324
- for (let t in e) i[t] === void 0 && delete i[t];
325
- return this._updateState({ data: i }, {
326
- ...n,
327
- description: t
328
- }, ["onAnyChange"]), this;
329
- }
330
- _processDelete() {
331
- this._unbind(), super._processDelete();
332
- }
333
- _processRestoreOrRevert(e, t) {
334
- if (super._processRestoreOrRevert(e, t), this.isDeleted()) return void this._unbind();
335
- let n = this._resolve();
336
- n && this._bind(n);
337
- }
338
- close() {
339
- this._unbind(), super.close();
340
- }
341
- }, w = Object.freeze([]), T = "", E = [
342
- "year",
343
- "month",
344
- "day",
345
- "hour",
346
- "minute",
347
- "second"
348
- ];
349
- function D(e, t) {
350
- for (let n = 0; n < E.length; n++) {
351
- let r = E[n];
352
- if (e[r] !== t[r]) return !1;
353
- if (r === e.group) return !0;
354
- }
355
- return !0;
356
- }
357
- export { C as Slicer };