@jbrowse/bandage-core 11.7.3 → 11.8.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/README.md +59 -19
- package/dist/bubbles/bubbleHalos.js +6 -6
- package/dist/bubbles/classifyBubble.js +5 -5
- package/dist/bubbles/superbubbles.js +7 -7
- package/dist/chunks/{chunk-ZZZ6NVLW.js → chunk-22ZMVREZ.js} +1 -1
- package/dist/chunks/{chunk-VXKL2ZLR.js → chunk-2H3ALI6L.js} +223 -45
- package/dist/chunks/{chunk-F4CDC72I.js → chunk-2RCKHCF7.js} +1 -1
- package/dist/chunks/{chunk-P276TWPM.js → chunk-3CXZUC2Y.js} +1 -1
- package/dist/chunks/{chunk-VNF236GG.js → chunk-3XYLEK4H.js} +2 -2
- package/dist/chunks/{chunk-PKGPSTRW.js → chunk-4OVIUCSB.js} +2 -2
- package/dist/chunks/{chunk-BLDUBB7X.js → chunk-4YPCUVMC.js} +2 -2
- package/dist/chunks/{chunk-N73RA4DR.js → chunk-6CXLLJ2C.js} +3 -3
- package/dist/chunks/{chunk-4SN7R4UF.js → chunk-6MD4VS2F.js} +1 -1
- package/dist/chunks/{chunk-VACK24HF.js → chunk-735MPLUL.js} +35 -9
- package/dist/chunks/chunk-7GDNDQD7.js +504 -0
- package/dist/chunks/{chunk-2US43KNG.js → chunk-7PEYA3NA.js} +2 -2
- package/dist/chunks/{chunk-XTCIKBWM.js → chunk-AXE3RR7J.js} +1 -1
- package/dist/chunks/{chunk-BXE3SBBN.js → chunk-C3KAPREU.js} +1 -1
- package/dist/chunks/{chunk-QJC63NFR.js → chunk-G3GLGDKV.js} +2 -2
- package/dist/chunks/{chunk-63XWYNID.js → chunk-G4WQBRDS.js} +4 -4
- package/dist/chunks/{chunk-SDI6BVG7.js → chunk-J4PDHWP2.js} +1 -1
- package/dist/chunks/{chunk-GD6RUZU5.js → chunk-JKIAHYAW.js} +14 -8
- package/dist/chunks/{chunk-AJQRKN3X.js → chunk-L2RQV23D.js} +1 -1
- package/dist/chunks/{chunk-EPOPGV5G.js → chunk-LA6JHEVV.js} +1 -1
- package/dist/chunks/{chunk-G7SG4XMK.js → chunk-LODKC7PJ.js} +7 -0
- package/dist/chunks/{chunk-QXBQDHKL.js → chunk-MO4DIRHD.js} +80 -38
- package/dist/chunks/{chunk-IHM43Y7B.js → chunk-N2GAA7RB.js} +1 -1
- package/dist/chunks/{chunk-6RB5ZQ34.js → chunk-N4AJV4GH.js} +25 -14
- package/dist/chunks/{chunk-LH436HS2.js → chunk-NHOXLUIL.js} +2 -2
- package/dist/chunks/{chunk-QLLKALSH.js → chunk-NQWEYJDD.js} +1 -1
- package/dist/chunks/{chunk-AWJJSA7D.js → chunk-OIOAK7BS.js} +1 -1
- package/dist/chunks/{chunk-UTDMFVC7.js → chunk-R3NPBUKT.js} +8 -8
- package/dist/chunks/{chunk-4KOYS5WR.js → chunk-R4XCTRIU.js} +1 -1
- package/dist/chunks/{chunk-XKPXOIWD.js → chunk-S3ICPPXC.js} +3 -3
- package/dist/chunks/{chunk-K4KVAMEF.js → chunk-S4CH434Z.js} +1 -1
- package/dist/chunks/{chunk-HMEAGAGC.js → chunk-S7BCZVRK.js} +2 -2
- package/dist/chunks/{chunk-SG7VQB4F.js → chunk-SDDMV2MM.js} +1 -1
- package/dist/chunks/{chunk-KMLATBNT.js → chunk-SIXFXXRI.js} +3 -3
- package/dist/chunks/{chunk-T3MEG5D3.js → chunk-U6JPSXJ3.js} +90 -21
- package/dist/chunks/{chunk-SENPGW4O.js → chunk-VCUOYVLC.js} +1 -1
- package/dist/chunks/{chunk-33KUO34R.js → chunk-VSRRIFRF.js} +1 -1
- package/dist/chunks/{chunk-BFUS3ENH.js → chunk-X5ULFAMM.js} +2 -2
- package/dist/chunks/{chunk-W5YRBEWQ.js → chunk-XOIYBEU7.js} +1 -1
- package/dist/chunks/{chunk-CL6ELLVF.js → chunk-YEDZ37PH.js} +1 -1
- package/dist/chunks/{chunk-Z4HXW6ZH.js → chunk-YF6T33PU.js} +10 -2
- package/dist/chunks/{chunk-2VMKQKVO.js → chunk-YIWN32ZX.js} +1 -1
- package/dist/chunks/{chunk-2T3V6Z3M.js → chunk-ZKIH2USC.js} +1 -1
- package/dist/cli/figure.js +31 -30
- package/dist/cli/fold.js +6 -6
- package/dist/deletionEdges.js +2 -2
- package/dist/figure.js +27 -26
- package/dist/figureData.js +25 -24
- package/dist/figureScene.js +18 -17
- package/dist/figureSettings.js +6 -6
- package/dist/foldVariants.js +2 -2
- package/dist/genes/genePins.js +3 -3
- package/dist/graphLabels.js +4 -4
- package/dist/index.js +45 -44
- package/dist/labelLayout.js +8 -8
- package/dist/layout/forceCache.js +6 -6
- package/dist/layout/mergeRuns.js +2 -2
- package/dist/layout/orientToReference.js +2 -2
- package/dist/layout/tubeMapLayout.js +9 -9
- package/dist/layout/walkRowDraw.js +9 -8
- package/dist/layout/walkRowLayout.js +3 -3
- package/dist/layout/walkRowRuns.js +1 -1
- package/dist/layout/walkRows.js +2 -2
- package/dist/layout/walkStrip.js +13 -12
- package/dist/layoutModes.js +11 -11
- package/dist/pathColors.js +5 -5
- package/dist/pipeline.js +5 -5
- package/dist/referenceStrip.js +9 -8
- package/dist/renderer/GeometryBuilder.js +8 -7
- package/dist/renderer/walkLanes.js +44 -0
- package/dist/tubeMap/axis.js +5 -5
- package/dist/tubeMap/bundle.js +10 -10
- package/dist/tubeMap/coarsen.js +10 -10
- package/dist/tubeMap/deviations.js +11 -11
- package/dist/tubeMap/draw.js +5 -5
- package/dist/tubeMap/genes.js +6 -6
- package/dist/tubeMap/nodeColors.js +9 -8
- package/dist/tubeMap/reads.js +2 -2
- package/dist/types/figureData.d.ts +22 -0
- package/dist/types/renderer/types.d.ts +20 -0
- package/dist/types/renderer/walkLanes.d.ts +60 -0
- package/dist/types/util/geometry.d.ts +13 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/walkEncoding.d.ts +7 -5
- package/dist/types/walkHighlight.d.ts +3 -0
- package/dist/util/SpatialIndex.js +4 -4
- package/dist/util/edgeCurves.js +3 -3
- package/dist/util/geometry.js +7 -1
- package/dist/util/hitDetection.js +5 -5
- package/dist/version.js +1 -1
- package/dist/viewport.js +6 -6
- package/dist/walkEncoding.js +9 -8
- package/dist/walkHighlight.js +10 -9
- package/dist/walkKey.js +5 -5
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
} from "./chunk-BSOZW3FC.js";
|
|
14
14
|
import {
|
|
15
15
|
panSNContig,
|
|
16
|
+
panSNHaplotype,
|
|
16
17
|
panSNSample
|
|
17
18
|
} from "./chunk-2JL2JVZ2.js";
|
|
18
19
|
|
|
@@ -466,6 +467,12 @@ function walkRowRuns(source, region, o = {}) {
|
|
|
466
467
|
meta: rowOf(pieces),
|
|
467
468
|
row: i + 1
|
|
468
469
|
}));
|
|
470
|
+
const metas = [referenceRow, ...rows.map((r) => r.meta)];
|
|
471
|
+
if (new Set(metas.map((m) => m.label)).size < metas.length) {
|
|
472
|
+
for (const meta of metas) {
|
|
473
|
+
meta.label = panSNHaplotype(meta.name) ?? meta.label;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
469
476
|
rows.sort(
|
|
470
477
|
(a, b) => Number(b.meta.complete) - Number(a.meta.complete) || b.meta.bp - a.meta.bp || a.meta.label.localeCompare(b.meta.label)
|
|
471
478
|
);
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
stripGeneGaps,
|
|
3
3
|
walkStripFrame,
|
|
4
4
|
walkStripLabelsTree
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4OVIUCSB.js";
|
|
6
6
|
import {
|
|
7
7
|
Canvas2DRenderer
|
|
8
8
|
} from "./chunk-4DMSPNYV.js";
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
walkRowsKey,
|
|
14
14
|
walkRowsKeyTree,
|
|
15
15
|
walkRowsTree
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-LA6JHEVV.js";
|
|
17
17
|
import {
|
|
18
18
|
EXON_COLOR,
|
|
19
19
|
exonOutlineTree,
|
|
@@ -21,45 +21,50 @@ import {
|
|
|
21
21
|
} from "./chunk-JSUCGZ6K.js";
|
|
22
22
|
import {
|
|
23
23
|
geneLabelCandidates
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-G3GLGDKV.js";
|
|
25
25
|
import {
|
|
26
26
|
nodesUnderBox
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-NHOXLUIL.js";
|
|
28
28
|
import {
|
|
29
29
|
escapeAttr,
|
|
30
30
|
serializeEl
|
|
31
31
|
} from "./chunk-H2H4Y3TV.js";
|
|
32
32
|
import {
|
|
33
33
|
genePins
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-X5ULFAMM.js";
|
|
35
35
|
import {
|
|
36
36
|
version
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-L2RQV23D.js";
|
|
38
38
|
import {
|
|
39
39
|
axisScaleOf
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-2RCKHCF7.js";
|
|
41
41
|
import {
|
|
42
42
|
figureScene
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-R3NPBUKT.js";
|
|
44
44
|
import {
|
|
45
45
|
encodingStops
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-N4AJV4GH.js";
|
|
47
|
+
import {
|
|
48
|
+
THREAD_PX,
|
|
49
|
+
passesKey,
|
|
50
|
+
threadsPasses
|
|
51
|
+
} from "./chunk-7GDNDQD7.js";
|
|
47
52
|
import {
|
|
48
53
|
rangeText
|
|
49
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-SDDMV2MM.js";
|
|
50
55
|
import {
|
|
51
56
|
walkRowLabels
|
|
52
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-VCUOYVLC.js";
|
|
53
58
|
import {
|
|
54
59
|
nodeInk
|
|
55
60
|
} from "./chunk-ZANALBSX.js";
|
|
56
61
|
import {
|
|
57
62
|
FIGURE_DEFAULTS
|
|
58
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-6MD4VS2F.js";
|
|
59
64
|
import {
|
|
60
65
|
FIT_PADDING,
|
|
61
66
|
fitTransform
|
|
62
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-S3ICPPXC.js";
|
|
63
68
|
import {
|
|
64
69
|
LABEL_CHAR_PX,
|
|
65
70
|
LABEL_PAD,
|
|
@@ -79,6 +84,8 @@ var FONT = 'font-family="Helvetica, Arial, sans-serif" font-size="11"';
|
|
|
79
84
|
var BAR_PX = 48;
|
|
80
85
|
var SWATCH_PX = 18;
|
|
81
86
|
var KEY_GAP_PX = 16;
|
|
87
|
+
var KEY_LINE_PX = 16;
|
|
88
|
+
var KEY_TALL_PX = 32;
|
|
82
89
|
var STRIP_KEY_PX = 22;
|
|
83
90
|
var FADED = "rgb(160,160,160)";
|
|
84
91
|
var GENE_INK = "#1c1c22";
|
|
@@ -92,15 +99,45 @@ function keySvg(id, x, y, stops, label, after, under, opacity = 1) {
|
|
|
92
99
|
);
|
|
93
100
|
return {
|
|
94
101
|
width,
|
|
102
|
+
height: under ? KEY_TALL_PX : KEY_LINE_PX,
|
|
95
103
|
markup: `${defs}<g transform="translate(${x} ${y})" ${FONT}><rect y="5" width="${bar}" height="8" rx="2" ${fill}/><text x="${bar + 5}" y="13"><tspan font-weight="bold">${escapeAttr(label)}</tspan>${escapeAttr(after)}</text>${under ? `<text y="28">${escapeAttr(under)}</text>` : ""}</g>`
|
|
96
104
|
};
|
|
97
105
|
}
|
|
98
106
|
function exonKeySvg(x, y) {
|
|
99
107
|
return {
|
|
100
108
|
width: SWATCH_PX + 5 + 4 * LABEL_CHAR_PX,
|
|
109
|
+
height: KEY_LINE_PX,
|
|
101
110
|
markup: `<g transform="translate(${x} ${y})" ${FONT}><rect x="1" y="4" width="${SWATCH_PX - 2}" height="10" rx="4" fill="none" stroke="${EXON_COLOR}" stroke-width="2"/><text x="${SWATCH_PX + 5}" y="13">exon</text></g>`
|
|
102
111
|
};
|
|
103
112
|
}
|
|
113
|
+
function passesKeySvg(x, y, note) {
|
|
114
|
+
const lines = [6, 9, 12].map(
|
|
115
|
+
(ly) => `<line y1="${ly}" y2="${ly}" x2="${SWATCH_PX}" stroke="#444" stroke-width="${THREAD_PX}"/>`
|
|
116
|
+
).join("");
|
|
117
|
+
return {
|
|
118
|
+
width: SWATCH_PX + 5 + note.length * LABEL_CHAR_PX,
|
|
119
|
+
height: KEY_LINE_PX,
|
|
120
|
+
markup: `<g transform="translate(${x} ${y})" ${FONT}>${lines}<text x="${SWATCH_PX + 5}" y="13">${note}</text></g>`
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function keyLines(keys, width) {
|
|
124
|
+
const markup = [];
|
|
125
|
+
let x = 6;
|
|
126
|
+
let y = 2;
|
|
127
|
+
let line = 0;
|
|
128
|
+
for (const key of keys) {
|
|
129
|
+
const size = key(0, 0);
|
|
130
|
+
if (x > 6 && x + size.width > width - 6) {
|
|
131
|
+
x = 6;
|
|
132
|
+
y += line + 4;
|
|
133
|
+
line = 0;
|
|
134
|
+
}
|
|
135
|
+
markup.push(key(x, y).markup);
|
|
136
|
+
x += size.width + KEY_GAP_PX;
|
|
137
|
+
line = Math.max(line, size.height);
|
|
138
|
+
}
|
|
139
|
+
return { markup, height: y + line };
|
|
140
|
+
}
|
|
104
141
|
function walkKeySvg(id, x, y, walk, label, key) {
|
|
105
142
|
return keySvg(
|
|
106
143
|
id,
|
|
@@ -264,22 +301,18 @@ function figureSvg(graph, layout, o = {}) {
|
|
|
264
301
|
});
|
|
265
302
|
height = grid.total;
|
|
266
303
|
} else {
|
|
267
|
-
|
|
268
|
-
const push = (key) => {
|
|
269
|
-
parts.push(key.markup);
|
|
270
|
-
x += key.width + KEY_GAP_PX;
|
|
271
|
-
};
|
|
304
|
+
const keys = [];
|
|
272
305
|
if (lift) {
|
|
273
306
|
lift.walks.forEach((walk, i) => {
|
|
274
|
-
push(
|
|
275
|
-
walkKeySvg(`key${i}`, x,
|
|
307
|
+
keys.push(
|
|
308
|
+
(x, y) => walkKeySvg(`key${i}`, x, y, walk, labelOf(walk.name), keyText(walk))
|
|
276
309
|
);
|
|
277
310
|
});
|
|
278
|
-
push(
|
|
279
|
-
keySvg(
|
|
311
|
+
keys.push(
|
|
312
|
+
(x, y) => keySvg(
|
|
280
313
|
"faded",
|
|
281
314
|
x,
|
|
282
|
-
|
|
315
|
+
y,
|
|
283
316
|
[{ offset: 0, color: FADED }],
|
|
284
317
|
"",
|
|
285
318
|
`not on ${lift.walks.length === 1 ? labelOf(lift.walks[0].name) : "these walks"}`,
|
|
@@ -287,24 +320,31 @@ function figureSvg(graph, layout, o = {}) {
|
|
|
287
320
|
0.3
|
|
288
321
|
)
|
|
289
322
|
);
|
|
323
|
+
if (threadsPasses(lift.walks)) {
|
|
324
|
+
keys.push((x, y) => passesKeySvg(x, y, passesKey(lift.walks)));
|
|
325
|
+
}
|
|
290
326
|
}
|
|
291
327
|
if (rows) {
|
|
292
|
-
const
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
x,
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
328
|
+
const entries = walkRowsKey(rows, {
|
|
329
|
+
ramp: rampInterval,
|
|
330
|
+
genes: o.rowGenes?.size ? o.rowGeneGaps : void 0
|
|
331
|
+
});
|
|
332
|
+
entries.forEach((entry, i) => {
|
|
333
|
+
keys.push((x, y) => {
|
|
334
|
+
const key = walkRowsKeyTree([entry], x, y, `rows-key-${i}`);
|
|
335
|
+
return {
|
|
336
|
+
width: key.width - KEY_GAP_PX,
|
|
337
|
+
height: KEY_LINE_PX,
|
|
338
|
+
markup: serializeEl(key.tree)
|
|
339
|
+
};
|
|
340
|
+
});
|
|
341
|
+
});
|
|
302
342
|
} else if (!lift && referenceRamp) {
|
|
303
|
-
push(
|
|
304
|
-
keySvg(
|
|
343
|
+
keys.push(
|
|
344
|
+
(x, y) => keySvg(
|
|
305
345
|
"ramp",
|
|
306
346
|
x,
|
|
307
|
-
|
|
347
|
+
y,
|
|
308
348
|
encodingStops({ field: "reference", scheme: "rainbow" }),
|
|
309
349
|
referenceName ? `${referenceName} position` : "Reference position",
|
|
310
350
|
"",
|
|
@@ -317,9 +357,11 @@ function figureSvg(graph, layout, o = {}) {
|
|
|
317
357
|
);
|
|
318
358
|
}
|
|
319
359
|
if (pins.some((pin) => pin.exonsByNode.length > 0)) {
|
|
320
|
-
push(exonKeySvg(x,
|
|
360
|
+
keys.push((x, y) => exonKeySvg(x, y));
|
|
321
361
|
}
|
|
322
|
-
const
|
|
362
|
+
const keyed = keyLines(keys, width);
|
|
363
|
+
parts.push(...keyed.markup);
|
|
364
|
+
const header = keys.length > 0 ? Math.max(FACET_TITLE_PX, keyed.height) : 0;
|
|
323
365
|
const usable = width - 2 * FIT_PADDING;
|
|
324
366
|
const drawn = pixelRows || !(bounds.w > 0) ? bounds.h : bounds.h * usable / bounds.w;
|
|
325
367
|
const h = Math.max(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
REFERENCE_RAMP_ALT_COLOR,
|
|
3
3
|
hslToRgb
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2H3ALI6L.js";
|
|
5
5
|
import {
|
|
6
6
|
packAbgr
|
|
7
7
|
} from "./chunk-G2FD7S3C.js";
|
|
@@ -33,9 +33,12 @@ function resolveEncoding(layer, reference, picked, alone = true) {
|
|
|
33
33
|
const field = isField(askedField) ? askedField : alone ? "progress" : "walk";
|
|
34
34
|
const family = reference ? "grey" : FAMILIES[picked % FAMILIES.length];
|
|
35
35
|
const scheme = isScheme(askedScheme) ? askedScheme === "rainbow" && field !== "reference" ? family : askedScheme : family;
|
|
36
|
-
|
|
36
|
+
const round = Math.floor(picked / FAMILIES.length) % SHADES.length;
|
|
37
|
+
return field === "walk" && scheme === family && round > 0 ? { field, scheme, shade: SHADES[round] } : alone || field === "walk" ? { field, scheme } : { field, scheme, darkest: TOGETHER_DARKEST };
|
|
37
38
|
}
|
|
39
|
+
var TOGETHER_DARKEST = 0.55;
|
|
38
40
|
var BASE_T = 0.5;
|
|
41
|
+
var SHADES = [BASE_T, 0.85, 0.2];
|
|
39
42
|
var toLinear = (c) => c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
|
|
40
43
|
var toGamma = (c) => c <= 31308e-7 ? c * 12.92 : 1.055 * c ** (1 / 2.4) - 0.055;
|
|
41
44
|
function oklab(hex) {
|
|
@@ -72,7 +75,7 @@ function oklabEnds(scheme) {
|
|
|
72
75
|
}
|
|
73
76
|
return endsCache.get(scheme);
|
|
74
77
|
}
|
|
75
|
-
function schemeRgb(scheme, t) {
|
|
78
|
+
function schemeRgb(scheme, t, darkest = 0) {
|
|
76
79
|
const x = Math.max(0, Math.min(1, t));
|
|
77
80
|
const ends = oklabEnds(scheme);
|
|
78
81
|
if (!ends) {
|
|
@@ -83,27 +86,35 @@ function schemeRgb(scheme, t) {
|
|
|
83
86
|
).map((c) => c * 255);
|
|
84
87
|
}
|
|
85
88
|
const [from, to] = ends;
|
|
86
|
-
|
|
89
|
+
const light = from[0];
|
|
90
|
+
const dark = to[0];
|
|
91
|
+
const reach = dark < darkest && light > darkest ? (light - darkest) / (light - dark) : 1;
|
|
92
|
+
return oklabToRgb(from.map((v, i) => v + (to[i] - v) * x * reach));
|
|
87
93
|
}
|
|
88
|
-
function schemeCss(scheme, t) {
|
|
89
|
-
const [r, g, b] = schemeRgb(scheme, t).map(Math.round);
|
|
94
|
+
function schemeCss(scheme, t, darkest) {
|
|
95
|
+
const [r, g, b] = schemeRgb(scheme, t, darkest).map(Math.round);
|
|
90
96
|
return `rgb(${r}, ${g}, ${b})`;
|
|
91
97
|
}
|
|
92
|
-
function schemeColor(scheme, t) {
|
|
93
|
-
const [r, g, b] = schemeRgb(scheme, t).map(Math.round);
|
|
98
|
+
function schemeColor(scheme, t, darkest) {
|
|
99
|
+
const [r, g, b] = schemeRgb(scheme, t, darkest).map(Math.round);
|
|
94
100
|
return packAbgr(r, g, b, 255);
|
|
95
101
|
}
|
|
96
|
-
function encodedColor({ field, scheme }, t) {
|
|
97
|
-
return field === "walk" ? schemeColor(scheme,
|
|
102
|
+
function encodedColor({ field, scheme, darkest, shade = BASE_T }, t) {
|
|
103
|
+
return field === "walk" ? schemeColor(scheme, shade) : t === void 0 ? NO_VALUE_COLOR : schemeColor(scheme, t, darkest);
|
|
98
104
|
}
|
|
99
105
|
var NO_VALUE_COLOR = REFERENCE_RAMP_ALT_COLOR;
|
|
100
|
-
function encodingStops({
|
|
106
|
+
function encodingStops({
|
|
107
|
+
field,
|
|
108
|
+
scheme,
|
|
109
|
+
darkest,
|
|
110
|
+
shade = BASE_T
|
|
111
|
+
}) {
|
|
101
112
|
const stop = (offset, t) => ({
|
|
102
113
|
offset,
|
|
103
|
-
color: schemeCss(scheme, t),
|
|
104
|
-
abgr: schemeColor(scheme, t)
|
|
114
|
+
color: schemeCss(scheme, t, darkest),
|
|
115
|
+
abgr: schemeColor(scheme, t, darkest)
|
|
105
116
|
});
|
|
106
|
-
return field === "walk" ? [stop(0,
|
|
117
|
+
return field === "walk" ? [stop(0, shade)] : Array.from({ length: 7 }, (_, i) => stop(i / 6, i / 6));
|
|
107
118
|
}
|
|
108
119
|
function encodingSwatchCss(encoding) {
|
|
109
120
|
const stops = encodingStops(encoding);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EdgeSpatialIndex,
|
|
3
3
|
SpatialIndex
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7PEYA3NA.js";
|
|
5
5
|
import {
|
|
6
6
|
weakMemo
|
|
7
7
|
} from "./chunk-HMXCN6PG.js";
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
pathRibbonOffsets,
|
|
10
10
|
translateCurves,
|
|
11
11
|
yToXOf
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-735MPLUL.js";
|
|
13
13
|
|
|
14
14
|
// src/util/hitDetection.ts
|
|
15
15
|
function distanceToSegment(px, py, x1, y1, x2, y2) {
|
|
@@ -4,27 +4,27 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
facetLifts,
|
|
6
6
|
walkLift
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YF6T33PU.js";
|
|
8
8
|
import {
|
|
9
9
|
buildGeometry,
|
|
10
10
|
computeReferenceRamp
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2H3ALI6L.js";
|
|
12
12
|
import {
|
|
13
13
|
walkKey
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SDDMV2MM.js";
|
|
15
15
|
import {
|
|
16
16
|
walkRowsExtent
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-VCUOYVLC.js";
|
|
18
18
|
import {
|
|
19
19
|
pathLegend,
|
|
20
20
|
walkLabelsOf
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-JKIAHYAW.js";
|
|
22
22
|
import {
|
|
23
23
|
FIGURE_DEFAULTS
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-6MD4VS2F.js";
|
|
25
25
|
import {
|
|
26
26
|
drawingBounds
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-S3ICPPXC.js";
|
|
28
28
|
import {
|
|
29
29
|
referenceLabel
|
|
30
30
|
} from "./chunk-5ORP7EFJ.js";
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
import {
|
|
35
35
|
deletionDrawing,
|
|
36
36
|
deletionEdges
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-3CXZUC2Y.js";
|
|
38
38
|
import {
|
|
39
39
|
facetCells,
|
|
40
40
|
facetSettingOf
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-OPPVSPEF.js";
|
|
4
4
|
import {
|
|
5
5
|
orientToReference
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-22ZMVREZ.js";
|
|
7
7
|
import {
|
|
8
8
|
seededNodes
|
|
9
9
|
} from "./chunk-CKUVEHSS.js";
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
import {
|
|
28
28
|
mergeRuns,
|
|
29
29
|
splitRuns
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-YIWN32ZX.js";
|
|
31
31
|
import {
|
|
32
32
|
spreadFor
|
|
33
33
|
} from "./chunk-HKYXWZQS.js";
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
import {
|
|
40
40
|
deletionDrawing,
|
|
41
41
|
deletionEdges
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-3CXZUC2Y.js";
|
|
43
43
|
import {
|
|
44
44
|
anchorGraph
|
|
45
45
|
} from "./chunk-3YBP46PB.js";
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
} from "./chunk-MYDHU2UV.js";
|
|
7
7
|
import {
|
|
8
8
|
readColor
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-J4PDHWP2.js";
|
|
10
10
|
import {
|
|
11
11
|
referenceWalkName
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-LODKC7PJ.js";
|
|
13
13
|
import {
|
|
14
14
|
pathOrigin
|
|
15
15
|
} from "./chunk-3YBP46PB.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
coversGraph
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4YPCUVMC.js";
|
|
4
4
|
import {
|
|
5
5
|
bubblesFromGraph,
|
|
6
6
|
derivedBubble,
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
} from "./chunk-RFG42VIO.js";
|
|
11
11
|
import {
|
|
12
12
|
bubbleSegmentIds
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-OIOAK7BS.js";
|
|
14
14
|
import {
|
|
15
15
|
bubbleSubgraph
|
|
16
16
|
} from "./chunk-MHZTTLBU.js";
|
|
17
17
|
import {
|
|
18
18
|
strandSides
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-735MPLUL.js";
|
|
20
20
|
import {
|
|
21
21
|
pushTo
|
|
22
22
|
} from "./chunk-BSOZW3FC.js";
|