@milaboratories/miplots4 1.0.131 → 1.0.133

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 (83) hide show
  1. package/dist/AbstractChart.d.ts +2 -0
  2. package/dist/AbstractChart.d.ts.map +1 -1
  3. package/dist/AbstractChart.js +5 -4
  4. package/dist/AbstractChart.js.map +1 -1
  5. package/dist/MiPlots.d.ts +1 -0
  6. package/dist/MiPlots.d.ts.map +1 -1
  7. package/dist/MiPlots.js +3 -0
  8. package/dist/MiPlots.js.map +1 -1
  9. package/dist/bubble/index.d.ts.map +1 -1
  10. package/dist/bubble/index.js +22 -22
  11. package/dist/bubble/index.js.map +1 -1
  12. package/dist/common/Error.d.ts +1 -1
  13. package/dist/common/Error.d.ts.map +1 -1
  14. package/dist/common/Error.js +4 -22
  15. package/dist/common/Error.js.map +1 -1
  16. package/dist/dendro/index.d.ts.map +1 -1
  17. package/dist/dendro/index.js +25 -25
  18. package/dist/dendro/index.js.map +1 -1
  19. package/dist/discrete/index.d.ts.map +1 -1
  20. package/dist/discrete/index.js +49 -49
  21. package/dist/discrete/index.js.map +1 -1
  22. package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -1
  23. package/dist/heatmap/components/Annotations/Annotation.js +34 -33
  24. package/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  25. package/dist/heatmap/components/Chart.d.ts.map +1 -1
  26. package/dist/heatmap/components/Chart.js +90 -85
  27. package/dist/heatmap/components/Chart.js.map +1 -1
  28. package/dist/heatmap/components/types.d.ts +2 -1
  29. package/dist/heatmap/components/types.d.ts.map +1 -1
  30. package/dist/heatmap/index.d.ts.map +1 -1
  31. package/dist/heatmap/index.js +18 -18
  32. package/dist/heatmap/index.js.map +1 -1
  33. package/dist/histogram/index.d.ts.map +1 -1
  34. package/dist/histogram/index.js +22 -22
  35. package/dist/histogram/index.js.map +1 -1
  36. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +6 -3
  37. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -1
  38. package/dist/scatterplot/ScatterplotSettingsImpl.js +56 -57
  39. package/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  40. package/dist/scatterplot/dots.d.ts +2 -1
  41. package/dist/scatterplot/dots.d.ts.map +1 -1
  42. package/dist/scatterplot/dots.js +24 -27
  43. package/dist/scatterplot/dots.js.map +1 -1
  44. package/dist/scatterplot/getLayersData.d.ts.map +1 -1
  45. package/dist/scatterplot/getLayersData.js +15 -12
  46. package/dist/scatterplot/getLayersData.js.map +1 -1
  47. package/dist/scatterplot/index.d.ts.map +1 -1
  48. package/dist/scatterplot/index.js +66 -72
  49. package/dist/scatterplot/index.js.map +1 -1
  50. package/dist/scatterplot/utils/createLegendInfo.d.ts +3 -3
  51. package/dist/scatterplot/utils/createLegendInfo.d.ts.map +1 -1
  52. package/dist/scatterplot/utils/createLegendInfo.js +44 -39
  53. package/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  54. package/dist/scatterplot/utils/sortDotsByGrouping.d.ts +8 -0
  55. package/dist/scatterplot/utils/sortDotsByGrouping.d.ts.map +1 -0
  56. package/dist/scatterplot/utils/sortDotsByGrouping.js +18 -0
  57. package/dist/scatterplot/utils/sortDotsByGrouping.js.map +1 -0
  58. package/dist/scatterplot-umap/SettingsImpl.d.ts +6 -3
  59. package/dist/scatterplot-umap/SettingsImpl.d.ts.map +1 -1
  60. package/dist/scatterplot-umap/SettingsImpl.js +38 -39
  61. package/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  62. package/dist/scatterplot-umap/index.d.ts.map +1 -1
  63. package/dist/scatterplot-umap/index.js +72 -68
  64. package/dist/scatterplot-umap/index.js.map +1 -1
  65. package/dist/types/bubble.d.ts +12 -12
  66. package/dist/types/dendro.d.ts +8 -8
  67. package/dist/types/discrete.d.ts +20 -20
  68. package/dist/types/heatmap.d.ts +28 -28
  69. package/dist/types/histogram.d.ts +22 -22
  70. package/dist/types/scatterplot-umap.d.ts +126 -76
  71. package/dist/types/scatterplot-umap.d.ts.map +1 -1
  72. package/dist/types/scatterplot-umap.js +22 -16
  73. package/dist/types/scatterplot-umap.js.map +1 -1
  74. package/dist/types/scatterplot.d.ts +126 -76
  75. package/dist/types/scatterplot.d.ts.map +1 -1
  76. package/dist/types/scatterplot.js +16 -10
  77. package/dist/types/scatterplot.js.map +1 -1
  78. package/dist/utils/arraysAreDifferent.d.ts +2 -0
  79. package/dist/utils/arraysAreDifferent.d.ts.map +1 -0
  80. package/dist/utils/arraysAreDifferent.js +7 -0
  81. package/dist/utils/arraysAreDifferent.js.map +1 -0
  82. package/dist/utils/getChartEdgeSides.d.ts +1 -1
  83. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { j as r } from "../../node_modules/react/jsx-runtime.js";
1
+ import { j as i } from "../../node_modules/react/jsx-runtime.js";
2
2
  import { r as te } from "../../_virtual/index.js";
3
3
  import { r as ne } from "../../node_modules/react-dom/index.js";
4
4
  import { Tooltip as S } from "../../common/Tooltip.js";
@@ -6,52 +6,57 @@ import { useDataFrame as oe } from "../../common/useDataFrame.js";
6
6
  import { FONT_SIZE as re, FACET_TITLE_OFFSET as ie } from "../constants.js";
7
7
  import { Annotations as fe } from "./Annotations/index.js";
8
8
  import { Captions as ue } from "./Captions/index.js";
9
- import { Dendrograms as xe } from "./Dendrograms.js";
9
+ import { Dendrograms as me } from "./Dendrograms.js";
10
10
  import { Frames as le } from "./Frames.js";
