@milaboratories/miplots4 1.0.174 → 1.0.176

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 (100) hide show
  1. package/dist/DataFrame.d.ts +1 -1
  2. package/dist/DataFrame.d.ts.map +1 -1
  3. package/dist/DataFrame.js +52 -51
  4. package/dist/DataFrame.js.map +1 -1
  5. package/dist/bubble/BubbleSettingsImpl.d.ts +3 -0
  6. package/dist/bubble/BubbleSettingsImpl.d.ts.map +1 -1
  7. package/dist/bubble/BubbleSettingsImpl.js +16 -16
  8. package/dist/bubble/BubbleSettingsImpl.js.map +1 -1
  9. package/dist/bubble/getGroupedCellsData.d.ts +1 -1
  10. package/dist/bubble/getGroupedCellsData.d.ts.map +1 -1
  11. package/dist/bubble/getGroupedCellsData.js +12 -11
  12. package/dist/bubble/getGroupedCellsData.js.map +1 -1
  13. package/dist/bubble/index.d.ts.map +1 -1
  14. package/dist/bubble/index.js +61 -69
  15. package/dist/bubble/index.js.map +1 -1
  16. package/dist/constants.js +9 -11
  17. package/dist/constants.js.map +1 -1
  18. package/dist/discrete/DiscreteSettingsImpl.d.ts +2 -1
  19. package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -1
  20. package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  21. package/dist/discrete/components/layers/StackedAreaElement.js +33 -33
  22. package/dist/discrete/components/layers/StackedAreaElement.js.map +1 -1
  23. package/dist/discrete/index.d.ts.map +1 -1
  24. package/dist/discrete/index.js +137 -157
  25. package/dist/discrete/index.js.map +1 -1
  26. package/dist/heatmap/HeatmapSettingsImpl.d.ts +1 -0
  27. package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -1
  28. package/dist/heatmap/HeatmapSettingsImpl.js +29 -28
  29. package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
  30. package/dist/heatmap/fillCellsData.d.ts +1 -1
  31. package/dist/heatmap/fillCellsData.d.ts.map +1 -1
  32. package/dist/heatmap/fillCellsData.js +172 -160
  33. package/dist/heatmap/fillCellsData.js.map +1 -1
  34. package/dist/heatmap/getCells.d.ts +1 -1
  35. package/dist/heatmap/getCells.d.ts.map +1 -1
  36. package/dist/heatmap/getCells.js +10 -9
  37. package/dist/heatmap/getCells.js.map +1 -1
  38. package/dist/heatmap/index.d.ts.map +1 -1
  39. package/dist/heatmap/index.js +95 -102
  40. package/dist/heatmap/index.js.map +1 -1
  41. package/dist/histogram/HistogramSettingsImpl.d.ts +1 -0
  42. package/dist/histogram/HistogramSettingsImpl.d.ts.map +1 -1
  43. package/dist/histogram/HistogramSettingsImpl.js +43 -43
  44. package/dist/histogram/HistogramSettingsImpl.js.map +1 -1
  45. package/dist/histogram/getHistogramData.d.ts +2 -2
  46. package/dist/histogram/getHistogramData.d.ts.map +1 -1
  47. package/dist/histogram/getHistogramData.js +47 -46
  48. package/dist/histogram/getHistogramData.js.map +1 -1
  49. package/dist/histogram/index.d.ts +0 -1
  50. package/dist/histogram/index.d.ts.map +1 -1
  51. package/dist/histogram/index.js +88 -89
  52. package/dist/histogram/index.js.map +1 -1
  53. package/dist/index.d.ts +3 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +8 -4
  56. package/dist/index.js.map +1 -1
  57. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +2 -0
  58. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -1
  59. package/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  60. package/dist/scatterplot/dots.d.ts +2 -2
  61. package/dist/scatterplot/dots.d.ts.map +1 -1
  62. package/dist/scatterplot/dots.js +17 -16
  63. package/dist/scatterplot/dots.js.map +1 -1
  64. package/dist/scatterplot/index.d.ts +0 -1
  65. package/dist/scatterplot/index.d.ts.map +1 -1
  66. package/dist/scatterplot/index.js +92 -101
  67. package/dist/scatterplot/index.js.map +1 -1
  68. package/dist/scatterplot/utils/createLegendInfo.d.ts.map +1 -1
  69. package/dist/scatterplot/utils/createLegendInfo.js +1 -1
  70. package/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  71. package/dist/types/bubble.d.ts +5 -0
  72. package/dist/types/bubble.d.ts.map +1 -1
  73. package/dist/types/bubble.js +19 -18
  74. package/dist/types/bubble.js.map +1 -1
  75. package/dist/types/dendro.d.ts +5 -0
  76. package/dist/types/dendro.d.ts.map +1 -1
  77. package/dist/types/dendro.js +10 -9
  78. package/dist/types/dendro.js.map +1 -1
  79. package/dist/types/discrete.d.ts +8 -5
  80. package/dist/types/discrete.d.ts.map +1 -1
  81. package/dist/types/discrete.js +12 -11
  82. package/dist/types/discrete.js.map +1 -1
  83. package/dist/types/heatmap.d.ts +5 -0
  84. package/dist/types/heatmap.d.ts.map +1 -1
  85. package/dist/types/heatmap.js +2 -1
  86. package/dist/types/heatmap.js.map +1 -1
  87. package/dist/types/histogram.d.ts +5 -0
  88. package/dist/types/histogram.d.ts.map +1 -1
  89. package/dist/types/histogram.js +43 -42
  90. package/dist/types/histogram.js.map +1 -1
  91. package/dist/types/scatterplot.d.ts +6 -0
  92. package/dist/types/scatterplot.d.ts.map +1 -1
  93. package/dist/types/scatterplot.js +21 -19
  94. package/dist/types/scatterplot.js.map +1 -1
  95. package/dist/utils/getFacetKeysFromValueLists.d.ts +6 -0
  96. package/dist/utils/getFacetKeysFromValueLists.d.ts.map +1 -0
  97. package/dist/utils/getFacetKeysFromValueLists.js +9 -0
  98. package/dist/utils/getFacetKeysFromValueLists.js.map +1 -0
  99. package/dist/utils/getPointShape.d.ts +1 -1
  100. package/package.json +1 -1
