@milaboratories/miplots4 1.0.146 → 1.0.148

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.
Files changed (34) hide show
  1. package/dist/common/Legend.js +3 -3
  2. package/dist/common/Legend.js.map +1 -1
  3. package/dist/heatmap/ChartRenderer.js +1 -1
  4. package/dist/heatmap/ChartRenderer.js.map +1 -1
  5. package/dist/heatmap/HeatmapSettingsImpl.d.ts +6 -1
  6. package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -1
  7. package/dist/heatmap/HeatmapSettingsImpl.js +9 -3
  8. package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
  9. package/dist/heatmap/components/Annotations/index.js +58 -58
  10. package/dist/heatmap/components/Annotations/index.js.map +1 -1
  11. package/dist/heatmap/components/Dendrograms.d.ts.map +1 -1
  12. package/dist/heatmap/components/Dendrograms.js +51 -51
  13. package/dist/heatmap/components/Dendrograms.js.map +1 -1
  14. package/dist/heatmap/components/types.d.ts +0 -1
  15. package/dist/heatmap/components/types.d.ts.map +1 -1
  16. package/dist/heatmap/getCells.d.ts +1 -1
  17. package/dist/heatmap/getCells.d.ts.map +1 -1
  18. package/dist/heatmap/getCells.js +204 -110
  19. package/dist/heatmap/getCells.js.map +1 -1
  20. package/dist/heatmap/getClusters.d.ts +81 -4
  21. package/dist/heatmap/getClusters.d.ts.map +1 -1
  22. package/dist/heatmap/getClusters.js +137 -48
  23. package/dist/heatmap/getClusters.js.map +1 -1
  24. package/dist/heatmap/getDendrograms.d.ts.map +1 -1
  25. package/dist/heatmap/getDendrograms.js +33 -35
  26. package/dist/heatmap/getDendrograms.js.map +1 -1
  27. package/dist/heatmap/index.d.ts.map +1 -1
  28. package/dist/heatmap/index.js +88 -85
  29. package/dist/heatmap/index.js.map +1 -1
  30. package/dist/types/heatmap.d.ts +24 -0
  31. package/dist/types/heatmap.d.ts.map +1 -1
  32. package/dist/types/heatmap.js +7 -2
  33. package/dist/types/heatmap.js.map +1 -1
  34. package/package.json +1 -1