11
- function F(e) {
11
+ import { format as xe } from "../../node_modules/d3-format/src/defaultLocale.js";
12
+ function j(e, n) {
12
13
  if (e === null)
13
14
  return "null";
14
15
  if (typeof e == "number") {
15
- const n = e > 0 ? Math.floor(e) : Math.ceil(e), o = e - n;
16
- return n + Number(o.toPrecision(2));
16
+ if (n)
17
+ return xe(n)(e);
18
+ const o = e > 0 ? Math.floor(e) : Math.ceil(e), r = e - o;
19
+ return o + Number(r.toPrecision(2));
17
20
  }
18
21
  return e;
19
22
  }
20
- function me(e, n, o, i = []) {
21
- const m = [
23
+ function ae(e, n, o, r = []) {
24
+ const a = [
22
25
  `X: ${o.xLabels[n.x]}`,
23
26
  `Y: ${o.yLabels[n.y]}`,
24
- `Value: ${F(n.value)}${n.value !== n.normalizedValue ? ` (${F(n.normalizedValue)})` : ""}`
27
+ `Value: ${j(n.value)}${n.value !== n.normalizedValue ? ` (${j(n.normalizedValue)})` : ""}`
25
28
  ];
26
- for (const a of i)
27
- m.push(`${a.label}: ${e.getColumnValue(a.value, n.idx)}`);
28
- return m;
29
+ for (const l of r) {
30
+ const h = e.getColumnValue(l.value, n.idx);
31
+ a.push(`${l.label}: ${j(h, l.format)}`);
32
+ }
33
+ return a;
29
34
  }
30
- function ae(e, n) {
35
+ function ce(e, n) {
31
36
  const o = [];
32
- return e.xKey && o.push(`X: ${n.xLabels[e.xKey]}`), e.yKey && o.push(`Y: ${n.yLabels[e.yKey]}`), o.push(`${e.title}: ${F(e.value)}`), o;
37
+ return e.xKey && o.push(`X: ${n.xLabels[e.xKey]}`), e.yKey && o.push(`Y: ${n.yLabels[e.yKey]}`), o.push(`${e.title}: ${j(e.value, e.column.format)}`), o;
33
38
  }
34
- function ce(e) {
39
+ function de(e) {
35
40
  return e !== null && "isAnnotation" in e;
36
41
  }
37
42
  function W(e) {
38
43
  return e !== null && "isCell" in e;
39
44
  }
40
- function pe({
45
+ function Le({
41
46
  dendrograms: e,
42
47
  facetKey: n,
43
48
  dimensions: o,
44
- scales: i,
45
- cells: m,
46
- xGroupKeys: a,
47
- yGroupKeys: C,
48
- xKeysByGroups: j,
49
- yKeysByGroups: b,
49
+ scales: r,
50
+ cells: a,
51
+ xGroupKeys: l,
52
+ yGroupKeys: h,
53
+ xKeysByGroups: b,
54
+ yKeysByGroups: p,
50
55
  colorScale: z,
51
- chartSettings: h,
56
+ chartSettings: s,
52
57
  cellsMeta: f,
53
58
  stepX: c,
54
- stepY: s,
59
+ stepY: g,
55
60
  sharedX: H,
56
61
  sharedY: I,
57
62
  annotations: N,
@@ -59,24 +64,24 @@ function pe({
59
64
  dendrogramAesScales: R,
60
65
  aes: T,
61
66
  labelAngles: Z,
62
- chartSizes: g,
67
+ chartSizes: y,
63
68
  margins: $,
64
69
  tooltipsContainer: A,
65
70
  tooltipsData: t
66
71
  }) {
67
- const q = oe(), [y, J] = te.useState(), { xAxis: Q, yAxis: U, tooltips: p } = h, { width: V, height: v } = o.inner, { padding: x, chartEdgeSides: D, sideElementBBoxes: l } = o, { xGroupLabels: K, yGroupLabels: G, xLabels: Y, yLabels: X } = f, E = i.x.domain(), w = i.y.domain(), _ = {
68
- left: $.left + o.left + x.left,
69
- right: g.totalWidth - ($.left + o.left + x.left),
70
- top: $.top + o.top + x.top,
71
- bottom: g.totalHeight - ($.top + o.top + x.top)
72
- }, k = !1, M = y && t.fixed;
73
- return /* @__PURE__ */ r.jsxs("g", { transform: `translate(${o.left},${o.top})`, fontSize: re, children: [
74
- /* @__PURE__ */ r.jsxs("g", { transform: `translate(${x.left},${x.top})`, children: [
75
- /* @__PURE__ */ r.jsx(
72
+ const q = oe(), [C, J] = te.useState(), { xAxis: Q, yAxis: U, tooltips: E } = s, { width: V, height: v } = o.inner, { padding: m, chartEdgeSides: D, sideElementBBoxes: x } = o, { xGroupLabels: K, yGroupLabels: G, xLabels: Y, yLabels: X } = f, L = r.x.domain(), w = r.y.domain(), _ = {
73
+ left: $.left + o.left + m.left,
74
+ right: y.totalWidth - ($.left + o.left + m.left),
75
+ top: $.top + o.top + m.top,
76
+ bottom: y.totalHeight - ($.top + o.top + m.top)
77
+ }, k = !1, M = C && t.fixed;
78
+ return /* @__PURE__ */ i.jsxs("g", { transform: `translate(${o.left},${o.top})`, fontSize: re, children: [
79
+ /* @__PURE__ */ i.jsxs("g", { transform: `translate(${m.left},${m.top})`, children: [
80
+ /* @__PURE__ */ i.jsx(
76
81
  fe,
77
82
  {
78
83
  facetKey: n,
79
- sideElementBBoxes: l,
84
+ sideElementBBoxes: x,
80
85
  annotations: N,
81
86
  cellsMeta: f,
82
87
  annotationColorScales: P,
@@ -85,24 +90,24 @@ function pe({
85
90
  chartEdgeSides: D,
86
91
  width: V,
87
92
  height: v,
88
- scales: i,
93
+ scales: r,
89
94
  stepX: c,
90
- stepY: s,
95
+ stepY: g,
91
96
  aes: T,
92
- frame: h.frame,
93
- xGroupKeys: a,
94
- yGroupKeys: C,
95
- xKeysByGroups: j,
96
- yKeysByGroups: b,
97
+ frame: s.frame,
98
+ xGroupKeys: l,
99
+ yGroupKeys: h,
100
+ xKeysByGroups: b,
101
+ yKeysByGroups: p,
97
102
  tooltipsData: t,
98
- activeElementContainer: y
103
+ activeElementContainer: C
99
104
  }
100
105
  ),
101
- /* @__PURE__ */ r.jsx(
102
- xe,
106
+ /* @__PURE__ */ i.jsx(
107
+ me,
103
108
  {
104
109
  dendrograms: e,
105
- sideElementBBoxes: l,
110
+ sideElementBBoxes: x,
106
111
  xGroupKeys: f.xGroupKeys,
107
112
  yGroupKeys: f.yGroupKeys,
108
113
  xDataByKeys: f.xDataByKeys,
@@ -110,68 +115,68 @@ function pe({
110
115
  aesScales: R
111
116
  }
112
117
  ),
113
- l.top.facetTitle.isVisible && /* @__PURE__ */ r.jsx(
118
+ x.top.facetTitle.isVisible && /* @__PURE__ */ i.jsx(
114
119
  "text",
115
120
  {
116
- x: l.top.facetTitle.x,
117
- y: l.top.facetTitle.y + l.top.facetTitle.height - ie,
121
+ x: x.top.facetTitle.x,
122
+ y: x.top.facetTitle.y + x.top.facetTitle.height - ie,
118
123
  fontWeight: "500",
119
124
  fontSize: "20px",
120
125
  children: f.facetKeyValues[n].join(", ")
121
126
  }
122
127
  ),
123
128
  k,
124
- E.map(
125
- (d) => w.map((L) => {
129
+ L.map(
130
+ (d) => w.map((F) => {
126
131
  var O;
127
- const u = (O = m == null ? void 0 : m[d]) == null ? void 0 : O[L], ee = M && W(t.selectedData) && (u == null ? void 0 : u.id) === t.selectedData.id, B = u ? /* @__PURE__ */ r.jsx(
132
+ const u = (O = a == null ? void 0 : a[d]) == null ? void 0 : O[F], ee = M && W(t.selectedData) && (u == null ? void 0 : u.id) === t.selectedData.id, B = u ? /* @__PURE__ */ i.jsx(
128
133
  "rect",
129
134
  {
130
- x: i.x(d),
131
- y: i.y(L),
135
+ x: r.x(d),
136
+ y: r.y(F),
132
137
  width: c,
133
- height: s,
138
+ height: g,
134
139
  stroke: T.cellStrokeColor,
135
140
  fill: u.value === null ? T.emptyCellColor : z(u.normalizedValue),
136
141
  onMouseOver: () => t.onMouseEnter(u, n),
137
142
  onMouseLeave: () => t.onMouseLeave()
138
143
  },
139
- u ? u.id : `${d}_${L}`
144
+ u ? u.id : `${d}_${F}`
140
145
  ) : null;
141
- return ee ? ne.createPortal(B, y) : B;
146
+ return ee ? ne.createPortal(B, C) : B;
142
147
  })
143
148
  ),
144
- /* @__PURE__ */ r.jsx(
149
+ /* @__PURE__ */ i.jsx(
145
150
  le,
146
151
  {
147
- frame: h.frame,
148
- xGroupKeys: a,
149
- yGroupKeys: C,
150
- xKeysByGroups: j,
151
- yKeysByGroups: b,
152
- scales: i,
152
+ frame: s.frame,
153
+ xGroupKeys: l,
154
+ yGroupKeys: h,
155
+ xKeysByGroups: b,
156
+ yKeysByGroups: p,
157
+ scales: r,
153
158
  stepX: c,
154
- stepY: s,
159
+ stepY: g,
155
160
  width: V,
156
161
  height: v
157
162
  }
158
163
  ),
159
- /* @__PURE__ */ r.jsx(
164
+ /* @__PURE__ */ i.jsx(
160
165
  ue,
161
166
  {
162
167
  xAxis: Q,
163
168
  yAxis: U,
164
- scales: i,
169
+ scales: r,
165
170
  stepX: c,
166
- stepY: s,
171
+ stepY: g,
167
172
  debug: k,
168
- sideElementBBoxes: l,
169
- xKeys: E,
173
+ sideElementBBoxes: x,
174
+ xKeys: L,
170
175
  yKeys: w,
171
- xGroupKeys: a,
172
- yGroupKeys: C,
173
- xKeysByGroups: j,
174
- yKeysByGroups: b,
176
+ xGroupKeys: l,
177
+ yGroupKeys: h,
178
+ xKeysByGroups: b,
179
+ yKeysByGroups: p,
175
180
  xGroupLabels: K,
176
181
  yGroupLabels: G,
177
182
  labelAngles: Z,
@@ -180,13 +185,13 @@ function pe({
180
185
  }
181
186
  )
182
187
  ] }),
183
- h.tooltips.show && W(t.selectedData) && t.currentFacet === n && /* @__PURE__ */ r.jsx(
188
+ s.tooltips.show && W(t.selectedData) && t.currentFacet === n && /* @__PURE__ */ i.jsx(
184
189
  S,
185
190
  {
186
- content: me(q, t.selectedData, f, p == null ? void 0 : p.content),
187
- x: i.x(String(t.selectedData.x)) + c / 2,
188
- y: i.y(String(t.selectedData.y)) + s / 2,
189
- offset: E.length > 1 ? c / 2 : 0,
191
+ content: ae(q, t.selectedData, f, E == null ? void 0 : E.content),
192
+ x: r.x(String(t.selectedData.x)) + c / 2,
193
+ y: r.y(String(t.selectedData.y)) + g / 2,
194
+ offset: L.length > 1 ? c / 2 : 0,
190
195
  active: !0,
191
196
  sideDistances: _,
192
197
  fixed: t.fixed,
@@ -194,10 +199,10 @@ function pe({
194
199
  container: A
195
200
  }
196
201
  ),
197
- h.tooltips.show && ce(t.selectedData) && t.currentFacet === n && /* @__PURE__ */ r.jsx(
202
+ s.tooltips.show && de(t.selectedData) && t.currentFacet === n && /* @__PURE__ */ i.jsx(
198
203
  S,
199
204
  {
200
- content: ae(t.selectedData, f),
205
+ content: ce(t.selectedData, f),
201
206
  x: t.selectedData.x,
202
207
  y: t.selectedData.y,
203
208
  offset: 0,
@@ -208,13 +213,13 @@ function pe({
208
213
  container: A
209
214
  }
210
215
  ),
211
- /* @__PURE__ */ r.jsxs("g", { transform: `translate(${x.left},${x.top})`, children: [
212
- t.fixed && /* @__PURE__ */ r.jsx("rect", { width: g.chartWidth, height: g.chartHeight, fill: "rgba(255, 255, 255, 0.8)" }),
213
- /* @__PURE__ */ r.jsx(
216
+ /* @__PURE__ */ i.jsxs("g", { transform: `translate(${m.left},${m.top})`, children: [
217
+ t.fixed && /* @__PURE__ */ i.jsx("rect", { width: y.chartWidth, height: y.chartHeight, fill: "rgba(255, 255, 255, 0.8)" }),
218
+ /* @__PURE__ */ i.jsx(
214
219
  "g",
215
220
  {
216
221
  ref: (d) => {
217
- d && !y && J(d);
222
+ d && !C && J(d);
218
223
  }
219
224
  }
220
225
  )
@@ -222,6 +227,6 @@ function pe({
222
227
  ] });
223
228
  }
224
229
  export {
225
- pe as Chart
230
+ Le as Chart
226
231
  };
227
232
  //# sourceMappingURL=Chart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.js","sources":["../../../src/heatmap/components/Chart.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport type { DataFrame } from '../../DataFrame';\nimport type { ColumnName, DataValue } from '../../types';\nimport { FACET_TITLE_OFFSET, FONT_SIZE } from '../constants';\nimport type { Cell, GroupedCellsData } from '../getCells';\nimport type { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';\nimport { Annotations } from './Annotations';\nimport { Captions } from './Captions';\nimport { Dendrograms } from './Dendrograms';\nimport { Frames } from './Frames';\nimport type { AnnotationColorScales, AnnotationTooltipData, CaptionsSizes, ChartDendrograms, ChartDimensionsData, ChartScales, ChartSizes, DendrogramAesScales, LabelAngles, Margins } from './types';\n\nfunction formatCellValue (v:DataValue):number|string {\n if (v === null) {\n return 'null';\n }\n if (typeof v === 'number') {\n const whole = v > 0 ? Math.floor(v) : Math.ceil(v);\n const decimal = v - whole;\n return whole + Number(decimal.toPrecision(2));\n }\n return v;\n}\nfunction getTooltipContent(dataFrame: DataFrame, cell: Cell, cellsMeta:GroupedCellsData['meta'], columnsList: ColumnName[] = []) {\n const lines = [\n `X: ${cellsMeta.xLabels[cell.x as string]}`,\n `Y: ${cellsMeta.yLabels[cell.y as string]}`,\n `Value: ${formatCellValue(cell.value)}${cell.value !== cell.normalizedValue ? ` (${formatCellValue(cell.normalizedValue)})`: ''}`,\n ];\n for (const column of columnsList) {\n lines.push(`${column.label}: ${dataFrame.getColumnValue(column.value, cell.idx)}`);\n }\n return lines;\n}\nfunction getAnnotationTooltipContent(data:AnnotationTooltipData, cellsMeta:GroupedCellsData['meta']) {\n const lines:string[] = [];\n if (data.xKey) {\n lines.push(`X: ${cellsMeta.xLabels[data.xKey as string]}`);\n }\n if (data.yKey) {\n lines.push(`Y: ${cellsMeta.yLabels[data.yKey as string]}`);\n }\n lines.push(`${data.title}: ${formatCellValue(data.value)}`);\n return lines;\n}\n\nfunction isAnnotationTooltip(d:Cell|AnnotationTooltipData|null):d is AnnotationTooltipData {\n return d !== null && 'isAnnotation' in d;\n}\n\nfunction isCellTooltip(d:Cell|AnnotationTooltipData|null):d is Cell {\n return d !== null && 'isCell' in d;\n}\n\nexport function Chart<ValueType>({\n dendrograms,\n facetKey,\n dimensions,\n scales,\n cells,\n xGroupKeys,\n yGroupKeys,\n xKeysByGroups,\n yKeysByGroups,\n colorScale,\n chartSettings,\n cellsMeta,\n stepX,\n stepY,\n sharedX,\n sharedY,\n annotations,\n annotationColorScales,\n dendrogramAesScales,\n aes,\n labelAngles,\n chartSizes,\n margins,\n tooltipsContainer,\n tooltipsData,\n}: {\n facetKey: string;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n dimensions: ChartDimensionsData;\n scales: ChartScales;\n cells: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['cells'];\n xKeysByGroups: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['xKeysByGroups'];\n yKeysByGroups: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['yKeysByGroups'];\n xGroupKeys: string[];\n yGroupKeys: string[];\n colorScale: (value: ValueType) => string;\n chartSettings: HeatmapSettingsImpl['chartSettings'];\n cellsMeta: GroupedCellsData['meta'];\n stepX: number;\n stepY: number;\n annotations: HeatmapSettingsImpl['annotations'];\n annotationColorScales: AnnotationColorScales;\n sharedX: boolean;\n sharedY: boolean;\n aes: HeatmapSettingsImpl['aes'];\n dendrograms: ChartDendrograms;\n dendrogramAesScales: DendrogramAesScales;\n labelAngles: LabelAngles;\n margins: Margins;\n tooltipsContainer?: Element;\n tooltipsData: TooltipsData<Cell|AnnotationTooltipData>;\n}) {\n const dataFrame = useDataFrame();\n const [activeElementContainer, setActiveElementContainer] = useState<SVGGElement>();\n\n const {xAxis, yAxis, tooltips} = chartSettings;\n const {width, height} = dimensions.inner;\n const {padding, chartEdgeSides, sideElementBBoxes} = dimensions;\n const {xGroupLabels, yGroupLabels, xLabels, yLabels} = cellsMeta;\n\n const xKeys = scales.x.domain();\n const yKeys = scales.y.domain();\n\n const sideDistances = {\n left: margins.left + dimensions.left + padding.left,\n right: chartSizes.totalWidth - (margins.left + dimensions.left + padding.left),\n top: margins.top + dimensions.top + padding.top,\n bottom: chartSizes.totalHeight - (margins.top + dimensions.top + padding.top),\n };\n\n const debug = false;\n const isDimmedBackground = activeElementContainer && tooltipsData.fixed;\n\n return (\n <g transform={`translate(${dimensions.left},${dimensions.top})`} fontSize={FONT_SIZE}>\n <g transform={`translate(${padding.left},${padding.top})`}>\n <Annotations\n facetKey={facetKey}\n sideElementBBoxes={sideElementBBoxes}\n annotations={annotations}\n cellsMeta={cellsMeta}\n annotationColorScales={annotationColorScales}\n sharedX={sharedX}\n sharedY={sharedY}\n chartEdgeSides={chartEdgeSides}\n width={width}\n height={height}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n aes={aes}\n frame={chartSettings.frame}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n tooltipsData={tooltipsData}\n activeElementContainer={activeElementContainer}\n />\n <Dendrograms\n dendrograms={dendrograms}\n sideElementBBoxes={sideElementBBoxes}\n xGroupKeys={cellsMeta.xGroupKeys}\n yGroupKeys={cellsMeta.yGroupKeys}\n xDataByKeys={cellsMeta.xDataByKeys}\n yDataByKeys={cellsMeta.yDataByKeys}\n aesScales={dendrogramAesScales}\n />\n {/* facet title */}\n {sideElementBBoxes.top.facetTitle.isVisible && (\n <text\n x={sideElementBBoxes.top.facetTitle.x}\n y={\n sideElementBBoxes.top.facetTitle.y +\n sideElementBBoxes.top.facetTitle.height -\n FACET_TITLE_OFFSET\n }\n fontWeight=\"500\"\n fontSize=\"20px\"\n >\n {cellsMeta.facetKeyValues[facetKey].join(', ')}\n </text>\n )}\n {debug && (\n <g fill=\"green\" opacity=\"0.2\">\n <rect\n x={-padding.left}\n y={-padding.top}\n width={dimensions.outer.width}\n height={dimensions.outer.height}\n fill=\"none\"\n stroke=\"red\"\n />\n <rect x={-padding.left} y=\"0\" width={padding.left} height={height} />\n <rect x={width} y=\"0\" width={padding.right} height={height} />\n <rect x=\"0\" y={-padding.top} width={width} height={padding.top} />\n <rect x=\"0\" y={height} width={width} height={padding.bottom} />\n </g>\n )}\n {/* cells */}\n {xKeys.map(xKey =>\n yKeys.map(yKey => {\n const cell = cells?.[xKey]?.[yKey];\n const highlighted = isDimmedBackground && isCellTooltip(tooltipsData.selectedData) && cell?.id === tooltipsData.selectedData.id;\n const cellElement = cell ? (\n <rect\n key={cell ? cell.id : `${xKey}_${yKey}`}\n x={scales.x(xKey)}\n y={scales.y(yKey)}\n width={stepX}\n height={stepY}\n stroke={aes.cellStrokeColor}\n fill={cell.value === null ? aes.emptyCellColor : colorScale(cell.normalizedValue as ValueType)}\n onMouseOver={() => tooltipsData.onMouseEnter(cell, facetKey)}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n ) : null;\n return highlighted ? createPortal(cellElement, activeElementContainer) : cellElement;\n })\n )}\n <Frames\n frame={chartSettings.frame}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n width={width}\n height={height}\n />\n <Captions\n xAxis={xAxis}\n yAxis={yAxis}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n debug={debug}\n sideElementBBoxes={sideElementBBoxes}\n xKeys={xKeys}\n yKeys={yKeys}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n xGroupLabels={xGroupLabels}\n yGroupLabels={yGroupLabels}\n labelAngles={labelAngles}\n xLabels={xLabels}\n yLabels={yLabels}\n />\n </g>\n {chartSettings.tooltips.show && isCellTooltip(tooltipsData.selectedData) && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipsData.selectedData, cellsMeta, tooltips?.content)}\n x={scales.x(String(tooltipsData.selectedData.x)) + stepX / 2}\n y={scales.y(String(tooltipsData.selectedData.y)) + stepY / 2}\n offset={xKeys.length > 1 ? stepX / 2 : 0}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={tooltipsContainer}\n />\n )}\n {chartSettings.tooltips.show && isAnnotationTooltip(tooltipsData.selectedData) && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getAnnotationTooltipContent(tooltipsData.selectedData, cellsMeta)}\n x={tooltipsData.selectedData.x}\n y={tooltipsData.selectedData.y}\n offset={0}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={tooltipsContainer}\n />\n )}\n <g transform={`translate(${padding.left},${padding.top})`}>\n {tooltipsData.fixed && <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255, 255, 255, 0.8)\"/>}\n <g ref={node => {\n if (node && !activeElementContainer) {\n setActiveElementContainer(node);\n }\n }}\n />\n </g>\n </g>\n );\n}\n"],"names":["formatCellValue","v","whole","decimal","getTooltipContent","dataFrame","cell","cellsMeta","columnsList","lines","column","getAnnotationTooltipContent","data","isAnnotationTooltip","d","isCellTooltip","Chart","dendrograms","facetKey","dimensions","scales","cells","xGroupKeys","yGroupKeys","xKeysByGroups","yKeysByGroups","colorScale","chartSettings","stepX","stepY","sharedX","sharedY","annotations","annotationColorScales","dendrogramAesScales","aes","labelAngles","chartSizes","margins","tooltipsContainer","tooltipsData","useDataFrame","activeElementContainer","setActiveElementContainer","useState","xAxis","yAxis","tooltips","width","height","padding","chartEdgeSides","sideElementBBoxes","xGroupLabels","yGroupLabels","xLabels","yLabels","xKeys","yKeys","sideDistances","debug","isDimmedBackground","jsxs","FONT_SIZE","jsx","Annotations","Dendrograms","FACET_TITLE_OFFSET","xKey","yKey","_a","highlighted","cellElement","createPortal","Frames","Captions","Tooltip","node"],"mappings":"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"}
1
+ {"version":3,"file":"Chart.js","sources":["../../../src/heatmap/components/Chart.tsx"],"sourcesContent":["import {format as d3format} from 'd3-format';\nimport { useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport type { DataFrame } from '../../DataFrame';\nimport type { ColumnName, DataValue } from '../../types';\nimport { FACET_TITLE_OFFSET, FONT_SIZE } from '../constants';\nimport type { Cell, GroupedCellsData } from '../getCells';\nimport type { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';\nimport { Annotations } from './Annotations';\nimport { Captions } from './Captions';\nimport { Dendrograms } from './Dendrograms';\nimport { Frames } from './Frames';\nimport type { AnnotationColorScales, AnnotationTooltipData, CaptionsSizes, ChartDendrograms, ChartDimensionsData, ChartScales, ChartSizes, DendrogramAesScales, LabelAngles, Margins } from './types';\n\nfunction formatCellValue (v:DataValue, format?:string):number|string {\n if (v === null) {\n return 'null';\n }\n if (typeof v === 'number') {\n if (format) {\n return d3format(format)(v);\n }\n const whole = v > 0 ? Math.floor(v) : Math.ceil(v);\n const decimal = v - whole;\n return whole + Number(decimal.toPrecision(2));\n }\n return v;\n}\nfunction getTooltipContent(dataFrame: DataFrame, cell: Cell, cellsMeta:GroupedCellsData['meta'], columnsList: ColumnName[] = []) {\n const lines = [\n `X: ${cellsMeta.xLabels[cell.x as string]}`,\n `Y: ${cellsMeta.yLabels[cell.y as string]}`,\n `Value: ${formatCellValue(cell.value)}${cell.value !== cell.normalizedValue ? ` (${formatCellValue(cell.normalizedValue)})`: ''}`,\n ];\n for (const column of columnsList) {\n const value = dataFrame.getColumnValue(column.value, cell.idx);\n lines.push(`${column.label}: ${formatCellValue(value, column.format)}`);\n }\n return lines;\n}\nfunction getAnnotationTooltipContent(data:AnnotationTooltipData, cellsMeta:GroupedCellsData['meta']) {\n const lines:string[] = [];\n if (data.xKey) {\n lines.push(`X: ${cellsMeta.xLabels[data.xKey as string]}`);\n }\n if (data.yKey) {\n lines.push(`Y: ${cellsMeta.yLabels[data.yKey as string]}`);\n }\n lines.push(`${data.title}: ${formatCellValue(data.value, data.column.format)}`);\n return lines;\n}\n\nfunction isAnnotationTooltip(d:Cell|AnnotationTooltipData|null):d is AnnotationTooltipData {\n return d !== null && 'isAnnotation' in d;\n}\n\nfunction isCellTooltip(d:Cell|AnnotationTooltipData|null):d is Cell {\n return d !== null && 'isCell' in d;\n}\n\nexport function Chart<ValueType>({\n dendrograms,\n facetKey,\n dimensions,\n scales,\n cells,\n xGroupKeys,\n yGroupKeys,\n xKeysByGroups,\n yKeysByGroups,\n colorScale,\n chartSettings,\n cellsMeta,\n stepX,\n stepY,\n sharedX,\n sharedY,\n annotations,\n annotationColorScales,\n dendrogramAesScales,\n aes,\n labelAngles,\n chartSizes,\n margins,\n tooltipsContainer,\n tooltipsData,\n}: {\n facetKey: string;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n dimensions: ChartDimensionsData;\n scales: ChartScales;\n cells: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['cells'];\n xKeysByGroups: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['xKeysByGroups'];\n yKeysByGroups: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['yKeysByGroups'];\n xGroupKeys: string[];\n yGroupKeys: string[];\n colorScale: (value: ValueType) => string;\n chartSettings: HeatmapSettingsImpl['chartSettings'];\n cellsMeta: GroupedCellsData['meta'];\n stepX: number;\n stepY: number;\n annotations: HeatmapSettingsImpl['annotations'];\n annotationColorScales: AnnotationColorScales;\n sharedX: boolean;\n sharedY: boolean;\n aes: HeatmapSettingsImpl['aes'];\n dendrograms: ChartDendrograms;\n dendrogramAesScales: DendrogramAesScales;\n labelAngles: LabelAngles;\n margins: Margins;\n tooltipsContainer?: Element;\n tooltipsData: TooltipsData<Cell|AnnotationTooltipData>;\n}) {\n const dataFrame = useDataFrame();\n const [activeElementContainer, setActiveElementContainer] = useState<SVGGElement>();\n\n const {xAxis, yAxis, tooltips} = chartSettings;\n const {width, height} = dimensions.inner;\n const {padding, chartEdgeSides, sideElementBBoxes} = dimensions;\n const {xGroupLabels, yGroupLabels, xLabels, yLabels} = cellsMeta;\n\n const xKeys = scales.x.domain();\n const yKeys = scales.y.domain();\n\n const sideDistances = {\n left: margins.left + dimensions.left + padding.left,\n right: chartSizes.totalWidth - (margins.left + dimensions.left + padding.left),\n top: margins.top + dimensions.top + padding.top,\n bottom: chartSizes.totalHeight - (margins.top + dimensions.top + padding.top),\n };\n\n const debug = false;\n const isDimmedBackground = activeElementContainer && tooltipsData.fixed;\n\n return (\n <g transform={`translate(${dimensions.left},${dimensions.top})`} fontSize={FONT_SIZE}>\n <g transform={`translate(${padding.left},${padding.top})`}>\n <Annotations\n facetKey={facetKey}\n sideElementBBoxes={sideElementBBoxes}\n annotations={annotations}\n cellsMeta={cellsMeta}\n annotationColorScales={annotationColorScales}\n sharedX={sharedX}\n sharedY={sharedY}\n chartEdgeSides={chartEdgeSides}\n width={width}\n height={height}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n aes={aes}\n frame={chartSettings.frame}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n tooltipsData={tooltipsData}\n activeElementContainer={activeElementContainer}\n />\n <Dendrograms\n dendrograms={dendrograms}\n sideElementBBoxes={sideElementBBoxes}\n xGroupKeys={cellsMeta.xGroupKeys}\n yGroupKeys={cellsMeta.yGroupKeys}\n xDataByKeys={cellsMeta.xDataByKeys}\n yDataByKeys={cellsMeta.yDataByKeys}\n aesScales={dendrogramAesScales}\n />\n {/* facet title */}\n {sideElementBBoxes.top.facetTitle.isVisible && (\n <text\n x={sideElementBBoxes.top.facetTitle.x}\n y={\n sideElementBBoxes.top.facetTitle.y +\n sideElementBBoxes.top.facetTitle.height -\n FACET_TITLE_OFFSET\n }\n fontWeight=\"500\"\n fontSize=\"20px\"\n >\n {cellsMeta.facetKeyValues[facetKey].join(', ')}\n </text>\n )}\n {debug && (\n <g fill=\"green\" opacity=\"0.2\">\n <rect\n x={-padding.left}\n y={-padding.top}\n width={dimensions.outer.width}\n height={dimensions.outer.height}\n fill=\"none\"\n stroke=\"red\"\n />\n <rect x={-padding.left} y=\"0\" width={padding.left} height={height} />\n <rect x={width} y=\"0\" width={padding.right} height={height} />\n <rect x=\"0\" y={-padding.top} width={width} height={padding.top} />\n <rect x=\"0\" y={height} width={width} height={padding.bottom} />\n </g>\n )}\n {/* cells */}\n {xKeys.map(xKey =>\n yKeys.map(yKey => {\n const cell = cells?.[xKey]?.[yKey];\n const highlighted = isDimmedBackground && isCellTooltip(tooltipsData.selectedData) && cell?.id === tooltipsData.selectedData.id;\n const cellElement = cell ? (\n <rect\n key={cell ? cell.id : `${xKey}_${yKey}`}\n x={scales.x(xKey)}\n y={scales.y(yKey)}\n width={stepX}\n height={stepY}\n stroke={aes.cellStrokeColor}\n fill={cell.value === null ? aes.emptyCellColor : colorScale(cell.normalizedValue as ValueType)}\n onMouseOver={() => tooltipsData.onMouseEnter(cell, facetKey)}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n ) : null;\n return highlighted ? createPortal(cellElement, activeElementContainer) : cellElement;\n })\n )}\n <Frames\n frame={chartSettings.frame}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n width={width}\n height={height}\n />\n <Captions\n xAxis={xAxis}\n yAxis={yAxis}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n debug={debug}\n sideElementBBoxes={sideElementBBoxes}\n xKeys={xKeys}\n yKeys={yKeys}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n xGroupLabels={xGroupLabels}\n yGroupLabels={yGroupLabels}\n labelAngles={labelAngles}\n xLabels={xLabels}\n yLabels={yLabels}\n />\n </g>\n {chartSettings.tooltips.show && isCellTooltip(tooltipsData.selectedData) && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipsData.selectedData, cellsMeta, tooltips?.content)}\n x={scales.x(String(tooltipsData.selectedData.x)) + stepX / 2}\n y={scales.y(String(tooltipsData.selectedData.y)) + stepY / 2}\n offset={xKeys.length > 1 ? stepX / 2 : 0}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={tooltipsContainer}\n />\n )}\n {chartSettings.tooltips.show && isAnnotationTooltip(tooltipsData.selectedData) && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getAnnotationTooltipContent(tooltipsData.selectedData, cellsMeta)}\n x={tooltipsData.selectedData.x}\n y={tooltipsData.selectedData.y}\n offset={0}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={tooltipsContainer}\n />\n )}\n <g transform={`translate(${padding.left},${padding.top})`}>\n {tooltipsData.fixed && <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255, 255, 255, 0.8)\"/>}\n <g ref={node => {\n if (node && !activeElementContainer) {\n setActiveElementContainer(node);\n }\n }}\n />\n </g>\n </g>\n );\n}\n"],"names":["formatCellValue","v","format","d3format","whole","decimal","getTooltipContent","dataFrame","cell","cellsMeta","columnsList","lines","column","value","getAnnotationTooltipContent","data","isAnnotationTooltip","d","isCellTooltip","Chart","dendrograms","facetKey","dimensions","scales","cells","xGroupKeys","yGroupKeys","xKeysByGroups","yKeysByGroups","colorScale","chartSettings","stepX","stepY","sharedX","sharedY","annotations","annotationColorScales","dendrogramAesScales","aes","labelAngles","chartSizes","margins","tooltipsContainer","tooltipsData","useDataFrame","activeElementContainer","setActiveElementContainer","useState","xAxis","yAxis","tooltips","width","height","padding","chartEdgeSides","sideElementBBoxes","xGroupLabels","yGroupLabels","xLabels","yLabels","xKeys","yKeys","sideDistances","debug","isDimmedBackground","jsxs","FONT_SIZE","jsx","Annotations","Dendrograms","FACET_TITLE_OFFSET","xKey","yKey","_a","highlighted","cellElement","createPortal","Frames","Captions","Tooltip","node"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { HierarchyPointNode } from 'd3-hierarchy';
2
2
  import { ScaleLinear, ScaleOrdinal } from 'd3-scale';
3
- import { AesItem, DataValue } from '../../types';
3
+ import { AesItem, ColumnName, DataValue } from '../../types';
4
4
  import { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';
5
5
  export interface Margins {
6
6
  top: number;
@@ -103,5 +103,6 @@ export type AnnotationTooltipData = {
103
103
  yKey: DataValue | null;
104
104
  value: DataValue;
105
105
  title: string;
106
+ column: ColumnName;
106
107
  };
107
108
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/heatmap/components/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/heatmap/components/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heatmap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAc,SAAS,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE7F,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,YAAa,SAAQ,aAAa;IAC3C,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,aAAa,gBAAuB;IAEpC,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,cAAc,EAAE;QACZ,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,eAAe,EAAE,eAAe,CAAC;QACjC,cAAc,EAAE,SAAS,EAAE,CAAC;KAC/B,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,EAAC,oBAAoB;IAS3F,KAAK,CAAC,IAAI,EAAE,WAAW;IAavB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe;IAuBhE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB;IA6DpG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IA0CX,gBAAgB;IAIhB,YAAY;CAkCf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heatmap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAc,SAAS,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE7F,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,YAAa,SAAQ,aAAa;IAC3C,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,aAAa,gBAAuB;IAEpC,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,cAAc,EAAE;QACZ,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,eAAe,EAAE,eAAe,CAAC;QACjC,cAAc,EAAE,SAAS,EAAE,CAAC;KAC/B,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,EAAC,oBAAoB;IAS3F,KAAK,CAAC,IAAI,EAAE,WAAW;IAevB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe;IAuBhE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB;IA6DpG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IA0CX,gBAAgB;IAIhB,YAAY;CAkCf"}
@@ -7,7 +7,7 @@ import { isColumnName as D } from "../utils/index.js";
7
7
  import J from "./ChartRenderer.js";
8
8
  import { getCells as L } from "./getCells.js";
9
9
  import { getDendrograms as M } from "./getDendrograms.js";
10
- import { HeatmapSettingsImpl as U } from "./HeatmapSettingsImpl.js";
10
+ import { HeatmapSettingsImpl as O } from "./HeatmapSettingsImpl.js";
11
11
  class ea extends F {
12
12
  constructor(a, t, e) {
13
13
  super(a, t);
@@ -16,13 +16,13 @@ class ea extends F {
16
16
  y(this, "onTooltipHintSwitch", () => {
17
17
  });
18
18
  y(this, "calculatedData", null);
19
- this.settings = new U(t), e && (this.onTooltipHintSwitch = e[0]);
19
+ this.settings = new O(t), e && (this.onTooltipHintSwitch = e[0]);
20
20
  }
21
21
  mount(a) {
22
22
  try {
23
- this.chartRenderer.init(a), this._updateData(), this._updateChart();
23
+ this.chartRenderer.init(a), this._updateData(), this._updateChart(), this.hasError = !1;
24
24
  } catch (t) {
25
- t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
25
+ this.hasError = !0, t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
26
26
  }
27
27
  }
28
28
  unmount() {
@@ -31,7 +31,7 @@ class ea extends F {
31
31
  updateSettingsAndData(a, t) {
32
32
  try {
33
33
  const e = this.settings, r = this.data;
34
- this.settings = new U(t), this.data = a, this._needUpdateCalculatedDataBySettings(e, this.settings) || this._needUpdateCalculatedDataByData(r, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
34
+ this.settings = new O(t), this.data = a, this._needUpdateCalculatedDataBySettings(e, this.settings) || this._needUpdateCalculatedDataByData(r, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
35
35
  } catch (e) {
36
36
  e instanceof Error && (this.chartRenderer.renderError(e.message), console.error(e));
37
37
  }
@@ -49,8 +49,8 @@ class ea extends F {
49
49
  yColumn: r,
50
50
  valueColumn: d,
51
51
  xGroupBy: s,
52
- yGroupBy: m,
53
- facetBy: h,
52
+ yGroupBy: h,
53
+ facetBy: m,
54
54
  annotations: g,
55
55
  chartSettings: u,
56
56
  facetSettings: C,
@@ -60,16 +60,16 @@ class ea extends F {
60
60
  NAValueAs: _
61
61
  } = t, B = Object.values(((X = a.dendrogramX) == null ? void 0 : X.aes) || {}).filter(
62
62
  D
63
- ), V = Object.values((p == null ? void 0 : p.aes) || {}).filter(D), E = Object.values(((Y = a.dendrogramY) == null ? void 0 : Y.aes) || {}).filter(
63
+ ), U = Object.values((p == null ? void 0 : p.aes) || {}).filter(D), V = Object.values(((Y = a.dendrogramY) == null ? void 0 : Y.aes) || {}).filter(
64
64
  D
65
65
  ), H = Object.values((f == null ? void 0 : f.aes) || {}).filter(D);
66
- function i(c, O) {
67
- return c.length !== O.length || c.some((N, I) => N.value !== O[I].value);
66
+ function i(c, E) {
67
+ return c.length !== E.length || c.some((N, I) => N.value !== E[I].value);
68
68
  }
69
- return a.xColumn.value !== e.value || a.yColumn.value !== r.value || a.valueColumn.value !== d.value || i(a.xGroupBy, s) || i(a.yGroupBy, m) || i(a.facetBy, h) || i(
69
+ return a.xColumn.value !== e.value || a.yColumn.value !== r.value || a.valueColumn.value !== d.value || i(a.xGroupBy, s) || i(a.yGroupBy, h) || i(a.facetBy, m) || i(
70
70
  a.annotations.map((c) => c.valueColumn),
71
71
  g.map((c) => c.valueColumn)
72
- ) || i(B, V) || i(E, H) || (t.dendrogramX || a.dendrogramX) && (((A = a.dendrogramX) == null ? void 0 : A.distance) !== ((x = t.dendrogramX) == null ? void 0 : x.distance) || ((R = a.dendrogramX) == null ? void 0 : R.linkage) !== ((b = t.dendrogramX) == null ? void 0 : b.linkage)) || (t.dendrogramY || a.dendrogramY) && (((w = a.dendrogramY) == null ? void 0 : w.distance) !== ((G = t.dendrogramY) == null ? void 0 : G.distance) || ((T = a.dendrogramY) == null ? void 0 : T.linkage) !== ((j = t.dendrogramY) == null ? void 0 : j.linkage)) || a.chartSettings.valueType !== u.valueType || a.facetSettings.sharedX !== C.sharedX || a.facetSettings.sharedY !== C.sharedY || ((k = a.normalization) == null ? void 0 : k.method) !== (n == null ? void 0 : n.method) || ((v = a.normalization) == null ? void 0 : v.direction) !== (n == null ? void 0 : n.direction) || a.NAValueAs !== _;
72
+ ) || i(B, U) || i(V, H) || (t.dendrogramX || a.dendrogramX) && (((A = a.dendrogramX) == null ? void 0 : A.distance) !== ((x = t.dendrogramX) == null ? void 0 : x.distance) || ((R = a.dendrogramX) == null ? void 0 : R.linkage) !== ((b = t.dendrogramX) == null ? void 0 : b.linkage)) || (t.dendrogramY || a.dendrogramY) && (((w = a.dendrogramY) == null ? void 0 : w.distance) !== ((G = t.dendrogramY) == null ? void 0 : G.distance) || ((T = a.dendrogramY) == null ? void 0 : T.linkage) !== ((j = t.dendrogramY) == null ? void 0 : j.linkage)) || a.chartSettings.valueType !== u.valueType || a.facetSettings.sharedX !== C.sharedX || a.facetSettings.sharedY !== C.sharedY || ((k = a.normalization) == null ? void 0 : k.method) !== (n == null ? void 0 : n.method) || ((v = a.normalization) == null ? void 0 : v.direction) !== (n == null ? void 0 : n.direction) || a.NAValueAs !== _;
73
73
  }
74
74
  _needUpdateCalculatedDataByData(a, t) {
75
75
  const e = Object.keys(a.data), r = Object.keys(t.data);
@@ -86,8 +86,8 @@ class ea extends F {
86
86
  xGroupBy: r,
87
87
  yGroupBy: d,
88
88
  facetBy: s,
89
- chartSettings: m,
90
- facetSettings: h,
89
+ chartSettings: h,
90
+ facetSettings: m,
91
91
  annotations: g,
92
92
  dendrogramX: u,
93
93
  dendrogramY: C,
@@ -106,7 +106,7 @@ class ea extends F {
106
106
  C,
107
107
  p,
108
108
  f
109
- ), _ = M(n, u, C, h), B = m.valueType === "discrete" ? this.data.getColumnCategories(e.value) : [];
109
+ ), _ = M(n, u, C, m), B = h.valueType === "discrete" ? this.data.getColumnCategories(e.value) : [];
110
110
  this.calculatedData = {
111
111
  groupedCellsData: n,
112
112
  dendrogramsData: _,
@@ -125,8 +125,8 @@ class ea extends F {
125
125
  facetSettings: r,
126
126
  aes: d,
127
127
  annotations: s,
128
- dendrogramX: m,
129
- dendrogramY: h,
128
+ dendrogramX: h,
129
+ dendrogramY: m,
130
130
  inheritedDendrogramAes: g,
131
131
  normalization: u
132
132
  } = this.settings;
@@ -139,8 +139,8 @@ class ea extends F {
139
139
  this.calculatedData.groupedCellsData,
140
140
  s,
141
141
  t,
142
- m,
143
142
  h,
143
+ m,
144
144
  this.calculatedData.dendrogramsData,
145
145
  g,
146
146
  this.calculatedData.cellUniqValues,
@@ -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';\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 } catch (err) {\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 } = 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 );\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 } = this.settings;\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 );\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","groupedCellsData","getCells","dendrogramsData","getDendrograms","cellUniqValues","id","aes","inheritedDendrogramAes"],"mappings":"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"}
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';\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 } = 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 );\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 } = this.settings;\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 );\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","groupedCellsData","getCells","dendrogramsData","getDendrograms","cellUniqValues","id","aes","inheritedDendrogramAes"],"mappings":"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"}