prographs 0.12.0 → 0.13.0

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 (269) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +6 -4
  3. package/dist/AutoGraph-PDPEAIXL.cjs +145 -0
  4. package/dist/GraphType.js +19 -0
  5. package/dist/autograph/chartIndex.js +521 -0
  6. package/dist/autograph/chartModules.js +2 -1
  7. package/dist/autograph/index.cjs +98 -93
  8. package/dist/catalog-DI4XZ46L.cjs +142 -0
  9. package/dist/catalog.js +2 -1
  10. package/dist/charts/biologycharts/BiologySamples.js +59 -0
  11. package/dist/charts/biologycharts/PunnettSquare.js +342 -0
  12. package/dist/charts/biologycharts/biologyEnums.js +22 -1
  13. package/dist/charts/biologycharts/index.js +5 -3
  14. package/dist/charts/doecharts/DoeSamples.js +78 -0
  15. package/dist/charts/doecharts/SipocDiagram.js +453 -0
  16. package/dist/charts/doecharts/index.js +4 -2
  17. package/dist/charts/fieldcharts/SpeciesAccumulationCurve.js +350 -0
  18. package/dist/charts/fieldcharts/fieldEnums.js +8 -1
  19. package/dist/charts/fieldcharts/index.js +5 -3
  20. package/dist/charts/signals/AntennaPatternChart.js +492 -0
  21. package/dist/charts/signals/SignalSamples.js +17 -0
  22. package/dist/charts/signals/index.js +5 -3
  23. package/dist/charts/softwarediagrams/ComponentDiagram.js +504 -0
  24. package/dist/charts/softwarediagrams/DeploymentDiagram.js +419 -0
  25. package/dist/charts/softwarediagrams/SoftwareSamples.js +283 -1
  26. package/dist/charts/softwarediagrams/index.js +7 -3
  27. package/dist/charts/softwarediagrams/softwareEnums.js +45 -1
  28. package/dist/charts/sportscharts/PowerDurationCurve.js +301 -0
  29. package/dist/charts/sportscharts/SportsSamples.js +102 -0
  30. package/dist/charts/sportscharts/TrainingLoadChart.js +325 -0
  31. package/dist/charts/sportscharts/index.js +6 -2
  32. package/dist/charts/strategycharts/BassDiffusionChart.js +362 -0
  33. package/dist/charts/strategycharts/BassModel.js +96 -0
  34. package/dist/charts/strategycharts/BurnRunwayChart.js +284 -0
  35. package/dist/charts/strategycharts/CapTableChart.js +366 -0
  36. package/dist/charts/strategycharts/KanbanBoard.js +324 -0
  37. package/dist/charts/strategycharts/OkrTree.js +339 -0
  38. package/dist/charts/strategycharts/StrategyPane.js +27 -0
  39. package/dist/charts/strategycharts/StrategySamples.js +251 -0
  40. package/dist/charts/strategycharts/index.js +15 -3
  41. package/dist/charts/threefields/BsfcMap3DChart.js +231 -0
  42. package/dist/charts/threefields/CompressorMap3DChart.js +217 -0
  43. package/dist/charts/threefields/FieldGrid.js +50 -0
  44. package/dist/charts/threefields/LossLandscape3DChart.js +201 -0
  45. package/dist/charts/threefields/MapSheet.js +77 -0
  46. package/dist/charts/threefields/TerrainRoute3DChart.js +201 -0
  47. package/dist/charts/threefields/TerrainRouteMath.js +40 -0
  48. package/dist/charts/threefields/ThreeFieldBase.js +117 -0
  49. package/dist/charts/threefields/ThreeFieldsSamples.js +80 -0
  50. package/dist/charts/threefields/WaferMap3DChart.js +218 -0
  51. package/dist/charts/threefields/index.js +19 -0
  52. package/dist/charts/threesurfaces/index.js +2 -2
  53. package/dist/charts/tradingcharts/KeltnerChannelChart.js +171 -0
  54. package/dist/charts/tradingcharts/TradingMath.js +20 -0
  55. package/dist/charts/tradingcharts/index.js +4 -2
  56. package/dist/{chunk-ZL6XDXMK.cjs → chunk-26PSLEP4.cjs} +8 -8
  57. package/dist/{chunk-W3US6EFP.cjs → chunk-2BO5DZUP.cjs} +12 -12
  58. package/dist/{chunk-5DP7OUSE.cjs → chunk-2GG5YYSC.cjs} +6 -6
  59. package/dist/{chunk-7FG4JSVO.cjs → chunk-2GL2VNJU.cjs} +253 -33
  60. package/dist/{chunk-LCWMRCLF.cjs → chunk-2PYOI7OY.cjs} +21 -21
  61. package/dist/{chunk-JFWJAEBD.cjs → chunk-3U4MCSKI.cjs} +4 -4
  62. package/dist/{chunk-CUPLHZRR.cjs → chunk-3ZMM3FSK.cjs} +4 -4
  63. package/dist/{chunk-L2AV62DP.cjs → chunk-4767WQJ7.cjs} +6 -6
  64. package/dist/{chunk-DA2EYIIP.cjs → chunk-4E7FSSBF.cjs} +1210 -168
  65. package/dist/{chunk-VS5LQEZB.cjs → chunk-526STI2S.cjs} +5 -5
  66. package/dist/{chunk-RXIMEK6C.cjs → chunk-55767YPI.cjs} +20 -20
  67. package/dist/{chunk-JXLSKIUV.cjs → chunk-5FBQOMMT.cjs} +26 -26
  68. package/dist/{chunk-27PZV5BR.cjs → chunk-5N4Z7MTS.cjs} +4 -4
  69. package/dist/{chunk-KEWCUIQA.cjs → chunk-5WEV6YWA.cjs} +22 -22
  70. package/dist/chunk-5XOVVC5X.cjs +3281 -0
  71. package/dist/{chunk-HK5J7Q2W.cjs → chunk-6HLXVWXU.cjs} +9 -9
  72. package/dist/{chunk-7JG47RW4.cjs → chunk-6LQT4WJ5.cjs} +25 -25
  73. package/dist/{chunk-OCVTI6X4.cjs → chunk-6YTWOUFD.cjs} +329 -36
  74. package/dist/{chunk-W7IQCAVN.cjs → chunk-7F6W6HKL.cjs} +11 -11
  75. package/dist/{chunk-F2DCJXDM.cjs → chunk-7L6KYU5A.cjs} +21 -21
  76. package/dist/{chunk-GTGR6LPR.cjs → chunk-A4GIN4FE.cjs} +17 -17
  77. package/dist/{chunk-B2CETSR6.cjs → chunk-A4US7SA7.cjs} +5 -5
  78. package/dist/{chunk-3DIF2YYW.cjs → chunk-AOXPBLPW.cjs} +10 -10
  79. package/dist/{chunk-7TTR4UF5.cjs → chunk-ATI45Z4M.cjs} +2 -2
  80. package/dist/{chunk-5BFCIX2V.cjs → chunk-CPPMO4IQ.cjs} +434 -148
  81. package/dist/{chunk-AYZZQ6AC.cjs → chunk-CZ5KGF6Q.cjs} +9 -9
  82. package/dist/{chunk-7THJ3ZBK.cjs → chunk-D4I35MCE.cjs} +2 -2
  83. package/dist/{chunk-MCPPFRLN.cjs → chunk-DCGAAN3Z.cjs} +2 -2
  84. package/dist/{chunk-VABL6CVX.cjs → chunk-DEY36N37.cjs} +21 -21
  85. package/dist/{chunk-RNCKGJCC.cjs → chunk-DXHXD3DK.cjs} +3 -3
  86. package/dist/{chunk-A56ZGMVZ.cjs → chunk-E7B45DBZ.cjs} +11 -11
  87. package/dist/{chunk-DOR6L4MT.cjs → chunk-EJC6EAC5.cjs} +18 -18
  88. package/dist/{chunk-UPGNM7MA.cjs → chunk-EULJOOMA.cjs} +11 -11
  89. package/dist/{chunk-G4AZL4GO.cjs → chunk-EYM6LEIF.cjs} +474 -70
  90. package/dist/{chunk-NJ4X6XGV.cjs → chunk-EZTYX2GH.cjs} +5 -5
  91. package/dist/chunk-FDD4UP73.cjs +521 -0
  92. package/dist/{chunk-WJ3VH2Q4.cjs → chunk-GEAIGM3J.cjs} +110 -615
  93. package/dist/{chunk-P3SBHF43.cjs → chunk-GRUYVXTS.cjs} +2 -2
  94. package/dist/{chunk-NX4Z5LMS.cjs → chunk-H3SZXND5.cjs} +5 -5
  95. package/dist/{chunk-EE4S4TOE.cjs → chunk-HS45TOFJ.cjs} +21 -21
  96. package/dist/chunk-INGOG6OV.cjs +899 -0
  97. package/dist/{chunk-UDKA6DGT.cjs → chunk-J3CDXZHF.cjs} +4 -4
  98. package/dist/{chunk-YO6G7TKI.cjs → chunk-JAU5ADEU.cjs} +11 -11
  99. package/dist/{chunk-22LBK4GA.cjs → chunk-JQEBSHX3.cjs} +4 -4
  100. package/dist/{chunk-RXX3U7VQ.cjs → chunk-KLXGLMFU.cjs} +10 -10
  101. package/dist/chunk-KVOX36J3.cjs +327 -0
  102. package/dist/chunk-L6BGNHFL.cjs +139 -0
  103. package/dist/{chunk-GMER35L3.cjs → chunk-L7TB7PU5.cjs} +20 -20
  104. package/dist/{chunk-AFXYNBL2.cjs → chunk-LBTRYEM2.cjs} +4 -4
  105. package/dist/{chunk-WYYCKIOD.cjs → chunk-LLULNJSP.cjs} +11 -11
  106. package/dist/{chunk-J27XOSLP.cjs → chunk-LSO46AFV.cjs} +8 -8
  107. package/dist/{chunk-5XJO45ES.cjs → chunk-LZ2KJ7ZX.cjs} +11 -11
  108. package/dist/chunk-M4IQ5LIZ.cjs +422 -0
  109. package/dist/{chunk-Y2KIUKJF.cjs → chunk-MPDHDKYZ.cjs} +11 -11
  110. package/dist/{chunk-4EMPKRZU.cjs → chunk-MRQ42ZJE.cjs} +3 -3
  111. package/dist/{chunk-EU5D2MF4.cjs → chunk-MYV4KZWP.cjs} +9 -9
  112. package/dist/{chunk-XD7KN4UN.cjs → chunk-MZXVLC24.cjs} +6 -6
  113. package/dist/{chunk-PPSONARU.cjs → chunk-NLBVDFIR.cjs} +41 -2
  114. package/dist/{chunk-L3PEGMGM.cjs → chunk-NY3TBZY4.cjs} +33 -33
  115. package/dist/{chunk-6YNYXXB6.cjs → chunk-OGVVSFAR.cjs} +3 -3
  116. package/dist/{chunk-MLV7QLB6.cjs → chunk-OMTQIQMN.cjs} +6 -6
  117. package/dist/{chunk-BEEOSNK7.cjs → chunk-PEJJ6TXJ.cjs} +15 -144
  118. package/dist/{chunk-SOKOWUF5.cjs → chunk-PPGWHIU7.cjs} +2 -2
  119. package/dist/{chunk-IELWOM2J.cjs → chunk-PPO6SDAN.cjs} +6 -6
  120. package/dist/{chunk-6JTZZCSL.cjs → chunk-PUMKX5F2.cjs} +3 -3
  121. package/dist/{chunk-RFOXFY2U.cjs → chunk-PXBYWCNB.cjs} +190 -799
  122. package/dist/{chunk-3BYXOISI.cjs → chunk-Q3HB3IX6.cjs} +4 -4
  123. package/dist/{chunk-RXCOVONX.cjs → chunk-RBMUOIXE.cjs} +289 -34
  124. package/dist/{chunk-MSBNHCSE.cjs → chunk-RJHGCUUD.cjs} +6 -6
  125. package/dist/{chunk-I6VG7F6Z.cjs → chunk-RSONDMYW.cjs} +708 -141
  126. package/dist/{chunk-GZDNPHMT.cjs → chunk-SHMPFCUE.cjs} +19 -19
  127. package/dist/{chunk-ZIBVCOW6.cjs → chunk-SN4FCXFC.cjs} +19 -19
  128. package/dist/{chunk-7KM52NMN.cjs → chunk-SN5T7WYO.cjs} +2 -2
  129. package/dist/{chunk-7MSZR65Z.cjs → chunk-SQJZGVDR.cjs} +7 -7
  130. package/dist/chunk-SYABFMD7.cjs +633 -0
  131. package/dist/{chunk-2RRFEYFH.cjs → chunk-TICB3MAC.cjs} +16 -16
  132. package/dist/{chunk-AOOKHUV5.cjs → chunk-U7Z7XYR2.cjs} +5 -5
  133. package/dist/{chunk-JEWQAXVG.cjs → chunk-UA2THQFV.cjs} +6 -6
  134. package/dist/{chunk-LHZPAHU3.cjs → chunk-VIK4L2YF.cjs} +112 -521
  135. package/dist/{chunk-4YWMAQ4J.cjs → chunk-VM2Y6BDY.cjs} +4 -4
  136. package/dist/{chunk-IRRKE2ZE.cjs → chunk-VMS3KWYI.cjs} +21 -21
  137. package/dist/{chunk-4SLARW6F.cjs → chunk-VU5NUD46.cjs} +17 -17
  138. package/dist/{chunk-XHY6TVYG.cjs → chunk-VV5CVOF7.cjs} +13 -13
  139. package/dist/{chunk-CCIBPGPZ.cjs → chunk-VYSAWPSS.cjs} +57 -57
  140. package/dist/{chunk-TTNEMQ2A.cjs → chunk-W7YRWEWQ.cjs} +22 -22
  141. package/dist/{chunk-C7MUOGEW.cjs → chunk-X7R5SY62.cjs} +6 -6
  142. package/dist/{chunk-ILR5KBMB.cjs → chunk-XOK3KTSS.cjs} +6 -6
  143. package/dist/{chunk-2CZM2I3T.cjs → chunk-XUIX45VU.cjs} +19 -19
  144. package/dist/{chunk-TGRMPS3A.cjs → chunk-XWH46PVJ.cjs} +165 -43
  145. package/dist/{chunk-WQYXXECR.cjs → chunk-Y5XVMK3K.cjs} +6 -6
  146. package/dist/{chunk-AK4TX2WG.cjs → chunk-YCNKEDTG.cjs} +13 -13
  147. package/dist/{chunk-PJJB24DU.cjs → chunk-YEF7SE3X.cjs} +20 -20
  148. package/dist/{chunk-RVLV4XW6.cjs → chunk-YMTVPMU3.cjs} +22 -22
  149. package/dist/data/index.cjs +2 -2
  150. package/dist/entries/autograph-lazy.cjs +2 -2
  151. package/dist/entries/charts/acoustictransport.cjs +3 -3
  152. package/dist/entries/charts/analysischarts.cjs +3 -3
  153. package/dist/entries/charts/astrocharts.cjs +3 -3
  154. package/dist/entries/charts/bars.cjs +3 -3
  155. package/dist/entries/charts/bayesiancharts.cjs +3 -3
  156. package/dist/entries/charts/biocharts.cjs +3 -3
  157. package/dist/entries/charts/biologycharts.cjs +11 -3
  158. package/dist/entries/charts/biologycharts.d.ts +1 -1
  159. package/dist/entries/charts/biologycharts.js +3 -2
  160. package/dist/entries/charts/business.cjs +3 -3
  161. package/dist/entries/charts/carecharts.cjs +3 -3
  162. package/dist/entries/charts/chemistrycharts.cjs +3 -3
  163. package/dist/entries/charts/civicscharts.cjs +3 -3
  164. package/dist/entries/charts/clinicalcharts.cjs +3 -3
  165. package/dist/entries/charts/comparison.cjs +3 -3
  166. package/dist/entries/charts/demography.cjs +3 -3
  167. package/dist/entries/charts/density.cjs +3 -3
  168. package/dist/entries/charts/diagrams.cjs +3 -3
  169. package/dist/entries/charts/distribution.cjs +3 -3
  170. package/dist/entries/charts/doecharts.cjs +13 -3
  171. package/dist/entries/charts/doecharts.d.ts +1 -1
  172. package/dist/entries/charts/doecharts.js +2 -1
  173. package/dist/entries/charts/earthscience.cjs +3 -3
  174. package/dist/entries/charts/economicscharts.cjs +3 -3
  175. package/dist/entries/charts/energycharts.cjs +3 -3
  176. package/dist/entries/charts/engineering.cjs +3 -3
  177. package/dist/entries/charts/fieldcharts.cjs +7 -3
  178. package/dist/entries/charts/fieldcharts.d.ts +1 -1
  179. package/dist/entries/charts/fieldcharts.js +3 -2
  180. package/dist/entries/charts/financial.cjs +3 -3
  181. package/dist/entries/charts/flow.cjs +3 -3
  182. package/dist/entries/charts/frameworks.cjs +3 -3
  183. package/dist/entries/charts/genomics.cjs +3 -3
  184. package/dist/entries/charts/geoflows.cjs +3 -3
  185. package/dist/entries/charts/geomaps.cjs +3 -3
  186. package/dist/entries/charts/geosciencecharts.cjs +3 -3
  187. package/dist/entries/charts/hierarchy.cjs +3 -3
  188. package/dist/entries/charts/indicators.cjs +3 -3
  189. package/dist/entries/charts/inferencecharts.cjs +3 -3
  190. package/dist/entries/charts/layoutcharts.cjs +3 -3
  191. package/dist/entries/charts/lifescience.cjs +4 -4
  192. package/dist/entries/charts/linesareas.cjs +3 -3
  193. package/dist/entries/charts/logisticscharts.cjs +3 -3
  194. package/dist/entries/charts/machinecharts.cjs +7 -3
  195. package/dist/entries/charts/machinecharts.d.ts +1 -1
  196. package/dist/entries/charts/machinecharts.js +2 -1
  197. package/dist/entries/charts/massive.cjs +3 -3
  198. package/dist/entries/charts/mathematical.cjs +3 -3
  199. package/dist/entries/charts/matrix.cjs +3 -3
  200. package/dist/entries/charts/medicalcharts.cjs +4 -4
  201. package/dist/entries/charts/mlcharts.cjs +4 -4
  202. package/dist/entries/charts/modelcharts.cjs +6 -5
  203. package/dist/entries/charts/multivariate.cjs +3 -3
  204. package/dist/entries/charts/musiccharts.cjs +3 -3
  205. package/dist/entries/charts/network.cjs +3 -3
  206. package/dist/entries/charts/physicscharts.cjs +3 -3
  207. package/dist/entries/charts/pictorial.cjs +4 -4
  208. package/dist/entries/charts/portfoliocharts.cjs +3 -3
  209. package/dist/entries/charts/productcharts.cjs +3 -3
  210. package/dist/entries/charts/proportion.cjs +3 -3
  211. package/dist/entries/charts/qualitycharts.cjs +3 -3
  212. package/dist/entries/charts/radial.cjs +3 -3
  213. package/dist/entries/charts/reliabilitycharts.cjs +5 -3
  214. package/dist/entries/charts/scatter.cjs +3 -3
  215. package/dist/entries/charts/scientific.cjs +3 -3
  216. package/dist/entries/charts/seriescharts.cjs +3 -3
  217. package/dist/entries/charts/signals.cjs +7 -3
  218. package/dist/entries/charts/signals.d.ts +1 -1
  219. package/dist/entries/charts/signals.js +2 -1
  220. package/dist/entries/charts/softwarediagrams.cjs +21 -3
  221. package/dist/entries/charts/softwarediagrams.d.ts +1 -1
  222. package/dist/entries/charts/softwarediagrams.js +4 -2
  223. package/dist/entries/charts/sportscharts.cjs +13 -3
  224. package/dist/entries/charts/sportscharts.d.ts +1 -1
  225. package/dist/entries/charts/sportscharts.js +3 -1
  226. package/dist/entries/charts/statistics.cjs +6 -6
  227. package/dist/entries/charts/strategycharts.cjs +30 -3
  228. package/dist/entries/charts/strategycharts.d.ts +1 -1
  229. package/dist/entries/charts/strategycharts.js +6 -1
  230. package/dist/entries/charts/structure.cjs +3 -3
  231. package/dist/entries/charts/surveycharts.cjs +3 -3
  232. package/dist/entries/charts/systemscharts.cjs +3 -3
  233. package/dist/entries/charts/textcharts.cjs +5 -5
  234. package/dist/entries/charts/thematicmaps.cjs +4 -4
  235. package/dist/entries/charts/threebars.cjs +3 -3
  236. package/dist/entries/charts/threefields.cjs +53 -0
  237. package/dist/entries/charts/threefields.d.ts +1 -0
  238. package/dist/entries/charts/threefields.js +6 -0
  239. package/dist/entries/charts/threeglobe.cjs +3 -3
  240. package/dist/entries/charts/threenetwork.cjs +3 -3
  241. package/dist/entries/charts/threestrata.cjs +3 -3
  242. package/dist/entries/charts/threesurfaces.cjs +7 -3
  243. package/dist/entries/charts/threesurfaces.d.ts +1 -1
  244. package/dist/entries/charts/threesurfaces.js +2 -1
  245. package/dist/entries/charts/threevolume.cjs +4 -4
  246. package/dist/entries/charts/timeline.cjs +3 -3
  247. package/dist/entries/charts/tracecharts.cjs +3 -3
  248. package/dist/entries/charts/trackscharts.cjs +3 -3
  249. package/dist/entries/charts/tradingcharts.cjs +6 -4
  250. package/dist/entries/charts/tradingcharts.d.ts +1 -1
  251. package/dist/entries/charts/tradingcharts.js +2 -1
  252. package/dist/entries/three.cjs +60 -20
  253. package/dist/entries/three.d.ts +1 -1
  254. package/dist/entries/three.js +7 -1
  255. package/dist/index.cjs +258 -97
  256. package/dist/index.d.cts +1953 -10
  257. package/dist/index.d.ts +1953 -10
  258. package/dist/index.js +26 -5
  259. package/dist/page/index.cjs +2 -2
  260. package/dist/react/components.js +58 -1
  261. package/dist/react/index.cjs +135 -92
  262. package/dist/react/index.d.ts +1 -1
  263. package/dist/react/index.js +2 -2
  264. package/package.json +1 -1
  265. package/dist/AutoGraph-XLBJQDRB.cjs +0 -140
  266. package/dist/catalog-O7XGDD2H.cjs +0 -137
  267. package/dist/chunk-77K2HTRC.cjs +0 -3220
  268. package/dist/chunk-XEK47TVD.cjs +0 -323
  269. /package/dist/{chunk-UMEKIIHJ.cjs → chunk-LNWTC72Y.cjs} +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11; var _class12;
