@milaboratories/graph-maker 1.1.141 → 1.1.143

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 (132) hide show
  1. package/dist/GraphMaker/components/LassoControls/index.vue.js +1 -1
  2. package/dist/GraphMaker/components/ReorderForm.vue.d.ts +15 -0
  3. package/dist/GraphMaker/components/ReorderForm.vue.d.ts.map +1 -0
  4. package/dist/GraphMaker/components/ReorderForm.vue.js +43 -0
  5. package/dist/GraphMaker/components/ReorderForm.vue.js.map +1 -0
  6. package/dist/GraphMaker/components/ReorderForm.vue2.js +5 -0
  7. package/dist/GraphMaker/components/ReorderForm.vue2.js.map +1 -0
  8. package/dist/GraphMaker/constantsCommon.d.ts +23 -0
  9. package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
  10. package/dist/GraphMaker/constantsCommon.js +97 -83
  11. package/dist/GraphMaker/constantsCommon.js.map +1 -1
  12. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  13. package/dist/GraphMaker/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.d.ts.map +1 -1
  14. package/dist/GraphMaker/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +305 -172
  15. package/dist/GraphMaker/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
  16. package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.d.ts +3 -0
  17. package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.d.ts.map +1 -0
  18. package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.js +90 -0
  19. package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -0
  20. package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue2.js +5 -0
  21. package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue2.js.map +1 -0
  22. package/dist/GraphMaker/forms/LayersForm/index.vue.d.ts.map +1 -1
  23. package/dist/GraphMaker/forms/LayersForm/index.vue.js +45 -43
  24. package/dist/GraphMaker/forms/LayersForm/index.vue.js.map +1 -1
  25. package/dist/GraphMaker/index.vue.d.ts.map +1 -1
  26. package/dist/GraphMaker/index.vue.js +33 -34
  27. package/dist/GraphMaker/index.vue.js.map +1 -1
  28. package/dist/GraphMaker/types.d.ts +1 -1
  29. package/dist/GraphMaker/types.d.ts.map +1 -1
  30. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +3 -3
  31. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
  32. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +9 -9
  33. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
  34. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +21 -11
  35. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  36. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +3 -3
  37. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
  38. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +1 -1
  39. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +31 -5
  40. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  41. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +56 -53
  42. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  43. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +1 -7
  44. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
  45. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +13 -13
  46. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  47. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts +6 -4
  48. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts.map +1 -1
  49. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js +42 -13
  50. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  51. package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.d.ts.map +1 -1
  52. package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js +84 -70
  53. package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
  54. package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
  55. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +48 -44
  56. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
  57. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +1 -1
  58. package/dist/node_modules/@milaboratories/miplots4/dist/{discrete/components → common}/BandAxis.js +3 -3
  59. package/dist/node_modules/@milaboratories/miplots4/dist/common/BandAxis.js.map +1 -0
  60. package/dist/node_modules/@milaboratories/miplots4/dist/common/ContinuousGrid.js.map +1 -1
  61. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js +14 -14
  62. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +197 -270
  63. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js.map +1 -1
  64. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +182 -161
  65. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  66. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Chart.js +121 -104
  67. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Chart.js.map +1 -1
  68. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/ChartsGroup.js +4 -4
  69. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Grid.js.map +1 -1
  70. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/StackedAreaElement.js +105 -0
  71. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/StackedAreaElement.js.map +1 -0
  72. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/StackedBarElement.js +66 -59
  73. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/StackedBarElement.js.map +1 -1
  74. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +61 -58
  75. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
  76. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedArea.js +17 -0
  77. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedArea.js.map +1 -0
  78. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js +1 -1
  79. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-scale/src/band.js +44 -34
  80. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-scale/src/band.js.map +1 -1
  81. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js +272 -195
  82. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js.map +1 -1
  83. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +23 -23
  84. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  85. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js +54 -50
  86. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js.map +1 -1
  87. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxis.js +32 -28
  88. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxis.js.map +1 -1
  89. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js.map +1 -1
  90. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js.map +1 -1
  91. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js +29 -26
  92. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
  93. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js +44 -41
  94. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js.map +1 -1
  95. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Grid.js +31 -27
  96. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Grid.js.map +1 -1
  97. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
  98. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +29 -18
  99. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
  100. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +71 -57
  101. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
  102. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js.map +1 -1
  103. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/isNumericScale.js +11 -0
  104. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/isNumericScale.js.map +1 -0
  105. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js +10 -10
  106. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  107. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  108. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +6 -6
  109. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  110. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js +35 -25
  111. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js.map +1 -1
  112. package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js +3 -3
  113. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +51 -36
  114. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
  115. package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js +6 -6
  116. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +7 -7
  117. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
  118. package/dist/node_modules/@milaboratories/miplots4/dist/utils/createMultilineDiscreteLabels.js +32 -0
  119. package/dist/node_modules/@milaboratories/miplots4/dist/utils/createMultilineDiscreteLabels.js.map +1 -0
  120. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetRowsColumns.js +18 -0
  121. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetRowsColumns.js.map +1 -0
  122. package/dist/node_modules/@milaboratories/miplots4/dist/utils/measureMultilineDiscreteLabels.js +63 -0
  123. package/dist/node_modules/@milaboratories/miplots4/dist/utils/measureMultilineDiscreteLabels.js.map +1 -0
  124. package/dist/node_modules/@milaboratories/miplots4/dist/{discrete/utils → utils}/splitTextByWidth.js +1 -1
  125. package/dist/node_modules/@milaboratories/miplots4/dist/utils/splitTextByWidth.js.map +1 -0
  126. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +2 -2
  127. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
  128. package/package.json +3 -3
  129. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/BandAxis.js.map +0 -1
  130. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js.map +0 -1
  131. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Axis.js +0 -59
  132. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Axis.js.map +0 -1
