@milaboratories/miplots4 1.0.132 → 1.0.134

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 (61) 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/DiscreteSettingsImpl.d.ts +17 -2
  20. package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -1
  21. package/dist/discrete/DiscreteSettingsImpl.js +93 -67
  22. package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  23. package/dist/discrete/components/Chart.d.ts.map +1 -1
  24. package/dist/discrete/components/Chart.js +152 -135
  25. package/dist/discrete/components/Chart.js.map +1 -1
  26. package/dist/discrete/components/layers/StackedAreaElement.d.ts +24 -0
  27. package/dist/discrete/components/layers/StackedAreaElement.d.ts.map +1 -0
  28. package/dist/discrete/components/layers/StackedAreaElement.js +105 -0
  29. package/dist/discrete/components/layers/StackedAreaElement.js.map +1 -0
  30. package/dist/discrete/components/layers/StackedBarElement.d.ts +3 -1
  31. package/dist/discrete/components/layers/StackedBarElement.d.ts.map +1 -1
  32. package/dist/discrete/components/layers/StackedBarElement.js +67 -60
  33. package/dist/discrete/components/layers/StackedBarElement.js.map +1 -1
  34. package/dist/discrete/index.d.ts.map +1 -1
  35. package/dist/discrete/index.js +87 -84
  36. package/dist/discrete/index.js.map +1 -1
  37. package/dist/discrete/layers/index.d.ts +1 -0
  38. package/dist/discrete/layers/index.d.ts.map +1 -1
  39. package/dist/discrete/layers/stackedArea.d.ts +10 -0
  40. package/dist/discrete/layers/stackedArea.d.ts.map +1 -0
  41. package/dist/discrete/layers/stackedArea.js +17 -0
  42. package/dist/discrete/layers/stackedArea.js.map +1 -0
  43. package/dist/discrete/layers/types.d.ts +12 -1
  44. package/dist/discrete/layers/types.d.ts.map +1 -1
  45. package/dist/heatmap/index.d.ts.map +1 -1
  46. package/dist/heatmap/index.js +18 -18
  47. package/dist/heatmap/index.js.map +1 -1
  48. package/dist/histogram/index.d.ts.map +1 -1
  49. package/dist/histogram/index.js +22 -22
  50. package/dist/histogram/index.js.map +1 -1
  51. package/dist/scatterplot/index.d.ts.map +1 -1
  52. package/dist/scatterplot/index.js +33 -33
  53. package/dist/scatterplot/index.js.map +1 -1
  54. package/dist/scatterplot-umap/index.d.ts.map +1 -1
  55. package/dist/scatterplot-umap/index.js +16 -16
  56. package/dist/scatterplot-umap/index.js.map +1 -1
  57. package/dist/types/discrete.d.ts +268 -0
  58. package/dist/types/discrete.d.ts.map +1 -1
  59. package/dist/types/discrete.js +24 -9
  60. package/dist/types/discrete.js.map +1 -1
  61. package/package.json +1 -1
@@ -1,43 +1,44 @@
1
1
  var R = Object.defineProperty;
