schematex 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/ai-sdk.cjs +25 -25
- package/dist/ai/ai-sdk.d.cts +1 -1
- package/dist/ai/ai-sdk.d.ts +1 -1
- package/dist/ai/ai-sdk.js +20 -20
- package/dist/ai/index.cjs +28 -28
- package/dist/ai/index.d.cts +1 -1
- package/dist/ai/index.d.ts +1 -1
- package/dist/ai/index.js +20 -20
- package/dist/browser.cjs +22 -22
- package/dist/browser.js +20 -20
- package/dist/{chunk-TYCHEOQX.js → chunk-2J2QWNGI.js} +26 -20
- package/dist/chunk-2J2QWNGI.js.map +1 -0
- package/dist/{chunk-MCFQAUQV.cjs → chunk-2UJAVPA4.cjs} +58 -39
- package/dist/chunk-2UJAVPA4.cjs.map +1 -0
- package/dist/{chunk-5AEN2PLB.cjs → chunk-3YXXZ4LT.cjs} +33 -33
- package/dist/{chunk-5AEN2PLB.cjs.map → chunk-3YXXZ4LT.cjs.map} +1 -1
- package/dist/{chunk-RP5UATRA.js → chunk-56LXBM45.js} +4 -4
- package/dist/{chunk-RP5UATRA.js.map → chunk-56LXBM45.js.map} +1 -1
- package/dist/{chunk-OC22GGQN.js → chunk-6BKUD5EJ.js} +54 -4
- package/dist/chunk-6BKUD5EJ.js.map +1 -0
- package/dist/{chunk-ULYRO2KY.cjs → chunk-75BMFCP5.cjs} +44 -44
- package/dist/{chunk-ULYRO2KY.cjs.map → chunk-75BMFCP5.cjs.map} +1 -1
- package/dist/{chunk-ZNDIGQJD.js → chunk-7BEJHG43.js} +3 -3
- package/dist/{chunk-ZNDIGQJD.js.map → chunk-7BEJHG43.js.map} +1 -1
- package/dist/{chunk-WYFXOXVK.cjs → chunk-7MVDN5UC.cjs} +35 -35
- package/dist/{chunk-WYFXOXVK.cjs.map → chunk-7MVDN5UC.cjs.map} +1 -1
- package/dist/{chunk-JDTB7IKL.js → chunk-BJ65PKDU.js} +3 -3
- package/dist/{chunk-JDTB7IKL.js.map → chunk-BJ65PKDU.js.map} +1 -1
- package/dist/{chunk-FE6GAUNW.js → chunk-BJWMPPEA.js} +5 -5
- package/dist/{chunk-FE6GAUNW.js.map → chunk-BJWMPPEA.js.map} +1 -1
- package/dist/{chunk-MJGDP3CS.cjs → chunk-BUN3CRMP.cjs} +488 -109
- package/dist/chunk-BUN3CRMP.cjs.map +1 -0
- package/dist/{chunk-COLTVQWR.cjs → chunk-C3IVD7DI.cjs} +25 -25
- package/dist/{chunk-COLTVQWR.cjs.map → chunk-C3IVD7DI.cjs.map} +1 -1
- package/dist/{chunk-3YZ6FPQW.cjs → chunk-EYHD7LV3.cjs} +131 -131
- package/dist/{chunk-3YZ6FPQW.cjs.map → chunk-EYHD7LV3.cjs.map} +1 -1
- package/dist/{chunk-UGCUNADI.js → chunk-F6OROIHS.js} +35 -16
- package/dist/chunk-F6OROIHS.js.map +1 -0
- package/dist/{chunk-3FKS4KQK.cjs → chunk-GYTWJ6VB.cjs} +65 -59
- package/dist/chunk-GYTWJ6VB.cjs.map +1 -0
- package/dist/{chunk-VLMK7MQK.js → chunk-H4CJTKEH.js} +23 -4
- package/dist/chunk-H4CJTKEH.js.map +1 -0
- package/dist/{chunk-45KP67RR.js → chunk-HIQPEAL7.js} +5 -5
- package/dist/chunk-HIQPEAL7.js.map +1 -0
- package/dist/{chunk-NB56L5QK.js → chunk-IT2TVXC7.js} +4 -4
- package/dist/{chunk-NB56L5QK.js.map → chunk-IT2TVXC7.js.map} +1 -1
- package/dist/{chunk-2JDVJRR3.cjs → chunk-K5QG53GT.cjs} +28 -28
- package/dist/chunk-K5QG53GT.cjs.map +1 -0
- package/dist/{chunk-B37IKTI7.cjs → chunk-KUXOHLGC.cjs} +97 -47
- package/dist/chunk-KUXOHLGC.cjs.map +1 -0
- package/dist/{chunk-A5D2IMOX.cjs → chunk-L2KUGWFR.cjs} +47 -47
- package/dist/{chunk-A5D2IMOX.cjs.map → chunk-L2KUGWFR.cjs.map} +1 -1
- package/dist/{chunk-HDKDQAEQ.cjs → chunk-LFZZ4NCP.cjs} +14 -2
- package/dist/chunk-LFZZ4NCP.cjs.map +1 -0
- package/dist/{chunk-U6L3FAML.js → chunk-M3R6RCXY.js} +3 -3
- package/dist/{chunk-U6L3FAML.js.map → chunk-M3R6RCXY.js.map} +1 -1
- package/dist/{chunk-5YYAYW67.js → chunk-M5ZC3LFJ.js} +3 -3
- package/dist/{chunk-5YYAYW67.js.map → chunk-M5ZC3LFJ.js.map} +1 -1
- package/dist/{chunk-B6INLQBU.cjs → chunk-MKKFIPKU.cjs} +46 -46
- package/dist/{chunk-B6INLQBU.cjs.map → chunk-MKKFIPKU.cjs.map} +1 -1
- package/dist/{chunk-M5B2UUNW.js → chunk-NFT6VW73.js} +4 -4
- package/dist/{chunk-M5B2UUNW.js.map → chunk-NFT6VW73.js.map} +1 -1
- package/dist/{chunk-X7RPFTTR.cjs → chunk-OK5RYX55.cjs} +26 -26
- package/dist/{chunk-X7RPFTTR.cjs.map → chunk-OK5RYX55.cjs.map} +1 -1
- package/dist/{chunk-NNU4RGT3.js → chunk-RNGYXGHS.js} +39 -27
- package/dist/chunk-RNGYXGHS.js.map +1 -0
- package/dist/{chunk-SQKLKBBK.cjs → chunk-RODV6PC4.cjs} +25 -6
- package/dist/chunk-RODV6PC4.cjs.map +1 -0
- package/dist/{chunk-H2OEUBPO.js → chunk-SE23X5OE.js} +441 -62
- package/dist/chunk-SE23X5OE.js.map +1 -0
- package/dist/{chunk-FCGHV6ZK.js → chunk-SFSZUOFT.js} +4 -4
- package/dist/{chunk-FCGHV6ZK.js.map → chunk-SFSZUOFT.js.map} +1 -1
- package/dist/{chunk-NZH4GWE6.cjs → chunk-UK7JF5QB.cjs} +37 -37
- package/dist/{chunk-NZH4GWE6.cjs.map → chunk-UK7JF5QB.cjs.map} +1 -1
- package/dist/{chunk-QSQX77S2.cjs → chunk-W7GIQTJV.cjs} +21 -21
- package/dist/{chunk-QSQX77S2.cjs.map → chunk-W7GIQTJV.cjs.map} +1 -1
- package/dist/{chunk-KLJEK547.js → chunk-WHJXRLFD.js} +14 -3
- package/dist/chunk-WHJXRLFD.js.map +1 -0
- package/dist/{chunk-YQANC7HQ.js → chunk-X4F6VVEJ.js} +3 -3
- package/dist/{chunk-YQANC7HQ.js.map → chunk-X4F6VVEJ.js.map} +1 -1
- package/dist/{chunk-ZNOD4VZT.cjs → chunk-XI6JOG76.cjs} +46 -46
- package/dist/{chunk-ZNOD4VZT.cjs.map → chunk-XI6JOG76.cjs.map} +1 -1
- package/dist/{chunk-K2SOC3XF.cjs → chunk-XUEROLSB.cjs} +70 -19
- package/dist/chunk-XUEROLSB.cjs.map +1 -0
- package/dist/{chunk-XTATRNUN.cjs → chunk-YTEEZV6J.cjs} +442 -430
- package/dist/chunk-YTEEZV6J.cjs.map +1 -0
- package/dist/{chunk-XZNPAD6E.js → chunk-ZNLEUL7T.js} +58 -7
- package/dist/chunk-ZNLEUL7T.js.map +1 -0
- package/dist/{chunk-DNZFOCV7.js → chunk-ZTSO3S4P.js} +3 -3
- package/dist/{chunk-DNZFOCV7.js.map → chunk-ZTSO3S4P.js.map} +1 -1
- package/dist/diagrams/blockdiagram/index.cjs +6 -6
- package/dist/diagrams/blockdiagram/index.d.cts +1 -1
- package/dist/diagrams/blockdiagram/index.d.ts +1 -1
- package/dist/diagrams/blockdiagram/index.js +2 -2
- package/dist/diagrams/circuit/index.cjs +8 -8
- package/dist/diagrams/circuit/index.d.cts +1 -1
- package/dist/diagrams/circuit/index.d.ts +1 -1
- package/dist/diagrams/circuit/index.js +2 -2
- package/dist/diagrams/ecomap/index.cjs +8 -8
- package/dist/diagrams/ecomap/index.d.cts +1 -1
- package/dist/diagrams/ecomap/index.d.ts +1 -1
- package/dist/diagrams/ecomap/index.js +3 -3
- package/dist/diagrams/entity/index.cjs +6 -6
- package/dist/diagrams/entity/index.d.cts +1 -1
- package/dist/diagrams/entity/index.d.ts +1 -1
- package/dist/diagrams/entity/index.js +2 -2
- package/dist/diagrams/fishbone/index.cjs +8 -8
- package/dist/diagrams/fishbone/index.d.cts +1 -1
- package/dist/diagrams/fishbone/index.d.ts +1 -1
- package/dist/diagrams/fishbone/index.js +2 -2
- package/dist/diagrams/flowchart/index.cjs +8 -8
- package/dist/diagrams/flowchart/index.d.cts +2 -2
- package/dist/diagrams/flowchart/index.d.ts +2 -2
- package/dist/diagrams/flowchart/index.js +2 -2
- package/dist/diagrams/genogram/index.cjs +10 -10
- package/dist/diagrams/genogram/index.d.cts +1 -1
- package/dist/diagrams/genogram/index.d.ts +1 -1
- package/dist/diagrams/genogram/index.js +3 -3
- package/dist/diagrams/ladder/index.cjs +6 -6
- package/dist/diagrams/ladder/index.d.cts +1 -1
- package/dist/diagrams/ladder/index.d.ts +1 -1
- package/dist/diagrams/ladder/index.js +2 -2
- package/dist/diagrams/logic/index.cjs +6 -6
- package/dist/diagrams/logic/index.d.cts +1 -1
- package/dist/diagrams/logic/index.d.ts +1 -1
- package/dist/diagrams/logic/index.js +2 -2
- package/dist/diagrams/orgchart/index.cjs +7 -7
- package/dist/diagrams/orgchart/index.d.cts +1 -1
- package/dist/diagrams/orgchart/index.d.ts +1 -1
- package/dist/diagrams/orgchart/index.js +2 -2
- package/dist/diagrams/pedigree/index.cjs +8 -8
- package/dist/diagrams/pedigree/index.d.cts +1 -1
- package/dist/diagrams/pedigree/index.d.ts +1 -1
- package/dist/diagrams/pedigree/index.js +3 -3
- package/dist/diagrams/phylo/index.cjs +7 -7
- package/dist/diagrams/phylo/index.d.cts +1 -1
- package/dist/diagrams/phylo/index.d.ts +1 -1
- package/dist/diagrams/phylo/index.js +2 -2
- package/dist/diagrams/sld/index.cjs +6 -6
- package/dist/diagrams/sld/index.d.cts +1 -1
- package/dist/diagrams/sld/index.d.ts +1 -1
- package/dist/diagrams/sld/index.js +2 -2
- package/dist/diagrams/sociogram/index.cjs +7 -7
- package/dist/diagrams/sociogram/index.d.cts +1 -1
- package/dist/diagrams/sociogram/index.d.ts +1 -1
- package/dist/diagrams/sociogram/index.js +3 -3
- package/dist/diagrams/timing/index.cjs +5 -5
- package/dist/diagrams/timing/index.d.cts +1 -1
- package/dist/diagrams/timing/index.d.ts +1 -1
- package/dist/diagrams/timing/index.js +2 -2
- package/dist/diagrams/venn/index.cjs +9 -9
- package/dist/diagrams/venn/index.d.cts +1 -1
- package/dist/diagrams/venn/index.d.ts +1 -1
- package/dist/diagrams/venn/index.js +2 -2
- package/dist/{index-ivhNGsyU.d.cts → index-BrLxEzSQ.d.cts} +1 -1
- package/dist/{index-CUwp4GXI.d.ts → index-dWDwG6BW.d.ts} +1 -1
- package/dist/index.cjs +41 -41
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +19 -19
- package/dist/react.cjs +20 -20
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +19 -19
- package/dist/react.js.map +1 -1
- package/dist/{types-Bl-Pn7Wj.d.cts → types-BtiUg7Gx.d.cts} +24 -3
- package/dist/{types-Bl-Pn7Wj.d.ts → types-BtiUg7Gx.d.ts} +24 -3
- package/package.json +1 -1
- package/dist/chunk-2JDVJRR3.cjs.map +0 -1
- package/dist/chunk-3FKS4KQK.cjs.map +0 -1
- package/dist/chunk-45KP67RR.js.map +0 -1
- package/dist/chunk-B37IKTI7.cjs.map +0 -1
- package/dist/chunk-H2OEUBPO.js.map +0 -1
- package/dist/chunk-HDKDQAEQ.cjs.map +0 -1
- package/dist/chunk-K2SOC3XF.cjs.map +0 -1
- package/dist/chunk-KLJEK547.js.map +0 -1
- package/dist/chunk-MCFQAUQV.cjs.map +0 -1
- package/dist/chunk-MJGDP3CS.cjs.map +0 -1
- package/dist/chunk-NNU4RGT3.js.map +0 -1
- package/dist/chunk-OC22GGQN.js.map +0 -1
- package/dist/chunk-SQKLKBBK.cjs.map +0 -1
- package/dist/chunk-TYCHEOQX.js.map +0 -1
- package/dist/chunk-UGCUNADI.js.map +0 -1
- package/dist/chunk-VLMK7MQK.js.map +0 -1
- package/dist/chunk-XTATRNUN.cjs.map +0 -1
- package/dist/chunk-XZNPAD6E.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkLFZZ4NCP_cjs = require('./chunk-LFZZ4NCP.cjs');
|
|
4
4
|
|
|
5
5
|
// src/diagrams/timing/parser.ts
|
|
6
6
|
var TimingParseError = class extends Error {
|
|
@@ -15,7 +15,7 @@ var TimingParseError = class extends Error {
|
|
|
15
15
|
column;
|
|
16
16
|
source;
|
|
17
17
|
};
|
|
18
|
-
var VALID_STATES = /^[01xzpPnNhHlLudD
|
|
18
|
+
var VALID_STATES = /^[01xzpPnNhHlLudD=.23456789]+$/;
|
|
19
19
|
function splitDataList(rest) {
|
|
20
20
|
const trimmed = rest.trim();
|
|
21
21
|
const m = trimmed.match(/^(\S+)\s*(.*)$/);
|
|
@@ -132,12 +132,12 @@ function renderWave(signal, ctx) {
|
|
|
132
132
|
const inset = Math.min(5, (end - start) / 2);
|
|
133
133
|
const d = `M ${start + inset},${yHi} L ${end - inset},${yHi} L ${end},${yMid} L ${end - inset},${yLo} L ${start + inset},${yLo} L ${start},${yMid} Z`;
|
|
134
134
|
busRects.push(
|
|
135
|
-
|
|
135
|
+
chunkLFZZ4NCP_cjs.el("path", { class: "schematex-timing-bus", d, "data-bus-index": String(busIndex) })
|
|
136
136
|
);
|
|
137
137
|
const label = signal.data?.[dataIdx] ?? "";
|
|
138
138
|
if (label) {
|
|
139
139
|
busTexts.push(
|
|
140
|
-
|
|
140
|
+
chunkLFZZ4NCP_cjs.text(
|
|
141
141
|
{
|
|
142
142
|
x: (start + end) / 2,
|
|
143
143
|
y: yMid + 4,
|
|
@@ -231,7 +231,7 @@ function renderWave(signal, ctx) {
|
|
|
231
231
|
if (prev === "bus") closeBus(x);
|
|
232
232
|
flushLine();
|
|
233
233
|
zLines.push(
|
|
234
|
-
|
|
234
|
+
chunkLFZZ4NCP_cjs.el("line", {
|
|
235
235
|
x1: x,
|
|
236
236
|
y1: yMid,
|
|
237
237
|
x2: xNext,
|
|
@@ -246,7 +246,7 @@ function renderWave(signal, ctx) {
|
|
|
246
246
|
if (prev === "bus") closeBus(x);
|
|
247
247
|
flushLine();
|
|
248
248
|
xPatchRects.push(
|
|
249
|
-
|
|
249
|
+
chunkLFZZ4NCP_cjs.el("rect", {
|
|
250
250
|
x,
|
|
251
251
|
y: yHi,
|
|
252
252
|
width: pw,
|
|
@@ -279,7 +279,7 @@ function renderWave(signal, ctx) {
|
|
|
279
279
|
default: {
|
|
280
280
|
flushLine();
|
|
281
281
|
xPatchRects.push(
|
|
282
|
-
|
|
282
|
+
chunkLFZZ4NCP_cjs.el("rect", {
|
|
283
283
|
x,
|
|
284
284
|
y: yHi,
|
|
285
285
|
width: pw,
|
|
@@ -295,7 +295,7 @@ function renderWave(signal, ctx) {
|
|
|
295
295
|
}
|
|
296
296
|
if (prev === "bus") closeBus(wave.length * pw);
|
|
297
297
|
flushLine();
|
|
298
|
-
const waveSvg = paths.map((d) =>
|
|
298
|
+
const waveSvg = paths.map((d) => chunkLFZZ4NCP_cjs.el("path", { class: "schematex-timing-wave", d })).concat(xPatchRects, zLines, busRects).join("");
|
|
299
299
|
return { svg: waveSvg, labels: busTexts.join("") };
|
|
300
300
|
}
|
|
301
301
|
function renderTiming(ast) {
|
|
@@ -303,7 +303,7 @@ function renderTiming(ast) {
|
|
|
303
303
|
const rows = flatten(ast.signals);
|
|
304
304
|
const maxWaveLen = Math.max(
|
|
305
305
|
1,
|
|
306
|
-
...rows.
|
|
306
|
+
...rows.flatMap((r) => r.kind === "signal" ? [r.signal.wave.length] : [])
|
|
307
307
|
);
|
|
308
308
|
const waveAreaW = maxWaveLen * pw;
|
|
309
309
|
const width = NAME_W + waveAreaW + 20;
|
|
@@ -321,7 +321,7 @@ function renderTiming(ast) {
|
|
|
321
321
|
for (let i = 0; i <= maxWaveLen; i++) {
|
|
322
322
|
const xg = NAME_W + i * pw;
|
|
323
323
|
gridLines.push(
|
|
324
|
-
|
|
324
|
+
chunkLFZZ4NCP_cjs.el("line", {
|
|
325
325
|
x1: xg,
|
|
326
326
|
y1: PAD_TOP,
|
|
327
327
|
x2: xg,
|
|
@@ -335,7 +335,7 @@ function renderTiming(ast) {
|
|
|
335
335
|
const ry = rowYs[i];
|
|
336
336
|
if (row.kind === "group") {
|
|
337
337
|
nameSvgs.push(
|
|
338
|
-
|
|
338
|
+
chunkLFZZ4NCP_cjs.text(
|
|
339
339
|
{
|
|
340
340
|
x: 6 + row.indent * 10,
|
|
341
341
|
y: ry + GROUP_LABEL_H - 6,
|
|
@@ -353,7 +353,7 @@ function renderTiming(ast) {
|
|
|
353
353
|
const activeLow = signal.name.startsWith("~") || signal.name.startsWith("/");
|
|
354
354
|
const displayName = activeLow ? signal.name.slice(1) : signal.name;
|
|
355
355
|
nameSvgs.push(
|
|
356
|
-
|
|
356
|
+
chunkLFZZ4NCP_cjs.text(
|
|
357
357
|
{
|
|
358
358
|
x: NAME_W - 8,
|
|
359
359
|
y: yMid + 4,
|
|
@@ -369,7 +369,7 @@ function renderTiming(ast) {
|
|
|
369
369
|
yLo,
|
|
370
370
|
yMid});
|
|
371
371
|
waveSvgs.push(
|
|
372
|
-
|
|
372
|
+
chunkLFZZ4NCP_cjs.group(
|
|
373
373
|
{
|
|
374
374
|
transform: `translate(${NAME_W}, 0)`,
|
|
375
375
|
"data-signal": signal.name
|
|
@@ -378,10 +378,10 @@ function renderTiming(ast) {
|
|
|
378
378
|
)
|
|
379
379
|
);
|
|
380
380
|
labelSvgs.push(
|
|
381
|
-
|
|
381
|
+
chunkLFZZ4NCP_cjs.group({ transform: `translate(${NAME_W}, 0)` }, [labels])
|
|
382
382
|
);
|
|
383
383
|
}
|
|
384
|
-
const xhatch =
|
|
384
|
+
const xhatch = chunkLFZZ4NCP_cjs.el(
|
|
385
385
|
"pattern",
|
|
386
386
|
{
|
|
387
387
|
id: "schematex-timing-xhatch",
|
|
@@ -390,8 +390,8 @@ function renderTiming(ast) {
|
|
|
390
390
|
height: 6
|
|
391
391
|
},
|
|
392
392
|
[
|
|
393
|
-
|
|
394
|
-
|
|
393
|
+
chunkLFZZ4NCP_cjs.el("rect", { x: 0, y: 0, width: 6, height: 6, fill: "#f5f5f5" }),
|
|
394
|
+
chunkLFZZ4NCP_cjs.el("path", {
|
|
395
395
|
d: "M 0,6 L 6,0 M -1,1 L 1,-1 M 5,7 L 7,5",
|
|
396
396
|
stroke: "#999",
|
|
397
397
|
"stroke-width": 0.8
|
|
@@ -410,7 +410,7 @@ function renderTiming(ast) {
|
|
|
410
410
|
.schematex-timing-hiz { stroke: #555; stroke-width: 1.5; stroke-dasharray: 4 3; }
|
|
411
411
|
.schematex-timing-grid { stroke: #eee; stroke-width: 0.5; }
|
|
412
412
|
`.trim();
|
|
413
|
-
return
|
|
413
|
+
return chunkLFZZ4NCP_cjs.svgRoot(
|
|
414
414
|
{
|
|
415
415
|
class: "schematex-timing",
|
|
416
416
|
viewBox: `0 0 ${width} ${height}`,
|
|
@@ -420,14 +420,14 @@ function renderTiming(ast) {
|
|
|
420
420
|
"data-diagram-type": "timing"
|
|
421
421
|
},
|
|
422
422
|
[
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
ast.title ?
|
|
423
|
+
chunkLFZZ4NCP_cjs.title(ast.title ?? "Timing Diagram"),
|
|
424
|
+
chunkLFZZ4NCP_cjs.desc(`Digital timing diagram with ${rows.filter((r) => r.kind === "signal").length} signals`),
|
|
425
|
+
chunkLFZZ4NCP_cjs.defs([xhatch, chunkLFZZ4NCP_cjs.el("style", {}, css)]),
|
|
426
|
+
chunkLFZZ4NCP_cjs.group({ class: "schematex-timing-grid-g" }, gridLines),
|
|
427
|
+
chunkLFZZ4NCP_cjs.group({ class: "schematex-timing-waves" }, waveSvgs),
|
|
428
|
+
chunkLFZZ4NCP_cjs.group({ class: "schematex-timing-labels" }, labelSvgs),
|
|
429
|
+
chunkLFZZ4NCP_cjs.group({ class: "schematex-timing-names" }, nameSvgs),
|
|
430
|
+
ast.title ? chunkLFZZ4NCP_cjs.text(
|
|
431
431
|
{
|
|
432
432
|
x: width / 2,
|
|
433
433
|
y: 14,
|
|
@@ -458,5 +458,5 @@ var timing = {
|
|
|
458
458
|
exports.parseTiming = parseTiming;
|
|
459
459
|
exports.renderTiming = renderTiming;
|
|
460
460
|
exports.timing = timing;
|
|
461
|
-
//# sourceMappingURL=chunk-
|
|
462
|
-
//# sourceMappingURL=chunk-
|
|
461
|
+
//# sourceMappingURL=chunk-K5QG53GT.cjs.map
|
|
462
|
+
//# sourceMappingURL=chunk-K5QG53GT.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/diagrams/timing/parser.ts","../src/diagrams/timing/renderer.ts","../src/diagrams/timing/index.ts"],"names":["text","title","el","group","svgRoot","desc","defs"],"mappings":"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","file":"chunk-K5QG53GT.cjs","sourcesContent":["import type { TimingAST, TimingSignal, TimingGroup } from \"../../core/types\";\n\nexport class TimingParseError extends Error {\n constructor(\n message: string,\n public line?: number,\n public column?: number,\n public source?: string\n ) {\n super(line !== undefined ? `Line ${line}: ${message}` : message);\n this.name = \"TimingParseError\";\n }\n}\n\nconst VALID_STATES = /^[01xzpPnNhHlLudD=.23456789]+$/;\n\nfunction splitDataList(rest: string): { wave: string; data: string[] } {\n // Wave string is first token; remaining tokens are quoted strings or a `data: [...]` form\n const trimmed = rest.trim();\n // Accept: `wave data: [\"a\",\"b\"]` or `wave \"a\" \"b\" \"c\"`\n const m = trimmed.match(/^(\\S+)\\s*(.*)$/);\n if (!m) return { wave: trimmed, data: [] };\n const wave = m[1];\n const remainder = m[2].trim();\n if (!remainder) return { wave, data: [] };\n\n const data: string[] = [];\n // Strip `data:` prefix + optional brackets\n let r = remainder.replace(/^data\\s*:\\s*/, \"\").trim();\n if (r.startsWith(\"[\") && r.endsWith(\"]\")) r = r.slice(1, -1);\n const re = /\"([^\"]*)\"/g;\n let match: RegExpExecArray | null;\n while ((match = re.exec(r)) !== null) data.push(match[1]);\n return { wave, data };\n}\n\nexport function parseTiming(text: string): TimingAST {\n const lines = text.split(\"\\n\").map((l) => l.replace(/\\r$/, \"\"));\n const signals: Array<TimingSignal | TimingGroup> = [];\n let title: string | undefined;\n let hscale: number | undefined;\n let currentGroup: TimingGroup | null = null;\n\n for (let i = 0; i < lines.length; i++) {\n const raw = lines[i] ?? \"\";\n const lineNo = i + 1;\n const line = raw.trim();\n if (!line || line.startsWith(\"#\")) continue;\n\n // Header: `timing \"title\" [hscale: 2]`\n if (/^timing\\b/i.test(line)) {\n const titleMatch = line.match(/\"([^\"]*)\"/);\n if (titleMatch) title = titleMatch[1];\n const hs = line.match(/hscale\\s*:\\s*(\\d+(?:\\.\\d+)?)/);\n if (hs) hscale = parseFloat(hs[1]);\n continue;\n }\n\n // Group start: `[GroupName]` or `group \"name\" {`\n const groupOpen = line.match(/^\\[([^\\]]+)\\]$/) || line.match(/^group\\s+\"([^\"]+)\"\\s*\\{?$/);\n if (groupOpen) {\n currentGroup = { label: groupOpen[1], signals: [] };\n signals.push(currentGroup);\n continue;\n }\n if (line === \"}\") {\n currentGroup = null;\n continue;\n }\n if (line === \"---\") {\n currentGroup = null;\n continue;\n }\n\n // Signal: `NAME: wave ...`\n const sigMatch = line.match(/^([^:]+):\\s*(.+)$/);\n if (sigMatch) {\n const name = sigMatch[1].trim();\n const { wave, data } = splitDataList(sigMatch[2]);\n if (!VALID_STATES.test(wave)) {\n throw new TimingParseError(`Invalid wave string \"${wave}\" for signal ${name}`, lineNo, undefined, line);\n }\n const signal: TimingSignal = { name, wave, data: data.length ? data : undefined };\n if (currentGroup) currentGroup.signals.push(signal);\n else signals.push(signal);\n continue;\n }\n }\n\n return { type: \"timing\", title, hscale, signals };\n}\n","import type { TimingAST, TimingSignal, TimingGroup } from \"../../core/types\";\nimport { svgRoot, defs, group, el, text, title as titleEl, desc } from \"../../core/svg\";\n\nconst NAME_W = 120;\nconst SIG_H = 36;\nconst PAD_TOP = 12;\nconst PAD_BOT = 12;\nconst PAD_V = 6; // vertical padding inside band for rail spacing\nconst DEFAULT_PW = 40;\nconst GROUP_LABEL_H = 22;\n\ntype FlatRow =\n | { kind: \"signal\"; signal: TimingSignal; indent: number }\n | { kind: \"group\"; label: string; indent: number };\n\nfunction flatten(items: Array<TimingSignal | TimingGroup>, indent = 0): FlatRow[] {\n const out: FlatRow[] = [];\n for (const item of items) {\n if (\"wave\" in item) {\n out.push({ kind: \"signal\", signal: item, indent });\n } else {\n out.push({ kind: \"group\", label: item.label, indent });\n out.push(...flatten(item.signals, indent + 1));\n }\n }\n return out;\n}\n\ninterface WaveCtx {\n pw: number;\n yHi: number;\n yLo: number;\n yMid: number;\n h: number;\n}\n\ntype PrevState = \"hi\" | \"lo\" | \"bus\" | \"z\" | \"x\" | \"none\";\n\nfunction renderWave(signal: TimingSignal, ctx: WaveCtx): { svg: string; labels: string } {\n const { pw, yHi, yLo, yMid } = ctx;\n const wave = signal.wave;\n const paths: string[] = [];\n const busRects: string[] = [];\n const busTexts: string[] = [];\n const xPatchRects: string[] = [];\n const zLines: string[] = [];\n\n let prev: PrevState = \"none\";\n let prevChar = \"\";\n let busStartX = 0;\n let busIndex = 0;\n let dataIdx = 0;\n let linePath = \"\";\n\n const startLine = (x: number, y: number) => {\n if (linePath) paths.push(linePath);\n linePath = `M ${x},${y}`;\n };\n const extendLineTo = (x: number, y: number) => {\n linePath += ` L ${x},${y}`;\n };\n const flushLine = () => {\n if (linePath) {\n paths.push(linePath);\n linePath = \"\";\n }\n };\n\n const closeBus = (x: number) => {\n const start = busStartX;\n const end = x;\n const inset = Math.min(5, (end - start) / 2);\n // Trapezoid outline\n const d = `M ${start + inset},${yHi} L ${end - inset},${yHi} L ${end},${yMid} L ${end - inset},${yLo} L ${start + inset},${yLo} L ${start},${yMid} Z`;\n busRects.push(\n el(\"path\", { class: \"schematex-timing-bus\", d, \"data-bus-index\": String(busIndex) })\n );\n // Data label\n const label = signal.data?.[dataIdx] ?? \"\";\n if (label) {\n busTexts.push(\n text(\n {\n x: (start + end) / 2,\n y: yMid + 4,\n class: \"schematex-timing-bus-label\",\n \"text-anchor\": \"middle\",\n },\n label\n )\n );\n }\n dataIdx++;\n busIndex++;\n };\n\n for (let i = 0; i < wave.length; i++) {\n const ch = wave[i];\n const x = i * pw;\n const xNext = x + pw;\n\n // Handle continuation '.'\n const effective = ch === \".\" ? prevChar : ch;\n\n switch (effective) {\n case \"0\":\n case \"l\":\n case \"L\": {\n if (prev === \"bus\") closeBus(x);\n if (prev === \"x\" || prev === \"z\" || prev === \"none\" || prev === \"bus\") {\n flushLine();\n startLine(x, yLo);\n } else if (prev === \"hi\") {\n extendLineTo(x, yLo);\n }\n extendLineTo(xNext, yLo);\n prev = \"lo\";\n break;\n }\n case \"1\":\n case \"h\":\n case \"H\": {\n if (prev === \"bus\") closeBus(x);\n if (prev === \"x\" || prev === \"z\" || prev === \"none\" || prev === \"bus\") {\n flushLine();\n startLine(x, yHi);\n } else if (prev === \"lo\") {\n extendLineTo(x, yHi);\n }\n extendLineTo(xNext, yHi);\n prev = \"hi\";\n break;\n }\n case \"p\":\n case \"P\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n // One-period positive clock: lo→hi at x, hi until midpoint, lo at mid, lo until xNext\n startLine(x, yLo);\n extendLineTo(x, yHi);\n extendLineTo(x + pw / 2, yHi);\n extendLineTo(x + pw / 2, yLo);\n extendLineTo(xNext, yLo);\n flushLine();\n prev = \"lo\";\n break;\n }\n case \"n\":\n case \"N\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n startLine(x, yHi);\n extendLineTo(x, yLo);\n extendLineTo(x + pw / 2, yLo);\n extendLineTo(x + pw / 2, yHi);\n extendLineTo(xNext, yHi);\n flushLine();\n prev = \"hi\";\n break;\n }\n case \"u\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n startLine(x, yLo);\n extendLineTo(xNext, yHi);\n prev = \"hi\";\n break;\n }\n case \"d\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n startLine(x, yHi);\n extendLineTo(xNext, yLo);\n prev = \"lo\";\n break;\n }\n case \"z\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n zLines.push(\n el(\"line\", {\n x1: x,\n y1: yMid,\n x2: xNext,\n y2: yMid,\n class: \"schematex-timing-hiz\",\n })\n );\n prev = \"z\";\n break;\n }\n case \"x\": {\n if (prev === \"bus\") closeBus(x);\n flushLine();\n xPatchRects.push(\n el(\"rect\", {\n x,\n y: yHi,\n width: pw,\n height: yLo - yHi,\n class: \"schematex-timing-unknown\",\n fill: \"url(#schematex-timing-xhatch)\",\n })\n );\n prev = \"x\";\n break;\n }\n case \"=\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n // Each fresh bus char (not '.') begins a new segment.\n const isContinuation = ch === \".\";\n if (!isContinuation && prev === \"bus\") closeBus(x);\n if (prev !== \"bus\" || !isContinuation) {\n flushLine();\n busStartX = x;\n }\n prev = \"bus\";\n break;\n }\n default: {\n // unknown char -> treat as x\n flushLine();\n xPatchRects.push(\n el(\"rect\", {\n x,\n y: yHi,\n width: pw,\n height: yLo - yHi,\n class: \"schematex-timing-unknown\",\n fill: \"url(#schematex-timing-xhatch)\",\n })\n );\n prev = \"x\";\n }\n }\n\n prevChar = effective;\n }\n\n // Close trailing bus\n if (prev === \"bus\") closeBus(wave.length * pw);\n flushLine();\n\n const waveSvg = paths\n .map((d) => el(\"path\", { class: \"schematex-timing-wave\", d }))\n .concat(xPatchRects, zLines, busRects)\n .join(\"\");\n\n return { svg: waveSvg, labels: busTexts.join(\"\") };\n}\n\nexport function renderTiming(ast: TimingAST): string {\n const pw = DEFAULT_PW * (ast.hscale ?? 1);\n const rows = flatten(ast.signals);\n const maxWaveLen = Math.max(\n 1,\n ...rows.flatMap((r) => (r.kind === \"signal\" ? [r.signal.wave.length] : []))\n );\n const waveAreaW = maxWaveLen * pw;\n const width = NAME_W + waveAreaW + 20;\n\n let y = PAD_TOP;\n const rowYs: number[] = [];\n for (const r of rows) {\n rowYs.push(y);\n y += r.kind === \"group\" ? GROUP_LABEL_H : SIG_H;\n }\n const height = y + PAD_BOT + 10;\n\n // Render rows\n const waveSvgs: string[] = [];\n const labelSvgs: string[] = [];\n const nameSvgs: string[] = [];\n const gridLines: string[] = [];\n\n // Grid: vertical period ticks across signal area\n for (let i = 0; i <= maxWaveLen; i++) {\n const xg = NAME_W + i * pw;\n gridLines.push(\n el(\"line\", {\n x1: xg,\n y1: PAD_TOP,\n x2: xg,\n y2: height - PAD_BOT,\n class: \"schematex-timing-grid\",\n })\n );\n }\n\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const ry = rowYs[i];\n\n if (row.kind === \"group\") {\n nameSvgs.push(\n text(\n {\n x: 6 + row.indent * 10,\n y: ry + GROUP_LABEL_H - 6,\n class: \"schematex-timing-group-label\",\n },\n row.label\n )\n );\n continue;\n }\n\n const signal = row.signal;\n const yHi = ry + PAD_V;\n const yLo = ry + SIG_H - PAD_V;\n const yMid = ry + SIG_H / 2;\n\n // Signal name (right-aligned in name column). `~NAME` or `/NAME` → overlined active-low.\n const activeLow = signal.name.startsWith(\"~\") || signal.name.startsWith(\"/\");\n const displayName = activeLow ? signal.name.slice(1) : signal.name;\n nameSvgs.push(\n text(\n {\n x: NAME_W - 8,\n y: yMid + 4,\n class: activeLow\n ? \"schematex-timing-name schematex-timing-name-activelow\"\n : \"schematex-timing-name\",\n \"text-anchor\": \"end\",\n },\n displayName\n )\n );\n\n const { svg, labels } = renderWave(signal, {\n pw,\n yHi,\n yLo,\n yMid,\n h: SIG_H - 2 * PAD_V,\n });\n\n waveSvgs.push(\n group(\n {\n transform: `translate(${NAME_W}, 0)`,\n \"data-signal\": signal.name,\n },\n [svg]\n )\n );\n labelSvgs.push(\n group({ transform: `translate(${NAME_W}, 0)` }, [labels])\n );\n }\n\n const xhatch = el(\n \"pattern\",\n {\n id: \"schematex-timing-xhatch\",\n patternUnits: \"userSpaceOnUse\",\n width: 6,\n height: 6,\n },\n [\n el(\"rect\", { x: 0, y: 0, width: 6, height: 6, fill: \"#f5f5f5\" }),\n el(\"path\", {\n d: \"M 0,6 L 6,0 M -1,1 L 1,-1 M 5,7 L 7,5\",\n stroke: \"#999\",\n \"stroke-width\": 0.8,\n }),\n ]\n );\n\n const css = `\n.schematex-timing { background: #fff; font-family: system-ui, -apple-system, sans-serif; }\n.schematex-timing-name { font: 12px monospace; fill: #111; }\n.schematex-timing-name-activelow { text-decoration: overline; }\n.schematex-timing-group-label { font: bold 12px sans-serif; fill: #111; }\n.schematex-timing-wave { stroke: #111; stroke-width: 1.75; fill: none; stroke-linejoin: miter; stroke-linecap: square; }\n.schematex-timing-bus { fill: none; stroke: #111; stroke-width: 1.5; }\n.schematex-timing-bus-label { font: 11px monospace; fill: #111; }\n.schematex-timing-unknown { stroke: #555; stroke-width: 0.5; }\n.schematex-timing-hiz { stroke: #555; stroke-width: 1.5; stroke-dasharray: 4 3; }\n.schematex-timing-grid { stroke: #eee; stroke-width: 0.5; }\n`.trim();\n\n return svgRoot(\n {\n class: \"schematex-timing\",\n viewBox: `0 0 ${width} ${height}`,\n width,\n height,\n role: \"img\",\n \"data-diagram-type\": \"timing\",\n },\n [\n titleEl(ast.title ?? \"Timing Diagram\"),\n desc(`Digital timing diagram with ${rows.filter((r) => r.kind === \"signal\").length} signals`),\n defs([xhatch, el(\"style\", {}, css)]),\n group({ class: \"schematex-timing-grid-g\" }, gridLines),\n group({ class: \"schematex-timing-waves\" }, waveSvgs),\n group({ class: \"schematex-timing-labels\" }, labelSvgs),\n group({ class: \"schematex-timing-names\" }, nameSvgs),\n ast.title\n ? text(\n {\n x: width / 2,\n y: 14,\n \"text-anchor\": \"middle\",\n class: \"schematex-timing-title\",\n style: \"font: bold 13px sans-serif; fill: #333;\",\n },\n ast.title\n )\n : \"\",\n ]\n );\n}\n","import type { DiagramPlugin } from \"../../core/types\";\nimport { parseTiming } from \"./parser\";\nimport { renderTiming } from \"./renderer\";\n\nexport const timing: DiagramPlugin = {\n type: \"timing\",\n detect(text: string): boolean {\n const first = text.trim().split(\"\\n\")[0]?.trim().toLowerCase() ?? \"\";\n return first.startsWith(\"timing\");\n },\n parse: parseTiming,\n\n render(text: string): string {\n const ast = parseTiming(text);\n return renderTiming(ast);\n },\n};\n\nexport { parseTiming } from \"./parser\";\nexport { renderTiming } from \"./renderer\";\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk75BMFCP5_cjs = require('./chunk-75BMFCP5.cjs');
|
|
4
4
|
var chunkD7EHZFK4_cjs = require('./chunk-D7EHZFK4.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkLFZZ4NCP_cjs = require('./chunk-LFZZ4NCP.cjs');
|
|
6
6
|
|
|
7
7
|
// src/diagrams/pedigree/parser.ts
|
|
8
8
|
var PedigreeParseError = class extends Error {
|
|
@@ -53,7 +53,7 @@ function parsePedigree(text2) {
|
|
|
53
53
|
i++;
|
|
54
54
|
continue;
|
|
55
55
|
}
|
|
56
|
-
if (
|
|
56
|
+
if (chunk75BMFCP5_cjs.parseLegendDirective(trimmed, legendOverrides)) {
|
|
57
57
|
hasLegendOverrides = true;
|
|
58
58
|
i++;
|
|
59
59
|
continue;
|
|
@@ -829,8 +829,8 @@ function renderPedigree(layout, config, ast) {
|
|
|
829
829
|
const genCount = genGroups.size;
|
|
830
830
|
const diagramTitle = ast?.metadata?.title ?? "Pedigree";
|
|
831
831
|
const layers = [
|
|
832
|
-
|
|
833
|
-
|
|
832
|
+
chunkLFZZ4NCP_cjs.title(diagramTitle),
|
|
833
|
+
chunkLFZZ4NCP_cjs.desc(`Pedigree chart with ${nodeCount} individuals across ${genCount} generations`),
|
|
834
834
|
defsStr,
|
|
835
835
|
styleStr
|
|
836
836
|
];
|
|
@@ -840,9 +840,9 @@ function renderPedigree(layout, config, ast) {
|
|
|
840
840
|
let legendSvg = "";
|
|
841
841
|
if (ast) {
|
|
842
842
|
const autoSpec = buildPedigreeLegend(ast, t);
|
|
843
|
-
const finalSpec =
|
|
843
|
+
const finalSpec = chunk75BMFCP5_cjs.applyLegendOverrides(autoSpec, ast.legendOverrides);
|
|
844
844
|
if (finalSpec.mode === "on" && finalSpec.items.length > 0) {
|
|
845
|
-
const { svg, bbox: lb } =
|
|
845
|
+
const { svg, bbox: lb } = chunk75BMFCP5_cjs.renderLegend(
|
|
846
846
|
finalSpec,
|
|
847
847
|
{
|
|
848
848
|
canvasWidth: layout.width,
|
|
@@ -863,13 +863,13 @@ function renderPedigree(layout, config, ast) {
|
|
|
863
863
|
}
|
|
864
864
|
const chartXOffset = Math.max(0, (finalWidth - layout.width) / 2);
|
|
865
865
|
layers.push(
|
|
866
|
-
|
|
866
|
+
chunkLFZZ4NCP_cjs.group(
|
|
867
867
|
{ transform: chartXOffset > 0 ? `translate(${chartXOffset}, 0)` : void 0 },
|
|
868
868
|
chartContent
|
|
869
869
|
)
|
|
870
870
|
);
|
|
871
871
|
if (legendSvg) layers.push(legendSvg);
|
|
872
|
-
return
|
|
872
|
+
return chunkLFZZ4NCP_cjs.svgRoot(
|
|
873
873
|
{
|
|
874
874
|
viewBox: `0 0 ${finalWidth} ${finalHeight}`,
|
|
875
875
|
class: "schematex-diagram schematex-pedigree",
|
|
@@ -888,16 +888,16 @@ function buildDefs(nodes, t) {
|
|
|
888
888
|
}
|
|
889
889
|
if (needs.has("carrier")) {
|
|
890
890
|
children.push(
|
|
891
|
-
|
|
892
|
-
|
|
891
|
+
chunkLFZZ4NCP_cjs.el("clipPath", { id: "schematex-pedigree-clip-carrier-rect" }, [
|
|
892
|
+
chunkLFZZ4NCP_cjs.rect({ x: "0", y: "0", width: "50%", height: "100%" })
|
|
893
893
|
]),
|
|
894
|
-
|
|
895
|
-
|
|
894
|
+
chunkLFZZ4NCP_cjs.el("clipPath", { id: "schematex-pedigree-clip-carrier-circle" }, [
|
|
895
|
+
chunkLFZZ4NCP_cjs.rect({ x: "-50", y: "-50", width: "50", height: "100" })
|
|
896
896
|
])
|
|
897
897
|
);
|
|
898
898
|
}
|
|
899
899
|
children.push(
|
|
900
|
-
|
|
900
|
+
chunkLFZZ4NCP_cjs.el("marker", {
|
|
901
901
|
id: "schematex-pedigree-proband-arrow",
|
|
902
902
|
viewBox: "0 0 10 10",
|
|
903
903
|
refX: "0",
|
|
@@ -906,10 +906,10 @@ function buildDefs(nodes, t) {
|
|
|
906
906
|
markerHeight: "8",
|
|
907
907
|
orient: "auto-start-reverse"
|
|
908
908
|
}, [
|
|
909
|
-
|
|
909
|
+
chunkLFZZ4NCP_cjs.path({ d: "M 0 0 L 10 5 L 0 10 z", fill: t.stroke })
|
|
910
910
|
])
|
|
911
911
|
);
|
|
912
|
-
return
|
|
912
|
+
return chunkLFZZ4NCP_cjs.defs(children);
|
|
913
913
|
}
|
|
914
914
|
function buildStyles(config, t) {
|
|
915
915
|
const css = `
|
|
@@ -927,10 +927,13 @@ function buildStyles(config, t) {
|
|
|
927
927
|
.schematex-pedigree-presymptomatic-mark { stroke: ${t.conditionFill}; stroke-width: ${chunkD7EHZFK4_cjs.STROKE_WIDTH.normal}; }
|
|
928
928
|
.schematex-pedigree-proband-arrow-line { stroke: ${t.stroke}; stroke-width: ${chunkD7EHZFK4_cjs.STROKE_WIDTH.normal}; fill: none; marker-end: url(#schematex-pedigree-proband-arrow); }
|
|
929
929
|
.schematex-pedigree-proband-label { font-family: ${config.fontFamily}; font-size: 10px; font-weight: bold; fill: ${t.stroke}; }
|
|
930
|
+
.schematex-pedigree-loss-shape { fill: ${t.stroke}; stroke: ${t.stroke}; stroke-width: ${chunkD7EHZFK4_cjs.STROKE_WIDTH.normal}; stroke-linejoin: round; }
|
|
931
|
+
.schematex-pedigree-tab-slash { stroke: ${t.deceasedMark}; stroke-width: ${chunkD7EHZFK4_cjs.STROKE_WIDTH.normal}; stroke-linecap: round; }
|
|
932
|
+
.schematex-pedigree-status-label { font-family: ${config.fontFamily}; font-size: 10px; font-weight: bold; fill: ${t.text}; }
|
|
930
933
|
.schematex-pedigree-legend { font-family: ${config.fontFamily}; font-size: 11px; fill: ${t.text}; }
|
|
931
934
|
.schematex-pedigree-legend-box { fill: ${t.fill}; stroke: ${t.neutral}; stroke-width: 1; }
|
|
932
935
|
`;
|
|
933
|
-
return
|
|
936
|
+
return chunkLFZZ4NCP_cjs.el("style", {}, css);
|
|
934
937
|
}
|
|
935
938
|
function renderEdges(edges) {
|
|
936
939
|
const children = [];
|
|
@@ -938,13 +941,13 @@ function renderEdges(edges) {
|
|
|
938
941
|
const relType = edge.relationship.type;
|
|
939
942
|
const cssClass = `schematex-pedigree-edge schematex-pedigree-edge-${relType}`;
|
|
940
943
|
const elements = [
|
|
941
|
-
|
|
944
|
+
chunkLFZZ4NCP_cjs.el("path", { d: edge.path, class: "schematex-pedigree-edge-path" })
|
|
942
945
|
];
|
|
943
946
|
if (relType === "separated") {
|
|
944
947
|
const mid = pathMidpoint(edge.path);
|
|
945
948
|
if (mid) {
|
|
946
949
|
elements.push(
|
|
947
|
-
|
|
950
|
+
chunkLFZZ4NCP_cjs.line({
|
|
948
951
|
x1: mid.x - 4,
|
|
949
952
|
y1: mid.y - 6,
|
|
950
953
|
x2: mid.x + 4,
|
|
@@ -955,10 +958,10 @@ function renderEdges(edges) {
|
|
|
955
958
|
}
|
|
956
959
|
}
|
|
957
960
|
children.push(
|
|
958
|
-
|
|
961
|
+
chunkLFZZ4NCP_cjs.group({ class: cssClass, "data-from": edge.from, "data-to": edge.to }, elements)
|
|
959
962
|
);
|
|
960
963
|
}
|
|
961
|
-
return
|
|
964
|
+
return chunkLFZZ4NCP_cjs.group({ class: "schematex-pedigree-edges" }, children);
|
|
962
965
|
}
|
|
963
966
|
function pathMidpoint(pathData) {
|
|
964
967
|
const coords = pathData.match(/[\d.-]+/g);
|
|
@@ -989,7 +992,7 @@ function renderNodes(genGroups) {
|
|
|
989
992
|
nodeElements.push(renderPedigreeSymbol(node.individual, cx, cy, node.width));
|
|
990
993
|
}
|
|
991
994
|
layers.push(
|
|
992
|
-
|
|
995
|
+
chunkLFZZ4NCP_cjs.group(
|
|
993
996
|
{ class: `schematex-pedigree-generation schematex-pedigree-generation-${genIdx}`, "data-generation": genIdx },
|
|
994
997
|
nodeElements
|
|
995
998
|
)
|
|
@@ -1003,8 +1006,55 @@ function renderPedigreeSymbol(ind, x, y, size) {
|
|
|
1003
1006
|
if (ind.status === "deceased") classes.push("schematex-pedigree-deceased");
|
|
1004
1007
|
if (ind.geneticStatus) classes.push(`schematex-pedigree-${ind.geneticStatus}`);
|
|
1005
1008
|
const titleText = formatTitle(ind);
|
|
1006
|
-
const children = [
|
|
1009
|
+
const children = [chunkLFZZ4NCP_cjs.title(titleText)];
|
|
1010
|
+
const pregLoss = ind.status === "sab" || ind.status === "tab" || ind.status === "ectopic";
|
|
1011
|
+
if (pregLoss) {
|
|
1012
|
+
classes.push(`schematex-pedigree-${ind.status}`);
|
|
1013
|
+
const t = half * 0.6;
|
|
1014
|
+
children.push(
|
|
1015
|
+
chunkLFZZ4NCP_cjs.polygon({
|
|
1016
|
+
points: `${-t},${-t} ${t},${-t} 0,${t}`,
|
|
1017
|
+
class: `schematex-pedigree-loss-shape schematex-pedigree-${ind.status}-shape`
|
|
1018
|
+
})
|
|
1019
|
+
);
|
|
1020
|
+
if (ind.status === "tab") {
|
|
1021
|
+
children.push(
|
|
1022
|
+
chunkLFZZ4NCP_cjs.line({
|
|
1023
|
+
x1: -t * 1.1,
|
|
1024
|
+
y1: t * 1.1,
|
|
1025
|
+
x2: t * 1.1,
|
|
1026
|
+
y2: -t * 1.1,
|
|
1027
|
+
class: "schematex-pedigree-tab-slash"
|
|
1028
|
+
})
|
|
1029
|
+
);
|
|
1030
|
+
}
|
|
1031
|
+
if (ind.status === "ectopic") {
|
|
1032
|
+
children.push(
|
|
1033
|
+
chunkLFZZ4NCP_cjs.text(
|
|
1034
|
+
{ x: 0, y: t + 14, class: "schematex-pedigree-status-label", "text-anchor": "middle" },
|
|
1035
|
+
"ECT"
|
|
1036
|
+
)
|
|
1037
|
+
);
|
|
1038
|
+
}
|
|
1039
|
+
return chunkLFZZ4NCP_cjs.group(
|
|
1040
|
+
{
|
|
1041
|
+
class: classes.join(" "),
|
|
1042
|
+
"data-individual-id": ind.id,
|
|
1043
|
+
transform: `translate(${x}, ${y})`
|
|
1044
|
+
},
|
|
1045
|
+
children
|
|
1046
|
+
);
|
|
1047
|
+
}
|
|
1007
1048
|
children.push(baseShape(ind.sex, half));
|
|
1049
|
+
if (ind.status === "stillborn") {
|
|
1050
|
+
classes.push("schematex-pedigree-stillborn");
|
|
1051
|
+
children.push(
|
|
1052
|
+
chunkLFZZ4NCP_cjs.text(
|
|
1053
|
+
{ x: 0, y: half + 14, class: "schematex-pedigree-status-label", "text-anchor": "middle" },
|
|
1054
|
+
"SB"
|
|
1055
|
+
)
|
|
1056
|
+
);
|
|
1057
|
+
}
|
|
1008
1058
|
const gs = ind.geneticStatus;
|
|
1009
1059
|
if (gs === "affected") {
|
|
1010
1060
|
children.push(affectedFill(ind.sex, half));
|
|
@@ -1015,26 +1065,26 @@ function renderPedigreeSymbol(ind, x, y, size) {
|
|
|
1015
1065
|
}
|
|
1016
1066
|
if (gs === "presymptomatic") {
|
|
1017
1067
|
children.push(
|
|
1018
|
-
|
|
1068
|
+
chunkLFZZ4NCP_cjs.line({ x1: 0, y1: -half, x2: 0, y2: half, class: "schematex-pedigree-presymptomatic-mark" })
|
|
1019
1069
|
);
|
|
1020
1070
|
}
|
|
1021
1071
|
if (ind.status === "deceased") {
|
|
1022
1072
|
const ext = ind.sex === "female" ? half * 0.707 : half;
|
|
1023
1073
|
children.push(
|
|
1024
|
-
|
|
1074
|
+
chunkLFZZ4NCP_cjs.line({ x1: ext, y1: -ext, x2: -ext, y2: ext, class: "schematex-pedigree-deceased-mark" })
|
|
1025
1075
|
);
|
|
1026
1076
|
}
|
|
1027
1077
|
if (ind.markers?.includes("proband")) {
|
|
1028
1078
|
const arrowLen = 20;
|
|
1029
1079
|
children.push(
|
|
1030
|
-
|
|
1080
|
+
chunkLFZZ4NCP_cjs.line({
|
|
1031
1081
|
x1: -half - arrowLen,
|
|
1032
1082
|
y1: half + arrowLen,
|
|
1033
1083
|
x2: -half - 2,
|
|
1034
1084
|
y2: half + 2,
|
|
1035
1085
|
class: "schematex-pedigree-proband-arrow-line"
|
|
1036
1086
|
}),
|
|
1037
|
-
|
|
1087
|
+
chunkLFZZ4NCP_cjs.text(
|
|
1038
1088
|
{ x: -half - arrowLen - 4, y: half + arrowLen + 4, class: "schematex-pedigree-proband-label", "text-anchor": "end" },
|
|
1039
1089
|
"P"
|
|
1040
1090
|
)
|
|
@@ -1043,14 +1093,14 @@ function renderPedigreeSymbol(ind, x, y, size) {
|
|
|
1043
1093
|
if (ind.markers?.includes("consultand")) {
|
|
1044
1094
|
const arrowLen = 20;
|
|
1045
1095
|
children.push(
|
|
1046
|
-
|
|
1096
|
+
chunkLFZZ4NCP_cjs.line({
|
|
1047
1097
|
x1: -half - arrowLen,
|
|
1048
1098
|
y1: half + arrowLen,
|
|
1049
1099
|
x2: -half - 2,
|
|
1050
1100
|
y2: half + 2,
|
|
1051
1101
|
class: "schematex-pedigree-proband-arrow-line"
|
|
1052
1102
|
}),
|
|
1053
|
-
|
|
1103
|
+
chunkLFZZ4NCP_cjs.text(
|
|
1054
1104
|
{ x: -half - arrowLen - 4, y: half + arrowLen + 4, class: "schematex-pedigree-proband-label", "text-anchor": "end" },
|
|
1055
1105
|
"C"
|
|
1056
1106
|
)
|
|
@@ -1058,13 +1108,13 @@ function renderPedigreeSymbol(ind, x, y, size) {
|
|
|
1058
1108
|
}
|
|
1059
1109
|
if (ind.markers?.includes("evaluated")) {
|
|
1060
1110
|
children.push(
|
|
1061
|
-
|
|
1111
|
+
chunkLFZZ4NCP_cjs.text(
|
|
1062
1112
|
{ x: 0, y: -half - 4, class: "schematex-pedigree-proband-label", "text-anchor": "middle" },
|
|
1063
1113
|
"E"
|
|
1064
1114
|
)
|
|
1065
1115
|
);
|
|
1066
1116
|
}
|
|
1067
|
-
return
|
|
1117
|
+
return chunkLFZZ4NCP_cjs.group(
|
|
1068
1118
|
{
|
|
1069
1119
|
class: classes.join(" "),
|
|
1070
1120
|
"data-individual-id": ind.id,
|
|
@@ -1076,22 +1126,22 @@ function renderPedigreeSymbol(ind, x, y, size) {
|
|
|
1076
1126
|
function baseShape(sex, half) {
|
|
1077
1127
|
switch (sex) {
|
|
1078
1128
|
case "male":
|
|
1079
|
-
return
|
|
1129
|
+
return chunkLFZZ4NCP_cjs.rect({ x: -half, y: -half, width: half * 2, height: half * 2, class: "schematex-pedigree-shape" });
|
|
1080
1130
|
case "female":
|
|
1081
|
-
return
|
|
1131
|
+
return chunkLFZZ4NCP_cjs.circle({ cx: 0, cy: 0, r: half, class: "schematex-pedigree-shape" });
|
|
1082
1132
|
default:
|
|
1083
|
-
return
|
|
1133
|
+
return chunkLFZZ4NCP_cjs.polygon({ points: `0,${-half} ${half},0 0,${half} ${-half},0`, class: "schematex-pedigree-shape" });
|
|
1084
1134
|
}
|
|
1085
1135
|
}
|
|
1086
1136
|
function affectedFill(sex, half) {
|
|
1087
1137
|
const attrs = { class: "schematex-pedigree-affected-fill" };
|
|
1088
1138
|
switch (sex) {
|
|
1089
1139
|
case "male":
|
|
1090
|
-
return
|
|
1140
|
+
return chunkLFZZ4NCP_cjs.rect({ x: -half, y: -half, width: half * 2, height: half * 2, ...attrs });
|
|
1091
1141
|
case "female":
|
|
1092
|
-
return
|
|
1142
|
+
return chunkLFZZ4NCP_cjs.circle({ cx: 0, cy: 0, r: half, ...attrs });
|
|
1093
1143
|
default:
|
|
1094
|
-
return
|
|
1144
|
+
return chunkLFZZ4NCP_cjs.polygon({ points: `0,${-half} ${half},0 0,${half} ${-half},0`, ...attrs });
|
|
1095
1145
|
}
|
|
1096
1146
|
}
|
|
1097
1147
|
function carrierFill(sex, half) {
|
|
@@ -1102,15 +1152,15 @@ function carrierFill(sex, half) {
|
|
|
1102
1152
|
};
|
|
1103
1153
|
switch (sex) {
|
|
1104
1154
|
case "male":
|
|
1105
|
-
return
|
|
1155
|
+
return chunkLFZZ4NCP_cjs.rect({ x: -half, y: -half, width: half * 2, height: half * 2, ...attrs });
|
|
1106
1156
|
case "female":
|
|
1107
|
-
return
|
|
1157
|
+
return chunkLFZZ4NCP_cjs.circle({ cx: 0, cy: 0, r: half, ...attrs });
|
|
1108
1158
|
default:
|
|
1109
|
-
return
|
|
1159
|
+
return chunkLFZZ4NCP_cjs.polygon({ points: `0,${-half} ${half},0 0,${half} ${-half},0`, ...attrs });
|
|
1110
1160
|
}
|
|
1111
1161
|
}
|
|
1112
1162
|
function carrierDot(half) {
|
|
1113
|
-
return
|
|
1163
|
+
return chunkLFZZ4NCP_cjs.circle({ cx: 0, cy: 0, r: half * 0.15, class: "schematex-pedigree-carrier-x-dot" });
|
|
1114
1164
|
}
|
|
1115
1165
|
function formatTitle(ind) {
|
|
1116
1166
|
const name = ind.label.charAt(0).toUpperCase() + ind.label.slice(1);
|
|
@@ -1138,13 +1188,13 @@ function renderLabels(nodes, genGroups, config) {
|
|
|
1138
1188
|
const pedigreeId = genNumbering.get(ind.id) ?? ind.id;
|
|
1139
1189
|
const displayLabel = ind.label !== ind.id ? ind.label : pedigreeId;
|
|
1140
1190
|
labels.push(
|
|
1141
|
-
|
|
1191
|
+
chunkLFZZ4NCP_cjs.text(
|
|
1142
1192
|
{ x: cx, y: labelY, class: "schematex-pedigree-label", "data-individual-id": ind.id },
|
|
1143
1193
|
displayLabel
|
|
1144
1194
|
)
|
|
1145
1195
|
);
|
|
1146
1196
|
}
|
|
1147
|
-
return
|
|
1197
|
+
return chunkLFZZ4NCP_cjs.group({ class: "schematex-pedigree-labels" }, labels);
|
|
1148
1198
|
}
|
|
1149
1199
|
function renderGenerationLabels(genGroups, _config) {
|
|
1150
1200
|
const labels = [];
|
|
@@ -1155,13 +1205,13 @@ function renderGenerationLabels(genGroups, _config) {
|
|
|
1155
1205
|
const midY = nodes[0].y + nodes[0].height / 2;
|
|
1156
1206
|
const roman = toRoman(genIdx + 1);
|
|
1157
1207
|
labels.push(
|
|
1158
|
-
|
|
1208
|
+
chunkLFZZ4NCP_cjs.text(
|
|
1159
1209
|
{ x: 25, y: midY + 5, class: "schematex-pedigree-gen-label" },
|
|
1160
1210
|
roman
|
|
1161
1211
|
)
|
|
1162
1212
|
);
|
|
1163
1213
|
}
|
|
1164
|
-
return
|
|
1214
|
+
return chunkLFZZ4NCP_cjs.group({ class: "schematex-pedigree-generation-labels" }, labels);
|
|
1165
1215
|
}
|
|
1166
1216
|
function toRoman(n) {
|
|
1167
1217
|
const vals = [1e3, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
|
|
@@ -1208,5 +1258,5 @@ exports.layoutPedigree = layoutPedigree;
|
|
|
1208
1258
|
exports.parsePedigree = parsePedigree;
|
|
1209
1259
|
exports.pedigree = pedigree;
|
|
1210
1260
|
exports.renderPedigree = renderPedigree;
|
|
1211
|
-
//# sourceMappingURL=chunk-
|
|
1212
|
-
//# sourceMappingURL=chunk-
|
|
1261
|
+
//# sourceMappingURL=chunk-KUXOHLGC.cjs.map
|
|
1262
|
+
//# sourceMappingURL=chunk-KUXOHLGC.cjs.map
|