allotaxonometer-ui 0.1.3 → 0.1.4
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/index.js +665 -361
- package/dist/ssr/index.js +218 -162
- package/dist/style.css +35 -24
- package/package.json +5 -3
package/dist/index.js
CHANGED
|
@@ -1,23 +1,74 @@
|
|
|
1
1
|
import 'svelte/internal/disclose-version';
|
|
2
2
|
import * as $ from 'svelte/internal/client';
|
|
3
3
|
import * as d3 from 'd3';
|
|
4
|
-
import { map, extent, InternSet, range, rollup, scaleLinear, scaleBand, rgb, interpolateInferno, scaleOrdinal
|
|
4
|
+
import { map, extent, InternSet, range, rollup, scaleLinear, scaleBand, rgb, interpolateInferno, scaleOrdinal } from 'd3';
|
|
5
5
|
import { descending, sum, group, extent as extent$1 } from 'd3-array';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const colors = {
|
|
8
|
+
darkgrey: "rgb(140, 140, 140)",
|
|
9
|
+
darkergrey: "rgb(89, 89, 89)"};
|
|
10
|
+
|
|
11
|
+
const fonts = {
|
|
12
|
+
family: '"EB Garamond", "Garamond", "Century Schoolbook L", "URW Bookman L", "Bookman Old Style", "Times", serif',
|
|
13
|
+
sizes: {
|
|
14
|
+
sm: "12px",
|
|
15
|
+
lg: "16px"}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// Style builder function
|
|
19
|
+
function style(props) {
|
|
20
|
+
return Object.entries(props)
|
|
21
|
+
.map(([key, value]) => `${key.replace(/([A-Z])/g, '-$1').toLowerCase()}: ${value}`)
|
|
22
|
+
.join('; ');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Axis styles
|
|
26
|
+
const axisStyles = {
|
|
27
|
+
label: () => style({
|
|
28
|
+
fontFamily: fonts.family,
|
|
29
|
+
fontSize: fonts.sizes.lg,
|
|
30
|
+
fill: colors.darkergrey,
|
|
31
|
+
textAnchor: "middle"
|
|
32
|
+
}),
|
|
33
|
+
|
|
34
|
+
tickLabel: () => style({
|
|
35
|
+
fontFamily: fonts.family,
|
|
36
|
+
fontSize: fonts.sizes.sm,
|
|
37
|
+
fill: colors.darkergrey,
|
|
38
|
+
}),
|
|
39
|
+
|
|
40
|
+
helperText: () => style({
|
|
41
|
+
fontFamily: fonts.family,
|
|
42
|
+
fontSize: fonts.sizes.sm,
|
|
43
|
+
fill: colors.darkgrey,
|
|
44
|
+
textAnchor: "middle",
|
|
45
|
+
opacity: "0.8"
|
|
46
|
+
}),
|
|
47
|
+
|
|
48
|
+
tickLine: () => style({
|
|
49
|
+
stroke: colors.darkgrey,
|
|
50
|
+
strokeWidth: "0.5"
|
|
51
|
+
})
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
var root_1$7 = $.from_svg(`<g><line x1="0" x2="0" y1="0" y2="6"></line></g><g><text dx="5" dy="13" text-anchor="start"> </text></g>`, 1);
|
|
55
|
+
var root$8 = $.from_svg(`<g class="axis x"><!><g class="xlab"><text dy="45">Rank r</text><text dy="63">for</text><text dy="80"> </text><text dy="60">more →</text><text dy="75">frequent</text><text dy="60">← less</text><text dy="75">frequent</text></g></g>`);
|
|
9
56
|
|
|
10
57
|
function AxisX($$anchor, $$props) {
|
|
11
58
|
$.push($$props, true);
|
|
12
59
|
|
|
13
|
-
let logFormat10 = $$props.scale.tickFormat();
|
|
14
|
-
let xTicks = $$props.scale.ticks();
|
|
60
|
+
let logFormat10 = $.derived(() => $$props.scale.tickFormat());
|
|
61
|
+
let xTicks = $.derived(() => $$props.scale.ticks().filter((t) => t >= 1 && Number.isInteger(Math.log10(t))));
|
|
15
62
|
var g = root$8();
|
|
16
63
|
var node = $.child(g);
|
|
17
64
|
|
|
18
|
-
$.each(node, 17, () => xTicks, $.index, ($$anchor, tick) => {
|
|
65
|
+
$.each(node, 17, () => $.get(xTicks), $.index, ($$anchor, tick) => {
|
|
19
66
|
var fragment = root_1$7();
|
|
20
67
|
var g_1 = $.first_child(fragment);
|
|
68
|
+
var line = $.child(g_1);
|
|
69
|
+
|
|
70
|
+
$.reset(g_1);
|
|
71
|
+
|
|
21
72
|
var g_2 = $.sibling(g_1);
|
|
22
73
|
var text = $.child(g_2);
|
|
23
74
|
var text_1 = $.child(text, true);
|
|
@@ -26,15 +77,19 @@ function AxisX($$anchor, $$props) {
|
|
|
26
77
|
$.reset(g_2);
|
|
27
78
|
|
|
28
79
|
$.template_effect(
|
|
29
|
-
($0, $1, $2) => {
|
|
80
|
+
($0, $1, $2, $3, $4) => {
|
|
30
81
|
$.set_attribute(g_1, 'transform', `translate(${$0 ?? ''}, 0)`);
|
|
31
|
-
$.
|
|
32
|
-
$.
|
|
82
|
+
$.set_style(line, $1);
|
|
83
|
+
$.set_attribute(g_2, 'transform', `translate(${$2 ?? ''}, 0) scale(-1,1) rotate(45)`);
|
|
84
|
+
$.set_style(text, $3);
|
|
85
|
+
$.set_text(text_1, $4);
|
|
33
86
|
},
|
|
34
87
|
[
|
|
35
88
|
() => $$props.scale($.get(tick)),
|
|
89
|
+
() => axisStyles.tickLine(),
|
|
36
90
|
() => $$props.scale($.get(tick)),
|
|
37
|
-
() =>
|
|
91
|
+
() => axisStyles.tickLabel(),
|
|
92
|
+
() => $.get(logFormat10)($.get(tick))
|
|
38
93
|
]
|
|
39
94
|
);
|
|
40
95
|
|
|
@@ -61,35 +116,63 @@ function AxisX($$anchor, $$props) {
|
|
|
61
116
|
$.reset(g_3);
|
|
62
117
|
$.reset(g);
|
|
63
118
|
|
|
64
|
-
$.template_effect(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
119
|
+
$.template_effect(
|
|
120
|
+
($0, $1, $2, $3, $4, $5, $6) => {
|
|
121
|
+
$.set_attribute(g, 'transform', `translate(0, ${$$props.innerHeight ?? ''})`);
|
|
122
|
+
$.set_attribute(text_2, 'x', $$props.innerHeight / 2);
|
|
123
|
+
$.set_attribute(text_2, 'transform', `scale(-1,1) translate(-${$$props.innerHeight ?? ''}, 0)`);
|
|
124
|
+
$.set_style(text_2, $0);
|
|
125
|
+
$.set_attribute(text_3, 'x', $$props.innerHeight / 2);
|
|
126
|
+
$.set_attribute(text_3, 'transform', `scale(-1,1) translate(-${$$props.innerHeight ?? ''}, 0)`);
|
|
127
|
+
$.set_style(text_3, $1);
|
|
128
|
+
$.set_attribute(text_4, 'x', $$props.innerHeight / 2);
|
|
129
|
+
$.set_attribute(text_4, 'transform', `scale(-1,1) translate(-${$$props.innerHeight ?? ''}, 0)`);
|
|
130
|
+
$.set_style(text_4, $2);
|
|
131
|
+
$.set_text(text_5, $$props.title[1]);
|
|
132
|
+
$.set_attribute(text_6, 'x', $$props.innerHeight - 40);
|
|
133
|
+
$.set_attribute(text_6, 'transform', `scale(-1,1) translate(-${$$props.innerHeight ?? ''}, 0)`);
|
|
134
|
+
$.set_style(text_6, $3);
|
|
135
|
+
$.set_attribute(text_7, 'x', $$props.innerHeight - 40);
|
|
136
|
+
$.set_attribute(text_7, 'transform', `scale(-1,1) translate(-${$$props.innerHeight ?? ''}, 0)`);
|
|
137
|
+
$.set_style(text_7, $4);
|
|
138
|
+
$.set_attribute(text_8, 'transform', `scale(-1,1) translate(-${$$props.innerHeight ?? ''}, 0)`);
|
|
139
|
+
$.set_style(text_8, $5);
|
|
140
|
+
$.set_attribute(text_9, 'transform', `scale(-1,1) translate(-${$$props.innerHeight ?? ''}, 0)`);
|
|
141
|
+
$.set_style(text_9, $6);
|
|
142
|
+
},
|
|
143
|
+
[
|
|
144
|
+
() => axisStyles.label(),
|
|
145
|
+
() => axisStyles.label(),
|
|
146
|
+
() => axisStyles.label(),
|
|
147
|
+
() => axisStyles.helperText(),
|
|
148
|
+
() => axisStyles.helperText(),
|
|
149
|
+
() => axisStyles.helperText(),
|
|
150
|
+
() => axisStyles.helperText()
|
|
151
|
+
]
|
|
152
|
+
);
|
|
74
153
|
|
|
75
154
|
$.append($$anchor, g);
|
|
76
155
|
$.pop();
|
|
77
156
|
}
|
|
78
157
|
|
|
79
|
-
var root_1$6 = $.from_svg(`<g
|
|
80
|
-
var root$7 = $.from_svg(`<g class="axis y"><!><g class="ylab
|
|
158
|
+
var root_1$6 = $.from_svg(`<g><line x1="0" x2="-6" y1="0" y2="0"></line></g><g><text dx="-5" dy="13" text-anchor="end"> </text></g>`, 1);
|
|
159
|
+
var root$7 = $.from_svg(`<g class="axis y"><!><g class="ylab" transform="rotate(90)"><text dy="45">Rank r</text><text dy="63">for</text><text dy="80"> </text><text dy="60">less →</text><text dy="75">frequent</text><text dy="60">← more</text><text dy="75">frequent</text></g></g>`);
|
|
81
160
|
|
|
82
161
|
function AxisY($$anchor, $$props) {
|
|
83
162
|
$.push($$props, true);
|
|
84
163
|
|
|
85
|
-
let logFormat10 = $$props.scale.tickFormat();
|
|
86
|
-
let yTicks = $.derived(() => $$props.scale.ticks());
|
|
164
|
+
let logFormat10 = $.derived(() => $$props.scale.tickFormat());
|
|
165
|
+
let yTicks = $.derived(() => $$props.scale.ticks().filter((t) => t >= 1 && Number.isInteger(Math.log10(t))));
|
|
87
166
|
var g = root$7();
|
|
88
167
|
var node = $.child(g);
|
|
89
168
|
|
|
90
169
|
$.each(node, 17, () => $.get(yTicks), $.index, ($$anchor, tick) => {
|
|
91
170
|
var fragment = root_1$6();
|
|
92
171
|
var g_1 = $.first_child(fragment);
|
|
172
|
+
var line = $.child(g_1);
|
|
173
|
+
|
|
174
|
+
$.reset(g_1);
|
|
175
|
+
|
|
93
176
|
var g_2 = $.sibling(g_1);
|
|
94
177
|
var text = $.child(g_2);
|
|
95
178
|
var text_1 = $.child(text, true);
|
|
@@ -98,15 +181,19 @@ function AxisY($$anchor, $$props) {
|
|
|
98
181
|
$.reset(g_2);
|
|
99
182
|
|
|
100
183
|
$.template_effect(
|
|
101
|
-
($0, $1, $2) => {
|
|
184
|
+
($0, $1, $2, $3, $4) => {
|
|
102
185
|
$.set_attribute(g_1, 'transform', `translate(0, ${$0 ?? ''})`);
|
|
103
|
-
$.
|
|
104
|
-
$.
|
|
186
|
+
$.set_style(line, $1);
|
|
187
|
+
$.set_attribute(g_2, 'transform', `translate(0, ${$2 ?? ''}) rotate(45)`);
|
|
188
|
+
$.set_style(text, $3);
|
|
189
|
+
$.set_text(text_1, $4);
|
|
105
190
|
},
|
|
106
191
|
[
|
|
107
192
|
() => $$props.scale($.get(tick)),
|
|
193
|
+
() => axisStyles.tickLine(),
|
|
108
194
|
() => $$props.scale($.get(tick)),
|
|
109
|
-
() =>
|
|
195
|
+
() => axisStyles.tickLabel(),
|
|
196
|
+
() => $.get(logFormat10)($.get(tick))
|
|
110
197
|
]
|
|
111
198
|
);
|
|
112
199
|
|
|
@@ -133,15 +220,33 @@ function AxisY($$anchor, $$props) {
|
|
|
133
220
|
$.reset(g_3);
|
|
134
221
|
$.reset(g);
|
|
135
222
|
|
|
136
|
-
$.template_effect(
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
223
|
+
$.template_effect(
|
|
224
|
+
($0, $1, $2, $3, $4, $5, $6) => {
|
|
225
|
+
$.set_attribute(g, 'transform', `translate(${$$props.innerHeight ?? ''}, 0) scale(-1, 1)`);
|
|
226
|
+
$.set_attribute(text_2, 'x', $$props.innerHeight / 2);
|
|
227
|
+
$.set_style(text_2, $0);
|
|
228
|
+
$.set_attribute(text_3, 'x', $$props.innerHeight / 2);
|
|
229
|
+
$.set_style(text_3, $1);
|
|
230
|
+
$.set_attribute(text_4, 'x', $$props.innerHeight / 2);
|
|
231
|
+
$.set_style(text_4, $2);
|
|
232
|
+
$.set_text(text_5, $$props.title[0]);
|
|
233
|
+
$.set_attribute(text_6, 'x', $$props.innerHeight - 40);
|
|
234
|
+
$.set_style(text_6, $3);
|
|
235
|
+
$.set_attribute(text_7, 'x', $$props.innerHeight - 40);
|
|
236
|
+
$.set_style(text_7, $4);
|
|
237
|
+
$.set_style(text_8, $5);
|
|
238
|
+
$.set_style(text_9, $6);
|
|
239
|
+
},
|
|
240
|
+
[
|
|
241
|
+
() => axisStyles.label(),
|
|
242
|
+
() => axisStyles.label(),
|
|
243
|
+
() => axisStyles.label(),
|
|
244
|
+
() => axisStyles.helperText(),
|
|
245
|
+
() => axisStyles.helperText(),
|
|
246
|
+
() => axisStyles.helperText(),
|
|
247
|
+
() => axisStyles.helperText()
|
|
248
|
+
]
|
|
249
|
+
);
|
|
145
250
|
|
|
146
251
|
$.append($$anchor, g);
|
|
147
252
|
$.pop();
|
|
@@ -298,9 +403,63 @@ function Contours($$anchor, $$props) {
|
|
|
298
403
|
$.pop();
|
|
299
404
|
}
|
|
300
405
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
406
|
+
// Helper: convert [0–1, 0–1, 0–1] → "rgb(R, G, B)"
|
|
407
|
+
function rgbArrayToCss(rgbArray) {
|
|
408
|
+
const [r, g, b] = rgbArray.map(v => Math.round(v * 255));
|
|
409
|
+
return `rgb(${r}, ${g}, ${b})`;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
// // imported from matlab version. Normalized RGB color definitions
|
|
413
|
+
const rawColors = {
|
|
414
|
+
blue: [43, 103, 198].map(v => v / 255),
|
|
415
|
+
red: [198, 43, 103].map(v => v / 255),
|
|
416
|
+
|
|
417
|
+
paleblue: [195, 230, 243].map(v => v / 255),
|
|
418
|
+
palered: [255, 204, 204].map(v => v / 255),
|
|
419
|
+
|
|
420
|
+
lightergrey: [1, 1, 1].map(v => v * 0.96),
|
|
421
|
+
lightishgrey: [1, 1, 1].map(v => v * 0.93),
|
|
422
|
+
lightgrey: [1, 1, 1].map(v => v * 0.90),
|
|
423
|
+
|
|
424
|
+
lightgreyer: [1, 1, 1].map(v => v * 0.85),
|
|
425
|
+
lightgreyish: [1, 1, 1].map(v => v * 0.80),
|
|
426
|
+
|
|
427
|
+
grey: [1, 1, 1].map(v => v * 0.75),
|
|
428
|
+
darkgrey: [1, 1, 1].map(v => v * 0.55),
|
|
429
|
+
darkergrey: [1, 1, 1].map(v => v * 0.35),
|
|
430
|
+
verydarkgrey: [1, 1, 1].map(v => v * 0.15),
|
|
431
|
+
superdarkgrey: [1, 1, 1].map(v => v * 0.10),
|
|
432
|
+
reallyverdarkgrey: [1, 1, 1].map(v => v * 0.05),
|
|
433
|
+
|
|
434
|
+
orange: [255, 116, 0].map(v => v / 255)
|
|
435
|
+
};
|
|
436
|
+
|
|
437
|
+
// Create CSS strings for each
|
|
438
|
+
const cssColors = {};
|
|
439
|
+
for (const [key, rgb] of Object.entries(rawColors)) {
|
|
440
|
+
cssColors[key] = rgbArrayToCss(rgb);
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
// Export both raw RGB arrays and CSS strings
|
|
444
|
+
const alloColors = {
|
|
445
|
+
css: cssColors // e.g., colors.css.blue → "rgb(43, 103, 198)"
|
|
446
|
+
};
|
|
447
|
+
|
|
448
|
+
// System font stack in order of preference
|
|
449
|
+
const alloFonts = `"EB Garamond", "Garamond", "Century Schoolbook L", "URW Bookman L", "Bookman Old Style", "Times", serif`;
|
|
450
|
+
|
|
451
|
+
function updateTooltipPosition(event, tooltipVisible, tooltipX, tooltipY) {
|
|
452
|
+
if ($.get(tooltipVisible)) {
|
|
453
|
+
$.set(tooltipX, event.clientX + 15);
|
|
454
|
+
$.set(tooltipY, event.clientY - 10);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
var root_1$3 = $.from_svg(`<rect class="diamond-cell"></rect>`);
|
|
459
|
+
var root_2$3 = $.from_svg(`<rect></rect>`);
|
|
460
|
+
var root_3$1 = $.from_svg(`<text dy="5"> </text>`);
|
|
461
|
+
var root_4$1 = $.from_html(`<div><!></div>`);
|
|
462
|
+
var root$4 = $.from_html(`<div style="position: relative;"><svg xmlns="http://www.w3.org/2000/svg" style="overflow: visible; display: block;"><polygon class="diamond-background grey-triangle" fill-opacity="0.8" stroke="black" stroke-width="0.5"></polygon><polygon class="diamond-background blue-triangle" fill-opacity="0.8" stroke="black" stroke-width="0.5"></polygon><!><!><!><!><!><!><line x1="0" y1="0"></line><!></svg> <!></div>`);
|
|
304
463
|
|
|
305
464
|
function Diamond($$anchor, $$props) {
|
|
306
465
|
$.push($$props, true);
|
|
@@ -312,12 +471,11 @@ function Diamond($$anchor, $$props) {
|
|
|
312
471
|
// Extract data from dat object
|
|
313
472
|
let diamond_dat = $.derived(() => $$props.dat.counts);
|
|
314
473
|
$.derived(() => $$props.dat.deltas);
|
|
315
|
-
// Calculate derived dimensions (matching D3 version)
|
|
474
|
+
// Calculate derived dimensions (matching D3 version exactly)
|
|
316
475
|
let innerHeight = $.derived(() => DiamondHeight() - marginInner());
|
|
317
476
|
let diamondHeight = $.derived(() => $.get(innerHeight) - marginDiamond());
|
|
318
477
|
|
|
319
478
|
function get_relevant_types(diamond_dat) {
|
|
320
|
-
// Use the logic from your D3 version instead
|
|
321
479
|
const ncells = d3.max(diamond_dat, (d) => d.x1);
|
|
322
480
|
const cumbin = d3.range(0, ncells, 1.5);
|
|
323
481
|
const relevant_types = [];
|
|
@@ -330,7 +488,6 @@ function Diamond($$anchor, $$props) {
|
|
|
330
488
|
const cos_dists = filtered_dat.map((d) => d.cos_dist);
|
|
331
489
|
const max_dist = cos_dists.reduce((a, b) => Math.max(a, b));
|
|
332
490
|
const max_dist_idx = cos_dists.indexOf(max_dist);
|
|
333
|
-
// SSR-safe random selection
|
|
334
491
|
const types = filtered_dat[max_dist_idx]['types'].split(",");
|
|
335
492
|
const name = types[Math.floor(Math.random() * types.length)];
|
|
336
493
|
|
|
@@ -346,7 +503,7 @@ function Diamond($$anchor, $$props) {
|
|
|
346
503
|
return Array.from(arr1, (x) => arr2.indexOf(x) !== -1);
|
|
347
504
|
}
|
|
348
505
|
|
|
349
|
-
// Wrangling data
|
|
506
|
+
// Wrangling data
|
|
350
507
|
let relevant_types = $.derived(() => get_relevant_types($.get(diamond_dat)));
|
|
351
508
|
let ncells = $.derived(() => d3.max($.get(diamond_dat), (d) => d.x1));
|
|
352
509
|
let max_rank = $.derived(() => d3.max($.get(diamond_dat), (d) => d.rank_L[1]));
|
|
@@ -359,7 +516,7 @@ function Diamond($$anchor, $$props) {
|
|
|
359
516
|
let wxy = $.derived(() => d3.scaleBand().domain(d3.range($.get(ncells))).range([0, $.get(innerHeight)]));
|
|
360
517
|
let color_scale = d3.scaleSequentialLog().domain([$.get(rounded_max_rank), 1]).interpolator(d3.interpolateInferno);
|
|
361
518
|
|
|
362
|
-
// Background triangles
|
|
519
|
+
// Background triangles
|
|
363
520
|
let blue_triangle = $.derived(() => [
|
|
364
521
|
[
|
|
365
522
|
$.get(innerHeight),
|
|
@@ -382,13 +539,39 @@ function Diamond($$anchor, $$props) {
|
|
|
382
539
|
return rin(relevant_types, d.types.split(",")).some((x) => x === true);
|
|
383
540
|
}
|
|
384
541
|
|
|
385
|
-
|
|
386
|
-
|
|
542
|
+
// TOOLTIP
|
|
543
|
+
let tooltipVisible = $.state(false);
|
|
544
|
+
let tooltipContent = $.state('');
|
|
545
|
+
let tooltipX = $.state(0);
|
|
546
|
+
let tooltipY = $.state(0);
|
|
547
|
+
|
|
548
|
+
function showTooltip(event, d) {
|
|
549
|
+
if (d.value === 0) return;
|
|
550
|
+
|
|
551
|
+
const tokens = d.types.split(",");
|
|
552
|
+
const displayTokens = tokens.length < 50 ? tokens.slice(0, 8).join(", ") : tokens.slice(0, 8).join(", ") + " ...";
|
|
553
|
+
|
|
554
|
+
$.set(tooltipContent, `
|
|
555
|
+
<div style="color: rgb(89, 89, 89); font-size: 11px;">Types: ${displayTokens}</div>
|
|
556
|
+
`);
|
|
557
|
+
|
|
558
|
+
$.set(tooltipX, event.clientX + 15);
|
|
559
|
+
$.set(tooltipY, event.clientY - 10);
|
|
560
|
+
$.set(tooltipVisible, true);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
function hideTooltip() {
|
|
564
|
+
$.set(tooltipVisible, false);
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
var div = root$4();
|
|
568
|
+
var svg = $.child(div);
|
|
569
|
+
var polygon = $.child(svg);
|
|
387
570
|
var polygon_1 = $.sibling(polygon);
|
|
388
571
|
var node = $.sibling(polygon_1);
|
|
389
572
|
|
|
390
573
|
AxisX(node, {
|
|
391
|
-
get
|
|
574
|
+
get innerHeight() {
|
|
392
575
|
return $.get(innerHeight);
|
|
393
576
|
},
|
|
394
577
|
get scale() {
|
|
@@ -402,7 +585,7 @@ function Diamond($$anchor, $$props) {
|
|
|
402
585
|
var node_1 = $.sibling(node);
|
|
403
586
|
|
|
404
587
|
AxisY(node_1, {
|
|
405
|
-
get
|
|
588
|
+
get innerHeight() {
|
|
406
589
|
return $.get(innerHeight);
|
|
407
590
|
},
|
|
408
591
|
get scale() {
|
|
@@ -442,16 +625,13 @@ function Diamond($$anchor, $$props) {
|
|
|
442
625
|
$.set_attribute(rect, 'width', $2);
|
|
443
626
|
$.set_attribute(rect, 'height', $3);
|
|
444
627
|
$.set_attribute(rect, 'fill', $4);
|
|
445
|
-
$.set_attribute(rect, 'opacity', $.get(d).value === 0 ? 0 : 1);
|
|
446
|
-
$.set_attribute(rect, 'stroke-width', $.get(d).value === 0 ? 0 : 0.1);
|
|
447
|
-
$.set_attribute(rect, 'stroke-opacity', $.get(d).value === 0 ? 0 : 0.9);
|
|
448
628
|
},
|
|
449
629
|
[
|
|
450
630
|
() => $.get(xy)($.get(d).x1),
|
|
451
631
|
() => $.get(xy)($.get(d).y1),
|
|
452
632
|
() => $.get(xy).bandwidth(),
|
|
453
633
|
() => $.get(xy).bandwidth(),
|
|
454
|
-
() => color_scale($.get(d).value)
|
|
634
|
+
() => $.get(d).value === 0 ? "none" : color_scale($.get(d).value)
|
|
455
635
|
]
|
|
456
636
|
);
|
|
457
637
|
|
|
@@ -460,44 +640,76 @@ function Diamond($$anchor, $$props) {
|
|
|
460
640
|
|
|
461
641
|
var node_4 = $.sibling(node_3);
|
|
462
642
|
|
|
463
|
-
$.each(node_4, 17, () => $.get(diamond_dat)
|
|
464
|
-
var
|
|
465
|
-
|
|
643
|
+
$.each(node_4, 17, () => $.get(diamond_dat), $.index, ($$anchor, d) => {
|
|
644
|
+
var rect_1 = root_2$3();
|
|
645
|
+
|
|
646
|
+
rect_1.__mousemove = [
|
|
647
|
+
updateTooltipPosition,
|
|
648
|
+
tooltipVisible,
|
|
649
|
+
tooltipX,
|
|
650
|
+
tooltipY
|
|
651
|
+
];
|
|
652
|
+
|
|
653
|
+
$.template_effect(
|
|
654
|
+
($0, $1, $2, $3) => {
|
|
655
|
+
$.set_attribute(rect_1, 'x', $0);
|
|
656
|
+
$.set_attribute(rect_1, 'y', $1);
|
|
657
|
+
$.set_attribute(rect_1, 'width', $2);
|
|
658
|
+
$.set_attribute(rect_1, 'height', $3);
|
|
659
|
+
$.set_attribute(rect_1, 'fill', $.get(d).value > 0 ? 'rgba(255,255,255,0.001)' : 'none');
|
|
660
|
+
$.set_attribute(rect_1, 'stroke', $.get(d).value > 0 ? alloColors.css.darkergrey : 'none');
|
|
661
|
+
$.set_attribute(rect_1, 'stroke-width', $.get(d).value > 0 ? '1.18' : '0');
|
|
662
|
+
$.set_attribute(rect_1, 'stroke-opacity', $.get(d).value > 0 ? '0.4' : '0');
|
|
663
|
+
$.set_style(rect_1, `cursor: ${$.get(d).value > 0 ? 'pointer' : 'default'};`);
|
|
664
|
+
},
|
|
665
|
+
[
|
|
666
|
+
() => $.get(xy)($.get(d).x1),
|
|
667
|
+
() => $.get(xy)($.get(d).y1),
|
|
668
|
+
() => $.get(xy).bandwidth(),
|
|
669
|
+
() => $.get(xy).bandwidth()
|
|
670
|
+
]
|
|
671
|
+
);
|
|
672
|
+
|
|
673
|
+
$.event('mouseenter', rect_1, (e) => showTooltip(e, $.get(d)));
|
|
674
|
+
$.event('mouseleave', rect_1, hideTooltip);
|
|
675
|
+
$.append($$anchor, rect_1);
|
|
676
|
+
});
|
|
677
|
+
|
|
678
|
+
var node_5 = $.sibling(node_4);
|
|
679
|
+
|
|
680
|
+
$.each(node_5, 17, () => $.get(diamond_dat).filter((d) => filter_labs(d, $.get(relevant_types))), $.index, ($$anchor, d) => {
|
|
681
|
+
var text = root_3$1();
|
|
466
682
|
var text_1 = $.child(text, true);
|
|
467
683
|
|
|
468
684
|
$.reset(text);
|
|
469
|
-
$.reset(g_1);
|
|
470
685
|
|
|
471
686
|
$.template_effect(
|
|
472
687
|
($0, $1, $2, $3, $4, $5) => {
|
|
473
|
-
$.set_attribute(
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
rotate(-45, ${$0 ?? ''}, ${$1 ?? ''})
|
|
477
|
-
translate(${$2 ?? ''}, 0)
|
|
478
|
-
`);
|
|
479
|
-
|
|
480
|
-
$.set_attribute(text, 'x', $3);
|
|
481
|
-
$.set_attribute(text, 'y', $4);
|
|
688
|
+
$.set_attribute(text, 'x', $0);
|
|
689
|
+
$.set_attribute(text, 'y', $1);
|
|
690
|
+
$.set_attribute(text, 'dx', $.get(d).x1 - $.get(d).y1 <= 0 ? 5 : -5);
|
|
482
691
|
$.set_attribute(text, 'text-anchor', $.get(d).x1 - $.get(d).y1 <= 0 ? "start" : "end");
|
|
692
|
+
$.set_attribute(text, 'transform', `scale(1,-1) rotate(-90) rotate(-45, ${$2 ?? ''}, ${$3 ?? ''}) translate(${$4 ?? ''}, 0)`);
|
|
693
|
+
$.set_style(text, `font-family: ${alloFonts}; font-size: 12px; fill: ${alloColors.css.darkergrey ?? ''};`);
|
|
483
694
|
$.set_text(text_1, $5);
|
|
484
695
|
},
|
|
485
696
|
[
|
|
697
|
+
() => $.get(xy)($.get(d).x1),
|
|
698
|
+
() => Number.isInteger($.get(d).coord_on_diag) ? $.get(xy)($.get(d).y1) : $.get(xy)($.get(d).y1) - 1,
|
|
486
699
|
() => $.get(xy)($.get(d).x1),
|
|
487
700
|
() => $.get(xy)($.get(d).y1),
|
|
488
701
|
() => $.get(d).which_sys === "right" ? $.get(xy)(Math.sqrt($.get(d).cos_dist)) * 1.5 : -$.get(xy)(Math.sqrt($.get(d).cos_dist)) * 1.5,
|
|
489
|
-
() => $.get(xy)($.get(d).x1),
|
|
490
|
-
() => Number.isInteger($.get(d).coord_on_diag) ? $.get(xy)($.get(d).y1) : $.get(xy)($.get(d).y1) - 1,
|
|
491
702
|
() => $.get(d).types.split(",")[0]
|
|
492
703
|
]
|
|
493
704
|
);
|
|
494
705
|
|
|
495
|
-
$.append($$anchor,
|
|
706
|
+
$.append($$anchor, text);
|
|
496
707
|
});
|
|
497
708
|
|
|
498
|
-
var
|
|
709
|
+
var line = $.sibling(node_5);
|
|
710
|
+
var node_6 = $.sibling(line);
|
|
499
711
|
|
|
500
|
-
Contours(
|
|
712
|
+
Contours(node_6, {
|
|
501
713
|
get alpha() {
|
|
502
714
|
return $$props.alpha;
|
|
503
715
|
},
|
|
@@ -512,57 +724,111 @@ function Diamond($$anchor, $$props) {
|
|
|
512
724
|
}
|
|
513
725
|
});
|
|
514
726
|
|
|
515
|
-
$.reset(
|
|
727
|
+
$.reset(svg);
|
|
728
|
+
|
|
729
|
+
var node_7 = $.sibling(svg, 2);
|
|
730
|
+
|
|
731
|
+
{
|
|
732
|
+
var consequent = ($$anchor) => {
|
|
733
|
+
var div_1 = root_4$1();
|
|
734
|
+
var node_8 = $.child(div_1);
|
|
735
|
+
|
|
736
|
+
$.html(node_8, () => $.get(tooltipContent));
|
|
737
|
+
$.reset(div_1);
|
|
738
|
+
|
|
739
|
+
$.template_effect(() => $.set_style(div_1, `
|
|
740
|
+
position: fixed;
|
|
741
|
+
left: ${$.get(tooltipX) ?? ''}px;
|
|
742
|
+
top: ${$.get(tooltipY) ?? ''}px;
|
|
743
|
+
background: white;
|
|
744
|
+
border: 1px solid rgb(200, 200, 200);
|
|
745
|
+
border-radius: 6px;
|
|
746
|
+
padding: 10px 12px;
|
|
747
|
+
font-family: 'EB Garamond', serif;
|
|
748
|
+
font-size: 12px;
|
|
749
|
+
line-height: 1.5;
|
|
750
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
751
|
+
pointer-events: none;
|
|
752
|
+
z-index: 1000;
|
|
753
|
+
max-width: 280px;
|
|
754
|
+
`));
|
|
755
|
+
|
|
756
|
+
$.append($$anchor, div_1);
|
|
757
|
+
};
|
|
758
|
+
|
|
759
|
+
$.if(node_7, ($$render) => {
|
|
760
|
+
if ($.get(tooltipVisible)) $$render(consequent);
|
|
761
|
+
});
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
$.reset(div);
|
|
516
765
|
|
|
517
766
|
$.template_effect(() => {
|
|
518
|
-
$.set_attribute(
|
|
519
|
-
$.set_attribute(
|
|
520
|
-
$.set_attribute(
|
|
767
|
+
$.set_attribute(svg, 'width', DiamondHeight());
|
|
768
|
+
$.set_attribute(svg, 'height', DiamondHeight());
|
|
769
|
+
$.set_attribute(svg, 'viewBox', `0 0 ${DiamondHeight() ?? ''} ${DiamondHeight() ?? ''}`);
|
|
770
|
+
$.set_attribute(svg, 'transform', `scale(-1,1) rotate(45) translate(${$.get(innerHeight) / 4}, ${$.get(innerHeight) / 4})`);
|
|
771
|
+
$.set_attribute(polygon, 'points', $.get(grey_triangle));
|
|
772
|
+
$.set_attribute(polygon, 'fill', alloColors.css.lightgrey);
|
|
773
|
+
$.set_attribute(polygon_1, 'points', $.get(blue_triangle));
|
|
774
|
+
$.set_attribute(polygon_1, 'fill', alloColors.css.paleblue);
|
|
775
|
+
$.set_attribute(line, 'x2', $.get(innerHeight) - 7);
|
|
776
|
+
$.set_attribute(line, 'y2', $.get(innerHeight) - 7);
|
|
777
|
+
$.set_style(line, `stroke: ${alloColors.css.verydarkgrey ?? ''}; stroke-width: 0.5;`);
|
|
521
778
|
});
|
|
522
779
|
|
|
523
|
-
$.append($$anchor,
|
|
780
|
+
$.append($$anchor, div);
|
|
524
781
|
$.pop();
|
|
525
782
|
}
|
|
526
783
|
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
var
|
|
530
|
-
var
|
|
784
|
+
$.delegate(['mousemove']);
|
|
785
|
+
|
|
786
|
+
var root_1$2 = $.from_svg(`<line y1="0" y2="6" style="stroke: currentColor; stroke-width: 1;"></line><line class="wordshift-grid-line" y1="0"></line><text y="-12" text-anchor="middle"> </text>`, 1);
|
|
787
|
+
var root_2$2 = $.from_svg(`<rect class="wordshift-bar" style="mix-blend-mode: multiply;"></rect>`);
|
|
788
|
+
var root_4 = $.from_svg(`<text dy="0.32em"> </text>`);
|
|
789
|
+
var root_3 = $.from_svg(`<g class="wordshift-label-group"><text dy="0.32em"> </text><!></g>`);
|
|
790
|
+
var root$3 = $.from_svg(`<svg style="overflow: visible; display: block;"><g class="wordshift-container"><g class="wordshift-axis x"><!><text y="-35" text-anchor="middle"> </text></g><!><g class="wordshift-y-axis"></g></g></svg>`);
|
|
531
791
|
|
|
532
792
|
function Wordshift($$anchor, $$props) {
|
|
533
793
|
$.push($$props, true);
|
|
534
794
|
|
|
535
795
|
let x = $.prop($$props, 'x', 3, (d) => d.metric),
|
|
536
796
|
y = $.prop($$props, 'y', 3, (d) => d.type),
|
|
537
|
-
marginTop = $.prop($$props, 'marginTop', 3,
|
|
538
|
-
marginRight = $.prop($$props, 'marginRight', 3,
|
|
539
|
-
marginBottom = $.prop($$props, 'marginBottom', 3,
|
|
540
|
-
marginLeft = $.prop($$props, 'marginLeft', 3,
|
|
541
|
-
width = $.prop($$props, 'width', 3,
|
|
542
|
-
$.prop($$props, '
|
|
543
|
-
let xFormat = $.prop($$props, 'xFormat', 3, '%'),
|
|
797
|
+
marginTop = $.prop($$props, 'marginTop', 3, 50),
|
|
798
|
+
marginRight = $.prop($$props, 'marginRight', 3, 60),
|
|
799
|
+
marginBottom = $.prop($$props, 'marginBottom', 3, 40),
|
|
800
|
+
marginLeft = $.prop($$props, 'marginLeft', 3, 70),
|
|
801
|
+
width = $.prop($$props, 'width', 3, 360),
|
|
802
|
+
xFormat = $.prop($$props, 'xFormat', 3, '%'),
|
|
544
803
|
xLabel = $.prop($$props, 'xLabel', 3, '← System 1 · Divergence contribution · System 2 →'),
|
|
545
|
-
yPadding = $.prop($$props, 'yPadding', 3, 0
|
|
546
|
-
colors = $.prop($$props, 'colors', 19, () => [
|
|
804
|
+
yPadding = $.prop($$props, 'yPadding', 3, 0),
|
|
805
|
+
colors = $.prop($$props, 'colors', 19, () => [
|
|
806
|
+
alloColors.css.lightgrey,
|
|
807
|
+
alloColors.css.paleblue
|
|
808
|
+
]),
|
|
809
|
+
barHeightFactor = $.prop($$props, 'barHeightFactor', 3, 0.7);
|
|
547
810
|
|
|
548
|
-
// Compute values (matching D3 version)
|
|
811
|
+
// Compute values (matching D3 version exactly)
|
|
549
812
|
let X = $.derived(() => d3.map($$props.barData, x()));
|
|
550
813
|
let Y = $.derived(() => d3.map($$props.barData, y()));
|
|
551
814
|
// Compute domains
|
|
552
815
|
let computedXDomain = $.derived(() => $$props.xDomain || d3.extent($.get(X)));
|
|
553
816
|
let yDomain = $.derived(() => new d3.InternSet($.get(Y)));
|
|
554
|
-
|
|
555
|
-
//
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
let
|
|
817
|
+
// Match D3 dimensions exactly
|
|
818
|
+
const xAxisYOffset = 10; // Space below x-axis (from original)
|
|
819
|
+
const bandHeight = 18; // Fixed band height (from original)
|
|
820
|
+
const shiftSvgBy = 12; // shift svg up to align with system titles
|
|
821
|
+
const barYOffset = 10; // Additional offset just for bars
|
|
822
|
+
let compactHeight = $.derived(() => $.get(yDomain).size * bandHeight);
|
|
823
|
+
let innerWidth = $.derived(() => width() - marginLeft() - marginRight());
|
|
824
|
+
let innerHeight = $.derived(() => $.get(compactHeight) + xAxisYOffset);
|
|
825
|
+
let computedHeight = $.derived(() => $.get(innerHeight) + marginTop() + marginBottom());
|
|
826
|
+
// Compute ranges exactly like D3
|
|
827
|
+
let xRange = $.derived(() => [0, $.get(innerWidth)]);
|
|
562
828
|
|
|
563
829
|
let yRange = $.derived(() => [
|
|
564
|
-
|
|
565
|
-
$.get(
|
|
830
|
+
xAxisYOffset + barYOffset,
|
|
831
|
+
xAxisYOffset + barYOffset + $.get(compactHeight)
|
|
566
832
|
]);
|
|
567
833
|
|
|
568
834
|
// Filter indices and create lookup
|
|
@@ -573,31 +839,61 @@ function Wordshift($$anchor, $$props) {
|
|
|
573
839
|
let yScale = $.derived(() => d3.scaleBand().domain($.get(yDomain)).range($.get(yRange)).padding(yPadding()));
|
|
574
840
|
let format = $.derived(() => $.get(xScale).tickFormat(100, xFormat()));
|
|
575
841
|
let xTicks = $.derived(() => $.get(xScale).ticks(width() / 80));
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
842
|
+
|
|
843
|
+
// Helper function matching D3 logic exactly
|
|
844
|
+
function parseLabelData(label) {
|
|
845
|
+
const splitIndex = label.indexOf(' ');
|
|
846
|
+
let name_y, numbers_y;
|
|
847
|
+
|
|
848
|
+
if (splitIndex === -1) {
|
|
849
|
+
name_y = label;
|
|
850
|
+
numbers_y = "";
|
|
851
|
+
} else {
|
|
852
|
+
name_y = label.slice(0, splitIndex);
|
|
853
|
+
numbers_y = label.slice(splitIndex + 1).trim();
|
|
854
|
+
|
|
855
|
+
// Strip first and last characters from numbers_y if possible
|
|
856
|
+
if (numbers_y.length > 2) {
|
|
857
|
+
numbers_y = numbers_y.slice(1, numbers_y.length - 1);
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
return { name_y, numbers_y };
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
let finalHeight = $.derived(() => $$props.height || $.get(computedHeight));
|
|
865
|
+
var svg = root$3();
|
|
866
|
+
var g = $.child(svg);
|
|
580
867
|
var g_1 = $.child(g);
|
|
868
|
+
|
|
869
|
+
$.set_attribute(g_1, 'transform', 'translate(0, 10)');
|
|
870
|
+
|
|
581
871
|
var node = $.child(g_1);
|
|
582
872
|
|
|
583
873
|
$.each(node, 17, () => $.get(xTicks), $.index, ($$anchor, tick) => {
|
|
584
|
-
var
|
|
585
|
-
var line = $.
|
|
586
|
-
var
|
|
874
|
+
var fragment = root_1$2();
|
|
875
|
+
var line = $.first_child(fragment);
|
|
876
|
+
var line_1 = $.sibling(line);
|
|
877
|
+
var text = $.sibling(line_1);
|
|
587
878
|
var text_1 = $.child(text, true);
|
|
588
879
|
|
|
589
880
|
$.reset(text);
|
|
590
|
-
$.reset(g_2);
|
|
591
881
|
|
|
592
882
|
$.template_effect(
|
|
593
|
-
($0, $1, $2, $3) => {
|
|
883
|
+
($0, $1, $2, $3, $4, $5) => {
|
|
594
884
|
$.set_attribute(line, 'x1', $0);
|
|
595
885
|
$.set_attribute(line, 'x2', $1);
|
|
596
|
-
$.set_attribute(
|
|
597
|
-
$.set_attribute(
|
|
598
|
-
$.
|
|
886
|
+
$.set_attribute(line_1, 'x1', $2);
|
|
887
|
+
$.set_attribute(line_1, 'x2', $3);
|
|
888
|
+
$.set_attribute(line_1, 'y2', $.get(innerHeight) - xAxisYOffset + barYOffset);
|
|
889
|
+
$.set_style(line_1, $.get(tick) === 0 ? `stroke: ${alloColors.css.verydarkgrey}; stroke-width: 1; stroke-opacity: 0.8;` : `stroke: currentColor; stroke-opacity: 0.1;`);
|
|
890
|
+
$.set_attribute(text, 'x', $4);
|
|
891
|
+
$.set_style(text, `font-family: ${alloFonts}; font-size: 14px; fill: ${alloColors.css.verydarkgrey ?? ''};`);
|
|
892
|
+
$.set_text(text_1, $5);
|
|
599
893
|
},
|
|
600
894
|
[
|
|
895
|
+
() => $.get(xScale)($.get(tick)),
|
|
896
|
+
() => $.get(xScale)($.get(tick)),
|
|
601
897
|
() => $.get(xScale)($.get(tick)),
|
|
602
898
|
() => $.get(xScale)($.get(tick)),
|
|
603
899
|
() => $.get(xScale)($.get(tick)),
|
|
@@ -605,7 +901,7 @@ function Wordshift($$anchor, $$props) {
|
|
|
605
901
|
]
|
|
606
902
|
);
|
|
607
903
|
|
|
608
|
-
$.append($$anchor,
|
|
904
|
+
$.append($$anchor, fragment);
|
|
609
905
|
});
|
|
610
906
|
|
|
611
907
|
var text_2 = $.sibling(node);
|
|
@@ -629,50 +925,82 @@ function Wordshift($$anchor, $$props) {
|
|
|
629
925
|
},
|
|
630
926
|
[
|
|
631
927
|
() => Math.min($.get(xScale)(0), $.get(xScale)($.get(X)[$.get(i)])),
|
|
632
|
-
() => $.get(yScale)($.get(Y)[$.get(i)]),
|
|
928
|
+
() => $.get(yScale)($.get(Y)[$.get(i)]) + ($.get(yScale).bandwidth() - $.get(yScale).bandwidth() * barHeightFactor()) / 2,
|
|
633
929
|
() => Math.abs($.get(xScale)($.get(X)[$.get(i)]) - $.get(xScale)(0)),
|
|
634
|
-
() => $.get(yScale).bandwidth()
|
|
930
|
+
() => $.get(yScale).bandwidth() * barHeightFactor()
|
|
635
931
|
]
|
|
636
932
|
);
|
|
637
933
|
|
|
638
934
|
$.append($$anchor, rect);
|
|
639
935
|
});
|
|
640
936
|
|
|
641
|
-
var
|
|
937
|
+
var g_2 = $.sibling(node_1);
|
|
642
938
|
|
|
643
|
-
$.each(
|
|
644
|
-
var
|
|
939
|
+
$.each(g_2, 21, () => $.get(yScale).domain(), $.index, ($$anchor, label) => {
|
|
940
|
+
var g_3 = root_3();
|
|
941
|
+
const labelData = $.derived(() => parseLabelData($.get(label)));
|
|
942
|
+
const xValue = $.derived(() => $.get(YX).get($.get(label)));
|
|
943
|
+
var text_4 = $.child(g_3);
|
|
645
944
|
var text_5 = $.child(text_4, true);
|
|
646
945
|
|
|
647
946
|
$.reset(text_4);
|
|
648
947
|
|
|
948
|
+
var node_2 = $.sibling(text_4);
|
|
949
|
+
|
|
950
|
+
{
|
|
951
|
+
var consequent = ($$anchor) => {
|
|
952
|
+
var text_6 = root_4();
|
|
953
|
+
var text_7 = $.child(text_6, true);
|
|
954
|
+
|
|
955
|
+
$.reset(text_6);
|
|
956
|
+
|
|
957
|
+
$.template_effect(() => {
|
|
958
|
+
$.set_attribute(text_6, 'x', $.get(xValue) > 0 ? -6 : 6);
|
|
959
|
+
$.set_attribute(text_6, 'text-anchor', $.get(xValue) > 0 ? "end" : "start");
|
|
960
|
+
$.set_style(text_6, `font-family: ${alloFonts}; font-size: 14px; fill: ${alloColors.css.darkergrey ?? ''}; opacity: 0.5;`);
|
|
961
|
+
$.set_text(text_7, $.get(labelData).numbers_y);
|
|
962
|
+
});
|
|
963
|
+
|
|
964
|
+
$.append($$anchor, text_6);
|
|
965
|
+
};
|
|
966
|
+
|
|
967
|
+
$.if(node_2, ($$render) => {
|
|
968
|
+
if ($.get(labelData).numbers_y) $$render(consequent);
|
|
969
|
+
});
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
$.reset(g_3);
|
|
973
|
+
|
|
649
974
|
$.template_effect(
|
|
650
|
-
($0
|
|
651
|
-
$.set_attribute(
|
|
652
|
-
$.set_attribute(text_4, '
|
|
653
|
-
$.set_attribute(text_4, 'text-anchor',
|
|
654
|
-
$.
|
|
975
|
+
($0) => {
|
|
976
|
+
$.set_attribute(g_3, 'transform', `translate(0, ${$0 ?? ''})`);
|
|
977
|
+
$.set_attribute(text_4, 'x', $.get(xValue) > 0 ? 6 : -6);
|
|
978
|
+
$.set_attribute(text_4, 'text-anchor', $.get(xValue) > 0 ? "start" : "end");
|
|
979
|
+
$.set_style(text_4, `font-family: ${alloFonts}; font-size: 14px; fill: ${alloColors.css.verydarkgrey ?? ''};`);
|
|
980
|
+
$.set_text(text_5, $.get(labelData).name_y);
|
|
655
981
|
},
|
|
656
982
|
[
|
|
657
|
-
() => $.get(
|
|
658
|
-
() => $.get(yScale)($.get(label)) + $.get(yScale).bandwidth() / 2,
|
|
659
|
-
() => $.get(YX).get($.get(label)) > 0 ? "start" : "end"
|
|
983
|
+
() => $.get(yScale)($.get(label)) + $.get(yScale).bandwidth() / 2
|
|
660
984
|
]
|
|
661
985
|
);
|
|
662
986
|
|
|
663
|
-
$.append($$anchor,
|
|
987
|
+
$.append($$anchor, g_3);
|
|
664
988
|
});
|
|
665
989
|
|
|
666
|
-
$.reset(
|
|
990
|
+
$.reset(g_2);
|
|
667
991
|
$.reset(g);
|
|
992
|
+
$.reset(svg);
|
|
668
993
|
|
|
669
994
|
$.template_effect(
|
|
670
995
|
($0, $1) => {
|
|
671
|
-
$.set_attribute(
|
|
672
|
-
$.set_attribute(
|
|
996
|
+
$.set_attribute(svg, 'width', width());
|
|
997
|
+
$.set_attribute(svg, 'height', $.get(finalHeight));
|
|
998
|
+
$.set_attribute(svg, 'viewBox', `0 0 ${width() ?? ''} ${$.get(finalHeight) ?? ''}`);
|
|
999
|
+
$.set_attribute(g, 'transform', `translate(${marginLeft() ?? ''}, ${marginTop() - shiftSvgBy})`);
|
|
673
1000
|
$.set_attribute(text_2, 'x', $0);
|
|
1001
|
+
$.set_style(text_2, `font-family: ${alloFonts}; font-size: 16px; fill: ${alloColors.css.verydarkgrey ?? ''};`);
|
|
674
1002
|
$.set_text(text_3, xLabel());
|
|
675
|
-
$.set_attribute(
|
|
1003
|
+
$.set_attribute(g_2, 'transform', `translate(${$1 ?? ''}, 0)`);
|
|
676
1004
|
},
|
|
677
1005
|
[
|
|
678
1006
|
() => $.get(xScale)(0),
|
|
@@ -680,14 +1008,13 @@ function Wordshift($$anchor, $$props) {
|
|
|
680
1008
|
]
|
|
681
1009
|
);
|
|
682
1010
|
|
|
683
|
-
$.append($$anchor,
|
|
1011
|
+
$.append($$anchor, svg);
|
|
684
1012
|
$.pop();
|
|
685
1013
|
}
|
|
686
1014
|
|
|
687
|
-
var root_1$1 = $.from_svg(`<
|
|
688
|
-
var root_2$1 = $.from_svg(`<
|
|
689
|
-
var
|
|
690
|
-
var root$2 = $.from_svg(`<g class="balance-chart"><g class="grid"></g><!><g class="y-axis"></g></g>`);
|
|
1015
|
+
var root_1$1 = $.from_svg(`<rect></rect><text dy="0.35em"> </text>`, 1);
|
|
1016
|
+
var root_2$1 = $.from_svg(`<text x="0" dy="0.35em" text-anchor="middle"> </text>`);
|
|
1017
|
+
var root$2 = $.from_svg(`<svg style="overflow: visible; display: block;"><g class="balance-chart"><!><g class="y-axis"></g></g></svg>`);
|
|
691
1018
|
|
|
692
1019
|
function DivergingBarChart($$anchor, $$props) {
|
|
693
1020
|
$.push($$props, true);
|
|
@@ -700,7 +1027,10 @@ function DivergingBarChart($$anchor, $$props) {
|
|
|
700
1027
|
marginLeft = $.prop($$props, 'marginLeft', 3, 40),
|
|
701
1028
|
width = $.prop($$props, 'width', 3, 200),
|
|
702
1029
|
yPadding = $.prop($$props, 'yPadding', 3, 0.5),
|
|
703
|
-
colors = $.prop($$props, 'colors', 19, () => [
|
|
1030
|
+
colors = $.prop($$props, 'colors', 19, () => [
|
|
1031
|
+
alloColors.css.lightgrey,
|
|
1032
|
+
alloColors.css.paleblue
|
|
1033
|
+
]);
|
|
704
1034
|
|
|
705
1035
|
// Compute values (matching D3 version exactly)
|
|
706
1036
|
let X = $.derived(() => map($$props.data, x()));
|
|
@@ -729,33 +1059,12 @@ function DivergingBarChart($$anchor, $$props) {
|
|
|
729
1059
|
let xScale = $.derived(() => scaleLinear($.get(xDomain), $.get(xRange)));
|
|
730
1060
|
let yScale = $.derived(() => scaleBand().domain($.get(yDomain)).range($.get(yRange)).padding(yPadding()));
|
|
731
1061
|
let format = $.derived(() => $.get(xScale).tickFormat(100, "%"));
|
|
732
|
-
var
|
|
733
|
-
var
|
|
734
|
-
|
|
735
|
-
$.each(g_1, 21, () => $.get(xScale).ticks(width() / 80), $.index, ($$anchor, tick) => {
|
|
736
|
-
var line = root_1$1();
|
|
737
|
-
|
|
738
|
-
$.template_effect(
|
|
739
|
-
($0, $1) => {
|
|
740
|
-
$.set_attribute(line, 'x1', $0);
|
|
741
|
-
$.set_attribute(line, 'x2', $1);
|
|
742
|
-
$.set_attribute(line, 'y2', $.get(height) - marginTop() - marginBottom());
|
|
743
|
-
},
|
|
744
|
-
[
|
|
745
|
-
() => $.get(xScale)($.get(tick)),
|
|
746
|
-
() => $.get(xScale)($.get(tick))
|
|
747
|
-
]
|
|
748
|
-
);
|
|
749
|
-
|
|
750
|
-
$.append($$anchor, line);
|
|
751
|
-
});
|
|
752
|
-
|
|
753
|
-
$.reset(g_1);
|
|
754
|
-
|
|
755
|
-
var node = $.sibling(g_1);
|
|
1062
|
+
var svg = root$2();
|
|
1063
|
+
var g = $.child(svg);
|
|
1064
|
+
var node = $.child(g);
|
|
756
1065
|
|
|
757
1066
|
$.each(node, 17, () => $.get(I), $.index, ($$anchor, i) => {
|
|
758
|
-
var fragment =
|
|
1067
|
+
var fragment = root_1$1();
|
|
759
1068
|
var rect = $.first_child(fragment);
|
|
760
1069
|
var text = $.sibling(rect);
|
|
761
1070
|
var text_1 = $.child(text, true);
|
|
@@ -772,6 +1081,7 @@ function DivergingBarChart($$anchor, $$props) {
|
|
|
772
1081
|
$.set_attribute(text, 'x', $4);
|
|
773
1082
|
$.set_attribute(text, 'y', $5);
|
|
774
1083
|
$.set_attribute(text, 'text-anchor', $.get(X)[$.get(i)] < 0 ? "end" : "start");
|
|
1084
|
+
$.set_style(text, `font-family: ${alloFonts}; font-size: 10px; fill: ${alloColors.css.darkergrey ?? ''}; opacity: 0.5;`);
|
|
775
1085
|
$.set_text(text_1, $6);
|
|
776
1086
|
},
|
|
777
1087
|
[
|
|
@@ -788,10 +1098,10 @@ function DivergingBarChart($$anchor, $$props) {
|
|
|
788
1098
|
$.append($$anchor, fragment);
|
|
789
1099
|
});
|
|
790
1100
|
|
|
791
|
-
var
|
|
1101
|
+
var g_1 = $.sibling(node);
|
|
792
1102
|
|
|
793
|
-
$.each(
|
|
794
|
-
var text_2 =
|
|
1103
|
+
$.each(g_1, 21, () => $.get(yScale).domain(), $.index, ($$anchor, label) => {
|
|
1104
|
+
var text_2 = root_2$1();
|
|
795
1105
|
var text_3 = $.child(text_2, true);
|
|
796
1106
|
|
|
797
1107
|
$.reset(text_2);
|
|
@@ -800,6 +1110,7 @@ function DivergingBarChart($$anchor, $$props) {
|
|
|
800
1110
|
($0, $1) => {
|
|
801
1111
|
$.set_attribute(text_2, 'y', $0);
|
|
802
1112
|
$.set_attribute(text_2, 'opacity', $1);
|
|
1113
|
+
$.set_style(text_2, `font-family: ${alloFonts}; font-size: 14px; fill: ${alloColors.css.darkergrey ?? ''};`);
|
|
803
1114
|
$.set_text(text_3, $.get(label));
|
|
804
1115
|
},
|
|
805
1116
|
[
|
|
@@ -811,60 +1122,61 @@ function DivergingBarChart($$anchor, $$props) {
|
|
|
811
1122
|
$.append($$anchor, text_2);
|
|
812
1123
|
});
|
|
813
1124
|
|
|
814
|
-
$.reset(
|
|
1125
|
+
$.reset(g_1);
|
|
815
1126
|
$.reset(g);
|
|
1127
|
+
$.reset(svg);
|
|
816
1128
|
|
|
817
1129
|
$.template_effect(
|
|
818
1130
|
($0) => {
|
|
819
|
-
$.set_attribute(
|
|
820
|
-
$.set_attribute(
|
|
821
|
-
$.set_attribute(
|
|
1131
|
+
$.set_attribute(svg, 'width', width());
|
|
1132
|
+
$.set_attribute(svg, 'height', $.get(height));
|
|
1133
|
+
$.set_attribute(svg, 'viewBox', `0 0 ${width() ?? ''} ${$.get(height) ?? ''}`);
|
|
1134
|
+
$.set_attribute(g_1, 'transform', `translate(${$0 ?? ''}, -12)`);
|
|
822
1135
|
},
|
|
823
1136
|
[() => $.get(xScale)(0)]
|
|
824
1137
|
);
|
|
825
1138
|
|
|
826
|
-
$.append($$anchor,
|
|
1139
|
+
$.append($$anchor, svg);
|
|
827
1140
|
$.pop();
|
|
828
1141
|
}
|
|
829
1142
|
|
|
830
|
-
var root_1 = $.from_svg(`<rect
|
|
831
|
-
var
|
|
832
|
-
var
|
|
833
|
-
var root$1 = $.from_svg(`<g class="legend-container"></g><!>`, 1);
|
|
1143
|
+
var root_1 = $.from_svg(`<rect transform="rotate(-90) translate(-70,0)" style="stroke: black; stroke-width: 0.65; shape-rendering: crispEdges;"></rect>`);
|
|
1144
|
+
var root_2 = $.from_svg(`<g class="tick"><text dx="30" dy="-30" transform="rotate(90)"> </text></g>`);
|
|
1145
|
+
var root$1 = $.from_svg(`<svg style="overflow: visible; display: block;"><!><g transform="rotate(-90) translate(-60,5)"><!><text class="title" dx="30" dy="-5" transform="rotate(90)">Counts per cell</text></g></svg>`);
|
|
834
1146
|
|
|
835
1147
|
function Legend($$anchor, $$props) {
|
|
836
1148
|
$.push($$props, true);
|
|
837
1149
|
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
let
|
|
849
|
-
let
|
|
850
|
-
|
|
851
|
-
var
|
|
852
|
-
var g = $.first_child(fragment);
|
|
853
|
-
|
|
854
|
-
$.each(g, 21, () => color.domain(), $.index, ($$anchor, d) => {
|
|
855
|
-
var rect = root_1();
|
|
1150
|
+
let tickSize = $.prop($$props, 'tickSize', 3, 0),
|
|
1151
|
+
height = $.prop($$props, 'height', 19, () => 44 + tickSize()),
|
|
1152
|
+
width = $.prop($$props, 'width', 3, 300),
|
|
1153
|
+
marginTop = $.prop($$props, 'marginTop', 3, 13),
|
|
1154
|
+
marginBottom = $.prop($$props, 'marginBottom', 19, () => 16 + tickSize()),
|
|
1155
|
+
marginLeft = $.prop($$props, 'marginLeft', 3, 0),
|
|
1156
|
+
N_CATEGO = $.prop($$props, 'N_CATEGO', 3, 20);
|
|
1157
|
+
|
|
1158
|
+
const myramp = range(N_CATEGO()).map((i) => rgb(interpolateInferno(i / (N_CATEGO() - 1))).hex());
|
|
1159
|
+
const color = scaleOrdinal(range(N_CATEGO()), myramp);
|
|
1160
|
+
let x = $.derived(() => scaleBand().domain(color.domain()).rangeRound([marginLeft(), width() - 100]));
|
|
1161
|
+
let x2 = $.derived(() => scaleBand().domain(range($$props.max_count_log).map((i) => 10 ** i).sort((a, b) => b - a)).rangeRound([marginLeft() - 40, width() - 90]));
|
|
1162
|
+
var svg = root$1();
|
|
1163
|
+
var node = $.child(svg);
|
|
856
1164
|
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
$.set_attribute(rect, 'height', 13);
|
|
1165
|
+
$.each(node, 17, () => color.domain(), $.index, ($$anchor, d) => {
|
|
1166
|
+
var rect = root_1();
|
|
860
1167
|
|
|
861
1168
|
$.template_effect(
|
|
862
|
-
($0, $1) => {
|
|
863
|
-
$.set_attribute(rect, '
|
|
864
|
-
$.set_attribute(rect, '
|
|
1169
|
+
($0, $1, $2, $3) => {
|
|
1170
|
+
$.set_attribute(rect, 'x', $0);
|
|
1171
|
+
$.set_attribute(rect, 'y', marginTop());
|
|
1172
|
+
$.set_attribute(rect, 'width', $1);
|
|
1173
|
+
$.set_attribute(rect, 'height', $2);
|
|
1174
|
+
$.set_attribute(rect, 'fill', $3);
|
|
865
1175
|
},
|
|
866
1176
|
[
|
|
867
|
-
() => $.get(
|
|
1177
|
+
() => $.get(x)($.get(d)),
|
|
1178
|
+
() => Math.max(0, $.get(x).bandwidth()),
|
|
1179
|
+
() => $.get(x).bandwidth(),
|
|
868
1180
|
() => color($.get(d))
|
|
869
1181
|
]
|
|
870
1182
|
);
|
|
@@ -872,62 +1184,48 @@ function Legend($$anchor, $$props) {
|
|
|
872
1184
|
$.append($$anchor, rect);
|
|
873
1185
|
});
|
|
874
1186
|
|
|
875
|
-
$.
|
|
1187
|
+
var g = $.sibling(node);
|
|
1188
|
+
var node_1 = $.child(g);
|
|
876
1189
|
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
$.each(node, 17, () => $.get(yTicks), $.index, ($$anchor, tick, i) => {
|
|
880
|
-
var fragment_1 = root_2();
|
|
881
|
-
var g_1 = $.first_child(fragment_1);
|
|
1190
|
+
$.each(node_1, 17, () => $.get(x2).domain(), $.index, ($$anchor, tick) => {
|
|
1191
|
+
var g_1 = root_2();
|
|
882
1192
|
var text = $.child(g_1);
|
|
883
1193
|
var text_1 = $.child(text, true);
|
|
884
1194
|
|
|
885
1195
|
$.reset(text);
|
|
886
1196
|
$.reset(g_1);
|
|
887
1197
|
|
|
888
|
-
var node_1 = $.sibling(g_1);
|
|
889
|
-
|
|
890
|
-
{
|
|
891
|
-
var consequent = ($$anchor) => {
|
|
892
|
-
var g_2 = root_3();
|
|
893
|
-
var text_2 = $.child(g_2);
|
|
894
|
-
|
|
895
|
-
$.set_attribute(text_2, 'dy', "9");
|
|
896
|
-
$.reset(g_2);
|
|
897
|
-
|
|
898
|
-
$.template_effect(($0) => $.set_attribute(g_2, 'transform', `translate(${margin.left}, ${$0 ?? ''})`), [
|
|
899
|
-
() => $$props.DiamondHeight + $.get(logY)($.get(tick)) - margin.top
|
|
900
|
-
]);
|
|
901
|
-
|
|
902
|
-
$.append($$anchor, g_2);
|
|
903
|
-
};
|
|
904
|
-
|
|
905
|
-
$.if(node_1, ($$render) => {
|
|
906
|
-
if (i === $.get(yTicks).length - 1) $$render(consequent);
|
|
907
|
-
});
|
|
908
|
-
}
|
|
909
|
-
|
|
910
1198
|
$.template_effect(
|
|
911
|
-
($0
|
|
912
|
-
$.set_attribute(g_1, 'transform', `translate(${
|
|
913
|
-
$.
|
|
914
|
-
$.set_text(text_1,
|
|
1199
|
+
($0) => {
|
|
1200
|
+
$.set_attribute(g_1, 'transform', `translate(${$0 ?? ''}, 0)`);
|
|
1201
|
+
$.set_style(text, `font-family: ${alloFonts}; font-size: 14px; fill: ${alloColors.css.verydarkgrey ?? ''}; text-anchor: start;`);
|
|
1202
|
+
$.set_text(text_1, $.get(tick));
|
|
915
1203
|
},
|
|
916
|
-
[
|
|
917
|
-
() => $$props.DiamondHeight + $.get(logY)($.get(tick)) - margin.top,
|
|
918
|
-
() => $.get(logFormat10)($.get(tick))
|
|
919
|
-
]
|
|
1204
|
+
[() => $.get(x2)($.get(tick))]
|
|
920
1205
|
);
|
|
921
1206
|
|
|
922
|
-
$.append($$anchor,
|
|
1207
|
+
$.append($$anchor, g_1);
|
|
1208
|
+
});
|
|
1209
|
+
|
|
1210
|
+
var text_2 = $.sibling(node_1);
|
|
1211
|
+
|
|
1212
|
+
$.reset(g);
|
|
1213
|
+
$.reset(svg);
|
|
1214
|
+
|
|
1215
|
+
$.template_effect(() => {
|
|
1216
|
+
$.set_attribute(svg, 'width', width());
|
|
1217
|
+
$.set_attribute(svg, 'height', height());
|
|
1218
|
+
$.set_attribute(svg, 'viewBox', `0 0 ${width() ?? ''} ${height() ?? ''}`);
|
|
1219
|
+
$.set_attribute(text_2, 'x', marginLeft() - 25);
|
|
1220
|
+
$.set_attribute(text_2, 'y', marginTop() + marginBottom());
|
|
1221
|
+
$.set_style(text_2, `font-family: ${alloFonts}; font-size: 14px; fill: ${alloColors.css.verydarkgrey ?? ''}; text-anchor: start;`);
|
|
923
1222
|
});
|
|
924
1223
|
|
|
925
|
-
$.
|
|
926
|
-
$.append($$anchor, fragment);
|
|
1224
|
+
$.append($$anchor, svg);
|
|
927
1225
|
$.pop();
|
|
928
1226
|
}
|
|
929
1227
|
|
|
930
|
-
var root = $.from_html(`<div><
|
|
1228
|
+
var root = $.from_html(`<div class="allotaxonometer-dashboard" style="position: relative; margin: 0; padding: 0;"><div style="display:flex; flex-wrap: wrap; align-items:center; justify-content: center; row-gap: 50px;"><div style="margin-top:20px"><div style="display:flex; gap: 10em; justify-content: center; margin-bottom: -70px; margin-right: 70px; position: relative;"><div style="position: relative;"><div> </div> <div> </div> <div> </div></div> <div> </div></div> <div id="diamondplot"><!></div> <div style="display: flex; gap: 13em; justify-content: center;"><div id="legend" style="margin-left: -50px;"><!></div> <div id="balance"><!></div></div></div> <div style="margin-top:60px; overflow: visible;"><div id="wordshift" style="overflow: visible;"><!></div></div></div></div>`);
|
|
931
1229
|
|
|
932
1230
|
function Dashboard($$anchor, $$props) {
|
|
933
1231
|
$.push($$props, true);
|
|
@@ -938,24 +1236,25 @@ function Dashboard($$anchor, $$props) {
|
|
|
938
1236
|
barData = $.prop($$props, 'barData', 19, () => []),
|
|
939
1237
|
balanceData = $.prop($$props, 'balanceData', 19, () => []),
|
|
940
1238
|
xDomain = $.prop($$props, 'xDomain', 3, undefined),
|
|
1239
|
+
instrumentText = $.prop($$props, 'instrumentText', 3, 'Instrument: Rank-Turbulence Divergence'),
|
|
941
1240
|
title = $.prop($$props, 'title', 19, () => ['System 1', 'System 2']),
|
|
942
|
-
maxlog10 = $.prop($$props, 'maxlog10', 3, 0)
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
DashboardHeight = $.prop($$props, 'DashboardHeight', 3, 815),
|
|
1241
|
+
maxlog10 = $.prop($$props, 'maxlog10', 3, 0);
|
|
1242
|
+
$.prop($$props, 'height', 3, 815);
|
|
1243
|
+
$.prop($$props, 'width', 3, 1200);
|
|
1244
|
+
let DashboardHeight = $.prop($$props, 'DashboardHeight', 3, 815),
|
|
946
1245
|
DashboardWidth = $.prop($$props, 'DashboardWidth', 3, 1200),
|
|
947
1246
|
DiamondHeight = $.prop($$props, 'DiamondHeight', 3, 600),
|
|
948
1247
|
DiamondWidth = $.prop($$props, 'DiamondWidth', 3, 600),
|
|
949
1248
|
marginInner = $.prop($$props, 'marginInner', 3, 160),
|
|
950
1249
|
marginDiamond = $.prop($$props, 'marginDiamond', 3, 40),
|
|
951
|
-
max_count_log = $.prop($$props, 'max_count_log', 3, undefined)
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
1250
|
+
max_count_log = $.prop($$props, 'max_count_log', 3, undefined);
|
|
1251
|
+
$.prop($$props, 'class', 3, '');
|
|
1252
|
+
$.prop($$props, 'style', 3, '');
|
|
1253
|
+
$.prop($$props, 'showDiamond', 3, true);
|
|
1254
|
+
$.prop($$props, 'showWordshift', 3, true);
|
|
1255
|
+
$.prop($$props, 'showDivergingBar', 3, true);
|
|
1256
|
+
$.prop($$props, 'showLegend', 3, true);
|
|
1257
|
+
$.rest_props($$props, [
|
|
959
1258
|
'$$slots',
|
|
960
1259
|
'$$events',
|
|
961
1260
|
'$$legacy',
|
|
@@ -965,6 +1264,7 @@ function Dashboard($$anchor, $$props) {
|
|
|
965
1264
|
'barData',
|
|
966
1265
|
'balanceData',
|
|
967
1266
|
'xDomain',
|
|
1267
|
+
'instrumentText',
|
|
968
1268
|
'title',
|
|
969
1269
|
'maxlog10',
|
|
970
1270
|
'height',
|
|
@@ -992,133 +1292,137 @@ function Dashboard($$anchor, $$props) {
|
|
|
992
1292
|
]);
|
|
993
1293
|
|
|
994
1294
|
var div = root();
|
|
1295
|
+
var div_1 = $.child(div);
|
|
1296
|
+
var div_2 = $.child(div_1);
|
|
1297
|
+
var div_3 = $.child(div_2);
|
|
1298
|
+
var div_4 = $.child(div_3);
|
|
1299
|
+
var div_5 = $.child(div_4);
|
|
1300
|
+
var text = $.child(div_5, true);
|
|
995
1301
|
|
|
996
|
-
$.
|
|
997
|
-
div,
|
|
998
|
-
() => ({
|
|
999
|
-
class: `allotaxonometer-dashboard ${className() ?? ''}`,
|
|
1000
|
-
style: style(),
|
|
1001
|
-
...restProps
|
|
1002
|
-
}),
|
|
1003
|
-
undefined,
|
|
1004
|
-
'svelte-n6o6ey'
|
|
1005
|
-
);
|
|
1302
|
+
$.reset(div_5);
|
|
1006
1303
|
|
|
1007
|
-
var
|
|
1008
|
-
var
|
|
1304
|
+
var div_6 = $.sibling(div_5, 2);
|
|
1305
|
+
var text_1 = $.child(div_6, true);
|
|
1009
1306
|
|
|
1010
|
-
|
|
1011
|
-
var consequent = ($$anchor) => {
|
|
1012
|
-
Diamond($$anchor, {
|
|
1013
|
-
get dat() {
|
|
1014
|
-
return dat();
|
|
1015
|
-
},
|
|
1016
|
-
get alpha() {
|
|
1017
|
-
return alpha();
|
|
1018
|
-
},
|
|
1019
|
-
get divnorm() {
|
|
1020
|
-
return divnorm();
|
|
1021
|
-
},
|
|
1022
|
-
get title() {
|
|
1023
|
-
return title();
|
|
1024
|
-
},
|
|
1025
|
-
get maxlog10() {
|
|
1026
|
-
return maxlog10();
|
|
1027
|
-
},
|
|
1028
|
-
get DiamondHeight() {
|
|
1029
|
-
return DiamondHeight();
|
|
1030
|
-
},
|
|
1031
|
-
get marginInner() {
|
|
1032
|
-
return marginInner();
|
|
1033
|
-
},
|
|
1034
|
-
get marginDiamond() {
|
|
1035
|
-
return marginDiamond();
|
|
1036
|
-
}
|
|
1037
|
-
});
|
|
1038
|
-
};
|
|
1307
|
+
$.reset(div_6);
|
|
1039
1308
|
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
});
|
|
1043
|
-
}
|
|
1309
|
+
var div_7 = $.sibling(div_6, 2);
|
|
1310
|
+
var text_2 = $.child(div_7);
|
|
1044
1311
|
|
|
1045
|
-
|
|
1312
|
+
$.reset(div_7);
|
|
1313
|
+
$.reset(div_4);
|
|
1046
1314
|
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
Wordshift($$anchor, {
|
|
1050
|
-
get barData() {
|
|
1051
|
-
return barData();
|
|
1052
|
-
},
|
|
1053
|
-
get DashboardHeight() {
|
|
1054
|
-
return DashboardHeight();
|
|
1055
|
-
},
|
|
1056
|
-
get DashboardWidth() {
|
|
1057
|
-
return DashboardWidth();
|
|
1058
|
-
},
|
|
1059
|
-
get xDomain() {
|
|
1060
|
-
return $.get(wordshiftXDomain);
|
|
1061
|
-
},
|
|
1062
|
-
width: 640,
|
|
1063
|
-
marginLeft: 140
|
|
1064
|
-
});
|
|
1065
|
-
};
|
|
1315
|
+
var div_8 = $.sibling(div_4, 2);
|
|
1316
|
+
var text_3 = $.child(div_8, true);
|
|
1066
1317
|
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
});
|
|
1070
|
-
}
|
|
1318
|
+
$.reset(div_8);
|
|
1319
|
+
$.reset(div_3);
|
|
1071
1320
|
|
|
1072
|
-
var
|
|
1321
|
+
var div_9 = $.sibling(div_3, 2);
|
|
1322
|
+
var node = $.child(div_9);
|
|
1073
1323
|
|
|
1074
|
-
{
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1324
|
+
Diamond(node, {
|
|
1325
|
+
get dat() {
|
|
1326
|
+
return dat();
|
|
1327
|
+
},
|
|
1328
|
+
get alpha() {
|
|
1329
|
+
return alpha();
|
|
1330
|
+
},
|
|
1331
|
+
get divnorm() {
|
|
1332
|
+
return divnorm();
|
|
1333
|
+
},
|
|
1334
|
+
get title() {
|
|
1335
|
+
return title();
|
|
1336
|
+
},
|
|
1337
|
+
get maxlog10() {
|
|
1338
|
+
return maxlog10();
|
|
1339
|
+
},
|
|
1340
|
+
get DiamondHeight() {
|
|
1341
|
+
return DiamondHeight();
|
|
1342
|
+
},
|
|
1343
|
+
get marginInner() {
|
|
1344
|
+
return marginInner();
|
|
1345
|
+
},
|
|
1346
|
+
get marginDiamond() {
|
|
1347
|
+
return marginDiamond();
|
|
1348
|
+
}
|
|
1349
|
+
});
|
|
1088
1350
|
|
|
1089
|
-
|
|
1090
|
-
if (showDivergingBar() && balanceData().length > 0) $$render(consequent_2);
|
|
1091
|
-
});
|
|
1092
|
-
}
|
|
1351
|
+
$.reset(div_9);
|
|
1093
1352
|
|
|
1094
|
-
var
|
|
1353
|
+
var div_10 = $.sibling(div_9, 2);
|
|
1354
|
+
var div_11 = $.child(div_10);
|
|
1355
|
+
var node_1 = $.child(div_11);
|
|
1356
|
+
const expression = $.derived(() => max_count_log() || 5);
|
|
1095
1357
|
|
|
1096
|
-
{
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
}
|
|
1108
|
-
});
|
|
1109
|
-
};
|
|
1358
|
+
Legend(node_1, {
|
|
1359
|
+
get diamond_dat() {
|
|
1360
|
+
return dat().counts;
|
|
1361
|
+
},
|
|
1362
|
+
get DiamondHeight() {
|
|
1363
|
+
return DiamondHeight();
|
|
1364
|
+
},
|
|
1365
|
+
get max_count_log() {
|
|
1366
|
+
return $.get(expression);
|
|
1367
|
+
}
|
|
1368
|
+
});
|
|
1110
1369
|
|
|
1111
|
-
|
|
1112
|
-
if (showLegend() && dat()) $$render(consequent_3);
|
|
1113
|
-
});
|
|
1114
|
-
}
|
|
1370
|
+
$.reset(div_11);
|
|
1115
1371
|
|
|
1116
|
-
$.
|
|
1372
|
+
var div_12 = $.sibling(div_11, 2);
|
|
1373
|
+
var node_2 = $.child(div_12);
|
|
1374
|
+
|
|
1375
|
+
DivergingBarChart(node_2, {
|
|
1376
|
+
get data() {
|
|
1377
|
+
return balanceData();
|
|
1378
|
+
},
|
|
1379
|
+
get DiamondHeight() {
|
|
1380
|
+
return DiamondHeight();
|
|
1381
|
+
},
|
|
1382
|
+
get DiamondWidth() {
|
|
1383
|
+
return DiamondWidth();
|
|
1384
|
+
}
|
|
1385
|
+
});
|
|
1386
|
+
|
|
1387
|
+
$.reset(div_12);
|
|
1388
|
+
$.reset(div_10);
|
|
1389
|
+
$.reset(div_2);
|
|
1390
|
+
|
|
1391
|
+
var div_13 = $.sibling(div_2, 2);
|
|
1392
|
+
var div_14 = $.child(div_13);
|
|
1393
|
+
var node_3 = $.child(div_14);
|
|
1394
|
+
|
|
1395
|
+
Wordshift(node_3, {
|
|
1396
|
+
get barData() {
|
|
1397
|
+
return barData();
|
|
1398
|
+
},
|
|
1399
|
+
get DashboardHeight() {
|
|
1400
|
+
return DashboardHeight();
|
|
1401
|
+
},
|
|
1402
|
+
get DashboardWidth() {
|
|
1403
|
+
return DashboardWidth();
|
|
1404
|
+
},
|
|
1405
|
+
get xDomain() {
|
|
1406
|
+
return $.get(wordshiftXDomain);
|
|
1407
|
+
},
|
|
1408
|
+
width: 640,
|
|
1409
|
+
marginLeft: 140
|
|
1410
|
+
});
|
|
1411
|
+
|
|
1412
|
+
$.reset(div_14);
|
|
1413
|
+
$.reset(div_13);
|
|
1414
|
+
$.reset(div_1);
|
|
1117
1415
|
$.reset(div);
|
|
1118
1416
|
|
|
1119
1417
|
$.template_effect(() => {
|
|
1120
|
-
$.
|
|
1121
|
-
$.
|
|
1418
|
+
$.set_style(div_5, `font-family: ${alloFonts}; font-size: 16px; color: ${alloColors.css.superdarkgrey ?? ''};`);
|
|
1419
|
+
$.set_text(text, title()[0]);
|
|
1420
|
+
$.set_style(div_6, `position: absolute; top: 100%; left: -12em; margin-top: 2.5em; font-family: ${alloFonts}; font-size: 14px; color: ${alloColors.css.darkgrey ?? ''};`);
|
|
1421
|
+
$.set_text(text_1, instrumentText());
|
|
1422
|
+
$.set_style(div_7, `position: absolute; top: 100%; left: -12em; margin-top: 3.5em; font-family: ${alloFonts}; font-size: 14px; color: ${alloColors.css.darkgrey ?? ''};`);
|
|
1423
|
+
$.set_text(text_2, `α = ${alpha() ?? ''}`);
|
|
1424
|
+
$.set_style(div_8, `font-family: ${alloFonts}; font-size: 16px; color: ${alloColors.css.superdarkgrey ?? ''};`);
|
|
1425
|
+
$.set_text(text_3, title()[1]);
|
|
1122
1426
|
});
|
|
1123
1427
|
|
|
1124
1428
|
$.append($$anchor, div);
|