@@ -1,29 +1,30 @@
1
- import { l as E } from "../node_modules/lodash/lodash.js";
2
- import { renderToString as A } from "../node_modules/react-dom/server.browser.js";
1
+ import { l as B } from "../node_modules/lodash/lodash.js";
2
+ import { renderToString as N } from "../node_modules/react-dom/server.browser.js";
3
3
  import { AbstractChart as $ } from "../AbstractChart.js";
4
4
  import { NO_GROUPED as f } from "../DataFrame.js";
5
5
  import R from "./ChartRenderer.js";
6
- import { MAX_GROUPS_COUNT as S, MAX_FACETS_COUNT as U } from "./constants.js";
7
- import { DiscreteSettingsImpl as C, StatLayer as G, BoxLayer as P, ViolinLayer as T, DotLayer as x, LineLayer as O, ErrorBarLayer as K, BarLayer as F, StackedBarLayer as I, BinnedDotsLayer as V, PairedPointsLayer as j, SinaLayer as q, LogoPlotLayer as H } from "./DiscreteSettingsImpl.js";
8
- import { getBoxesData as M } from "./layers/boxes.js";
9
- import { getViolinsData as W } from "./layers/violins.js";
10
- import { getSinaData as X } from "./layers/sina.js";
11
- import { getDotsData as z } from "./layers/dots.js";
12
- import { getLinesData as J } from "./layers/lines.js";
13
- import { getErrorBarsData as Q } from "./layers/errorbars.js";
14
- import { getBarsData as Y } from "./layers/bar.js";
15
- import { getStackedBarsData as Z } from "./layers/stackedBar.js";
16
- import { getBinnedDotsData as tt } from "./layers/binnedDots.js";
17
- import { getPairedPointsData as at } from "./layers/pairedPoints.js";
18
- import { getLogoData as et } from "./layers/logo.js";
19
- import { getStatsData as rt } from "./layers/stats/index.js";
6
+ import { MAX_GROUPS_COUNT as G, MAX_FACETS_COUNT as U } from "./constants.js";
7
+ import { DiscreteSettingsImpl as C, StatLayer as S, BoxLayer as P, ViolinLayer as T, DotLayer as x, LineLayer as O, ErrorBarLayer as I, BarLayer as K, StackedBarLayer as F, StackedAreaLayer as V, BinnedDotsLayer as H, PairedPointsLayer as j, SinaLayer as q, LogoPlotLayer as M } from "./DiscreteSettingsImpl.js";
8
+ import { getBoxesData as W } from "./layers/boxes.js";
9
+ import { getViolinsData as X } from "./layers/violins.js";
10
+ import { getSinaData as z } from "./layers/sina.js";
11
+ import { getDotsData as J } from "./layers/dots.js";
12
+ import { getLinesData as Q } from "./layers/lines.js";
13
+ import { getErrorBarsData as Y } from "./layers/errorbars.js";
14
+ import { getBarsData as Z } from "./layers/bar.js";
15
+ import { getStackedBarsData as tt } from "./layers/stackedBar.js";
16
+ import { getStackedAreaData as at } from "./layers/stackedArea.js";
17
+ import { getBinnedDotsData as et } from "./layers/binnedDots.js";
18
+ import { getPairedPointsData as rt } from "./layers/pairedPoints.js";
19
+ import { getLogoData as st } from "./layers/logo.js";
20
+ import { getStatsData as it } from "./layers/stats/index.js";
20
21
  import { getFacetStringKey as L } from "./utils/getFacetStringKey.js";