@@ -31,7 +31,7 @@ export declare class DataFrame {
31
31
  getColumnCategories(key: string, ignoreNull?: boolean): Category[];
32
32
  getColumnCategoryRowIndex(key: string, value: Category): RowIndex;
33
33
  private computeColumnCategories;
34
- setGrouping(groupingColumnIds: (string | null)[]): void;
34
+ setGrouping(groupingColumnIds: (string | null)[], groupingKeys?: (GroupKey[] | undefined)[]): void;
35
35
  getColumnByGrouping(groupingKeys: GroupKey[], keyYColumn: string): number[];
36
36
  getRowsByGrouping(groupingKeys: GroupKey[]): Uint32Array;
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataFrame.d.ts","sourceRoot":"","sources":["../src/DataFrame.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGnD,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,EAAE,EAAE,MAAM,CAAA;CACb,CAAA;AACD,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAChD,eAAO,MAAM,UAAU,eAAsB,CAAC;AAC9C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,UAAU,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,KAAK,SAAS,GAAG,MAAM,CACnB,QAAQ,EACR;IACI,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC;CACtB,CACJ,CAAC;AAMF,KAAK,UAAU,GAAG,MAAM,CAAC;AAIzB,qBAAa,SAAS;IAClB,MAAM,CAAC,UAAU,UAAW,SAAS,KAAG,MAAM,CAAkB;IAEhE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IAEjC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAa;IACtE,QAAQ,CAAC,6BAA6B,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAa;IAE3F,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB,MAAM,CAAC,IAAI,CAAE,IAAI,EAAE,OAAO,GAAE,SAAS;gBAUzB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAQzD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE;IAInC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAIrD,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ;IAI5D,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,QAAQ,EAAE;IAW/D,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ;IAUjE,OAAO,CAAC,uBAAuB;IAiC/B,WAAW,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;IAiChD,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAmB3E,iBAAiB,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,WAAW;CAiB3D"}
1
+ {"version":3,"file":"DataFrame.d.ts","sourceRoot":"","sources":["../src/DataFrame.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGnD,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,EAAE,EAAE,MAAM,CAAA;CACb,CAAA;AACD,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAChD,eAAO,MAAM,UAAU,eAAsB,CAAC;AAC9C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,UAAU,CAAC;AAClD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,KAAK,SAAS,GAAG,MAAM,CACnB,QAAQ,EACR;IACI,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,SAAS,CAAC;CACtB,CACJ,CAAC;AAMF,KAAK,UAAU,GAAG,MAAM,CAAC;AAIzB,qBAAa,SAAS;IAClB,MAAM,CAAC,UAAU,UAAW,SAAS,KAAG,MAAM,CAAkB;IAEhE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IAEjC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAa;IACtE,QAAQ,CAAC,6BAA6B,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAa;IAE3F,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB,MAAM,CAAC,IAAI,CAAE,IAAI,EAAE,OAAO,GAAE,SAAS;gBAUzB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAQzD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE;IAInC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS;IAIrD,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ;IAI5D,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,QAAQ,EAAE;IAW/D,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,QAAQ;IAUjE,OAAO,CAAC,uBAAuB;IAiC/B,WAAW,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,EAAE;IAiC3F,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAmB3E,iBAAiB,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,WAAW;CAiB3D"}
package/dist/DataFrame.js CHANGED
@@ -1,13 +1,13 @@
1
- var w = Object.defineProperty;
2
- var C = (u, e, t) => e in u ? w(u, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : u[e] = t;
3
- var s = (u, e, t) => C(u, typeof e != "symbol" ? e + "" : e, t);
4
- import { l as f } from "./_virtual/lodash.js";
5
- import { exhaustive as x } from "./utils/index.js";
6
- const d = Symbol("noGrouped");
7
- function I(u) {
1
+ var f = Object.defineProperty;
2
+ var x = (u, e, t) => e in u ? f(u, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : u[e] = t;
3
+ var s = (u, e, t) => x(u, typeof e != "symbol" ? e + "" : e, t);
4
+ import { l as I } from "./_virtual/lodash.js";
5
+ import { exhaustive as G } from "./utils/index.js";
6
+ const c = Symbol("noGrouped");
7
+ function E(u) {
8
8
  return "type" in u && u.type === "columns";
9
9
  }
10
- const p = new Uint32Array(0), g = class g {
10
+ const w = new Uint32Array(0), h = class h {
11
11
  constructor(e, t) {
12
12
  s(this, "id");
13
13
  // input data grouped by columns
@@ -21,11 +21,11 @@ const p = new Uint32Array(0), g = class g {
21
21
  this.id = e, this.data = t, this.columnNames = Object.keys(t), this.rowsCount = this.columnNames.length ? t[this.columnNames[0]].length : 0, this.rowIndexes = new Uint32Array(Array.from({ length: this.rowsCount }, (o, r) => r));
22
22
  }
23
23
  static from(e) {
24
- if (e instanceof g)
24
+ if (e instanceof h)
25
25
  return e;
26
- if (I(e))
27
- return new g(e.id, e.values);
28
- x(e, "Unknown input data format");
26
+ if (E(e))
27
+ return new h(e.id, e.values);
28
+ G(e, "Unknown input data format");
29
29
  }
30
30
  getColumn(e) {
31
31
  return this.data[e];
@@ -35,7 +35,7 @@ const p = new Uint32Array(0), g = class g {
35
35
  return (o = this.data[e]) == null ? void 0 : o[t];
36
36
  }
37
37
  getColumnValueCategory(e, t) {
38
- return g.toCategory(this.getColumnValue(e, t));
38
+ return h.toCategory(this.getColumnValue(e, t));
39
39
  }
40
40
  getColumnCategories(e, t = !0) {
41
41
  this.mapColumnCategories.has(e) || this.computeColumnCategories(e);
@@ -52,43 +52,43 @@ const p = new Uint32Array(0), g = class g {
52
52
  computeColumnCategories(e) {
53
53
  if (!this.columnNames.includes(e))
54
54
  throw new Error(`Column ${e} does not exist`);
55
- const t = this.getColumn(e), o = /* @__PURE__ */ new Set(), r = [], i = /* @__PURE__ */ new Map();
56
- let a = -1;
57
- for (let n = 0; n < t.length; n++) {
58
- const h = t[n];
59
- if (o.has(h))
55
+ const t = this.getColumn(e), o = /* @__PURE__ */ new Set(), r = [], n = /* @__PURE__ */ new Map();
56
+ let m = -1;
57
+ for (let a = 0; a < t.length; a++) {
58
+ const i = t[a];
59
+ if (o.has(i))
60
60
  continue;
61
- if (o.add(h), h === null) {
62
- a = n;
61
+ if (o.add(i), i === null) {
62
+ m = a;
63
63
  continue;
64
64
  }
65
- const l = g.toCategory(h);
66
- r.push(l), i.set(l, n);
65
+ const l = h.toCategory(i);
66
+ r.push(l), n.set(l, a);
67
67
  }
68
- a !== -1 && (r.push("null"), i.set("null", a)), this.mapColumnCategories.set(e, r), this.mapColumnCategoriesRowIndexes.set(e, i);
68
+ m !== -1 && (r.push("null"), n.set("null", m)), this.mapColumnCategories.set(e, r), this.mapColumnCategoriesRowIndexes.set(e, n);
69
69
  }
70
- setGrouping(e) {
71
- const t = { grouped: {}, rowIndexes: this.rowIndexes };
72
- let o = [t];
73
- e.forEach((r) => {
74
- const i = r === null ? [d] : this.getColumnCategories(r, !1), a = [];
75
- o.forEach((n) => {
76
- if (r === null)
77
- n.grouped = {
78
- [d]: {
79
- rowIndexes: n.rowIndexes,
70
+ setGrouping(e, t) {
71
+ const o = { grouped: {}, rowIndexes: this.rowIndexes };
72
+ let r = [o];
73
+ e.forEach((n, m) => {
74
+ const a = n === null ? [c] : (t == null ? void 0 : t[m]) ?? this.getColumnCategories(n, !1), i = [];
75
+ r.forEach((l) => {
76
+ if (n === null)
77
+ l.grouped = {
78
+ [c]: {
79
+ rowIndexes: l.rowIndexes,
80
80
  grouped: {}
81
81
  }
82
- }, a.push(n.grouped[d]);
82
+ }, i.push(l.grouped[c]);
83
83
  else {
84
- const h = f.groupBy(n.rowIndexes, (l) => this.getColumnValueCategory(r, l));
85
- n.grouped = i.reduce((l, m) => (l[m] = {
86
- rowIndexes: new Uint32Array(h[m] ?? []),
84
+ const p = I.groupBy(l.rowIndexes, (d) => this.getColumnValueCategory(n, d));
85
+ l.grouped = a.reduce((d, g) => (d[g] = {
86
+ rowIndexes: new Uint32Array(p[g] ?? []),
87
87
  grouped: {}
88
- }, a.push(l[m]), l), {});
88
+ }, i.push(d[g]), d), {});
89
89
  }
90
- }), o = a;
91
- }), this.rowsGrouped = t.grouped;
90
+ }), r = i;
91
+ }), this.rowsGrouped = o.grouped;
92
92
  }
93
93
  // TODO: fix all places where this method is used
94
94
  getColumnByGrouping(e, t) {
@@ -98,31 +98,32 @@ const p = new Uint32Array(0), g = class g {
98
98
  return Array.from(this.rowIndexes).map((r) => Number(this.getColumnValue(t, r)));
99
99
  let o = { grouped: this.rowsGrouped, rowIndexes: this.rowIndexes };
100
100
  return e.forEach((r) => {
101
- const i = o.grouped[r ?? "null"];
102
- if (!i)
101
+ const n = o.grouped[r ?? "null"];
102
+ if (!n)
103
103
  return [];
104
- o = i;
104
+ o = n;
105
105
  }), Array.from(o.rowIndexes).map((r) => Number(this.getColumnValue(t, r)));
106
106
  }
107
107
  // TODO: fix all places where this method is used
108
108
  getRowsByGrouping(e) {
109
109
  if (!this.rowsGrouped)
110
- return p;
110
+ return w;
111
111
  if (!e.length)
112
112
  return this.rowIndexes;
113
113
  let t = { grouped: this.rowsGrouped, rowIndexes: this.rowIndexes };
114
- return e.forEach((o) => {
114
+ for (const o of e) {
115
115
  const r = t.grouped[o];
116
116
  if (!r)
117
- return p;
117
+ return w;
118
118
  t = r;
119
- }), t.rowIndexes;
119
+ }
120
+ return t.rowIndexes;
120
121
  }
121
122
  };
122
- s(g, "toCategory", (e) => String(e));
123
- let c = g;
123
+ s(h, "toCategory", (e) => String(e));
124
+ let C = h;
124
125
  export {
125
- c as DataFrame,
126
- d as NO_GROUPED
126
+ C as DataFrame,
127
+ c as NO_GROUPED
127
128
  };
128
129
  //# sourceMappingURL=DataFrame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataFrame.js","sources":["../src/DataFrame.ts"],"sourcesContent":["import { groupBy } from 'lodash';\nimport type { Category, DataValue } from './types';\nimport { exhaustive } from './utils';\n\nexport type DataByColumns = {\n type: 'columns',\n values: Record<string, DataValue[]>,\n id: string\n}\nexport type DataSet = DataFrame | DataByColumns;\nexport const NO_GROUPED = Symbol('noGrouped');\nexport type GroupKey = string | typeof NO_GROUPED;\nexport type RowIndex = number;\ntype RowsGroup = Record<\n GroupKey,\n {\n rowIndexes: Uint32Array;\n grouped: RowsGroup;\n }\n>;\n\nfunction isDataByColumns (data:DataSet): data is DataByColumns {\n return 'type' in data && data.type === 'columns';\n}\n\ntype ColumnName = string;\n\nconst EMPTY_INDEXES = new Uint32Array(0);\n\nexport class DataFrame {\n static toCategory = (value: DataValue): string => String(value);\n\n readonly id: string;\n // input data grouped by columns\n readonly data: Record<string, DataValue[]>;\n readonly rowsCount: number;\n readonly columnNames: ColumnName[];\n readonly rowIndexes: Uint32Array;\n\n readonly mapColumnCategories: Map<ColumnName, Category[]> = new Map();\n readonly mapColumnCategoriesRowIndexes: Map<ColumnName, Map<Category, number>> = new Map();\n\n rowsGrouped?: RowsGroup;\n\n static from (data: DataSet):DataFrame {\n if (data instanceof DataFrame) {\n return data;\n } else if (isDataByColumns(data)) {\n return new DataFrame(data.id, data.values);\n } else {\n exhaustive(data, 'Unknown input data format');\n }\n }\n\n constructor(id: string, data: Record<string, DataValue[]>) {\n this.id = id;\n this.data = data;\n this.columnNames = Object.keys(data);\n this.rowsCount = this.columnNames.length ? data[this.columnNames[0]].length : 0;\n this.rowIndexes = new Uint32Array(Array.from({length: this.rowsCount}, (_, i) => i));\n }\n\n getColumn(key: string): DataValue[] {\n return this.data[key];\n }\n\n getColumnValue(key: string, index: number): DataValue {\n return this.data[key]?.[index];\n }\n\n getColumnValueCategory(key: string, index: number): Category {\n return DataFrame.toCategory(this.getColumnValue(key, index));\n }\n\n getColumnCategories(key: string, ignoreNull = true): Category[] {\n if (!this.mapColumnCategories.has(key)) {\n this.computeColumnCategories(key);\n }\n\n const categories = this.mapColumnCategories.get(key) ?? [];\n return ignoreNull && categories && categories.length > 0 && categories[categories.length - 1] === 'null'\n ? categories.slice(0, -1) // full copy without null to heavy for large datasets\n : categories; \n }\n\n getColumnCategoryRowIndex(key: string, value: Category): RowIndex {\n const rowIndex = this.mapColumnCategoriesRowIndexes.get(key)?.get(value);\n \n if (rowIndex === undefined) {\n throw new Error(`Category ${value} not found in column ${key}`);\n }\n\n return rowIndex;\n }\n\n private computeColumnCategories(key: ColumnName) {\n if (!this.columnNames.includes(key)) {\n throw new Error(`Column ${key} does not exist`);\n }\n \n const columnData = this.getColumn(key);\n const uniqValues = new Set<DataValue>();\n const categories: string[] = [];\n const categoriesIndexes = new Map<string, number>();\n let nullIdx = -1;\n for (let i = 0; i < columnData.length; i++) {\n const value = columnData[i];\n if (uniqValues.has(value)) {\n continue;\n }\n uniqValues.add(value);\n if (value === null) {\n nullIdx = i;\n continue;\n }\n const category = DataFrame.toCategory(value);\n categories.push(category);\n categoriesIndexes.set(category, i);\n }\n if (nullIdx !== -1) {\n categories.push('null');\n categoriesIndexes.set('null', nullIdx);\n }\n\n this.mapColumnCategories.set(key, categories);\n this.mapColumnCategoriesRowIndexes.set(key, categoriesIndexes);\n }\n\n setGrouping(groupingColumnIds: (string | null)[]) {\n const root = {grouped: {} as RowsGroup, rowIndexes: this.rowIndexes};\n let groups: RowsGroup[keyof RowsGroup][] = [root];\n groupingColumnIds.forEach(column => {\n const keys: GroupKey[] = column === null ? [NO_GROUPED] : this.getColumnCategories(column, false);\n const nextGroups: RowsGroup[keyof RowsGroup][] = [];\n groups.forEach(group => {\n if (column === null) {\n group.grouped = {\n [NO_GROUPED]: {\n rowIndexes: group.rowIndexes,\n grouped: {} as RowsGroup,\n },\n };\n nextGroups.push(group.grouped[NO_GROUPED]);\n } else {\n const groupedBy = groupBy(group.rowIndexes, idx => this.getColumnValueCategory(column, idx));\n group.grouped = keys.reduce((res, key) => {\n res[key] = {\n rowIndexes: new Uint32Array(groupedBy[key as string] ?? []),\n grouped: {} as RowsGroup,\n };\n nextGroups.push(res[key]);\n return res;\n }, {} as RowsGroup);\n }\n });\n groups = nextGroups;\n });\n this.rowsGrouped = root.grouped;\n }\n\n // TODO: fix all places where this method is used\n getColumnByGrouping(groupingKeys: GroupKey[], keyYColumn: string): number[] {\n if (!this.rowsGrouped) {\n return [];\n }\n if (!groupingKeys.length) {\n return Array.from(this.rowIndexes).map(idx => Number(this.getColumnValue(keyYColumn, idx)));\n }\n let result: {grouped: RowsGroup; rowIndexes: Uint32Array} = {grouped: this.rowsGrouped, rowIndexes: this.rowIndexes};\n groupingKeys.forEach(key => {\n const nextGroup = result.grouped[key ?? 'null'];\n if (!nextGroup) {\n return [];\n }\n result = nextGroup;\n });\n return Array.from(result.rowIndexes).map(idx => Number(this.getColumnValue(keyYColumn, idx)));\n }\n\n // TODO: fix all places where this method is used\n getRowsByGrouping(groupingKeys: GroupKey[]): Uint32Array {\n if (!this.rowsGrouped) {\n return EMPTY_INDEXES;\n }\n if (!groupingKeys.length) {\n return this.rowIndexes;\n }\n let result: {grouped: RowsGroup; rowIndexes: Uint32Array} = {grouped: this.rowsGrouped, rowIndexes: this.rowIndexes};\n groupingKeys.forEach(key => {\n const nextGroup = result.grouped[key];\n if (!nextGroup) {\n return EMPTY_INDEXES;\n }\n result = nextGroup;\n });\n return result.rowIndexes;\n }\n}\n"],"names":["NO_GROUPED","isDataByColumns","data","EMPTY_INDEXES","_DataFrame","id","__publicField","_","i","exhaustive","key","index","_a","ignoreNull","categories","value","rowIndex","columnData","uniqValues","categoriesIndexes","nullIdx","category","groupingColumnIds","root","groups","column","keys","nextGroups","group","groupedBy","groupBy","idx","res","groupingKeys","keyYColumn","result","nextGroup","DataFrame"],"mappings":"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"}
1
+ {"version":3,"file":"DataFrame.js","sources":["../src/DataFrame.ts"],"sourcesContent":["import { groupBy } from 'lodash';\nimport type { Category, DataValue } from './types';\nimport { exhaustive } from './utils';\n\nexport type DataByColumns = {\n type: 'columns',\n values: Record<string, DataValue[]>,\n id: string\n}\nexport type DataSet = DataFrame | DataByColumns;\nexport const NO_GROUPED = Symbol('noGrouped');\nexport type GroupKey = string | typeof NO_GROUPED;\nexport type RowIndex = number;\ntype RowsGroup = Record<\n GroupKey,\n {\n rowIndexes: Uint32Array;\n grouped: RowsGroup;\n }\n>;\n\nfunction isDataByColumns (data:DataSet): data is DataByColumns {\n return 'type' in data && data.type === 'columns';\n}\n\ntype ColumnName = string;\n\nconst EMPTY_INDEXES = new Uint32Array(0);\n\nexport class DataFrame {\n static toCategory = (value: DataValue): string => String(value);\n\n readonly id: string;\n // input data grouped by columns\n readonly data: Record<string, DataValue[]>;\n readonly rowsCount: number;\n readonly columnNames: ColumnName[];\n readonly rowIndexes: Uint32Array;\n\n readonly mapColumnCategories: Map<ColumnName, Category[]> = new Map();\n readonly mapColumnCategoriesRowIndexes: Map<ColumnName, Map<Category, number>> = new Map();\n\n rowsGrouped?: RowsGroup;\n\n static from (data: DataSet):DataFrame {\n if (data instanceof DataFrame) {\n return data;\n } else if (isDataByColumns(data)) {\n return new DataFrame(data.id, data.values);\n } else {\n exhaustive(data, 'Unknown input data format');\n }\n }\n\n constructor(id: string, data: Record<string, DataValue[]>) {\n this.id = id;\n this.data = data;\n this.columnNames = Object.keys(data);\n this.rowsCount = this.columnNames.length ? data[this.columnNames[0]].length : 0;\n this.rowIndexes = new Uint32Array(Array.from({length: this.rowsCount}, (_, i) => i));\n }\n\n getColumn(key: string): DataValue[] {\n return this.data[key];\n }\n\n getColumnValue(key: string, index: number): DataValue {\n return this.data[key]?.[index];\n }\n\n getColumnValueCategory(key: string, index: number): Category {\n return DataFrame.toCategory(this.getColumnValue(key, index));\n }\n\n getColumnCategories(key: string, ignoreNull = true): Category[] {\n if (!this.mapColumnCategories.has(key)) {\n this.computeColumnCategories(key);\n }\n\n const categories = this.mapColumnCategories.get(key) ?? [];\n return ignoreNull && categories && categories.length > 0 && categories[categories.length - 1] === 'null'\n ? categories.slice(0, -1) // full copy without null to heavy for large datasets\n : categories; \n }\n\n getColumnCategoryRowIndex(key: string, value: Category): RowIndex {\n const rowIndex = this.mapColumnCategoriesRowIndexes.get(key)?.get(value);\n \n if (rowIndex === undefined) {\n throw new Error(`Category ${value} not found in column ${key}`);\n }\n\n return rowIndex;\n }\n\n private computeColumnCategories(key: ColumnName) {\n if (!this.columnNames.includes(key)) {\n throw new Error(`Column ${key} does not exist`);\n }\n \n const columnData = this.getColumn(key);\n const uniqValues = new Set<DataValue>();\n const categories: string[] = [];\n const categoriesIndexes = new Map<string, number>();\n let nullIdx = -1;\n for (let i = 0; i < columnData.length; i++) {\n const value = columnData[i];\n if (uniqValues.has(value)) {\n continue;\n }\n uniqValues.add(value);\n if (value === null) {\n nullIdx = i;\n continue;\n }\n const category = DataFrame.toCategory(value);\n categories.push(category);\n categoriesIndexes.set(category, i);\n }\n if (nullIdx !== -1) {\n categories.push('null');\n categoriesIndexes.set('null', nullIdx);\n }\n\n this.mapColumnCategories.set(key, categories);\n this.mapColumnCategoriesRowIndexes.set(key, categoriesIndexes);\n }\n\n setGrouping(groupingColumnIds: (string | null)[], groupingKeys?: (GroupKey[] | undefined)[]) { \n const root = {grouped: {} as RowsGroup, rowIndexes: this.rowIndexes};\n let groups: RowsGroup[keyof RowsGroup][] = [root];\n groupingColumnIds.forEach((column, idx) => {\n const keys: GroupKey[] = column === null ? [NO_GROUPED] : (groupingKeys?.[idx] ?? this.getColumnCategories(column, false));\n const nextGroups: RowsGroup[keyof RowsGroup][] = [];\n groups.forEach(group => {\n if (column === null) {\n group.grouped = {\n [NO_GROUPED]: {\n rowIndexes: group.rowIndexes,\n grouped: {} as RowsGroup,\n },\n };\n nextGroups.push(group.grouped[NO_GROUPED]);\n } else {\n const groupedBy = groupBy(group.rowIndexes, idx => this.getColumnValueCategory(column, idx));\n group.grouped = keys.reduce((res, key) => {\n res[key] = {\n rowIndexes: new Uint32Array(groupedBy[key as string] ?? []),\n grouped: {} as RowsGroup,\n };\n nextGroups.push(res[key]);\n return res;\n }, {} as RowsGroup);\n }\n });\n groups = nextGroups;\n });\n this.rowsGrouped = root.grouped;\n }\n\n // TODO: fix all places where this method is used\n getColumnByGrouping(groupingKeys: GroupKey[], keyYColumn: string): number[] {\n if (!this.rowsGrouped) {\n return [];\n }\n if (!groupingKeys.length) {\n return Array.from(this.rowIndexes).map(idx => Number(this.getColumnValue(keyYColumn, idx)));\n }\n let result: {grouped: RowsGroup; rowIndexes: Uint32Array} = {grouped: this.rowsGrouped, rowIndexes: this.rowIndexes};\n groupingKeys.forEach(key => {\n const nextGroup = result.grouped[key ?? 'null'];\n if (!nextGroup) {\n return [];\n }\n result = nextGroup;\n });\n return Array.from(result.rowIndexes).map(idx => Number(this.getColumnValue(keyYColumn, idx)));\n }\n\n // TODO: fix all places where this method is used\n getRowsByGrouping(groupingKeys: GroupKey[]): Uint32Array {\n if (!this.rowsGrouped) {\n return EMPTY_INDEXES;\n }\n if (!groupingKeys.length) {\n return this.rowIndexes;\n }\n let result: {grouped: RowsGroup; rowIndexes: Uint32Array} = {grouped: this.rowsGrouped, rowIndexes: this.rowIndexes};\n for (const key of groupingKeys) {\n const nextGroup = result.grouped[key];\n if (!nextGroup) {\n return EMPTY_INDEXES;\n }\n result = nextGroup;\n }\n return result.rowIndexes;\n }\n}\n"],"names":["NO_GROUPED","isDataByColumns","data","EMPTY_INDEXES","_DataFrame","id","__publicField","_","i","exhaustive","key","index","_a","ignoreNull","categories","value","rowIndex","columnData","uniqValues","categoriesIndexes","nullIdx","category","groupingColumnIds","groupingKeys","root","groups","column","idx","keys","nextGroups","group","groupedBy","groupBy","res","keyYColumn","result","nextGroup","DataFrame"],"mappings":"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"}
@@ -3,6 +3,9 @@ export declare class BubbleSettingsImpl implements SettingsInterface {
3
3
  readonly id: string;
4
4
  readonly type = "bubble";
5
5
  readonly facetSettings: {
6
+ order: string[] | null;
7
+ sharedX: boolean;
8
+ sharedY: boolean;
6
9
  nRows?: number;
7
10
  nCols?: number;
8
11
  titlePosition: 'left' | 'center' | 'right';
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleSettingsImpl.d.ts","sourceRoot":"","sources":["../../src/bubble/BubbleSettingsImpl.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,SAAS,EACT,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EAChB,MAAM,UAAU,CAAC;AAGlB,qBAAa,kBAAmB,YAAW,iBAAiB;IACxD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,aAAa,EAAE;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;KAC9C,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE;QACpB,SAAS,EAAE,sBAAsB,CAAC;QAClC,MAAM,EAAE,mBAAmB,CAAC;QAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,WAAW,EAAE;QAClB,CAAC,EAAE,OAAO,CAAC;QACX,CAAC,EAAE,OAAO,CAAC;QACX,MAAM,EAAE,iBAAiB,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE;QACpB,QAAQ,CAAC,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;QACxF,QAAQ,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAC;YAAC,QAAQ,EAAE,aAAa,CAAA;SAAE,CAAC;QACzE,QAAQ,CAAC,KAAK,EAAE;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,OAAO,CAAC;YACnB,SAAS,EAAE,OAAO,CAAC;YACnB,cAAc,EAAE,OAAO,CAAC;YACxB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;YAC3B,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YAC7B,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;SAC3B,CAAC;QACF,QAAQ,CAAC,KAAK,EAAE;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,OAAO,CAAC;YACnB,SAAS,EAAE,OAAO,CAAC;YACnB,cAAc,EAAE,OAAO,CAAC;YACxB,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC;YAC3B,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YAC7B,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;SAC3B,CAAC;QACF,QAAQ,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE,SAAS,CAAA;SAAE,CAAC;QACpC,QAAQ,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,QAAQ,EAAE,cAAc,CAAA;SAAE,CAAC;QAC7D,QAAQ,CAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;SAAE,CAAC;KAChE,CAAC;IACF,QAAQ,CAAC,GAAG,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;KAC1B,CAAC;gBAEU,QAAQ,EAAE,cAAc;CAyEvC"}
1
+ {"version":3,"file":"BubbleSettingsImpl.d.ts","sourceRoot":"","sources":["../../src/bubble/BubbleSettingsImpl.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  var A = Object.defineProperty;
2
- var f = (a, l, e) => l in a ? A(a, l, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[l] = e;
3
- var o = (a, l, e) => f(a, typeof l != "symbol" ? l + "" : l, e);
4
- import { DEFAULT_WIDTH_SMALL as s, DEFAULT_WIDTH as d, DEFAULT_HEIGHT_SMALL as S, DEFAULT_HEIGHT as b, BLACK as L } from "../constants.js";
2
+ var f = (r, l, e) => l in r ? A(r, l, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[l] = e;
3
+ var o = (r, l, e) => f(r, typeof l != "symbol" ? l + "" : l, e);
4
+ import { DEFAULT_WIDTH_SMALL as s, DEFAULT_WIDTH as S, DEFAULT_HEIGHT_SMALL as b, DEFAULT_HEIGHT as L, BLACK as B } from "../constants.js";
5
5
  import "../types/common.js";
6
6
  import "../types/discrete.js";
7
7
  import "../types/scatterplot.js";
8
8
  import "../types/heatmap.js";
9
9
  import "../types/dendro.js";
10
10
  import "../types/histogram.js";
11
- import { BubblesSettingsSchema as B } from "../types/bubble.js";
12
- import w from "../_virtual/lodash.js";
13
- class F {
11
+ import { BubblesSettingsSchema as w } from "../types/bubble.js";
12
+ import z from "../_virtual/lodash.js";
13
+ class R {
14
14
  constructor(l) {
15
15
  o(this, "id");
16
16
  o(this, "type", "bubble");
@@ -28,16 +28,16 @@ class F {
28
28
  o(this, "keysOrder");
29
29
  o(this, "chartSettings");
30
30
  o(this, "aes");
31
- var i, r, u, t, m, h, y, c, p, C;
32
- B.parse(l), this.id = w.uniqueId("settings"), this.facetSettings = { titlePosition: "left", ...l.facetSettings }, this.facetBy = l.facetBy ?? [], this.valueColumnSize = l.valueSize, this.valueColumnColor = l.valueColor, this.xColumn = l.xColumn, this.xGroupBy = l.xGroupBy ?? [], this.yColumn = l.yColumn, this.yGroupBy = l.yGroupBy ?? [], this.NAValueAs = l.NAValueAs ?? null, this.keysOrder = l.keysOrder ?? {}, this.normalization = l.normalization ?? null;
33
- const e = ((i = l.size) == null ? void 0 : i.cellSize) ?? null, x = e ? null : ((r = l == null ? void 0 : l.size) == null ? void 0 : r.width) ?? (this.facetBy.length ? s : d), n = e ? null : ((u = l == null ? void 0 : l.size) == null ? void 0 : u.height) ?? (this.facetBy.length ? S : b);
31
+ var a, i, u, t, h, m, c, y, p, C, n;
32
+ w.parse(l), this.id = z.uniqueId("settings"), this.facetSettings = { sharedX: !0, sharedY: !0, titlePosition: "left", order: ((a = l.facetSettings) == null ? void 0 : a.order) ?? null, ...l.facetSettings }, this.facetBy = l.facetBy ?? [], this.valueColumnSize = l.valueSize, this.valueColumnColor = l.valueColor, this.xColumn = l.xColumn, this.xGroupBy = l.xGroupBy ?? [], this.yColumn = l.yColumn, this.yGroupBy = l.yGroupBy ?? [], this.NAValueAs = l.NAValueAs ?? null, this.keysOrder = l.keysOrder ?? {}, this.normalization = l.normalization ?? null;
33
+ const e = ((i = l.size) == null ? void 0 : i.cellSize) ?? null, x = e ? null : ((u = l == null ? void 0 : l.size) == null ? void 0 : u.width) ?? (this.facetBy.length ? s : S), d = e ? null : ((t = l == null ? void 0 : l.size) == null ? void 0 : t.height) ?? (this.facetBy.length ? b : L);
34
34
  this.chartSettings = {
35
- size: { width: x, height: n, cellSize: e },
35
+ size: { width: x, height: d, cellSize: e },
36
36
  title: {
37
37
  position: "center",
38
38
  show: !0,
39
39
  ...l.title,
40
- name: ((t = l.title) == null ? void 0 : t.name) ?? "Chart"
40
+ name: ((h = l.title) == null ? void 0 : h.name) ?? "Chart"
41
41
  },
42
42
  yAxis: {
43
43
  title: l.yColumn.label ?? l.yColumn.value,
@@ -75,15 +75,15 @@ class F {
75
75
  method: "min",
76
76
  ...l.aggregation
77
77
  }, this.aes = {
78
- minRadius: ((h = l.aes) == null ? void 0 : h.minRadius) ?? 3,
78
+ minRadius: ((c = l.aes) == null ? void 0 : c.minRadius) ?? 3,
79
79
  maxRadius: ((y = l.aes) == null ? void 0 : y.maxRadius) ?? 20,
80
- colorsList: ((c = l.aes) == null ? void 0 : c.colorsList) ?? ["black", "white", "red"],
81
- cellStrokeColor: ((p = l.aes) == null ? void 0 : p.cellStrokeColor) ?? L,
82
- emptyCellColor: ((C = l.aes) == null ? void 0 : C.emptyCellColor) ?? "white"
80
+ colorsList: ((p = l.aes) == null ? void 0 : p.colorsList) ?? ["black", "white", "red"],
81
+ cellStrokeColor: ((C = l.aes) == null ? void 0 : C.cellStrokeColor) ?? B,
82
+ emptyCellColor: ((n = l.aes) == null ? void 0 : n.emptyCellColor) ?? "white"
83
83
  };
84
84
  }
85
85
  }
86
86
  export {
87
- F as BubbleSettingsImpl
87
+ R as BubbleSettingsImpl
88
88
  };
89
89
  //# sourceMappingURL=BubbleSettingsImpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleSettingsImpl.js","sources":["../../src/bubble/BubbleSettingsImpl.ts"],"sourcesContent":["import { BLACK, DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL } from '../constants';\nimport { BubblesSettingsSchema } from '../types';\nimport type {\n AggregationMethod,\n BubbleSettings,\n ColumnName,\n FrameType,\n LegendPosition,\n NormalizationDirection,\n NormalizationMethod,\n SettingsInterface,\n TitlePosition,\n} from '../types';\nimport lodash from 'lodash';\n\nexport class BubbleSettingsImpl implements SettingsInterface {\n readonly id: string;\n readonly type = 'bubble';\n readonly facetSettings: {\n nRows?: number;\n nCols?: number;\n titlePosition: 'left' | 'center' | 'right';\n };\n readonly valueColumnSize: ColumnName;\n readonly valueColumnColor: ColumnName;\n readonly xColumn: ColumnName;\n readonly xGroupBy: ColumnName[];\n readonly yColumn: ColumnName;\n readonly yGroupBy: ColumnName[];\n readonly facetBy: ColumnName[];\n readonly normalization: {\n direction: NormalizationDirection;\n method: NormalizationMethod;\n colorRange?: number[];\n sizeRange?: number[];\n } | null;\n readonly aggregation: {\n x: boolean;\n y: boolean;\n method: AggregationMethod;\n };\n readonly NAValueAs: number | null;\n readonly keysOrder: Record<string, string[]>;\n readonly chartSettings: {\n readonly size: { width: number | null; height: number | null, cellSize: number | null };\n readonly title: { name: string; show: boolean; position: TitlePosition };\n readonly yAxis: {\n title: string;\n showTicks: boolean;\n showTitle: boolean;\n showAxisLabels: boolean;\n position: 'left' | 'right';\n axisLabelsAngle: 0 | 45 | 90;\n sorting: 'asc' | 'desc';\n };\n readonly xAxis: {\n title: string;\n showTicks: boolean;\n showTitle: boolean;\n showAxisLabels: boolean;\n position: 'bottom' | 'top';\n axisLabelsAngle: 0 | 45 | 90;\n sorting: 'asc' | 'desc';\n };\n readonly frame: { type: FrameType };\n readonly legend: { show: boolean; position: LegendPosition };\n readonly tooltips: { show: boolean; content?: ColumnName[] };\n };\n readonly aes: {\n minRadius: number;\n maxRadius: number;\n colorsList: string[];\n cellStrokeColor: string;\n emptyCellColor: string;\n };\n\n constructor(settings: BubbleSettings) {\n BubblesSettingsSchema.parse(settings);\n this.id = lodash.uniqueId('settings');\n this.facetSettings = { titlePosition: 'left', ...settings.facetSettings };\n this.facetBy = settings.facetBy ?? [];\n this.valueColumnSize = settings.valueSize;\n this.valueColumnColor = settings.valueColor;\n this.xColumn = settings.xColumn;\n this.xGroupBy = settings.xGroupBy ?? [];\n this.yColumn = settings.yColumn;\n this.yGroupBy = settings.yGroupBy ?? [];\n this.NAValueAs = settings.NAValueAs ?? null;\n this.keysOrder = settings.keysOrder ?? {};\n this.normalization = settings.normalization ?? null;\n\n const cellSize = settings.size?.cellSize ?? null;\n const width = cellSize ? null : settings?.size?.width ?? (this.facetBy.length ? DEFAULT_WIDTH_SMALL : DEFAULT_WIDTH);\n const height = cellSize ? null : settings?.size?.height ?? (this.facetBy.length ? DEFAULT_HEIGHT_SMALL : DEFAULT_HEIGHT);\n this.chartSettings = {\n size: { width, height, cellSize },\n title: {\n position: 'center',\n show: true,\n ...settings.title,\n name: settings.title?.name ?? 'Chart',\n },\n yAxis: {\n title: settings.yColumn.label ?? settings.yColumn.value,\n showTicks: true,\n showTitle: true,\n showAxisLabels: true,\n position: 'left',\n axisLabelsAngle: 90,\n sorting: 'asc',\n ...settings.yAxis,\n },\n xAxis: {\n title: settings.xColumn.label ?? settings.xColumn.value,\n showTicks: true,\n showTitle: true,\n showAxisLabels: true,\n position: 'bottom',\n axisLabelsAngle: 90,\n sorting: 'asc',\n ...settings.xAxis,\n },\n frame: { type: settings.frame?.type ?? 'full' },\n legend: {\n show: true,\n position: 'right',\n ...settings.legend,\n },\n tooltips: {\n show: true,\n ...settings.tooltips,\n },\n };\n\n this.aggregation = {\n x: false,\n y: false,\n method: 'min',\n ...settings.aggregation\n };\n\n this.aes = {\n minRadius: settings.aes?.minRadius ?? 3,\n maxRadius: settings.aes?.maxRadius ?? 20,\n colorsList: settings.aes?.colorsList ?? ['black', 'white', 'red'],\n cellStrokeColor: settings.aes?.cellStrokeColor ?? BLACK,\n emptyCellColor: settings.aes?.emptyCellColor ?? 'white',\n };\n }\n}\n"],"names":["BubbleSettingsImpl","settings","__publicField","BubblesSettingsSchema","lodash","cellSize","_a","width","_b","DEFAULT_WIDTH_SMALL","DEFAULT_WIDTH","height","_c","DEFAULT_HEIGHT_SMALL","DEFAULT_HEIGHT","_d","_e","_f","_g","_h","_i","BLACK","_j"],"mappings":"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"}
1
+ {"version":3,"file":"BubbleSettingsImpl.js","sources":["../../src/bubble/BubbleSettingsImpl.ts"],"sourcesContent":["import { BLACK, DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL } from '../constants';\nimport { BubblesSettingsSchema } from '../types';\nimport type {\n AggregationMethod,\n BubbleSettings,\n ColumnName,\n FrameType,\n LegendPosition,\n NormalizationDirection,\n NormalizationMethod,\n SettingsInterface,\n TitlePosition,\n} from '../types';\nimport lodash from 'lodash';\n\nexport class BubbleSettingsImpl implements SettingsInterface {\n readonly id: string;\n readonly type = 'bubble';\n readonly facetSettings: {\n order: string[] | null;\n sharedX: boolean;\n sharedY: boolean;\n nRows?: number;\n nCols?: number;\n titlePosition: 'left' | 'center' | 'right';\n };\n readonly valueColumnSize: ColumnName;\n readonly valueColumnColor: ColumnName;\n readonly xColumn: ColumnName;\n readonly xGroupBy: ColumnName[];\n readonly yColumn: ColumnName;\n readonly yGroupBy: ColumnName[];\n readonly facetBy: ColumnName[];\n readonly normalization: {\n direction: NormalizationDirection;\n method: NormalizationMethod;\n colorRange?: number[];\n sizeRange?: number[];\n } | null;\n readonly aggregation: {\n x: boolean;\n y: boolean;\n method: AggregationMethod;\n };\n readonly NAValueAs: number | null;\n readonly keysOrder: Record<string, string[]>;\n readonly chartSettings: {\n readonly size: { width: number | null; height: number | null, cellSize: number | null };\n readonly title: { name: string; show: boolean; position: TitlePosition };\n readonly yAxis: {\n title: string;\n showTicks: boolean;\n showTitle: boolean;\n showAxisLabels: boolean;\n position: 'left' | 'right';\n axisLabelsAngle: 0 | 45 | 90;\n sorting: 'asc' | 'desc';\n };\n readonly xAxis: {\n title: string;\n showTicks: boolean;\n showTitle: boolean;\n showAxisLabels: boolean;\n position: 'bottom' | 'top';\n axisLabelsAngle: 0 | 45 | 90;\n sorting: 'asc' | 'desc';\n };\n readonly frame: { type: FrameType };\n readonly legend: { show: boolean; position: LegendPosition };\n readonly tooltips: { show: boolean; content?: ColumnName[] };\n };\n readonly aes: {\n minRadius: number;\n maxRadius: number;\n colorsList: string[];\n cellStrokeColor: string;\n emptyCellColor: string;\n };\n\n constructor(settings: BubbleSettings) {\n BubblesSettingsSchema.parse(settings);\n this.id = lodash.uniqueId('settings');\n this.facetSettings = { sharedX: true, sharedY: true, titlePosition: 'left', order: settings.facetSettings?.order ?? null, ...settings.facetSettings };\n this.facetBy = settings.facetBy ?? [];\n this.valueColumnSize = settings.valueSize;\n this.valueColumnColor = settings.valueColor;\n this.xColumn = settings.xColumn;\n this.xGroupBy = settings.xGroupBy ?? [];\n this.yColumn = settings.yColumn;\n this.yGroupBy = settings.yGroupBy ?? [];\n this.NAValueAs = settings.NAValueAs ?? null;\n this.keysOrder = settings.keysOrder ?? {};\n this.normalization = settings.normalization ?? null;\n\n const cellSize = settings.size?.cellSize ?? null;\n const width = cellSize ? null : settings?.size?.width ?? (this.facetBy.length ? DEFAULT_WIDTH_SMALL : DEFAULT_WIDTH);\n const height = cellSize ? null : settings?.size?.height ?? (this.facetBy.length ? DEFAULT_HEIGHT_SMALL : DEFAULT_HEIGHT);\n this.chartSettings = {\n size: { width, height, cellSize },\n title: {\n position: 'center',\n show: true,\n ...settings.title,\n name: settings.title?.name ?? 'Chart',\n },\n yAxis: {\n title: settings.yColumn.label ?? settings.yColumn.value,\n showTicks: true,\n showTitle: true,\n showAxisLabels: true,\n position: 'left',\n axisLabelsAngle: 90,\n sorting: 'asc',\n ...settings.yAxis,\n },\n xAxis: {\n title: settings.xColumn.label ?? settings.xColumn.value,\n showTicks: true,\n showTitle: true,\n showAxisLabels: true,\n position: 'bottom',\n axisLabelsAngle: 90,\n sorting: 'asc',\n ...settings.xAxis,\n },\n frame: { type: settings.frame?.type ?? 'full' },\n legend: {\n show: true,\n position: 'right',\n ...settings.legend,\n },\n tooltips: {\n show: true,\n ...settings.tooltips,\n },\n };\n\n this.aggregation = {\n x: false,\n y: false,\n method: 'min',\n ...settings.aggregation\n };\n\n this.aes = {\n minRadius: settings.aes?.minRadius ?? 3,\n maxRadius: settings.aes?.maxRadius ?? 20,\n colorsList: settings.aes?.colorsList ?? ['black', 'white', 'red'],\n cellStrokeColor: settings.aes?.cellStrokeColor ?? BLACK,\n emptyCellColor: settings.aes?.emptyCellColor ?? 'white',\n };\n }\n}\n"],"names":["BubbleSettingsImpl","settings","__publicField","BubblesSettingsSchema","lodash","_a","cellSize","_b","width","_c","DEFAULT_WIDTH_SMALL","DEFAULT_WIDTH","height","_d","DEFAULT_HEIGHT_SMALL","DEFAULT_HEIGHT","_e","_f","_g","_h","_i","_j","BLACK","_k"],"mappings":"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"}
@@ -5,6 +5,6 @@ import { Cell, GroupedCellsData } from '../heatmap/fillCellsData';
5
5
  type BubbleDataFields = 'sizeValue' | 'colorValue';
6
6
  export type CellBubble = Cell<BubbleDataFields>;
7
7
  export type GroupedCellsBubble = GroupedCellsData<BubbleDataFields>;
8
- export declare function getGroupedCellsData(data: DataFrame, xColumn: ColumnName, yColumn: ColumnName, valueColumnSize: ColumnName, valueColumnColor: ColumnName, facetBy: ColumnName[], xGroupBy: ColumnName[], yGroupBy: ColumnName[], normalization: BubbleSettingsImpl['normalization'], NAValueAs: BubbleSettingsImpl['NAValueAs'], keysOrder: BubbleSettingsImpl['keysOrder'], xAxis: BubbleSettingsImpl['chartSettings']['xAxis'], yAxis: BubbleSettingsImpl['chartSettings']['yAxis'], aggregation: BubbleSettingsImpl['aggregation']): GroupedCellsBubble;
8
+ export declare function getGroupedCellsData(data: DataFrame, xColumn: ColumnName, yColumn: ColumnName, valueColumnSize: ColumnName, valueColumnColor: ColumnName, facetBy: ColumnName[], xGroupBy: ColumnName[], yGroupBy: ColumnName[], facetSettings: BubbleSettingsImpl['facetSettings'], normalization: BubbleSettingsImpl['normalization'], NAValueAs: BubbleSettingsImpl['NAValueAs'], keysOrder: BubbleSettingsImpl['keysOrder'], xAxis: BubbleSettingsImpl['chartSettings']['xAxis'], yAxis: BubbleSettingsImpl['chartSettings']['yAxis'], aggregation: BubbleSettingsImpl['aggregation']): GroupedCellsBubble;
9
9
  export {};
10
10
  //# sourceMappingURL=getGroupedCellsData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupedCellsData.d.ts","sourceRoot":"","sources":["../../src/bubble/getGroupedCellsData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,KAAK,IAAI,EAAiB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI3F,KAAK,gBAAgB,GAAG,WAAW,GAAC,YAAY,CAAC;AACjD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAChD,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAoCpE,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,eAAe,EAAE,UAAU,EAC3B,gBAAgB,EAAE,UAAU,EAC5B,OAAO,EAAE,UAAU,EAAE,EACrB,QAAQ,EAAE,UAAU,EAAE,EACtB,QAAQ,EAAE,UAAU,EAAE,EACtB,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAClD,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAC1C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAC1C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACnD,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACnD,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAC/C,kBAAkB,CAsBpB"}
1
+ {"version":3,"file":"getGroupedCellsData.d.ts","sourceRoot":"","sources":["../../src/bubble/getGroupedCellsData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,KAAK,IAAI,EAAiB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI3F,KAAK,gBAAgB,GAAG,WAAW,GAAC,YAAY,CAAC;AACjD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAChD,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAoCpE,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,eAAe,EAAE,UAAU,EAC3B,gBAAgB,EAAE,UAAU,EAC5B,OAAO,EAAE,UAAU,EAAE,EACrB,QAAQ,EAAE,UAAU,EAAE,EACtB,QAAQ,EAAE,UAAU,EAAE,EACtB,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAClD,aAAa,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAClD,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAC1C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAC1C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACnD,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACnD,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,GAC/C,kBAAkB,CAuBpB"}
@@ -1,6 +1,6 @@
1
- import { fillCellsData as x } from "../heatmap/fillCellsData.js";
2
- const V = 1e6;
3
- function G() {
1
+ import { fillCellsData as V } from "../heatmap/fillCellsData.js";
2
+ const G = 1e6;
3
+ function m() {
4
4
  return {
5
5
  meta: {
6
6
  valueSources: ["sizeValue", "colorValue"],
@@ -30,9 +30,9 @@ function G() {
30
30
  facets: {}
31
31
  };
32
32
  }
33
- function g(l, a, s, t, y, r, u, o, n, i, K, c, p, f) {
34
- const e = G();
35
- if (x(
33
+ function E(l, a, s, t, y, r, u, o, n, i, K, c, p, f, x) {
34
+ const e = m();
35
+ if (V(
36
36
  e,
37
37
  l,
38
38
  a,
@@ -41,20 +41,21 @@ function g(l, a, s, t, y, r, u, o, n, i, K, c, p, f) {
41
41
  r,
42
42
  u,
43
43
  o,
44
+ n,
44
45
  [],
45
46
  null,
46
47
  null,
47
- { sizeValue: null, colorValue: n },
48
- i,
48
+ { sizeValue: null, colorValue: i },
49
49
  K,
50
50
  c,
51
51
  p,
52
- f
53
- ), e.meta.xKeys.length * e.meta.yKeys.length > V)
52
+ f,
53
+ x
54
+ ), e.meta.xKeys.length * e.meta.yKeys.length > G)
54
55
  throw Error(`Too many cells for graph rendering (${e.meta.xKeys.length * e.meta.yKeys.length})`);
55
56
  return e;
56
57
  }
57
58
  export {
58
- g as getGroupedCellsData
59
+ E as getGroupedCellsData
59
60
  };
60
61
  //# sourceMappingURL=getGroupedCellsData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupedCellsData.js","sources":["../../src/bubble/getGroupedCellsData.ts"],"sourcesContent":["import type { DataFrame } from '../DataFrame';\nimport type { ColumnName } from '../types';\nimport type { BubbleSettingsImpl } from './BubbleSettingsImpl';\nimport { type Cell, fillCellsData, type GroupedCellsData } from '../heatmap/fillCellsData';\n\nconst MAX_RENDERED_CELLS_COUNT = 1000000;\n\ntype BubbleDataFields = 'sizeValue'|'colorValue';\nexport type CellBubble = Cell<BubbleDataFields>;\nexport type GroupedCellsBubble = GroupedCellsData<BubbleDataFields>;\n\nfunction createEmptyGroupedCells(): GroupedCellsBubble {\n return {\n meta: {\n valueSources: ['sizeValue', 'colorValue'],\n facetKeys: [],\n xGroupKeys: [],\n yGroupKeys: [],\n\n xKeys: [], // all the keys from facets\n yKeys: [], // all the keys from facets\n xKeysByGroups: {},\n yKeysByGroups: {},\n\n xLabels: {},\n yLabels: {},\n xGroupLabels: {},\n yGroupLabels: {},\n\n facetKeyValues: {},\n xGroupKeyValues: {},\n yGroupKeyValues: {},\n\n xDataByKeys: {},\n yDataByKeys: {},\n\n valueExtent: {\n sizeValue: [Infinity, -Infinity],\n colorValue: [Infinity, -Infinity]\n }\n },\n facets: {},\n };\n}\n\nexport function getGroupedCellsData(\n data: DataFrame,\n xColumn: ColumnName,\n yColumn: ColumnName,\n valueColumnSize: ColumnName,\n valueColumnColor: ColumnName,\n facetBy: ColumnName[],\n xGroupBy: ColumnName[],\n yGroupBy: ColumnName[],\n normalization: BubbleSettingsImpl['normalization'],\n NAValueAs: BubbleSettingsImpl['NAValueAs'],\n keysOrder: BubbleSettingsImpl['keysOrder'],\n xAxis: BubbleSettingsImpl['chartSettings']['xAxis'],\n yAxis: BubbleSettingsImpl['chartSettings']['yAxis'],\n aggregation: BubbleSettingsImpl['aggregation'],\n): GroupedCellsBubble {\n const result: GroupedCellsBubble = createEmptyGroupedCells();\n\n fillCellsData(\n result,\n data,\n xColumn, yColumn, {sizeValue: valueColumnSize, colorValue: valueColumnColor},\n facetBy, xGroupBy, yGroupBy,\n [],\n null, null,\n {sizeValue: null, colorValue: normalization},\n NAValueAs,\n keysOrder,\n xAxis,\n yAxis,\n aggregation\n );\n\n if (result.meta.xKeys.length * result.meta.yKeys.length > MAX_RENDERED_CELLS_COUNT) {\n throw Error(`Too many cells for graph rendering (${result.meta.xKeys.length * result.meta.yKeys.length})`);\n }\n return result;\n}\n"],"names":["MAX_RENDERED_CELLS_COUNT","createEmptyGroupedCells","getGroupedCellsData","data","xColumn","yColumn","valueColumnSize","valueColumnColor","facetBy","xGroupBy","yGroupBy","normalization","NAValueAs","keysOrder","xAxis","yAxis","aggregation","result","fillCellsData"],"mappings":";AAKA,MAAMA,IAA2B;AAMjC,SAASC,IAA8C;AACnD,SAAO;AAAA,IACH,MAAM;AAAA,MACF,cAAc,CAAC,aAAa,YAAY;AAAA,MACxC,WAAW,CAAA;AAAA,MACX,YAAY,CAAA;AAAA,MACZ,YAAY,CAAA;AAAA,MAEZ,OAAO,CAAA;AAAA;AAAA,MACP,OAAO,CAAA;AAAA;AAAA,MACP,eAAe,CAAA;AAAA,MACf,eAAe,CAAA;AAAA,MAEf,SAAS,CAAA;AAAA,MACT,SAAS,CAAA;AAAA,MACT,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,MAEd,gBAAgB,CAAA;AAAA,MAChB,iBAAiB,CAAA;AAAA,MACjB,iBAAiB,CAAA;AAAA,MAEjB,aAAa,CAAA;AAAA,MACb,aAAa,CAAA;AAAA,MAEb,aAAa;AAAA,QACT,WAAW,CAAC,OAAU,MAAS;AAAA,QAC/B,YAAY,CAAC,OAAU,MAAS;AAAA,MAAA;AAAA,IACpC;AAAA,IAEJ,QAAQ,CAAA;AAAA,EAAC;AAEjB;AAEO,SAASC,EACZC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACkB;AAClB,QAAMC,IAA6BhB,EAAA;AAiBnC,MAfAiB;AAAA,IACID;AAAA,IACAd;AAAA,IACAC;AAAA,IAASC;AAAA,IAAS,EAAC,WAAWC,GAAiB,YAAYC,EAAA;AAAA,IAC3DC;AAAA,IAASC;AAAA,IAAUC;AAAA,IACnB,CAAA;AAAA,IACA;AAAA,IAAM;AAAA,IACN,EAAC,WAAW,MAAM,YAAYC,EAAA;AAAA,IAC9BC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,GAGAC,EAAO,KAAK,MAAM,SAASA,EAAO,KAAK,MAAM,SAASjB;AACtD,UAAM,MAAM,uCAAuCiB,EAAO,KAAK,MAAM,SAASA,EAAO,KAAK,MAAM,MAAM,GAAG;AAE7G,SAAOA;AACX;"}
1
+ {"version":3,"file":"getGroupedCellsData.js","sources":["../../src/bubble/getGroupedCellsData.ts"],"sourcesContent":["import type { DataFrame } from '../DataFrame';\nimport type { ColumnName } from '../types';\nimport type { BubbleSettingsImpl } from './BubbleSettingsImpl';\nimport { type Cell, fillCellsData, type GroupedCellsData } from '../heatmap/fillCellsData';\n\nconst MAX_RENDERED_CELLS_COUNT = 1000000;\n\ntype BubbleDataFields = 'sizeValue'|'colorValue';\nexport type CellBubble = Cell<BubbleDataFields>;\nexport type GroupedCellsBubble = GroupedCellsData<BubbleDataFields>;\n\nfunction createEmptyGroupedCells(): GroupedCellsBubble {\n return {\n meta: {\n valueSources: ['sizeValue', 'colorValue'],\n facetKeys: [],\n xGroupKeys: [],\n yGroupKeys: [],\n\n xKeys: [], // all the keys from facets\n yKeys: [], // all the keys from facets\n xKeysByGroups: {},\n yKeysByGroups: {},\n\n xLabels: {},\n yLabels: {},\n xGroupLabels: {},\n yGroupLabels: {},\n\n facetKeyValues: {},\n xGroupKeyValues: {},\n yGroupKeyValues: {},\n\n xDataByKeys: {},\n yDataByKeys: {},\n\n valueExtent: {\n sizeValue: [Infinity, -Infinity],\n colorValue: [Infinity, -Infinity]\n }\n },\n facets: {},\n };\n}\n\nexport function getGroupedCellsData(\n data: DataFrame,\n xColumn: ColumnName,\n yColumn: ColumnName,\n valueColumnSize: ColumnName,\n valueColumnColor: ColumnName,\n facetBy: ColumnName[],\n xGroupBy: ColumnName[],\n yGroupBy: ColumnName[],\n facetSettings: BubbleSettingsImpl['facetSettings'],\n normalization: BubbleSettingsImpl['normalization'],\n NAValueAs: BubbleSettingsImpl['NAValueAs'],\n keysOrder: BubbleSettingsImpl['keysOrder'],\n xAxis: BubbleSettingsImpl['chartSettings']['xAxis'],\n yAxis: BubbleSettingsImpl['chartSettings']['yAxis'],\n aggregation: BubbleSettingsImpl['aggregation'],\n): GroupedCellsBubble {\n const result: GroupedCellsBubble = createEmptyGroupedCells();\n\n fillCellsData(\n result,\n data,\n xColumn, yColumn, {sizeValue: valueColumnSize, colorValue: valueColumnColor},\n facetBy, xGroupBy, yGroupBy,\n facetSettings,\n [],\n null, null,\n {sizeValue: null, colorValue: normalization},\n NAValueAs,\n keysOrder,\n xAxis,\n yAxis,\n aggregation\n );\n\n if (result.meta.xKeys.length * result.meta.yKeys.length > MAX_RENDERED_CELLS_COUNT) {\n throw Error(`Too many cells for graph rendering (${result.meta.xKeys.length * result.meta.yKeys.length})`);\n }\n return result;\n}\n"],"names":["MAX_RENDERED_CELLS_COUNT","createEmptyGroupedCells","getGroupedCellsData","data","xColumn","yColumn","valueColumnSize","valueColumnColor","facetBy","xGroupBy","yGroupBy","facetSettings","normalization","NAValueAs","keysOrder","xAxis","yAxis","aggregation","result","fillCellsData"],"mappings":";AAKA,MAAMA,IAA2B;AAMjC,SAASC,IAA8C;AACnD,SAAO;AAAA,IACH,MAAM;AAAA,MACF,cAAc,CAAC,aAAa,YAAY;AAAA,MACxC,WAAW,CAAA;AAAA,MACX,YAAY,CAAA;AAAA,MACZ,YAAY,CAAA;AAAA,MAEZ,OAAO,CAAA;AAAA;AAAA,MACP,OAAO,CAAA;AAAA;AAAA,MACP,eAAe,CAAA;AAAA,MACf,eAAe,CAAA;AAAA,MAEf,SAAS,CAAA;AAAA,MACT,SAAS,CAAA;AAAA,MACT,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,MAEd,gBAAgB,CAAA;AAAA,MAChB,iBAAiB,CAAA;AAAA,MACjB,iBAAiB,CAAA;AAAA,MAEjB,aAAa,CAAA;AAAA,MACb,aAAa,CAAA;AAAA,MAEb,aAAa;AAAA,QACT,WAAW,CAAC,OAAU,MAAS;AAAA,QAC/B,YAAY,CAAC,OAAU,MAAS;AAAA,MAAA;AAAA,IACpC;AAAA,IAEJ,QAAQ,CAAA;AAAA,EAAC;AAEjB;AAEO,SAASC,EACZC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACkB;AAClB,QAAMC,IAA6BjB,EAAA;AAkBnC,MAhBAkB;AAAA,IACID;AAAA,IACAf;AAAA,IACAC;AAAA,IAASC;AAAA,IAAS,EAAC,WAAWC,GAAiB,YAAYC,EAAA;AAAA,IAC3DC;AAAA,IAASC;AAAA,IAAUC;AAAA,IACnBC;AAAA,IACA,CAAA;AAAA,IACA;AAAA,IAAM;AAAA,IACN,EAAC,WAAW,MAAM,YAAYC,EAAA;AAAA,IAC9BC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,GAGAC,EAAO,KAAK,MAAM,SAASA,EAAO,KAAK,MAAM,SAASlB;AACtD,UAAM,MAAM,uCAAuCkB,EAAO,KAAK,MAAM,SAASA,EAAO,KAAK,MAAM,MAAM,GAAG;AAE7G,SAAOA;AACX;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bubble/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAA0D,MAAM,UAAU,CAAC;AACjI,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAwC,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,qBAAa,WAAY,SAAQ,aAAa;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAE7B,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,cAAc,EAAE;QACZ,gBAAgB,EAAE,kBAAkB,CAAC;KACxC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAU1F,KAAK,CAAC,IAAI,EAAE,WAAW;IAiBvB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IA2B/D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;IAclG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAuCX,gBAAgB;IAOhB,YAAY;IA2BZ,OAAO,CAAC,WAAW,CAIjB;CACL"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bubble/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAoC,MAAM,UAAU,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAwC,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,qBAAa,WAAY,SAAQ,aAAa;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAE7B,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,cAAc,EAAE;QACZ,gBAAgB,EAAE,kBAAkB,CAAC;KACxC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAU1F,KAAK,CAAC,IAAI,EAAE,WAAW;IAiBvB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IA2B/D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;IAelG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IA0BX,gBAAgB;IAOhB,YAAY;IA2BZ,OAAO,CAAC,WAAW,CAIjB;CACL"}