2
- var K = (l, o, e) => o in l ? R(l, o, { enumerable: !0, configurable: !0, writable: !0, value: e }) : l[o] = e;
3
- var D = (l, o, e) => K(l, typeof o != "symbol" ? o + "" : o, e);
4
- import { l as E } from "../node_modules/lodash/lodash.js";
2
+ var K = (l, n, e) => n in l ? R(l, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : l[n] = e;
3
+ var D = (l, n, e) => K(l, typeof n != "symbol" ? n + "" : n, e);
4
+ import { l as _ } from "../node_modules/lodash/lodash.js";
5
5
  import { renderToString as x } from "../node_modules/react-dom/server.browser.js";
6
6
  import { AbstractChart as T } from "../AbstractChart.js";
7
7
  import { NO_GROUPED as C } from "../DataFrame.js";
8
8
  import P from "./ChartRenderer.js";
9
9
  import { MAX_GROUPS_COUNT as w, MAX_FACETS_COUNT as U } from "./constants.js";
10
- import { DiscreteSettingsImpl as B, StatLayer as L, BoxLayer as O, ViolinLayer as I, DotLayer as F, LineLayer as V, ErrorBarLayer as $, BarLayer as j, StackedBarLayer as H, BinnedDotsLayer as M, PairedPointsLayer as X, SinaLayer as q, LogoPlotLayer as z } from "./DiscreteSettingsImpl.js";
11
- import { getBoxesData as J } from "./layers/boxes.js";
12
- import { getViolinsData as Q } from "./layers/violins.js";
13
- import { getSinaData as W } from "./layers/sina.js";
14
- import { getDotsData as Y } from "./layers/dots.js";
15
- import { getLinesData as Z } from "./layers/lines.js";
16
- import { getErrorBarsData as tt } from "./layers/errorbars.js";
17
- import { getBarsData as at } from "./layers/bar.js";
18
- import { getStackedBarsData as et } from "./layers/stackedBar.js";
19
- import { getBinnedDotsData as rt } from "./layers/binnedDots.js";
20
- import { getPairedPointsData as nt } from "./layers/pairedPoints.js";
21
- import { getLogoData as ot } from "./layers/logo.js";
22
- import { getStatsData as st } from "./layers/stats/index.js";
23
- import { getFacetStringKey as v } from "./utils/getFacetStringKey.js";
24
- function S(l, o, e = null) {
25
- const t = o.value, n = l.getColumnCategories(t);
26
- return E.intersection(e ?? n, n).map(String);
10
+ import { DiscreteSettingsImpl as E, StatLayer as L, BoxLayer as O, ViolinLayer as I, DotLayer as F, LineLayer as V, ErrorBarLayer as $, BarLayer as j, StackedBarLayer as H, StackedAreaLayer as M, BinnedDotsLayer as X, PairedPointsLayer as q, SinaLayer as z, LogoPlotLayer as J } from "./DiscreteSettingsImpl.js";
11
+ import { getBoxesData as Q } from "./layers/boxes.js";
12
+ import { getViolinsData as W } from "./layers/violins.js";
13
+ import { getSinaData as Y } from "./layers/sina.js";
14
+ import { getDotsData as Z } from "./layers/dots.js";
15
+ import { getLinesData as tt } from "./layers/lines.js";
16
+ import { getErrorBarsData as at } from "./layers/errorbars.js";
17
+ import { getBarsData as et } from "./layers/bar.js";
18
+ import { getStackedBarsData as rt } from "./layers/stackedBar.js";
19
+ import { getStackedAreaData as ot } from "./layers/stackedArea.js";
20
+ import { getBinnedDotsData as nt } from "./layers/binnedDots.js";
21
+ import { getPairedPointsData as st } from "./layers/pairedPoints.js";
22
+ import { getLogoData as it } from "./layers/logo.js";
23
+ import { getStatsData as lt } from "./layers/stats/index.js";
24
+ import { getFacetStringKey as B } from "./utils/getFacetStringKey.js";
25
+ function S(l, n, e = null) {
26
+ const t = n.value, o = l.getColumnCategories(t);
27
+ return _.intersection(e ?? o, o).map(String);
27
28
  }
28
- function _(l) {
29
+ function v(l) {
29
30
  if (!l.length)
30
31
  return [];
31
- let o = [[]];
32
+ let n = [[]];
32
33
  return l.forEach((e) => {
33
34
  const t = [];
34
- e.forEach((n) => {
35
- t.push(...o.map((s) => [...s, n]));
36
- }), o = t;
37
- }), o;
35
+ e.forEach((o) => {
36
+ t.push(...n.map((s) => [...s, o]));
37
+ }), n = t;
38
+ }), n;
38
39
  }
39
- function G(l, o) {
40
- if (!o)
40
+ function G(l, n) {
41
+ if (!n)
41
42
  return {
42
43
  keys: ["null"],
43
44
  value: null,
@@ -45,35 +46,35 @@ function G(l, o) {
45
46
  valueLabels: { null: "" },
46
47
  inheritedAes: null
47
48
  };
48
- const e = o.columnName.value, t = o.columnName.valueLabels, n = l.getColumnCategories(e, !1), s = (r) => t ? String(
49
+ const e = n.columnName.value, t = n.columnName.valueLabels, o = l.getColumnCategories(e, !1), s = (r) => t ? String(
49
50
  l.getColumnValue(
50
51
  t,
51
52
  l.getColumnCategoryRowIndex(e, r)
52
53
  )
53
- ) : r, i = l.getColumnCategories(e, !o.allowNullGroup);
54
+ ) : r, i = l.getColumnCategories(e, !n.allowNullGroup);
54
55
  return {
55
- keys: o.order === void 0 ? i : E.intersection(o.order.map(String), i),
56
+ keys: n.order === void 0 ? i : _.intersection(n.order.map(String), i),
56
57
  value: e,
57
- label: o.columnName.label ?? e,
58
- valueLabels: n.reduce((r, u) => (r[u] = s(u), r), {}),
59
- inheritedAes: o.inheritedAes ?? null
58
+ label: n.columnName.label ?? e,
59
+ valueLabels: o.reduce((r, u) => (r[u] = s(u), r), {}),
60
+ inheritedAes: n.inheritedAes ?? null
60
61
  };
61
62
  }
62
- class bt extends T {
63
- constructor(e, t, n) {
63
+ class At extends T {
64
+ constructor(e, t, o) {
64
65
  super(e, t);
65
66
  D(this, "settings");
66
67
  D(this, "chartRenderer", new P());
67
68
  D(this, "onTooltipHintSwitch", () => {
68
69
  });
69
70
  D(this, "calculatedData", null);
70
- this.settings = new B(t), n && (this.onTooltipHintSwitch = n[0]);
71
+ this.settings = new E(t), o && (this.onTooltipHintSwitch = o[0]);
71
72
  }
72
73
  mount(e) {
73
74
  try {
74
- this.chartRenderer.init(e), this._updateData(), this._updateChart();
75
+ this.chartRenderer.init(e), this._updateData(), this._updateChart(), this.hasError = !1;
75
76
  } catch (t) {
76
- t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
77
+ this.hasError = !0, t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
77
78
  }
78
79
  }
79
80
  unmount() {
@@ -81,10 +82,10 @@ class bt extends T {
81
82
  }
82
83
  updateSettingsAndData(e, t) {
83
84
  try {
84
- const n = this.settings, s = this.data;
85
- this.settings = new B(t), this.data = e, this._needUpdateCalculatedDataBySettings(n, this.settings) || this._needUpdateCalculatedDataByData(s, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
86
- } catch (n) {
87
- n instanceof Error && (this.chartRenderer.renderError(n.message), console.error(n));
85
+ const o = this.settings, s = this.data;
86
+ this.settings = new E(t), this.data = e, this._needUpdateCalculatedDataBySettings(o, this.settings) || this._needUpdateCalculatedDataByData(s, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart(), this.hasError = !1;
87
+ } catch (o) {
88
+ this.hasError = !0, o instanceof Error && (this.chartRenderer.renderError(o.message), console.error(o));
88
89
  }
89
90
  }
90
91
  updateChartState(e, t) {
@@ -94,88 +95,90 @@ class bt extends T {
94
95
  return this._updateChart(), x(this.chartRenderer.component);
95
96
  }
96
97
  _needUpdateCalculatedDataBySettings(e, t) {
97
- var n, s, i, c, r, u, d, m;
98
- return e.chartSettings.yAxis.scale !== t.chartSettings.yAxis.scale || (((n = e.primaryGrouping) == null ? void 0 : n.columnName.value) ?? "") !== (((s = t.primaryGrouping) == null ? void 0 : s.columnName.value) ?? "") || (((i = e.secondaryGrouping) == null ? void 0 : i.columnName.value) ?? "") !== (((c = t.secondaryGrouping) == null ? void 0 : c.columnName.value) ?? "") || (((r = e.primaryGrouping) == null ? void 0 : r.allowNullGroup) ?? "") !== (((u = t.primaryGrouping) == null ? void 0 : u.allowNullGroup) ?? "") || (((d = e.secondaryGrouping) == null ? void 0 : d.allowNullGroup) ?? "") !== (((m = t.secondaryGrouping) == null ? void 0 : m.allowNullGroup) ?? "") || e.facetBy.some((y, f) => {
98
+ var o, s, i, h, r, u, d, m;
99
+ return e.chartSettings.yAxis.scale !== t.chartSettings.yAxis.scale || (((o = e.primaryGrouping) == null ? void 0 : o.columnName.value) ?? "") !== (((s = t.primaryGrouping) == null ? void 0 : s.columnName.value) ?? "") || (((i = e.secondaryGrouping) == null ? void 0 : i.columnName.value) ?? "") !== (((h = t.secondaryGrouping) == null ? void 0 : h.columnName.value) ?? "") || (((r = e.primaryGrouping) == null ? void 0 : r.allowNullGroup) ?? "") !== (((u = t.primaryGrouping) == null ? void 0 : u.allowNullGroup) ?? "") || (((d = e.secondaryGrouping) == null ? void 0 : d.allowNullGroup) ?? "") !== (((m = t.secondaryGrouping) == null ? void 0 : m.allowNullGroup) ?? "") || e.facetBy.some((g, f) => {
99
100
  var p;
100
- return y.value !== ((p = t.facetBy[f]) == null ? void 0 : p.value);
101
- }) || e.layers.length !== t.layers.length || e.layers.some((y, f) => !y.isEqualForCalculation(t.layers[f]));
101
+ return g.value !== ((p = t.facetBy[f]) == null ? void 0 : p.value);
102
+ }) || e.layers.length !== t.layers.length || e.layers.some((g, f) => !g.isEqualForCalculation(t.layers[f]));
102
103
  }
103
104
  _needUpdateCalculatedDataByData(e, t) {
104
- const n = Object.keys(e.data), s = Object.keys(t.data);
105
- return e.id !== t.id || n.length !== s.length || n.some((i) => {
106
- var c;
107
- return e.data[i].length !== ((c = t.data[i]) == null ? void 0 : c.length);
105
+ const o = Object.keys(e.data), s = Object.keys(t.data);
106
+ return e.id !== t.id || o.length !== s.length || o.some((i) => {
107
+ var h;
108
+ return e.data[i].length !== ((h = t.data[i]) == null ? void 0 : h.length);
108
109
  });
109
110
  }
110
111
  _updateData() {
111
- const { chartSettings: e, y: t, keyColumn: n, facetBy: s, layers: i, facetSettings: c } = this.settings, { yAxis: r } = e, u = this.data.getColumn(t.value).every((a) => a === null || !(Number(a) < 0)), d = G(this.data, this.settings.primaryGrouping), m = G(this.data, this.settings.secondaryGrouping), y = s.map((a) => a.value), f = i.some((a) => a.type === "logo" || a.type === "bar");
112
+ const { chartSettings: e, y: t, keyColumn: o, facetBy: s, layers: i, facetSettings: h } = this.settings, { yAxis: r } = e, u = this.data.getColumn(t.value).every((a) => a === null || !(Number(a) < 0)), d = G(this.data, this.settings.primaryGrouping), m = G(this.data, this.settings.secondaryGrouping), g = s.map((a) => a.value), f = i.some((a) => a.type === "logo" || a.type === "bar");
112
113
  if (!f && d.keys.length > w)
113
114
  throw Error(`Too many primary groups (${d.keys.length})`);
114
115
  if (!f && m.keys.length > w)
115
116
  throw Error(`Too many secondary groups (${m.keys.length})`);
116
- const p = s.length ? _(
117
+ const p = s.length ? v(
117
118
  s.map((a) => {
118
- var g;
119
- return S(this.data, a, (g = c == null ? void 0 : c.order) == null ? void 0 : g[a.value]);
119
+ var y;
120
+ return S(this.data, a, (y = h == null ? void 0 : h.order) == null ? void 0 : y[a.value]);
120
121
  })
121
122
  ) : [[C]];
122
123
  if (p.length > U)
123
124
  throw Error(`Too many facets (${p.length})`);
124
- this.data.setGrouping([...y, d.value, m.value]);
125
- const h = {
125
+ this.data.setGrouping([...g, d.value, m.value]);
126
+ const c = {
126
127
  facet: p,
127
128
  primary: d.value !== null ? d.keys : [C],
128
129
  secondary: m.value !== null ? m.keys : [C]
129
- }, b = h.facet.reduce((a, g) => (a[v(g)] = h.primary.filter(
130
- (A) => this.data.getRowsByGrouping([...g, A]).length > 0
131
- ).map(String), a), {}), N = i.filter((a) => !(a instanceof L)).map((a) => {
130
+ }, k = c.facet.reduce((a, y) => (a[B(y)] = c.primary.filter(
131
+ (A) => this.data.getRowsByGrouping([...y, A]).length > 0
132
+ ).map(String), a), {}), b = i.filter((a) => !(a instanceof L)).map((a) => {
132
133
  if (a instanceof O)
133
- return J(a, h, this.data, t, n, r);
134
+ return Q(a, c, this.data, t, o, r);
134
135
  if (a instanceof I)
135
- return Q(a, h, this.data, t, r);
136
+ return W(a, c, this.data, t, r);
136
137
  if (a instanceof F)
137
- return Y(a, h, this.data, t, r, n);
138
+ return Z(a, c, this.data, t, r, o);
138
139
  if (a instanceof V)
139
- return Z(a, h, this.data, t, r);
140
+ return tt(a, c, this.data, t, r);
140
141
  if (a instanceof $)
141
- return tt(a, h, this.data, t, r);
142
+ return at(a, c, this.data, t, r);
142
143
  if (a instanceof j)
143
- return at(a, h, this.data, t, r);
144
+ return et(a, c, this.data, t, r);
144
145
  if (a instanceof H)
145
- return et(a, h, this.data, t);
146
+ return rt(a, c, this.data, t);
146
147
  if (a instanceof M)
147
- return rt(a, h, this.data, t, r);
148
+ return ot(a, c, this.data, t);
148
149
  if (a instanceof X)
149
- return nt(a, h, this.data, t, r);
150
+ return nt(a, c, this.data, t, r);
150
151
  if (a instanceof q)
151
- return W(a, h, this.data, t, r);
152
+ return st(a, c, this.data, t, r);
152
153
  if (a instanceof z)
153
- return ot(a, h, this.data, t);
154
+ return Y(a, c, this.data, t, r);
155
+ if (a instanceof J)
156
+ return it(a, c, this.data, t);
154
157
  throw new Error("Unknown layer type");
155
- }), k = i.filter((a) => a instanceof L).map((a) => {
158
+ }), N = i.filter((a) => a instanceof L).map((a) => {
156
159
  if (d.value === null)
157
160
  throw new Error("Cannot calculate p-value without data grouping");
158
- return st(a, h.facet, h.primary, t, this.data);
161
+ return lt(a, c.facet, c.primary, t, this.data);
159
162
  });
160
163
  this.calculatedData = {
161
- layersData: N,
162
- statsLayersData: k,
164
+ layersData: b,
165
+ statsLayersData: N,
163
166
  primaryGrouping: d,
164
167
  secondaryGrouping: m,
165
168
  facetKeyLists: p,
166
- nonEmptyGroupsByFacets: b,
169
+ nonEmptyGroupsByFacets: k,
167
170
  onlyPositive: u
168
171
  };
169
172
  }
170
173
  _updateAesInData() {
171
174
  if (this.calculatedData === null)
172
175
  return;
173
- const { layers: e, facetBy: t, primaryGrouping: n, secondaryGrouping: s, facetSettings: i } = this.settings, c = e.filter((r) => !(r instanceof L));
174
- for (let r = 0; r < c.length; r++) {
175
- const u = c[r];
176
+ const { layers: e, facetBy: t, primaryGrouping: o, secondaryGrouping: s, facetSettings: i } = this.settings, h = e.filter((r) => !(r instanceof L));
177
+ for (let r = 0; r < h.length; r++) {
178
+ const u = h[r];
176
179
  "aes" in u && (this.calculatedData.layersData[r].aes = u.aes);
177
180
  }
178
- this.calculatedData.primaryGrouping = G(this.data, n), this.calculatedData.secondaryGrouping = G(this.data, s), this.calculatedData.facetKeyLists = t.length ? _(
181
+ this.calculatedData.primaryGrouping = G(this.data, o), this.calculatedData.secondaryGrouping = G(this.data, s), this.calculatedData.facetKeyLists = t.length ? v(
179
182
  t.map((r) => {
180
183
  var u;
181
184
  return S(this.data, r, (u = i == null ? void 0 : i.order) == null ? void 0 : u[r.value]);
@@ -185,7 +188,7 @@ class bt extends T {
185
188
  _updateChart() {
186
189
  if (!this.calculatedData)
187
190
  return;
188
- const { id: e, chartSettings: t, keyColumn: n, facetSettings: s } = this.settings, i = this.calculatedData.facetKeyLists.map(v), c = this.calculatedData.facetKeyLists.map((r) => r.map((u) => u === C ? "null" : u));
191
+ const { id: e, chartSettings: t, keyColumn: o, facetSettings: s } = this.settings, i = this.calculatedData.facetKeyLists.map(B), h = this.calculatedData.facetKeyLists.map((r) => r.map((u) => u === C ? "null" : u));
189
192
  this.chartRenderer.render(
190
193
  this.data,
191
194
  e,
@@ -194,10 +197,10 @@ class bt extends T {
194
197
  this.calculatedData.secondaryGrouping,
195
198
  s,
196
199
  i,
197
- c,
200
+ h,
198
201
  this.calculatedData.layersData,
199
202
  this.calculatedData.statsLayersData,
200
- n,
203
+ o,
201
204
  this.calculatedData.nonEmptyGroupsByFacets,
202
205
  this.calculatedData.onlyPositive,
203
206
  this.onTooltipHintSwitch
@@ -205,6 +208,6 @@ class bt extends T {
205
208
  }
206
209
  }
207
210
  export {
208
- bt as ChartDiscrete
211
+ At as ChartDiscrete
209
212
  };
210
213
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/discrete/index.ts"],"sourcesContent":["import { intersection } from 'lodash';\nimport { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame, GroupKey } from '../DataFrame';\nimport { NO_GROUPED } from '../DataFrame';\nimport type { Category, ColumnName, DataValue, DiscreteEventHandlers, DiscreteSettings, GroupingData } from '../types';\nimport ChartRenderer from './ChartRenderer';\nimport { MAX_FACETS_COUNT, MAX_GROUPS_COUNT } from './constants';\nimport {\n BarLayer,\n BinnedDotsLayer,\n BoxLayer,\n DiscreteSettingsImpl,\n DotLayer,\n ErrorBarLayer,\n LineLayer,\n LogoPlotLayer,\n PairedPointsLayer,\n SinaLayer,\n StackedBarLayer,\n StatLayer,\n ViolinLayer,\n} from './DiscreteSettingsImpl';\nimport {\n getBarsData,\n getBinnedDotsData,\n getBoxesData,\n getDotsData,\n getErrorBarsData,\n getLinesData,\n getPairedPointsData,\n getSinaData,\n getStackedBarsData,\n getStatsData,\n getViolinsData,\n} from './layers';\nimport { getLogoData } from './layers/logo';\nimport type { LayerData, StatsData } from './layers/types';\nimport { getFacetStringKey } from './utils/getFacetStringKey';\n\nfunction getGroupingKeys(data: DataFrame, column: ColumnName, order: DataValue[] | null = null) {\n const groupingColumn = column.value;\n const availableKeys = data.getColumnCategories(groupingColumn);\n return intersection(order ?? availableKeys, availableKeys).map(String);\n}\n\n// all combinations with 1 key from each list\nfunction getKeysCombinations(keysLists: string[][]) {\n if (!keysLists.length) {\n return [];\n }\n let result: string[][] = [[]];\n keysLists.forEach(keys => {\n const nextResult: string[][] = [];\n keys.forEach(key => {\n nextResult.push(...result.map(resultItem => [...resultItem, key]));\n });\n result = nextResult;\n });\n return result;\n}\n\nfunction getGroupingData(\n data: DataFrame,\n grouping: DiscreteSettingsImpl['primaryGrouping' | 'secondaryGrouping']\n): GroupingData {\n if (!grouping) {\n return {\n keys: ['null'],\n value: null,\n label: '',\n valueLabels: {null: ''},\n inheritedAes: null,\n };\n }\n\n const groupingColumnId = grouping.columnName.value;\n const groupingColumnLabelId = grouping.columnName.valueLabels;\n const categories = data.getColumnCategories(groupingColumnId, false);\n const getValueLabel = (category: Category) => {\n return groupingColumnLabelId \n ? String(\n data.getColumnValue(\n groupingColumnLabelId,\n data.getColumnCategoryRowIndex(groupingColumnId, category)\n )\n )\n : category;\n };\n \n const keys = data.getColumnCategories(groupingColumnId, !grouping.allowNullGroup);\n const orderedKeys = grouping.order === undefined ? keys : intersection(grouping.order.map(String), keys);\n\n return {\n keys: orderedKeys,\n value: groupingColumnId,\n label: grouping.columnName.label ?? groupingColumnId,\n valueLabels: categories.reduce((res: Record<string, string>, category: Category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {}),\n inheritedAes: grouping.inheritedAes ?? null,\n };\n}\n\nexport class ChartDiscrete extends AbstractChart {\n settings: DiscreteSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n layersData: LayerData[];\n statsLayersData: StatsData[];\n primaryGrouping: GroupingData;\n secondaryGrouping: GroupingData;\n facetKeyLists: GroupKey[][];\n nonEmptyGroupsByFacets: Record<string, string[]>;\n onlyPositive: boolean;\n } | null = null;\n\n constructor(data: DataFrame, settings: DiscreteSettings, eventHandlers?: DiscreteEventHandlers) {\n super(data, settings);\n\n this.settings = new DiscreteSettingsImpl(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: DiscreteSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DiscreteSettingsImpl(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 discrete');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DiscreteSettingsImpl, settings: DiscreteSettingsImpl) {\n return (\n prevSettings.chartSettings.yAxis.scale !== settings.chartSettings.yAxis.scale ||\n (prevSettings.primaryGrouping?.columnName.value ?? '') !==\n (settings.primaryGrouping?.columnName.value ?? '') ||\n (prevSettings.secondaryGrouping?.columnName.value ?? '') !==\n (settings.secondaryGrouping?.columnName.value ?? '') ||\n (prevSettings.primaryGrouping?.allowNullGroup ?? '') !==\n (settings.primaryGrouping?.allowNullGroup ?? '') ||\n (prevSettings.secondaryGrouping?.allowNullGroup ?? '') !==\n (settings.secondaryGrouping?.allowNullGroup ?? '') ||\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => !l.isEqualForCalculation(settings.layers[idx] as typeof l))\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 {chartSettings, y, keyColumn, facetBy, layers, facetSettings} = this.settings;\n const {yAxis} = chartSettings;\n\n const onlyPositive = this.data.getColumn(y.value).every(v => {\n return v === null || !(Number(v) < 0);\n });\n // console.info('only positive Y:', onlyPositive);\n\n const primaryGrouping = getGroupingData(this.data, this.settings.primaryGrouping);\n const secondaryGrouping = getGroupingData(this.data, this.settings.secondaryGrouping);\n const facetGroupingValues = facetBy.map(column => column.value);\n const hasLogoOrBarLayer = layers.some(l => l.type === 'logo' || l.type === 'bar');\n\n if (!hasLogoOrBarLayer && primaryGrouping.keys.length > MAX_GROUPS_COUNT) {\n throw Error(`Too many primary groups (${primaryGrouping.keys.length})`);\n }\n if (!hasLogoOrBarLayer && secondaryGrouping.keys.length > MAX_GROUPS_COUNT) {\n throw Error(`Too many secondary groups (${secondaryGrouping.keys.length})`);\n }\n\n // if facet created by more than 1 data column facet key contains all of them, and all keys are used in data grouping;\n // after data preparing we need only complex keys from concatenated strings\n const facetKeyLists:(GroupKey)[][] = facetBy.length\n ? getKeysCombinations(\n facetBy.map(column => getGroupingKeys(this.data, column, facetSettings?.order?.[column.value]))\n )\n : [[NO_GROUPED]];\n\n if (facetKeyLists.length > MAX_FACETS_COUNT) {\n throw Error(`Too many facets (${facetKeyLists.length})`);\n }\n this.data.setGrouping([...facetGroupingValues, primaryGrouping.value, secondaryGrouping.value]);\n const groupingKeys = {\n facet: facetKeyLists,\n primary: (primaryGrouping.value !== null ? primaryGrouping.keys : [NO_GROUPED]) as GroupKey[],\n secondary: (secondaryGrouping.value !== null ? secondaryGrouping.keys : [NO_GROUPED]) as GroupKey[],\n };\n\n const nonEmptyGroupsByFacets = groupingKeys.facet.reduce((res: Record<string, string[]>, facetKey) => {\n res[getFacetStringKey(facetKey)] = groupingKeys.primary.filter(\n primaryKey => this.data.getRowsByGrouping([...facetKey, primaryKey]).length > 0\n ).map(String);\n return res;\n }, {});\n\n const layersData = layers\n .filter(layer => !(layer instanceof StatLayer))\n .map(layer => {\n if (layer instanceof BoxLayer) {\n return getBoxesData(layer, groupingKeys, this.data, y, keyColumn, yAxis);\n }\n if (layer instanceof ViolinLayer) {\n return getViolinsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof DotLayer) {\n return getDotsData(layer, groupingKeys, this.data, y, yAxis, keyColumn);\n }\n if (layer instanceof LineLayer) {\n return getLinesData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof ErrorBarLayer) {\n return getErrorBarsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof BarLayer) {\n return getBarsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof StackedBarLayer) {\n return getStackedBarsData(layer, groupingKeys, this.data, y);\n }\n if (layer instanceof BinnedDotsLayer) {\n return getBinnedDotsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof PairedPointsLayer) {\n return getPairedPointsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof SinaLayer) {\n return getSinaData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof LogoPlotLayer) {\n return getLogoData(layer, groupingKeys, this.data, y);\n }\n throw new Error('Unknown layer type');\n });\n const statsLayersData = layers\n .filter(layer => layer instanceof StatLayer)\n .map(layer => {\n if (primaryGrouping.value === null) {\n throw new Error('Cannot calculate p-value without data grouping');\n }\n return getStatsData(layer as StatLayer, groupingKeys.facet, groupingKeys.primary, y, this.data);\n });\n this.calculatedData = {\n layersData,\n statsLayersData,\n primaryGrouping,\n secondaryGrouping,\n facetKeyLists,\n nonEmptyGroupsByFacets,\n onlyPositive,\n };\n }\n\n _updateAesInData() {\n if (this.calculatedData === null) {\n return;\n }\n const {layers, facetBy, primaryGrouping, secondaryGrouping, facetSettings} = this.settings;\n\n // updating aes in layers (except for stat layers with p-value), layers data is not recalculating\n const noStatLayers = layers.filter(layer => !(layer instanceof StatLayer));\n for (let i = 0; i < noStatLayers.length; i++) {\n const layer = noStatLayers[i];\n if ('aes' in layer) {\n this.calculatedData.layersData[i].aes = layer.aes;\n }\n }\n\n // updating grouping to update linked aes\n this.calculatedData.primaryGrouping = getGroupingData(this.data, primaryGrouping);\n this.calculatedData.secondaryGrouping = getGroupingData(this.data, secondaryGrouping);\n\n // updating for possibly changed facetSettings.order\n this.calculatedData.facetKeyLists = facetBy.length\n ? getKeysCombinations(\n facetBy.map(column => getGroupingKeys(this.data, column, facetSettings?.order?.[column.value]))\n )\n : [[NO_GROUPED]];\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, keyColumn, facetSettings} = this.settings;\n\n const facetKeys = this.calculatedData.facetKeyLists.map(getFacetStringKey);\n const facetLabels = this.calculatedData.facetKeyLists.map(v => v.map(v => v === NO_GROUPED ? 'null' : v)) as string[][];\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n this.calculatedData.primaryGrouping,\n this.calculatedData.secondaryGrouping,\n facetSettings,\n facetKeys,\n facetLabels,\n this.calculatedData.layersData,\n this.calculatedData.statsLayersData,\n keyColumn,\n this.calculatedData.nonEmptyGroupsByFacets,\n this.calculatedData.onlyPositive,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getGroupingKeys","data","column","order","groupingColumn","availableKeys","intersection","getKeysCombinations","keysLists","result","keys","nextResult","key","resultItem","getGroupingData","grouping","groupingColumnId","groupingColumnLabelId","categories","getValueLabel","category","res","ChartDiscrete","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","DiscreteSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","_a","_b","_c","_d","_e","_f","_g","_h","el","idx","l","prevData","prevKeys","chartSettings","y","keyColumn","facetBy","layers","facetSettings","yAxis","onlyPositive","v","primaryGrouping","secondaryGrouping","facetGroupingValues","hasLogoOrBarLayer","MAX_GROUPS_COUNT","facetKeyLists","NO_GROUPED","MAX_FACETS_COUNT","groupingKeys","nonEmptyGroupsByFacets","facetKey","getFacetStringKey","primaryKey","layersData","layer","StatLayer","BoxLayer","getBoxesData","ViolinLayer","getViolinsData","DotLayer","getDotsData","LineLayer","getLinesData","ErrorBarLayer","getErrorBarsData","BarLayer","getBarsData","StackedBarLayer","getStackedBarsData","BinnedDotsLayer","getBinnedDotsData","PairedPointsLayer","getPairedPointsData","SinaLayer","getSinaData","LogoPlotLayer","getLogoData","statsLayersData","getStatsData","noStatLayers","i","id","facetKeys","facetLabels"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/discrete/index.ts"],"sourcesContent":["import { intersection } from 'lodash';\nimport { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame, GroupKey } from '../DataFrame';\nimport { NO_GROUPED } from '../DataFrame';\nimport type { Category, ColumnName, DataValue, DiscreteEventHandlers, DiscreteSettings, GroupingData } from '../types';\nimport ChartRenderer from './ChartRenderer';\nimport { MAX_FACETS_COUNT, MAX_GROUPS_COUNT } from './constants';\nimport {\n BarLayer,\n BinnedDotsLayer,\n BoxLayer,\n DiscreteSettingsImpl,\n DotLayer,\n ErrorBarLayer,\n LineLayer,\n LogoPlotLayer,\n PairedPointsLayer,\n SinaLayer, StackedAreaLayer,\n StackedBarLayer,\n StatLayer,\n ViolinLayer,\n} from './DiscreteSettingsImpl';\nimport {\n getBarsData,\n getBinnedDotsData,\n getBoxesData,\n getDotsData,\n getErrorBarsData,\n getLinesData,\n getPairedPointsData,\n getSinaData,\n getStackedBarsData,\n getStatsData,\n getViolinsData,\n} from './layers';\nimport { getLogoData } from './layers/logo';\nimport {getStackedAreaData} from './layers/stackedArea';\nimport type { LayerData, StatsData } from './layers/types';\nimport { getFacetStringKey } from './utils/getFacetStringKey';\n\nfunction getGroupingKeys(data: DataFrame, column: ColumnName, order: DataValue[] | null = null) {\n const groupingColumn = column.value;\n const availableKeys = data.getColumnCategories(groupingColumn);\n return intersection(order ?? availableKeys, availableKeys).map(String);\n}\n\n// all combinations with 1 key from each list\nfunction getKeysCombinations(keysLists: string[][]) {\n if (!keysLists.length) {\n return [];\n }\n let result: string[][] = [[]];\n keysLists.forEach(keys => {\n const nextResult: string[][] = [];\n keys.forEach(key => {\n nextResult.push(...result.map(resultItem => [...resultItem, key]));\n });\n result = nextResult;\n });\n return result;\n}\n\nfunction getGroupingData(\n data: DataFrame,\n grouping: DiscreteSettingsImpl['primaryGrouping' | 'secondaryGrouping']\n): GroupingData {\n if (!grouping) {\n return {\n keys: ['null'],\n value: null,\n label: '',\n valueLabels: {null: ''},\n inheritedAes: null,\n };\n }\n\n const groupingColumnId = grouping.columnName.value;\n const groupingColumnLabelId = grouping.columnName.valueLabels;\n const categories = data.getColumnCategories(groupingColumnId, false);\n const getValueLabel = (category: Category) => {\n return groupingColumnLabelId \n ? String(\n data.getColumnValue(\n groupingColumnLabelId,\n data.getColumnCategoryRowIndex(groupingColumnId, category)\n )\n )\n : category;\n };\n \n const keys = data.getColumnCategories(groupingColumnId, !grouping.allowNullGroup);\n const orderedKeys = grouping.order === undefined ? keys : intersection(grouping.order.map(String), keys);\n\n return {\n keys: orderedKeys,\n value: groupingColumnId,\n label: grouping.columnName.label ?? groupingColumnId,\n valueLabels: categories.reduce((res: Record<string, string>, category: Category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {}),\n inheritedAes: grouping.inheritedAes ?? null,\n };\n}\n\nexport class ChartDiscrete extends AbstractChart {\n settings: DiscreteSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n layersData: LayerData[];\n statsLayersData: StatsData[];\n primaryGrouping: GroupingData;\n secondaryGrouping: GroupingData;\n facetKeyLists: GroupKey[][];\n nonEmptyGroupsByFacets: Record<string, string[]>;\n onlyPositive: boolean;\n } | null = null;\n\n constructor(data: DataFrame, settings: DiscreteSettings, eventHandlers?: DiscreteEventHandlers) {\n super(data, settings);\n\n this.settings = new DiscreteSettingsImpl(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: DiscreteSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DiscreteSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for discrete');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DiscreteSettingsImpl, settings: DiscreteSettingsImpl) {\n return (\n prevSettings.chartSettings.yAxis.scale !== settings.chartSettings.yAxis.scale ||\n (prevSettings.primaryGrouping?.columnName.value ?? '') !==\n (settings.primaryGrouping?.columnName.value ?? '') ||\n (prevSettings.secondaryGrouping?.columnName.value ?? '') !==\n (settings.secondaryGrouping?.columnName.value ?? '') ||\n (prevSettings.primaryGrouping?.allowNullGroup ?? '') !==\n (settings.primaryGrouping?.allowNullGroup ?? '') ||\n (prevSettings.secondaryGrouping?.allowNullGroup ?? '') !==\n (settings.secondaryGrouping?.allowNullGroup ?? '') ||\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => !l.isEqualForCalculation(settings.layers[idx] as typeof l))\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 {chartSettings, y, keyColumn, facetBy, layers, facetSettings} = this.settings;\n const {yAxis} = chartSettings;\n\n const onlyPositive = this.data.getColumn(y.value).every(v => {\n return v === null || !(Number(v) < 0);\n });\n // console.info('only positive Y:', onlyPositive);\n\n const primaryGrouping = getGroupingData(this.data, this.settings.primaryGrouping);\n const secondaryGrouping = getGroupingData(this.data, this.settings.secondaryGrouping);\n const facetGroupingValues = facetBy.map(column => column.value);\n const hasLogoOrBarLayer = layers.some(l => l.type === 'logo' || l.type === 'bar');\n\n if (!hasLogoOrBarLayer && primaryGrouping.keys.length > MAX_GROUPS_COUNT) {\n throw Error(`Too many primary groups (${primaryGrouping.keys.length})`);\n }\n if (!hasLogoOrBarLayer && secondaryGrouping.keys.length > MAX_GROUPS_COUNT) {\n throw Error(`Too many secondary groups (${secondaryGrouping.keys.length})`);\n }\n\n // if facet created by more than 1 data column facet key contains all of them, and all keys are used in data grouping;\n // after data preparing we need only complex keys from concatenated strings\n const facetKeyLists:(GroupKey)[][] = facetBy.length\n ? getKeysCombinations(\n facetBy.map(column => getGroupingKeys(this.data, column, facetSettings?.order?.[column.value]))\n )\n : [[NO_GROUPED]];\n\n if (facetKeyLists.length > MAX_FACETS_COUNT) {\n throw Error(`Too many facets (${facetKeyLists.length})`);\n }\n this.data.setGrouping([...facetGroupingValues, primaryGrouping.value, secondaryGrouping.value]);\n const groupingKeys = {\n facet: facetKeyLists,\n primary: (primaryGrouping.value !== null ? primaryGrouping.keys : [NO_GROUPED]) as GroupKey[],\n secondary: (secondaryGrouping.value !== null ? secondaryGrouping.keys : [NO_GROUPED]) as GroupKey[],\n };\n\n const nonEmptyGroupsByFacets = groupingKeys.facet.reduce((res: Record<string, string[]>, facetKey) => {\n res[getFacetStringKey(facetKey)] = groupingKeys.primary.filter(\n primaryKey => this.data.getRowsByGrouping([...facetKey, primaryKey]).length > 0\n ).map(String);\n return res;\n }, {});\n\n const layersData = layers\n .filter(layer => !(layer instanceof StatLayer))\n .map(layer => {\n if (layer instanceof BoxLayer) {\n return getBoxesData(layer, groupingKeys, this.data, y, keyColumn, yAxis);\n }\n if (layer instanceof ViolinLayer) {\n return getViolinsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof DotLayer) {\n return getDotsData(layer, groupingKeys, this.data, y, yAxis, keyColumn);\n }\n if (layer instanceof LineLayer) {\n return getLinesData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof ErrorBarLayer) {\n return getErrorBarsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof BarLayer) {\n return getBarsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof StackedBarLayer) {\n return getStackedBarsData(layer, groupingKeys, this.data, y);\n }\n if (layer instanceof StackedAreaLayer) {\n return getStackedAreaData(layer, groupingKeys, this.data, y);\n }\n if (layer instanceof BinnedDotsLayer) {\n return getBinnedDotsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof PairedPointsLayer) {\n return getPairedPointsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof SinaLayer) {\n return getSinaData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof LogoPlotLayer) {\n return getLogoData(layer, groupingKeys, this.data, y);\n }\n throw new Error('Unknown layer type');\n });\n const statsLayersData = layers\n .filter(layer => layer instanceof StatLayer)\n .map(layer => {\n if (primaryGrouping.value === null) {\n throw new Error('Cannot calculate p-value without data grouping');\n }\n return getStatsData(layer as StatLayer, groupingKeys.facet, groupingKeys.primary, y, this.data);\n });\n this.calculatedData = {\n layersData,\n statsLayersData,\n primaryGrouping,\n secondaryGrouping,\n facetKeyLists,\n nonEmptyGroupsByFacets,\n onlyPositive,\n };\n }\n\n _updateAesInData() {\n if (this.calculatedData === null) {\n return;\n }\n const {layers, facetBy, primaryGrouping, secondaryGrouping, facetSettings} = this.settings;\n\n // updating aes in layers (except for stat layers with p-value), layers data is not recalculating\n const noStatLayers = layers.filter(layer => !(layer instanceof StatLayer));\n for (let i = 0; i < noStatLayers.length; i++) {\n const layer = noStatLayers[i];\n if ('aes' in layer) {\n this.calculatedData.layersData[i].aes = layer.aes;\n }\n }\n\n // updating grouping to update linked aes\n this.calculatedData.primaryGrouping = getGroupingData(this.data, primaryGrouping);\n this.calculatedData.secondaryGrouping = getGroupingData(this.data, secondaryGrouping);\n\n // updating for possibly changed facetSettings.order\n this.calculatedData.facetKeyLists = facetBy.length\n ? getKeysCombinations(\n facetBy.map(column => getGroupingKeys(this.data, column, facetSettings?.order?.[column.value]))\n )\n : [[NO_GROUPED]];\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, keyColumn, facetSettings} = this.settings;\n\n const facetKeys = this.calculatedData.facetKeyLists.map(getFacetStringKey);\n const facetLabels = this.calculatedData.facetKeyLists.map(v => v.map(v => v === NO_GROUPED ? 'null' : v)) as string[][];\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n this.calculatedData.primaryGrouping,\n this.calculatedData.secondaryGrouping,\n facetSettings,\n facetKeys,\n facetLabels,\n this.calculatedData.layersData,\n this.calculatedData.statsLayersData,\n keyColumn,\n this.calculatedData.nonEmptyGroupsByFacets,\n this.calculatedData.onlyPositive,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getGroupingKeys","data","column","order","groupingColumn","availableKeys","intersection","getKeysCombinations","keysLists","result","keys","nextResult","key","resultItem","getGroupingData","grouping","groupingColumnId","groupingColumnLabelId","categories","getValueLabel","category","res","ChartDiscrete","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","DiscreteSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","_a","_b","_c","_d","_e","_f","_g","_h","el","idx","l","prevData","prevKeys","chartSettings","y","keyColumn","facetBy","layers","facetSettings","yAxis","onlyPositive","v","primaryGrouping","secondaryGrouping","facetGroupingValues","hasLogoOrBarLayer","MAX_GROUPS_COUNT","facetKeyLists","NO_GROUPED","MAX_FACETS_COUNT","groupingKeys","nonEmptyGroupsByFacets","facetKey","getFacetStringKey","primaryKey","layersData","layer","StatLayer","BoxLayer","getBoxesData","ViolinLayer","getViolinsData","DotLayer","getDotsData","LineLayer","getLinesData","ErrorBarLayer","getErrorBarsData","BarLayer","getBarsData","StackedBarLayer","getStackedBarsData","StackedAreaLayer","getStackedAreaData","BinnedDotsLayer","getBinnedDotsData","PairedPointsLayer","getPairedPointsData","SinaLayer","getSinaData","LogoPlotLayer","getLogoData","statsLayersData","getStatsData","noStatLayers","i","id","facetKeys","facetLabels"],"mappings":"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"}
@@ -6,6 +6,7 @@ export * from './lines';
6
6
  export * from './errorbars';
7
7
  export * from './bar';
8
8
  export * from './stackedBar';
9
+ export * from './stackedArea';
9
10
  export * from './binnedDots';
10
11
  export * from './pairedPoints';
11
12
  export * from './logo';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { DataFrame, GroupKey } from '../../DataFrame';
2
+ import { ColumnName } from '../../types';
3
+ import { StackedAreaLayer } from '../DiscreteSettingsImpl';
4
+ import { StackedAreaData } from './types';
5
+ export declare function getStackedAreaData(layer: StackedAreaLayer, groupingKeys: {
6
+ facet: GroupKey[][];
7
+ primary: GroupKey[];
8
+ secondary: GroupKey[];
9
+ }, data: DataFrame, y: ColumnName): StackedAreaData;
10
+ //# sourceMappingURL=stackedArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stackedArea.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/stackedArea.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,yBAAyB,CAAC;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,gBAAgB,EACvB,YAAY,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACxB,EACD,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,UAAU,GACd,eAAe,CAWjB"}
@@ -0,0 +1,17 @@
1
+ import { getStackedBarsData as r } from "./stackedBar.js";
2
+ function m(a, e, s, o) {
3
+ const t = r(a, e, s, o);
4
+ return {
5
+ type: "stackedArea",
6
+ geoms: t.geoms,
7
+ meta: {
8
+ ...t.meta,
9
+ showBars: a.showBars
10
+ },
11
+ aes: a.aes
12
+ };
13
+ }
14
+ export {
15
+ m as getStackedAreaData
16
+ };
17
+ //# sourceMappingURL=stackedArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stackedArea.js","sources":["../../../src/discrete/layers/stackedArea.ts"],"sourcesContent":["import type { DataFrame, GroupKey } from '../../DataFrame';\nimport type {ColumnName} from '../../types';\nimport type { StackedAreaLayer, StackedBarLayer } from '../DiscreteSettingsImpl';\nimport { getStackedBarsData } from './stackedBar';\nimport type { StackedAreaData } from './types';\n\nexport function getStackedAreaData(\n layer: StackedAreaLayer,\n groupingKeys: {\n facet: GroupKey[][],\n primary: GroupKey[],\n secondary: GroupKey[]\n },\n data: DataFrame,\n y: ColumnName,\n): StackedAreaData {\n const stackedBars = getStackedBarsData(layer as unknown as StackedBarLayer, groupingKeys, data, y);\n return {\n type: 'stackedArea',\n geoms: stackedBars.geoms,\n meta: {\n ...stackedBars.meta,\n showBars: layer.showBars\n },\n aes: layer.aes,\n };\n}\n"],"names":["getStackedAreaData","layer","groupingKeys","data","y","stackedBars","getStackedBarsData"],"mappings":";AAMO,SAASA,EACZC,GACAC,GAKAC,GACAC,GACe;AACf,QAAMC,IAAcC,EAAmBL,GAAqCC,GAAcC,GAAMC,CAAC;AACjG,SAAO;AAAA,IACH,MAAM;AAAA,IACN,OAAOC,EAAY;AAAA,IACnB,MAAM;AAAA,MACF,GAAGA,EAAY;AAAA,MACf,UAAUJ,EAAM;AAAA,IAAA;AAAA,IAEpB,KAAKA,EAAM;AAAA,EAAA;AAEnB;"}
@@ -1,5 +1,5 @@
1
1
  import { Bar, BinnedDots, Box, DotsGroup, ErrorBar, Line, LogoStack, PairedPoints, Sina, StackedBar, Violin } from './index';
2
- import { BarLayer, BinnedDotsLayer, BoxLayer, DiscreteLayer, DotLayer, ErrorBarLayer, LineLayer, LogoPlotLayer, PairedPointsLayer, SinaLayer, StackedBarLayer, StatLayer, ViolinLayer } from '../DiscreteSettingsImpl';
2
+ import { BarLayer, BinnedDotsLayer, BoxLayer, DiscreteLayer, DotLayer, ErrorBarLayer, LineLayer, LogoPlotLayer, PairedPointsLayer, SinaLayer, StackedAreaLayer, StackedBarLayer, StatLayer, ViolinLayer } from '../DiscreteSettingsImpl';
3
3
  export type Geom = Box | Violin | DotsGroup | Line | ErrorBar | Bar | StackedBar | BinnedDots | PairedPoints | Sina;
4
4
  export interface LayerData {
5
5
  type: string;
@@ -81,6 +81,17 @@ export interface StackedBarsData extends LayerData {
81
81
  };
82
82
  aes: StackedBarLayer['aes'];
83
83
  }
84
+ export interface StackedAreaData extends LayerData {
85
+ type: 'stackedArea';
86
+ geoms: StackedBarsData['geoms'];
87
+ meta: {
88
+ minY: number;
89
+ maxY: number;
90
+ normalize: boolean;
91
+ showBars: boolean;
92
+ };
93
+ aes: StackedAreaLayer['aes'];
94
+ }
84
95
  export interface LogoPlotData extends LayerData {
85
96
  type: 'logo';
86
97
  geoms: Record<string, LogoStack[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/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"}