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.
- package/CHANGELOG.md +9 -1
- package/README.md +6 -4
- package/dist/AutoGraph-PDPEAIXL.cjs +145 -0
- package/dist/GraphType.js +19 -0
- package/dist/autograph/chartIndex.js +521 -0
- package/dist/autograph/chartModules.js +2 -1
- package/dist/autograph/index.cjs +98 -93
- package/dist/catalog-DI4XZ46L.cjs +142 -0
- package/dist/catalog.js +2 -1
- package/dist/charts/biologycharts/BiologySamples.js +59 -0
- package/dist/charts/biologycharts/PunnettSquare.js +342 -0
- package/dist/charts/biologycharts/biologyEnums.js +22 -1
- package/dist/charts/biologycharts/index.js +5 -3
- package/dist/charts/doecharts/DoeSamples.js +78 -0
- package/dist/charts/doecharts/SipocDiagram.js +453 -0
- package/dist/charts/doecharts/index.js +4 -2
- package/dist/charts/fieldcharts/SpeciesAccumulationCurve.js +350 -0
- package/dist/charts/fieldcharts/fieldEnums.js +8 -1
- package/dist/charts/fieldcharts/index.js +5 -3
- package/dist/charts/signals/AntennaPatternChart.js +492 -0
- package/dist/charts/signals/SignalSamples.js +17 -0
- package/dist/charts/signals/index.js +5 -3
- package/dist/charts/softwarediagrams/ComponentDiagram.js +504 -0
- package/dist/charts/softwarediagrams/DeploymentDiagram.js +419 -0
- package/dist/charts/softwarediagrams/SoftwareSamples.js +283 -1
- package/dist/charts/softwarediagrams/index.js +7 -3
- package/dist/charts/softwarediagrams/softwareEnums.js +45 -1
- package/dist/charts/sportscharts/PowerDurationCurve.js +301 -0
- package/dist/charts/sportscharts/SportsSamples.js +102 -0
- package/dist/charts/sportscharts/TrainingLoadChart.js +325 -0
- package/dist/charts/sportscharts/index.js +6 -2
- package/dist/charts/strategycharts/BassDiffusionChart.js +362 -0
- package/dist/charts/strategycharts/BassModel.js +96 -0
- package/dist/charts/strategycharts/BurnRunwayChart.js +284 -0
- package/dist/charts/strategycharts/CapTableChart.js +366 -0
- package/dist/charts/strategycharts/KanbanBoard.js +324 -0
- package/dist/charts/strategycharts/OkrTree.js +339 -0
- package/dist/charts/strategycharts/StrategyPane.js +27 -0
- package/dist/charts/strategycharts/StrategySamples.js +251 -0
- package/dist/charts/strategycharts/index.js +15 -3
- package/dist/charts/threefields/BsfcMap3DChart.js +231 -0
- package/dist/charts/threefields/CompressorMap3DChart.js +217 -0
- package/dist/charts/threefields/FieldGrid.js +50 -0
- package/dist/charts/threefields/LossLandscape3DChart.js +201 -0
- package/dist/charts/threefields/MapSheet.js +77 -0
- package/dist/charts/threefields/TerrainRoute3DChart.js +201 -0
- package/dist/charts/threefields/TerrainRouteMath.js +40 -0
- package/dist/charts/threefields/ThreeFieldBase.js +117 -0
- package/dist/charts/threefields/ThreeFieldsSamples.js +80 -0
- package/dist/charts/threefields/WaferMap3DChart.js +218 -0
- package/dist/charts/threefields/index.js +19 -0
- package/dist/charts/threesurfaces/index.js +2 -2
- package/dist/charts/tradingcharts/KeltnerChannelChart.js +171 -0
- package/dist/charts/tradingcharts/TradingMath.js +20 -0
- package/dist/charts/tradingcharts/index.js +4 -2
- package/dist/{chunk-ZL6XDXMK.cjs → chunk-26PSLEP4.cjs} +8 -8
- package/dist/{chunk-W3US6EFP.cjs → chunk-2BO5DZUP.cjs} +12 -12
- package/dist/{chunk-5DP7OUSE.cjs → chunk-2GG5YYSC.cjs} +6 -6
- package/dist/{chunk-7FG4JSVO.cjs → chunk-2GL2VNJU.cjs} +253 -33
- package/dist/{chunk-LCWMRCLF.cjs → chunk-2PYOI7OY.cjs} +21 -21
- package/dist/{chunk-JFWJAEBD.cjs → chunk-3U4MCSKI.cjs} +4 -4
- package/dist/{chunk-CUPLHZRR.cjs → chunk-3ZMM3FSK.cjs} +4 -4
- package/dist/{chunk-L2AV62DP.cjs → chunk-4767WQJ7.cjs} +6 -6
- package/dist/{chunk-DA2EYIIP.cjs → chunk-4E7FSSBF.cjs} +1210 -168
- package/dist/{chunk-VS5LQEZB.cjs → chunk-526STI2S.cjs} +5 -5
- package/dist/{chunk-RXIMEK6C.cjs → chunk-55767YPI.cjs} +20 -20
- package/dist/{chunk-JXLSKIUV.cjs → chunk-5FBQOMMT.cjs} +26 -26
- package/dist/{chunk-27PZV5BR.cjs → chunk-5N4Z7MTS.cjs} +4 -4
- package/dist/{chunk-KEWCUIQA.cjs → chunk-5WEV6YWA.cjs} +22 -22
- package/dist/chunk-5XOVVC5X.cjs +3281 -0
- package/dist/{chunk-HK5J7Q2W.cjs → chunk-6HLXVWXU.cjs} +9 -9
- package/dist/{chunk-7JG47RW4.cjs → chunk-6LQT4WJ5.cjs} +25 -25
- package/dist/{chunk-OCVTI6X4.cjs → chunk-6YTWOUFD.cjs} +329 -36
- package/dist/{chunk-W7IQCAVN.cjs → chunk-7F6W6HKL.cjs} +11 -11
- package/dist/{chunk-F2DCJXDM.cjs → chunk-7L6KYU5A.cjs} +21 -21
- package/dist/{chunk-GTGR6LPR.cjs → chunk-A4GIN4FE.cjs} +17 -17
- package/dist/{chunk-B2CETSR6.cjs → chunk-A4US7SA7.cjs} +5 -5
- package/dist/{chunk-3DIF2YYW.cjs → chunk-AOXPBLPW.cjs} +10 -10
- package/dist/{chunk-7TTR4UF5.cjs → chunk-ATI45Z4M.cjs} +2 -2
- package/dist/{chunk-5BFCIX2V.cjs → chunk-CPPMO4IQ.cjs} +434 -148
- package/dist/{chunk-AYZZQ6AC.cjs → chunk-CZ5KGF6Q.cjs} +9 -9
- package/dist/{chunk-7THJ3ZBK.cjs → chunk-D4I35MCE.cjs} +2 -2
- package/dist/{chunk-MCPPFRLN.cjs → chunk-DCGAAN3Z.cjs} +2 -2
- package/dist/{chunk-VABL6CVX.cjs → chunk-DEY36N37.cjs} +21 -21
- package/dist/{chunk-RNCKGJCC.cjs → chunk-DXHXD3DK.cjs} +3 -3
- package/dist/{chunk-A56ZGMVZ.cjs → chunk-E7B45DBZ.cjs} +11 -11
- package/dist/{chunk-DOR6L4MT.cjs → chunk-EJC6EAC5.cjs} +18 -18
- package/dist/{chunk-UPGNM7MA.cjs → chunk-EULJOOMA.cjs} +11 -11
- package/dist/{chunk-G4AZL4GO.cjs → chunk-EYM6LEIF.cjs} +474 -70
- package/dist/{chunk-NJ4X6XGV.cjs → chunk-EZTYX2GH.cjs} +5 -5
- package/dist/chunk-FDD4UP73.cjs +521 -0
- package/dist/{chunk-WJ3VH2Q4.cjs → chunk-GEAIGM3J.cjs} +110 -615
- package/dist/{chunk-P3SBHF43.cjs → chunk-GRUYVXTS.cjs} +2 -2
- package/dist/{chunk-NX4Z5LMS.cjs → chunk-H3SZXND5.cjs} +5 -5
- package/dist/{chunk-EE4S4TOE.cjs → chunk-HS45TOFJ.cjs} +21 -21
- package/dist/chunk-INGOG6OV.cjs +899 -0
- package/dist/{chunk-UDKA6DGT.cjs → chunk-J3CDXZHF.cjs} +4 -4
- package/dist/{chunk-YO6G7TKI.cjs → chunk-JAU5ADEU.cjs} +11 -11
- package/dist/{chunk-22LBK4GA.cjs → chunk-JQEBSHX3.cjs} +4 -4
- package/dist/{chunk-RXX3U7VQ.cjs → chunk-KLXGLMFU.cjs} +10 -10
- package/dist/chunk-KVOX36J3.cjs +327 -0
- package/dist/chunk-L6BGNHFL.cjs +139 -0
- package/dist/{chunk-GMER35L3.cjs → chunk-L7TB7PU5.cjs} +20 -20
- package/dist/{chunk-AFXYNBL2.cjs → chunk-LBTRYEM2.cjs} +4 -4
- package/dist/{chunk-WYYCKIOD.cjs → chunk-LLULNJSP.cjs} +11 -11
- package/dist/{chunk-J27XOSLP.cjs → chunk-LSO46AFV.cjs} +8 -8
- package/dist/{chunk-5XJO45ES.cjs → chunk-LZ2KJ7ZX.cjs} +11 -11
- package/dist/chunk-M4IQ5LIZ.cjs +422 -0
- package/dist/{chunk-Y2KIUKJF.cjs → chunk-MPDHDKYZ.cjs} +11 -11
- package/dist/{chunk-4EMPKRZU.cjs → chunk-MRQ42ZJE.cjs} +3 -3
- package/dist/{chunk-EU5D2MF4.cjs → chunk-MYV4KZWP.cjs} +9 -9
- package/dist/{chunk-XD7KN4UN.cjs → chunk-MZXVLC24.cjs} +6 -6
- package/dist/{chunk-PPSONARU.cjs → chunk-NLBVDFIR.cjs} +41 -2
- package/dist/{chunk-L3PEGMGM.cjs → chunk-NY3TBZY4.cjs} +33 -33
- package/dist/{chunk-6YNYXXB6.cjs → chunk-OGVVSFAR.cjs} +3 -3
- package/dist/{chunk-MLV7QLB6.cjs → chunk-OMTQIQMN.cjs} +6 -6
- package/dist/{chunk-BEEOSNK7.cjs → chunk-PEJJ6TXJ.cjs} +15 -144
- package/dist/{chunk-SOKOWUF5.cjs → chunk-PPGWHIU7.cjs} +2 -2
- package/dist/{chunk-IELWOM2J.cjs → chunk-PPO6SDAN.cjs} +6 -6
- package/dist/{chunk-6JTZZCSL.cjs → chunk-PUMKX5F2.cjs} +3 -3
- package/dist/{chunk-RFOXFY2U.cjs → chunk-PXBYWCNB.cjs} +190 -799
- package/dist/{chunk-3BYXOISI.cjs → chunk-Q3HB3IX6.cjs} +4 -4
- package/dist/{chunk-RXCOVONX.cjs → chunk-RBMUOIXE.cjs} +289 -34
- package/dist/{chunk-MSBNHCSE.cjs → chunk-RJHGCUUD.cjs} +6 -6
- package/dist/{chunk-I6VG7F6Z.cjs → chunk-RSONDMYW.cjs} +708 -141
- package/dist/{chunk-GZDNPHMT.cjs → chunk-SHMPFCUE.cjs} +19 -19
- package/dist/{chunk-ZIBVCOW6.cjs → chunk-SN4FCXFC.cjs} +19 -19
- package/dist/{chunk-7KM52NMN.cjs → chunk-SN5T7WYO.cjs} +2 -2
- package/dist/{chunk-7MSZR65Z.cjs → chunk-SQJZGVDR.cjs} +7 -7
- package/dist/chunk-SYABFMD7.cjs +633 -0
- package/dist/{chunk-2RRFEYFH.cjs → chunk-TICB3MAC.cjs} +16 -16
- package/dist/{chunk-AOOKHUV5.cjs → chunk-U7Z7XYR2.cjs} +5 -5
- package/dist/{chunk-JEWQAXVG.cjs → chunk-UA2THQFV.cjs} +6 -6
- package/dist/{chunk-LHZPAHU3.cjs → chunk-VIK4L2YF.cjs} +112 -521
- package/dist/{chunk-4YWMAQ4J.cjs → chunk-VM2Y6BDY.cjs} +4 -4
- package/dist/{chunk-IRRKE2ZE.cjs → chunk-VMS3KWYI.cjs} +21 -21
- package/dist/{chunk-4SLARW6F.cjs → chunk-VU5NUD46.cjs} +17 -17
- package/dist/{chunk-XHY6TVYG.cjs → chunk-VV5CVOF7.cjs} +13 -13
- package/dist/{chunk-CCIBPGPZ.cjs → chunk-VYSAWPSS.cjs} +57 -57
- package/dist/{chunk-TTNEMQ2A.cjs → chunk-W7YRWEWQ.cjs} +22 -22
- package/dist/{chunk-C7MUOGEW.cjs → chunk-X7R5SY62.cjs} +6 -6
- package/dist/{chunk-ILR5KBMB.cjs → chunk-XOK3KTSS.cjs} +6 -6
- package/dist/{chunk-2CZM2I3T.cjs → chunk-XUIX45VU.cjs} +19 -19
- package/dist/{chunk-TGRMPS3A.cjs → chunk-XWH46PVJ.cjs} +165 -43
- package/dist/{chunk-WQYXXECR.cjs → chunk-Y5XVMK3K.cjs} +6 -6
- package/dist/{chunk-AK4TX2WG.cjs → chunk-YCNKEDTG.cjs} +13 -13
- package/dist/{chunk-PJJB24DU.cjs → chunk-YEF7SE3X.cjs} +20 -20
- package/dist/{chunk-RVLV4XW6.cjs → chunk-YMTVPMU3.cjs} +22 -22
- package/dist/data/index.cjs +2 -2
- package/dist/entries/autograph-lazy.cjs +2 -2
- package/dist/entries/charts/acoustictransport.cjs +3 -3
- package/dist/entries/charts/analysischarts.cjs +3 -3
- package/dist/entries/charts/astrocharts.cjs +3 -3
- package/dist/entries/charts/bars.cjs +3 -3
- package/dist/entries/charts/bayesiancharts.cjs +3 -3
- package/dist/entries/charts/biocharts.cjs +3 -3
- package/dist/entries/charts/biologycharts.cjs +11 -3
- package/dist/entries/charts/biologycharts.d.ts +1 -1
- package/dist/entries/charts/biologycharts.js +3 -2
- package/dist/entries/charts/business.cjs +3 -3
- package/dist/entries/charts/carecharts.cjs +3 -3
- package/dist/entries/charts/chemistrycharts.cjs +3 -3
- package/dist/entries/charts/civicscharts.cjs +3 -3
- package/dist/entries/charts/clinicalcharts.cjs +3 -3
- package/dist/entries/charts/comparison.cjs +3 -3
- package/dist/entries/charts/demography.cjs +3 -3
- package/dist/entries/charts/density.cjs +3 -3
- package/dist/entries/charts/diagrams.cjs +3 -3
- package/dist/entries/charts/distribution.cjs +3 -3
- package/dist/entries/charts/doecharts.cjs +13 -3
- package/dist/entries/charts/doecharts.d.ts +1 -1
- package/dist/entries/charts/doecharts.js +2 -1
- package/dist/entries/charts/earthscience.cjs +3 -3
- package/dist/entries/charts/economicscharts.cjs +3 -3
- package/dist/entries/charts/energycharts.cjs +3 -3
- package/dist/entries/charts/engineering.cjs +3 -3
- package/dist/entries/charts/fieldcharts.cjs +7 -3
- package/dist/entries/charts/fieldcharts.d.ts +1 -1
- package/dist/entries/charts/fieldcharts.js +3 -2
- package/dist/entries/charts/financial.cjs +3 -3
- package/dist/entries/charts/flow.cjs +3 -3
- package/dist/entries/charts/frameworks.cjs +3 -3
- package/dist/entries/charts/genomics.cjs +3 -3
- package/dist/entries/charts/geoflows.cjs +3 -3
- package/dist/entries/charts/geomaps.cjs +3 -3
- package/dist/entries/charts/geosciencecharts.cjs +3 -3
- package/dist/entries/charts/hierarchy.cjs +3 -3
- package/dist/entries/charts/indicators.cjs +3 -3
- package/dist/entries/charts/inferencecharts.cjs +3 -3
- package/dist/entries/charts/layoutcharts.cjs +3 -3
- package/dist/entries/charts/lifescience.cjs +4 -4
- package/dist/entries/charts/linesareas.cjs +3 -3
- package/dist/entries/charts/logisticscharts.cjs +3 -3
- package/dist/entries/charts/machinecharts.cjs +7 -3
- package/dist/entries/charts/machinecharts.d.ts +1 -1
- package/dist/entries/charts/machinecharts.js +2 -1
- package/dist/entries/charts/massive.cjs +3 -3
- package/dist/entries/charts/mathematical.cjs +3 -3
- package/dist/entries/charts/matrix.cjs +3 -3
- package/dist/entries/charts/medicalcharts.cjs +4 -4
- package/dist/entries/charts/mlcharts.cjs +4 -4
- package/dist/entries/charts/modelcharts.cjs +6 -5
- package/dist/entries/charts/multivariate.cjs +3 -3
- package/dist/entries/charts/musiccharts.cjs +3 -3
- package/dist/entries/charts/network.cjs +3 -3
- package/dist/entries/charts/physicscharts.cjs +3 -3
- package/dist/entries/charts/pictorial.cjs +4 -4
- package/dist/entries/charts/portfoliocharts.cjs +3 -3
- package/dist/entries/charts/productcharts.cjs +3 -3
- package/dist/entries/charts/proportion.cjs +3 -3
- package/dist/entries/charts/qualitycharts.cjs +3 -3
- package/dist/entries/charts/radial.cjs +3 -3
- package/dist/entries/charts/reliabilitycharts.cjs +5 -3
- package/dist/entries/charts/scatter.cjs +3 -3
- package/dist/entries/charts/scientific.cjs +3 -3
- package/dist/entries/charts/seriescharts.cjs +3 -3
- package/dist/entries/charts/signals.cjs +7 -3
- package/dist/entries/charts/signals.d.ts +1 -1
- package/dist/entries/charts/signals.js +2 -1
- package/dist/entries/charts/softwarediagrams.cjs +21 -3
- package/dist/entries/charts/softwarediagrams.d.ts +1 -1
- package/dist/entries/charts/softwarediagrams.js +4 -2
- package/dist/entries/charts/sportscharts.cjs +13 -3
- package/dist/entries/charts/sportscharts.d.ts +1 -1
- package/dist/entries/charts/sportscharts.js +3 -1
- package/dist/entries/charts/statistics.cjs +6 -6
- package/dist/entries/charts/strategycharts.cjs +30 -3
- package/dist/entries/charts/strategycharts.d.ts +1 -1
- package/dist/entries/charts/strategycharts.js +6 -1
- package/dist/entries/charts/structure.cjs +3 -3
- package/dist/entries/charts/surveycharts.cjs +3 -3
- package/dist/entries/charts/systemscharts.cjs +3 -3
- package/dist/entries/charts/textcharts.cjs +5 -5
- package/dist/entries/charts/thematicmaps.cjs +4 -4
- package/dist/entries/charts/threebars.cjs +3 -3
- package/dist/entries/charts/threefields.cjs +53 -0
- package/dist/entries/charts/threefields.d.ts +1 -0
- package/dist/entries/charts/threefields.js +6 -0
- package/dist/entries/charts/threeglobe.cjs +3 -3
- package/dist/entries/charts/threenetwork.cjs +3 -3
- package/dist/entries/charts/threestrata.cjs +3 -3
- package/dist/entries/charts/threesurfaces.cjs +7 -3
- package/dist/entries/charts/threesurfaces.d.ts +1 -1
- package/dist/entries/charts/threesurfaces.js +2 -1
- package/dist/entries/charts/threevolume.cjs +4 -4
- package/dist/entries/charts/timeline.cjs +3 -3
- package/dist/entries/charts/tracecharts.cjs +3 -3
- package/dist/entries/charts/trackscharts.cjs +3 -3
- package/dist/entries/charts/tradingcharts.cjs +6 -4
- package/dist/entries/charts/tradingcharts.d.ts +1 -1
- package/dist/entries/charts/tradingcharts.js +2 -1
- package/dist/entries/three.cjs +60 -20
- package/dist/entries/three.d.ts +1 -1
- package/dist/entries/three.js +7 -1
- package/dist/index.cjs +258 -97
- package/dist/index.d.cts +1953 -10
- package/dist/index.d.ts +1953 -10
- package/dist/index.js +26 -5
- package/dist/page/index.cjs +2 -2
- package/dist/react/components.js +58 -1
- package/dist/react/index.cjs +135 -92
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.js +2 -2
- package/package.json +1 -1
- package/dist/AutoGraph-XLBJQDRB.cjs +0 -140
- package/dist/catalog-O7XGDD2H.cjs +0 -137
- package/dist/chunk-77K2HTRC.cjs +0 -3220
- package/dist/chunk-XEK47TVD.cjs +0 -323
- /package/dist/{chunk-UMEKIIHJ.cjs → chunk-LNWTC72Y.cjs} +0 -0
|
@@ -18,7 +18,7 @@ var _chunkEEF5WRRZcjs = require('./chunk-EEF5WRRZ.cjs');
|
|
|
18
18
|
var _chunkPY4R3IFFcjs = require('./chunk-PY4R3IFF.cjs');
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunkLNWTC72Ycjs = require('./chunk-LNWTC72Y.cjs');
|
|
22
22
|
|
|
23
23
|
// src/charts/clinicalcharts/ClinicalRows.ts
|
|
24
24
|
var ClinicalRows = class _ClinicalRows {
|
|
@@ -193,7 +193,7 @@ var ClinicalSamples = class {
|
|
|
193
193
|
return { subject, scans, response, ongoing: !progressed && stop >= CUTOFF, stop, progressed };
|
|
194
194
|
}
|
|
195
195
|
static #cohort(seed) {
|
|
196
|
-
const { u, n } =
|
|
196
|
+
const { u, n } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
|
|
197
197
|
return Array.from({ length: PATIENTS }, (_, i) => this.#course(i, u, n));
|
|
198
198
|
}
|
|
199
199
|
/** One row per patient: best change from baseline and best overall response. */
|
|
@@ -206,7 +206,7 @@ var ClinicalSamples = class {
|
|
|
206
206
|
}
|
|
207
207
|
/** Segment rows hold `phase`, `start` and `end`; event rows hold `event` and `time`. */
|
|
208
208
|
static swimmer(seed) {
|
|
209
|
-
const { u } =
|
|
209
|
+
const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed + 7);
|
|
210
210
|
const base = { phase: null, start: null, end: null, event: null, time: null };
|
|
211
211
|
return this.#cohort(seed).slice(0, SWIMMERS).flatMap(({ subject, scans, ongoing, stop, progressed }) => {
|
|
212
212
|
const flag = { subject, ongoing: +ongoing };
|
|
@@ -225,7 +225,7 @@ var ClinicalSamples = class {
|
|
|
225
225
|
}
|
|
226
226
|
/** The CDC table in rows of `age`, `L`, `M`, `S`, then one invented girl's visits in rows of `age`, `weight`. */
|
|
227
227
|
static growth(seed) {
|
|
228
|
-
const { n } =
|
|
228
|
+
const { n } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
|
|
229
229
|
const rows = CDC_WEIGHT_GIRLS.map(([age, L, M, S]) => ({ age, L, M, S, weight: null }));
|
|
230
230
|
const reference = new LmsReference(CDC_WEIGHT_GIRLS.map(([age, l, m, s]) => ({ age, l, m, s })));
|
|
231
231
|
let z = 0.9 + n() * 0.3;
|
|
@@ -236,7 +236,7 @@ var ClinicalSamples = class {
|
|
|
236
236
|
}
|
|
237
237
|
/** One row per line of a CONSORT box. A blank `item` is the box's own total. */
|
|
238
238
|
static consort(seed) {
|
|
239
|
-
const { u } =
|
|
239
|
+
const { u } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
|
|
240
240
|
const count = (low, spread) => low + Math.floor(u() * spread);
|
|
241
241
|
const reasons = [count(58, 30), count(21, 16), count(6, 8)];
|
|
242
242
|
const arms = [{ arm: "Drug A", size: count(120, 8) }, { arm: "Placebo", size: count(118, 8) }];
|
|
@@ -17,7 +17,7 @@ var _chunkPY4R3IFFcjs = require('./chunk-PY4R3IFF.cjs');
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkLNWTC72Ycjs = require('./chunk-LNWTC72Y.cjs');
|
|
21
21
|
|
|
22
22
|
// src/charts/geomaps/GeoClasses.ts
|
|
23
23
|
var _d3 = require('d3');
|
|
@@ -268,7 +268,7 @@ var GeoLand = (_class2 = class {
|
|
|
268
268
|
static __initStatic2() {this.bundled = null}
|
|
269
269
|
/** Natural Earth 110m countries, shared by every map that needs a backdrop. */
|
|
270
270
|
static get world() {
|
|
271
|
-
return this.bundled ??=
|
|
271
|
+
return this.bundled ??= _chunkLNWTC72Ycjs.WorldSample.countries();
|
|
272
272
|
}
|
|
273
273
|
static boxes(collection) {
|
|
274
274
|
let boxes = hits.get(collection);
|
|
@@ -314,12 +314,12 @@ var GeoSamples = class _GeoSamples {
|
|
|
314
314
|
}
|
|
315
315
|
/** The 50 states and DC with demo values. */
|
|
316
316
|
static usStates(seed) {
|
|
317
|
-
const { states } =
|
|
317
|
+
const { states } = _chunkLNWTC72Ycjs.GeoAtlas;
|
|
318
318
|
return _GeoSamples.shaded({ ...states, features: states.features.filter((state) => +state.id <= 56) }, seed);
|
|
319
319
|
}
|
|
320
320
|
/** World regions with `value`, `other` and `group`; Antarctica has no data, as real datasets rarely do. */
|
|
321
321
|
static regions(seed) {
|
|
322
|
-
const world =
|
|
322
|
+
const world = _chunkLNWTC72Ycjs.WorldSample.countries(seed), noise = _chunkLNWTC72Ycjs.WorldSample.countries(seed + 7);
|
|
323
323
|
return {
|
|
324
324
|
...world,
|
|
325
325
|
features: world.features.map((feature, i) => {
|
|
@@ -356,12 +356,12 @@ var GeoSamples = class _GeoSamples {
|
|
|
356
356
|
}
|
|
357
357
|
/** Twenty cities, tagged by continent. */
|
|
358
358
|
static cities(seed) {
|
|
359
|
-
return
|
|
359
|
+
return _chunkLNWTC72Ycjs.SampleData.cities(seed).map((city) => ({ ...city, group: continent(+city.lon, +city.lat) }));
|
|
360
360
|
}
|
|
361
361
|
/** Points clustered around the cities and kept on land; `value` falls away from each centre. */
|
|
362
362
|
static scatter(seed, count) {
|
|
363
|
-
const cities =
|
|
364
|
-
const rows =
|
|
363
|
+
const cities = _chunkLNWTC72Ycjs.SampleData.cities(seed), world = GeoLand.world;
|
|
364
|
+
const rows = _chunkLNWTC72Ycjs.SampleData.points(seed, count * 4, 3).flatMap((point2, i) => {
|
|
365
365
|
const city = cities[i * 7 % cities.length];
|
|
366
366
|
const dx = (+point2.x - 20 - i % 3 * 22) * 1.3, dy = (+point2.y - 0.8 * +point2.x - 10) * 1.2;
|
|
367
367
|
const lon = +city.lon + dx, lat = +city.lat + dy;
|
|
@@ -373,8 +373,8 @@ var GeoSamples = class _GeoSamples {
|
|
|
373
373
|
}
|
|
374
374
|
/** Long-form `{ name, lon, lat, series, value }`: one row per city and series. */
|
|
375
375
|
static cityParts(seed) {
|
|
376
|
-
const parts =
|
|
377
|
-
return
|
|
376
|
+
const parts = _chunkLNWTC72Ycjs.SampleData.categories(seed, 12, 4);
|
|
377
|
+
return _chunkLNWTC72Ycjs.SampleData.cities(seed).flatMap((city, c) => [0, 1, 2, 3].map((s) => {
|
|
378
378
|
const part = parts[(c * 4 + s) % parts.length];
|
|
379
379
|
return { name: city.name, lon: city.lon, lat: city.lat, series: part.series, value: Math.round(+part.value * +city.value / 40) };
|
|
380
380
|
}));
|
|
@@ -581,12 +581,12 @@ var RegionMap = class extends GeoChart {
|
|
|
581
581
|
await super.ready();
|
|
582
582
|
const layer = this.options.geography;
|
|
583
583
|
if (!layer) return;
|
|
584
|
-
await
|
|
584
|
+
await _chunkLNWTC72Ycjs.GeoAtlas.load(layer);
|
|
585
585
|
if (this.host && layer !== this.#layer) this.render();
|
|
586
586
|
}
|
|
587
587
|
#place(layer) {
|
|
588
588
|
if (!this.#layer) this.#given ??= this.options.data;
|
|
589
|
-
const ready =
|
|
589
|
+
const ready = _chunkLNWTC72Ycjs.GeoAtlas.peek(layer);
|
|
590
590
|
if (ready) {
|
|
591
591
|
this.#layer = layer;
|
|
592
592
|
this.options = { ...this.options, data: this.adopt(ready, this.#given) };
|
|
@@ -595,7 +595,7 @@ var RegionMap = class extends GeoChart {
|
|
|
595
595
|
if (!this.#layer && !this.placeholder) this.options = { ...this.options, data: void 0 };
|
|
596
596
|
if (this.#loading === layer) return;
|
|
597
597
|
this.#loading = layer;
|
|
598
|
-
|
|
598
|
+
_chunkLNWTC72Ycjs.GeoAtlas.load(layer).then(() => {
|
|
599
599
|
this.#loading = void 0;
|
|
600
600
|
if (this.options.geography === layer && this.host) this.render();
|
|
601
601
|
}).catch((error) => {
|
|
@@ -1351,7 +1351,7 @@ var DrillDownMap = (_class12 = class extends ChoroplethBase {
|
|
|
1351
1351
|
description: "Opens each region into the regions inside it, from country to state to county, with a breadcrumb back up.",
|
|
1352
1352
|
tags: ["map", "drill", "drilldown", "hierarchy", "interactive", "zoom", "usa", "county"],
|
|
1353
1353
|
sample: (seed) => GeoSamples.usStates(seed),
|
|
1354
|
-
prepare: () =>
|
|
1354
|
+
prepare: () => _chunkLNWTC72Ycjs.GeoAtlas.load("us-counties" /* UsCounties */),
|
|
1355
1355
|
variants: {
|
|
1356
1356
|
projection: ["albers-usa" /* AlbersUsa */, "albers" /* Albers */],
|
|
1357
1357
|
classification: ["continuous" /* Continuous */, "quantile" /* Quantile */, "natural-breaks" /* NaturalBreaks */]
|
|
@@ -1376,7 +1376,7 @@ var DrillDownMap = (_class12 = class extends ChoroplethBase {
|
|
|
1376
1376
|
this.#busy = true;
|
|
1377
1377
|
try {
|
|
1378
1378
|
const { children, data, projection } = this.options;
|
|
1379
|
-
const source = _nullishCoalesce(children, () => (
|
|
1379
|
+
const source = _nullishCoalesce(children, () => ( _chunkLNWTC72Ycjs.GeoAtlas.children.bind(_chunkLNWTC72Ycjs.GeoAtlas)));
|
|
1380
1380
|
const inside2 = await source(region, this.path);
|
|
1381
1381
|
if (!_optionalChain([inside2, 'optionalAccess', _39 => _39.features, 'access', _40 => _40.length])) return false;
|
|
1382
1382
|
const frame = this.#lastFrame;
|
|
@@ -1800,7 +1800,7 @@ var ASSETS = [
|
|
|
1800
1800
|
var FloorPlanSamples = class {
|
|
1801
1801
|
/** Simulated occupancy per cent, drawn from `SampleData`. Corridors and stairs have no sensor, so no value. */
|
|
1802
1802
|
static building(seed) {
|
|
1803
|
-
const draws =
|
|
1803
|
+
const draws = _chunkLNWTC72Ycjs.SampleData.distribution(seed, ROOMS.length, 1);
|
|
1804
1804
|
return {
|
|
1805
1805
|
rooms: ROOMS.map(([level, name, points, metered = true], i) => ({
|
|
1806
1806
|
level,
|
|
@@ -2046,7 +2046,7 @@ var GraticuleMap = (_class16 = class extends RegionMap {
|
|
|
2046
2046
|
shape: "geo" /* Geo */,
|
|
2047
2047
|
description: "Draws meridians, parallels and land in any of 41 projections, to compare how each distorts the globe.",
|
|
2048
2048
|
tags: ["map", "projection", "atlas", "grid", "reference"],
|
|
2049
|
-
sample: (seed) =>
|
|
2049
|
+
sample: (seed) => _chunkLNWTC72Ycjs.WorldSample.countries(seed),
|
|
2050
2050
|
variants: { projection: GeoProjections.world, graticuleStep: [30, 15, 10] }
|
|
2051
2051
|
}}
|
|
2052
2052
|
target() {
|
|
@@ -3016,7 +3016,7 @@ var SlippyPointMap = (_class29 = class extends PointMap {
|
|
|
3016
3016
|
shape: "geo" /* Geo */,
|
|
3017
3017
|
description: "Plots places on a draggable Web Mercator map, over raster tiles or built-in vector land.",
|
|
3018
3018
|
tags: ["map", "slippy", "tiles", "web map", "openstreetmap", "basemap", "pan", "zoom", "locator"],
|
|
3019
|
-
sample: (seed) =>
|
|
3019
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.cities(seed),
|
|
3020
3020
|
variants: {
|
|
3021
3021
|
marker: ["dot" /* Dot */, "bubble" /* Bubble */, "labelled" /* Labelled */],
|
|
3022
3022
|
scaleBar: [true, false],
|
|
@@ -3268,7 +3268,7 @@ var TissotMap = (_class33 = class extends RegionMap {
|
|
|
3268
3268
|
shape: "geo" /* Geo */,
|
|
3269
3269
|
description: "Projects equal circles across the globe, shaded by area stretch against the map centre, to expose distortion.",
|
|
3270
3270
|
tags: ["map", "projection", "distortion", "indicatrix", "cartography"],
|
|
3271
|
-
sample: (seed) =>
|
|
3271
|
+
sample: (seed) => _chunkLNWTC72Ycjs.WorldSample.countries(seed),
|
|
3272
3272
|
variants: {
|
|
3273
3273
|
projection: ["mercator" /* Mercator */, "natural-earth" /* NaturalEarth */, "robinson" /* Robinson */, "equal-earth" /* EqualEarth */, "mollweide" /* Mollweide */, "winkel-tripel" /* WinkelTripel */, "equirectangular" /* Equirectangular */, "orthographic" /* Orthographic */, "azimuthal-equidistant" /* AzimuthalEquidistant */, "stereographic" /* Stereographic */, "sinusoidal" /* Sinusoidal */, "hammer" /* Hammer */],
|
|
3274
3274
|
spacing: [30, 20],
|
|
@@ -3342,7 +3342,7 @@ var UsCountyMap = (_class34 = class extends UsMapBase {
|
|
|
3342
3342
|
description: "Shades every US county, under state lines, to reveal the local pattern a state map averages away.",
|
|
3343
3343
|
tags: ["map", "usa", "united states", "county", "counties", "fips", "choropleth"],
|
|
3344
3344
|
sample: (seed) => GeoSamples.usStates(seed),
|
|
3345
|
-
prepare: () =>
|
|
3345
|
+
prepare: () => _chunkLNWTC72Ycjs.GeoAtlas.load("us-counties" /* UsCounties */),
|
|
3346
3346
|
variants: {
|
|
3347
3347
|
projection: ["albers-usa" /* AlbersUsa */, "albers" /* Albers */],
|
|
3348
3348
|
coverage: ["all" /* All */, "contiguous" /* Contiguous */],
|
|
@@ -3361,7 +3361,7 @@ var UsCountyMap = (_class34 = class extends UsMapBase {
|
|
|
3361
3361
|
return _optionalChain([given, 'optionalAccess', _86 => _86.demo]) ? GeoSamples.shaded(layer, 1) : layer;
|
|
3362
3362
|
}
|
|
3363
3363
|
finishRegions(ctx, frame, shapes) {
|
|
3364
|
-
const lines = this.options.stateLines && shapes.size() > 100 ? [
|
|
3364
|
+
const lines = this.options.stateLines && shapes.size() > 100 ? [_chunkLNWTC72Ycjs.GeoAtlas.stateBorders] : [];
|
|
3365
3365
|
ctx.marks("state-lines", "path", lines).attr("d", (d) => _nullishCoalesce(frame.path(d), () => ( ""))).attr("fill", "none").attr("stroke", ctx.theme.surface).attr("stroke-width", 1).attr("stroke-linejoin", "round").attr("pointer-events", "none");
|
|
3366
3366
|
shapes.attr("stroke-width", 0.15);
|
|
3367
3367
|
}
|
|
@@ -12,7 +12,7 @@ var _chunkEEF5WRRZcjs = require('./chunk-EEF5WRRZ.cjs');
|
|
|
12
12
|
var _chunkPY4R3IFFcjs = require('./chunk-PY4R3IFF.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkLNWTC72Ycjs = require('./chunk-LNWTC72Y.cjs');
|
|
16
16
|
|
|
17
17
|
// src/charts/financial/financeEnums.ts
|
|
18
18
|
var PriceScale = /* @__PURE__ */ ((PriceScale2) => {
|
|
@@ -869,7 +869,7 @@ var BollingerBands = (_class2 = class extends PriceChart {
|
|
|
869
869
|
shape: "table" /* Table */,
|
|
870
870
|
description: "Wraps price in bands set by rolling volatility, showing when a market is stretched or coiled.",
|
|
871
871
|
tags: ["volatility", "envelope", "percent-b", "bandwidth", "squeeze"],
|
|
872
|
-
sample: (seed) =>
|
|
872
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 110),
|
|
873
873
|
variants: {
|
|
874
874
|
average: ["simple" /* Simple */, "exponential" /* Exponential */, "weighted" /* Weighted */],
|
|
875
875
|
deviations: [2, 1],
|
|
@@ -943,7 +943,7 @@ var CandlestickChart = (_class3 = class extends PriceChart {
|
|
|
943
943
|
shape: "table" /* Table */,
|
|
944
944
|
description: "Shows open, high, low and close for each session as a body with wicks, so direction and range read at a glance.",
|
|
945
945
|
tags: ["ohlc", "japanese", "stock", "price", "hollow", "candlevolume"],
|
|
946
|
-
sample: (seed) =>
|
|
946
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 72),
|
|
947
947
|
variants: {
|
|
948
948
|
body: ["solid" /* Solid */, "hollow" /* Hollow */, "volume-width" /* VolumeWidth */],
|
|
949
949
|
overlay: ["none" /* None */, "sma" /* SMA */, "ema" /* EMA */, "vwap" /* VWAP */, "bollinger" /* Bollinger */],
|
|
@@ -976,7 +976,7 @@ var DepthChart = (_class4 = class extends _chunkXX2YTCORcjs.CartesianChart {
|
|
|
976
976
|
description: "Accumulates resting bids and asks outward from the mid price, showing where liquidity sits and how it is balanced.",
|
|
977
977
|
tags: ["order book", "bid ask", "liquidity", "ladder", "dom"],
|
|
978
978
|
sample: (seed) => {
|
|
979
|
-
const quotes =
|
|
979
|
+
const quotes = _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 80);
|
|
980
980
|
const mid = +quotes.at(-1).close;
|
|
981
981
|
return quotes.map((quote, i) => {
|
|
982
982
|
const bid = i % 2 === 0, away = (Math.floor(i / 2) + 1) * 0.12;
|
|
@@ -1252,7 +1252,7 @@ var DrawdownChart = (_class6 = class extends EquityBase {
|
|
|
1252
1252
|
shape: "table" /* Table */,
|
|
1253
1253
|
description: "Hangs losses from the running peak, so the depth and duration of every decline can be read directly.",
|
|
1254
1254
|
tags: ["underwater", "risk", "max drawdown", "portfolio"],
|
|
1255
|
-
sample: (seed) =>
|
|
1255
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.timeSeries(seed, 150, 2),
|
|
1256
1256
|
variants: {
|
|
1257
1257
|
mark: ["area" /* Area */, "line" /* Line */, "step" /* Step */],
|
|
1258
1258
|
unit: ["percent" /* Percent */, "absolute" /* Absolute */],
|
|
@@ -1349,7 +1349,7 @@ var EquityCurve = (_class7 = class extends EquityBase {
|
|
|
1349
1349
|
shape: "table" /* Table */,
|
|
1350
1350
|
description: "Tracks account value through time against a benchmark, with high-water marks and an underwater pane.",
|
|
1351
1351
|
tags: ["portfolio", "performance", "backtest", "cumulative return", "benchmark"],
|
|
1352
|
-
sample: (seed) =>
|
|
1352
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.timeSeries(seed, 150, 3),
|
|
1353
1353
|
variants: {
|
|
1354
1354
|
basis: ["rebased" /* Rebased */, "absolute" /* Absolute */, "percent" /* Percent */, "log" /* Log */],
|
|
1355
1355
|
curve: ["linear" /* Linear */, "step-after" /* StepAfter */, "monotone" /* Monotone */],
|
|
@@ -1633,7 +1633,7 @@ var HeikinAshiChart = (_class8 = class extends PriceChart {
|
|
|
1633
1633
|
shape: "table" /* Table */,
|
|
1634
1634
|
description: "Averages each session with the last to filter noise, so runs of one colour mark a sustained trend.",
|
|
1635
1635
|
tags: ["candles", "trend", "smoothed"],
|
|
1636
|
-
sample: (seed) =>
|
|
1636
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 72),
|
|
1637
1637
|
variants: {
|
|
1638
1638
|
smoothed: [false, true],
|
|
1639
1639
|
hollow: [false, true],
|
|
@@ -1668,7 +1668,7 @@ var IchimokuCloud = (_class9 = class extends PriceChart {
|
|
|
1668
1668
|
shape: "table" /* Table */,
|
|
1669
1669
|
description: "Projects a cloud of future support ahead of price, with conversion and base lines showing momentum.",
|
|
1670
1670
|
tags: ["kumo", "kinko hyo", "trend", "tenkan", "kijun"],
|
|
1671
|
-
sample: (seed) =>
|
|
1671
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 130),
|
|
1672
1672
|
variants: {
|
|
1673
1673
|
periods: ["9-26-52" /* Classic */, "7-22-44" /* Fast */, "10-30-60" /* Slow */],
|
|
1674
1674
|
mark: ["candles" /* Candles */, "line" /* Line */, "bars" /* Bars */],
|
|
@@ -1767,7 +1767,7 @@ var KagiChart = (_class10 = class extends BrickChart {constructor(...args3) { su
|
|
|
1767
1767
|
shape: "table" /* Table */,
|
|
1768
1768
|
description: "Follows price with a line that reverses only on a set move, changing weight when it breaks a prior shoulder or waist.",
|
|
1769
1769
|
tags: ["yin yang", "shoulder", "waist", "price action"],
|
|
1770
|
-
sample: (seed) =>
|
|
1770
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 240),
|
|
1771
1771
|
variants: {
|
|
1772
1772
|
method: ["atr" /* ATR */, "range" /* Range */, "percent" /* Percent */],
|
|
1773
1773
|
source: ["close" /* Close */, "high-low" /* HighLow */],
|
|
@@ -1818,7 +1818,7 @@ var LineBreakChart = (_class11 = class extends BrickChart {
|
|
|
1818
1818
|
shape: "table" /* Table */,
|
|
1819
1819
|
description: "Adds a block only on a new high or low close, and reverses only when several prior blocks are broken.",
|
|
1820
1820
|
tags: ["three line break", "kagi", "price action"],
|
|
1821
|
-
sample: (seed) =>
|
|
1821
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 180),
|
|
1822
1822
|
variants: {
|
|
1823
1823
|
lines: [3, 2, 4],
|
|
1824
1824
|
source: ["close" /* Close */, "high-low" /* HighLow */],
|
|
@@ -1891,7 +1891,7 @@ var MACDChart = (_class12 = class extends OscillatorChart {
|
|
|
1891
1891
|
shape: "table" /* Table */,
|
|
1892
1892
|
description: "Tracks the gap between fast and slow moving averages, with a histogram showing momentum building or fading.",
|
|
1893
1893
|
tags: ["momentum", "oscillator", "ppo", "histogram", "signal"],
|
|
1894
|
-
sample: (seed) =>
|
|
1894
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 120),
|
|
1895
1895
|
variants: {
|
|
1896
1896
|
periods: ["12-26-9" /* Standard */, "5-35-5" /* Fast */, "8-17-9" /* Wide */],
|
|
1897
1897
|
average: ["exponential" /* Exponential */, "simple" /* Simple */],
|
|
@@ -2102,7 +2102,7 @@ var SAMPLE_DAYS = [8, 9, 12, 13, 14];
|
|
|
2102
2102
|
var SAMPLE_BRACKETS = 13;
|
|
2103
2103
|
var time = _d3.utcFormat.call(void 0, "%H:%M");
|
|
2104
2104
|
var sampleSessions = (seed) => {
|
|
2105
|
-
const rows =
|
|
2105
|
+
const rows = _chunkLNWTC72Ycjs.SampleData.ohlc(seed, SAMPLE_DAYS.length * SAMPLE_BRACKETS);
|
|
2106
2106
|
let level = 100;
|
|
2107
2107
|
return SAMPLE_DAYS.flatMap((day, s) => {
|
|
2108
2108
|
const session = rows.slice(s * SAMPLE_BRACKETS, (s + 1) * SAMPLE_BRACKETS);
|
|
@@ -2252,7 +2252,7 @@ var OHLCChart = (_class14 = class extends PriceChart {
|
|
|
2252
2252
|
shape: "table" /* Table */,
|
|
2253
2253
|
description: "Draws each session as a high-low bar with open and close ticks, keeping dense price series precise.",
|
|
2254
2254
|
tags: ["hlc", "bar", "stock", "price"],
|
|
2255
|
-
sample: (seed) =>
|
|
2255
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 72),
|
|
2256
2256
|
variants: {
|
|
2257
2257
|
ticks: ["open-close" /* OpenClose */, "close-only" /* CloseOnly */, "range-only" /* RangeOnly */],
|
|
2258
2258
|
overlay: ["none" /* None */, "sma" /* SMA */, "ema" /* EMA */, "donchian" /* Donchian */],
|
|
@@ -2281,7 +2281,7 @@ var PayoffDiagram = (_class15 = class extends _chunkXX2YTCORcjs.CartesianChart {
|
|
|
2281
2281
|
description: "Plots profit and loss of an options position across underlying prices, marking breakevens and maximum risk.",
|
|
2282
2282
|
tags: ["options", "hockey stick", "straddle", "condor", "spread", "pnl", "breakeven"],
|
|
2283
2283
|
sample: (seed) => {
|
|
2284
|
-
const spot = Math.round(+
|
|
2284
|
+
const spot = Math.round(+_chunkLNWTC72Ycjs.SampleData.ohlc(seed, 30).at(-1).close);
|
|
2285
2285
|
return [{ type: "call", strike: spot, premium: 4.2, quantity: 1 }, { type: "call", strike: spot + 10, premium: 1.3, quantity: -1 }];
|
|
2286
2286
|
},
|
|
2287
2287
|
variants: {
|
|
@@ -2447,7 +2447,7 @@ var PointFigureChart = (_class16 = class extends BrickChart {constructor(...args
|
|
|
2447
2447
|
shape: "table" /* Table */,
|
|
2448
2448
|
description: "Records only meaningful moves as columns of X and O on a box grid, making breakouts and targets explicit.",
|
|
2449
2449
|
tags: ["p&f", "x and o", "box", "reversal"],
|
|
2450
|
-
sample: (seed) =>
|
|
2450
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 240),
|
|
2451
2451
|
variants: {
|
|
2452
2452
|
method: ["atr" /* ATR */, "range" /* Range */, "percent" /* Percent */],
|
|
2453
2453
|
reversal: [3, 2, 1],
|
|
@@ -2537,7 +2537,7 @@ var ProjectionCone = (_class17 = class extends SessionChart {
|
|
|
2537
2537
|
shape: "table" /* Table */,
|
|
2538
2538
|
description: "Extends a price forward as nested probability bands that widen with time, showing the range of plausible outcomes.",
|
|
2539
2539
|
tags: ["fan chart", "forecast", "scenario", "percentile", "risk"],
|
|
2540
|
-
sample: (seed) =>
|
|
2540
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 90),
|
|
2541
2541
|
variants: {
|
|
2542
2542
|
model: ["lognormal" /* Lognormal */, "normal" /* Normal */, "empirical" /* Empirical */],
|
|
2543
2543
|
bands: ["graded" /* Graded */, "central-50" /* Fifty */, "central-90" /* Ninety */],
|
|
@@ -2670,8 +2670,8 @@ var SYMBOLS = 6;
|
|
|
2670
2670
|
var RelativeStrengthRotationSamples = class {
|
|
2671
2671
|
/** `{ date, series, close, benchmark }`, long form, with every symbol cycling around the benchmark at its own pace. */
|
|
2672
2672
|
static prices(seed) {
|
|
2673
|
-
const benchmark =
|
|
2674
|
-
const noise =
|
|
2673
|
+
const benchmark = _chunkLNWTC72Ycjs.SampleData.ohlc(seed, BARS);
|
|
2674
|
+
const noise = _chunkLNWTC72Ycjs.SampleData.timeSeries(seed, BARS, SYMBOLS);
|
|
2675
2675
|
return noise.map((row, i) => {
|
|
2676
2676
|
const bar = i % BARS, symbol2 = Math.floor(i / BARS);
|
|
2677
2677
|
const period = 42 + symbol2 * 5, phase = symbol2 * 2.1 + seed;
|
|
@@ -2912,7 +2912,7 @@ var RenkoChart = (_class19 = class extends BrickChart {
|
|
|
2912
2912
|
shape: "table" /* Table */,
|
|
2913
2913
|
description: "Stacks fixed-size bricks as price moves, stripping out time and small fluctuations to expose trend.",
|
|
2914
2914
|
tags: ["bricks", "price action", "atr"],
|
|
2915
|
-
sample: (seed) =>
|
|
2915
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 240),
|
|
2916
2916
|
variants: {
|
|
2917
2917
|
method: ["atr" /* ATR */, "range" /* Range */, "percent" /* Percent */],
|
|
2918
2918
|
source: ["close" /* Close */, "high-low" /* HighLow */],
|
|
@@ -2950,7 +2950,7 @@ var ReturnCalendar = (_class20 = class extends _chunkEEF5WRRZcjs.Chart2D {
|
|
|
2950
2950
|
shape: "table" /* Table */,
|
|
2951
2951
|
description: "Arranges monthly or quarterly returns in a year-by-period table, with polarity colour for gains and losses.",
|
|
2952
2952
|
tags: ["monthly returns", "seasonality", "heatmap", "tearsheet"],
|
|
2953
|
-
sample: (seed) =>
|
|
2953
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 1095),
|
|
2954
2954
|
variants: {
|
|
2955
2955
|
measure: ["return" /* Return */, "excess" /* Excess */],
|
|
2956
2956
|
grain: ["monthly" /* Month */, "quarterly" /* Quarter */],
|
|
@@ -3054,7 +3054,7 @@ var RSIChart = (_class21 = class extends OscillatorChart {
|
|
|
3054
3054
|
shape: "table" /* Table */,
|
|
3055
3055
|
description: "Scores recent gains against losses from 0 to 100, flagging moves that have run too far too fast.",
|
|
3056
3056
|
tags: ["momentum", "oscillator", "overbought", "stochastic rsi", "cutler"],
|
|
3057
|
-
sample: (seed) =>
|
|
3057
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 110),
|
|
3058
3058
|
variants: {
|
|
3059
3059
|
period: [14, 7, 21],
|
|
3060
3060
|
smoothing: ["wilder" /* Wilder */, "simple" /* Simple */, "exponential" /* Exponential */],
|
|
@@ -3097,7 +3097,7 @@ var StochasticChart = (_class22 = class extends OscillatorChart {
|
|
|
3097
3097
|
shape: "table" /* Table */,
|
|
3098
3098
|
description: "Places each close within its recent high-low range, with %K and %D crossings signalling reversals.",
|
|
3099
3099
|
tags: ["momentum", "oscillator", "kd", "overbought"],
|
|
3100
|
-
sample: (seed) =>
|
|
3100
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 110),
|
|
3101
3101
|
variants: {
|
|
3102
3102
|
period: [14, 5, 21],
|
|
3103
3103
|
form: ["slow" /* Slow */, "fast" /* Fast */, "full" /* Full */],
|
|
@@ -3148,7 +3148,7 @@ var VolatilitySurface = (_class23 = class extends _chunk6KYVL5HYcjs.Chart3D {
|
|
|
3148
3148
|
description: "Maps implied volatility over strike and expiry as a 3D surface, exposing smile, skew and term structure.",
|
|
3149
3149
|
tags: ["implied volatility", "smile", "skew", "options", "term structure"],
|
|
3150
3150
|
sample: (seed) => {
|
|
3151
|
-
const { x, y, z } =
|
|
3151
|
+
const { x, y, z } = _chunkLNWTC72Ycjs.SampleData.surface(seed, 30);
|
|
3152
3152
|
const strikes = x.map((value) => +(100 + value * 40).toFixed(1)), days = y.map((value) => Math.round(30 + (value + 1) * 165));
|
|
3153
3153
|
const vols = z.map((row, j) => row.map((wobble, i) => {
|
|
3154
3154
|
const money = x[i], tenor = (y[j] + 1) / 2;
|
|
@@ -3271,7 +3271,7 @@ var VolumeBars = (_class24 = class extends SessionChart {
|
|
|
3271
3271
|
shape: "table" /* Table */,
|
|
3272
3272
|
description: "Shows volume by session, coloured by direction, as shares, notional, relative volume or on-balance volume.",
|
|
3273
3273
|
tags: ["turnover", "obv", "relative volume", "notional"],
|
|
3274
|
-
sample: (seed) =>
|
|
3274
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 80),
|
|
3275
3275
|
variants: {
|
|
3276
3276
|
measure: ["shares" /* Shares */, "notional" /* Notional */, "relative" /* Relative */, "on-balance" /* Balance */],
|
|
3277
3277
|
mark: ["bars" /* Bars */, "area" /* Area */, "lollipop" /* Lollipop */],
|
|
@@ -3380,7 +3380,7 @@ var VolumeProfile = (_class25 = class extends PriceChart {
|
|
|
3380
3380
|
shape: "table" /* Table */,
|
|
3381
3381
|
description: "Stacks traded volume on the price axis, revealing the point of control and the value area around it.",
|
|
3382
3382
|
tags: ["market profile", "poc", "value area", "vpvr", "delta"],
|
|
3383
|
-
sample: (seed) =>
|
|
3383
|
+
sample: (seed) => _chunkLNWTC72Ycjs.SampleData.ohlc(seed, 90),
|
|
3384
3384
|
variants: {
|
|
3385
3385
|
backdrop: ["candles" /* Candles */, "line" /* Line */, "bars" /* Bars */],
|
|
3386
3386
|
bins: [24, 48],
|
|
@@ -3506,7 +3506,7 @@ var YieldCurve = (_class26 = class extends _chunkXX2YTCORcjs.CartesianChart {con
|
|
|
3506
3506
|
const names = /* @__PURE__ */ new Map([["Alpha", "Today"], ["Bravo", "3M ago"], ["Charlie", "1Y ago"]]);
|
|
3507
3507
|
const tilt = /* @__PURE__ */ new Map([["Alpha", -0.32], ["Bravo", 0.05], ["Charlie", 0.42]]);
|
|
3508
3508
|
const level = /* @__PURE__ */ new Map([["Alpha", 4.9], ["Bravo", 4.1], ["Charlie", 2.9]]);
|
|
3509
|
-
return
|
|
3509
|
+
return _chunkLNWTC72Ycjs.SampleData.timeSeries(seed, TENORS.length, 3).map((row, i) => {
|
|
3510
3510
|
const years = TENORS[i % TENORS.length], name = String(row.series);
|
|
3511
3511
|
const hump = 0.5 * Math.exp(-((Math.log(years) - 1.2) ** 2));
|
|
3512
3512
|
return { tenor: tenorLabel(years), series: names.get(name), value: +(level.get(name) + tilt.get(name) * Math.log1p(years) + (name === "Alpha" ? -hump : hump) + +row.value % 1 / 12).toFixed(2) };
|
|
@@ -6,7 +6,7 @@ var _chunkEEF5WRRZcjs = require('./chunk-EEF5WRRZ.cjs');
|
|
|
6
6
|
var _chunkPY4R3IFFcjs = require('./chunk-PY4R3IFF.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkLNWTC72Ycjs = require('./chunk-LNWTC72Y.cjs');
|
|
10
10
|
|
|
11
11
|
// src/charts/demography/LexisCells.ts
|
|
12
12
|
var _d3 = require('d3');
|
|
@@ -387,7 +387,7 @@ var AGE = 64;
|
|
|
387
387
|
var YEARS = 30;
|
|
388
388
|
var AGES = 18;
|
|
389
389
|
function lexisSample(seed) {
|
|
390
|
-
const { values } =
|
|
390
|
+
const { values } = _chunkLNWTC72Ycjs.SampleData.matrix(seed, AGES, YEARS);
|
|
391
391
|
const hazard = (year, age, cohort) => 0.018 * Math.exp(0.09 * (age - AGE)) * Math.exp(-0.014 * (year - YEAR)) * (Math.abs(cohort - 1918) <= 1 ? 1.25 : 1);
|
|
392
392
|
const rows = values.flatMap((line, a) => line.flatMap((noise, y) => {
|
|
393
393
|
const year = YEAR + y, age = AGE + a;
|
|
@@ -396,7 +396,7 @@ function lexisSample(seed) {
|
|
|
396
396
|
return { year, age, cohort, deaths: Math.round(exposure * hazard(year, age + (upper ? 0.67 : 0.33), cohort) * Math.exp(0.04 * noise)), exposure };
|
|
397
397
|
});
|
|
398
398
|
}));
|
|
399
|
-
const lives =
|
|
399
|
+
const lives = _chunkLNWTC72Ycjs.SampleData.points(seed, 12).map(({ x, y, size }) => {
|
|
400
400
|
const birth = +(1896 + x * 0.8).toFixed(2), died = birth + 64 + y * 0.4;
|
|
401
401
|
return { birth, exit: +Math.min(died, YEAR + YEARS - 0.5).toFixed(2), event: died < YEAR + YEARS - 0.5 && size > 8 ? 1 : 0 };
|
|
402
402
|
});
|
|
@@ -872,7 +872,7 @@ var Nomogram = (_class2 = class extends _chunkEEF5WRRZcjs.Chart2D {
|
|
|
872
872
|
}
|
|
873
873
|
}, _class2.__initStatic2(), _class2);
|
|
874
874
|
function nomogramSample(seed) {
|
|
875
|
-
const rows =
|
|
875
|
+
const rows = _chunkLNWTC72Ycjs.SampleData.categories(seed, 7, 8);
|
|
876
876
|
const places = [...new Set(rows.map((row) => row.category))];
|
|
877
877
|
return places.map((place) => {
|
|
878
878
|
const [a, b, c, d, e, f, g, h] = rows.filter((row) => row.category === place).map((row) => (row.value - 20) / 80);
|
|
@@ -9,7 +9,7 @@ var _chunkEEF5WRRZcjs = require('./chunk-EEF5WRRZ.cjs');
|
|
|
9
9
|
var _chunkPY4R3IFFcjs = require('./chunk-PY4R3IFF.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkLNWTC72Ycjs = require('./chunk-LNWTC72Y.cjs');
|
|
13
13
|
|
|
14
14
|
// src/charts/engineering/EngineeringChart.ts
|
|
15
15
|
var _d3 = require('d3');
|
|
@@ -281,7 +281,7 @@ var TransferFunction = class _TransferFunction {
|
|
|
281
281
|
}
|
|
282
282
|
/** Two stable third-order loops derived from sample points, with low-frequency gain above 0 dB. */
|
|
283
283
|
static demoLoops(seed, count = 2) {
|
|
284
|
-
const rows =
|
|
284
|
+
const rows = _chunkLNWTC72Ycjs.SampleData.points(seed, count * 4, count);
|
|
285
285
|
return Array.from({ length: count }, (_, g) => {
|
|
286
286
|
const [a, b, c, d] = rows.filter((_2, i) => i % count === g).map(unit);
|
|
287
287
|
const corners = [0.4 + 0.5 * a, 1.6 + 2 * b, 6 + 8 * c];
|
|
@@ -296,7 +296,7 @@ var TransferFunction = class _TransferFunction {
|
|
|
296
296
|
}
|
|
297
297
|
/** A loop with an integrator, a resonant pair and a zero, as pole-zero rows. */
|
|
298
298
|
static demoPoles(seed) {
|
|
299
|
-
const [a, b, c, d] =
|
|
299
|
+
const [a, b, c, d] = _chunkLNWTC72Ycjs.SampleData.points(seed, 4, 1).map(unit);
|
|
300
300
|
const pair = [-1 - a, 1.2 + 2 * b];
|
|
301
301
|
const poles = [[0, 0], pair, [pair[0], -pair[1]], [-6 - 2 * c, 0]];
|
|
302
302
|
return [
|
|
@@ -491,7 +491,7 @@ function lattice(modulation) {
|
|
|
491
491
|
}
|
|
492
492
|
function sampleSymbols(seed) {
|
|
493
493
|
const ideal = lattice("16qam" /* Qam16 */);
|
|
494
|
-
return
|
|
494
|
+
return _chunkLNWTC72Ycjs.SampleData.points(seed, 600, 1).map((row, n) => {
|
|
495
495
|
const n1 = (+row.x - 20) / 8, n2 = (+row.y - +row.x * 0.8 - 10) / 9;
|
|
496
496
|
const [a, b] = ideal[(n * 7 + Math.floor(+row.size * 10)) % 16];
|
|
497
497
|
return { i: +(a + n1 * 0.045).toFixed(4), q: +(b + n2 * 0.045).toFixed(4) };
|
|
@@ -601,8 +601,8 @@ var COLUMNS = 120;
|
|
|
601
601
|
var ROWS = 70;
|
|
602
602
|
var TRACE_LIMIT = 300;
|
|
603
603
|
function sampleWaveform(seed) {
|
|
604
|
-
const bits =
|
|
605
|
-
const noise =
|
|
604
|
+
const bits = _chunkLNWTC72Ycjs.SampleData.distribution(seed, 200, 1).map((row) => +row.value > 40 ? 1 : 0);
|
|
605
|
+
const noise = _chunkLNWTC72Ycjs.SampleData.distribution(seed + 1, 397, 1).map((row) => (+row.value - 40) / 8);
|
|
606
606
|
const perBit = 24;
|
|
607
607
|
let level = 0;
|
|
608
608
|
return bits.flatMap((bit, b) => Array.from({ length: perBit }, (_, i) => {
|
|
@@ -753,7 +753,7 @@ var FatigueFit = /* @__PURE__ */ ((FatigueFit2) => {
|
|
|
753
753
|
var REGIMES = [{ key: "Low cycle", from: 0, to: 1e4 }, { key: "High cycle", from: 1e4, to: 1e7 }, { key: "Very high", from: 1e7, to: Infinity }];
|
|
754
754
|
function sampleTests(seed) {
|
|
755
755
|
const levels2 = [1, 0.85, 0.72, 0.6, 0.5, 0.42, 0.36, 0.3];
|
|
756
|
-
return
|
|
756
|
+
return _chunkLNWTC72Ycjs.SampleData.points(seed, 48, 2).map((row, i) => {
|
|
757
757
|
const steel = i % 2 === 0, top = steel ? 720 : 420, strength = steel ? 1200 : 780, slope = steel ? -0.1 : -0.12;
|
|
758
758
|
const stress = top * levels2[(i >> 1) % 8];
|
|
759
759
|
const life = (stress / strength) ** (1 / slope) * 10 ** ((+row.y - +row.x * 0.8 - 10) / 9 * 0.22);
|
|
@@ -862,7 +862,7 @@ var GoodmanLayout = /* @__PURE__ */ ((GoodmanLayout2) => {
|
|
|
862
862
|
GoodmanLayout2["Smith"] = "smith";
|
|
863
863
|
return GoodmanLayout2;
|
|
864
864
|
})(GoodmanLayout || {});
|
|
865
|
-
var sampleLoads = (seed) =>
|
|
865
|
+
var sampleLoads = (seed) => _chunkLNWTC72Ycjs.SampleData.points(seed, 9, 3).map((row, i) => ({
|
|
866
866
|
series: ["Static bias", "Cyclic", "Shock"][i % 3],
|
|
867
867
|
mean: +(+row.x * (2.6 + i % 3)).toFixed(0),
|
|
868
868
|
amplitude: +(+row.y * (1 + 0.5 * (i % 3)) + 40).toFixed(0)
|
|
@@ -984,7 +984,7 @@ var GoodmanDiagram = (_class5 = class extends EngineeringChart {
|
|
|
984
984
|
// src/charts/engineering/HysteresisLoopChart.ts
|
|
985
985
|
var MU0 = 4e-7 * Math.PI;
|
|
986
986
|
function sampleLoops(seed) {
|
|
987
|
-
const trims =
|
|
987
|
+
const trims = _chunkLNWTC72Ycjs.SampleData.categories(seed, 2, 1).map((row) => 0.9 + (+row.value - 20) / 400);
|
|
988
988
|
const materials = [["Silicon steel", 1.7, 90, 110, 900], ["Ferrite", 0.42, 28, 45, 900]];
|
|
989
989
|
return materials.flatMap(([material, saturation, coercive, knee, top], m) => {
|
|
990
990
|
const hc = coercive * trims[m], branch = (h, side) => saturation * Math.tanh((h + side * hc) / knee) + MU0 * h;
|
|
@@ -1108,7 +1108,7 @@ var IVQuadrant = /* @__PURE__ */ ((IVQuadrant2) => {
|
|
|
1108
1108
|
return IVQuadrant2;
|
|
1109
1109
|
})(IVQuadrant || {});
|
|
1110
1110
|
function sampleCell(seed) {
|
|
1111
|
-
const trims =
|
|
1111
|
+
const trims = _chunkLNWTC72Ycjs.SampleData.categories(seed, 4, 1).map((row) => 0.97 + (+row.value - 20) / 1300);
|
|
1112
1112
|
return [1e3, 800, 500, 200].flatMap((irradiance, c) => {
|
|
1113
1113
|
const light = 9.2 * (irradiance / 1e3) * trims[c], saturation = 2e-9, thermal = 0.0257 * 1.2 * 60, series = 0.25, shunt = 280;
|
|
1114
1114
|
return Array.from({ length: 81 }, (_, i) => {
|
|
@@ -1268,8 +1268,8 @@ var unit2 = (values) => {
|
|
|
1268
1268
|
return values.map((value) => (value - low) / (high - low || 1));
|
|
1269
1269
|
};
|
|
1270
1270
|
function sampleLoadDuration(seed) {
|
|
1271
|
-
const { n } =
|
|
1272
|
-
const walks =
|
|
1271
|
+
const { n } = _chunkLNWTC72Ycjs.SampleData.rng(seed);
|
|
1272
|
+
const walks = _chunkLNWTC72Ycjs.SampleData.timeSeries(seed, 365, 2).map((row) => +row.value);
|
|
1273
1273
|
const demand = unit2(walks.slice(0, 365)), wind = unit2(walks.slice(365));
|
|
1274
1274
|
return Array.from({ length: 8760 }, (_, hour) => {
|
|
1275
1275
|
const day = Math.floor(hour / 24), clock = hour % 24;
|
|
@@ -1417,7 +1417,7 @@ var LoadLineSet = /* @__PURE__ */ ((LoadLineSet2) => {
|
|
|
1417
1417
|
return LoadLineSet2;
|
|
1418
1418
|
})(LoadLineSet || {});
|
|
1419
1419
|
function sampleCurves(seed) {
|
|
1420
|
-
const trims =
|
|
1420
|
+
const trims = _chunkLNWTC72Ycjs.SampleData.categories(seed, 5, 1).map((row) => 0.92 + (+row.value - 20) / 500);
|
|
1421
1421
|
return [2.5, 3, 3.5, 4, 4.5].flatMap((vgs, c) => Array.from({ length: 61 }, (_, i) => {
|
|
1422
1422
|
const voltage = i * 0.25, drive = vgs - 2, saturated = voltage >= drive;
|
|
1423
1423
|
const current = 12 * trims[c] * (saturated ? drive * drive : 2 * drive * voltage - voltage * voltage) * (1 + 0.012 * voltage);
|
|
@@ -1544,7 +1544,7 @@ var MohrShearAxis = /* @__PURE__ */ ((MohrShearAxis2) => {
|
|
|
1544
1544
|
MohrShearAxis2["Down"] = "shear-down";
|
|
1545
1545
|
return MohrShearAxis2;
|
|
1546
1546
|
})(MohrShearAxis || {});
|
|
1547
|
-
var sampleStresses = (seed) =>
|
|
1547
|
+
var sampleStresses = (seed) => _chunkLNWTC72Ycjs.SampleData.points(seed, 2, 2).map((row, i) => ({
|
|
1548
1548
|
element: i ? "Weld toe" : "Fillet",
|
|
1549
1549
|
sigmaX: +(+row.x * (i ? 0.8 : 1.6)).toFixed(1),
|
|
1550
1550
|
sigmaY: +(+row.y * (i ? -0.5 : 0.4) - 10).toFixed(1),
|
|
@@ -1703,7 +1703,7 @@ var ISOTHERMS = [200, 300, 400, 500, 600];
|
|
|
1703
1703
|
var QUALITIES = [0.2, 0.4, 0.6, 0.8];
|
|
1704
1704
|
var DOME = Array.from({ length: 40 }, (_, i) => 10 + i * 364.14 / 39);
|
|
1705
1705
|
function sampleRankine(seed) {
|
|
1706
|
-
const [a, b] =
|
|
1706
|
+
const [a, b] = _chunkLNWTC72Ycjs.SampleData.points(seed, 2, 1).map((row) => (+row.size - 3) / 30);
|
|
1707
1707
|
const boiler = 80 + 40 * a, top = 500 + 60 * b, condenser = 0.1;
|
|
1708
1708
|
const cold = SteamModel.saturationTemperature(condenser), hot = SteamModel.saturationTemperature(boiler);
|
|
1709
1709
|
const liquid = SteamModel.wet(cold, 0), inlet = SteamModel.superheated(boiler, top);
|
|
@@ -1830,7 +1830,7 @@ function colebrook(re, rough) {
|
|
|
1830
1830
|
var LAWS = { ["colebrook" /* Colebrook */]: colebrook, ["haaland" /* Haaland */]: haaland, ["swamee-jain" /* SwameeJain */]: swamee };
|
|
1831
1831
|
function samplePipes(seed) {
|
|
1832
1832
|
const pipes = [["Drawn copper", 1e-4], ["Commercial steel", 1e-3], ["Cast iron", 0.01]];
|
|
1833
|
-
return
|
|
1833
|
+
return _chunkLNWTC72Ycjs.SampleData.points(seed, 30, 3).map((row, i) => {
|
|
1834
1834
|
const [pipe, rough] = pipes[i % 3], reynolds = 10 ** (4.2 + (+row.size - 3) / 30 * 3);
|
|
1835
1835
|
return { pipe, reynolds: Math.round(reynolds), friction: +(colebrook(reynolds, rough) * (1 + (+row.y - +row.x * 0.8 - 10) / 9 * 0.03)).toFixed(5) };
|
|
1836
1836
|
});
|
|
@@ -2340,7 +2340,7 @@ var pressureAt = (elevation) => 101.325 * (1 - 225577e-10 * elevation) ** 5.2559
|
|
|
2340
2340
|
var ratioOf = (vapour, pressure) => 0.62198 * vapour / (pressure - vapour);
|
|
2341
2341
|
var enthalpyRatio = (h, t) => (h - 1.006 * t) / (2501 + 1.86 * t);
|
|
2342
2342
|
function sampleProcess(seed) {
|
|
2343
|
-
const [a, b] =
|
|
2343
|
+
const [a, b] = _chunkLNWTC72Ycjs.SampleData.points(seed, 2, 1).map((row) => (+row.size - 3) / 30);
|
|
2344
2344
|
const state = (temperature, humidity, process) => ({ temperature, humidityRatio: +ratioOf(humidity / 100 * saturationPressure(temperature), 101.325).toFixed(5), process });
|
|
2345
2345
|
const outdoor = 32 + 4 * a, indoor = 24 + b, mixed = (outdoor + 2 * indoor) / 3;
|
|
2346
2346
|
return [
|
|
@@ -2461,7 +2461,7 @@ var PumpArrangement = /* @__PURE__ */ ((PumpArrangement2) => {
|
|
|
2461
2461
|
})(PumpArrangement || {});
|
|
2462
2462
|
var LEVELS = [0.6, 0.7, 0.76];
|
|
2463
2463
|
function samplePump(seed) {
|
|
2464
|
-
const [a, b] =
|
|
2464
|
+
const [a, b] = _chunkLNWTC72Ycjs.SampleData.points(seed, 2, 1).map((row) => (+row.size - 3) / 30);
|
|
2465
2465
|
const shutoff = 46 + 8 * a, reach = 300 + 60 * b;
|
|
2466
2466
|
return [1, 0.87, 0.74].flatMap((ratio) => Array.from({ length: 41 }, (_, i) => {
|
|
2467
2467
|
const share2 = 0.02 + i / 40 * 0.98, flow = share2 * reach * ratio, head = (shutoff - shutoff * 0.8 * share2 ** 2.1 + 3 * share2) * ratio * ratio;
|
|
@@ -2694,7 +2694,7 @@ var cascade = (m, n) => [
|
|
|
2694
2694
|
add(mul(m[2], n[1]), mul(m[3], n[3]))
|
|
2695
2695
|
];
|
|
2696
2696
|
function sampleSParameters(seed) {
|
|
2697
|
-
const [a, b] =
|
|
2697
|
+
const [a, b] = _chunkLNWTC72Ycjs.SampleData.points(seed, 2, 1).map((row) => (+row.size - 3) / 30);
|
|
2698
2698
|
const center = 2e9 * (0.95 + 0.1 * a), fraction = 0.25, z0 = 50, w0 = 2 * Math.PI * center;
|
|
2699
2699
|
const sections = [{ g: 1, series: true }, { g: 2 * (0.92 + 0.16 * b), series: false }, { g: 1.15, series: true }];
|
|
2700
2700
|
return Array.from({ length: 161 }, (_, i) => 1e9 + i * 125e5).flatMap((frequency) => {
|
|
@@ -2979,7 +2979,7 @@ var StepHold = /* @__PURE__ */ ((StepHold2) => {
|
|
|
2979
2979
|
return StepHold2;
|
|
2980
2980
|
})(StepHold || {});
|
|
2981
2981
|
function sampleSteps(seed) {
|
|
2982
|
-
const rows =
|
|
2982
|
+
const rows = _chunkLNWTC72Ycjs.SampleData.points(seed, 4, 2).map((row) => (+row.size - 3) / 30);
|
|
2983
2983
|
return [[0.22 + 0.12 * rows[0], 1.8 + rows[1], "Underdamped"], [0.55 + 0.2 * rows[2], 1.6 + rows[3], "Tuned"]].flatMap(([zeta, wn, system]) => {
|
|
2984
2984
|
const z = zeta, w = wn, wd = w * Math.sqrt(1 - z * z);
|
|
2985
2985
|
return Array.from({ length: 161 }, (_, i) => {
|
|
@@ -3079,7 +3079,7 @@ var StressRange = /* @__PURE__ */ ((StressRange2) => {
|
|
|
3079
3079
|
})(StressRange || {});
|
|
3080
3080
|
var MATERIALS = [["Alloy steel", 205e3, 620, 800, 0.11, 0.17], ["Mild steel", 2e5, 300, 440, 0.2, 0.32], ["Al 6061-T6", 69e3, 275, 315, 0.09, 0.15]];
|
|
3081
3081
|
function sampleTensile(seed) {
|
|
3082
|
-
const trims =
|
|
3082
|
+
const trims = _chunkLNWTC72Ycjs.SampleData.categories(seed, 3, 1).map((row) => 0.96 + (+row.value - 20) / 1e3);
|
|
3083
3083
|
return MATERIALS.flatMap(([material, modulus, yieldStress, ultimate, uniform, fracture], m) => {
|
|
3084
3084
|
const trim = trims[m], yieldStrain = yieldStress * trim / modulus;
|
|
3085
3085
|
return Array.from({ length: 180 }, (_, i) => {
|
|
@@ -3179,7 +3179,7 @@ var ThermalRender = /* @__PURE__ */ ((ThermalRender2) => {
|
|
|
3179
3179
|
})(ThermalRender || {});
|
|
3180
3180
|
var PROFILE = [[0, 25], [90, 150], [180, 190], [235, 246], [255, 246], [305, 120], [345, 60]];
|
|
3181
3181
|
function sampleReflow(seed) {
|
|
3182
|
-
const trims =
|
|
3182
|
+
const trims = _chunkLNWTC72Ycjs.SampleData.categories(seed, 4, 1).map((row) => (+row.value - 60) / 40);
|
|
3183
3183
|
const curve = (moment) => {
|
|
3184
3184
|
const t = Math.max(0, Math.min(PROFILE[PROFILE.length - 1][0], moment));
|
|
3185
3185
|
const i = Math.max(1, PROFILE.findIndex((p) => p[0] >= t));
|