@@ -1,23 +1,23 @@
1
- var M = Object.defineProperty;
2
- var q = (g, d, a) => d in g ? M(g, d, { enumerable: !0, configurable: !0, writable: !0, value: a }) : g[d] = a;
3
- var A = (g, d, a) => q(g, typeof d != "symbol" ? d + "" : d, a);
4
- import { renderToString as z } from "../node_modules/react-dom/server.browser.js";
5
- import { AbstractChart as L } from "../AbstractChart.js";
6
- import { isColumnName as v } from "../utils/index.js";
7
- import S from "./ChartRenderer.js";
8
- import { getCells as K } from "./getCells.js";
9
- import { getDendrograms as F } from "./getDendrograms.js";
10
- import { HeatmapSettingsImpl as V } from "./HeatmapSettingsImpl.js";
11
- import { MAX_SVG_RENDERED_CELLS_COUNT as J } from "./constants.js";
12
- class na extends L {
1
+ var K = Object.defineProperty;
2
+ var F = (C, l, a) => l in C ? K(C, l, { enumerable: !0, configurable: !0, writable: !0, value: a }) : C[l] = a;
3
+ var A = (C, l, a) => F(C, typeof l != "symbol" ? l + "" : l, a);
4
+ import { renderToString as J } from "../node_modules/react-dom/server.browser.js";
5
+ import { AbstractChart as P } from "../AbstractChart.js";
6
+ import { isColumnName as R } from "../utils/index.js";
7
+ import Q from "./ChartRenderer.js";
8
+ import { getCells as W } from "./getCells.js";
9
+ import { getDendrograms as Z } from "./getDendrograms.js";
10
+ import { HeatmapSettingsImpl as q } from "./HeatmapSettingsImpl.js";
11
+ import { MAX_SVG_RENDERED_CELLS_COUNT as $ } from "./constants.js";
12
+ class la extends P {
13
13
  constructor(a, e, t) {
14
14
  super(a, e);
15
15
  A(this, "settings");
16
- A(this, "chartRenderer", new S());
16
+ A(this, "chartRenderer", new Q());
17
17
  A(this, "onTooltipHintSwitch", () => {
18
18
  });
19
19
  A(this, "calculatedData", null);
20
- this.settings = new V(e), t && (this.onTooltipHintSwitch = t[0]);
20
+ this.settings = new q(e), t && (this.onTooltipHintSwitch = t[0]);
21
21
  }
22
22
  mount(a) {
23
23
  try {
@@ -31,8 +31,8 @@ class na extends L {
31
31
  }
32
32
  updateSettingsAndData(a, e) {
33
33
  try {
34
- const t = this.settings, o = this.data;
35
- this.settings = new V(e), this.data = a, this._needUpdateCalculatedDataBySettings(t, this.settings) || this._needUpdateCalculatedDataByData(o, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
34
+ const t = this.settings, d = this.data;
35
+ this.settings = new q(e), this.data = a, this._needUpdateCalculatedDataBySettings(t, this.settings) || this._needUpdateCalculatedDataByData(d, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
36
36
  } catch (t) {
37
37
  t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
38
38
  }
@@ -41,42 +41,43 @@ class na extends L {
41
41
  console.warn("no chart state for heatmap");
42
42
  }
43
43
  export() {
44
- return this._updateChart(), z(this.chartRenderer.component);
44
+ return this._updateChart(), J(this.chartRenderer.component);
45
45
  }
46
46
  _needUpdateCalculatedDataBySettings(a, e) {
47
- var y, i, R, Y, E, O, k, N, T, b, w, U;
47
+ var c, Y, E, O, v, k, N, T, b, w, U, j, V, H, I;
48
48
  const {
49
49
  xColumn: t,
50
- yColumn: o,
51
- valueColumn: l,
52
- xGroupBy: u,
53
- yGroupBy: c,
50
+ yColumn: d,
51
+ valueColumn: u,
52
+ xGroupBy: i,
53
+ yGroupBy: h,
54
54
  facetBy: D,
55
55
  annotations: _,
56
- chartSettings: C,
57
- facetSettings: r,
58
- dendrogramX: h,
59
- dendrogramY: m,
56
+ chartSettings: y,
57
+ facetSettings: o,
58
+ dendrogramX: m,
59
+ dendrogramY: g,
60
60
  normalization: n,
61
+ aggregation: r,
61
62
  NAValueAs: p
62
- } = e, x = Object.values(((y = a.dendrogramX) == null ? void 0 : y.aes) || {}).filter(
63
- v
64
- ), B = Object.values((h == null ? void 0 : h.aes) || {}).filter(v), G = Object.values(((i = a.dendrogramY) == null ? void 0 : i.aes) || {}).filter(
65
- v
66
- ), X = Object.values((m == null ? void 0 : m.aes) || {}).filter(v);
67
- function s(f, j) {
68
- return f.length !== j.length || f.some((H, I) => H.value !== j[I].value);
63
+ } = e, x = Object.values(((c = a.dendrogramX) == null ? void 0 : c.aes) || {}).filter(
64
+ R
65
+ ), B = Object.values((m == null ? void 0 : m.aes) || {}).filter(R), X = Object.values(((Y = a.dendrogramY) == null ? void 0 : Y.aes) || {}).filter(
66
+ R
67
+ ), G = Object.values((g == null ? void 0 : g.aes) || {}).filter(R);
68
+ function s(f, M) {
69
+ return f.length !== M.length || f.some((z, L) => z.value !== M[L].value);
69
70
  }
70
- return a.xColumn.value !== t.value || a.yColumn.value !== o.value || a.valueColumn.value !== l.value || s(a.xGroupBy, u) || s(a.yGroupBy, c) || s(a.facetBy, D) || s(
71
+ return a.xColumn.value !== t.value || a.yColumn.value !== d.value || a.valueColumn.value !== u.value || s(a.xGroupBy, i) || s(a.yGroupBy, h) || s(a.facetBy, D) || s(
71
72
  a.annotations.map((f) => f.valueColumn),
72
73
  _.map((f) => f.valueColumn)
73
- ) || s(x, B) || s(G, X) || (e.dendrogramX || a.dendrogramX) && (((R = a.dendrogramX) == null ? void 0 : R.distance) !== ((Y = e.dendrogramX) == null ? void 0 : Y.distance) || ((E = a.dendrogramX) == null ? void 0 : E.linkage) !== ((O = e.dendrogramX) == null ? void 0 : O.linkage)) || (e.dendrogramY || a.dendrogramY) && (((k = a.dendrogramY) == null ? void 0 : k.distance) !== ((N = e.dendrogramY) == null ? void 0 : N.distance) || ((T = a.dendrogramY) == null ? void 0 : T.linkage) !== ((b = e.dendrogramY) == null ? void 0 : b.linkage)) || a.chartSettings.valueType !== C.valueType || a.facetSettings.sharedX !== r.sharedX || a.facetSettings.sharedY !== r.sharedY || ((w = a.normalization) == null ? void 0 : w.method) !== (n == null ? void 0 : n.method) || ((U = a.normalization) == null ? void 0 : U.direction) !== (n == null ? void 0 : n.direction) || a.NAValueAs !== p;
74
+ ) || s(x, B) || s(X, G) || (e.dendrogramX || a.dendrogramX) && (((E = a.dendrogramX) == null ? void 0 : E.distance) !== ((O = e.dendrogramX) == null ? void 0 : O.distance) || ((v = a.dendrogramX) == null ? void 0 : v.linkage) !== ((k = e.dendrogramX) == null ? void 0 : k.linkage)) || (e.dendrogramY || a.dendrogramY) && (((N = a.dendrogramY) == null ? void 0 : N.distance) !== ((T = e.dendrogramY) == null ? void 0 : T.distance) || ((b = a.dendrogramY) == null ? void 0 : b.linkage) !== ((w = e.dendrogramY) == null ? void 0 : w.linkage)) || a.chartSettings.valueType !== y.valueType || a.facetSettings.sharedX !== o.sharedX || a.facetSettings.sharedY !== o.sharedY || ((U = a.normalization) == null ? void 0 : U.method) !== (n == null ? void 0 : n.method) || ((j = a.normalization) == null ? void 0 : j.direction) !== (n == null ? void 0 : n.direction) || a.NAValueAs !== p || ((V = a.aggregation) == null ? void 0 : V.method) !== (r == null ? void 0 : r.method) || ((H = a.aggregation) == null ? void 0 : H.x) !== (r == null ? void 0 : r.x) || ((I = a.aggregation) == null ? void 0 : I.y) !== (r == null ? void 0 : r.y);
74
75
  }
75
76
  _needUpdateCalculatedDataByData(a, e) {
76
- const t = Object.keys(a.data), o = Object.keys(e.data);
77
- return a.id !== e.id || t.length !== o.length || t.some((l) => {
78
- var u;
79
- return a.data[l].length !== ((u = e.data[l]) == null ? void 0 : u.length);
77
+ const t = Object.keys(a.data), d = Object.keys(e.data);
78
+ return a.id !== e.id || t.length !== d.length || t.some((u) => {
79
+ var i;
80
+ return a.data[u].length !== ((i = e.data[u]) == null ? void 0 : i.length);
80
81
  });
81
82
  }
82
83
  _updateData() {
@@ -84,34 +85,36 @@ class na extends L {
84
85
  xColumn: a,
85
86
  yColumn: e,
86
87
  valueColumn: t,
87
- xGroupBy: o,
88
- yGroupBy: l,
89
- facetBy: u,
90
- chartSettings: c,
88
+ xGroupBy: d,
89
+ yGroupBy: u,
90
+ facetBy: i,
91
+ chartSettings: h,
91
92
  facetSettings: D,
92
93
  annotations: _,
93
- dendrogramX: C,
94
- dendrogramY: r,
95
- normalization: h,
96
- NAValueAs: m,
97
- keysOrder: n
98
- } = this.settings, p = K(
94
+ dendrogramX: y,
95
+ dendrogramY: o,
96
+ normalization: m,
97
+ NAValueAs: g,
98
+ keysOrder: n,
99
+ aggregation: r
100
+ } = this.settings, p = W(
99
101
  this.data,
100
102
  a,
101
103
  e,
102
104
  t,
105
+ i,
106
+ d,
103
107
  u,
104
- o,
105
- l,
106
108
  _,
107
- C,
108
- r,
109
- h,
109
+ y,
110
+ o,
110
111
  m,
112
+ g,
111
113
  n,
112
- c.xAxis,
113
- c.yAxis
114
- ), x = F(p, C, r, D), B = c.valueType === "discrete" ? this.data.getColumnCategories(t.value) : [];
114
+ h.xAxis,
115
+ h.yAxis,
116
+ r
117
+ ), x = Z(p, y, o, D), B = h.valueType === "discrete" ? this.data.getColumnCategories(t.value) : [];
115
118
  this.calculatedData = {
116
119
  groupedCellsData: p,
117
120
  dendrogramsData: x,
@@ -121,59 +124,59 @@ class na extends L {
121
124
  _updateAesInData() {
122
125
  }
123
126
  _updateChart() {
124
- var X, s;
127
+ var X, G;
125
128
  if (!this.calculatedData)
126
129
  return;
127
130
  const {
128
131
  id: a,
129
132
  valueColumn: e,
130
133
  chartSettings: t,
131
- facetSettings: o,
132
- aes: l,
133
- annotations: u,
134
- dendrogramX: c,
134
+ facetSettings: d,
135
+ aes: u,
136
+ annotations: i,
137
+ dendrogramX: h,
135
138
  dendrogramY: D,
136
139
  inheritedDendrogramAes: _,
137
- normalization: C,
138
- keysOrder: r,
139
- xColumn: h,
140
- yColumn: m,
140
+ normalization: y,
141
+ keysOrder: o,
142
+ xColumn: m,
143
+ yColumn: g,
141
144
  xGroupBy: n,
142
- yGroupBy: p
143
- } = this.settings, x = {
144
- x: ((X = r[h.value]) == null ? void 0 : X.length) > 0,
145
- y: ((s = r[m.value]) == null ? void 0 : s.length) > 0,
146
- xGroup: n.some((y) => {
147
- var i;
148
- return ((i = r[y.value]) == null ? void 0 : i.length) > 0;
145
+ yGroupBy: r
146
+ } = this.settings, p = {
147
+ x: ((X = o[m.value]) == null ? void 0 : X.length) > 0,
148
+ y: ((G = o[g.value]) == null ? void 0 : G.length) > 0,
149
+ xGroup: n.some((s) => {
150
+ var c;
151
+ return ((c = o[s.value]) == null ? void 0 : c.length) > 0;
149
152
  }),
150
- yGroup: p.some((y) => {
151
- var i;
152
- return ((i = r[y.value]) == null ? void 0 : i.length) > 0;
153
+ yGroup: r.some((s) => {
154
+ var c;
155
+ return ((c = o[s.value]) == null ? void 0 : c.length) > 0;
153
156
  })
154
- }, B = this.data.columnNames.length ? this.data.getColumn(this.data.columnNames[0]).length : 0, G = this.settings.cellsRenderingMode ?? (B > J ? "canvas" : "svg");
157
+ }, x = this.data.columnNames.length ? this.data.getColumn(this.data.columnNames[0]).length : 0, B = this.settings.cellsRenderingMode ?? (x > $ ? "canvas" : "svg");
155
158
  this.chartRenderer.render(
156
159
  this.data,
157
160
  a,
158
161
  t,
159
- o,
160
- l,
161
- this.calculatedData.groupedCellsData,
162
+ d,
162
163
  u,
164
+ this.calculatedData.groupedCellsData,
165
+ i,
163
166
  e,
164
- c,
167
+ h,
165
168
  D,
166
169
  this.calculatedData.dendrogramsData,
167
170
  _,
168
171
  this.calculatedData.cellUniqValues,
169
- C,
172
+ y,
170
173
  this.onTooltipHintSwitch,
171
- x,
172
- G
174
+ p,
175
+ B
173
176
  );
174
177
  }
175
178
  }
176
179
  export {
177
- na as ChartHeatmap
180
+ la as ChartHeatmap
178
181
  };
179
182
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/heatmap/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type { ColumnName, DataValue, HeatmapEventHandlers, HeatmapSettings } from '../types';\nimport { isColumnName } from '../utils';\nimport ChartRenderer from './ChartRenderer';\nimport type { GroupedCellsData } from './getCells';\nimport { getCells } from './getCells';\nimport type { DendrogramsData } from './getDendrograms';\nimport { getDendrograms } from './getDendrograms';\nimport { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport { MAX_SVG_RENDERED_CELLS_COUNT } from './constants';\n\nexport class ChartHeatmap extends AbstractChart {\n settings: HeatmapSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n groupedCellsData: GroupedCellsData;\n dendrogramsData: DendrogramsData;\n cellUniqValues: DataValue[];\n } | null = null;\n\n constructor(data: DataFrame, settings: HeatmapSettings, eventHandlers?:HeatmapEventHandlers) {\n super(data, settings);\n\n this.settings = new HeatmapSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = 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: HeatmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HeatmapSettingsImpl(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 } catch (err) {\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 console.warn('no chart state for heatmap');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HeatmapSettingsImpl, settings: HeatmapSettingsImpl) {\n const {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n annotations,\n chartSettings,\n facetSettings,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n } = settings;\n\n const prevDendrogramXColumns: ColumnName[] = Object.values(prevSettings.dendrogramX?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramXColumns: ColumnName[] = Object.values(dendrogramX?.aes || {}).filter(isColumnName);\n const prevDendrogramYColumns: ColumnName[] = Object.values(prevSettings.dendrogramY?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramYColumns: ColumnName[] = Object.values(dendrogramY?.aes || {}).filter(isColumnName);\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.xColumn.value !== xColumn.value ||\n prevSettings.yColumn.value !== yColumn.value ||\n prevSettings.valueColumn.value !== valueColumn.value ||\n compareColumnGroups(prevSettings.xGroupBy, xGroupBy) ||\n compareColumnGroups(prevSettings.yGroupBy, yGroupBy) ||\n compareColumnGroups(prevSettings.facetBy, facetBy) ||\n compareColumnGroups(\n prevSettings.annotations.map(a => a.valueColumn),\n annotations.map(a => a.valueColumn)\n ) ||\n compareColumnGroups(prevDendrogramXColumns, currentDendrogramXColumns) ||\n compareColumnGroups(prevDendrogramYColumns, currentDendrogramYColumns) ||\n ((settings.dendrogramX || prevSettings.dendrogramX) &&\n (prevSettings.dendrogramX?.distance !== settings.dendrogramX?.distance ||\n prevSettings.dendrogramX?.linkage !== settings.dendrogramX?.linkage)) ||\n ((settings.dendrogramY || prevSettings.dendrogramY) &&\n (prevSettings.dendrogramY?.distance !== settings.dendrogramY?.distance ||\n prevSettings.dendrogramY?.linkage !== settings.dendrogramY?.linkage)) ||\n prevSettings.chartSettings.valueType !== chartSettings.valueType ||\n prevSettings.facetSettings.sharedX !== facetSettings.sharedX ||\n prevSettings.facetSettings.sharedY !== facetSettings.sharedY ||\n prevSettings.normalization?.method !== normalization?.method ||\n prevSettings.normalization?.direction !== normalization?.direction ||\n prevSettings.NAValueAs !== NAValueAs\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 {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n chartSettings,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n keysOrder\n } = this.settings;\n\n const groupedCellsData = getCells(\n this.data,\n xColumn,\n yColumn,\n valueColumn,\n facetBy,\n xGroupBy,\n yGroupBy,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n keysOrder,\n chartSettings.xAxis,\n chartSettings.yAxis,\n );\n const dendrogramsData = getDendrograms(groupedCellsData, dendrogramX, dendrogramY, facetSettings);\n const cellUniqValues =\n chartSettings.valueType === 'discrete' ? this.data.getColumnCategories(valueColumn.value) : [];\n\n this.calculatedData = {\n groupedCellsData,\n dendrogramsData,\n cellUniqValues,\n };\n }\n\n _updateAesInData() {\n return;\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n id,\n valueColumn,\n chartSettings,\n facetSettings,\n aes,\n annotations,\n dendrogramX,\n dendrogramY,\n inheritedDendrogramAes,\n normalization,\n keysOrder,\n xColumn,\n yColumn,\n xGroupBy,\n yGroupBy,\n } = this.settings;\n const customOrder = {\n x: keysOrder[xColumn.value]?.length > 0,\n y: keysOrder[yColumn.value]?.length > 0,\n xGroup: xGroupBy.some((v) => keysOrder[v.value]?.length > 0),\n yGroup: yGroupBy.some((v) => keysOrder[v.value]?.length > 0),\n };\n const dataSize = this.data.columnNames.length ? this.data.getColumn(this.data.columnNames[0]).length : 0;\n const cellsRenderingMode = this.settings.cellsRenderingMode ?? (dataSize > MAX_SVG_RENDERED_CELLS_COUNT ? 'canvas' : 'svg');\n \n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n aes,\n this.calculatedData.groupedCellsData,\n annotations,\n valueColumn,\n dendrogramX,\n dendrogramY,\n this.calculatedData.dendrogramsData,\n inheritedDendrogramAes,\n this.calculatedData.cellUniqValues,\n normalization,\n this.onTooltipHintSwitch,\n customOrder,\n cellsRenderingMode\n );\n }\n}\n"],"names":["ChartHeatmap","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","HeatmapSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","xColumn","yColumn","valueColumn","xGroupBy","yGroupBy","facetBy","annotations","chartSettings","facetSettings","dendrogramX","dendrogramY","normalization","NAValueAs","prevDendrogramXColumns","_a","isColumnName","currentDendrogramXColumns","prevDendrogramYColumns","_b","currentDendrogramYColumns","compareColumnGroups","columns1","columns2","column","idx","a","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","prevData","prevKeys","keys","key","keysOrder","groupedCellsData","getCells","dendrogramsData","getDendrograms","cellUniqValues","id","aes","inheritedDendrogramAes","customOrder","v","dataSize","cellsRenderingMode","MAX_SVG_RENDERED_CELLS_COUNT"],"mappings":";;;;;;;;;;;AAaO,MAAMA,WAAqBC,EAAc;AAAA,EAW5C,YAAYC,GAAiBC,GAA2BC,GAAqC;AACzF,UAAMF,GAAMC,CAAQ;AAXxB,IAAAE,EAAA;AACA,IAAAA,EAAA,uBAAgB,IAAIC,EAAA;AAEpB,IAAAD,EAAA,6BAA2C,MAAA;AAAA;AAC3C,IAAAA,EAAA,wBAIW;AAKP,SAAK,WAAW,IAAIE,EAAoBJ,CAAQ,GAC5CC,MACA,KAAK,sBAAsBA,EAAc,CAAC;AAAA,EAElD;AAAA,EAEA,MAAMI,GAAmB;AACrB,QAAI;AACA,WAAK,cAAc,KAAKA,CAAI,GAC5B,KAAK,YAAA,GACL,KAAK,aAAA,GACL,KAAK,WAAW;AAAA,IACpB,SAASC,GAAK;AACV,WAAK,WAAW,IACZA,aAAe,UACf,KAAK,cAAc,YAAYA,EAAI,OAAiB,GACpD,QAAQ,MAAMA,CAAG;AAAA,IAEzB;AAAA,EACJ;AAAA,EAEA,UAAU;AACN,SAAK,cAAc,MAAA;AAAA,EACvB;AAAA,EAEA,sBAAsBP,GAAiBC,GAA2B;AAC9D,QAAI;AACA,YAAMO,IAAmB,KAAK,UACxBC,IAAe,KAAK;AAC1B,WAAK,WAAW,IAAIJ,EAAoBJ,CAAQ,GAChD,KAAK,OAAOD,GAER,KAAK,oCAAoCQ,GAAkB,KAAK,QAAQ,KACxE,KAAK,gCAAgCC,GAAc,KAAK,IAAI,IAE5D,KAAK,YAAA,IAEL,KAAK,iBAAA,GAET,KAAK,aAAA;AAAA,IACT,SAASF,GAAK;AACV,MAAIA,aAAe,UACf,KAAK,cAAc,YAAYA,EAAI,OAAiB,GACpD,QAAQ,MAAMA,CAAG;AAAA,IAEzB;AAAA,EACJ;AAAA,EAEA,iBAAiBG,GAAgBC,GAAiB;AAC9C,YAAQ,KAAK,4BAA4B;AAAA,EAC7C;AAAA,EAEA,SAAiB;AACb,gBAAK,aAAA,GACEC,EAAe,KAAK,cAAc,SAAS;AAAA,EACtD;AAAA,EAEA,oCAAoCC,GAAmCZ,GAA+B;;AAClG,UAAM;AAAA,MACF,SAAAa;AAAA,MACA,SAAAC;AAAA,MACA,aAAAC;AAAA,MACA,UAAAC;AAAA,MACA,UAAAC;AAAA,MACA,SAAAC;AAAA,MACA,aAAAC;AAAA,MACA,eAAAC;AAAA,MACA,eAAAC;AAAA,MACA,aAAAC;AAAA,MACA,aAAAC;AAAA,MACA,eAAAC;AAAA,MACA,WAAAC;AAAA,IAAA,IACAzB,GAEE0B,IAAuC,OAAO,SAAOC,IAAAf,EAAa,gBAAb,gBAAAe,EAA0B,QAAO,CAAA,CAAE,EAAE;AAAA,MAC5FC;AAAA,IAAA,GAEEC,IAA0C,OAAO,QAAOP,KAAA,gBAAAA,EAAa,QAAO,CAAA,CAAE,EAAE,OAAOM,CAAY,GACnGE,IAAuC,OAAO,SAAOC,IAAAnB,EAAa,gBAAb,gBAAAmB,EAA0B,QAAO,CAAA,CAAE,EAAE;AAAA,MAC5FH;AAAA,IAAA,GAEEI,IAA0C,OAAO,QAAOT,KAAA,gBAAAA,EAAa,QAAO,CAAA,CAAE,EAAE,OAAOK,CAAY;AAEzG,aAASK,EAAoBC,GAAwBC,GAAwB;AACzE,aACID,EAAS,WAAWC,EAAS,UAC7BD,EAAS,KAAK,CAACE,GAAQC,MAAQD,EAAO,UAAUD,EAASE,CAAG,EAAE,KAAK;AAAA,IAE3E;AAEA,WACIzB,EAAa,QAAQ,UAAUC,EAAQ,SACvCD,EAAa,QAAQ,UAAUE,EAAQ,SACvCF,EAAa,YAAY,UAAUG,EAAY,SAC/CkB,EAAoBrB,EAAa,UAAUI,CAAQ,KACnDiB,EAAoBrB,EAAa,UAAUK,CAAQ,KACnDgB,EAAoBrB,EAAa,SAASM,CAAO,KACjDe;AAAA,MACIrB,EAAa,YAAY,IAAI,CAAA0B,MAAKA,EAAE,WAAW;AAAA,MAC/CnB,EAAY,IAAI,CAAAmB,MAAKA,EAAE,WAAW;AAAA,IAAA,KAEtCL,EAAoBP,GAAwBG,CAAyB,KACrEI,EAAoBH,GAAwBE,CAAyB,MACnEhC,EAAS,eAAeY,EAAa,mBAClC2B,IAAA3B,EAAa,gBAAb,gBAAA2B,EAA0B,gBAAaC,IAAAxC,EAAS,gBAAT,gBAAAwC,EAAsB,eAC1DC,IAAA7B,EAAa,gBAAb,gBAAA6B,EAA0B,eAAYC,IAAA1C,EAAS,gBAAT,gBAAA0C,EAAsB,cAClE1C,EAAS,eAAeY,EAAa,mBAClC+B,IAAA/B,EAAa,gBAAb,gBAAA+B,EAA0B,gBAAaC,IAAA5C,EAAS,gBAAT,gBAAA4C,EAAsB,eAC1DC,IAAAjC,EAAa,gBAAb,gBAAAiC,EAA0B,eAAYC,IAAA9C,EAAS,gBAAT,gBAAA8C,EAAsB,aACpElC,EAAa,cAAc,cAAcQ,EAAc,aACvDR,EAAa,cAAc,YAAYS,EAAc,WACrDT,EAAa,cAAc,YAAYS,EAAc,aACrD0B,IAAAnC,EAAa,kBAAb,gBAAAmC,EAA4B,aAAWvB,KAAA,gBAAAA,EAAe,aACtDwB,IAAApC,EAAa,kBAAb,gBAAAoC,EAA4B,gBAAcxB,KAAA,gBAAAA,EAAe,cACrDZ,EAAa,cAAca;AAAA,EAEvC;AAAA,EAEA,gCAAgCwB,GAAqBlD,GAAiB;AAClE,UAAMmD,IAAW,OAAO,KAAKD,EAAS,IAAI,GACpCE,IAAO,OAAO,KAAKpD,EAAK,IAAI;AAClC,WACIkD,EAAS,OAAOlD,EAAK,MACrBmD,EAAS,WAAWC,EAAK,UACzBD,EAAS,KAAK;;AAAO,aAAAD,EAAS,KAAKG,CAAG,EAAE,aAAWzB,IAAA5B,EAAK,KAAKqD,CAAG,MAAb,gBAAAzB,EAAgB;AAAA,KAAM;AAAA,EAEjF;AAAA,EAEA,cAAc;AACV,UAAM;AAAA,MACF,SAAAd;AAAA,MACA,SAAAC;AAAA,MACA,aAAAC;AAAA,MACA,UAAAC;AAAA,MACA,UAAAC;AAAA,MACA,SAAAC;AAAA,MACA,eAAAE;AAAA,MACA,eAAAC;AAAA,MACA,aAAAF;AAAA,MACA,aAAAG;AAAA,MACA,aAAAC;AAAA,MACA,eAAAC;AAAA,MACA,WAAAC;AAAA,MACA,WAAA4B;AAAA,IAAA,IACA,KAAK,UAEHC,IAAmBC;AAAA,MACrB,KAAK;AAAA,MACL1C;AAAA,MACAC;AAAA,MACAC;AAAA,MACAG;AAAA,MACAF;AAAA,MACAC;AAAA,MACAE;AAAA,MACAG;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACA4B;AAAA,MACAjC,EAAc;AAAA,MACdA,EAAc;AAAA,IAAA,GAEZoC,IAAkBC,EAAeH,GAAkBhC,GAAaC,GAAaF,CAAa,GAC1FqC,IACFtC,EAAc,cAAc,aAAa,KAAK,KAAK,oBAAoBL,EAAY,KAAK,IAAI,CAAA;AAEhG,SAAK,iBAAiB;AAAA,MAClB,kBAAAuC;AAAA,MACA,iBAAAE;AAAA,MACA,gBAAAE;AAAA,IAAA;AAAA,EAER;AAAA,EAEA,mBAAmB;AAAA,EAEnB;AAAA,EAEA,eAAe;;AACX,QAAI,CAAC,KAAK;AACN;AAEJ,UAAM;AAAA,MACF,IAAAC;AAAA,MACA,aAAA5C;AAAA,MACA,eAAAK;AAAA,MACA,eAAAC;AAAA,MACA,KAAAuC;AAAA,MACA,aAAAzC;AAAA,MACA,aAAAG;AAAA,MACA,aAAAC;AAAA,MACA,wBAAAsC;AAAA,MACA,eAAArC;AAAA,MACA,WAAA6B;AAAA,MACA,SAAAxC;AAAA,MACA,SAAAC;AAAA,MACA,UAAAE;AAAA,MACA,UAAAC;AAAA,IAAA,IACA,KAAK,UACH6C,IAAc;AAAA,MAChB,KAAGnC,IAAA0B,EAAUxC,EAAQ,KAAK,MAAvB,gBAAAc,EAA0B,UAAS;AAAA,MACtC,KAAGI,IAAAsB,EAAUvC,EAAQ,KAAK,MAAvB,gBAAAiB,EAA0B,UAAS;AAAA,MACtC,QAAQf,EAAS,KAAK,CAAC+C,MAAA;;AAAM,iBAAApC,IAAA0B,EAAUU,EAAE,KAAK,MAAjB,gBAAApC,EAAoB,UAAS;AAAA,OAAC;AAAA,MAC3D,QAAQV,EAAS,KAAK,CAAC8C,MAAA;;AAAM,iBAAApC,IAAA0B,EAAUU,EAAE,KAAK,MAAjB,gBAAApC,EAAoB,UAAS;AAAA,OAAC;AAAA,IAAA,GAEzDqC,IAAW,KAAK,KAAK,YAAY,SAAS,KAAK,KAAK,UAAU,KAAK,KAAK,YAAY,CAAC,CAAC,EAAE,SAAS,GACjGC,IAAqB,KAAK,SAAS,uBAAuBD,IAAWE,IAA+B,WAAW;AAErH,SAAK,cAAc;AAAA,MACf,KAAK;AAAA,MACLP;AAAA,MACAvC;AAAA,MACAC;AAAA,MACAuC;AAAA,MACA,KAAK,eAAe;AAAA,MACpBzC;AAAA,MACAJ;AAAA,MACAO;AAAA,MACAC;AAAA,MACA,KAAK,eAAe;AAAA,MACpBsC;AAAA,MACA,KAAK,eAAe;AAAA,MACpBrC;AAAA,MACA,KAAK;AAAA,MACLsC;AAAA,MACAG;AAAA,IAAA;AAAA,EAER;AACJ;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/heatmap/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type { ColumnName, DataValue, HeatmapEventHandlers, HeatmapSettings } from '../types';\nimport { isColumnName } from '../utils';\nimport ChartRenderer from './ChartRenderer';\nimport type { GroupedCellsData } from './getCells';\nimport { getCells } from './getCells';\nimport type { DendrogramsData } from './getDendrograms';\nimport { getDendrograms } from './getDendrograms';\nimport { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport { MAX_SVG_RENDERED_CELLS_COUNT } from './constants';\n\nexport class ChartHeatmap extends AbstractChart {\n settings: HeatmapSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n groupedCellsData: GroupedCellsData;\n dendrogramsData: DendrogramsData;\n cellUniqValues: DataValue[];\n } | null = null;\n\n constructor(data: DataFrame, settings: HeatmapSettings, eventHandlers?:HeatmapEventHandlers) {\n super(data, settings);\n\n this.settings = new HeatmapSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = 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: HeatmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HeatmapSettingsImpl(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 } catch (err) {\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 console.warn('no chart state for heatmap');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HeatmapSettingsImpl, settings: HeatmapSettingsImpl) {\n const {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n annotations,\n chartSettings,\n facetSettings,\n dendrogramX,\n dendrogramY,\n normalization,\n aggregation,\n NAValueAs,\n } = settings;\n\n const prevDendrogramXColumns: ColumnName[] = Object.values(prevSettings.dendrogramX?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramXColumns: ColumnName[] = Object.values(dendrogramX?.aes || {}).filter(isColumnName);\n const prevDendrogramYColumns: ColumnName[] = Object.values(prevSettings.dendrogramY?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramYColumns: ColumnName[] = Object.values(dendrogramY?.aes || {}).filter(isColumnName);\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.xColumn.value !== xColumn.value ||\n prevSettings.yColumn.value !== yColumn.value ||\n prevSettings.valueColumn.value !== valueColumn.value ||\n compareColumnGroups(prevSettings.xGroupBy, xGroupBy) ||\n compareColumnGroups(prevSettings.yGroupBy, yGroupBy) ||\n compareColumnGroups(prevSettings.facetBy, facetBy) ||\n compareColumnGroups(\n prevSettings.annotations.map(a => a.valueColumn),\n annotations.map(a => a.valueColumn)\n ) ||\n compareColumnGroups(prevDendrogramXColumns, currentDendrogramXColumns) ||\n compareColumnGroups(prevDendrogramYColumns, currentDendrogramYColumns) ||\n ((settings.dendrogramX || prevSettings.dendrogramX) &&\n (prevSettings.dendrogramX?.distance !== settings.dendrogramX?.distance ||\n prevSettings.dendrogramX?.linkage !== settings.dendrogramX?.linkage)) ||\n ((settings.dendrogramY || prevSettings.dendrogramY) &&\n (prevSettings.dendrogramY?.distance !== settings.dendrogramY?.distance ||\n prevSettings.dendrogramY?.linkage !== settings.dendrogramY?.linkage)) ||\n prevSettings.chartSettings.valueType !== chartSettings.valueType ||\n prevSettings.facetSettings.sharedX !== facetSettings.sharedX ||\n prevSettings.facetSettings.sharedY !== facetSettings.sharedY ||\n prevSettings.normalization?.method !== normalization?.method ||\n prevSettings.normalization?.direction !== normalization?.direction ||\n prevSettings.NAValueAs !== NAValueAs ||\n prevSettings.aggregation?.method !== aggregation?.method ||\n prevSettings.aggregation?.x !== aggregation?.x ||\n prevSettings.aggregation?.y !== aggregation?.y\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 {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n chartSettings,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n keysOrder,\n aggregation\n } = this.settings;\n\n const groupedCellsData = getCells(\n this.data,\n xColumn,\n yColumn,\n valueColumn,\n facetBy,\n xGroupBy,\n yGroupBy,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n keysOrder,\n chartSettings.xAxis,\n chartSettings.yAxis,\n aggregation\n );\n const dendrogramsData = getDendrograms(groupedCellsData, dendrogramX, dendrogramY, facetSettings);\n const cellUniqValues =\n chartSettings.valueType === 'discrete' ? this.data.getColumnCategories(valueColumn.value) : [];\n\n this.calculatedData = {\n groupedCellsData,\n dendrogramsData,\n cellUniqValues,\n };\n }\n\n _updateAesInData() {\n return;\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n id,\n valueColumn,\n chartSettings,\n facetSettings,\n aes,\n annotations,\n dendrogramX,\n dendrogramY,\n inheritedDendrogramAes,\n normalization,\n keysOrder,\n xColumn,\n yColumn,\n xGroupBy,\n yGroupBy,\n } = this.settings;\n const customOrder = {\n x: keysOrder[xColumn.value]?.length > 0,\n y: keysOrder[yColumn.value]?.length > 0,\n xGroup: xGroupBy.some((v) => keysOrder[v.value]?.length > 0),\n yGroup: yGroupBy.some((v) => keysOrder[v.value]?.length > 0),\n };\n const dataSize = this.data.columnNames.length ? this.data.getColumn(this.data.columnNames[0]).length : 0;\n const cellsRenderingMode = this.settings.cellsRenderingMode ?? (dataSize > MAX_SVG_RENDERED_CELLS_COUNT ? 'canvas' : 'svg');\n \n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n aes,\n this.calculatedData.groupedCellsData,\n annotations,\n valueColumn,\n dendrogramX,\n dendrogramY,\n this.calculatedData.dendrogramsData,\n inheritedDendrogramAes,\n this.calculatedData.cellUniqValues,\n normalization,\n this.onTooltipHintSwitch,\n customOrder,\n cellsRenderingMode\n );\n }\n}\n"],"names":["ChartHeatmap","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","HeatmapSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","xColumn","yColumn","valueColumn","xGroupBy","yGroupBy","facetBy","annotations","chartSettings","facetSettings","dendrogramX","dendrogramY","normalization","aggregation","NAValueAs","prevDendrogramXColumns","_a","isColumnName","currentDendrogramXColumns","prevDendrogramYColumns","_b","currentDendrogramYColumns","compareColumnGroups","columns1","columns2","column","idx","a","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","prevData","prevKeys","keys","key","keysOrder","groupedCellsData","getCells","dendrogramsData","getDendrograms","cellUniqValues","id","aes","inheritedDendrogramAes","customOrder","v","dataSize","cellsRenderingMode","MAX_SVG_RENDERED_CELLS_COUNT"],"mappings":"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"}
@@ -3,6 +3,7 @@ export type DendrogramDistance = 'euclidean' | 'squaredEuclidean';
3
3
  export type DendrogramLinkage = 'average' | 'complete' | 'single';
4
4
  export type NormalizationDirection = 'row' | 'column';
5
5
  export type NormalizationMethod = 'standardScaling' | 'meanNormalization';
6
+ export type AggregationMethod = 'min' | 'max' | 'mean' | 'median';
6
7
  export declare const HeatmapSettingsSchema: z.ZodObject<{
7
8
  type: z.ZodLiteral<"heatmap">;
8
9
  title: z.ZodObject<{
@@ -310,6 +311,19 @@ export declare const HeatmapSettingsSchema: z.ZodObject<{
310
311
  method: "standardScaling" | "meanNormalization";
311
312
  colorRange?: number[] | undefined;
312
313
  }>>;
314
+ aggregation: z.ZodOptional<z.ZodObject<{
315
+ x: z.ZodOptional<z.ZodBoolean>;
316
+ y: z.ZodOptional<z.ZodBoolean>;
317
+ method: z.ZodOptional<z.ZodEnum<["min", "max", "mean", "median"]>>;
318
+ }, "strip", z.ZodTypeAny, {
319
+ x?: boolean | undefined;
320
+ y?: boolean | undefined;
321
+ method?: "mean" | "median" | "min" | "max" | undefined;
322
+ }, {
323
+ x?: boolean | undefined;
324
+ y?: boolean | undefined;
325
+ method?: "mean" | "median" | "min" | "max" | undefined;
326
+ }>>;
313
327
  annotations: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<{
314
328
  valueColumn: z.ZodObject<{
315
329
  type: z.ZodLiteral<"column">;
@@ -1236,6 +1250,11 @@ export declare const HeatmapSettingsSchema: z.ZodObject<{
1236
1250
  valueLabels?: string | undefined;
1237
1251
  }[] | undefined;
1238
1252
  keysOrder?: Record<string, string[]> | undefined;
1253
+ aggregation?: {
1254
+ x?: boolean | undefined;
1255
+ y?: boolean | undefined;
1256
+ method?: "mean" | "median" | "min" | "max" | undefined;
1257
+ } | undefined;
1239
1258
  annotations?: ({
1240
1259
  type: "continuous" | "discrete";
1241
1260
  valueColumn: {
@@ -1505,6 +1524,11 @@ export declare const HeatmapSettingsSchema: z.ZodObject<{
1505
1524
  valueLabels?: string | undefined;
1506
1525
  }[] | undefined;
1507
1526
  keysOrder?: Record<string, string[]> | undefined;
1527
+ aggregation?: {
1528
+ x?: boolean | undefined;
1529
+ y?: boolean | undefined;
1530
+ method?: "mean" | "median" | "min" | "max" | undefined;
1531
+ } | undefined;
1508
1532
  annotations?: ({
1509
1533
  type: "continuous" | "discrete";
1510
1534
  valueColumn: {
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../src/types/heatmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8BxB,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAKlE,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAqC1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+EhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../src/types/heatmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8BxB,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAKlE,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAqClE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoFhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -41,7 +41,7 @@ const e = o.enum(["discrete", "continuous"]), a = o.object({
41
41
  showGroupLabels: o.optional(o.boolean()),
42
42
  axisLabelsAngle: o.optional(o.union([o.literal(0), o.literal(45), o.literal(90)])),
43
43
  groupLabelsAngle: o.optional(o.union([o.literal(0), o.literal(45), o.literal(90)]))
44
- }, f = o.object({
44
+ }, x = o.object({
45
45
  type: o.literal("heatmap"),
46
46
  title: o.object({
47
47
  name: o.string(),
@@ -105,6 +105,11 @@ const e = o.enum(["discrete", "continuous"]), a = o.object({
105
105
  method: o.enum(["standardScaling", "meanNormalization"]),
106
106
  colorRange: o.optional(o.array(o.number()))
107
107
  })),
108
+ aggregation: o.optional(o.object({
109
+ x: o.optional(o.boolean()),
110
+ y: o.optional(o.boolean()),
111
+ method: o.optional(o.enum(["min", "max", "mean", "median"]))
112
+ })),
108
113
  annotations: o.optional(o.array(o.union([u, c]))),
109
114
  dendrogramX: o.optional(d),
110
115
  dendrogramY: o.optional(h),
@@ -123,6 +128,6 @@ const e = o.enum(["discrete", "continuous"]), a = o.object({
123
128
  }))
124
129
  });
125
130
  export {
126
- f as HeatmapSettingsSchema
131
+ x as HeatmapSettingsSchema
127
132
  };
128
133
  //# sourceMappingURL=heatmap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap.js","sources":["../../src/types/heatmap.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n AesRecordSchema,\n ColumnNameSchema,\n LegendPositionSchema,\n LineShapeSchema,\n PointShapeSchema,\n TitlePositionSchema\n} from './common';\n\nconst ValueTypeSchema = z.enum(['discrete', 'continuous']);\n\nconst HeatmapAnnotationSchema = z.object({\n valueColumn: ColumnNameSchema,\n type: ValueTypeSchema,\n showTitle: z.optional(z.boolean()),\n colors: z.optional(z.array(z.string()))\n});\n\nconst HeatmapAnnotationXSchema = HeatmapAnnotationSchema.extend({\n axis: z.literal('x'),\n position: z.optional(z.enum(['top', 'bottom'])),\n titlePosition: z.optional(z.enum(['left', 'right'])),\n});\nconst HeatmapAnnotationYSchema = HeatmapAnnotationSchema.extend({\n axis: z.literal('y'),\n position: z.optional(z.enum(['left', 'right'])),\n titlePosition: z.optional(z.enum(['top', 'bottom'])),\n});\n\nexport type DendrogramDistance = 'euclidean' | 'squaredEuclidean';\nexport type DendrogramLinkage = 'average' | 'complete' | 'single';\n\nconst DendrogramDistanceSchema = z.enum(['euclidean', 'squaredEuclidean']);\nconst DendrogramLinkageSchema = z.enum(['average', 'complete', 'single']);\n\nexport type NormalizationDirection = 'row' | 'column';\nexport type NormalizationMethod = 'standardScaling' | 'meanNormalization';\n\nconst DendrogramSchema = z.object({\n size: z.optional(z.number()),\n distance: z.optional(DendrogramDistanceSchema),\n linkage: z.optional(DendrogramLinkageSchema),\n showNodes: z.optional(z.boolean()),\n edgeInheritance: z.optional(z.enum(['up', 'down'])),\n fillNA: z.optional(z.number()),\n hidden: z.optional(z.boolean()),\n aes: z.optional(z.object({\n lineColor: z.optional(z.union([z.string(), ColumnNameSchema])),\n dotFill: z.optional(z.union([z.string(), ColumnNameSchema])),\n dotShape: z.optional(z.union([PointShapeSchema, ColumnNameSchema])),\n dotSize: z.optional(z.union([z.number(), ColumnNameSchema])),\n lineShape: z.optional(z.union([LineShapeSchema, ColumnNameSchema])),\n lineWidth: z.optional(z.union([z.number(), ColumnNameSchema])),\n }))\n});\n\nconst DendrogramXSchema = DendrogramSchema.extend({\n position: z.optional(z.enum(['top', 'bottom']))\n});\nconst DendrogramYSchema = DendrogramSchema.extend({\n position: z.optional(z.enum(['left', 'right']))\n});\n\nconst axisCommonSchema = {\n title: z.optional(z.string()),\n showTicks: z.optional(z.boolean()),\n showTitle: z.optional(z.boolean()),\n showAxisLabels: z.optional(z.boolean()),\n showGroupLabels: z.optional(z.boolean()),\n axisLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n groupLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n};\n\nexport const HeatmapSettingsSchema = z.object({\n type: z.literal('heatmap'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n tooltips: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n content: z.optional(z.array(ColumnNameSchema)),\n })\n ),\n valueType: z.optional(ValueTypeSchema),\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n cellWidth: z.optional(z.number()),\n cellHeight: z.optional(z.number()),\n outerOffset: z.optional(z.number()),\n innerOffset: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n frame: z.optional(z.object({type: z.optional(z.enum(['full', 'groups', 'none']))})),\n xAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['top', 'bottom'])),\n groupingPosition: z.optional(z.enum(['top', 'bottom'])),\n })),\n yAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['left', 'right'])),\n groupingPosition: z.optional(z.enum(['left', 'right'])),\n })),\n facetSettings: z.optional(z.object({\n sharedX: z.optional(z.boolean()),\n sharedY: z.optional(z.boolean()),\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n })),\n xColumn: ColumnNameSchema,\n yColumn: ColumnNameSchema,\n valueColumn: ColumnNameSchema,\n xGroupBy: z.optional(z.array(ColumnNameSchema)),\n yGroupBy: z.optional(z.array(ColumnNameSchema)),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n keysOrder: z.optional( // x, y, grouping, facet keys in user's order\n z.record(z.string(), z.array(z.string()))\n ),\n normalization: z.optional(z.object({\n direction: z.enum(['row', 'column']),\n method: z.enum(['standardScaling', 'meanNormalization']),\n colorRange: z.optional(z.array(z.number()))\n })),\n annotations: z.optional(z.array(z.union([HeatmapAnnotationXSchema, HeatmapAnnotationYSchema]))),\n dendrogramX: z.optional(DendrogramXSchema),\n dendrogramY: z.optional(DendrogramYSchema),\n inheritedDendrogramAes: z.optional(z.record(z.string(), AesRecordSchema)),\n NAValueAs: z.optional(z.union([z.number(), z.null()])),\n cellsRenderingMode: z.optional(z.enum(['svg', 'canvas'])),\n aes: z.optional(z.object({\n colorsList: z.optional(z.array(z.string())),\n colorsMap: z.optional(z.record(z.string())),\n valueColors: z.optional(z.array(z.string())),\n valuesByColors: z.optional(z.array(z.number())),\n cellStrokeColor: z.optional(z.string()),\n emptyCellColor: z.optional(z.string()),\n groupGap: z.optional(z.number()),\n cellGap: z.optional(z.number()),\n }))\n});\n\nexport type HeatmapSettings = z.infer<typeof HeatmapSettingsSchema>;\n\n"],"names":["ValueTypeSchema","z","HeatmapAnnotationSchema","ColumnNameSchema","HeatmapAnnotationXSchema","HeatmapAnnotationYSchema","DendrogramDistanceSchema","DendrogramLinkageSchema","DendrogramSchema","PointShapeSchema","LineShapeSchema","DendrogramXSchema","DendrogramYSchema","axisCommonSchema","HeatmapSettingsSchema","TitlePositionSchema","LegendPositionSchema","AesRecordSchema"],"mappings":"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"}
1
+ {"version":3,"file":"heatmap.js","sources":["../../src/types/heatmap.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n AesRecordSchema,\n ColumnNameSchema,\n LegendPositionSchema,\n LineShapeSchema,\n PointShapeSchema,\n TitlePositionSchema\n} from './common';\n\nconst ValueTypeSchema = z.enum(['discrete', 'continuous']);\n\nconst HeatmapAnnotationSchema = z.object({\n valueColumn: ColumnNameSchema,\n type: ValueTypeSchema,\n showTitle: z.optional(z.boolean()),\n colors: z.optional(z.array(z.string()))\n});\n\nconst HeatmapAnnotationXSchema = HeatmapAnnotationSchema.extend({\n axis: z.literal('x'),\n position: z.optional(z.enum(['top', 'bottom'])),\n titlePosition: z.optional(z.enum(['left', 'right'])),\n});\nconst HeatmapAnnotationYSchema = HeatmapAnnotationSchema.extend({\n axis: z.literal('y'),\n position: z.optional(z.enum(['left', 'right'])),\n titlePosition: z.optional(z.enum(['top', 'bottom'])),\n});\n\nexport type DendrogramDistance = 'euclidean' | 'squaredEuclidean';\nexport type DendrogramLinkage = 'average' | 'complete' | 'single';\n\nconst DendrogramDistanceSchema = z.enum(['euclidean', 'squaredEuclidean']);\nconst DendrogramLinkageSchema = z.enum(['average', 'complete', 'single']);\n\nexport type NormalizationDirection = 'row' | 'column';\nexport type NormalizationMethod = 'standardScaling' | 'meanNormalization';\nexport type AggregationMethod = 'min' | 'max' | 'mean' | 'median';\n\nconst DendrogramSchema = z.object({\n size: z.optional(z.number()),\n distance: z.optional(DendrogramDistanceSchema),\n linkage: z.optional(DendrogramLinkageSchema),\n showNodes: z.optional(z.boolean()),\n edgeInheritance: z.optional(z.enum(['up', 'down'])),\n fillNA: z.optional(z.number()),\n hidden: z.optional(z.boolean()),\n aes: z.optional(z.object({\n lineColor: z.optional(z.union([z.string(), ColumnNameSchema])),\n dotFill: z.optional(z.union([z.string(), ColumnNameSchema])),\n dotShape: z.optional(z.union([PointShapeSchema, ColumnNameSchema])),\n dotSize: z.optional(z.union([z.number(), ColumnNameSchema])),\n lineShape: z.optional(z.union([LineShapeSchema, ColumnNameSchema])),\n lineWidth: z.optional(z.union([z.number(), ColumnNameSchema])),\n }))\n});\n\nconst DendrogramXSchema = DendrogramSchema.extend({\n position: z.optional(z.enum(['top', 'bottom']))\n});\nconst DendrogramYSchema = DendrogramSchema.extend({\n position: z.optional(z.enum(['left', 'right']))\n});\n\nconst axisCommonSchema = {\n title: z.optional(z.string()),\n showTicks: z.optional(z.boolean()),\n showTitle: z.optional(z.boolean()),\n showAxisLabels: z.optional(z.boolean()),\n showGroupLabels: z.optional(z.boolean()),\n axisLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n groupLabelsAngle: z.optional(z.union([z.literal(0), z.literal(45), z.literal(90)])),\n};\n\nexport const HeatmapSettingsSchema = z.object({\n type: z.literal('heatmap'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n tooltips: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n content: z.optional(z.array(ColumnNameSchema)),\n })\n ),\n valueType: z.optional(ValueTypeSchema),\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n cellWidth: z.optional(z.number()),\n cellHeight: z.optional(z.number()),\n outerOffset: z.optional(z.number()),\n innerOffset: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n frame: z.optional(z.object({type: z.optional(z.enum(['full', 'groups', 'none']))})),\n xAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['top', 'bottom'])),\n groupingPosition: z.optional(z.enum(['top', 'bottom'])),\n })),\n yAxis: z.optional(z.object({\n ...axisCommonSchema,\n sorting: z.optional(z.enum(['asc', 'desc'])),\n position: z.optional(z.enum(['left', 'right'])),\n groupingPosition: z.optional(z.enum(['left', 'right'])),\n })),\n facetSettings: z.optional(z.object({\n sharedX: z.optional(z.boolean()),\n sharedY: z.optional(z.boolean()),\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n })),\n xColumn: ColumnNameSchema,\n yColumn: ColumnNameSchema,\n valueColumn: ColumnNameSchema,\n xGroupBy: z.optional(z.array(ColumnNameSchema)),\n yGroupBy: z.optional(z.array(ColumnNameSchema)),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n keysOrder: z.optional( // x, y, grouping, facet keys in user's order\n z.record(z.string(), z.array(z.string()))\n ),\n normalization: z.optional(z.object({\n direction: z.enum(['row', 'column']),\n method: z.enum(['standardScaling', 'meanNormalization']),\n colorRange: z.optional(z.array(z.number()))\n })),\n aggregation: z.optional(z.object({\n x: z.optional(z.boolean()),\n y: z.optional(z.boolean()),\n method: z.optional(z.enum(['min', 'max', 'mean', 'median'])),\n })),\n annotations: z.optional(z.array(z.union([HeatmapAnnotationXSchema, HeatmapAnnotationYSchema]))),\n dendrogramX: z.optional(DendrogramXSchema),\n dendrogramY: z.optional(DendrogramYSchema),\n inheritedDendrogramAes: z.optional(z.record(z.string(), AesRecordSchema)),\n NAValueAs: z.optional(z.union([z.number(), z.null()])),\n cellsRenderingMode: z.optional(z.enum(['svg', 'canvas'])),\n aes: z.optional(z.object({\n colorsList: z.optional(z.array(z.string())),\n colorsMap: z.optional(z.record(z.string())),\n valueColors: z.optional(z.array(z.string())),\n valuesByColors: z.optional(z.array(z.number())),\n cellStrokeColor: z.optional(z.string()),\n emptyCellColor: z.optional(z.string()),\n groupGap: z.optional(z.number()),\n cellGap: z.optional(z.number()),\n }))\n});\n\nexport type HeatmapSettings = z.infer<typeof HeatmapSettingsSchema>;\n\n"],"names":["ValueTypeSchema","z","HeatmapAnnotationSchema","ColumnNameSchema","HeatmapAnnotationXSchema","HeatmapAnnotationYSchema","DendrogramDistanceSchema","DendrogramLinkageSchema","DendrogramSchema","PointShapeSchema","LineShapeSchema","DendrogramXSchema","DendrogramYSchema","axisCommonSchema","HeatmapSettingsSchema","TitlePositionSchema","LegendPositionSchema","AesRecordSchema"],"mappings":";;AAUA,MAAMA,IAAkBC,EAAE,KAAK,CAAC,YAAY,YAAY,CAAC,GAEnDC,IAA0BD,EAAE,OAAO;AAAA,EACrC,aAAaE;AAAA,EACb,MAAMH;AAAA,EACN,WAAWC,EAAE,SAASA,EAAE,SAAS;AAAA,EACjC,QAAQA,EAAE,SAASA,EAAE,MAAMA,EAAE,QAAQ,CAAC;AAC1C,CAAC,GAEKG,IAA2BF,EAAwB,OAAO;AAAA,EAC5D,MAAMD,EAAE,QAAQ,GAAG;AAAA,EACnB,UAAUA,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAAA,EAC9C,eAAeA,EAAE,SAASA,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC;AACvD,CAAC,GACKI,IAA2BH,EAAwB,OAAO;AAAA,EAC5D,MAAMD,EAAE,QAAQ,GAAG;AAAA,EACnB,UAAUA,EAAE,SAASA,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC;AAAA,EAC9C,eAAeA,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AACvD,CAAC,GAKKK,IAA2BL,EAAE,KAAK,CAAC,aAAa,kBAAkB,CAAC,GACnEM,IAA0BN,EAAE,KAAK,CAAC,WAAW,YAAY,QAAQ,CAAC,GAMlEO,IAAmBP,EAAE,OAAO;AAAA,EAC9B,MAAMA,EAAE,SAASA,EAAE,QAAQ;AAAA,EAC3B,UAAUA,EAAE,SAASK,CAAwB;AAAA,EAC7C,SAASL,EAAE,SAASM,CAAuB;AAAA,EAC3C,WAAWN,EAAE,SAASA,EAAE,SAAS;AAAA,EACjC,iBAAiBA,EAAE,SAASA,EAAE,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC;AAAA,EAClD,QAAQA,EAAE,SAASA,EAAE,QAAQ;AAAA,EAC7B,QAAQA,EAAE,SAASA,EAAE,SAAS;AAAA,EAC9B,KAAKA,EAAE,SAASA,EAAE,OAAO;AAAA,IACrB,WAAWA,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,OAAA,GAAUE,CAAgB,CAAC,CAAC;AAAA,IAC7D,SAASF,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,OAAA,GAAUE,CAAgB,CAAC,CAAC;AAAA,IAC3D,UAAUF,EAAE,SAASA,EAAE,MAAM,CAACQ,GAAkBN,CAAgB,CAAC,CAAC;AAAA,IAClE,SAASF,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,OAAA,GAAUE,CAAgB,CAAC,CAAC;AAAA,IAC3D,WAAWF,EAAE,SAASA,EAAE,MAAM,CAACS,GAAiBP,CAAgB,CAAC,CAAC;AAAA,IAClE,WAAWF,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,UAAUE,CAAgB,CAAC,CAAC;AAAA,EAAA,CAChE,CAAC;AACN,CAAC,GAEKQ,IAAoBH,EAAiB,OAAO;AAAA,EAC9C,UAAUP,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAClD,CAAC,GACKW,IAAoBJ,EAAiB,OAAO;AAAA,EAC9C,UAAUP,EAAE,SAASA,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC;AAClD,CAAC,GAEKY,IAAmB;AAAA,EACrB,OAAOZ,EAAE,SAASA,EAAE,QAAQ;AAAA,EAC5B,WAAWA,EAAE,SAASA,EAAE,SAAS;AAAA,EACjC,WAAWA,EAAE,SAASA,EAAE,SAAS;AAAA,EACjC,gBAAgBA,EAAE,SAASA,EAAE,SAAS;AAAA,EACtC,iBAAiBA,EAAE,SAASA,EAAE,SAAS;AAAA,EACvC,iBAAiBA,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,QAAQ,CAAC,GAAGA,EAAE,QAAQ,EAAE,GAAGA,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAAA,EACjF,kBAAkBA,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,QAAQ,CAAC,GAAGA,EAAE,QAAQ,EAAE,GAAGA,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACtF,GAEaa,IAAwBb,EAAE,OAAO;AAAA,EAC1C,MAAMA,EAAE,QAAQ,SAAS;AAAA,EACzB,OAAOA,EAAE,OAAO;AAAA,IACZ,MAAMA,EAAE,OAAA;AAAA,IACR,MAAMA,EAAE,SAASA,EAAE,SAAS;AAAA,IAC5B,UAAUA,EAAE,SAASc,CAAmB;AAAA,EAAA,CAC3C;AAAA,EACD,UAAUd,EAAE;AAAA,IACRA,EAAE,OAAO;AAAA,MACL,MAAMA,EAAE,SAASA,EAAE,SAAS;AAAA,MAC5B,SAASA,EAAE,SAASA,EAAE,MAAME,CAAgB,CAAC;AAAA,IAAA,CAChD;AAAA,EAAA;AAAA,EAEL,WAAWF,EAAE,SAASD,CAAe;AAAA,EACrC,MAAMC,EAAE;AAAA,IACJA,EAAE,OAAO;AAAA,MACL,OAAOA,EAAE,SAASA,EAAE,QAAQ;AAAA,MAC5B,QAAQA,EAAE,SAASA,EAAE,QAAQ;AAAA,MAC7B,WAAWA,EAAE,SAASA,EAAE,QAAQ;AAAA,MAChC,YAAYA,EAAE,SAASA,EAAE,QAAQ;AAAA,MACjC,aAAaA,EAAE,SAASA,EAAE,QAAQ;AAAA,MAClC,aAAaA,EAAE,SAASA,EAAE,QAAQ;AAAA,IAAA,CACrC;AAAA,EAAA;AAAA,EAEL,QAAQA,EAAE;AAAA,IACNA,EAAE,OAAO;AAAA,MACL,MAAMA,EAAE,SAASA,EAAE,SAAS;AAAA,MAC5B,UAAUA,EAAE,SAASe,CAAoB;AAAA,IAAA,CAC5C;AAAA,EAAA;AAAA,EAEL,OAAOf,EAAE,SAASA,EAAE,OAAO,EAAC,MAAMA,EAAE,SAASA,EAAE,KAAK,CAAC,QAAQ,UAAU,MAAM,CAAC,CAAC,EAAA,CAAE,CAAC;AAAA,EAClF,OAAOA,EAAE,SAASA,EAAE,OAAO;AAAA,IACvB,GAAGY;AAAA,IACH,SAASZ,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAAA,IAC3C,UAAUA,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAAA,IAC9C,kBAAkBA,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAAA,EAAA,CACzD,CAAC;AAAA,EACF,OAAOA,EAAE,SAASA,EAAE,OAAO;AAAA,IACvB,GAAGY;AAAA,IACH,SAASZ,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAAA,IAC3C,UAAUA,EAAE,SAASA,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC;AAAA,IAC9C,kBAAkBA,EAAE,SAASA,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC;AAAA,EAAA,CACzD,CAAC;AAAA,EACF,eAAeA,EAAE,SAASA,EAAE,OAAO;AAAA,IAC/B,SAASA,EAAE,SAASA,EAAE,SAAS;AAAA,IAC/B,SAASA,EAAE,SAASA,EAAE,SAAS;AAAA,IAC/B,OAAOA,EAAE,SAASA,EAAE,QAAQ;AAAA,IAC5B,OAAOA,EAAE,SAASA,EAAE,QAAQ;AAAA,EAAA,CAC/B,CAAC;AAAA,EACF,SAASE;AAAA,EACT,SAASA;AAAA,EACT,aAAaA;AAAA,EACb,UAAUF,EAAE,SAASA,EAAE,MAAME,CAAgB,CAAC;AAAA,EAC9C,UAAUF,EAAE,SAASA,EAAE,MAAME,CAAgB,CAAC;AAAA,EAC9C,SAASF,EAAE,SAASA,EAAE,MAAME,CAAgB,CAAC;AAAA,EAC7C,WAAWF,EAAE;AAAA;AAAA,IACTA,EAAE,OAAOA,EAAE,OAAA,GAAUA,EAAE,MAAMA,EAAE,QAAQ,CAAC;AAAA,EAAA;AAAA,EAE5C,eAAeA,EAAE,SAASA,EAAE,OAAO;AAAA,IAC/B,WAAWA,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC;AAAA,IACnC,QAAQA,EAAE,KAAK,CAAC,mBAAmB,mBAAmB,CAAC;AAAA,IACvD,YAAYA,EAAE,SAASA,EAAE,MAAMA,EAAE,QAAQ,CAAC;AAAA,EAAA,CAC7C,CAAC;AAAA,EACF,aAAaA,EAAE,SAASA,EAAE,OAAO;AAAA,IAC7B,GAAGA,EAAE,SAASA,EAAE,SAAS;AAAA,IACzB,GAAGA,EAAE,SAASA,EAAE,SAAS;AAAA,IACzB,QAAQA,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO,OAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,EAAA,CAC9D,CAAC;AAAA,EACF,aAAaA,EAAE,SAASA,EAAE,MAAMA,EAAE,MAAM,CAACG,GAA0BC,CAAwB,CAAC,CAAC,CAAC;AAAA,EAC9F,aAAaJ,EAAE,SAASU,CAAiB;AAAA,EACzC,aAAaV,EAAE,SAASW,CAAiB;AAAA,EACzC,wBAAwBX,EAAE,SAASA,EAAE,OAAOA,EAAE,UAAUgB,CAAe,CAAC;AAAA,EACxE,WAAWhB,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,UAAUA,EAAE,KAAA,CAAM,CAAC,CAAC;AAAA,EACrD,oBAAoBA,EAAE,SAASA,EAAE,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAAA,EACxD,KAAKA,EAAE,SAASA,EAAE,OAAO;AAAA,IACrB,YAAYA,EAAE,SAASA,EAAE,MAAMA,EAAE,OAAA,CAAQ,CAAC;AAAA,IAC1C,WAAWA,EAAE,SAASA,EAAE,OAAOA,EAAE,OAAA,CAAQ,CAAC;AAAA,IAC1C,aAAaA,EAAE,SAASA,EAAE,MAAMA,EAAE,OAAA,CAAQ,CAAC;AAAA,IAC3C,gBAAgBA,EAAE,SAASA,EAAE,MAAMA,EAAE,OAAA,CAAQ,CAAC;AAAA,IAC9C,iBAAiBA,EAAE,SAASA,EAAE,QAAQ;AAAA,IACtC,gBAAgBA,EAAE,SAASA,EAAE,QAAQ;AAAA,IACrC,UAAUA,EAAE,SAASA,EAAE,QAAQ;AAAA,IAC/B,SAASA,EAAE,SAASA,EAAE,QAAQ;AAAA,EAAA,CACjC,CAAC;AACN,CAAC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/miplots4",
3
- "version": "1.0.146",
3
+ "version": "1.0.148",
4
4
  "description": "Data visualization library",
5
5
  "author": "erohinaelena",
6
6
  "license": "ISC",