21
- var st = Object.defineProperty, it = (o, a, t) => a in o ? st(o, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[a] = t, D = (o, a, t) => it(o, typeof a != "symbol" ? a + "" : a, t);
22
+ var nt = Object.defineProperty, ot = (o, a, t) => a in o ? nt(o, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[a] = t, D = (o, a, t) => ot(o, typeof a != "symbol" ? a + "" : a, t);
22
23
  function w(o, a, t = null) {
23
24
  const s = a.value, i = o.getColumnCategories(s);
24
- return E.intersection(t ?? i, i).map(String);
25
+ return B.intersection(t ?? i, i).map(String);
25
26
  }
26
- function B(o) {
27
+ function E(o) {
27
28
  if (!o.length)
28
29
  return [];
29
30
  let a = [[]];
@@ -50,14 +51,14 @@ function v(o, a) {
50
51
  )
51
52
  ) : r, l = o.getColumnCategories(t, !a.allowNullGroup);
52
53
  return {
53
- keys: a.order === void 0 ? l : E.intersection(a.order.map(String), l),
54
+ keys: a.order === void 0 ? l : B.intersection(a.order.map(String), l),
54
55
  value: t,
55
56
  label: a.columnName.label ?? t,
56
57
  valueLabels: i.reduce((r, u) => (r[u] = n(u), r), {}),
57
58
  inheritedAes: a.inheritedAes ?? null
58
59
  };
59
60
  }
60
- class Et extends $ {
61
+ class bt extends $ {
61
62
  constructor(a, t, s) {
62
63
  super(a, t), D(this, "settings"), D(this, "chartRenderer", new R()), D(this, "onTooltipHintSwitch", () => {
63
64
  }), D(this, "calculatedData", null), this.settings = new C(t), s && (this.onTooltipHintSwitch = s[0]);
@@ -84,11 +85,11 @@ class Et extends $ {
84
85
  console.warn("no chart state for discrete");
85
86
  }
86
87
  export() {
87
- return this._updateChart(), A(this.chartRenderer.component);
88
+ return this._updateChart(), N(this.chartRenderer.component);
88
89
  }
89
90
  _needUpdateCalculatedDataBySettings(a, t) {
90
- var s, i, n, l, r, u, d, h;
91
- return a.chartSettings.yAxis.scale !== t.chartSettings.yAxis.scale || (((s = a.primaryGrouping) == null ? void 0 : s.columnName.value) ?? "") !== (((i = t.primaryGrouping) == null ? void 0 : i.columnName.value) ?? "") || (((n = a.secondaryGrouping) == null ? void 0 : n.columnName.value) ?? "") !== (((l = t.secondaryGrouping) == null ? void 0 : l.columnName.value) ?? "") || (((r = a.primaryGrouping) == null ? void 0 : r.allowNullGroup) ?? "") !== (((u = t.primaryGrouping) == null ? void 0 : u.allowNullGroup) ?? "") || (((d = a.secondaryGrouping) == null ? void 0 : d.allowNullGroup) ?? "") !== (((h = t.secondaryGrouping) == null ? void 0 : h.allowNullGroup) ?? "") || a.facetBy.some((g, m) => {
91
+ var s, i, n, l, r, u, h, d;
92
+ return a.chartSettings.yAxis.scale !== t.chartSettings.yAxis.scale || (((s = a.primaryGrouping) == null ? void 0 : s.columnName.value) ?? "") !== (((i = t.primaryGrouping) == null ? void 0 : i.columnName.value) ?? "") || (((n = a.secondaryGrouping) == null ? void 0 : n.columnName.value) ?? "") !== (((l = t.secondaryGrouping) == null ? void 0 : l.columnName.value) ?? "") || (((r = a.primaryGrouping) == null ? void 0 : r.allowNullGroup) ?? "") !== (((u = t.primaryGrouping) == null ? void 0 : u.allowNullGroup) ?? "") || (((h = a.secondaryGrouping) == null ? void 0 : h.allowNullGroup) ?? "") !== (((d = t.secondaryGrouping) == null ? void 0 : d.allowNullGroup) ?? "") || a.facetBy.some((g, m) => {
92
93
  var p;
93
94
  return g.value !== ((p = t.facetBy[m]) == null ? void 0 : p.value);
94
95
  }) || a.layers.length !== t.layers.length || a.layers.some((g, m) => !g.isEqualForCalculation(t.layers[m]));
@@ -101,12 +102,12 @@ class Et extends $ {
101
102
  });
102
103
  }
103
104
  _updateData() {
104
- const { chartSettings: a, y: t, keyColumn: s, facetBy: i, layers: n, facetSettings: l } = this.settings, { yAxis: r } = a, u = this.data.getColumn(t.value).every((e) => e === null || !(Number(e) < 0)), d = v(this.data, this.settings.primaryGrouping), h = v(this.data, this.settings.secondaryGrouping), g = i.map((e) => e.value), m = n.some((e) => e.type === "logo" || e.type === "bar");
105
- if (!m && d.keys.length > S)
106
- throw Error(`Too many primary groups (${d.keys.length})`);
107
- if (!m && h.keys.length > S)
108
- throw Error(`Too many secondary groups (${h.keys.length})`);
109
- const p = i.length ? B(
105
+ const { chartSettings: a, y: t, keyColumn: s, facetBy: i, layers: n, facetSettings: l } = this.settings, { yAxis: r } = a, u = this.data.getColumn(t.value).every((e) => e === null || !(Number(e) < 0)), h = v(this.data, this.settings.primaryGrouping), d = v(this.data, this.settings.secondaryGrouping), g = i.map((e) => e.value), m = n.some((e) => e.type === "logo" || e.type === "bar");
106
+ if (!m && h.keys.length > G)
107
+ throw Error(`Too many primary groups (${h.keys.length})`);
108
+ if (!m && d.keys.length > G)
109
+ throw Error(`Too many secondary groups (${d.keys.length})`);
110
+ const p = i.length ? E(
110
111
  i.map((e) => {
111
112
  var y;
112
113
  return w(this.data, e, (y = l == null ? void 0 : l.order) == null ? void 0 : y[e.value]);
@@ -114,47 +115,49 @@ class Et extends $ {
114
115
  ) : [[f]];
115
116
  if (p.length > U)
116
117
  throw Error(`Too many facets (${p.length})`);
117
- this.data.setGrouping([...g, d.value, h.value]);
118
+ this.data.setGrouping([...g, h.value, d.value]);
118
119
  const c = {
119
120
  facet: p,
120
- primary: d.value !== null ? d.keys : [f],
121
- secondary: h.value !== null ? h.keys : [f]
121
+ primary: h.value !== null ? h.keys : [f],
122
+ secondary: d.value !== null ? d.keys : [f]
122
123
  }, _ = c.facet.reduce((e, y) => (e[L(y)] = c.primary.filter(
123
- (k) => this.data.getRowsByGrouping([...y, k]).length > 0
124
- ).map(String), e), {}), b = n.filter((e) => !(e instanceof G)).map((e) => {
124
+ (A) => this.data.getRowsByGrouping([...y, A]).length > 0
125
+ ).map(String), e), {}), k = n.filter((e) => !(e instanceof S)).map((e) => {
125
126
  if (e instanceof P)
126
- return M(e, c, this.data, t, s, r);
127
+ return W(e, c, this.data, t, s, r);
127
128
  if (e instanceof T)
128
- return W(e, c, this.data, t, r);
129
+ return X(e, c, this.data, t, r);
129
130
  if (e instanceof x)
130
- return z(e, c, this.data, t, r, s);
131
+ return J(e, c, this.data, t, r, s);
131
132
  if (e instanceof O)
132
- return J(e, c, this.data, t, r);
133
- if (e instanceof K)
134
133
  return Q(e, c, this.data, t, r);
135
- if (e instanceof F)
136
- return Y(e, c, this.data, t, r);
137
134
  if (e instanceof I)
138
- return Z(e, c, this.data, t);
135
+ return Y(e, c, this.data, t, r);
136
+ if (e instanceof K)
137
+ return Z(e, c, this.data, t, r);
138
+ if (e instanceof F)
139
+ return tt(e, c, this.data, t);
139
140
  if (e instanceof V)
140
- return tt(e, c, this.data, t, r);
141
+ return at(e, c, this.data, t);
142
+ if (e instanceof H)
143
+ return et(e, c, this.data, t, r);
141
144
  if (e instanceof j)
142
- return at(e, c, this.data, t, r);
145
+ return rt(e, c, this.data, t, r);
143
146
  if (e instanceof q)
144
- return X(e, c, this.data, t, r);
145
- if (e instanceof H)
146
- return et(e, c, this.data, t);
147
+ return z(e, c, this.data, t, r);
148
+ if (e instanceof M)
149
+ return st(e, c, this.data, t);
147
150
  throw new Error("Unknown layer type");
148
- }), N = n.filter((e) => e instanceof G).map((e) => {
149
- if (d.value === null)
151
+ }), b = n.filter((e) => e instanceof S).map((e) => {
152
+ if (h.value === null)
150
153
  throw new Error("Cannot calculate p-value without data grouping");
151
- return rt(e, c.facet, c.primary, t, this.data);
154
+ return it(e, c.facet, c.primary, t, this.data);
152
155
  });
153
156
  this.calculatedData = {
154
- layersData: b,
155
- statsLayersData: N,
156
- primaryGrouping: d,
157
- secondaryGrouping: h,
157
+ layersData: k,
158
+ statsLayersData: b,
159
+ primaryGrouping: h,
160
+ secondaryGrouping: d,
158
161
  facetKeyLists: p,
159
162
  nonEmptyGroupsByFacets: _,
160
163
  onlyPositive: u
@@ -163,12 +166,12 @@ class Et extends $ {
163
166
  _updateAesInData() {
164
167
  if (this.calculatedData === null)
165
168
  return;
166
- const { layers: a, facetBy: t, primaryGrouping: s, secondaryGrouping: i, facetSettings: n } = this.settings, l = a.filter((r) => !(r instanceof G));
169
+ const { layers: a, facetBy: t, primaryGrouping: s, secondaryGrouping: i, facetSettings: n } = this.settings, l = a.filter((r) => !(r instanceof S));
167
170
  for (let r = 0; r < l.length; r++) {
168
171
  const u = l[r];
169
172
  "aes" in u && (this.calculatedData.layersData[r].aes = u.aes);
170
173
  }
171
- this.calculatedData.primaryGrouping = v(this.data, s), this.calculatedData.secondaryGrouping = v(this.data, i), this.calculatedData.facetKeyLists = t.length ? B(
174
+ this.calculatedData.primaryGrouping = v(this.data, s), this.calculatedData.secondaryGrouping = v(this.data, i), this.calculatedData.facetKeyLists = t.length ? E(
172
175
  t.map((r) => {
173
176
  var u;
174
177
  return w(this.data, r, (u = n == null ? void 0 : n.order) == null ? void 0 : u[r.value]);
@@ -198,6 +201,6 @@ class Et extends $ {
198
201
  }
199
202
  }
200
203
  export {
201
- Et as ChartDiscrete
204
+ bt as ChartDiscrete
202
205
  };
203
206
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/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 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 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","i","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","id","facetKeys","facetLabels"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/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","i","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","id","facetKeys","facetLabels"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,17 @@
1
+ import { getStackedBarsData as o } from "./stackedBar.js";
2
+ function c(a, t, s, r) {
3
+ const e = o(a, t, s, r);
4
+ return {
5
+ type: "stackedArea",
6
+ geoms: e.geoms,
7
+ meta: {
8
+ ...e.meta,
9
+ showBars: a.showBars
10
+ },
11
+ aes: a.aes
12
+ };
13
+ }
14
+ export {
15
+ c as getStackedAreaData
16
+ };
17
+ //# sourceMappingURL=stackedArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stackedArea.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/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;","x_google_ignoreList":[0]}
@@ -3,7 +3,7 @@ import { createRoot as $ } from "../node_modules/react-dom/client.js";
3
3
  import { Error as X } from "../common/Error.js";
4
4
  import { DataFrameProvider as j } from "../common/useDataFrame.js";
5
5
  import { DEFAULT_HEIGHT as v, DEFAULT_WIDTH as b, TITLE_LINE_HEIGHT as R, TITLE_MARGIN as G } from "../constants.js";
6
- import { splitTextByWidth as A } from "../discrete/utils/splitTextByWidth.js";
6
+ import { splitTextByWidth as A } from "../utils/splitTextByWidth.js";
7
7
  import { LEGEND_OFFSET as O, DEFAULT_COMMON_AES as k } from "../scatterplot/constants.js";
8
8
  import { getTicksAndFormat as P } from "../scatterplot/utils/getTicksAndFormat.js";
9
9
  import { arrangeLegendParts as U } from "../utils/arrangeLegendParts.js";
@@ -1,42 +1,52 @@
1
- import { initRange as v } from "./init.js";
2
- import x from "./ordinal.js";
3
- import w from "../../d3-array/src/range.js";
4
- function $() {
5
- var t = x().unknown(void 0), m = t.domain, s = t.range, r = 0, e = 1, o, f, i = !1, a = 0, d = 0, h = 0.5;
6
- delete t.unknown;
1
+ import { initRange as I } from "./init.js";
2
+ import O from "./ordinal.js";
3
+ import k from "../../d3-array/src/range.js";
4
+ function s() {
5
+ var n = O().unknown(void 0), o = n.domain, v = n.range, r = 0, e = 1, i, f, d = !1, a = 0, p = 0, m = 0.5;
6
+ delete n.unknown;
7
7
  function u() {
8
- var n = m().length, l = e < r, g = l ? e : r, c = l ? r : e;
9
- o = (c - g) / Math.max(1, n - a + d * 2), i && (o = Math.floor(o)), g += (c - g - o * (n - a)) * h, f = o * (1 - a), i && (g = Math.round(g), f = Math.round(f));
10
- var p = w(n).map(function(M) {
11
- return g + o * M;
8
+ var t = o().length, l = e < r, g = l ? e : r, c = l ? r : e;
9
+ i = (c - g) / Math.max(1, t - a + p * 2), d && (i = Math.floor(i)), g += (c - g - i * (t - a)) * m, f = i * (1 - a), d && (g = Math.round(g), f = Math.round(f));
10
+ var h = k(t).map(function(y) {
11
+ return g + i * y;
12
12
  });
13
- return s(l ? p.reverse() : p);
13
+ return v(l ? h.reverse() : h);
14
14
  }
15
- return t.domain = function(n) {
16
- return arguments.length ? (m(n), u()) : m();
17
- }, t.range = function(n) {
18
- return arguments.length ? ([r, e] = n, r = +r, e = +e, u()) : [r, e];
19
- }, t.rangeRound = function(n) {
20
- return [r, e] = n, r = +r, e = +e, i = !0, u();
21
- }, t.bandwidth = function() {
15
+ return n.domain = function(t) {
16
+ return arguments.length ? (o(t), u()) : o();
17
+ }, n.range = function(t) {
18
+ return arguments.length ? ([r, e] = t, r = +r, e = +e, u()) : [r, e];
19
+ }, n.rangeRound = function(t) {
20
+ return [r, e] = t, r = +r, e = +e, d = !0, u();
21
+ }, n.bandwidth = function() {
22
22
  return f;
23
- }, t.step = function() {
24
- return o;
25
- }, t.round = function(n) {
26
- return arguments.length ? (i = !!n, u()) : i;
27
- }, t.padding = function(n) {
28
- return arguments.length ? (a = Math.min(1, d = +n), u()) : a;
29
- }, t.paddingInner = function(n) {
30
- return arguments.length ? (a = Math.min(1, n), u()) : a;
31
- }, t.paddingOuter = function(n) {
32
- return arguments.length ? (d = +n, u()) : d;
33
- }, t.align = function(n) {
34
- return arguments.length ? (h = Math.max(0, Math.min(1, n)), u()) : h;
35
- }, t.copy = function() {
36
- return $(m(), [r, e]).round(i).paddingInner(a).paddingOuter(d).align(h);
37
- }, v.apply(u(), arguments);
23
+ }, n.step = function() {
24
+ return i;
25
+ }, n.round = function(t) {
26
+ return arguments.length ? (d = !!t, u()) : d;
27
+ }, n.padding = function(t) {
28
+ return arguments.length ? (a = Math.min(1, p = +t), u()) : a;
29
+ }, n.paddingInner = function(t) {
30
+ return arguments.length ? (a = Math.min(1, t), u()) : a;
31
+ }, n.paddingOuter = function(t) {
32
+ return arguments.length ? (p = +t, u()) : p;
33
+ }, n.align = function(t) {
34
+ return arguments.length ? (m = Math.max(0, Math.min(1, t)), u()) : m;
35
+ }, n.copy = function() {
36
+ return s(o(), [r, e]).round(d).paddingInner(a).paddingOuter(p).align(m);
37
+ }, I.apply(u(), arguments);
38
+ }
39
+ function M(n) {
40
+ var o = n.copy;
41
+ return n.padding = n.paddingOuter, delete n.paddingInner, delete n.paddingOuter, n.copy = function() {
42
+ return M(o());
43
+ }, n;
44
+ }
45
+ function $() {
46
+ return M(s.apply(null, arguments).paddingInner(1));
38
47
  }
39
48
  export {
40
- $ as default
49
+ s as default,
50
+ $ as point
41
51
  };
42
52
  //# sourceMappingURL=band.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"band.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/node_modules/d3-scale/src/band.js"],"sourcesContent":["import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n"],"names":["band","scale","ordinal","domain","ordinalRange","r0","r1","step","bandwidth","round","paddingInner","paddingOuter","align","rescale","reverse","start","stop","values","sequence","i","_","initRange"],"mappings":";;;AAIe,SAASA,IAAO;AAC7B,MAAIC,IAAQC,IAAU,QAAQ,MAAS,GACnCC,IAASF,EAAM,QACfG,IAAeH,EAAM,OACrBI,IAAK,GACLC,IAAK,GACLC,GACAC,GACAC,IAAQ,IACRC,IAAe,GACfC,IAAe,GACfC,IAAQ;AAEZ,SAAOX,EAAM;AAEb,WAASY,IAAU;AACjB,QAAI,IAAIV,EAAAA,EAAS,QACbW,IAAUR,IAAKD,GACfU,IAAQD,IAAUR,IAAKD,GACvBW,IAAOF,IAAUT,IAAKC;AAC1BC,IAAAA,KAAQS,IAAOD,KAAS,KAAK,IAAI,GAAG,IAAIL,IAAeC,IAAe,CAAC,GACnEF,MAAOF,IAAO,KAAK,MAAMA,CAAI,IACjCQ,MAAUC,IAAOD,IAAQR,KAAQ,IAAIG,MAAiBE,GACtDJ,IAAYD,KAAQ,IAAIG,IACpBD,MAAOM,IAAQ,KAAK,MAAMA,CAAK,GAAGP,IAAY,KAAK,MAAMA,CAAS;AACtE,QAAIS,IAASC,EAAS,CAAC,EAAE,IAAI,SAASC,GAAG;AAAE,aAAOJ,IAAQR,IAAOY;AAAAA,IAAG,CAAC;AACrE,WAAOf,EAAaU,IAAUG,EAAO,QAAA,IAAYA,CAAM;AAAA,EACzD;AAEA,SAAAhB,EAAM,SAAS,SAASmB,GAAG;AACzB,WAAO,UAAU,UAAUjB,EAAOiB,CAAC,GAAGP,EAAAA,KAAaV,EAAAA;AAAAA,EACrD,GAEAF,EAAM,QAAQ,SAASmB,GAAG;AACxB,WAAO,UAAU,UAAU,CAACf,GAAIC,CAAE,IAAIc,GAAGf,IAAK,CAACA,GAAIC,IAAK,CAACA,GAAIO,OAAa,CAACR,GAAIC,CAAE;AAAA,EACnF,GAEAL,EAAM,aAAa,SAASmB,GAAG;AAC7B,WAAO,CAACf,GAAIC,CAAE,IAAIc,GAAGf,IAAK,CAACA,GAAIC,IAAK,CAACA,GAAIG,IAAQ,IAAMI,EAAAA;AAAAA,EACzD,GAEAZ,EAAM,YAAY,WAAW;AAC3B,WAAOO;AAAAA,EACT,GAEAP,EAAM,OAAO,WAAW;AACtB,WAAOM;AAAAA,EACT,GAEAN,EAAM,QAAQ,SAASmB,GAAG;AACxB,WAAO,UAAU,UAAUX,IAAQ,CAAC,CAACW,GAAGP,OAAaJ;AAAAA,EACvD,GAEAR,EAAM,UAAU,SAASmB,GAAG;AAC1B,WAAO,UAAU,UAAUV,IAAe,KAAK,IAAI,GAAGC,IAAe,CAACS,CAAC,GAAGP,EAAAA,KAAaH;AAAAA,EACzF,GAEAT,EAAM,eAAe,SAASmB,GAAG;AAC/B,WAAO,UAAU,UAAUV,IAAe,KAAK,IAAI,GAAGU,CAAC,GAAGP,EAAAA,KAAaH;AAAAA,EACzE,GAEAT,EAAM,eAAe,SAASmB,GAAG;AAC/B,WAAO,UAAU,UAAUT,IAAe,CAACS,GAAGP,OAAaF;AAAAA,EAC7D,GAEAV,EAAM,QAAQ,SAASmB,GAAG;AACxB,WAAO,UAAU,UAAUR,IAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGQ,CAAC,CAAC,GAAGP,OAAaD;AAAAA,EAC/E,GAEAX,EAAM,OAAO,WAAW;AACtB,WAAOD,EAAKG,EAAAA,GAAU,CAACE,GAAIC,CAAE,CAAC,EACzB,MAAMG,CAAK,EACX,aAAaC,CAAY,EACzB,aAAaC,CAAY,EACzB,MAAMC,CAAK;AAAA,EAClB,GAEOS,EAAU,MAAMR,EAAAA,GAAW,SAAS;AAC7C;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"band.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/node_modules/d3-scale/src/band.js"],"sourcesContent":["import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n"],"names":["band","scale","ordinal","domain","ordinalRange","r0","r1","step","bandwidth","round","paddingInner","paddingOuter","align","rescale","n","reverse","start","stop","values","sequence","i","_","initRange","pointish","copy","point"],"mappings":"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","x_google_ignoreList":[0]}