@milaboratories/graph-maker 1.1.216 → 1.1.217
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/components/AesSettings/types.d.ts +1 -1
- package/dist/components/AesSettings/types.d.ts.map +1 -1
- package/dist/constantsAesthetic.d.ts.map +1 -1
- package/dist/constantsAesthetic.js +48 -46
- package/dist/constantsAesthetic.js.map +1 -1
- package/dist/index.vue.js +41 -41
- package/dist/index.vue.js.map +1 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +54 -56
- package/dist/store.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ export type PaletteInfo = {
|
|
|
5
5
|
title: string;
|
|
6
6
|
colors: PaletteData;
|
|
7
7
|
};
|
|
8
|
-
export type CategoricalPalette = 'light' | 'bright' | 'dark' | 'paired' | 'triadic';
|
|
8
|
+
export type CategoricalPalette = 'light' | 'bright' | 'dark' | 'paired' | 'triadic' | 'magnetic';
|
|
9
9
|
export type SequentialPalette = 'viridis' | 'magma' | 'density' | 'salinity' | 'sunset' | 'perceptual_rainbow';
|
|
10
10
|
export type DivergingPalette = 'spectrum' | 'teal_red' | 'blue_red' | 'lime_rose' | 'viridis_magma';
|
|
11
11
|
export type ContinuousPalette = SequentialPalette | DivergingPalette;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/AesSettings/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAEjG,MAAM,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;AACnC,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/AesSettings/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAEjG,MAAM,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;AACnC,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AACf,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,GACR,oBAAoB,CAAC;AACzB,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,UAAU,GACV,UAAU,GACV,WAAW,GACX,eAAe,CAAC;AACpB,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AACrE,MAAM,MAAM,OAAO,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAE7D,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,2BAA2B,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,0BAA0B,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC7C,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,2BAA2B,GAAG,0BAA0B,CAAC;AACxF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC3C,CAAC;AACF,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAE1D,MAAM,MAAM,QAAQ,GAChB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAET,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,SAAS,CAAC;AACd,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constantsAesthetic.d.ts","sourceRoot":"","sources":["../src/constantsAesthetic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAAE,iBAAiB,EACrC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAClD,OAAO,EACP,WAAW,EACX,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EA+BzD,CAAC;AAEF,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,eAAO,MAAM,gBAAgB;UACE,MAAM;WAAS,MAAM;EAKnD,CAAC;
|
|
1
|
+
{"version":3,"file":"constantsAesthetic.d.ts","sourceRoot":"","sources":["../src/constantsAesthetic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAAE,iBAAiB,EACrC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAClD,OAAO,EACP,WAAW,EACX,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EA+BzD,CAAC;AAEF,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,eAAO,MAAM,gBAAgB;UACE,MAAM;WAAS,MAAM;EAKnD,CAAC;AAiCF,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EAOhD,CAAC;AACF,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAO9C,CAAC;AACF,eAAO,MAAM,cAAc,EAAE,gBAAgB,EAM5C,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEzE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAEvE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAErE;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAOnE,CAAC;AACF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAOjE,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAM/D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,CAIpD,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,kBAA4B,CAAC;AACvE,eAAO,MAAM,0BAA0B,EAAE,iBAA8B,CAAC;AACxE,eAAO,MAAM,gBAAgB,EAAE,QAAQ,EAKtC,CAAC;AAEF,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,eAAO,MAAM,gBAAgB,EAAE,QAAQ,EAAoE,CAAC;AAE5G,eAAO,MAAM,iBAAiB,EAAE,QAAkB,CAAC;AACnD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAOzD,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;CAMpC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;CAwBnC,CAAC"}
|
|
@@ -29,12 +29,12 @@ const l = [
|
|
|
29
29
|
{ name: "Black", color: "#110529" },
|
|
30
30
|
{ name: "White", color: "#FFFFFF" },
|
|
31
31
|
{ name: "None", color: "transparent" }
|
|
32
|
-
],
|
|
32
|
+
], h = "#FFFFFF", O = "#110529";
|
|
33
33
|
l.reduce(
|
|
34
34
|
(o, e) => (o[e.color] = e, o),
|
|
35
35
|
{}
|
|
36
36
|
);
|
|
37
|
-
const t = l.slice(0, -3).map((o) => o.color), r = t.filter((o, e) => e % 3 === 0),
|
|
37
|
+
const t = l.slice(0, -3).map((o) => o.color), r = t.filter((o, e) => e % 3 === 0), c = t.filter((o, e) => e % 3 === 1), a = t.filter((o, e) => e % 3 === 2), i = t.filter((o, e) => e % 3 !== 2), n = t, s = ["#4bbecf", "#db5197", "#c8d400", "#ffdd00", "#4a96d2", "#f7a600", "#00a9cb"], F = ["#FFF680", "#53D788", "#36739D", "#4A005C"], A = ["#FFF680", "#F77E5B", "#902B83", "#2B125C"], E = ["#DFFADC", "#74CFD1", "#635AC1", "#611347"], C = ["#FAFAB4", "#8DDA7F", "#337E90", "#1C0F5C"], d = ["#FFEA80", "#F07A76", "#7535A4", "#003752"], D = ["#FFF780", "#6CEA90", "#6C90F0", "#942AAE"], _ = ["#43317B", "#7ACFAC", "#F5F5B7", "#F07B75", "#5C1243"], L = ["#122B5C", "#41B5A8", "#F0F0F0", "#F07C80", "#5C1243"], m = ["#0E0E8F", "#7E93FB", "#F0F0F0", "#ED7883", "#5C1243"], T = ["#2E5C00", "#9ED26A", "#F0F0F0", "#EB8BDB", "#701260"], I = [
|
|
38
38
|
"#4A005C",
|
|
39
39
|
"#36749D",
|
|
40
40
|
"#56D688",
|
|
@@ -42,53 +42,55 @@ const t = l.slice(0, -3).map((o) => o.color), r = t.filter((o, e) => e % 3 === 0
|
|
|
42
42
|
"#F77E5E",
|
|
43
43
|
"#902B82",
|
|
44
44
|
"#2B125C"
|
|
45
|
-
],
|
|
45
|
+
], f = [
|
|
46
46
|
"light",
|
|
47
47
|
"bright",
|
|
48
48
|
"dark",
|
|
49
49
|
"paired",
|
|
50
|
-
"triadic"
|
|
51
|
-
|
|
50
|
+
"triadic",
|
|
51
|
+
"magnetic"
|
|
52
|
+
], S = [
|
|
52
53
|
"viridis",
|
|
53
54
|
"magma",
|
|
54
55
|
"density",
|
|
55
56
|
"salinity",
|
|
56
57
|
"sunset",
|
|
57
58
|
"perceptual_rainbow"
|
|
58
|
-
],
|
|
59
|
+
], G = [
|
|
59
60
|
"spectrum",
|
|
60
61
|
"teal_red",
|
|
61
62
|
"blue_red",
|
|
62
63
|
"lime_rose",
|
|
63
64
|
"viridis_magma"
|
|
64
65
|
];
|
|
65
|
-
function
|
|
66
|
-
return
|
|
66
|
+
function N(o) {
|
|
67
|
+
return f.includes(o);
|
|
67
68
|
}
|
|
68
|
-
const
|
|
69
|
+
const g = {
|
|
69
70
|
light: { title: "Light", colors: r },
|
|
70
|
-
bright: { title: "Bright", colors:
|
|
71
|
-
dark: { title: "Dark", colors:
|
|
71
|
+
bright: { title: "Bright", colors: c },
|
|
72
|
+
dark: { title: "Dark", colors: a },
|
|
72
73
|
paired: { title: "Paired", colors: i },
|
|
73
|
-
triadic: { title: "Triadic", colors: n }
|
|
74
|
+
triadic: { title: "Triadic", colors: n },
|
|
75
|
+
magnetic: { title: "Magnetic", colors: s }
|
|
74
76
|
}, R = {
|
|
75
|
-
viridis: { title: "Viridis", colors:
|
|
76
|
-
magma: { title: "Magma", colors:
|
|
77
|
-
density: { title: "Density", colors:
|
|
78
|
-
salinity: { title: "Salinity", colors:
|
|
79
|
-
sunset: { title: "Sunset", colors:
|
|
77
|
+
viridis: { title: "Viridis", colors: F },
|
|
78
|
+
magma: { title: "Magma", colors: A },
|
|
79
|
+
density: { title: "Density", colors: E },
|
|
80
|
+
salinity: { title: "Salinity", colors: C },
|
|
81
|
+
sunset: { title: "Sunset", colors: d },
|
|
80
82
|
perceptual_rainbow: { title: "Rainbow", colors: D }
|
|
81
|
-
},
|
|
83
|
+
}, B = {
|
|
82
84
|
spectrum: { title: "Spectrum", colors: _ },
|
|
83
85
|
teal_red: { title: "Teal-Red", colors: L },
|
|
84
|
-
blue_red: { title: "Blue-Red", colors:
|
|
85
|
-
lime_rose: { title: "Lime-Rose", colors:
|
|
86
|
-
viridis_magma: { title: "Vir-Mag", colors:
|
|
87
|
-
},
|
|
88
|
-
...
|
|
86
|
+
blue_red: { title: "Blue-Red", colors: m },
|
|
87
|
+
lime_rose: { title: "Lime-Rose", colors: T },
|
|
88
|
+
viridis_magma: { title: "Vir-Mag", colors: I }
|
|
89
|
+
}, P = {
|
|
90
|
+
...g,
|
|
89
91
|
...R,
|
|
90
|
-
...
|
|
91
|
-
},
|
|
92
|
+
...B
|
|
93
|
+
}, u = "light", M = "salinity", U = [
|
|
92
94
|
"0",
|
|
93
95
|
"5",
|
|
94
96
|
"1",
|
|
@@ -109,20 +111,20 @@ const f = {
|
|
|
109
111
|
"21",
|
|
110
112
|
"24",
|
|
111
113
|
"25"
|
|
112
|
-
],
|
|
114
|
+
], b = "#F0F0F0", k = "21", p = ["solid", "dashed", "dotted", "dotdash", "longdash", "twodash"], y = "solid", V = {
|
|
113
115
|
solid: { title: "Solid" },
|
|
114
116
|
dashed: { title: "Dashed" },
|
|
115
117
|
dotted: { title: "Dotted" },
|
|
116
118
|
dotdash: { title: "Dotdash" },
|
|
117
119
|
longdash: { title: "Longdash" },
|
|
118
120
|
twodash: { title: "Twodash" }
|
|
119
|
-
},
|
|
121
|
+
}, v = {
|
|
120
122
|
A: "#cc0100",
|
|
121
123
|
C: "#0000cc",
|
|
122
124
|
G: "#ffb300",
|
|
123
125
|
T: "#027f00",
|
|
124
126
|
U: "#027f00"
|
|
125
|
-
},
|
|
127
|
+
}, w = {
|
|
126
128
|
A: "#7fa0f0",
|
|
127
129
|
R: "#ef1405",
|
|
128
130
|
N: "#01ff00",
|
|
@@ -148,26 +150,26 @@ const f = {
|
|
|
148
150
|
Z: "#eeeeee"
|
|
149
151
|
};
|
|
150
152
|
export {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
153
|
+
w as AMINOACID_COLOR_MAPPING,
|
|
154
|
+
f as CATEGORICAL_LIST,
|
|
155
|
+
g as CATEGORICAL_MAP,
|
|
156
|
+
O as DEFAULT_BLACK,
|
|
157
|
+
u as DEFAULT_CATEGORICAL_PALETTE,
|
|
158
|
+
M as DEFAULT_CONTINUOUS_PALETTE,
|
|
157
159
|
k as DEFAULT_DOT_SHAPE,
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
y as DEFAULT_LINE_TYPE,
|
|
161
|
+
h as DEFAULT_WHITE,
|
|
162
|
+
G as DIVERGING_LIST,
|
|
163
|
+
B as DIVERGING_MAP,
|
|
162
164
|
l as FIXED_COLORS,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
165
|
+
p as FIXED_LINE_TYPES,
|
|
166
|
+
U as FIXES_DOT_SHAPES,
|
|
167
|
+
V as LINE_TYPES_MAP,
|
|
168
|
+
v as NUCLEOTIDE_COLOR_MAPPING,
|
|
169
|
+
P as PALETTE_MAP,
|
|
170
|
+
S as SEQUENTIAL_LIST,
|
|
169
171
|
R as SEQUENTIAL_MAP,
|
|
170
|
-
|
|
171
|
-
|
|
172
|
+
b as UNKNOWN_COLOR,
|
|
173
|
+
N as isCategorical
|
|
172
174
|
};
|
|
173
175
|
//# sourceMappingURL=constantsAesthetic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constantsAesthetic.js","sources":["../src/constantsAesthetic.ts"],"sourcesContent":["import type {\n CategoricalPalette, ContinuousPalette,\n DivergingPalette, DotShape, LineType, LineTypeInfo,\n Palette,\n PaletteInfo,\n SequentialPalette,\n} from './components/AesSettings/types';\n\nexport const FIXED_COLORS: { name: string; color: string }[] = [\n { name: 'Light green', color: '#99E099' },\n { name: 'Green', color: '#42B842' },\n { name: 'Dark green', color: '#198020' },\n { name: 'Light violet', color: '#C1ADFF' },\n { name: 'Violet', color: '#845CFF' },\n { name: 'Dark violet', color: '#5F31CC' },\n { name: 'Light orange', color: '#FFCB8F' },\n { name: 'Orange', color: '#FF9429' },\n { name: 'Dark orange', color: '#C26A27' },\n { name: 'Light teal', color: '#90E0E0' },\n { name: 'Teal', color: '#27C2C2' },\n { name: 'Dark teal', color: '#068A94' },\n { name: 'Light rose', color: '#FAAAFA' },\n { name: 'Rose', color: '#E553E5' },\n { name: 'Dark rose', color: '#A324B2' },\n { name: 'Light lime', color: '#CBEB67' },\n { name: 'Lime', color: '#95C700' },\n { name: 'Dark lime', color: '#659406' },\n { name: 'Light blue', color: '#99CCFF' },\n { name: 'Blue', color: '#2D93FA' },\n { name: 'Dark blue', color: '#105BCC' },\n { name: 'Light red', color: '#FFADBA' },\n { name: 'Red', color: '#F05670' },\n { name: 'Dark red', color: '#AD3757' },\n { name: 'Light grey', color: '#D3D7E0' },\n { name: 'Grey', color: '#929BAD' },\n { name: 'Dark grey', color: '#5E5E70' },\n { name: 'Black', color: '#110529' },\n { name: 'White', color: '#FFFFFF' },\n { name: 'None', color: 'transparent' },\n];\n\nexport const DEFAULT_WHITE = '#FFFFFF';\nexport const DEFAULT_BLACK = '#110529';\n\nexport const FIXED_COLORS_MAP = FIXED_COLORS.reduce(\n (res: Record<string, { name: string; color: string }>, item) => {\n res[item.color] = item;\n return res;\n },\n {},\n);\n\n// fixed colors without black, white, transparent - base for categorical palettes\nconst COLORS = FIXED_COLORS.slice(0, -3).map((el) => el.color);\n\nconst CATEGORICAL_LIGHT = COLORS.filter((_el, idx) => idx % 3 === 0);\nconst CATEGORICAL_BRIGHT = COLORS.filter((_el, idx) => idx % 3 === 1);\nconst CATEGORICAL_DARK = COLORS.filter((_el, idx) => idx % 3 === 2);\nconst CATEGORICAL_PAIRED = COLORS.filter((_el, idx) => idx % 3 !== 2);\nconst CATEGORICAL_TRIADIC = COLORS;\n\nconst VIRIDIS = ['#FFF680', '#53D788', '#36739D', '#4A005C'];\nconst MAGMA = ['#FFF680', '#F77E5B', '#902B83', '#2B125C'];\nconst DENSITY = ['#DFFADC', '#74CFD1', '#635AC1', '#611347'];\nconst SALINITY = ['#FAFAB4', '#8DDA7F', '#337E90', '#1C0F5C'];\nconst SUNSET = ['#FFEA80', '#F07A76', '#7535A4', '#003752'];\nconst PERCEPTUAL_RAINBOW = ['#FFF780', '#6CEA90', '#6C90F0', '#942AAE'];\n\nconst SPECTRUM = ['#43317B', '#7ACFAC', '#F5F5B7', '#F07B75', '#5C1243'];\nconst TEAL_RED = ['#122B5C', '#41B5A8', '#F0F0F0', '#F07C80', '#5C1243'];\nconst BLUE_RED = ['#0E0E8F', '#7E93FB', '#F0F0F0', '#ED7883', '#5C1243'];\nconst LIME_ROSE = ['#2E5C00', '#9ED26A', '#F0F0F0', '#EB8BDB', '#701260'];\nconst VIRIDIS_MAGMA = [\n '#4A005C',\n '#36749D',\n '#56D688',\n '#FFF680',\n '#F77E5E',\n '#902B82',\n '#2B125C',\n];\n\nexport const CATEGORICAL_LIST: CategoricalPalette[] = [\n 'light',\n 'bright',\n 'dark',\n 'paired',\n 'triadic',\n];\nexport const SEQUENTIAL_LIST: SequentialPalette[] = [\n 'viridis',\n 'magma',\n 'density',\n 'salinity',\n 'sunset',\n 'perceptual_rainbow',\n];\nexport const DIVERGING_LIST: DivergingPalette[] = [\n 'spectrum',\n 'teal_red',\n 'blue_red',\n 'lime_rose',\n 'viridis_magma',\n];\n\nexport function isCategorical(value: Palette): value is CategoricalPalette {\n return CATEGORICAL_LIST.includes(value as CategoricalPalette);\n}\n\nexport function isSequential(value: Palette): value is SequentialPalette {\n return SEQUENTIAL_LIST.includes(value as SequentialPalette);\n}\n\nexport function isDiverging(value: Palette): value is DivergingPalette {\n return DIVERGING_LIST.includes(value as DivergingPalette);\n}\n\nexport const CATEGORICAL_MAP: Record<CategoricalPalette, PaletteInfo> = {\n light: { title: 'Light', colors: CATEGORICAL_LIGHT },\n bright: { title: 'Bright', colors: CATEGORICAL_BRIGHT },\n dark: { title: 'Dark', colors: CATEGORICAL_DARK },\n paired: { title: 'Paired', colors: CATEGORICAL_PAIRED },\n triadic: { title: 'Triadic', colors: CATEGORICAL_TRIADIC },\n};\nexport const SEQUENTIAL_MAP: Record<SequentialPalette, PaletteInfo> = {\n viridis: { title: 'Viridis', colors: VIRIDIS },\n magma: { title: 'Magma', colors: MAGMA },\n density: { title: 'Density', colors: DENSITY },\n salinity: { title: 'Salinity', colors: SALINITY },\n sunset: { title: 'Sunset', colors: SUNSET },\n perceptual_rainbow: { title: 'Rainbow', colors: PERCEPTUAL_RAINBOW },\n};\n\nexport const DIVERGING_MAP: Record<DivergingPalette, PaletteInfo> = {\n spectrum: { title: 'Spectrum', colors: SPECTRUM },\n teal_red: { title: 'Teal-Red', colors: TEAL_RED },\n blue_red: { title: 'Blue-Red', colors: BLUE_RED },\n lime_rose: { title: 'Lime-Rose', colors: LIME_ROSE },\n viridis_magma: { title: 'Vir-Mag', colors: VIRIDIS_MAGMA },\n};\n\nexport const PALETTE_MAP: Record<Palette, PaletteInfo> = {\n ...CATEGORICAL_MAP,\n ...SEQUENTIAL_MAP,\n ...DIVERGING_MAP,\n};\n\nexport const DEFAULT_CATEGORICAL_PALETTE: CategoricalPalette = 'light';\nexport const DEFAULT_CONTINUOUS_PALETTE: ContinuousPalette = 'salinity';\nexport const FIXES_DOT_SHAPES: DotShape[] = [\n '0', '5', '1', '2', '6',\n '7', '9', '3', '4', '8',\n '12', '10', '13', '14', '11',\n '22', '23', '21', '24', '25',\n];\n\nexport const UNKNOWN_COLOR = '#F0F0F0';\n\nexport const DEFAULT_DOT_SHAPE = '21'; // filled circle\n\nexport const FIXED_LINE_TYPES: LineType[] = ['solid', 'dashed', 'dotted', 'dotdash', 'longdash', 'twodash'];\n\nexport const DEFAULT_LINE_TYPE: LineType = 'solid';\nexport const LINE_TYPES_MAP: Record<LineType, LineTypeInfo> = {\n solid: { title: 'Solid' },\n dashed: { title: 'Dashed' },\n dotted: { title: 'Dotted' },\n dotdash: { title: 'Dotdash' },\n longdash: { title: 'Longdash' },\n twodash: { title: 'Twodash' },\n};\n\nexport const NUCLEOTIDE_COLOR_MAPPING = {\n A: '#cc0100',\n C: '#0000cc',\n G: '#ffb300',\n T: '#027f00',\n U: '#027f00',\n};\n\nexport const AMINOACID_COLOR_MAPPING = {\n A: '#7fa0f0',\n R: '#ef1405',\n N: '#01ff00',\n D: '#c048bf',\n C: '#ef8080',\n Q: '#01ff00',\n E: '#c048bf',\n G: '#f09047',\n H: '#14a4a4',\n I: '#7fa0f0',\n L: '#7fa0f0',\n K: '#ef1405',\n M: '#7fa0f0',\n F: '#7fa0f0',\n P: '#ffff00',\n S: '#01ff00',\n T: '#01ff00',\n W: '#7fa0f0',\n Y: '#14a4a4',\n V: '#7fa0f0',\n B: '#eeeeee',\n X: '#eeeeee',\n Z: '#eeeeee',\n};\n"],"names":["FIXED_COLORS","DEFAULT_WHITE","DEFAULT_BLACK","res","item","COLORS","el","CATEGORICAL_LIGHT","_el","idx","CATEGORICAL_BRIGHT","CATEGORICAL_DARK","CATEGORICAL_PAIRED","CATEGORICAL_TRIADIC","VIRIDIS","MAGMA","DENSITY","SALINITY","SUNSET","PERCEPTUAL_RAINBOW","SPECTRUM","TEAL_RED","BLUE_RED","LIME_ROSE","VIRIDIS_MAGMA","CATEGORICAL_LIST","SEQUENTIAL_LIST","DIVERGING_LIST","isCategorical","value","CATEGORICAL_MAP","SEQUENTIAL_MAP","DIVERGING_MAP","PALETTE_MAP","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","FIXES_DOT_SHAPES","UNKNOWN_COLOR","DEFAULT_DOT_SHAPE","FIXED_LINE_TYPES","DEFAULT_LINE_TYPE","LINE_TYPES_MAP","NUCLEOTIDE_COLOR_MAPPING","AMINOACID_COLOR_MAPPING"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constantsAesthetic.js","sources":["../src/constantsAesthetic.ts"],"sourcesContent":["import type {\n CategoricalPalette, ContinuousPalette,\n DivergingPalette, DotShape, LineType, LineTypeInfo,\n Palette,\n PaletteInfo,\n SequentialPalette,\n} from './components/AesSettings/types';\n\nexport const FIXED_COLORS: { name: string; color: string }[] = [\n { name: 'Light green', color: '#99E099' },\n { name: 'Green', color: '#42B842' },\n { name: 'Dark green', color: '#198020' },\n { name: 'Light violet', color: '#C1ADFF' },\n { name: 'Violet', color: '#845CFF' },\n { name: 'Dark violet', color: '#5F31CC' },\n { name: 'Light orange', color: '#FFCB8F' },\n { name: 'Orange', color: '#FF9429' },\n { name: 'Dark orange', color: '#C26A27' },\n { name: 'Light teal', color: '#90E0E0' },\n { name: 'Teal', color: '#27C2C2' },\n { name: 'Dark teal', color: '#068A94' },\n { name: 'Light rose', color: '#FAAAFA' },\n { name: 'Rose', color: '#E553E5' },\n { name: 'Dark rose', color: '#A324B2' },\n { name: 'Light lime', color: '#CBEB67' },\n { name: 'Lime', color: '#95C700' },\n { name: 'Dark lime', color: '#659406' },\n { name: 'Light blue', color: '#99CCFF' },\n { name: 'Blue', color: '#2D93FA' },\n { name: 'Dark blue', color: '#105BCC' },\n { name: 'Light red', color: '#FFADBA' },\n { name: 'Red', color: '#F05670' },\n { name: 'Dark red', color: '#AD3757' },\n { name: 'Light grey', color: '#D3D7E0' },\n { name: 'Grey', color: '#929BAD' },\n { name: 'Dark grey', color: '#5E5E70' },\n { name: 'Black', color: '#110529' },\n { name: 'White', color: '#FFFFFF' },\n { name: 'None', color: 'transparent' },\n];\n\nexport const DEFAULT_WHITE = '#FFFFFF';\nexport const DEFAULT_BLACK = '#110529';\n\nexport const FIXED_COLORS_MAP = FIXED_COLORS.reduce(\n (res: Record<string, { name: string; color: string }>, item) => {\n res[item.color] = item;\n return res;\n },\n {},\n);\n\n// fixed colors without black, white, transparent - base for categorical palettes\nconst COLORS = FIXED_COLORS.slice(0, -3).map((el) => el.color);\n\nconst CATEGORICAL_LIGHT = COLORS.filter((_el, idx) => idx % 3 === 0);\nconst CATEGORICAL_BRIGHT = COLORS.filter((_el, idx) => idx % 3 === 1);\nconst CATEGORICAL_DARK = COLORS.filter((_el, idx) => idx % 3 === 2);\nconst CATEGORICAL_PAIRED = COLORS.filter((_el, idx) => idx % 3 !== 2);\nconst CATEGORICAL_TRIADIC = COLORS;\nconst MAGNETIC = ['#4bbecf', '#db5197', '#c8d400', '#ffdd00', '#4a96d2', '#f7a600', '#00a9cb'];\n\nconst VIRIDIS = ['#FFF680', '#53D788', '#36739D', '#4A005C'];\nconst MAGMA = ['#FFF680', '#F77E5B', '#902B83', '#2B125C'];\nconst DENSITY = ['#DFFADC', '#74CFD1', '#635AC1', '#611347'];\nconst SALINITY = ['#FAFAB4', '#8DDA7F', '#337E90', '#1C0F5C'];\nconst SUNSET = ['#FFEA80', '#F07A76', '#7535A4', '#003752'];\nconst PERCEPTUAL_RAINBOW = ['#FFF780', '#6CEA90', '#6C90F0', '#942AAE'];\n\nconst SPECTRUM = ['#43317B', '#7ACFAC', '#F5F5B7', '#F07B75', '#5C1243'];\nconst TEAL_RED = ['#122B5C', '#41B5A8', '#F0F0F0', '#F07C80', '#5C1243'];\nconst BLUE_RED = ['#0E0E8F', '#7E93FB', '#F0F0F0', '#ED7883', '#5C1243'];\nconst LIME_ROSE = ['#2E5C00', '#9ED26A', '#F0F0F0', '#EB8BDB', '#701260'];\nconst VIRIDIS_MAGMA = [\n '#4A005C',\n '#36749D',\n '#56D688',\n '#FFF680',\n '#F77E5E',\n '#902B82',\n '#2B125C',\n];\n\nexport const CATEGORICAL_LIST: CategoricalPalette[] = [\n 'light',\n 'bright',\n 'dark',\n 'paired',\n 'triadic',\n 'magnetic',\n];\nexport const SEQUENTIAL_LIST: SequentialPalette[] = [\n 'viridis',\n 'magma',\n 'density',\n 'salinity',\n 'sunset',\n 'perceptual_rainbow',\n];\nexport const DIVERGING_LIST: DivergingPalette[] = [\n 'spectrum',\n 'teal_red',\n 'blue_red',\n 'lime_rose',\n 'viridis_magma',\n];\n\nexport function isCategorical(value: Palette): value is CategoricalPalette {\n return CATEGORICAL_LIST.includes(value as CategoricalPalette);\n}\n\nexport function isSequential(value: Palette): value is SequentialPalette {\n return SEQUENTIAL_LIST.includes(value as SequentialPalette);\n}\n\nexport function isDiverging(value: Palette): value is DivergingPalette {\n return DIVERGING_LIST.includes(value as DivergingPalette);\n}\n\nexport const CATEGORICAL_MAP: Record<CategoricalPalette, PaletteInfo> = {\n light: { title: 'Light', colors: CATEGORICAL_LIGHT },\n bright: { title: 'Bright', colors: CATEGORICAL_BRIGHT },\n dark: { title: 'Dark', colors: CATEGORICAL_DARK },\n paired: { title: 'Paired', colors: CATEGORICAL_PAIRED },\n triadic: { title: 'Triadic', colors: CATEGORICAL_TRIADIC },\n magnetic: { title: 'Magnetic', colors: MAGNETIC },\n};\nexport const SEQUENTIAL_MAP: Record<SequentialPalette, PaletteInfo> = {\n viridis: { title: 'Viridis', colors: VIRIDIS },\n magma: { title: 'Magma', colors: MAGMA },\n density: { title: 'Density', colors: DENSITY },\n salinity: { title: 'Salinity', colors: SALINITY },\n sunset: { title: 'Sunset', colors: SUNSET },\n perceptual_rainbow: { title: 'Rainbow', colors: PERCEPTUAL_RAINBOW },\n};\n\nexport const DIVERGING_MAP: Record<DivergingPalette, PaletteInfo> = {\n spectrum: { title: 'Spectrum', colors: SPECTRUM },\n teal_red: { title: 'Teal-Red', colors: TEAL_RED },\n blue_red: { title: 'Blue-Red', colors: BLUE_RED },\n lime_rose: { title: 'Lime-Rose', colors: LIME_ROSE },\n viridis_magma: { title: 'Vir-Mag', colors: VIRIDIS_MAGMA },\n};\n\nexport const PALETTE_MAP: Record<Palette, PaletteInfo> = {\n ...CATEGORICAL_MAP,\n ...SEQUENTIAL_MAP,\n ...DIVERGING_MAP,\n};\n\nexport const DEFAULT_CATEGORICAL_PALETTE: CategoricalPalette = 'light';\nexport const DEFAULT_CONTINUOUS_PALETTE: ContinuousPalette = 'salinity';\nexport const FIXES_DOT_SHAPES: DotShape[] = [\n '0', '5', '1', '2', '6',\n '7', '9', '3', '4', '8',\n '12', '10', '13', '14', '11',\n '22', '23', '21', '24', '25',\n];\n\nexport const UNKNOWN_COLOR = '#F0F0F0';\n\nexport const DEFAULT_DOT_SHAPE = '21'; // filled circle\n\nexport const FIXED_LINE_TYPES: LineType[] = ['solid', 'dashed', 'dotted', 'dotdash', 'longdash', 'twodash'];\n\nexport const DEFAULT_LINE_TYPE: LineType = 'solid';\nexport const LINE_TYPES_MAP: Record<LineType, LineTypeInfo> = {\n solid: { title: 'Solid' },\n dashed: { title: 'Dashed' },\n dotted: { title: 'Dotted' },\n dotdash: { title: 'Dotdash' },\n longdash: { title: 'Longdash' },\n twodash: { title: 'Twodash' },\n};\n\nexport const NUCLEOTIDE_COLOR_MAPPING = {\n A: '#cc0100',\n C: '#0000cc',\n G: '#ffb300',\n T: '#027f00',\n U: '#027f00',\n};\n\nexport const AMINOACID_COLOR_MAPPING = {\n A: '#7fa0f0',\n R: '#ef1405',\n N: '#01ff00',\n D: '#c048bf',\n C: '#ef8080',\n Q: '#01ff00',\n E: '#c048bf',\n G: '#f09047',\n H: '#14a4a4',\n I: '#7fa0f0',\n L: '#7fa0f0',\n K: '#ef1405',\n M: '#7fa0f0',\n F: '#7fa0f0',\n P: '#ffff00',\n S: '#01ff00',\n T: '#01ff00',\n W: '#7fa0f0',\n Y: '#14a4a4',\n V: '#7fa0f0',\n B: '#eeeeee',\n X: '#eeeeee',\n Z: '#eeeeee',\n};\n"],"names":["FIXED_COLORS","DEFAULT_WHITE","DEFAULT_BLACK","res","item","COLORS","el","CATEGORICAL_LIGHT","_el","idx","CATEGORICAL_BRIGHT","CATEGORICAL_DARK","CATEGORICAL_PAIRED","CATEGORICAL_TRIADIC","MAGNETIC","VIRIDIS","MAGMA","DENSITY","SALINITY","SUNSET","PERCEPTUAL_RAINBOW","SPECTRUM","TEAL_RED","BLUE_RED","LIME_ROSE","VIRIDIS_MAGMA","CATEGORICAL_LIST","SEQUENTIAL_LIST","DIVERGING_LIST","isCategorical","value","CATEGORICAL_MAP","SEQUENTIAL_MAP","DIVERGING_MAP","PALETTE_MAP","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","FIXES_DOT_SHAPES","UNKNOWN_COLOR","DEFAULT_DOT_SHAPE","FIXED_LINE_TYPES","DEFAULT_LINE_TYPE","LINE_TYPES_MAP","NUCLEOTIDE_COLOR_MAPPING","AMINOACID_COLOR_MAPPING"],"mappings":"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"}
|
package/dist/index.vue.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as de, mergeModels as q, useModel as H, ref as f, watch as s, toRaw as r, computed as v, shallowRef as J, onMounted as ce, onUnmounted as ve, useSlots as pe, createElementBlock as me, openBlock as C, createElementVNode as fe, createVNode as N, createBlock as x, createCommentVNode as S, withCtx as F, renderSlot as P, unref as d, resolveDynamicComponent as ge } from "vue";
|
|
2
2
|
import { MiPlots as he } from "@milaboratories/miplots4";
|
|
3
3
|
import { DemoDataStore as Se } from "@milaboratories/pf-plots";
|
|
4
4
|
import { watchDebounced as y } from "@vueuse/core";
|
|
@@ -11,16 +11,16 @@ import Ce from "./components/TransitionSlidePanel.vue.js";
|
|
|
11
11
|
/* empty css */
|
|
12
12
|
import we from "./components/ChartErrorNotificationAlert.vue.js";
|
|
13
13
|
import { useSettingsForm as ke, isOwnGraphMakerTab as Oe } from "./forms/index.js";
|
|
14
|
-
import { provideStore as xe, createReactiveState as
|
|
14
|
+
import { provideStore as xe, createReactiveState as Fe } from "./store.js";
|
|
15
15
|
import "./constantsCommon.js";
|
|
16
16
|
import "./constantsAesthetic.js";
|
|
17
17
|
import "d3-scale";
|
|
18
18
|
import { composeChartSettings as z } from "./utils/createChartSettingsForRender/composeChartSettings.js";
|
|
19
|
-
import { saveToFile as
|
|
19
|
+
import { saveToFile as Pe } from "./utils/saveToFile.js";
|
|
20
20
|
import { copyJSON as w } from "./utils/copyJSON.js";
|
|
21
21
|
import "@platforma-sdk/model";
|
|
22
|
-
import
|
|
23
|
-
const
|
|
22
|
+
import Be from "./components/GraphStatusScreen.vue.js";
|
|
23
|
+
const Ge = { class: "graph-maker" }, Ie = { class: "graph-maker__main-pane" }, at = /* @__PURE__ */ de({
|
|
24
24
|
__name: "index",
|
|
25
25
|
props: /* @__PURE__ */ q({
|
|
26
26
|
pFrame: {},
|
|
@@ -45,8 +45,8 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
45
45
|
selectionModifiers: {}
|
|
46
46
|
}),
|
|
47
47
|
emits: /* @__PURE__ */ q(["delete-this-graph", "tooltip-btn-click"], ["update:modelValue", "update:selection"]),
|
|
48
|
-
setup(
|
|
49
|
-
const n = H(
|
|
48
|
+
setup(c, { expose: W, emit: Ee }) {
|
|
49
|
+
const n = H(c, "modelValue"), R = H(c, "selection"), l = c;
|
|
50
50
|
W({
|
|
51
51
|
/**
|
|
52
52
|
reset() will update data-mapping, axis-settings, layers-settings with the state that is in v-model at the moment.
|
|
@@ -95,7 +95,7 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
95
95
|
l.defaultPalette
|
|
96
96
|
);
|
|
97
97
|
function Q() {
|
|
98
|
-
const e =
|
|
98
|
+
const e = Fe(
|
|
99
99
|
r(n.value),
|
|
100
100
|
l.chartType
|
|
101
101
|
);
|
|
@@ -128,7 +128,7 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
128
128
|
}, { deep: !0, immediate: !0 });
|
|
129
129
|
const Y = v(() => ke(t.value.reactive.currentTab)), i = J(null), K = f(null), A = f(!1), g = f(null), b = v(
|
|
130
130
|
() => l.pFrame.ok && !l.pFrame.value && !l.pFrame.stable
|
|
131
|
-
),
|
|
131
|
+
), B = v(
|
|
132
132
|
() => t.value.loading.initialInputGuide && O.value === "loading"
|
|
133
133
|
), O = v((e) => {
|
|
134
134
|
var u, m;
|
|
@@ -168,11 +168,11 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
168
168
|
function j(e) {
|
|
169
169
|
t.value.reactive.lassoControlsState = e;
|
|
170
170
|
}
|
|
171
|
-
let
|
|
171
|
+
let G = null;
|
|
172
172
|
function ee(e) {
|
|
173
|
-
e ?
|
|
173
|
+
e ? G = setTimeout(() => {
|
|
174
174
|
t.value.loading.chartRendering = !0;
|
|
175
|
-
}, 1e3) : (
|
|
175
|
+
}, 1e3) : (G && clearTimeout(G), t.value.loading.chartRendering = !1);
|
|
176
176
|
}
|
|
177
177
|
const V = f(!1);
|
|
178
178
|
function te(e) {
|
|
@@ -200,7 +200,7 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
200
200
|
var a, o, u, m, T;
|
|
201
201
|
if (e && ((a = Object.values(e.data.values)[0]) == null ? void 0 : a.length) > 0) {
|
|
202
202
|
if (i.value)
|
|
203
|
-
i.value.updateSettingsAndData(r(e.data), r(e.settings));
|
|
203
|
+
i.value.updateSettingsAndData({ ...r(e.data), id: e.data.id + (l.pFrame.ok ? l.pFrame.value : "") }, r(e.settings));
|
|
204
204
|
else {
|
|
205
205
|
const D = document.getElementById("chartSvgContainer");
|
|
206
206
|
D && (i.value = he.newPlot(r(e.data), r(e.settings), ae[e.settings.type]), e.settings.type === "scatterplot-umap" && i.value.updateChartState("polygon", n.value.selectedPolygons ?? []), i.value.mount(D));
|
|
@@ -213,11 +213,11 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
213
213
|
var a;
|
|
214
214
|
(e === "notReady" || e === "noPframe" || k.value === null) && ((a = i.value) == null || a.unmount(), i.value = null);
|
|
215
215
|
});
|
|
216
|
-
const
|
|
216
|
+
const I = J(null);
|
|
217
217
|
s([
|
|
218
218
|
() => t.value.chartData.value
|
|
219
219
|
], ([e]) => {
|
|
220
|
-
|
|
220
|
+
I.value = z(
|
|
221
221
|
r(e),
|
|
222
222
|
r(t.value.inputGuide.value),
|
|
223
223
|
r(t.value.uniqueValuesData.value),
|
|
@@ -233,7 +233,7 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
233
233
|
() => t.value.reactive.dataBindAes,
|
|
234
234
|
() => t.value.reactive.chartScale
|
|
235
235
|
], () => {
|
|
236
|
-
|
|
236
|
+
I.value = z(
|
|
237
237
|
r(t.value.chartData.value),
|
|
238
238
|
r(t.value.inputGuide.value),
|
|
239
239
|
r(t.value.uniqueValuesData.value),
|
|
@@ -241,9 +241,9 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
241
241
|
r(t.value.reactive),
|
|
242
242
|
r(t.value.defaultPalette)
|
|
243
243
|
);
|
|
244
|
-
}, { deep: !0 }), s(() =>
|
|
244
|
+
}, { deep: !0 }), s(() => I.value, (e) => {
|
|
245
245
|
Z(e);
|
|
246
|
-
}),
|
|
246
|
+
}), ce(() => {
|
|
247
247
|
Z(null);
|
|
248
248
|
}), ve(() => {
|
|
249
249
|
var e;
|
|
@@ -299,7 +299,7 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
299
299
|
});
|
|
300
300
|
function le() {
|
|
301
301
|
var e;
|
|
302
|
-
|
|
302
|
+
Pe(
|
|
303
303
|
new Blob([
|
|
304
304
|
((e = i.value) == null ? void 0 : e.export()) ?? ""
|
|
305
305
|
]),
|
|
@@ -319,48 +319,48 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
319
319
|
const E = pe(), ie = v(() => !!E.annotationsSlot), re = v(() => !!E.settingsSlot), ue = v(() => !!E.logSlot);
|
|
320
320
|
return (e, a) => {
|
|
321
321
|
var o;
|
|
322
|
-
return C(), me("div",
|
|
323
|
-
fe("div",
|
|
322
|
+
return C(), me("div", Ge, [
|
|
323
|
+
fe("div", Ie, [
|
|
324
324
|
N(be, {
|
|
325
325
|
"graph-status": O.value,
|
|
326
326
|
graphTitle: n.value.title,
|
|
327
327
|
chartData: K.value,
|
|
328
328
|
"chart-ref": i.value,
|
|
329
329
|
"error-info": g.value,
|
|
330
|
-
dendroTooltipButton:
|
|
331
|
-
"custom-status-text":
|
|
332
|
-
"allow-title-editing":
|
|
330
|
+
dendroTooltipButton: c.tooltipButton,
|
|
331
|
+
"custom-status-text": c.statusText,
|
|
332
|
+
"allow-title-editing": c.allowTitleEditing,
|
|
333
333
|
isScatterplotZoomChanged: V.value,
|
|
334
334
|
onGraphTitleUpdate: ne,
|
|
335
335
|
onDendroNodeSelect: oe,
|
|
336
336
|
onDendroTooltipBtnClick: a[0] || (a[0] = (u) => e.$emit("tooltip-btn-click", u))
|
|
337
337
|
}, {
|
|
338
|
-
default:
|
|
339
|
-
|
|
338
|
+
default: F(() => [
|
|
339
|
+
P(e.$slots, "titleLineSlot")
|
|
340
340
|
]),
|
|
341
341
|
_: 3
|
|
342
342
|
}, 8, ["graph-status", "graphTitle", "chartData", "chart-ref", "error-info", "dendroTooltipButton", "custom-status-text", "allow-title-editing", "isScatterplotZoomChanged"]),
|
|
343
|
-
|
|
343
|
+
B.value || b.value ? (C(), x(Be, {
|
|
344
344
|
key: 0,
|
|
345
345
|
graphStatus: b.value ? "running" : "loading",
|
|
346
346
|
top: 67,
|
|
347
347
|
left: 12,
|
|
348
348
|
right: 12,
|
|
349
349
|
bottom: 12,
|
|
350
|
-
customStatusText:
|
|
350
|
+
customStatusText: c.statusText
|
|
351
351
|
}, null, 8, ["graphStatus", "customStatusText"])) : S("", !0),
|
|
352
352
|
N(Ce, { id: "graph-settings-modal" }, {
|
|
353
|
-
default:
|
|
354
|
-
|
|
353
|
+
default: F(() => [
|
|
354
|
+
d(t).reactive.currentTab && !((B.value || b.value) && d(Oe)(d(t).reactive.currentTab)) ? (C(), x(Te, {
|
|
355
355
|
key: 0,
|
|
356
|
-
onClose: a[1] || (a[1] = (u) =>
|
|
356
|
+
onClose: a[1] || (a[1] = (u) => d(t).reactive.currentTab = null)
|
|
357
357
|
}, {
|
|
358
|
-
default:
|
|
358
|
+
default: F(() => [
|
|
359
359
|
(C(), x(ge(Y.value.value), null, {
|
|
360
|
-
default:
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
360
|
+
default: F(() => [
|
|
361
|
+
d(t).reactive.currentTab === "annotations" ? P(e.$slots, "annotationsSlot", { key: 0 }) : S("", !0),
|
|
362
|
+
d(t).reactive.currentTab === "settings" ? P(e.$slots, "settingsSlot", { key: 1 }) : S("", !0),
|
|
363
|
+
d(t).reactive.currentTab === "log" ? P(e.$slots, "logSlot", { key: 2 }) : S("", !0)
|
|
364
364
|
]),
|
|
365
365
|
_: 3
|
|
366
366
|
}))
|
|
@@ -372,15 +372,15 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, a
|
|
|
372
372
|
})
|
|
373
373
|
]),
|
|
374
374
|
N(De, {
|
|
375
|
-
modelValue:
|
|
376
|
-
"onUpdate:modelValue": a[2] || (a[2] = (u) =>
|
|
377
|
-
"chart-type":
|
|
375
|
+
modelValue: d(t).reactive.currentTab,
|
|
376
|
+
"onUpdate:modelValue": a[2] || (a[2] = (u) => d(t).reactive.currentTab = u),
|
|
377
|
+
"chart-type": d(t).reactive.chartType,
|
|
378
378
|
"graph-status": O.value,
|
|
379
|
-
allowDeleting:
|
|
379
|
+
allowDeleting: c.allowChartDeleting,
|
|
380
380
|
hasAnnotationsSlot: ie.value,
|
|
381
381
|
hasSettingsSlot: re.value,
|
|
382
382
|
hasLogSlot: ue.value,
|
|
383
|
-
initialLoading:
|
|
383
|
+
initialLoading: B.value || b.value,
|
|
384
384
|
onExport: le,
|
|
385
385
|
onDelete: a[3] || (a[3] = (u) => e.$emit("delete-this-graph"))
|
|
386
386
|
}, null, 8, ["modelValue", "chart-type", "graph-status", "allowDeleting", "hasAnnotationsSlot", "hasSettingsSlot", "hasLogSlot", "initialLoading"]),
|
package/dist/index.vue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue.js","sources":["../src/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n ErrorInfo,\n LassoControlsState,\n Settings,\n} from '@milaboratories/miplots4';\nimport {\n MiPlots,\n} from '@milaboratories/miplots4';\nimport type {\n ChartType,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport {\n DemoDataStore,\n} from '@milaboratories/pf-plots';\nimport type { AxisSpec, PFrameDriver, PlSelectionModel, PTableKey } from '@platforma-sdk/model';\nimport { watchDebounced } from '@vueuse/core';\nimport canonicalize from 'canonicalize';\nimport { computed, onMounted, onUnmounted, ref, shallowRef, toRaw, useSlots, watch } from 'vue';\nimport './assets/ui.scss';\nimport Chart from './components/Chart.vue';\nimport PanelModal from './components/PanelModal.vue';\nimport VTabs from './components/SettingsTabs/index.vue';\nimport TransitionSlidePanel from './components/TransitionSlidePanel.vue';\nimport ChartErrorNotificationAlert from './components/ChartErrorNotificationAlert.vue';\nimport { isOwnGraphMakerTab, useSettingsForm } from './forms';\nimport { createReactiveState, provideStore } from './store';\nimport type { DendroNodeInfo, GraphMakerProps, GraphMakerState, GraphStatus } from './types';\nimport { composeChartSettings, saveToFile } from './utils';\nimport { copyJSON } from './utils/copyJSON';\nimport GraphStatusScreen from './components/GraphStatusScreen.vue';\n\nconst _emit = defineEmits(['delete-this-graph', 'tooltip-btn-click']);\n\nconst graphMakerState = defineModel<GraphMakerState>({ required: true });\nconst selectionState = defineModel<PlSelectionModel>('selection');\n\nconst props = defineProps<GraphMakerProps>();\n\ndefineExpose({\n /**\n reset() will update data-mapping, axis-settings, layers-settings with the state that is in v-model at the moment.\n In other cases editing of v-model fields doesn't make any impact to graphs and interface.\n Besides, after reset default-options will be applied again. You can use reset to apply new default-options.\n */\n reset,\n /**\n Apply new defaults without resetting all the state\n */\n resetDefaults,\n});\n\nconst dataStore = ref<DemoDataStore | null>(null);\n\nwatch(() => props.pFrame, (pframe) => {\n if (!pframe.ok || !pframe.value) {\n dataStore.value = null;\n return;\n }\n const driver = ('platforma' in window) ? window.platforma?.pFrameDriver as PFrameDriver : props.driver;\n if (!driver) {\n throw new Error('PFrame driver is missing');\n }\n dataStore.value = new DemoDataStore(\n pframe.value,\n driver,\n props.labelsModifier,\n );\n}, { immediate: true, deep: true });\n\n// fixed options can be updated outside, other settings only inside from chart settings interface, so we don't watching other settings\nconst fixedOptions = ref<typeof props.fixedOptions>(props.fixedOptions ?? []);\nwatch(() => props.fixedOptions, (value, oldValue) => {\n if (\n (value && oldValue && JSON.stringify(value) !== JSON.stringify(oldValue))\n || (value && !oldValue)\n || (oldValue && !value)\n ) {\n fixedOptions.value = value;\n }\n}, { deep: true });\nconst defaultOptions = ref<typeof props.defaultOptions>(props.defaultOptions);\nwatch(() => props.defaultOptions, (v) => {\n if (v && !defaultOptions.value) {\n defaultOptions.value = v;\n }\n});\nconst state = provideStore(\n toRaw(graphMakerState.value),\n dataStore,\n props.chartType,\n defaultOptions,\n fixedOptions,\n props.dataColumnPredicate,\n props.metaColumnPredicate,\n props.readonlyInputs,\n props.defaultPalette,\n);\n\nfunction reset() {\n const nextReactiveState = createReactiveState(\n toRaw(graphMakerState.value),\n props.chartType,\n );\n Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions;\n}\n\nfunction resetDefaults() {\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions ? [...props.defaultOptions] as typeof props.defaultOptions : [];\n}\n\nconst prevDataKey = computed(() => state.value.reactive.dataStateKey);\nwatch(() => canonicalize(props.dataStateKey), (keyValue) => {\n if ((keyValue !== undefined || prevDataKey.value !== undefined) && prevDataKey.value !== keyValue) {\n // graphMakerState.value.optionsState = copyJSON(getInitialStateByType(props.chartType));\n // const nextReactiveState = createReactiveState(toRaw(graphMakerState.value), props.chartType);\n // Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions ? [...props.defaultOptions] as typeof props.defaultOptions : []; // to trigger watch on defaults\n }\n state.value.reactive.dataStateKey = keyValue;\n}, { deep: true, immediate: true });\n\nconst currentForm = computed(() => useSettingsForm(state.value.reactive.currentTab));\n\nconst chartRef = shallowRef<ChartInterface | null>(null);\nconst chartCalculatedDataRef = ref<Record<string, unknown> | null>(null);\nconst chartError = ref(false);\nconst chartErrorInfo = ref<ErrorInfo | null>(null);\n\nconst isRunning = computed(\n () => props.pFrame.ok && !props.pFrame.value && !props.pFrame.stable,\n);\nconst isInitialLoading = computed(\n () => state.value.loading.initialInputGuide && graphStatus.value === 'loading',\n);\n\nconst graphStatus = computed<GraphStatus>((previousStatus) => {\n if (isRunning.value) {\n return 'running';\n }\n if (props.pFrame.ok && props.pFrame.stable && !props.pFrame.value) {\n return 'noPframe';\n }\n if (!props.pFrame.ok) {\n return 'noPframeWithError';\n }\n const inputGuide = state.value.inputGuide.value;\n const chartData = state.value.chartData.value;\n if (!inputGuide.consistent) {\n return 'inconsistent';\n }\n if (!inputGuide.ready) {\n return defaultOptions.value === null\n || state.value.loading.defaults\n || state.value.loading.initialInputGuide\n ? 'loading'\n : 'notReady';\n }\n if (chartData && Object.values(chartData.data.byColumns.values)[0]?.length === 0) {\n return 'empty';\n }\n if (chartError.value) {\n return chartErrorInfo.value?.type === 'unknownError' ? 'unknownError' : 'knownError';\n }\n if (\n (state.value.loading.initialCharts || (previousStatus !== 'ready' && state.value.loading.chartData) || state.value.loading.chartRendering)\n || (chartRef.value === null && (state.value.loading.inputGuide || state.value.loading.chartData))\n ) {\n return 'loading';\n }\n return 'ready';\n});\n\nfunction onTreeNodeClick(d: DendroNodeInfo) {\n state.value.reactive.dendroSelectedNodeId = d?.info[0]?.id as number;\n state.value.reactive.dendroInfoByClick = d;\n}\n\nfunction onTooltipHintSwitch(v: boolean) {\n state.value.reactive.showTooltipHint = v;\n}\n\nfunction onLassoPolygonUpdate(dotIndexes: number[], polygons: { points: [number, number][]; closed: boolean }[]) {\n graphMakerState.value = {\n ...graphMakerState.value,\n selectedPolygons: polygons,\n };\n\n const axesData = state.value.chartData.value?.data?.axesData;\n if (dotIndexes.length === 0 || !axesData) {\n selectionState.value = { axesSpec: [], selectedKeys: [] };\n return;\n }\n\n const axisKeys = Object.keys(axesData);\n const inputGuide = state.value.inputGuide.value;\n selectionState.value = {\n axesSpec: axisKeys.map((axisKey) => inputGuide.getSourceInfo(axisKey).spec as AxisSpec),\n selectedKeys: dotIndexes.map((idx) => axisKeys.map((axisKey) => axesData[axisKey][idx]) as PTableKey),\n };\n}\n\nfunction onLassoStateChange(v: LassoControlsState) {\n state.value.reactive.lassoControlsState = v;\n}\nlet chartRenderingInProgress: ReturnType<typeof setTimeout> | null = null;\nfunction onLoadingStateChange(v: boolean) {\n if (v) {\n chartRenderingInProgress = setTimeout(() => {\n state.value.loading.chartRendering = true;\n }, 1000);\n } else {\n if (chartRenderingInProgress) {\n clearTimeout(chartRenderingInProgress);\n }\n state.value.loading.chartRendering = false;\n }\n}\nconst isScatterplotZoomChanged = ref(false);\nfunction onZoomChange(isZoomChanged: boolean) {\n isScatterplotZoomChanged.value = isZoomChanged;\n}\nconst graphEventHandlers: Record<ChartType, unknown> = {\n 'dendro': [onTreeNodeClick],\n 'scatterplot-umap': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n onZoomChange,\n },\n 'discrete': [onTooltipHintSwitch],\n 'scatterplot': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n },\n 'histogram': [onTooltipHintSwitch],\n 'heatmap': { onTooltipHintSwitch, onLoadingChange: onLoadingStateChange },\n 'bubble': [onTooltipHintSwitch],\n};\nfunction updateChart(value: { data: PlotDataAndSettings['data']['byColumns']; settings: PlotDataAndSettings['settings'] } | null) {\n // if dataByColumns exists but columns has no data - show empty chart\n if (value && Object.values(value.data.values)[0]?.length > 0) {\n // console.log('value.dataByColumns', toRaw(value.data));\n // console.log('value.settings', toRaw(value.settings));\n if (chartRef.value) {\n chartRef.value.updateSettingsAndData(toRaw(value.data), toRaw(value.settings) as Settings);\n } else {\n const htmlNode = document.getElementById('chartSvgContainer');\n if (htmlNode) {\n chartRef.value = MiPlots.newPlot(toRaw(value.data), toRaw(value.settings) as Settings, graphEventHandlers[value.settings.type as ChartType]);\n if (value.settings.type === 'scatterplot-umap') {\n // set default polygons (from props)\n chartRef.value.updateChartState('polygon', graphMakerState.value.selectedPolygons ?? []);\n }\n chartRef.value.mount(htmlNode);\n }\n }\n // calculated by chart renderer data, tree hierarchy for example\n chartCalculatedDataRef.value = chartRef.value?.calculatedData ? { ...chartRef.value.calculatedData } : null;\n chartError.value = chartRef.value?.hasError ?? false;\n chartErrorInfo.value = chartRef.value?.errorInfo ?? null;\n } else {\n chartRef.value?.unmount();\n chartRef.value = null;\n chartErrorInfo.value = null;\n }\n}\n\nwatch(() => graphStatus.value, (v) => {\n if (v === 'notReady' || v === 'noPframe' || dataStore.value === null) {\n chartRef.value?.unmount();\n chartRef.value = null;\n }\n});\n\nconst chartDataForRender = shallowRef<{ settings: Settings; data: DataByColumns } | null>(null);\nwatch([\n () => state.value.chartData.value,\n], ([chartData]) => {\n chartDataForRender.value = composeChartSettings(\n toRaw(chartData),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n});\nwatch([\n () => state.value.reactive.template,\n () => state.value.reactive.layersSettings,\n () => state.value.reactive.axesSettings,\n () => state.value.reactive.statisticsSettings,\n () => state.value.reactive.dataBindAes,\n () => state.value.reactive.chartScale,\n], () => {\n chartDataForRender.value = composeChartSettings(\n toRaw(state.value.chartData.value),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n}, { deep: true });\n\nwatch(() => chartDataForRender.value, (chartData) => {\n updateChart(chartData);\n});\nonMounted(() => {\n updateChart(null);\n});\nonUnmounted(() => {\n chartRef.value?.unmount();\n});\n\nwatchDebounced(() => state.value.reactive.optionsState, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n optionsState: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.statisticsSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n statisticsSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.axesSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n axesSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.layersSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n layersSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.dataBindAes, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataBindAes: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\n\nwatchDebounced([\n () => state.value.reactive.chartScale,\n () => state.value.reactive.template,\n () => state.value.reactive.currentTab,\n], ([zoomState, template, currentTab]) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n zoomState,\n template,\n currentTab,\n };\n}, { debounce: 1000 });\n\nwatch(() => state.value.reactive.dataStateKey, (dataStateKey) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataStateKey,\n };\n}, { immediate: true });\n\nwatch(() => graphMakerState.value.currentTab, (v) => {\n state.value.reactive.currentTab = v === undefined ? 'dataMapping' : v;\n});\n\nwatch(() => graphMakerState.value?.layersSettings?.dendro?.showTable, (v) => {\n state.value.reactive.layersSettings.dendro.showTable = v ?? false;\n});\n\nfunction onExport() {\n saveToFile(\n new Blob([\n chartRef.value?.export() ?? '',\n ]),\n 'chart.svg',\n );\n}\n\nfunction updateGraphTitle(nextTitle: string) {\n graphMakerState.value = {\n ...graphMakerState.value,\n title: nextTitle,\n };\n}\n\nfunction selectTreeNode(id: number | null) {\n state.value.reactive.dendroSelectedNodeId = id;\n chartRef.value?.updateChartState('selectedNode', id);\n}\n\nconst slots = useSlots();\n\nconst hasAnnotationsSlot = computed(() => Boolean(slots.annotationsSlot));\nconst hasSettingsSlot = computed(() => Boolean(slots.settingsSlot));\nconst hasLogSlot = computed(() => Boolean(slots.logSlot));\n\n</script>\n\n<template>\n <div class=\"graph-maker\">\n <div class=\"graph-maker__main-pane\">\n <Chart\n :graph-status=\"graphStatus\" :graphTitle=\"graphMakerState.title\" :chartData=\"chartCalculatedDataRef\"\n :chart-ref=\"chartRef\" :error-info=\"chartErrorInfo\" :dendroTooltipButton=\"tooltipButton\"\n :custom-status-text=\"statusText\"\n :allow-title-editing=\"allowTitleEditing\"\n :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"\n @graph-title-update=\"updateGraphTitle\" @dendro-node-select=\"selectTreeNode\"\n @dendro-tooltip-btn-click=\"(id: string) => $emit('tooltip-btn-click', id)\"\n >\n <slot name=\"titleLineSlot\" />\n </Chart>\n <GraphStatusScreen v-if=\"isInitialLoading || isRunning\" :graphStatus=\"isRunning ? 'running' : 'loading'\" :top=\"67\" :left=\"12\" :right=\"12\" :bottom=\"12\" :customStatusText=\"statusText\" />\n <TransitionSlidePanel id=\"graph-settings-modal\">\n <PanelModal\n v-if=\"state.reactive.currentTab && !((isInitialLoading || isRunning) && isOwnGraphMakerTab(state.reactive.currentTab))\"\n @close=\"state.reactive.currentTab = null\"\n >\n <component :is=\"currentForm.value\">\n <slot v-if=\"state.reactive.currentTab === 'annotations'\" name=\"annotationsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'settings'\" name=\"settingsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'log'\" name=\"logSlot\" />\n </component>\n </PanelModal>\n </TransitionSlidePanel>\n </div>\n <VTabs\n v-model=\"state.reactive.currentTab\" :chart-type=\"state.reactive.chartType\" :graph-status=\"graphStatus\"\n :allowDeleting=\"allowChartDeleting\" :hasAnnotationsSlot=\"hasAnnotationsSlot\" :hasSettingsSlot=\"hasSettingsSlot\"\n :hasLogSlot=\"hasLogSlot\" :initialLoading=\"isInitialLoading || isRunning\" @export=\"onExport\"\n @delete=\"$emit('delete-this-graph')\"\n />\n <ChartErrorNotificationAlert v-if=\"chartErrorInfo?.type === 'unknownError'\" :errorInfo=\"chartErrorInfo\" />\n </div>\n</template>\n"],"names":["graphMakerState","_useModel","selectionState","__props","props","__expose","reset","resetDefaults","dataStore","ref","watch","pframe","driver","_a","DemoDataStore","fixedOptions","value","oldValue","defaultOptions","v","state","provideStore","toRaw","nextReactiveState","createReactiveState","prevDataKey","computed","canonicalize","keyValue","currentForm","useSettingsForm","chartRef","shallowRef","chartCalculatedDataRef","chartError","chartErrorInfo","isRunning","isInitialLoading","graphStatus","previousStatus","inputGuide","chartData","_b","onTreeNodeClick","d","onTooltipHintSwitch","onLassoPolygonUpdate","dotIndexes","polygons","axesData","axisKeys","axisKey","idx","onLassoStateChange","chartRenderingInProgress","onLoadingStateChange","isScatterplotZoomChanged","onZoomChange","isZoomChanged","graphEventHandlers","updateChart","htmlNode","MiPlots","_c","_d","_e","chartDataForRender","composeChartSettings","onMounted","onUnmounted","watchDebounced","copyJSON","zoomState","template","currentTab","dataStateKey","onExport","saveToFile","updateGraphTitle","nextTitle","selectTreeNode","id","slots","useSlots","hasAnnotationsSlot","hasSettingsSlot","hasLogSlot","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","Chart","_cache","$emit","_renderSlot","_ctx","_createBlock","GraphStatusScreen","TransitionSlidePanel","_unref","PanelModal","$event","_resolveDynamicComponent","VTabs","ChartErrorNotificationAlert"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue.js","sources":["../src/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n ErrorInfo,\n LassoControlsState,\n Settings,\n} from '@milaboratories/miplots4';\nimport {\n MiPlots,\n} from '@milaboratories/miplots4';\nimport type {\n ChartType,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport {\n DemoDataStore,\n} from '@milaboratories/pf-plots';\nimport type { AxisSpec, PFrameDriver, PlSelectionModel, PTableKey } from '@platforma-sdk/model';\nimport { watchDebounced } from '@vueuse/core';\nimport canonicalize from 'canonicalize';\nimport { computed, onMounted, onUnmounted, ref, shallowRef, toRaw, useSlots, watch } from 'vue';\nimport './assets/ui.scss';\nimport Chart from './components/Chart.vue';\nimport PanelModal from './components/PanelModal.vue';\nimport VTabs from './components/SettingsTabs/index.vue';\nimport TransitionSlidePanel from './components/TransitionSlidePanel.vue';\nimport ChartErrorNotificationAlert from './components/ChartErrorNotificationAlert.vue';\nimport { isOwnGraphMakerTab, useSettingsForm } from './forms';\nimport { createReactiveState, provideStore } from './store';\nimport type { DendroNodeInfo, GraphMakerProps, GraphMakerState, GraphStatus } from './types';\nimport { composeChartSettings, saveToFile } from './utils';\nimport { copyJSON } from './utils/copyJSON';\nimport GraphStatusScreen from './components/GraphStatusScreen.vue';\n\nconst _emit = defineEmits(['delete-this-graph', 'tooltip-btn-click']);\n\nconst graphMakerState = defineModel<GraphMakerState>({ required: true });\nconst selectionState = defineModel<PlSelectionModel>('selection');\n\nconst props = defineProps<GraphMakerProps>();\n\ndefineExpose({\n /**\n reset() will update data-mapping, axis-settings, layers-settings with the state that is in v-model at the moment.\n In other cases editing of v-model fields doesn't make any impact to graphs and interface.\n Besides, after reset default-options will be applied again. You can use reset to apply new default-options.\n */\n reset,\n /**\n Apply new defaults without resetting all the state\n */\n resetDefaults,\n});\n\nconst dataStore = ref<DemoDataStore | null>(null);\n\nwatch(() => props.pFrame, (pframe) => {\n if (!pframe.ok || !pframe.value) {\n dataStore.value = null;\n return;\n }\n const driver = ('platforma' in window) ? window.platforma?.pFrameDriver as PFrameDriver : props.driver;\n if (!driver) {\n throw new Error('PFrame driver is missing');\n }\n dataStore.value = new DemoDataStore(\n pframe.value,\n driver,\n props.labelsModifier,\n );\n}, { immediate: true, deep: true });\n\n// fixed options can be updated outside, other settings only inside from chart settings interface, so we don't watching other settings\nconst fixedOptions = ref<typeof props.fixedOptions>(props.fixedOptions ?? []);\nwatch(() => props.fixedOptions, (value, oldValue) => {\n if (\n (value && oldValue && JSON.stringify(value) !== JSON.stringify(oldValue))\n || (value && !oldValue)\n || (oldValue && !value)\n ) {\n fixedOptions.value = value;\n }\n}, { deep: true });\nconst defaultOptions = ref<typeof props.defaultOptions>(props.defaultOptions);\nwatch(() => props.defaultOptions, (v) => {\n if (v && !defaultOptions.value) {\n defaultOptions.value = v;\n }\n});\nconst state = provideStore(\n toRaw(graphMakerState.value),\n dataStore,\n props.chartType,\n defaultOptions,\n fixedOptions,\n props.dataColumnPredicate,\n props.metaColumnPredicate,\n props.readonlyInputs,\n props.defaultPalette,\n);\n\nfunction reset() {\n const nextReactiveState = createReactiveState(\n toRaw(graphMakerState.value),\n props.chartType,\n );\n Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions;\n}\n\nfunction resetDefaults() {\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions ? [...props.defaultOptions] as typeof props.defaultOptions : [];\n}\n\nconst prevDataKey = computed(() => state.value.reactive.dataStateKey);\nwatch(() => canonicalize(props.dataStateKey), (keyValue) => {\n if ((keyValue !== undefined || prevDataKey.value !== undefined) && prevDataKey.value !== keyValue) {\n // graphMakerState.value.optionsState = copyJSON(getInitialStateByType(props.chartType));\n // const nextReactiveState = createReactiveState(toRaw(graphMakerState.value), props.chartType);\n // Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions ? [...props.defaultOptions] as typeof props.defaultOptions : []; // to trigger watch on defaults\n }\n state.value.reactive.dataStateKey = keyValue;\n}, { deep: true, immediate: true });\n\nconst currentForm = computed(() => useSettingsForm(state.value.reactive.currentTab));\n\nconst chartRef = shallowRef<ChartInterface | null>(null);\nconst chartCalculatedDataRef = ref<Record<string, unknown> | null>(null);\nconst chartError = ref(false);\nconst chartErrorInfo = ref<ErrorInfo | null>(null);\n\nconst isRunning = computed(\n () => props.pFrame.ok && !props.pFrame.value && !props.pFrame.stable,\n);\nconst isInitialLoading = computed(\n () => state.value.loading.initialInputGuide && graphStatus.value === 'loading',\n);\n\nconst graphStatus = computed<GraphStatus>((previousStatus) => {\n if (isRunning.value) {\n return 'running';\n }\n if (props.pFrame.ok && props.pFrame.stable && !props.pFrame.value) {\n return 'noPframe';\n }\n if (!props.pFrame.ok) {\n return 'noPframeWithError';\n }\n const inputGuide = state.value.inputGuide.value;\n const chartData = state.value.chartData.value;\n if (!inputGuide.consistent) {\n return 'inconsistent';\n }\n if (!inputGuide.ready) {\n return defaultOptions.value === null\n || state.value.loading.defaults\n || state.value.loading.initialInputGuide\n ? 'loading'\n : 'notReady';\n }\n if (chartData && Object.values(chartData.data.byColumns.values)[0]?.length === 0) {\n return 'empty';\n }\n if (chartError.value) {\n return chartErrorInfo.value?.type === 'unknownError' ? 'unknownError' : 'knownError';\n }\n if (\n (state.value.loading.initialCharts || (previousStatus !== 'ready' && state.value.loading.chartData) || state.value.loading.chartRendering)\n || (chartRef.value === null && (state.value.loading.inputGuide || state.value.loading.chartData))\n ) {\n return 'loading';\n }\n return 'ready';\n});\n\nfunction onTreeNodeClick(d: DendroNodeInfo) {\n state.value.reactive.dendroSelectedNodeId = d?.info[0]?.id as number;\n state.value.reactive.dendroInfoByClick = d;\n}\n\nfunction onTooltipHintSwitch(v: boolean) {\n state.value.reactive.showTooltipHint = v;\n}\n\nfunction onLassoPolygonUpdate(dotIndexes: number[], polygons: { points: [number, number][]; closed: boolean }[]) {\n graphMakerState.value = {\n ...graphMakerState.value,\n selectedPolygons: polygons,\n };\n\n const axesData = state.value.chartData.value?.data?.axesData;\n if (dotIndexes.length === 0 || !axesData) {\n selectionState.value = { axesSpec: [], selectedKeys: [] };\n return;\n }\n\n const axisKeys = Object.keys(axesData);\n const inputGuide = state.value.inputGuide.value;\n selectionState.value = {\n axesSpec: axisKeys.map((axisKey) => inputGuide.getSourceInfo(axisKey).spec as AxisSpec),\n selectedKeys: dotIndexes.map((idx) => axisKeys.map((axisKey) => axesData[axisKey][idx]) as PTableKey),\n };\n}\n\nfunction onLassoStateChange(v: LassoControlsState) {\n state.value.reactive.lassoControlsState = v;\n}\nlet chartRenderingInProgress: ReturnType<typeof setTimeout> | null = null;\nfunction onLoadingStateChange(v: boolean) {\n if (v) {\n chartRenderingInProgress = setTimeout(() => {\n state.value.loading.chartRendering = true;\n }, 1000);\n } else {\n if (chartRenderingInProgress) {\n clearTimeout(chartRenderingInProgress);\n }\n state.value.loading.chartRendering = false;\n }\n}\nconst isScatterplotZoomChanged = ref(false);\nfunction onZoomChange(isZoomChanged: boolean) {\n isScatterplotZoomChanged.value = isZoomChanged;\n}\nconst graphEventHandlers: Record<ChartType, unknown> = {\n 'dendro': [onTreeNodeClick],\n 'scatterplot-umap': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n onZoomChange,\n },\n 'discrete': [onTooltipHintSwitch],\n 'scatterplot': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n },\n 'histogram': [onTooltipHintSwitch],\n 'heatmap': { onTooltipHintSwitch, onLoadingChange: onLoadingStateChange },\n 'bubble': [onTooltipHintSwitch],\n};\nfunction updateChart(value: { data: PlotDataAndSettings['data']['byColumns']; settings: PlotDataAndSettings['settings'] } | null) {\n // if dataByColumns exists but columns has no data - show empty chart\n if (value && Object.values(value.data.values)[0]?.length > 0) {\n // console.log('value.dataByColumns', toRaw(value.data));\n // console.log('value.settings', toRaw(value.settings));\n if (chartRef.value) {\n chartRef.value.updateSettingsAndData({ ...toRaw(value.data), id: value.data.id + (props.pFrame.ok ? props.pFrame.value : '') }, toRaw(value.settings) as Settings);\n } else {\n const htmlNode = document.getElementById('chartSvgContainer');\n if (htmlNode) {\n chartRef.value = MiPlots.newPlot(toRaw(value.data), toRaw(value.settings) as Settings, graphEventHandlers[value.settings.type as ChartType]);\n if (value.settings.type === 'scatterplot-umap') {\n // set default polygons (from props)\n chartRef.value.updateChartState('polygon', graphMakerState.value.selectedPolygons ?? []);\n }\n chartRef.value.mount(htmlNode);\n }\n }\n // calculated by chart renderer data, tree hierarchy for example\n chartCalculatedDataRef.value = chartRef.value?.calculatedData ? { ...chartRef.value.calculatedData } : null;\n chartError.value = chartRef.value?.hasError ?? false;\n chartErrorInfo.value = chartRef.value?.errorInfo ?? null;\n } else {\n chartRef.value?.unmount();\n chartRef.value = null;\n chartErrorInfo.value = null;\n }\n}\n\nwatch(() => graphStatus.value, (v) => {\n if (v === 'notReady' || v === 'noPframe' || dataStore.value === null) {\n chartRef.value?.unmount();\n chartRef.value = null;\n }\n});\n\nconst chartDataForRender = shallowRef<{ settings: Settings; data: DataByColumns } | null>(null);\nwatch([\n () => state.value.chartData.value,\n], ([chartData]) => {\n chartDataForRender.value = composeChartSettings(\n toRaw(chartData),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n});\nwatch([\n () => state.value.reactive.template,\n () => state.value.reactive.layersSettings,\n () => state.value.reactive.axesSettings,\n () => state.value.reactive.statisticsSettings,\n () => state.value.reactive.dataBindAes,\n () => state.value.reactive.chartScale,\n], () => {\n chartDataForRender.value = composeChartSettings(\n toRaw(state.value.chartData.value),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n}, { deep: true });\n\nwatch(() => chartDataForRender.value, (chartData) => {\n updateChart(chartData);\n});\nonMounted(() => {\n updateChart(null);\n});\nonUnmounted(() => {\n chartRef.value?.unmount();\n});\n\nwatchDebounced(() => state.value.reactive.optionsState, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n optionsState: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.statisticsSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n statisticsSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.axesSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n axesSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.layersSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n layersSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.dataBindAes, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataBindAes: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\n\nwatchDebounced([\n () => state.value.reactive.chartScale,\n () => state.value.reactive.template,\n () => state.value.reactive.currentTab,\n], ([zoomState, template, currentTab]) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n zoomState,\n template,\n currentTab,\n };\n}, { debounce: 1000 });\n\nwatch(() => state.value.reactive.dataStateKey, (dataStateKey) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataStateKey,\n };\n}, { immediate: true });\n\nwatch(() => graphMakerState.value.currentTab, (v) => {\n state.value.reactive.currentTab = v === undefined ? 'dataMapping' : v;\n});\n\nwatch(() => graphMakerState.value?.layersSettings?.dendro?.showTable, (v) => {\n state.value.reactive.layersSettings.dendro.showTable = v ?? false;\n});\n\nfunction onExport() {\n saveToFile(\n new Blob([\n chartRef.value?.export() ?? '',\n ]),\n 'chart.svg',\n );\n}\n\nfunction updateGraphTitle(nextTitle: string) {\n graphMakerState.value = {\n ...graphMakerState.value,\n title: nextTitle,\n };\n}\n\nfunction selectTreeNode(id: number | null) {\n state.value.reactive.dendroSelectedNodeId = id;\n chartRef.value?.updateChartState('selectedNode', id);\n}\n\nconst slots = useSlots();\n\nconst hasAnnotationsSlot = computed(() => Boolean(slots.annotationsSlot));\nconst hasSettingsSlot = computed(() => Boolean(slots.settingsSlot));\nconst hasLogSlot = computed(() => Boolean(slots.logSlot));\n\n</script>\n\n<template>\n <div class=\"graph-maker\">\n <div class=\"graph-maker__main-pane\">\n <Chart\n :graph-status=\"graphStatus\" :graphTitle=\"graphMakerState.title\" :chartData=\"chartCalculatedDataRef\"\n :chart-ref=\"chartRef\" :error-info=\"chartErrorInfo\" :dendroTooltipButton=\"tooltipButton\"\n :custom-status-text=\"statusText\"\n :allow-title-editing=\"allowTitleEditing\"\n :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"\n @graph-title-update=\"updateGraphTitle\" @dendro-node-select=\"selectTreeNode\"\n @dendro-tooltip-btn-click=\"(id: string) => $emit('tooltip-btn-click', id)\"\n >\n <slot name=\"titleLineSlot\" />\n </Chart>\n <GraphStatusScreen v-if=\"isInitialLoading || isRunning\" :graphStatus=\"isRunning ? 'running' : 'loading'\" :top=\"67\" :left=\"12\" :right=\"12\" :bottom=\"12\" :customStatusText=\"statusText\" />\n <TransitionSlidePanel id=\"graph-settings-modal\">\n <PanelModal\n v-if=\"state.reactive.currentTab && !((isInitialLoading || isRunning) && isOwnGraphMakerTab(state.reactive.currentTab))\"\n @close=\"state.reactive.currentTab = null\"\n >\n <component :is=\"currentForm.value\">\n <slot v-if=\"state.reactive.currentTab === 'annotations'\" name=\"annotationsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'settings'\" name=\"settingsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'log'\" name=\"logSlot\" />\n </component>\n </PanelModal>\n </TransitionSlidePanel>\n </div>\n <VTabs\n v-model=\"state.reactive.currentTab\" :chart-type=\"state.reactive.chartType\" :graph-status=\"graphStatus\"\n :allowDeleting=\"allowChartDeleting\" :hasAnnotationsSlot=\"hasAnnotationsSlot\" :hasSettingsSlot=\"hasSettingsSlot\"\n :hasLogSlot=\"hasLogSlot\" :initialLoading=\"isInitialLoading || isRunning\" @export=\"onExport\"\n @delete=\"$emit('delete-this-graph')\"\n />\n <ChartErrorNotificationAlert v-if=\"chartErrorInfo?.type === 'unknownError'\" :errorInfo=\"chartErrorInfo\" />\n </div>\n</template>\n"],"names":["graphMakerState","_useModel","selectionState","__props","props","__expose","reset","resetDefaults","dataStore","ref","watch","pframe","driver","_a","DemoDataStore","fixedOptions","value","oldValue","defaultOptions","v","state","provideStore","toRaw","nextReactiveState","createReactiveState","prevDataKey","computed","canonicalize","keyValue","currentForm","useSettingsForm","chartRef","shallowRef","chartCalculatedDataRef","chartError","chartErrorInfo","isRunning","isInitialLoading","graphStatus","previousStatus","inputGuide","chartData","_b","onTreeNodeClick","d","onTooltipHintSwitch","onLassoPolygonUpdate","dotIndexes","polygons","axesData","axisKeys","axisKey","idx","onLassoStateChange","chartRenderingInProgress","onLoadingStateChange","isScatterplotZoomChanged","onZoomChange","isZoomChanged","graphEventHandlers","updateChart","htmlNode","MiPlots","_c","_d","_e","chartDataForRender","composeChartSettings","onMounted","onUnmounted","watchDebounced","copyJSON","zoomState","template","currentTab","dataStateKey","onExport","saveToFile","updateGraphTitle","nextTitle","selectTreeNode","id","slots","useSlots","hasAnnotationsSlot","hasSettingsSlot","hasLogSlot","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","Chart","_cache","$emit","_renderSlot","_ctx","_createBlock","GraphStatusScreen","TransitionSlidePanel","_unref","PanelModal","$event","_resolveDynamicComponent","VTabs","ChartErrorNotificationAlert"],"mappings":"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"}
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,qBAAqB,EAErB,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAyC,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACrG,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAEtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAUjD,OAAO,KAAK,EACV,eAAe,EAEf,2BAA2B,EAC3B,4BAA4B,EAC5B,eAAe,EACf,eAAe,EACf,aAAa,EAAE,uBAAuB,EACvC,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AA6B1E,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,SAAS,GACnB,QAAQ,CAAC,aAAa,CAAC,CAyBzB;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAClC,OAAO,EAAE;QACP,iBAAiB,EAAE,OAAO,CAAC;QAC3B,aAAa,EAAE,OAAO,CAAC;QACvB,eAAe,EAAE,OAAO,CAAC;QACzB,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,cAAc,EAAE,OAAO,CAAC;QACxB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,iBAAiB,EAAE;QACjB,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC;QACvE,eAAe,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC;QACzE,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACxE,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;KAC5F,CAAC;IACF,UAAU,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IACnD,gBAAgB,EAAE,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC5C,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,SAAS,EAAE,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IAC3C,gBAAgB,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC/C,qBAAqB,EAAE,GAAG,CAAC,4BAA4B,CAAC,CAAC;IACzD,gBAAgB,EAAE,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;IACpD,cAAc,EAAE,eAAe,CAAC;CACjC;AAED,wBAAgB,YAAY,CAC1B,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,EACtC,SAAS,EAAE,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,EACpC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EACvC,SAAS,EAAE,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAC1C,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAC1F,gBAAgB,EAAE,GAAG,CAAC,uBAAuB,CAAC,EAC9C,qBAAqB,EAAE,GAAG,CAAC,4BAA4B,CAAC,EACxD,gBAAgB,EAAE,GAAG,CAAC,2BAA2B,CAAC,EAClD,cAAc,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,EACnD,cAAc,CAAC,EAAE,OAAO,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACzE,KAAK,CAuDP;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AAE/C,wBAAgB,YAAY,CAC1B,YAAY,EAAE,eAAe,EAC7B,YAAY,EAAE,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,EACvC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,GAAG,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,EACzD,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,EACrD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,EACpD,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,EACpD,cAAc,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,EACnD,cAAc,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC,sBAsKnD;AAED,wBAAgB,QAAQ,kBAEvB"}
|
package/dist/store.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { deepClone as O } from "@milaboratories/helpers";
|
|
2
2
|
import { getControllerByType as B, getInitialStateByType as H } from "@milaboratories/pf-plots";
|
|
3
|
-
import { ref as
|
|
3
|
+
import { ref as c, computed as D, watch as y, toRaw as L, provide as V, reactive as _, inject as k } from "vue";
|
|
4
4
|
import { getInitialAxesSettings as q, getInitialLayersSettings as z, getInitialStatisticsState as J, getInitialTemplate as Q } from "./constantsCommon.js";
|
|
5
5
|
import { updateDataBindAes as W } from "./dataBindAes.js";
|
|
6
6
|
import { notEmpty as X } from "./helpers.js";
|
|
7
7
|
import { storeKey as j } from "./keys.js";
|
|
8
8
|
import { DEFAULT_CONTINUOUS_PALETTE as Y, DEFAULT_CATEGORICAL_PALETTE as Z } from "./constantsAesthetic.js";
|
|
9
9
|
import { loadDataForPlot as $ } from "./utils/createChartSettingsForRender/composeChartSettings.js";
|
|
10
|
-
import { calculateDiscreteGroups as
|
|
10
|
+
import { calculateDiscreteGroups as N } from "./utils/calculateDiscreteGroups.js";
|
|
11
11
|
import { addFixedOptionsToState as R } from "./utils/addFixedOptionsToState.js";
|
|
12
12
|
import { loadDefaultSources as K } from "./utils/loadDefaultSources.js";
|
|
13
13
|
import { copyJSON as G } from "./utils/copyJSON.js";
|
|
@@ -15,16 +15,16 @@ import { getUsedAesInMapping as P } from "./utils/getUsedAesInMapping.js";
|
|
|
15
15
|
import { getUniqueValuesFromReadyChartData as tt, loadFilterLabelsForTitle as et } from "./utils/loadUniqueValuesToSave.js";
|
|
16
16
|
import { tabKeys as at } from "./forms/index.js";
|
|
17
17
|
function ot(t, a) {
|
|
18
|
-
const
|
|
18
|
+
const i = G(H(t));
|
|
19
19
|
if ((a == null ? void 0 : a.type) !== t)
|
|
20
|
-
return
|
|
21
|
-
const
|
|
20
|
+
return i;
|
|
21
|
+
const u = G(a);
|
|
22
22
|
return {
|
|
23
|
-
...
|
|
24
|
-
...
|
|
23
|
+
...i,
|
|
24
|
+
...u,
|
|
25
25
|
components: {
|
|
26
|
-
...
|
|
27
|
-
...
|
|
26
|
+
...i.components,
|
|
27
|
+
...u.components
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
}
|
|
@@ -45,13 +45,13 @@ function nt(t, a) {
|
|
|
45
45
|
chartScale: t.zoomState ?? 100,
|
|
46
46
|
lassoControlsState: null,
|
|
47
47
|
currentTab: t.currentTab === void 0 ? "dataMapping" : t.currentTab,
|
|
48
|
-
tabDefaultState: at().reduce((
|
|
48
|
+
tabDefaultState: at().reduce((i, u) => (i[u] = {}, i), {}),
|
|
49
49
|
dendroInfoByClick: null,
|
|
50
50
|
dendroSelectedNodeId: null,
|
|
51
51
|
showTooltipHint: !1
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
function lt(t, a,
|
|
54
|
+
function lt(t, a, i, u, m, g, b, h, C, e) {
|
|
55
55
|
return {
|
|
56
56
|
reactive: t,
|
|
57
57
|
loading: _({
|
|
@@ -66,14 +66,14 @@ function lt(t, a, r, s, m, g, b, C, h, e) {
|
|
|
66
66
|
}),
|
|
67
67
|
commonHelpersData: {
|
|
68
68
|
primaryGroups: D(
|
|
69
|
-
() =>
|
|
69
|
+
() => N(
|
|
70
70
|
t.optionsState,
|
|
71
71
|
g.value,
|
|
72
72
|
"primaryGrouping"
|
|
73
73
|
)
|
|
74
74
|
),
|
|
75
75
|
secondaryGroups: D(
|
|
76
|
-
() =>
|
|
76
|
+
() => N(
|
|
77
77
|
t.optionsState,
|
|
78
78
|
g.value,
|
|
79
79
|
"secondaryGrouping"
|
|
@@ -86,118 +86,116 @@ function lt(t, a, r, s, m, g, b, C, h, e) {
|
|
|
86
86
|
t.layersSettings,
|
|
87
87
|
t.statisticsSettings,
|
|
88
88
|
t.optionsState,
|
|
89
|
-
|
|
89
|
+
i.value
|
|
90
90
|
)
|
|
91
91
|
),
|
|
92
92
|
dendroTableData: m
|
|
93
93
|
},
|
|
94
94
|
controller: B(t.chartType),
|
|
95
95
|
columnsDataStore: a,
|
|
96
|
-
inputGuide:
|
|
97
|
-
chartData:
|
|
96
|
+
inputGuide: i,
|
|
97
|
+
chartData: u,
|
|
98
98
|
uniqueValuesData: g,
|
|
99
99
|
filterSuggestionsData: b,
|
|
100
|
-
filterLabelsInfo:
|
|
101
|
-
readonlyInputs:
|
|
100
|
+
filterLabelsInfo: h,
|
|
101
|
+
readonlyInputs: C,
|
|
102
102
|
defaultPalette: {
|
|
103
103
|
categorical: typeof e == "object" && e.categorical ? e.categorical : typeof e == "string" ? e : Z,
|
|
104
104
|
continuous: typeof e == "object" && e.continuous ? e.continuous : typeof e == "string" ? e : Y
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
|
-
function Gt(t, a,
|
|
109
|
-
const e = nt(t,
|
|
108
|
+
function Gt(t, a, i, u, m, g, b, h, C) {
|
|
109
|
+
const e = nt(t, i);
|
|
110
110
|
console.log("create reactive state");
|
|
111
|
-
const
|
|
111
|
+
const v = B(e.chartType), S = c(B(e.chartType).getEmptyInputGuide(e.optionsState)), U = c(null), T = c({}), I = c({}), A = c({}), x = c(null), o = D(() => lt(
|
|
112
112
|
e,
|
|
113
113
|
a,
|
|
114
114
|
S,
|
|
115
|
-
N,
|
|
116
115
|
U,
|
|
116
|
+
x,
|
|
117
117
|
T,
|
|
118
118
|
I,
|
|
119
119
|
A,
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
h,
|
|
121
|
+
C
|
|
122
122
|
));
|
|
123
123
|
y(() => a.value, () => {
|
|
124
124
|
A.value = {}, T.value = {}, I.value = {};
|
|
125
125
|
}), y([
|
|
126
126
|
() => a.value,
|
|
127
|
-
() =>
|
|
128
|
-
], async ([l,
|
|
129
|
-
if (!
|
|
127
|
+
() => u.value
|
|
128
|
+
], async ([l, r]) => {
|
|
129
|
+
if (!r || !l || !o.value.loading.initialDefaults)
|
|
130
130
|
return;
|
|
131
131
|
o.value.loading.initialDefaults = !1, o.value.loading.initialInputGuide = !0, o.value.loading.defaults = !0;
|
|
132
|
-
const n = G(e.optionsState.components),
|
|
133
|
-
for (const { inputName: c } of u)
|
|
134
|
-
n[c].selectorStates = [];
|
|
132
|
+
const n = G(e.optionsState.components), s = await K(l, r);
|
|
135
133
|
for (const {
|
|
136
|
-
inputName:
|
|
134
|
+
inputName: p,
|
|
137
135
|
selectedSource: d,
|
|
138
|
-
filterType:
|
|
136
|
+
filterType: f,
|
|
139
137
|
selectedFilterValues: F,
|
|
140
138
|
selectedFilterRange: M
|
|
141
|
-
} of
|
|
142
|
-
n[
|
|
139
|
+
} of s)
|
|
140
|
+
n[p].selectorStates.length > 0 || n[p].selectorStates.push({
|
|
143
141
|
selectedSource: d,
|
|
144
|
-
type:
|
|
142
|
+
type: f,
|
|
145
143
|
selectedFilterValues: F,
|
|
146
144
|
selectedFilterRange: M
|
|
147
145
|
});
|
|
148
146
|
e.optionsState.components = n, o.value.loading.defaults = !1;
|
|
149
147
|
}, { immediate: !0 });
|
|
150
|
-
const w =
|
|
148
|
+
const w = c(0);
|
|
151
149
|
y([
|
|
152
150
|
() => e.optionsState,
|
|
153
151
|
() => a.value,
|
|
154
152
|
() => m.value
|
|
155
|
-
], async ([l,
|
|
156
|
-
if (
|
|
153
|
+
], async ([l, r, n]) => {
|
|
154
|
+
if (u.value === null || a.value === null)
|
|
157
155
|
return;
|
|
158
156
|
w.value++;
|
|
159
|
-
const
|
|
157
|
+
const s = w.value;
|
|
160
158
|
o.value.loading.inputGuide = !0;
|
|
161
|
-
const
|
|
162
|
-
|
|
159
|
+
const p = r && n ? (await K(r, n, !1)).map((f) => f.selectedSource) : [], d = r ? await v.calculateOptions(L(r), l, p, g, b) : v.getEmptyInputGuide(l);
|
|
160
|
+
s === w.value && (S.value = d, o.value.loading.inputGuide = !1, o.value.loading.initialInputGuide && (o.value.loading.initialInputGuide = !1));
|
|
163
161
|
}, { immediate: !0, deep: !0 });
|
|
164
|
-
const E =
|
|
162
|
+
const E = c(0);
|
|
165
163
|
if (y(() => S.value, async (l) => {
|
|
166
164
|
E.value++;
|
|
167
|
-
const
|
|
165
|
+
const r = E.value;
|
|
168
166
|
o.value.loading.chartData = !0;
|
|
169
|
-
const n = L(a.value),
|
|
170
|
-
if (
|
|
171
|
-
const { uniqueValues:
|
|
172
|
-
|
|
167
|
+
const n = L(a.value), s = await $(l, e, n, m.value);
|
|
168
|
+
if (s && n) {
|
|
169
|
+
const { uniqueValues: p, filterSuggestions: d } = await tt(
|
|
170
|
+
s,
|
|
173
171
|
l,
|
|
174
172
|
e.optionsState.components,
|
|
175
|
-
|
|
173
|
+
v,
|
|
176
174
|
n,
|
|
177
175
|
L(I.value)
|
|
178
176
|
);
|
|
179
|
-
T.value =
|
|
177
|
+
T.value = p, I.value = d, W(e.optionsState, e.dataBindAes, T.value);
|
|
180
178
|
}
|
|
181
179
|
A.value = n ? await et(
|
|
182
180
|
e.optionsState.components,
|
|
183
181
|
l,
|
|
184
|
-
|
|
182
|
+
v,
|
|
185
183
|
n
|
|
186
|
-
) : {},
|
|
184
|
+
) : {}, r === E.value && (U.value = s, l.ready && (o.value.loading.initialCharts = !1), o.value.loading.chartData = !1);
|
|
187
185
|
}, { immediate: !0, deep: !0 }), e.chartType === "dendro") {
|
|
188
|
-
const l =
|
|
186
|
+
const l = c(0);
|
|
189
187
|
y([
|
|
190
188
|
() => e.optionsState,
|
|
191
189
|
() => a.value,
|
|
192
190
|
() => S.value.readyData,
|
|
193
191
|
() => m.value
|
|
194
|
-
], async ([
|
|
195
|
-
if (
|
|
192
|
+
], async ([r, n, s, p]) => {
|
|
193
|
+
if (s && n) {
|
|
196
194
|
l.value++;
|
|
197
195
|
const d = l.value;
|
|
198
196
|
o.value.loading.dendroTableData = !0;
|
|
199
|
-
const
|
|
200
|
-
l.value === d && (
|
|
197
|
+
const f = await R(r, n, p), F = await v.createTableData(n, f);
|
|
198
|
+
l.value === d && (x.value = F), o.value.loading.dendroTableData = !1;
|
|
201
199
|
}
|
|
202
200
|
}, { immediate: !0 });
|
|
203
201
|
}
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sources":["../src/store.ts"],"sourcesContent":["import { deepClone } from '@milaboratories/helpers';\nimport type {\n ChartType,\n DemoDataStore,\n DendroStateController,\n DendroUIState,\n InputGuide,\n InputNamesByChartType,\n InputState,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport {\n getControllerByType,\n getInitialStateByType,\n} from '@milaboratories/pf-plots';\nimport type { PColumnSpec } from '@platforma-sdk/model';\nimport type { CategoricalPalette, ContinuousPalette, Palette } from './components/AesSettings/types';\nimport type { ComputedRef, Reactive, Ref } from 'vue';\nimport { computed, inject, provide, reactive, ref, toRaw, watch } from 'vue';\nimport type { AesType } from './constantsCommon';\nimport {\n getInitialAxesSettings,\n getInitialLayersSettings,\n getInitialStatisticsState,\n getInitialTemplate,\n} from './constantsCommon';\nimport { updateDataBindAes } from './dataBindAes';\nimport { notEmpty } from './helpers';\nimport { storeKey } from './keys';\nimport type {\n DefaultPalettes,\n DendroNodeInfo,\n FilterLabelsInfoBySourceMap,\n FilterSuggestionsBySourceMap,\n GraphMakerProps,\n GraphMakerState,\n ReactiveState, UniqueValuesBySourceMap,\n} from './types';\nimport { loadDefaultSources } from './utils';\nimport { addFixedOptionsToState } from './utils/addFixedOptionsToState';\nimport { calculateDiscreteGroups } from './utils/calculateDiscreteGroups';\nimport { copyJSON } from './utils/copyJSON';\nimport { loadDataForPlot } from './utils/createChartSettingsForRender/composeChartSettings';\nimport { getUsedAesInMapping } from './utils/getUsedAesInMapping';\nimport {\n getUniqueValuesFromReadyChartData,\n loadFilterLabelsForTitle,\n} from './utils/loadUniqueValuesToSave';\nimport type { FormKey } from './forms';\nimport { tabKeys } from './forms';\nimport { DEFAULT_CATEGORICAL_PALETTE, DEFAULT_CONTINUOUS_PALETTE } from './constantsAesthetic';\n\nfunction getInitialOptionsState(chartType: ChartType, optionsState: InputState | undefined) {\n const defaultState = copyJSON(getInitialStateByType(chartType));\n if (optionsState?.type !== chartType) {\n return defaultState;\n }\n const optionsStateCopy = copyJSON(optionsState);\n\n return {\n ...defaultState,\n ...optionsStateCopy,\n components: {\n ...defaultState.components,\n ...optionsStateCopy.components,\n },\n };\n}\n\nexport function createReactiveState(\n initialData: GraphMakerState,\n chartType: ChartType,\n): Reactive<ReactiveState> {\n return reactive({\n chartType: chartType,\n // from pf-plots\n optionsState: getInitialOptionsState(chartType, initialData.optionsState), // contains user selected inputs\n\n dataStateKey: deepClone(initialData.dataStateKey),\n // local form states, updates directly in forms\n template: getInitialTemplate(initialData.template, chartType),\n statisticsSettings: getInitialStatisticsState(chartType, initialData.statisticsSettings),\n layersSettings: getInitialLayersSettings(initialData.layersSettings),\n axesSettings: getInitialAxesSettings(chartType, initialData.axesSettings),\n // common aesthetics data mapped on columns/axes values\n dataBindAes: copyJSON(initialData.dataBindAes ?? {}),\n chartScale: initialData.zoomState ?? 100,\n lassoControlsState: null,\n currentTab: initialData.currentTab === undefined ? 'dataMapping' : initialData.currentTab,\n tabDefaultState: tabKeys().reduce((res, formKey: FormKey) => {\n res[formKey] = {};\n return res;\n }, {} as Record<FormKey, Record<string, boolean>>),\n dendroInfoByClick: null as null | DendroNodeInfo,\n dendroSelectedNodeId: null,\n showTooltipHint: false,\n });\n}\n\nexport interface Store {\n reactive: Reactive<ReactiveState>;\n loading: {\n initialInputGuide: boolean;\n initialCharts: boolean;\n initialDefaults: boolean;\n inputGuide: boolean;\n chartData: boolean;\n defaults: boolean;\n chartRendering: boolean;\n dendroTableData: boolean;\n };\n commonHelpersData: {\n primaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n secondaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n usedAesInMapping: ComputedRef<Record<string, Record<AesType, boolean>>>;\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>;\n };\n controller: ReturnType<typeof getControllerByType>;\n columnsDataStore: Ref<DemoDataStore | null>;\n inputGuide: Ref<InputGuide<InputState>>;\n chartData: Ref<PlotDataAndSettings | null>;\n uniqueValuesData: Ref<UniqueValuesBySourceMap>;\n filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>;\n filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>;\n readonlyInputs?: InputNamesByChartType[ChartType][];\n defaultPalette: DefaultPalettes;\n}\n\nexport function factoryStore(\n reactiveState: Reactive<ReactiveState>,\n dataStore: Ref<DemoDataStore | null>,\n inputGuide: Ref<InputGuide<InputState>>,\n chartData: Ref<PlotDataAndSettings | null>,\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>,\n uniqueValuesData: Ref<UniqueValuesBySourceMap>,\n filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>,\n filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>,\n readonlyInputs?: InputNamesByChartType[ChartType][],\n defaultPalette?: Palette | { categorical?: Palette; continuous?: Palette },\n): Store {\n return {\n reactive: reactiveState,\n loading: reactive({\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n defaults: false,\n chartRendering: false,\n dendroTableData: false,\n }),\n commonHelpersData: {\n primaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'primaryGrouping',\n ),\n ),\n secondaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'secondaryGrouping',\n ),\n ),\n usedAesInMapping: computed<Record<string, Record<AesType, boolean>>>(() =>\n getUsedAesInMapping(\n reactiveState.chartType,\n reactiveState.template,\n reactiveState.layersSettings,\n reactiveState.statisticsSettings,\n reactiveState.optionsState,\n inputGuide.value,\n ),\n ),\n dendroTableData,\n },\n controller: getControllerByType(reactiveState.chartType),\n columnsDataStore: dataStore,\n inputGuide,\n chartData,\n uniqueValuesData,\n filterSuggestionsData,\n filterLabelsInfo,\n readonlyInputs,\n defaultPalette: {\n categorical: typeof defaultPalette === 'object' && defaultPalette.categorical\n ? defaultPalette.categorical as CategoricalPalette\n : typeof defaultPalette === 'string' ? defaultPalette as CategoricalPalette : DEFAULT_CATEGORICAL_PALETTE,\n continuous: typeof defaultPalette === 'object' && defaultPalette.continuous\n ? defaultPalette.continuous as ContinuousPalette\n : typeof defaultPalette === 'string' ? defaultPalette as ContinuousPalette : DEFAULT_CONTINUOUS_PALETTE,\n },\n };\n}\n\nexport type ComputedStore = ComputedRef<Store>;\n\nexport function provideStore(\n initialState: GraphMakerState,\n dataStoreRef: Ref<DemoDataStore | null>,\n chartType: ChartType,\n defaultOptionsRef: Ref<GraphMakerProps['defaultOptions']>,\n fixedOptionsRef: Ref<GraphMakerProps['fixedOptions']>,\n dataColumnPredicate?: (spec: PColumnSpec) => boolean,\n metaColumnPredicate?: (spec: PColumnSpec) => boolean,\n readonlyInputs?: InputNamesByChartType[ChartType][],\n defaultPalette?: GraphMakerProps['defaultPalette'],\n) {\n const reactiveState = createReactiveState(initialState, chartType);\n console.log('create reactive state');\n const controller = getControllerByType(reactiveState.chartType);\n\n const inputGuide = ref<InputGuide<InputState>>(getControllerByType(reactiveState.chartType).getEmptyInputGuide(reactiveState.optionsState));\n const chartData = ref<PlotDataAndSettings | null>(null);\n\n const uniqueValuesData = ref<UniqueValuesBySourceMap>({});\n const filterSuggestionsData = ref<FilterSuggestionsBySourceMap>({});\n const filterLabelsInfo = ref<FilterLabelsInfoBySourceMap>({}); // for auto titles of chart if something selected in filter/tabby\n\n const dendroTableData = ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>(null);\n\n // toRaw removes Vue proxy from dataStore.pframe (PFrame api)\n const store = computed(() => factoryStore(\n reactiveState,\n dataStoreRef,\n inputGuide,\n chartData,\n dendroTableData,\n uniqueValuesData,\n filterSuggestionsData,\n filterLabelsInfo,\n readonlyInputs,\n defaultPalette,\n ));\n\n watch(() => dataStoreRef.value, () => {\n filterLabelsInfo.value = {};\n uniqueValuesData.value = {};\n filterSuggestionsData.value = {}; // reset saved data; avoid caching of empty results from old empty pframe\n });\n watch([\n () => dataStoreRef.value,\n () => defaultOptionsRef.value,\n ], async ([ds, defaultOptions]) => {\n if (!defaultOptions || !ds || !store.value.loading.initialDefaults) {\n return;\n }\n store.value.loading.initialDefaults = false; // to avoid multiple calculations, default settings cannot change except after reset\n store.value.loading.initialInputGuide = true; // to show loader on initial loading; changing of reactiveState.optionsState always triggers inputGuide recalculating, so it will be off after inputGuide\n store.value.loading.defaults = true;\n\n const updatedOptionsState = copyJSON(reactiveState.optionsState.components);\n const loadedDefaultSources = await loadDefaultSources(ds, defaultOptions);\n for (const { inputName } of loadedDefaultSources) {\n updatedOptionsState[inputName].selectorStates = [];\n }\n for (const {\n inputName,\n selectedSource,\n filterType,\n selectedFilterValues,\n selectedFilterRange,\n } of loadedDefaultSources) {\n updatedOptionsState[inputName].selectorStates.push({\n selectedSource,\n type: filterType,\n selectedFilterValues,\n selectedFilterRange,\n });\n }\n\n reactiveState.optionsState.components = updatedOptionsState;\n store.value.loading.defaults = false;\n }, { immediate: true });\n\n // recalculate input guide - options for every data input, consistency info etc\n const inputGuideCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState,\n () => dataStoreRef.value,\n () => fixedOptionsRef.value,\n ], async ([optionsState, ds, fixedOptions]) => {\n if (defaultOptionsRef.value === null || dataStoreRef.value === null) { // they are not ready, waiting for them\n return;\n }\n inputGuideCounter.value++;\n const counter = inputGuideCounter.value;\n store.value.loading.inputGuide = true;\n const ignoredIds = ds && fixedOptions ? (await loadDefaultSources(ds, fixedOptions, false)).map((item) => item.selectedSource) : [];\n\n // const start = Date.now();\n const nextInputGuide = ds ? await controller.calculateOptions(toRaw(ds), optionsState, ignoredIds, dataColumnPredicate, metaColumnPredicate) : controller.getEmptyInputGuide(optionsState);\n // console.log('input guide', Date.now() - start);\n\n if (counter === inputGuideCounter.value) { // race condition check\n inputGuide.value = nextInputGuide;\n\n store.value.loading.inputGuide = false;\n if (store.value.loading.initialInputGuide) {\n store.value.loading.initialInputGuide = false;\n }\n }\n }, { immediate: true, deep: true });\n\n // recalculate data for chart rendering (miplots4)\n const chartDataCounter = ref(0); // to avoid race condition on async calculations\n watch(() => inputGuide.value, async (ig) => {\n chartDataCounter.value++;\n const counter = chartDataCounter.value;\n\n store.value.loading.chartData = true;\n\n const ds = toRaw(dataStoreRef.value);\n // const start = Date.now();\n const nextChartData = await loadDataForPlot(ig, reactiveState, ds, fixedOptionsRef.value);\n\n if (nextChartData && ds) {\n const { uniqueValues, filterSuggestions } = await getUniqueValuesFromReadyChartData(\n nextChartData, ig, reactiveState.optionsState.components, controller, ds, toRaw(filterSuggestionsData.value),\n );\n uniqueValuesData.value = uniqueValues;\n filterSuggestionsData.value = filterSuggestions;\n updateDataBindAes(reactiveState.optionsState, reactiveState.dataBindAes, uniqueValuesData.value);\n }\n filterLabelsInfo.value = ds\n ? await loadFilterLabelsForTitle(\n reactiveState.optionsState.components,\n ig,\n controller,\n ds,\n )\n : {};\n // console.log('chart data', Date.now() - start);\n\n if (counter === chartDataCounter.value) { // race condition check\n chartData.value = nextChartData;\n if (ig.ready) {\n store.value.loading.initialCharts = false;\n }\n store.value.loading.chartData = false;\n }\n }, { immediate: true, deep: true });\n\n // watch data for table, only dendro chart; data is also using for popup by tree node click\n if (reactiveState.chartType === 'dendro') {\n const dendroDataCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState as DendroUIState,\n () => dataStoreRef.value,\n () => inputGuide.value.readyData,\n () => fixedOptionsRef.value,\n ], async ([optionsState, dataStore, ready, fixed]) => {\n if (ready && dataStore) {\n dendroDataCounter.value++;\n const counter = dendroDataCounter.value;\n store.value.loading.dendroTableData = true;\n const state = await addFixedOptionsToState(optionsState, dataStore, fixed) as DendroUIState;\n const nextDendroTableData = await (controller as unknown as DendroStateController).createTableData(dataStore, state);\n\n if (dendroDataCounter.value === counter) {\n dendroTableData.value = nextDendroTableData;\n }\n store.value.loading.dendroTableData = false;\n }\n }, { immediate: true });\n }\n\n provide(storeKey, store);\n return store;\n}\n\nexport function useStore() {\n return notEmpty(inject<ComputedStore>(storeKey), 'Empty store');\n}\n"],"names":["getInitialOptionsState","chartType","optionsState","defaultState","copyJSON","getInitialStateByType","optionsStateCopy","createReactiveState","initialData","reactive","deepClone","getInitialTemplate","getInitialStatisticsState","getInitialLayersSettings","getInitialAxesSettings","tabKeys","res","formKey","factoryStore","reactiveState","dataStore","inputGuide","chartData","dendroTableData","uniqueValuesData","filterSuggestionsData","filterLabelsInfo","readonlyInputs","defaultPalette","computed","calculateDiscreteGroups","getUsedAesInMapping","getControllerByType","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","provideStore","initialState","dataStoreRef","defaultOptionsRef","fixedOptionsRef","dataColumnPredicate","metaColumnPredicate","controller","ref","store","watch","ds","defaultOptions","updatedOptionsState","loadedDefaultSources","loadDefaultSources","inputName","selectedSource","filterType","selectedFilterValues","selectedFilterRange","inputGuideCounter","fixedOptions","counter","ignoredIds","item","nextInputGuide","toRaw","chartDataCounter","ig","nextChartData","loadDataForPlot","uniqueValues","filterSuggestions","getUniqueValuesFromReadyChartData","updateDataBindAes","loadFilterLabelsForTitle","dendroDataCounter","ready","fixed","state","addFixedOptionsToState","nextDendroTableData","provide","storeKey","useStore","notEmpty","inject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sources":["../src/store.ts"],"sourcesContent":["import { deepClone } from '@milaboratories/helpers';\nimport type {\n ChartType,\n DemoDataStore,\n DendroStateController,\n DendroUIState,\n InputGuide,\n InputNamesByChartType,\n InputState,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport {\n getControllerByType,\n getInitialStateByType,\n} from '@milaboratories/pf-plots';\nimport type { PColumnSpec } from '@platforma-sdk/model';\nimport type { CategoricalPalette, ContinuousPalette, Palette } from './components/AesSettings/types';\nimport type { ComputedRef, Reactive, Ref } from 'vue';\nimport { computed, inject, provide, reactive, ref, toRaw, watch } from 'vue';\nimport type { AesType } from './constantsCommon';\nimport {\n getInitialAxesSettings,\n getInitialLayersSettings,\n getInitialStatisticsState,\n getInitialTemplate,\n} from './constantsCommon';\nimport { updateDataBindAes } from './dataBindAes';\nimport { notEmpty } from './helpers';\nimport { storeKey } from './keys';\nimport type {\n DefaultPalettes,\n DendroNodeInfo,\n FilterLabelsInfoBySourceMap,\n FilterSuggestionsBySourceMap,\n GraphMakerProps,\n GraphMakerState,\n ReactiveState, UniqueValuesBySourceMap,\n} from './types';\nimport { loadDefaultSources } from './utils';\nimport { addFixedOptionsToState } from './utils/addFixedOptionsToState';\nimport { calculateDiscreteGroups } from './utils/calculateDiscreteGroups';\nimport { copyJSON } from './utils/copyJSON';\nimport { loadDataForPlot } from './utils/createChartSettingsForRender/composeChartSettings';\nimport { getUsedAesInMapping } from './utils/getUsedAesInMapping';\nimport {\n getUniqueValuesFromReadyChartData,\n loadFilterLabelsForTitle,\n} from './utils/loadUniqueValuesToSave';\nimport type { FormKey } from './forms';\nimport { tabKeys } from './forms';\nimport { DEFAULT_CATEGORICAL_PALETTE, DEFAULT_CONTINUOUS_PALETTE } from './constantsAesthetic';\n\nfunction getInitialOptionsState(chartType: ChartType, optionsState: InputState | undefined) {\n const defaultState = copyJSON(getInitialStateByType(chartType));\n if (optionsState?.type !== chartType) {\n return defaultState;\n }\n const optionsStateCopy = copyJSON(optionsState);\n\n return {\n ...defaultState,\n ...optionsStateCopy,\n components: {\n ...defaultState.components,\n ...optionsStateCopy.components,\n },\n };\n}\n\nexport function createReactiveState(\n initialData: GraphMakerState,\n chartType: ChartType,\n): Reactive<ReactiveState> {\n return reactive({\n chartType: chartType,\n // from pf-plots\n optionsState: getInitialOptionsState(chartType, initialData.optionsState), // contains user selected inputs\n\n dataStateKey: deepClone(initialData.dataStateKey),\n // local form states, updates directly in forms\n template: getInitialTemplate(initialData.template, chartType),\n statisticsSettings: getInitialStatisticsState(chartType, initialData.statisticsSettings),\n layersSettings: getInitialLayersSettings(initialData.layersSettings),\n axesSettings: getInitialAxesSettings(chartType, initialData.axesSettings),\n // common aesthetics data mapped on columns/axes values\n dataBindAes: copyJSON(initialData.dataBindAes ?? {}),\n chartScale: initialData.zoomState ?? 100,\n lassoControlsState: null,\n currentTab: initialData.currentTab === undefined ? 'dataMapping' : initialData.currentTab,\n tabDefaultState: tabKeys().reduce((res, formKey: FormKey) => {\n res[formKey] = {};\n return res;\n }, {} as Record<FormKey, Record<string, boolean>>),\n dendroInfoByClick: null as null | DendroNodeInfo,\n dendroSelectedNodeId: null,\n showTooltipHint: false,\n });\n}\n\nexport interface Store {\n reactive: Reactive<ReactiveState>;\n loading: {\n initialInputGuide: boolean;\n initialCharts: boolean;\n initialDefaults: boolean;\n inputGuide: boolean;\n chartData: boolean;\n defaults: boolean;\n chartRendering: boolean;\n dendroTableData: boolean;\n };\n commonHelpersData: {\n primaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n secondaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n usedAesInMapping: ComputedRef<Record<string, Record<AesType, boolean>>>;\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>;\n };\n controller: ReturnType<typeof getControllerByType>;\n columnsDataStore: Ref<DemoDataStore | null>;\n inputGuide: Ref<InputGuide<InputState>>;\n chartData: Ref<PlotDataAndSettings | null>;\n uniqueValuesData: Ref<UniqueValuesBySourceMap>;\n filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>;\n filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>;\n readonlyInputs?: InputNamesByChartType[ChartType][];\n defaultPalette: DefaultPalettes;\n}\n\nexport function factoryStore(\n reactiveState: Reactive<ReactiveState>,\n dataStore: Ref<DemoDataStore | null>,\n inputGuide: Ref<InputGuide<InputState>>,\n chartData: Ref<PlotDataAndSettings | null>,\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>,\n uniqueValuesData: Ref<UniqueValuesBySourceMap>,\n filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>,\n filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>,\n readonlyInputs?: InputNamesByChartType[ChartType][],\n defaultPalette?: Palette | { categorical?: Palette; continuous?: Palette },\n): Store {\n return {\n reactive: reactiveState,\n loading: reactive({\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n defaults: false,\n chartRendering: false,\n dendroTableData: false,\n }),\n commonHelpersData: {\n primaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'primaryGrouping',\n ),\n ),\n secondaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'secondaryGrouping',\n ),\n ),\n usedAesInMapping: computed<Record<string, Record<AesType, boolean>>>(() =>\n getUsedAesInMapping(\n reactiveState.chartType,\n reactiveState.template,\n reactiveState.layersSettings,\n reactiveState.statisticsSettings,\n reactiveState.optionsState,\n inputGuide.value,\n ),\n ),\n dendroTableData,\n },\n controller: getControllerByType(reactiveState.chartType),\n columnsDataStore: dataStore,\n inputGuide,\n chartData,\n uniqueValuesData,\n filterSuggestionsData,\n filterLabelsInfo,\n readonlyInputs,\n defaultPalette: {\n categorical: typeof defaultPalette === 'object' && defaultPalette.categorical\n ? defaultPalette.categorical as CategoricalPalette\n : typeof defaultPalette === 'string' ? defaultPalette as CategoricalPalette : DEFAULT_CATEGORICAL_PALETTE,\n continuous: typeof defaultPalette === 'object' && defaultPalette.continuous\n ? defaultPalette.continuous as ContinuousPalette\n : typeof defaultPalette === 'string' ? defaultPalette as ContinuousPalette : DEFAULT_CONTINUOUS_PALETTE,\n },\n };\n}\n\nexport type ComputedStore = ComputedRef<Store>;\n\nexport function provideStore(\n initialState: GraphMakerState,\n dataStoreRef: Ref<DemoDataStore | null>,\n chartType: ChartType,\n defaultOptionsRef: Ref<GraphMakerProps['defaultOptions']>,\n fixedOptionsRef: Ref<GraphMakerProps['fixedOptions']>,\n dataColumnPredicate?: (spec: PColumnSpec) => boolean,\n metaColumnPredicate?: (spec: PColumnSpec) => boolean,\n readonlyInputs?: InputNamesByChartType[ChartType][],\n defaultPalette?: GraphMakerProps['defaultPalette'],\n) {\n const reactiveState = createReactiveState(initialState, chartType);\n console.log('create reactive state');\n const controller = getControllerByType(reactiveState.chartType);\n\n const inputGuide = ref<InputGuide<InputState>>(getControllerByType(reactiveState.chartType).getEmptyInputGuide(reactiveState.optionsState));\n const chartData = ref<PlotDataAndSettings | null>(null);\n\n const uniqueValuesData = ref<UniqueValuesBySourceMap>({});\n const filterSuggestionsData = ref<FilterSuggestionsBySourceMap>({});\n const filterLabelsInfo = ref<FilterLabelsInfoBySourceMap>({}); // for auto titles of chart if something selected in filter/tabby\n\n const dendroTableData = ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>(null);\n\n // toRaw removes Vue proxy from dataStore.pframe (PFrame api)\n const store = computed(() => factoryStore(\n reactiveState,\n dataStoreRef,\n inputGuide,\n chartData,\n dendroTableData,\n uniqueValuesData,\n filterSuggestionsData,\n filterLabelsInfo,\n readonlyInputs,\n defaultPalette,\n ));\n\n watch(() => dataStoreRef.value, () => {\n filterLabelsInfo.value = {};\n uniqueValuesData.value = {};\n filterSuggestionsData.value = {}; // reset saved data; avoid caching of empty results from old empty pframe\n });\n watch([\n () => dataStoreRef.value,\n () => defaultOptionsRef.value,\n ], async ([ds, defaultOptions]) => {\n if (!defaultOptions || !ds || !store.value.loading.initialDefaults) {\n return;\n }\n store.value.loading.initialDefaults = false; // to avoid multiple calculations, default settings cannot change except after reset\n store.value.loading.initialInputGuide = true; // to show loader on initial loading; changing of reactiveState.optionsState always triggers inputGuide recalculating, so it will be off after inputGuide\n store.value.loading.defaults = true;\n\n const updatedOptionsState = copyJSON(reactiveState.optionsState.components);\n const loadedDefaultSources = await loadDefaultSources(ds, defaultOptions);\n // for (const { inputName } of loadedDefaultSources) {\n // updatedOptionsState[inputName].selectorStates = [];\n // }\n for (const {\n inputName,\n selectedSource,\n filterType,\n selectedFilterValues,\n selectedFilterRange,\n } of loadedDefaultSources) {\n if (updatedOptionsState[inputName].selectorStates.length > 0) {\n continue;\n }\n updatedOptionsState[inputName].selectorStates.push({\n selectedSource,\n type: filterType,\n selectedFilterValues,\n selectedFilterRange,\n });\n }\n\n reactiveState.optionsState.components = updatedOptionsState;\n store.value.loading.defaults = false;\n }, { immediate: true });\n\n // recalculate input guide - options for every data input, consistency info etc\n const inputGuideCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState,\n () => dataStoreRef.value,\n () => fixedOptionsRef.value,\n ], async ([optionsState, ds, fixedOptions]) => {\n if (defaultOptionsRef.value === null || dataStoreRef.value === null) { // they are not ready, waiting for them\n return;\n }\n inputGuideCounter.value++;\n const counter = inputGuideCounter.value;\n store.value.loading.inputGuide = true;\n const ignoredIds = ds && fixedOptions ? (await loadDefaultSources(ds, fixedOptions, false)).map((item) => item.selectedSource) : [];\n\n // const start = Date.now();\n const nextInputGuide = ds ? await controller.calculateOptions(toRaw(ds), optionsState, ignoredIds, dataColumnPredicate, metaColumnPredicate) : controller.getEmptyInputGuide(optionsState);\n // console.log('input guide', Date.now() - start);\n\n if (counter === inputGuideCounter.value) { // race condition check\n inputGuide.value = nextInputGuide;\n\n store.value.loading.inputGuide = false;\n if (store.value.loading.initialInputGuide) {\n store.value.loading.initialInputGuide = false;\n }\n }\n }, { immediate: true, deep: true });\n\n // recalculate data for chart rendering (miplots4)\n const chartDataCounter = ref(0); // to avoid race condition on async calculations\n watch(() => inputGuide.value, async (ig) => {\n chartDataCounter.value++;\n const counter = chartDataCounter.value;\n\n store.value.loading.chartData = true;\n\n const ds = toRaw(dataStoreRef.value);\n // const start = Date.now();\n const nextChartData = await loadDataForPlot(ig, reactiveState, ds, fixedOptionsRef.value);\n\n if (nextChartData && ds) {\n const { uniqueValues, filterSuggestions } = await getUniqueValuesFromReadyChartData(\n nextChartData, ig, reactiveState.optionsState.components, controller, ds, toRaw(filterSuggestionsData.value),\n );\n uniqueValuesData.value = uniqueValues;\n filterSuggestionsData.value = filterSuggestions;\n updateDataBindAes(reactiveState.optionsState, reactiveState.dataBindAes, uniqueValuesData.value);\n }\n filterLabelsInfo.value = ds\n ? await loadFilterLabelsForTitle(\n reactiveState.optionsState.components,\n ig,\n controller,\n ds,\n )\n : {};\n // console.log('chart data', Date.now() - start);\n\n if (counter === chartDataCounter.value) { // race condition check\n chartData.value = nextChartData;\n if (ig.ready) {\n store.value.loading.initialCharts = false;\n }\n store.value.loading.chartData = false;\n }\n }, { immediate: true, deep: true });\n\n // watch data for table, only dendro chart; data is also using for popup by tree node click\n if (reactiveState.chartType === 'dendro') {\n const dendroDataCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState as DendroUIState,\n () => dataStoreRef.value,\n () => inputGuide.value.readyData,\n () => fixedOptionsRef.value,\n ], async ([optionsState, dataStore, ready, fixed]) => {\n if (ready && dataStore) {\n dendroDataCounter.value++;\n const counter = dendroDataCounter.value;\n store.value.loading.dendroTableData = true;\n const state = await addFixedOptionsToState(optionsState, dataStore, fixed) as DendroUIState;\n const nextDendroTableData = await (controller as unknown as DendroStateController).createTableData(dataStore, state);\n\n if (dendroDataCounter.value === counter) {\n dendroTableData.value = nextDendroTableData;\n }\n store.value.loading.dendroTableData = false;\n }\n }, { immediate: true });\n }\n\n provide(storeKey, store);\n return store;\n}\n\nexport function useStore() {\n return notEmpty(inject<ComputedStore>(storeKey), 'Empty store');\n}\n"],"names":["getInitialOptionsState","chartType","optionsState","defaultState","copyJSON","getInitialStateByType","optionsStateCopy","createReactiveState","initialData","reactive","deepClone","getInitialTemplate","getInitialStatisticsState","getInitialLayersSettings","getInitialAxesSettings","tabKeys","res","formKey","factoryStore","reactiveState","dataStore","inputGuide","chartData","dendroTableData","uniqueValuesData","filterSuggestionsData","filterLabelsInfo","readonlyInputs","defaultPalette","computed","calculateDiscreteGroups","getUsedAesInMapping","getControllerByType","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","provideStore","initialState","dataStoreRef","defaultOptionsRef","fixedOptionsRef","dataColumnPredicate","metaColumnPredicate","controller","ref","store","watch","ds","defaultOptions","updatedOptionsState","loadedDefaultSources","loadDefaultSources","inputName","selectedSource","filterType","selectedFilterValues","selectedFilterRange","inputGuideCounter","fixedOptions","counter","ignoredIds","item","nextInputGuide","toRaw","chartDataCounter","ig","nextChartData","loadDataForPlot","uniqueValues","filterSuggestions","getUniqueValuesFromReadyChartData","updateDataBindAes","loadFilterLabelsForTitle","dendroDataCounter","ready","fixed","state","addFixedOptionsToState","nextDendroTableData","provide","storeKey","useStore","notEmpty","inject"],"mappings":"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"}
|