2
2
 
3
3
  var _chunkITLUWFSUcjs = require('./chunk-ITLUWFSU.cjs');
4
4
 
@@ -20,7 +20,7 @@ var _chunkAL4XQZH6cjs = require('./chunk-AL4XQZH6.cjs');
20
20
  var _chunkEEF5WRRZcjs = require('./chunk-EEF5WRRZ.cjs');
21
21
 
22
22
 
23
- var _chunkUMEKIIHJcjs = require('./chunk-UMEKIIHJ.cjs');
23
+ var _chunkLNWTC72Ycjs = require('./chunk-LNWTC72Y.cjs');
24
24
 
25
25
  // src/charts/doecharts/DoeRows.ts
26
26
  var DoeRows = class _DoeRows {
@@ -176,9 +176,9 @@ var DoeMath = class _DoeMath {
176
176
  const key = `${d.part}\0${d.operator}`;
177
177
  (_nullishCoalesce(cells.get(key), () => ( cells.set(key, []).get(key)))).push(d.value);
178
178
  }
179
- const p = parts.length, o = operators.length, n = readings.length, errorDf = n - cells.size;
179
+ const p = parts.length, o = operators.length, n2 = readings.length, errorDf = n2 - cells.size;
180
180
  if (p < 2 || !o || errorDf < 1) return null;
181
- const grand = _d3.mean.call(void 0, readings, (d) => d.value), trials = n / (p * o);
181
+ const grand = _d3.mean.call(void 0, readings, (d) => d.value), trials = n2 / (p * o);
182
182
  const spread = (keys, pick) => keys.reduce((sum, key) => sum + (_d3.mean.call(void 0, readings.filter((d) => pick(d) === key), (d) => d.value) - grand) ** 2, 0);
183
183
  const ssPart = o * trials * spread(parts, (d) => d.part), ssOperator = p * trials * spread(operators, (d) => d.operator);
184
184
  let ssCells = 0, ssError = 0;
@@ -284,35 +284,52 @@ var WORK = [
284
284
  ["Station 4", [["Leak test", 20, "Value added"], ["Wait for tester", 14, "Waste"], ["Label unit", 8, "Value added"], ["Search for labels", 10, "Waste"], ["Scan serial", 5, "Necessary"], ["Pack unit", 11, "Value added"]]],
285
285
  ["Station 5", [["Stack carton", 9, "Necessary"], ["Strap pallet", 15, "Value added"], ["Move pallet", 13, "Necessary"]]]
286
286
  ];
287
+ var SIPOC_SUPPLIERS = ["Fabrication cell", "Powder supplier", "Planning office", "Site services"];
288
+ var SIPOC_INPUTS = [
289
+ ["Works order", "Planning office"],
290
+ ["Cut brackets", "Fabrication cell"],
291
+ ["Coating powder", "Powder supplier"],
292
+ ["Racks and hooks", "Fabrication cell"],
293
+ ["Gas and compressed air", "Site services"]
294
+ ];
295
+ var SIPOC_STEPS = ["Rack the parts", "Degrease and rinse", "Apply powder", "Cure in oven", "Inspect finish", "Pack and label"];
296
+ var SIPOC_OUTPUTS = [
297
+ ["Coated brackets", "Assembly line"],
298
+ ["Coated brackets", "Spares store"],
299
+ ["Inspection record", "Quality office"],
300
+ ["Closed works order", "Planning office"],
301
+ ["Scrap report", "Quality office"]
302
+ ];
303
+ var SIPOC_CUSTOMERS = ["Planning office", "Assembly line", "Quality office", "Spares store"];
287
304
  var DoeSamples = class {
288
305
  /** A replicated 3 x 2 x 3 factorial on a moulding press: `{ temperature, pressure, resin, strength }`, 36 runs. */
289
306
  static factorial(seed) {
290
- const { n } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
307
+ const { n: n2 } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
291
308
  const heat = [-3.2, 0.4, 2.8], squeeze = [-1.6, 1.6], grade = turn([1.9, -2.4, 0.5], seed);
292
- return [180, 200, 220].flatMap((temperature, t) => [60, 90].flatMap((pressure, p) => ["Grade A", "Grade B", "Grade C"].flatMap((resin, r) => [0, 1].map(() => ({ temperature, pressure, resin, strength: round(48 + heat[t] + squeeze[p] + grade[r] + (t === 2 && p === 1 ? 1.4 : 0) + n() * 1.1) })))));
309
+ return [180, 200, 220].flatMap((temperature, t) => [60, 90].flatMap((pressure, p) => ["Grade A", "Grade B", "Grade C"].flatMap((resin, r) => [0, 1].map(() => ({ temperature, pressure, resin, strength: round(48 + heat[t] + squeeze[p] + grade[r] + (t === 2 && p === 1 ? 1.4 : 0) + n2() * 1.1) })))));
293
310
  }
294
311
  /** A 2^3 factorial run twice on a reactor: `{ temperature, pressure, catalyst, yield }`, 16 runs. */
295
312
  static twoLevel(seed) {
296
- const { n } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
313
+ const { n: n2 } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
297
314
  const boost = 4 + (seed - 1) % 3 * 2;
298
- return [160, 180].flatMap((temperature, t) => [2, 4].flatMap((pressure, p) => ["A", "B"].flatMap((catalyst, c) => [0, 1].map(() => ({ temperature, pressure, catalyst, yield: round(62 + 11 * t + 3 * p - 2 * c + boost * t * c + n() * 1.2) })))));
315
+ return [160, 180].flatMap((temperature, t) => [2, 4].flatMap((pressure, p) => ["A", "B"].flatMap((catalyst, c) => [0, 1].map(() => ({ temperature, pressure, catalyst, yield: round(62 + 11 * t + 3 * p - 2 * c + boost * t * c + n2() * 1.2) })))));
299
316
  }
300
317
  /** Effect estimates of an unreplicated 2^4 factorial: `{ term, effect }`, 15 terms from `A` to `ABCD`, three or four of them real. */
301
318
  static effects(seed) {
302
- const { n } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
319
+ const { n: n2 } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
303
320
  const levels = [-1, 1];
304
321
  const runs = levels.flatMap((A) => levels.flatMap((B) => levels.flatMap((C) => levels.map((D) => ({
305
322
  A,
306
323
  B,
307
324
  C,
308
325
  D,
309
- response: 70 + 10.5 * A + 1.2 * B + 6.8 * C + (seed % 2 ? 3.6 : -3.6) * D - 8.6 * A * C + n() * 1.6
326
+ response: 70 + 10.5 * A + 1.2 * B + 6.8 * C + (seed % 2 ? 3.6 : -3.6) * D - 8.6 * A * C + n2() * 1.6
310
327
  })))));
311
328
  return DoeMath.effects(runs, ["A", "B", "C", "D"], "response", "").map(({ term, effect }) => ({ term, effect: round(effect, 2) }));
312
329
  }
313
330
  /** Four latch concepts rated against the current design: `{ criterion, weight, option, rating }`, ratings -1, 0 or 1. */
314
331
  static concepts(seed) {
315
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
332
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
316
333
  return turn(CRITERIA, seed).flatMap(([criterion, weight]) => [
317
334
  { criterion, weight, option: "Current latch", rating: 0 },
318
335
  ...CONCEPTS.map(([option, lean]) => {
@@ -326,7 +343,7 @@ var DoeSamples = class {
326
343
  * with strength 9, 3 or 1; roof rows are `{ characteristic, other, correlation }` with `++`, `+`, `-` or `--`.
327
344
  */
328
345
  static house(seed) {
329
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
346
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
330
347
  const importance = NEEDS.map(([, base]) => Math.max(1, Math.min(5, base + (u() < 0.3 ? -1 : 0))));
331
348
  const relations = LINKS.filter(([, , strength]) => strength > 1 || u() < 0.8).map(([need, measure, strength]) => ({
332
349
  need: NEEDS[need][0],
@@ -344,44 +361,60 @@ var DoeSamples = class {
344
361
  }
345
362
  /** A machine shop floor in metres with one shift of walking: nodes `{ id, x, y }`, links `{ source, target, value }` in trips. */
346
363
  static floor(seed) {
347
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
364
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
348
365
  return {
349
- nodes: STATIONS.map(([id, x, y]) => ({ id, x, y })),
366
+ nodes: STATIONS.map(([id2, x, y]) => ({ id: id2, x, y })),
350
367
  links: WALKS.map(([from, to, trips]) => ({ source: STATIONS[from][0], target: STATIONS[to][0], value: Math.max(1, trips + Math.round((u() - 0.5) * 4)) }))
351
368
  };
352
369
  }
353
370
  /** Work elements timed at five stations of an assembly line: `{ operator, element, seconds, kind, takt }`, takt time 60 s. */
354
371
  static workBalance(seed) {
355
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
372
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
356
373
  return WORK.flatMap(([operator, elements]) => elements.map(([element, seconds, kind]) => ({ operator, element, seconds: Math.max(2, Math.round(seconds * (0.88 + u() * 0.24))), kind, takt: 60 })));
357
374
  }
358
375
  /** Ten two-week sprints of one team: `{ sprint, committed, completed }` in story points. */
359
376
  static sprints(seed) {
360
- const { u, n } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
377
+ const { u, n: n2 } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
361
378
  let pace = 30 + u() * 6;
362
379
  return Array.from({ length: 10 }, (_, i) => {
363
- pace += 0.9 + n() * 1.4;
380
+ pace += 0.9 + n2() * 1.4;
364
381
  const committed = Math.round(pace + 3 + u() * 5), dip = i === 3 || i === 7 ? 0.72 : 0.9 + u() * 0.14;
365
382
  return { sprint: `Sprint ${i + 11}`, committed, completed: Math.min(committed + 2, Math.round(committed * dip)) };
366
383
  });
367
384
  }
368
385
  /** A crossed gage study of a bore diameter: ten parts, three operators, three trials. `{ part, operator, trial, value }` in mm. */
369
386
  static gageStudy(seed) {
370
- const { n } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
387
+ const { n: n2 } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
371
388
  const bias = turn([4e-3, -3e-3, 1e-3], seed);
372
389
  return Array.from({ length: 10 }, (_, p) => {
373
- const size = 12 + n() * 0.02;
374
- return ["Operator A", "Operator B", "Operator C"].flatMap((operator, o) => [1, 2, 3].map((trial) => ({ part: `P${p + 1}`, operator, trial, value: round(size + bias[o] + n() * 4e-3, 3) })));
390
+ const size = 12 + n2() * 0.02;
391
+ return ["Operator A", "Operator B", "Operator C"].flatMap((operator, o) => [1, 2, 3].map((trial) => ({ part: `P${p + 1}`, operator, trial, value: round(size + bias[o] + n2() * 4e-3, 3) })));
375
392
  }).flat();
376
393
  }
377
394
  /** Shaft diameters in 25 subgroups of five, drifting a little between subgroups: `{ subgroup, value, lsl, usl, target }` in mm. */
378
395
  static shafts(seed) {
379
- const { n } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
396
+ const { n: n2 } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
380
397
  return Array.from({ length: 25 }, (_, g) => {
381
- const shift = 6e-3 + n() * 6e-3;
382
- return Array.from({ length: 5 }, () => ({ subgroup: g + 1, value: round(25 + shift + n() * 0.011, 3), lsl: 24.96, usl: 25.04, target: 25 }));
398
+ const shift = 6e-3 + n2() * 6e-3;
399
+ return Array.from({ length: 5 }, () => ({ subgroup: g + 1, value: round(25 + shift + n2() * 0.011, 3), lsl: 24.96, usl: 25.04, target: 25 }));
383
400
  }).flat();
384
401
  }
402
+ /**
403
+ * A SIPOC of a powder coating line: `{ stage, item, partner }`. An input names its supplier and an output its customer;
404
+ * an output with two customers takes two rows. The seed turns the order of suppliers and customers and adds a step or leaves one out.
405
+ */
406
+ static sipoc(seed) {
407
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
408
+ const extra = ["Mask the threads", "Pre-heat the parts", ""][Math.floor(u() * 3)];
409
+ const steps = extra ? [...SIPOC_STEPS.slice(0, 2), extra, ...SIPOC_STEPS.slice(2)] : SIPOC_STEPS;
410
+ return [
411
+ ...turn(SIPOC_SUPPLIERS, seed).map((item) => ({ stage: "Supplier", item, partner: null })),
412
+ ...SIPOC_INPUTS.map(([item, partner]) => ({ stage: "Input", item, partner })),
413
+ ...steps.map((item) => ({ stage: "Process", item, partner: null })),
414
+ ...SIPOC_OUTPUTS.map(([item, partner]) => ({ stage: "Output", item, partner })),
415
+ ...turn(SIPOC_CUSTOMERS, seed).map((item) => ({ stage: "Customer", item, partner: null }))
416
+ ];
417
+ }
385
418
  };
386
419
 
387
420
  // src/charts/doecharts/AffinityDiagram.ts
@@ -1772,6 +1805,260 @@ var PughMatrix = (_class8 = class _PughMatrix extends _chunkEEF5WRRZcjs.Chart2D
1772
1805
  }
1773
1806
  }, _class8.__initStatic8(), _class8);
1774
1807
 
1808
+ // src/charts/doecharts/SipocDiagram.ts
1809
+
1810
+ var SipocLayout = /* @__PURE__ */ ((SipocLayout2) => {
1811
+ SipocLayout2["Columns"] = "columns";
1812
+ SipocLayout2["Rows"] = "rows";
1813
+ return SipocLayout2;
1814
+ })(SipocLayout || {});
1815
+ var SipocLink = /* @__PURE__ */ ((SipocLink2) => {
1816
+ SipocLink2["Curved"] = "curved";
1817
+ SipocLink2["Straight"] = "straight";
1818
+ SipocLink2["None"] = "none";
1819
+ return SipocLink2;
1820
+ })(SipocLink || {});
1821
+ var SipocStep = /* @__PURE__ */ ((SipocStep2) => {
1822
+ SipocStep2["Chevron"] = "chevron";
1823
+ SipocStep2["Box"] = "box";
1824
+ return SipocStep2;
1825
+ })(SipocStep || {});
1826
+ var SipocOrder = /* @__PURE__ */ ((SipocOrder2) => {
1827
+ SipocOrder2["Data"] = "data-order";
1828
+ SipocOrder2["Linked"] = "linked";
1829
+ return SipocOrder2;
1830
+ })(SipocOrder || {});
1831
+ var STAGES = ["Suppliers", "Inputs", "Process", "Outputs", "Customers"];
1832
+ var PARTNERS = ["Supplies", "From", "", "To", "Receives"];
1833
+ var PROCESS = 2;
1834
+ var HEAD2 = 24;
1835
+ var NOTE3 = 10.5;
1836
+ var LEAD2 = 13;
1837
+ var LEGIBLE = 24;
1838
+ var MIN_STEP = 16;
1839
+ var MIN_STEP_WIDE = 24;
1840
+ var MIN_CELL = 50;
1841
+ var HEAVY = 1.06;
1842
+ var MAX_CELL = 150;
1843
+ var MORE = 76;
1844
+ var n = (value) => +value.toFixed(2);
1845
+ var id = (stage, name) => `${stage}\0${name}`;
1846
+ var rect = (x, y, width, height, r = 4) => {
1847
+ const w = Math.max(0, width), h = Math.max(0, height), c = Math.min(r, w / 2, h / 2);
1848
+ return `M${n(x + c)},${n(y)}h${n(w - 2 * c)}a${n(c)},${n(c)} 0 0 1 ${n(c)},${n(c)}v${n(h - 2 * c)}a${n(c)},${n(c)} 0 0 1 ${n(-c)},${n(c)}h${n(-(w - 2 * c))}a${n(c)},${n(c)} 0 0 1 ${n(-c)},${n(-c)}v${n(-(h - 2 * c))}a${n(c)},${n(c)} 0 0 1 ${n(c)},${n(-c)}Z`;
1849
+ };
1850
+ var polygon = (points) => `M${points.map(([x, y]) => `${n(x)},${n(y)}`).join("L")}Z`;
1851
+ var SipocDiagram = (_class9 = class _SipocDiagram extends _chunkEEF5WRRZcjs.Chart2D {
1852
+ static __initStatic9() {this.meta = {
1853
+ id: "sipoc-diagram",
1854
+ name: "SIPOC diagram",
1855
+ family: "flow" /* Flow */,
1856
+ dimension: 2 /* Two */,
1857
+ shape: "table" /* Table */,
1858
+ description: "Sets out suppliers, inputs, process steps, outputs and customers in five columns, with the process as a chain of steps and links from suppliers to inputs and outputs to customers. The sample coating line is invented.",
1859
+ tags: ["sipoc", "six sigma", "dmaic", "define", "process scope", "suppliers", "customers", "lean"],
1860
+ sample: (seed) => DoeSamples.sipoc(seed),
1861
+ variants: {
1862
+ layout: Object.values(SipocLayout),
1863
+ link: Object.values(SipocLink),
1864
+ step: Object.values(SipocStep),
1865
+ order: Object.values(SipocOrder)
1866
+ },
1867
+ valid: ({ link, order }) => link !== "none" /* None */ || order === "data-order" /* Data */
1868
+ }}
1869
+ defaults() {
1870
+ return { stage: "stage", item: "item", partner: "partner", layout: "columns" /* Columns */, link: "curved" /* Curved */, step: "chevron" /* Chevron */, order: "data-order" /* Data */ };
1871
+ }
1872
+ plotMargin() {
1873
+ return { top: 8, right: 16, bottom: 10, left: 16 };
1874
+ }
1875
+ legendItems() {
1876
+ return [];
1877
+ }
1878
+ /** Which of the five stages a cell names, 0 for suppliers to 4 for customers, or null: its name, plural or not, or its initial. `Step` reads as process. */
1879
+ static stage(cell) {
1880
+ const text = DoeRows.name(cell).toLowerCase();
1881
+ if (text.startsWith("step")) return PROCESS;
1882
+ const at = text.length === 1 ? "sipoc".indexOf(text) : ["sup", "in", "pro", "out", "cus"].findIndex((start) => text.startsWith(start));
1883
+ return at < 0 ? null : at;
1884
+ }
1885
+ /** The items of each stage in drawn order, and the links between suppliers and inputs and between outputs and customers. */
1886
+ get model() {
1887
+ const { stage, item, partner, order } = this.options;
1888
+ const columns = STAGES.map(() => []), ties = [];
1889
+ const rows = DoeRows.list(this.options.data).flatMap((row) => {
1890
+ const at = _SipocDiagram.stage(row[stage]), name = DoeRows.name(row[item]);
1891
+ return at === null || !name ? [] : [{ at, name, other: DoeRows.name(row[partner]) }];
1892
+ });
1893
+ const add = (at, name) => {
1894
+ if (!columns[at].includes(name)) columns[at].push(name);
1895
+ };
1896
+ for (const { at, name } of rows) add(at, name);
1897
+ for (const { at, name, other } of rows) {
1898
+ if (!other || at === PROCESS) continue;
1899
+ const side = at < PROCESS ? 0 : 3, [from, to] = at === side ? [name, other] : [other, name];
1900
+ add(side, from);
1901
+ add(side + 1, to);
1902
+ if (!ties.some((tie) => tie.side === side && tie.from === from && tie.to === to)) ties.push({ side, from, to });
1903
+ }
1904
+ if (order === "linked" /* Linked */) for (const side of [0, 3]) {
1905
+ const from = columns[side], to = columns[side + 1];
1906
+ const score = new Map(to.map((name, i) => [name, _nullishCoalesce(_d3.mean.call(void 0, ties.filter((tie) => tie.side === side && tie.to === name), (tie) => from.indexOf(tie.from)), () => ( (i + 0.5) * from.length / to.length - 0.5))]));
1907
+ to.sort((a, b) => score.get(a) - score.get(b));
1908
+ }
1909
+ return { columns, ties };
1910
+ }
1911
+ /** How many links cross another on the same seam, given the order of the items on both sides. */
1912
+ static crossings({ columns, ties }) {
1913
+ const ends = ties.map((tie) => [tie.side, columns[tie.side].indexOf(tie.from), columns[tie.side + 1].indexOf(tie.to)]);
1914
+ return ends.reduce((total, a, i) => total + ends.slice(i + 1).filter((b) => a[0] === b[0] && (a[1] - b[1]) * (a[2] - b[2]) < 0).length, 0);
1915
+ }
1916
+ /**
1917
+ * The wrapped lines of each card in a stack `room` px tall, three lines at most. When the stack is too tall the
1918
+ * tallest cards give up lines first; when it still is, the cards that fit stay and leave room for a count of the rest.
1919
+ */
1920
+ static stack(items, room, wrap) {
1921
+ const cut = (text, most2) => wrap < LEGIBLE ? [] : _chunkQ5A2TY2Acjs.FrameworkText.clamp(_chunkQ5A2TY2Acjs.FrameworkText.wrap(text, wrap, NOTE3), most2, wrap, NOTE3);
1922
+ const most = items.map((text) => Math.max(1, cut(text, 3).length)), tall = (lines) => lines * LEAD2 + 9;
1923
+ const total = () => most.reduce((sum, lines) => sum + tall(lines) + 5, -5);
1924
+ while (total() > room && most.some((lines) => lines > 1)) {
1925
+ const at = most.lastIndexOf(Math.max(...most));
1926
+ most[at] = most[at] - 1;
1927
+ }
1928
+ const all = total() <= room;
1929
+ let used = 0, shown = 0;
1930
+ for (const lines of most) {
1931
+ if (!all && used + tall(lines) > room - 14) break;
1932
+ used += tall(lines) + 5;
1933
+ shown++;
1934
+ }
1935
+ return items.slice(0, shown).map((text, i) => cut(text, most[i]));
1936
+ }
1937
+ /** The size of the five columns or bands along `length`, and where each starts: the two seams that links cross get `seam` px, the other two gaps `plain`. */
1938
+ static spans(length, seam, plain) {
1939
+ const size = Math.max(4, (length - 2 * seam - 2 * plain) / 5), gaps = [seam, plain, plain, seam];
1940
+ return { size, starts: STAGES.map((_, i) => i * size + gaps.slice(0, i).reduce((sum, gap) => sum + gap, 0)) };
1941
+ }
1942
+ /** A step's name on up to `most` lines, or its number where the name has no room. */
1943
+ static #step(text, index2, wrap, most) {
1944
+ return wrap < 30 ? [`${index2 + 1}`] : _chunkQ5A2TY2Acjs.FrameworkText.clamp(_chunkQ5A2TY2Acjs.FrameworkText.wrap(text, wrap, NOTE3), Math.max(1, most), wrap, NOTE3);
1945
+ }
1946
+ #rows(model, stage, name) {
1947
+ const partners = model.ties.filter((tie) => tie.side === (stage < PROCESS ? 0 : 3)).flatMap((tie) => stage === tie.side && tie.from === name ? [tie.to] : stage === tie.side + 1 && tie.to === name ? [tie.from] : []);
1948
+ if (stage === PROCESS) return [["Step", `${model.columns[PROCESS].indexOf(name) + 1} of ${model.columns[PROCESS].length}`]];
1949
+ return [["Column", STAGES[stage]], ...partners.length ? [[PARTNERS[stage], partners.join(", ")]] : []];
1950
+ }
1951
+ /** A stage's header. Every header prints its initial when one of the five names has no room, so they read S, I, P, O, C. */
1952
+ #head(ctx, model, stage, place, short) {
1953
+ const name = STAGES[stage];
1954
+ return { key: `head/${stage}`, sort: "head", title: name, d: rect(place.left, place.top, place.width, place.height), fill: ctx.palette.color(name), anchor: "middle", lines: [short ? name[0] : name], x: place.left + place.width / 2, y: place.top + place.height / 2 + 4, lead: LEAD2, rows: [["Items", model.columns[stage].length]] };
1955
+ }
1956
+ #columns(ctx, model) {
1957
+ const { step, link } = this.options, { palette, plot: { width, height } } = ctx;
1958
+ const plain = Math.max(6, Math.min(12, width * 0.02)), { size: wide, starts } = _SipocDiagram.spans(width, link === "none" /* None */ ? plain : Math.max(14, Math.min(34, width * 0.06)), plain);
1959
+ const wrap = wide - 14, top = HEAD2 + 8, room = Math.max(0, height - top), short = STAGES.some((name) => _chunkQ5A2TY2Acjs.FrameworkText.width(name, 11) * HEAVY > wide - 8);
1960
+ const scene = { boxes: [], notes: [], arrows: [], places: /* @__PURE__ */ new Map() };
1961
+ const more = (stage, hidden, y) => {
1962
+ if (hidden.length) scene.notes.push({ key: `more/${stage}`, text: _chunkQ5A2TY2Acjs.FrameworkText.fit(`+${hidden.length} more`, wide, NOTE3), title: hidden.join("; "), x: starts[stage] + 2, y: Math.min(height - 3, y + NOTE3) });
1963
+ };
1964
+ STAGES.forEach((name, stage) => {
1965
+ const left = starts[stage], names = model.columns[stage], fill = palette.color(name);
1966
+ scene.boxes.push(this.#head(ctx, model, stage, { left, top: 0, width: wide, height: HEAD2 }, short));
1967
+ if (stage !== PROCESS) {
1968
+ const stack = _SipocDiagram.stack(names, room, wrap);
1969
+ let y = top;
1970
+ stack.forEach((lines, i) => {
1971
+ const tall2 = Math.max(1, lines.length) * LEAD2 + 9;
1972
+ scene.boxes.push({ key: id(stage, names[i]), sort: "card", title: names[i], d: rect(left, y, wide, tall2), fill, anchor: "start", lines, x: left + 7, y: y + 5 + NOTE3 - 1, lead: LEAD2, rows: this.#rows(model, stage, names[i]) });
1973
+ scene.places.set(id(stage, names[i]), { left, top: y, width: wide, height: tall2 });
1974
+ y += tall2 + 5;
1975
+ });
1976
+ return more(stage, names.slice(stack.length), y);
1977
+ }
1978
+ const chevron = step === "chevron" /* Chevron */, between = chevron ? 3 : 12, tip = chevron ? 7 : 0;
1979
+ const fits = (count, footer) => (room - footer - tip - (count - 1) * between) / Math.max(1, count);
1980
+ const shown = fits(names.length, 0) >= MIN_STEP ? names.length : Math.max(1, Math.floor((room - 14 - tip + between) / (MIN_STEP + between)));
1981
+ const tall = Math.max(4, Math.min(48, fits(shown, shown < names.length ? 14 : 0))), point = Math.min(tip, tall * 0.3), middle = left + wide / 2;
1982
+ names.slice(0, shown).forEach((text, i) => {
1983
+ const y = top + i * (tall + between), notch = i ? point : 0, lines = _SipocDiagram.#step(text, i, wrap, Math.floor((tall - notch - 4) / LEAD2));
1984
+ const d = chevron ? polygon([[left, y], ...i ? [[middle, y + point]] : [], [left + wide, y], [left + wide, y + tall], [middle, y + tall + point], [left, y + tall]]) : rect(left, y, wide, tall);
1985
+ scene.boxes.push({ key: id(stage, text), sort: "step", title: text, d, fill, anchor: "middle", lines, x: middle, y: y + (tall + point + notch) / 2 - (lines.length - 1) * LEAD2 / 2 + 4, lead: LEAD2, rows: this.#rows(model, stage, text) });
1986
+ if (!chevron && i) scene.arrows.push(`M${n(middle)},${n(y - between + 2)}V${n(y - 6)}M${n(middle - 3.5)},${n(y - 7)}L${n(middle)},${n(y - 1.5)}L${n(middle + 3.5)},${n(y - 7)}Z`);
1987
+ });
1988
+ more(stage, names.slice(shown), top + shown * (tall + between) + point - between + 4);
1989
+ });
1990
+ return scene;
1991
+ }
1992
+ #bands(ctx, model) {
1993
+ const { step, link } = this.options, { palette, plot: { width, height } } = ctx;
1994
+ const plain = Math.max(6, Math.min(12, height * 0.03)), { size: tall, starts } = _SipocDiagram.spans(height, link === "none" /* None */ ? plain : Math.max(12, Math.min(30, height * 0.09)), plain);
1995
+ const full = Math.max(...STAGES.map((name) => _chunkQ5A2TY2Acjs.FrameworkText.width(name, 11))) * HEAVY + 16, short = width * 0.22 < full;
1996
+ const head = short ? 26 : full, start = head + 8, room = Math.max(0, width - start), most = Math.max(1, Math.floor((tall - 6) / LEAD2));
1997
+ const scene = { boxes: [], notes: [], arrows: [], places: /* @__PURE__ */ new Map() };
1998
+ STAGES.forEach((name, stage) => {
1999
+ const top = starts[stage], names = model.columns[stage], fill = palette.color(name), centre = top + tall / 2;
2000
+ scene.boxes.push(this.#head(ctx, model, stage, { left: 0, top, width: head, height: tall }, short));
2001
+ if (!names.length) return;
2002
+ const process = stage === PROCESS, chevron = process && step === "chevron" /* Chevron */, between = !process ? 6 : chevron ? 3 : 16, point = chevron ? Math.min(10, tall * 0.3) : 0, least = process ? MIN_STEP_WIDE : MIN_CELL;
2003
+ const fits = (count, footer) => (room - footer - point - (count - 1) * between) / count;
2004
+ const shown = fits(names.length, 0) >= least ? names.length : Math.max(1, Math.floor((room - MORE - point + between) / (least + between)));
2005
+ const wide = Math.max(4, Math.min(process ? 200 : MAX_CELL, fits(shown, shown < names.length ? MORE : 0)));
2006
+ names.slice(0, shown).forEach((text, i) => {
2007
+ const left = start + i * (wide + between), notch = i ? point : 0, wrap = wide - 14 - point;
2008
+ const lines = process ? _SipocDiagram.#step(text, i, wrap, most) : wrap < LEGIBLE ? [] : _chunkQ5A2TY2Acjs.FrameworkText.clamp(_chunkQ5A2TY2Acjs.FrameworkText.wrap(text, wrap, NOTE3), most, wrap, NOTE3);
2009
+ const d = chevron ? polygon([[left, top], [left + wide, top], [left + wide + point, centre], [left + wide, top + tall], [left, top + tall], ...i ? [[left + point, centre]] : []]) : rect(left, top, wide, tall);
2010
+ scene.boxes.push({
2011
+ key: id(stage, text),
2012
+ sort: process ? "step" : "card",
2013
+ title: text,
2014
+ d,
2015
+ fill,
2016
+ anchor: "middle",
2017
+ lines,
2018
+ x: left + (wide + point + notch) / 2,
2019
+ y: centre - (lines.length - 1) * LEAD2 / 2 + 4,
2020
+ lead: LEAD2,
2021
+ rows: this.#rows(model, stage, text)
2022
+ });
2023
+ scene.places.set(id(stage, text), { left, top, width: wide, height: tall });
2024
+ if (process && !chevron && i) scene.arrows.push(`M${n(left - between + 2)},${n(centre)}H${n(left - 6)}M${n(left - 7)},${n(centre - 3.5)}L${n(left - 1.5)},${n(centre)}L${n(left - 7)},${n(centre + 3.5)}Z`);
2025
+ });
2026
+ const hidden = names.slice(shown);
2027
+ if (hidden.length) scene.notes.push({ key: `more/${stage}`, text: _chunkQ5A2TY2Acjs.FrameworkText.fit(`+${hidden.length} more`, MORE - 18, NOTE3), title: hidden.join("; "), x: start + shown * (wide + between) + point + 4, y: centre + 4 });
2028
+ });
2029
+ return scene;
2030
+ }
2031
+ draw(ctx) {
2032
+ const { layout, link } = this.options, { theme, palette } = ctx;
2033
+ const model = this.model, across = layout === "columns" /* Columns */;
2034
+ for (const name of STAGES) palette.color(name);
2035
+ const filled = model.columns.some((column) => column.length);
2036
+ DoeRows.empty(ctx, filled ? null : "No items");
2037
+ const scene = !filled ? { boxes: [], notes: [], arrows: [], places: /* @__PURE__ */ new Map() } : across ? this.#columns(ctx, model) : this.#bands(ctx, model);
2038
+ const lines = link === "none" /* None */ ? [] : model.ties.flatMap(({ side, from, to }) => {
2039
+ const a = scene.places.get(id(side, from)), b = scene.places.get(id(side + 1, to));
2040
+ if (!a || !b) return [];
2041
+ const [x0, y0, x1, y1] = across ? [a.left + a.width + 1, a.top + a.height / 2, b.left - 1, b.top + b.height / 2] : [a.left + a.width / 2, a.top + a.height + 1, b.left + b.width / 2, b.top - 1];
2042
+ const bend = across ? `C${n((x0 + x1) / 2)},${n(y0)} ${n((x0 + x1) / 2)},${n(y1)} ` : `C${n(x0)},${n((y0 + y1) / 2)} ${n(x1)},${n((y0 + y1) / 2)} `;
2043
+ return [{ key: `${side}/${from}\0${to}`, from, to, color: palette.color(STAGES[side]), d: `M${n(x0)},${n(y0)}${link === "curved" /* Curved */ ? bend : "L"}${n(x1)},${n(y1)}` }];
2044
+ });
2045
+ const ties = ctx.marks("links", "path", lines, (d) => d.key).attr("fill", "none").attr("stroke", (d) => d.color).attr("stroke-width", 1.6).attr("stroke-opacity", 0.75).attr("stroke-linecap", "round");
2046
+ ctx.set(ties, { d: (d) => d.d });
2047
+ ctx.hover(ties, (d) => ({ title: `${d.from} \u2192 ${d.to}`, color: d.color }));
2048
+ const arrows = ctx.marks("axis-arrows", "path", scene.arrows).attr("fill", theme.axis).attr("stroke", theme.axis).attr("stroke-width", 1.5).attr("stroke-linejoin", "round");
2049
+ ctx.set(arrows, { d: (d) => d });
2050
+ const boxes = ctx.marks("cards", "g", scene.boxes, (d) => d.key);
2051
+ const plates = boxes.selectAll("path").data((d) => [d]).join("path").attr("fill", (d) => d.fill).attr("fill-opacity", (d) => d.sort === "card" ? 0.16 : 1);
2052
+ ctx.set(plates, { d: (d) => d.d });
2053
+ const words = boxes.selectAll("text").data((d) => [d]).join("text").attr("font-size", (d) => d.sort === "head" ? 11 : NOTE3).attr("font-weight", (d) => d.sort === "card" ? 400 : 600).attr("font-family", theme.fontFamily).attr("text-anchor", (d) => d.anchor).attr("pointer-events", "none").attr("fill", (d) => d.sort === "card" ? theme.ink : palette.inkOn(d.fill));
2054
+ _chunkQ5A2TY2Acjs.FrameworkText.write(ctx, words);
2055
+ ctx.hover(boxes, (d) => _chunkQ5A2TY2Acjs.FrameworkText.tip(d.title, d.rows, d.fill));
2056
+ const notes = ctx.text(ctx.marks("more", "text", scene.notes, (d) => d.key), NOTE3, "muted").text((d) => d.text);
2057
+ ctx.set(notes, { x: (d) => d.x, y: (d) => d.y });
2058
+ ctx.hover(notes, (d) => _chunkQ5A2TY2Acjs.FrameworkText.tip(d.title, []));
2059
+ }
2060
+ }, _class9.__initStatic9(), _class9);
2061
+
1775
2062
  // src/charts/doecharts/SpaghettiDiagram.ts
1776
2063
 
1777
2064
  var SpaghettiRouting = /* @__PURE__ */ ((SpaghettiRouting2) => {
@@ -1794,8 +2081,8 @@ var wobble = (a, b, c) => {
1794
2081
  const v = Math.sin(a * 127.1 + b * 311.7 + c * 74.7) * 43758.5453;
1795
2082
  return (v - Math.floor(v)) * 2 - 1;
1796
2083
  };
1797
- var SpaghettiDiagram = (_class9 = class extends _chunkEEF5WRRZcjs.Chart2D {
1798
- static __initStatic9() {this.meta = {
2084
+ var SpaghettiDiagram = (_class10 = class extends _chunkEEF5WRRZcjs.Chart2D {
2085
+ static __initStatic10() {this.meta = {
1799
2086
  id: "spaghetti-diagram",
1800
2087
  name: "Spaghetti diagram",
1801
2088
  family: "flow" /* Flow */,
@@ -1824,8 +2111,8 @@ var SpaghettiDiagram = (_class9 = class extends _chunkEEF5WRRZcjs.Chart2D {
1824
2111
  const { data, x, y, routing } = this.options;
1825
2112
  const stations = /* @__PURE__ */ new Map();
1826
2113
  for (const node of Array.isArray(_optionalChain([data, 'optionalAccess', _28 => _28.nodes])) ? data.nodes : []) {
1827
- const id = DoeRows.name(_optionalChain([node, 'optionalAccess', _29 => _29.id])), px = DoeRows.number(_optionalChain([node, 'optionalAccess', _30 => _30[x]])), py = DoeRows.number(_optionalChain([node, 'optionalAccess', _31 => _31[y]]));
1828
- if (id && px !== null && py !== null && !stations.has(id)) stations.set(id, { id, x: px, y: py, px: 0, py: 0, width: 0, label: id, out: 0, in: 0 });
2114
+ const id2 = DoeRows.name(_optionalChain([node, 'optionalAccess', _29 => _29.id])), px = DoeRows.number(_optionalChain([node, 'optionalAccess', _30 => _30[x]])), py = DoeRows.number(_optionalChain([node, 'optionalAccess', _31 => _31[y]]));
2115
+ if (id2 && px !== null && py !== null && !stations.has(id2)) stations.set(id2, { id: id2, x: px, y: py, px: 0, py: 0, width: 0, label: id2, out: 0, in: 0 });
1829
2116
  }
1830
2117
  const routes = /* @__PURE__ */ new Map();
1831
2118
  for (const link of Array.isArray(_optionalChain([data, 'optionalAccess', _32 => _32.links])) ? data.links : []) {
@@ -1936,7 +2223,7 @@ var SpaghettiDiagram = (_class9 = class extends _chunkEEF5WRRZcjs.Chart2D {
1936
2223
  const label = ctx.text(ctx.marks("axis-scale-name", "text", wide > 0 ? [`${DoeRows.format(length)} ${_nullishCoalesce(unit, () => ( ""))}`.trim()] : []), 10.5).attr("text-anchor", "end").text((d) => d);
1937
2224
  ctx.set(label, { x: width - wide - 6, y: height - 4 });
1938
2225
  }
1939
- }, _class9.__initStatic9(), _class9);
2226
+ }, _class10.__initStatic10(), _class10);
1940
2227
 
1941
2228
  // src/charts/doecharts/VelocityChart.ts
1942
2229
 
@@ -1953,8 +2240,8 @@ var VelocityAverage = /* @__PURE__ */ ((VelocityAverage2) => {
1953
2240
  })(VelocityAverage || {});
1954
2241
  var PLAN = "Committed";
1955
2242
  var DONE = "Completed";
1956
- var VelocityChart = (_class10 = class extends _chunkSRQSXNSPcjs.BandChart {
1957
- static __initStatic10() {this.meta = {
2243
+ var VelocityChart = (_class11 = class extends _chunkSRQSXNSPcjs.BandChart {
2244
+ static __initStatic11() {this.meta = {
1958
2245
  id: "velocity-chart",
1959
2246
  name: "Velocity chart",
1960
2247
  family: "project" /* Project */,
@@ -2041,7 +2328,7 @@ var VelocityChart = (_class10 = class extends _chunkSRQSXNSPcjs.BandChart {
2041
2328
  text: share(sprint)
2042
2329
  })) : []);
2043
2330
  }
2044
- }, _class10.__initStatic10(), _class10);
2331
+ }, _class11.__initStatic11(), _class11);
2045
2332
 
2046
2333
  // src/charts/doecharts/YamazumiChart.ts
2047
2334
  var YamazumiOrder = /* @__PURE__ */ ((YamazumiOrder2) => {
@@ -2056,8 +2343,8 @@ var YamazumiKind = /* @__PURE__ */ ((YamazumiKind2) => {
2056
2343
  return YamazumiKind2;
2057
2344
  })(YamazumiKind || {});
2058
2345
  var KINDS = Object.values(YamazumiKind);
2059
- var YamazumiChart = (_class11 = class _YamazumiChart extends _chunkSRQSXNSPcjs.BandChart {
2060
- static __initStatic11() {this.meta = {
2346
+ var YamazumiChart = (_class12 = class _YamazumiChart extends _chunkSRQSXNSPcjs.BandChart {
2347
+ static __initStatic12() {this.meta = {
2061
2348
  id: "yamazumi",
2062
2349
  name: "Yamazumi chart",
2063
2350
  family: "composition" /* Composition */,
@@ -2155,7 +2442,7 @@ var YamazumiChart = (_class11 = class _YamazumiChart extends _chunkSRQSXNSPcjs.B
2155
2442
  ctx.hover(line4, (d) => ({ title: "Takt time", rows: [["Takt", `${DoeRows.format(d)}${this.unit()}`]] }));
2156
2443
  this.endLabels(ctx, frame, totals ? this.#stacks.map((stack) => ({ key: stack.band, at: along(stack.band) + thick / 2, value: Math.max(stack.total, _nullishCoalesce(takt, () => ( 0))), text: `${DoeRows.format(stack.total)}${this.unit()}` })) : []);
2157
2444
  }
2158
- }, _class11.__initStatic11(), _class11);
2445
+ }, _class12.__initStatic12(), _class12);
2159
2446
 
2160
2447
  // src/charts/doecharts/index.ts
2161
2448
  var doechartsCatalog = [
@@ -2169,7 +2456,8 @@ var doechartsCatalog = [
2169
2456
  YamazumiChart,
2170
2457
  VelocityChart,
2171
2458
  GageRRChart,
2172
- ProcessCapabilityChart
2459
+ ProcessCapabilityChart,
2460
+ SipocDiagram
2173
2461
  ];
2174
2462
 
2175
2463
 
@@ -2212,4 +2500,9 @@ var doechartsCatalog = [
2212
2500
 
2213
2501
 
2214
2502
 
2215
- exports.AffinityLayout = AffinityLayout; exports.AffinitySort = AffinitySort; exports.AffinityLink = AffinityLink; exports.AffinityDiagram = AffinityDiagram; exports.CubePlotDesign = CubePlotDesign; exports.CubePlotCorner = CubePlotCorner; exports.CubePlotProjection = CubePlotProjection; exports.CubePlot = CubePlot; exports.GageRRView = GageRRView; exports.GageRRMetric = GageRRMetric; exports.GageRRPartLines = GageRRPartLines; exports.GageRRChart = GageRRChart; exports.HalfNormalForm = HalfNormalForm; exports.HalfNormalLimit = HalfNormalLimit; exports.HalfNormalLabels = HalfNormalLabels; exports.HalfNormalPlot = HalfNormalPlot; exports.HouseOfQualityMark = HouseOfQualityMark; exports.HouseOfQualityPriority = HouseOfQualityPriority; exports.HouseOfQuality = HouseOfQuality; exports.MainEffectsError = MainEffectsError; exports.MainEffectsOrder = MainEffectsOrder; exports.MainEffectsPlot = MainEffectsPlot; exports.CapabilityCurves = CapabilityCurves; exports.ProcessCapabilityChart = ProcessCapabilityChart; exports.PughScoring = PughScoring; exports.PughMark = PughMark; exports.PughSummary = PughSummary; exports.PughSort = PughSort; exports.PughMatrix = PughMatrix; exports.SpaghettiRouting = SpaghettiRouting; exports.SpaghettiTrace = SpaghettiTrace; exports.SpaghettiDiagram = SpaghettiDiagram; exports.VelocityForm = VelocityForm; exports.VelocityAverage = VelocityAverage; exports.VelocityChart = VelocityChart; exports.YamazumiOrder = YamazumiOrder; exports.YamazumiKind = YamazumiKind; exports.YamazumiChart = YamazumiChart; exports.doechartsCatalog = doechartsCatalog;
2503
+
2504
+
2505
+
2506
+
2507
+
2508
+ exports.AffinityLayout = AffinityLayout; exports.AffinitySort = AffinitySort; exports.AffinityLink = AffinityLink; exports.AffinityDiagram = AffinityDiagram; exports.CubePlotDesign = CubePlotDesign; exports.CubePlotCorner = CubePlotCorner; exports.CubePlotProjection = CubePlotProjection; exports.CubePlot = CubePlot; exports.GageRRView = GageRRView; exports.GageRRMetric = GageRRMetric; exports.GageRRPartLines = GageRRPartLines; exports.GageRRChart = GageRRChart; exports.HalfNormalForm = HalfNormalForm; exports.HalfNormalLimit = HalfNormalLimit; exports.HalfNormalLabels = HalfNormalLabels; exports.HalfNormalPlot = HalfNormalPlot; exports.HouseOfQualityMark = HouseOfQualityMark; exports.HouseOfQualityPriority = HouseOfQualityPriority; exports.HouseOfQuality = HouseOfQuality; exports.MainEffectsError = MainEffectsError; exports.MainEffectsOrder = MainEffectsOrder; exports.MainEffectsPlot = MainEffectsPlot; exports.CapabilityCurves = CapabilityCurves; exports.ProcessCapabilityChart = ProcessCapabilityChart; exports.PughScoring = PughScoring; exports.PughMark = PughMark; exports.PughSummary = PughSummary; exports.PughSort = PughSort; exports.PughMatrix = PughMatrix; exports.SipocLayout = SipocLayout; exports.SipocLink = SipocLink; exports.SipocStep = SipocStep; exports.SipocOrder = SipocOrder; exports.SipocDiagram = SipocDiagram; exports.SpaghettiRouting = SpaghettiRouting; exports.SpaghettiTrace = SpaghettiTrace; exports.SpaghettiDiagram = SpaghettiDiagram; exports.VelocityForm = VelocityForm; exports.VelocityAverage = VelocityAverage; exports.VelocityChart = VelocityChart; exports.YamazumiOrder = YamazumiOrder; exports.YamazumiKind = YamazumiKind; exports.YamazumiChart = YamazumiChart; exports.doechartsCatalog = doechartsCatalog;
@@ -13,7 +13,7 @@ var _chunkEEF5WRRZcjs = require('./chunk-EEF5WRRZ.cjs');
13
13
  var _chunkPY4R3IFFcjs = require('./chunk-PY4R3IFF.cjs');
14
14
 
15
15
 
16
- var _chunkUMEKIIHJcjs = require('./chunk-UMEKIIHJ.cjs');
16
+ var _chunkLNWTC72Ycjs = require('./chunk-LNWTC72Y.cjs');
17
17
 
18
18
  // src/charts/qualitycharts/QualitySamples.ts
19
19
  var round = (value, digits = 1) => +value.toFixed(digits);
@@ -22,7 +22,7 @@ var weibull = (u, shape, scale) => scale * (-Math.log(1 - open(u))) ** (1 / shap
22
22
  var QualitySamples = class {
23
23
  /** Three designs on test: `{ time, design, suspended }`. Units still running at 1,500 h are suspended there. */
24
24
  static lifeTest(seed) {
25
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
25
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
26
26
  const designs = [["Design A", 1.3, 700], ["Design B", 2.4, 950], ["Design C", 3.6, 1250]];
27
27
  const end = 1500;
28
28
  return designs.flatMap(([design, shape, scale]) => Array.from({ length: 14 + Math.floor(u() * 5) }, () => {
@@ -33,7 +33,7 @@ var QualitySamples = class {
33
33
  }
34
34
  /** A fleet of 500 units under three competing risks: early defects in 12%, random shocks and wear-out. `{ time, failed }`, ending at 9,000 h. */
35
35
  static fleet(seed) {
36
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
36
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
37
37
  const end = 9e3;
38
38
  return Array.from({ length: 500 }, () => {
39
39
  const early = u() < 0.12 ? weibull(u, 0.5, 300) : Infinity;
@@ -43,7 +43,7 @@ var QualitySamples = class {
43
43
  }
44
44
  /** Reliability growth tests of two prototypes, as power-law processes: `{ time, system, failed }`. Each ends with a row at 2,000 h with `failed` 0. */
45
45
  static growthTest(seed) {
46
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
46
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
47
47
  const end = 2e3;
48
48
  const systems = [["Prototype 1", 0.52, 26], ["Prototype 2", 0.78, 30]];
49
49
  return systems.flatMap(([system, shape, expected]) => {
@@ -58,7 +58,7 @@ var QualitySamples = class {
58
58
  }
59
59
  /** Shaft diameters: four shifts, three pieces each, measured at three positions. `{ period, piece, position, value }`. */
60
60
  static multiVari(seed) {
61
- const { n } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
61
+ const { n } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
62
62
  const positions = [["Top", 4e-3], ["Middle", 0], ["Bottom", -5e-3]];
63
63
  return ["Shift 1", "Shift 2", "Shift 3", "Shift 4"].flatMap((period, p) => {
64
64
  const drift = [0, 6e-3, -3e-3, 0.01][p] + n() * 2e-3;
@@ -70,7 +70,7 @@ var QualitySamples = class {
70
70
  }
71
71
  /** Three single sampling plans from the ANSI Z1.4 code-letter sizes: `{ plan, n, c, lot }`. */
72
72
  static plans(seed) {
73
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
73
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
74
74
  const sizes = [32, 50, 80, 125, 200];
75
75
  const first = Math.floor(u() * 2);
76
76
  return [0, 1, 2].map((i) => {
@@ -80,7 +80,7 @@ var QualitySamples = class {
80
80
  }
81
81
  /** Corrosion coupons: `{ ph, potential, coupon }`, potentials in volts against the standard hydrogen electrode. */
82
82
  static coupons(seed) {
83
- const { u, n } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
83
+ const { u, n } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
84
84
  return Array.from({ length: 10 }, (_, i) => {
85
85
  const ph = 1 + u() * 12;
86
86
  return { ph: round(ph, 2), potential: round(0.25 - 0.06 * ph + n() * 0.25, 3), coupon: `C-${i + 1}` };
@@ -88,7 +88,7 @@ var QualitySamples = class {
88
88
  }
89
89
  /** Two oxides measured by calorimetry: `{ reaction, temperature, dG }`, ΔG° in kJ per mol O₂ and temperature in °C. Centred on published Mn and Pb values. */
90
90
  static oxides(seed) {
91
- const { u, n } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
91
+ const { u, n } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
92
92
  const sets = [["2Mn + O\u2082 \u2192 2MnO", -770, 0.147], ["2Pb + O\u2082 \u2192 2PbO", -438, 0.2]];
93
93
  return sets.flatMap(([reaction, a, b]) => Array.from({ length: 7 }, (_, i) => {
94
94
  const temperature = 200 + i * 180 + u() * 60;
@@ -97,7 +97,7 @@ var QualitySamples = class {
97
97
  }
98
98
  /** Three isothermal treatments: `{ path, time, temperature }`, quenched from austenite to a hold, held, then cooled. */
99
99
  static treatments(seed) {
100
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
100
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
101
101
  const holds = [["Anneal hold", 660 + u() * 20, 2e3], ["Austemper", 340 + u() * 30, 2e4], ["Quench", 25, 0]];
102
102
  return holds.flatMap(([path, hold, length]) => {
103
103
  const points = length ? [[0.3, 780], [2, hold], [length, hold], [length * 3, 25]] : [[0.3, 780], [2, 25], [1e5, 25]];
@@ -106,13 +106,13 @@ var QualitySamples = class {
106
106
  }
107
107
  /** Two state ladders of an aromatic dye: `{ state, energy }` in eV above the ground state. */
108
108
  static dye(seed) {
109
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
109
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
110
110
  const s1 = 2.9 + 0.4 * u(), s2 = s1 + 0.9 + 0.3 * u(), t1 = s1 - 0.9 - 0.3 * u(), t2 = s1 - 0.3 - 0.15 * u();
111
111
  return [["S0", 0], ["S1", s1], ["S2", s2], ["T1", t1], ["T2", t2]].map(([state, energy]) => ({ state, energy: round(energy, 2) }));
112
112
  }
113
113
  /** Two diatomic species to compare: `{ species }`. */
114
114
  static diatomics(seed) {
115
- const { u } = _chunkUMEKIIHJcjs.SampleData.rng(seed);
115
+ const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
116
116
  const pairs = [["O2", "N2"], ["O2", "O2+"], ["N2", "CO"], ["C2", "F2"], ["O2-", "NO"], ["B2", "O2"]];
117
117
  return pairs[Math.floor(u() * pairs.length)].map((species) => ({ species }));
118
118
  }