@milaboratories/miplots4 1.0.143 → 1.0.144
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/dendro/index.d.ts.map +1 -1
- package/dist/dendro/index.js +73 -73
- package/dist/dendro/index.js.map +1 -1
- package/dist/heatmap/ChartRenderer.d.ts +14 -4
- package/dist/heatmap/ChartRenderer.d.ts.map +1 -1
- package/dist/heatmap/ChartRenderer.js +283 -274
- package/dist/heatmap/ChartRenderer.js.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.d.ts +5 -0
- package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.js +70 -64
- package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
- package/dist/heatmap/components/Chart.d.ts.map +1 -1
- package/dist/heatmap/components/Chart.js +83 -81
- package/dist/heatmap/components/Chart.js.map +1 -1
- package/dist/heatmap/getCells.d.ts +1 -1
- package/dist/heatmap/getCells.d.ts.map +1 -1
- package/dist/heatmap/getCells.js +99 -88
- package/dist/heatmap/getCells.js.map +1 -1
- package/dist/heatmap/index.d.ts.map +1 -1
- package/dist/heatmap/index.js +117 -95
- package/dist/heatmap/index.js.map +1 -1
- package/dist/types/common.js.map +1 -1
- package/dist/types/heatmap.d.ts +23 -0
- package/dist/types/heatmap.d.ts.map +1 -1
- package/dist/types/heatmap.js +19 -11
- package/dist/types/heatmap.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dendro/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAKR,cAAc,EAGd,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EAGjB,MAAM,UAAU,CAAC;AAClB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiEvD,qBAAa,WAAY,SAAQ,aAAa;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAmB;IAC1D,aAAa,gBAAuB;IAEpC,cAAc,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QACvC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;QAChC,YAAY,EAAE,gBAAgB,CAAC;KAClC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAS1F,KAAK,CAAC,IAAI,EAAE,WAAW;IAevB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IAyB/D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAO9C,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;IAoBlG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dendro/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAKR,cAAc,EAGd,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EAGjB,MAAM,UAAU,CAAC;AAClB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiEvD,qBAAa,WAAY,SAAQ,aAAa;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAmB;IAC1D,aAAa,gBAAuB;IAEpC,cAAc,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QACvC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;QAChC,YAAY,EAAE,gBAAgB,CAAC;KAClC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAS1F,KAAK,CAAC,IAAI,EAAE,WAAW;IAevB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IAyB/D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAO9C,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;IAoBlG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IA0BX,gBAAgB;IAOhB,YAAY;CAyCf"}
|
package/dist/dendro/index.js
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var v = (
|
|
4
|
-
import { l as
|
|
5
|
-
import { renderToString as
|
|
6
|
-
import { undefined as
|
|
7
|
-
import { AbstractChart as
|
|
8
|
-
import
|
|
9
|
-
import { USER_UPDATE_EVENT as
|
|
10
|
-
import { DendroSettingsImpl as
|
|
11
|
-
import { getHeatmapData as
|
|
12
|
-
import { getHierarchy as
|
|
13
|
-
function g(
|
|
14
|
-
return typeof
|
|
1
|
+
var A = Object.defineProperty;
|
|
2
|
+
var L = (o, h, e) => h in o ? A(o, h, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[h] = e;
|
|
3
|
+
var v = (o, h, e) => L(o, typeof h != "symbol" ? h + "" : h, e);
|
|
4
|
+
import { l as S } from "../node_modules/lodash/lodash.js";
|
|
5
|
+
import { renderToString as y } from "../node_modules/react-dom/server.browser.js";
|
|
6
|
+
import { undefined as b } from "../node_modules/zod/lib/index.js";
|
|
7
|
+
import { AbstractChart as R } from "../AbstractChart.js";
|
|
8
|
+
import w from "./ChartRenderer.js";
|
|
9
|
+
import { USER_UPDATE_EVENT as N } from "./constants.js";
|
|
10
|
+
import { DendroSettingsImpl as D } from "./DendroSettingsImpl.js";
|
|
11
|
+
import { getHeatmapData as I } from "./getHeatmapData.js";
|
|
12
|
+
import { getHierarchy as M } from "./getHierarchyData.js";
|
|
13
|
+
function g(o) {
|
|
14
|
+
return typeof o != "object" ? !1 : "valuesMap" in o;
|
|
15
15
|
}
|
|
16
|
-
function
|
|
17
|
-
const { nodeColor: e, nodeShape: t, lineColor: s } = h,
|
|
16
|
+
function E(o, h) {
|
|
17
|
+
const { nodeColor: e, nodeShape: t, lineColor: s } = h, i = [e, t, s].filter(
|
|
18
18
|
g
|
|
19
19
|
);
|
|
20
|
-
return
|
|
21
|
-
const { columnName:
|
|
22
|
-
(
|
|
23
|
-
),
|
|
24
|
-
return g(e) &&
|
|
25
|
-
|
|
26
|
-
})), g(t) &&
|
|
27
|
-
|
|
28
|
-
})), g(s) &&
|
|
29
|
-
|
|
30
|
-
})),
|
|
31
|
-
values:
|
|
32
|
-
usedAes: [...
|
|
33
|
-
aesMap:
|
|
34
|
-
labels:
|
|
35
|
-
},
|
|
20
|
+
return S.uniqBy(i, (n) => n.columnName.value).reduce((n, m) => {
|
|
21
|
+
const { columnName: l } = m, r = o.getColumnCategories(l.value, !1), p = (a) => String(
|
|
22
|
+
(l.valueLabels ? o.getColumnValue(l.valueLabels, o.getColumnCategoryRowIndex(l.value, a)) : b) ?? a
|
|
23
|
+
), u = /* @__PURE__ */ new Set(), d = r.reduce((a, f) => (a[f] || (a[f] = {}), a), {});
|
|
24
|
+
return g(e) && l.value === e.columnName.value && (u.add("dotFill"), r.forEach((a) => {
|
|
25
|
+
d[a].dotFill = e.valuesMap[a];
|
|
26
|
+
})), g(t) && l.value === t.columnName.value && (u.add("dotShape"), r.forEach((a) => {
|
|
27
|
+
d[a].dotShape = t.valuesMap[a];
|
|
28
|
+
})), g(s) && l.value === s.columnName.value && (u.add("lineColor"), r.forEach((a) => {
|
|
29
|
+
d[a].lineColor = s.valuesMap[a];
|
|
30
|
+
})), n[l.value] = {
|
|
31
|
+
values: r.sort(),
|
|
32
|
+
usedAes: [...u],
|
|
33
|
+
aesMap: d,
|
|
34
|
+
labels: r.reduce((a, f) => (a[f] = p(f), a), {})
|
|
35
|
+
}, n;
|
|
36
36
|
}, {});
|
|
37
37
|
}
|
|
38
|
-
class
|
|
38
|
+
class z extends R {
|
|
39
39
|
constructor(e, t, s) {
|
|
40
40
|
super(e, t);
|
|
41
41
|
v(this, "settings");
|
|
42
|
-
v(this, "onClick", () =>
|
|
43
|
-
v(this, "chartRenderer", new
|
|
42
|
+
v(this, "onClick", () => b);
|
|
43
|
+
v(this, "chartRenderer", new w());
|
|
44
44
|
v(this, "calculatedData", null);
|
|
45
|
-
this.settings = new
|
|
45
|
+
this.settings = new D(t), s && (this.onClick = s[0]);
|
|
46
46
|
}
|
|
47
47
|
mount(e) {
|
|
48
48
|
try {
|
|
@@ -56,55 +56,55 @@ class V extends y {
|
|
|
56
56
|
}
|
|
57
57
|
updateSettingsAndData(e, t) {
|
|
58
58
|
try {
|
|
59
|
-
const s = this.settings,
|
|
60
|
-
this.settings = new
|
|
59
|
+
const s = this.settings, i = this.data;
|
|
60
|
+
this.settings = new D(t), this.data = e, this._needUpdateCalculatedDataBySettings(s, this.settings) || this._needUpdateCalculatedDataByData(i, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart(), this.hasError = !1;
|
|
61
61
|
} catch (s) {
|
|
62
62
|
this.hasError = !0, s instanceof Error && (this.chartRenderer.renderError(s.message), console.error(s));
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
updateChartState(e, t) {
|
|
66
66
|
if (document) {
|
|
67
|
-
const s = new CustomEvent(
|
|
67
|
+
const s = new CustomEvent(N, { detail: { [e]: t } });
|
|
68
68
|
document.dispatchEvent(s);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
export() {
|
|
72
|
-
return this._updateChart(),
|
|
72
|
+
return this._updateChart(), y(this.chartRenderer.component);
|
|
73
73
|
}
|
|
74
74
|
_needUpdateCalculatedDataBySettings(e, t) {
|
|
75
|
-
var
|
|
76
|
-
const { mode: s, id:
|
|
77
|
-
function
|
|
78
|
-
return
|
|
75
|
+
var p, u;
|
|
76
|
+
const { mode: s, id: i, parentId: c, heatmapAnnotation: n, heatmapAxis: m, heatmapGroup: l } = t;
|
|
77
|
+
function r(d, a) {
|
|
78
|
+
return d.length !== a.length || d.some((f, C) => f.value !== a[C].value);
|
|
79
79
|
}
|
|
80
|
-
return e.mode !== s || e.id.value !==
|
|
80
|
+
return e.mode !== s || e.id.value !== i.value || e.parentId.value !== c.value || ((p = e.heatmapAnnotation) == null ? void 0 : p.value) !== (n == null ? void 0 : n.value) || ((u = e.heatmapAxis) == null ? void 0 : u.value) !== (m == null ? void 0 : m.value) || r(e.heatmapGroup, l);
|
|
81
81
|
}
|
|
82
82
|
_needUpdateCalculatedDataByData(e, t) {
|
|
83
|
-
const s = Object.keys(e.data),
|
|
84
|
-
return e.id !== t.id || s.length !==
|
|
85
|
-
var
|
|
86
|
-
return e.data[c].length !== ((
|
|
83
|
+
const s = Object.keys(e.data), i = Object.keys(t.data);
|
|
84
|
+
return e.id !== t.id || s.length !== i.length || s.some((c) => {
|
|
85
|
+
var n;
|
|
86
|
+
return e.data[c].length !== ((n = t.data[c]) == null ? void 0 : n.length);
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
_updateData() {
|
|
90
|
-
const { mode: e, id: t, parentId: s, aes:
|
|
90
|
+
const { mode: e, id: t, parentId: s, aes: i, heatmapAnnotation: c, heatmapAxis: n, heatmapGroup: m, heatmapSettings: l, height: r, labels: p, leavesOrder: u } = this.settings, d = r != null && r.value ? this.data.getColumn(r.value).some((_) => Number(_) > 0) : !1, a = M(
|
|
91
91
|
this.data,
|
|
92
92
|
t.value,
|
|
93
93
|
s.value,
|
|
94
|
-
(
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
d ? (r == null ? void 0 : r.value) ?? null : null,
|
|
95
|
+
p.valueLabels ?? p.value ?? null,
|
|
96
|
+
u,
|
|
97
97
|
e === "useAllNodesAsLeaves"
|
|
98
|
-
),
|
|
98
|
+
), f = I(this.data, l.valueType, c, n, m, t, a), C = E(this.data, i);
|
|
99
99
|
this.calculatedData = {
|
|
100
100
|
chartSizes: this.chartRenderer.chartSizes,
|
|
101
|
-
hierarchy:
|
|
102
|
-
heatmapData:
|
|
103
|
-
legendLabels:
|
|
101
|
+
hierarchy: a,
|
|
102
|
+
heatmapData: f,
|
|
103
|
+
legendLabels: C
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
106
|
_updateAesInData() {
|
|
107
|
-
this.calculatedData && (this.calculatedData.legendLabels =
|
|
107
|
+
this.calculatedData && (this.calculatedData.legendLabels = E(this.data, this.settings.aes));
|
|
108
108
|
}
|
|
109
109
|
_updateChart() {
|
|
110
110
|
if (!this.calculatedData)
|
|
@@ -113,15 +113,15 @@ class V extends y {
|
|
|
113
113
|
heatmapAnnotation: e,
|
|
114
114
|
chartSettings: t,
|
|
115
115
|
connectionType: s,
|
|
116
|
-
edgeInheritance:
|
|
116
|
+
edgeInheritance: i,
|
|
117
117
|
rootPosition: c,
|
|
118
|
-
showNodes:
|
|
119
|
-
showEdges:
|
|
120
|
-
showLeavesLabels:
|
|
121
|
-
showNodesLabels:
|
|
122
|
-
aes:
|
|
123
|
-
labels:
|
|
124
|
-
heatmapSettings:
|
|
118
|
+
showNodes: n,
|
|
119
|
+
showEdges: m,
|
|
120
|
+
showLeavesLabels: l,
|
|
121
|
+
showNodesLabels: r,
|
|
122
|
+
aes: p,
|
|
123
|
+
labels: u,
|
|
124
|
+
heatmapSettings: d,
|
|
125
125
|
leavesMode: a
|
|
126
126
|
} = this.settings;
|
|
127
127
|
this.chartRenderer.render(
|
|
@@ -130,16 +130,16 @@ class V extends y {
|
|
|
130
130
|
this.calculatedData.hierarchy,
|
|
131
131
|
s,
|
|
132
132
|
c,
|
|
133
|
-
|
|
134
|
-
r,
|
|
135
|
-
p,
|
|
133
|
+
i,
|
|
136
134
|
n,
|
|
137
|
-
o,
|
|
138
135
|
m,
|
|
139
|
-
|
|
136
|
+
l,
|
|
137
|
+
r,
|
|
138
|
+
p,
|
|
139
|
+
u,
|
|
140
140
|
e,
|
|
141
141
|
this.calculatedData.heatmapData,
|
|
142
|
-
|
|
142
|
+
d,
|
|
143
143
|
this.calculatedData.legendLabels,
|
|
144
144
|
a,
|
|
145
145
|
this.onClick
|
|
@@ -147,6 +147,6 @@ class V extends y {
|
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
export {
|
|
150
|
-
|
|
150
|
+
z as ChartDendro
|
|
151
151
|
};
|
|
152
152
|
//# sourceMappingURL=index.js.map
|
package/dist/dendro/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/dendro/index.ts"],"sourcesContent":["import type { HierarchyNode } from 'd3-hierarchy';\nimport { uniqBy } from 'lodash';\nimport { renderToString } from 'react-dom/server';\nimport { undefined } from 'zod';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type {\n AesItem,\n AesRecord,\n CategoricalAesFromColumn,\n Category,\n ClickEventData,\n ColumnName,\n ContinuousAesFromColumn,\n DendroEventHandlers,\n DendroLegendInfo,\n DendroSettings,\n LineShape,\n PointShape\n} from '../types';\nimport ChartRenderer from './ChartRenderer';\nimport type { ChartSizes } from './components/types';\nimport { USER_UPDATE_EVENT } from './constants';\nimport { DendroSettingsImpl } from './DendroSettingsImpl';\nimport type { HeatmapData } from './getHeatmapData';\nimport { getHeatmapData } from './getHeatmapData';\nimport type { TreeNodeData } from './getHierarchyData';\nimport { getHierarchy } from './getHierarchyData';\n\nfunction isCategoricalAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType>\n): item is CategoricalAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return 'valuesMap' in item;\n}\nfunction getLegendLabelsMap(data: DataFrame, aes: DendroSettingsImpl['aes']): DendroLegendInfo {\n const {nodeColor, nodeShape, lineColor} = aes;\n const aesGrouping: CategoricalAesFromColumn<string | PointShape>[] = [nodeColor, nodeShape, lineColor].filter(\n isCategoricalAes\n );\n const uniqueColumns = uniqBy(aesGrouping, item => item.columnName.value);\n return uniqueColumns.reduce((res: DendroLegendInfo, item) => {\n const {columnName} = item;\n const categories = data.getColumnCategories(columnName.value, false);\n const getValueLabel = (category: Category) => String(\n (columnName.valueLabels\n ? data.getColumnValue(columnName.valueLabels, data.getColumnCategoryRowIndex(columnName.value, category))\n : undefined\n ) ?? category\n );\n\n const usedAes = new Set<keyof AesItem>();\n const aesMap: AesRecord = categories.reduce((res: AesRecord, category) => {\n if (!res[category]) {\n res[category] = {} as AesItem;\n }\n return res;\n }, {});\n if (isCategoricalAes(nodeColor) && columnName.value === nodeColor.columnName.value) {\n usedAes.add('dotFill');\n categories.forEach(category => {\n aesMap[category]['dotFill'] = nodeColor.valuesMap[category];\n });\n }\n if (isCategoricalAes(nodeShape) && columnName.value === nodeShape.columnName.value) {\n usedAes.add('dotShape');\n categories.forEach(category => {\n aesMap[category]['dotShape'] = nodeShape.valuesMap[category];\n });\n }\n if (isCategoricalAes(lineColor) && columnName.value === lineColor.columnName.value) {\n usedAes.add('lineColor');\n categories.forEach(category => {\n aesMap[category]['lineColor'] = lineColor.valuesMap[category];\n });\n }\n res[columnName.value] = {\n values: categories.sort(),\n usedAes: [...usedAes],\n aesMap,\n labels: categories.reduce((res: Record<string, string>, category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {}),\n };\n return res;\n }, {});\n}\n\nexport class ChartDendro extends AbstractChart {\n settings: DendroSettingsImpl;\n onClick: (data: ClickEventData) => void = () => undefined;\n chartRenderer = new ChartRenderer();\n\n calculatedData: {\n chartSizes: ChartSizes;\n hierarchy: HierarchyNode<TreeNodeData>;\n heatmapData: HeatmapData | null;\n legendLabels: DendroLegendInfo;\n } | null = null;\n\n constructor(data: DataFrame, settings: DendroSettings, eventHandlers?: DendroEventHandlers) {\n super(data, settings);\n\n this.settings = new DendroSettingsImpl(settings);\n if (eventHandlers) {\n this.onClick = eventHandlers[0];\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: DendroSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DendroSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(field: string, value: unknown) {\n if (document) {\n const event = new CustomEvent(USER_UPDATE_EVENT, {detail: {[field]: value}});\n document.dispatchEvent(event);\n }\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DendroSettingsImpl, settings: DendroSettingsImpl) {\n const {mode, id, parentId, heatmapAnnotation, heatmapAxis, heatmapGroup} = settings;\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.mode !== mode ||\n prevSettings.id.value !== id.value ||\n prevSettings.parentId.value !== parentId.value ||\n prevSettings.heatmapAnnotation?.value !== heatmapAnnotation?.value ||\n prevSettings.heatmapAxis?.value !== heatmapAxis?.value ||\n compareColumnGroups(prevSettings.heatmapGroup, heatmapGroup)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {mode, id, parentId, aes, heatmapAnnotation, heatmapAxis, heatmapGroup, heatmapSettings, height, labels, leavesOrder} = this.settings;\n const hierarchy = getHierarchy(\n this.data,\n id.value,\n parentId.value,\n height?.value ?? null,\n labels.valueLabels ?? labels.value ?? null,\n leavesOrder,\n mode === 'useAllNodesAsLeaves'\n );\n const heatmapData = getHeatmapData(this.data, heatmapSettings.valueType, heatmapAnnotation, heatmapAxis, heatmapGroup, id, hierarchy);\n\n const legendLabels = getLegendLabelsMap(this.data, aes);\n\n this.calculatedData = {\n chartSizes: this.chartRenderer.chartSizes,\n hierarchy,\n heatmapData,\n legendLabels,\n };\n }\n\n _updateAesInData() {\n if (!this.calculatedData) {\n return;\n }\n this.calculatedData.legendLabels = getLegendLabelsMap(this.data, this.settings.aes);\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n heatmapAnnotation,\n chartSettings,\n connectionType,\n edgeInheritance,\n rootPosition,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapSettings,\n leavesMode\n } = this.settings;\n\n this.chartRenderer.render(\n this.data,\n chartSettings,\n this.calculatedData.hierarchy,\n connectionType,\n rootPosition,\n edgeInheritance,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapAnnotation,\n this.calculatedData.heatmapData,\n heatmapSettings,\n this.calculatedData.legendLabels,\n leavesMode,\n this.onClick\n );\n }\n}\n"],"names":["isCategoricalAes","item","getLegendLabelsMap","data","aes","nodeColor","nodeShape","lineColor","aesGrouping","uniqBy","res","columnName","categories","getValueLabel","category","undefined","usedAes","aesMap","ChartDendro","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","DendroSettingsImpl","node","err","previousSettings","previousData","field","value","event","USER_UPDATE_EVENT","renderToString","prevSettings","mode","id","parentId","heatmapAnnotation","heatmapAxis","heatmapGroup","compareColumnGroups","columns1","columns2","column","idx","_a","_b","prevData","prevKeys","keys","key","heatmapSettings","height","labels","leavesOrder","hierarchy","getHierarchy","heatmapData","getHeatmapData","legendLabels","chartSettings","connectionType","edgeInheritance","rootPosition","showNodes","showEdges","showLeavesLabels","showNodesLabels","leavesMode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/dendro/index.ts"],"sourcesContent":["import type { HierarchyNode } from 'd3-hierarchy';\nimport { uniqBy } from 'lodash';\nimport { renderToString } from 'react-dom/server';\nimport { undefined } from 'zod';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type {\n AesItem,\n AesRecord,\n CategoricalAesFromColumn,\n Category,\n ClickEventData,\n ColumnName,\n ContinuousAesFromColumn,\n DendroEventHandlers,\n DendroLegendInfo,\n DendroSettings,\n LineShape,\n PointShape\n} from '../types';\nimport ChartRenderer from './ChartRenderer';\nimport type { ChartSizes } from './components/types';\nimport { USER_UPDATE_EVENT } from './constants';\nimport { DendroSettingsImpl } from './DendroSettingsImpl';\nimport type { HeatmapData } from './getHeatmapData';\nimport { getHeatmapData } from './getHeatmapData';\nimport type { TreeNodeData } from './getHierarchyData';\nimport { getHierarchy } from './getHierarchyData';\n\nfunction isCategoricalAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType>\n): item is CategoricalAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return 'valuesMap' in item;\n}\nfunction getLegendLabelsMap(data: DataFrame, aes: DendroSettingsImpl['aes']): DendroLegendInfo {\n const {nodeColor, nodeShape, lineColor} = aes;\n const aesGrouping: CategoricalAesFromColumn<string | PointShape>[] = [nodeColor, nodeShape, lineColor].filter(\n isCategoricalAes\n );\n const uniqueColumns = uniqBy(aesGrouping, item => item.columnName.value);\n return uniqueColumns.reduce((res: DendroLegendInfo, item) => {\n const {columnName} = item;\n const categories = data.getColumnCategories(columnName.value, false);\n const getValueLabel = (category: Category) => String(\n (columnName.valueLabels\n ? data.getColumnValue(columnName.valueLabels, data.getColumnCategoryRowIndex(columnName.value, category))\n : undefined\n ) ?? category\n );\n\n const usedAes = new Set<keyof AesItem>();\n const aesMap: AesRecord = categories.reduce((res: AesRecord, category) => {\n if (!res[category]) {\n res[category] = {} as AesItem;\n }\n return res;\n }, {});\n if (isCategoricalAes(nodeColor) && columnName.value === nodeColor.columnName.value) {\n usedAes.add('dotFill');\n categories.forEach(category => {\n aesMap[category]['dotFill'] = nodeColor.valuesMap[category];\n });\n }\n if (isCategoricalAes(nodeShape) && columnName.value === nodeShape.columnName.value) {\n usedAes.add('dotShape');\n categories.forEach(category => {\n aesMap[category]['dotShape'] = nodeShape.valuesMap[category];\n });\n }\n if (isCategoricalAes(lineColor) && columnName.value === lineColor.columnName.value) {\n usedAes.add('lineColor');\n categories.forEach(category => {\n aesMap[category]['lineColor'] = lineColor.valuesMap[category];\n });\n }\n res[columnName.value] = {\n values: categories.sort(),\n usedAes: [...usedAes],\n aesMap,\n labels: categories.reduce((res: Record<string, string>, category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {}),\n };\n return res;\n }, {});\n}\n\nexport class ChartDendro extends AbstractChart {\n settings: DendroSettingsImpl;\n onClick: (data: ClickEventData) => void = () => undefined;\n chartRenderer = new ChartRenderer();\n\n calculatedData: {\n chartSizes: ChartSizes;\n hierarchy: HierarchyNode<TreeNodeData>;\n heatmapData: HeatmapData | null;\n legendLabels: DendroLegendInfo;\n } | null = null;\n\n constructor(data: DataFrame, settings: DendroSettings, eventHandlers?: DendroEventHandlers) {\n super(data, settings);\n\n this.settings = new DendroSettingsImpl(settings);\n if (eventHandlers) {\n this.onClick = eventHandlers[0];\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: DendroSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DendroSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(field: string, value: unknown) {\n if (document) {\n const event = new CustomEvent(USER_UPDATE_EVENT, {detail: {[field]: value}});\n document.dispatchEvent(event);\n }\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DendroSettingsImpl, settings: DendroSettingsImpl) {\n const {mode, id, parentId, heatmapAnnotation, heatmapAxis, heatmapGroup} = settings;\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.mode !== mode ||\n prevSettings.id.value !== id.value ||\n prevSettings.parentId.value !== parentId.value ||\n prevSettings.heatmapAnnotation?.value !== heatmapAnnotation?.value ||\n prevSettings.heatmapAxis?.value !== heatmapAxis?.value ||\n compareColumnGroups(prevSettings.heatmapGroup, heatmapGroup)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {mode, id, parentId, aes, heatmapAnnotation, heatmapAxis, heatmapGroup, heatmapSettings, height, labels, leavesOrder} = this.settings;\n const useDistances = height?.value ? this.data.getColumn(height.value).some(v => Number(v) > 0) : false;\n\n const hierarchy = getHierarchy(\n this.data,\n id.value,\n parentId.value,\n useDistances ? height?.value ?? null : null,\n labels.valueLabels ?? labels.value ?? null,\n leavesOrder,\n mode === 'useAllNodesAsLeaves'\n );\n\n const heatmapData = getHeatmapData(this.data, heatmapSettings.valueType, heatmapAnnotation, heatmapAxis, heatmapGroup, id, hierarchy);\n\n const legendLabels = getLegendLabelsMap(this.data, aes);\n\n this.calculatedData = {\n chartSizes: this.chartRenderer.chartSizes,\n hierarchy,\n heatmapData,\n legendLabels\n };\n }\n\n _updateAesInData() {\n if (!this.calculatedData) {\n return;\n }\n this.calculatedData.legendLabels = getLegendLabelsMap(this.data, this.settings.aes);\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n heatmapAnnotation,\n chartSettings,\n connectionType,\n edgeInheritance,\n rootPosition,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapSettings,\n leavesMode\n } = this.settings;\n\n this.chartRenderer.render(\n this.data,\n chartSettings,\n this.calculatedData.hierarchy,\n connectionType,\n rootPosition,\n edgeInheritance,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapAnnotation,\n this.calculatedData.heatmapData,\n heatmapSettings,\n this.calculatedData.legendLabels,\n leavesMode,\n this.onClick\n );\n }\n}\n"],"names":["isCategoricalAes","item","getLegendLabelsMap","data","aes","nodeColor","nodeShape","lineColor","aesGrouping","uniqBy","res","columnName","categories","getValueLabel","category","undefined","usedAes","aesMap","ChartDendro","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","DendroSettingsImpl","node","err","previousSettings","previousData","field","value","event","USER_UPDATE_EVENT","renderToString","prevSettings","mode","id","parentId","heatmapAnnotation","heatmapAxis","heatmapGroup","compareColumnGroups","columns1","columns2","column","idx","_a","_b","prevData","prevKeys","keys","key","heatmapSettings","height","labels","leavesOrder","useDistances","v","hierarchy","getHierarchy","heatmapData","getHeatmapData","legendLabels","chartSettings","connectionType","edgeInheritance","rootPosition","showNodes","showEdges","showLeavesLabels","showNodesLabels","leavesMode"],"mappings":"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"}
|
|
@@ -32,16 +32,26 @@ declare class ChartRenderer {
|
|
|
32
32
|
dendrograms: Record<string, ChartDendrograms>;
|
|
33
33
|
clear(): void;
|
|
34
34
|
init(node: HTMLElement): void;
|
|
35
|
-
updateMargins(title: HeatmapSettingsImpl['chartSettings']['title']): void;
|
|
35
|
+
updateMargins(title: HeatmapSettingsImpl['chartSettings']['title'], size: HeatmapSettingsImpl['chartSettings']['size']): void;
|
|
36
36
|
updateLegendSize(valueType: HeatmapSettingsImpl['chartSettings']['valueType'], legend: HeatmapSettingsImpl['chartSettings']['legend'], annotations: HeatmapSettingsImpl['annotations'], columnValue: ColumnName, valueExtent: [number, number]): void;
|
|
37
37
|
updateCaptionsSize(groupedCells: GroupedCellsData, xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'], yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'], facetSettings: HeatmapSettingsImpl['facetSettings']): void;
|
|
38
38
|
updateChartDimensions(size: HeatmapSettingsImpl['chartSettings']['size'], facetKeys: string[], xGroupKeys: string[], yGroupKeys: string[], facetSettings: HeatmapSettingsImpl['facetSettings'], xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'], yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'], annotations: HeatmapSettingsImpl['annotations'], dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY']): void;
|
|
39
|
-
updateChartsSizes(size: HeatmapSettingsImpl['chartSettings']['size']): void;
|
|
40
|
-
updateScales(facetKeys: string[], groupedCells: GroupedCellsData, groupGap: number, facetSettings: HeatmapSettingsImpl['facetSettings'], size: HeatmapSettingsImpl['chartSettings']['size'], xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'], yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'], dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY']
|
|
39
|
+
updateChartsSizes(size: HeatmapSettingsImpl['chartSettings']['size'], facetSettings: HeatmapSettingsImpl['facetSettings'], groupedCells: GroupedCellsData): void;
|
|
40
|
+
updateScales(facetKeys: string[], groupedCells: GroupedCellsData, groupGap: number, facetSettings: HeatmapSettingsImpl['facetSettings'], size: HeatmapSettingsImpl['chartSettings']['size'], xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'], yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'], dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY'], customOrder: {
|
|
41
|
+
x: boolean;
|
|
42
|
+
y: boolean;
|
|
43
|
+
xGroup: boolean;
|
|
44
|
+
yGroup: boolean;
|
|
45
|
+
}): void;
|
|
41
46
|
updateAesScale(valueType: 'discrete' | 'continuous', valueExtent: [number, number], aes: HeatmapSettingsImpl['aes'], annotations: HeatmapSettingsImpl['annotations'], groupedCellsData: GroupedCellsData, cellUniqValues: DataValue[], normalization: HeatmapSettingsImpl['normalization']): void;
|
|
42
47
|
updateDendrogram(facetKeys: string[], xGroupKeys: string[], yGroupKeys: string[], groups: GroupedCellsData['facets'], dendrogramsData: DendrogramsData, dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY']): void;
|
|
43
48
|
updateDendrogramAesScales(inheritedAes: HeatmapSettingsImpl['inheritedDendrogramAes']): void;
|
|
44
|
-
render(dataFrame: DataFrame, settingsId: string, chartSettings: HeatmapSettingsImpl['chartSettings'], facetSettings: HeatmapSettingsImpl['facetSettings'], aes: HeatmapSettingsImpl['aes'], groupedCellsData: GroupedCellsData, annotations: HeatmapSettingsImpl['annotations'], valueColumn: ColumnName, dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY'], dendrogramsData: DendrogramsData, inheritedDendrogramAes: HeatmapSettingsImpl['inheritedDendrogramAes'], cellUniqValues: DataValue[], normalization: HeatmapSettingsImpl['normalization'], onTooltipHintSwitch: (v: boolean) => void
|
|
49
|
+
render(dataFrame: DataFrame, settingsId: string, chartSettings: HeatmapSettingsImpl['chartSettings'], facetSettings: HeatmapSettingsImpl['facetSettings'], aes: HeatmapSettingsImpl['aes'], groupedCellsData: GroupedCellsData, annotations: HeatmapSettingsImpl['annotations'], valueColumn: ColumnName, dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY'], dendrogramsData: DendrogramsData, inheritedDendrogramAes: HeatmapSettingsImpl['inheritedDendrogramAes'], cellUniqValues: DataValue[], normalization: HeatmapSettingsImpl['normalization'], onTooltipHintSwitch: (v: boolean) => void, customOrder: {
|
|
50
|
+
x: boolean;
|
|
51
|
+
y: boolean;
|
|
52
|
+
xGroup: boolean;
|
|
53
|
+
yGroup: boolean;
|
|
54
|
+
}): void;
|
|
45
55
|
renderError(message: string): void;
|
|
46
56
|
}
|
|
47
57
|
export default ChartRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartRenderer.d.ts","sourceRoot":"","sources":["../../src/heatmap/ChartRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,iBAAiB,CAAC;AAG9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAW,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAM/D,OAAO,KAAK,EACR,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACV,YAAY,EAEZ,mBAAmB,EACnB,WAAW,EACX,OAAO,EACV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AA6FjE,cAAM,aAAa;IACf,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC9B,UAAU,EAAE,WAAW,GAAG,IAAI,CAAQ;IACtC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAQ;IACpC,SAAS,EAAE,YAAY,CAAW;IAClC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAM;IAC3D,UAAU,EAAE,UAAU,CAOpB;IACF,OAAO,EAAE,OAAO,CAKd;IACF,aAAa,EAAE,aAAa,CAO1B;IACF,WAAW,EAAE,WAAW,CAKtB;IACF,YAAY,SAAK;IACjB,SAAS,SAAK;IACd,MAAM,EAAE,YAAY,CAIlB;IACF,IAAI,EAAE;QACF,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7B,
|
|
1
|
+
{"version":3,"file":"ChartRenderer.d.ts","sourceRoot":"","sources":["../../src/heatmap/ChartRenderer.tsx"],"names":[],"mappings":"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"}
|