@milaboratories/graph-maker 1.1.136 → 1.1.138

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 (102) hide show
  1. package/README.md +120 -24
  2. package/dist/GraphMaker/components/SettingsTabs/icons/AxesIcon.vue.d.ts.map +1 -0
  3. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/AxesIcon.vue.js +1 -1
  4. package/dist/GraphMaker/components/SettingsTabs/icons/AxesIcon.vue.js.map +1 -0
  5. package/dist/GraphMaker/components/SettingsTabs/icons/DeleteChartIcon.vue.d.ts.map +1 -0
  6. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/DeleteChartIcon.vue.js +1 -1
  7. package/dist/GraphMaker/components/SettingsTabs/icons/DeleteChartIcon.vue.js.map +1 -0
  8. package/dist/GraphMaker/components/SettingsTabs/icons/ExportIcon.vue.d.ts.map +1 -0
  9. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/ExportIcon.vue.js +1 -1
  10. package/dist/GraphMaker/components/SettingsTabs/icons/ExportIcon.vue.js.map +1 -0
  11. package/dist/GraphMaker/components/SettingsTabs/icons/LayersIcon.vue.d.ts.map +1 -0
  12. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LayersIcon.vue.js +1 -1
  13. package/dist/GraphMaker/components/SettingsTabs/icons/LayersIcon.vue.js.map +1 -0
  14. package/dist/GraphMaker/components/SettingsTabs/icons/LinkIcon.vue.d.ts.map +1 -0
  15. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LinkIcon.vue.js +1 -1
  16. package/dist/GraphMaker/components/SettingsTabs/icons/LinkIcon.vue.js.map +1 -0
  17. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.d.ts +3 -0
  18. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.d.ts.map +1 -0
  19. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.js +12 -0
  20. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.js.map +1 -0
  21. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue2.js +5 -0
  22. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue2.js.map +1 -0
  23. package/dist/GraphMaker/components/SettingsTabs/icons/SettingsIcon.vue.d.ts.map +1 -0
  24. package/dist/GraphMaker/components/SettingsTabs/index.vue.d.ts +2 -0
  25. package/dist/GraphMaker/components/SettingsTabs/index.vue.d.ts.map +1 -1
  26. package/dist/GraphMaker/components/SettingsTabs/index.vue.js +17 -15
  27. package/dist/GraphMaker/components/SettingsTabs/index.vue.js.map +1 -1
  28. package/dist/GraphMaker/constantsCommon.d.ts +2 -0
  29. package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
  30. package/dist/GraphMaker/constantsCommon.js +19 -17
  31. package/dist/GraphMaker/constantsCommon.js.map +1 -1
  32. package/dist/GraphMaker/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.d.ts.map +1 -1
  33. package/dist/GraphMaker/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +144 -122
  34. package/dist/GraphMaker/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
  35. package/dist/GraphMaker/forms/LogForm.vue.d.ts +19 -0
  36. package/dist/GraphMaker/forms/LogForm.vue.d.ts.map +1 -0
  37. package/dist/GraphMaker/forms/LogForm.vue.js +22 -0
  38. package/dist/GraphMaker/forms/LogForm.vue.js.map +1 -0
  39. package/dist/GraphMaker/forms/index.d.ts +22 -0
  40. package/dist/GraphMaker/forms/index.d.ts.map +1 -1
  41. package/dist/GraphMaker/forms/index.js +35 -28
  42. package/dist/GraphMaker/forms/index.js.map +1 -1
  43. package/dist/GraphMaker/index.vue.d.ts +1 -0
  44. package/dist/GraphMaker/index.vue.d.ts.map +1 -1
  45. package/dist/GraphMaker/index.vue.js +161 -159
  46. package/dist/GraphMaker/index.vue.js.map +1 -1
  47. package/dist/GraphMaker/store.d.ts.map +1 -1
  48. package/dist/GraphMaker/store.js +71 -67
  49. package/dist/GraphMaker/store.js.map +1 -1
  50. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts.map +1 -1
  51. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js +9 -9
  52. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  53. package/dist/lib.js +1 -1
  54. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +246 -228
  55. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
  56. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Captions/GroupCaptions.js +46 -37
  57. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Captions/GroupCaptions.js.map +1 -1
  58. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +63 -61
  59. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
  60. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +4 -4
  61. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Dendrograms.js +57 -51
  62. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Dendrograms.js.map +1 -1
  63. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getDendrograms.js +33 -33
  64. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getDendrograms.js.map +1 -1
  65. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +20 -20
  66. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js +89 -54
  67. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
  68. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateChartSideElementSizes.js +19 -19
  69. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateChartSideElementSizes.js.map +1 -1
  70. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js +181 -168
  71. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js.map +1 -1
  72. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js +1 -1
  73. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js.map +1 -1
  74. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +5 -5
  75. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/Lasso.js +144 -120
  76. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/Lasso.js.map +1 -1
  77. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +35 -35
  78. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  79. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js +1 -1
  80. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js.map +1 -1
  81. package/package.json +2 -2
  82. package/dist/GraphMaker/icons/AxesIcon.vue.d.ts.map +0 -1
  83. package/dist/GraphMaker/icons/AxesIcon.vue.js.map +0 -1
  84. package/dist/GraphMaker/icons/DeleteChartIcon.vue.d.ts.map +0 -1
  85. package/dist/GraphMaker/icons/DeleteChartIcon.vue.js.map +0 -1
  86. package/dist/GraphMaker/icons/ExportIcon.vue.d.ts.map +0 -1
  87. package/dist/GraphMaker/icons/ExportIcon.vue.js.map +0 -1
  88. package/dist/GraphMaker/icons/LayersIcon.vue.d.ts.map +0 -1
  89. package/dist/GraphMaker/icons/LayersIcon.vue.js.map +0 -1
  90. package/dist/GraphMaker/icons/LinkIcon.vue.d.ts.map +0 -1
  91. package/dist/GraphMaker/icons/LinkIcon.vue.js.map +0 -1
  92. package/dist/GraphMaker/icons/SettingsIcon.vue.d.ts.map +0 -1
  93. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/AxesIcon.vue.d.ts +0 -0
  94. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/DeleteChartIcon.vue.d.ts +0 -0
  95. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/ExportIcon.vue.d.ts +0 -0
  96. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LayersIcon.vue.d.ts +0 -0
  97. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LinkIcon.vue.d.ts +0 -0
  98. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue.d.ts +0 -0
  99. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue.js +0 -0
  100. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue.js.map +0 -0
  101. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue2.js +0 -0
  102. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue2.js.map +0 -0
@@ -11,22 +11,22 @@ import { numberFormat as S } from "../../utils/numberFormat.js";
11
11
  import U, { r as u } from "../../_virtual/index.js";
12
12
  import V from "../../node_modules/d3-shape/src/line.js";
13
13
  import Z from "../../node_modules/d3-shape/src/curve/basis.js";
14
- function q(o, n, x = []) {
15
- const c = o.data, r = [`x: ${S(o.x)}`, `y: ${S(o.y)}`];
16
- n != null && n.label && r.unshift(`${n.label}: ${c[n.label]}`);
14
+ function q(i, n, x = []) {
15
+ const d = i.data, r = [`x: ${S(i.x)}`, `y: ${S(i.y)}`];
16
+ n != null && n.label && r.unshift(`${n.label}: ${d[n.label]}`);
17
17
  for (const t of x)
18
- r.push(`${t.label}: ${c[t.valueLabels ?? t.value]}`);
18
+ r.push(`${t.label}: ${d[t.valueLabels ?? t.value]}`);
19
19
  return r;
20
20
  }
21
- function b(o) {
22
- return typeof o == "string" ? o : o.label ?? o.value;
21
+ function b(i) {
22
+ return typeof i == "string" ? i : i.label ?? i.value;
23
23
  }
24
24
  const C = V().curve(Z);
25
25
  function J({
26
- scales: o,
26
+ scales: i,
27
27
  chartSettings: n,
28
28
  mainTitle: x,
29
- keyColumn: c,
29
+ keyColumn: d,
30
30
  margins: r,
31
31
  chartSizes: t,
32
32
  container: y,
@@ -38,7 +38,7 @@ function J({
38
38
  tooltipData: h
39
39
  }) {
40
40
  var v;
41
- const { title: $, xAxis: p, yAxis: f, frame: P, legend: A } = n, z = p.showTicks ? D : 0, I = f.showTicks ? D : 0, w = p.title, k = f.title, K = {
41
+ const { title: $, xAxis: p, yAxis: f, frame: P, legend: A } = n, z = p.showTicks ? D : 0, I = f.showTicks ? D : 0, w = p.title, W = f.title, K = {
42
42
  left: 0,
43
43
  right: t.chartWidth,
44
44
  top: 0,
@@ -46,20 +46,20 @@ function J({
46
46
  };
47
47
  if (!y)
48
48
  return null;
49
- const i = L.find((a) => a.type === "curve"), [T, _] = u.useState([]);
50
- function W() {
51
- const a = Object.entries(F).map(([d, s]) => ({
52
- key: d,
53
- d: i != null && i.smoothing ? C(s) ?? "" : s.map((l) => `${o.x(l.x)},${o.y(l.y)}`).join(" "),
49
+ const o = L.find((a) => a.type === "curve"), [k, _] = u.useState([]);
50
+ function T() {
51
+ const a = Object.entries(F).map(([c, s]) => ({
52
+ key: c,
53
+ d: o != null && o.smoothing ? C(s) ?? "" : s.map((l) => `${i.x(l.x)},${i.y(l.y)}`).join(" "),
54
54
  dot: s[0]
55
55
  }));
56
56
  _(a);
57
57
  }
58
58
  return u.useEffect(() => {
59
- i && (C.x((a) => o.x(a.x)).y((a) => o.y(a.y)), W());
60
- }, [j]), u.useEffect(() => {
61
- i && W();
62
- }, [i == null ? void 0 : i.smoothing]), /* @__PURE__ */ e.jsxs(
59
+ o && (C.x((a) => i.x(a.x)).y((a) => i.y(a.y)), T());
60
+ }, [j, t.chartWidth, t.chartHeight]), u.useEffect(() => {
61
+ o && T();
62
+ }, [o == null ? void 0 : o.smoothing]), /* @__PURE__ */ e.jsxs(
63
63
  "svg",
64
64
  {
65
65
  xmlns: "http://www.w3.org/2000/svg",
@@ -91,13 +91,13 @@ function J({
91
91
  children: b(w)
92
92
  }
93
93
  ),
94
- k && /* @__PURE__ */ e.jsx(
94
+ W && /* @__PURE__ */ e.jsx(
95
95
  "text",
96
96
  {
97
97
  x: -r.left + g / 2,
98
98
  y: t.chartHeight / 2,
99
99
  transform: `rotate(-90,${-r.left + g / 2},${t.chartHeight / 2})`,
100
- children: b(k)
100
+ children: b(W)
101
101
  }
102
102
  )
103
103
  ] }),
@@ -106,39 +106,39 @@ function J({
106
106
  {
107
107
  width: t.chartWidth,
108
108
  height: t.chartHeight,
109
- scaleX: o.x,
110
- scaleY: o.y,
109
+ scaleX: i.x,
110
+ scaleY: i.y,
111
111
  axisX: p,
112
112
  axisY: f,
113
113
  updatingKey: j,
114
114
  frameType: P.type
115
115
  }
116
116
  ),
117
- /* @__PURE__ */ e.jsx("g", { transform: `translate(0,${t.chartHeight})`, children: /* @__PURE__ */ e.jsx(E, { scale: o.x, orient: "bottom", tickSize: z }) }),
118
- /* @__PURE__ */ e.jsx("g", { children: /* @__PURE__ */ e.jsx(E, { scale: o.y, orient: "left", tickSize: I }) }),
119
- i && i.smoothing && /* @__PURE__ */ e.jsx("g", { clipPath: "url(#viewportClipPath)", children: T.map(({ key: a, d, dot: s }) => {
117
+ /* @__PURE__ */ e.jsx("g", { transform: `translate(0,${t.chartHeight})`, children: /* @__PURE__ */ e.jsx(E, { scale: i.x, orient: "bottom", tickSize: z }) }),
118
+ /* @__PURE__ */ e.jsx("g", { children: /* @__PURE__ */ e.jsx(E, { scale: i.y, orient: "left", tickSize: I }) }),
119
+ o && o.smoothing && /* @__PURE__ */ e.jsx("g", { clipPath: "url(#viewportClipPath)", children: k.map(({ key: a, d: c, dot: s }) => {
120
120
  var l;
121
121
  return /* @__PURE__ */ e.jsx(
122
122
  "path",
123
123
  {
124
- d,
124
+ d: c,
125
125
  fill: "none",
126
126
  stroke: m.dotFill(s.data),
127
- strokeWidth: (l = i.aes) == null ? void 0 : l.lineWidth,
127
+ strokeWidth: (l = o.aes) == null ? void 0 : l.lineWidth,
128
128
  strokeDasharray: m.lineType(s.data)
129
129
  },
130
130
  a
131
131
  );
132
132
  }) }),
133
- i && !i.smoothing && /* @__PURE__ */ e.jsx("g", { clipPath: "url(#viewportClipPath)", children: T.map(({ key: a, d, dot: s }) => {
133
+ o && !o.smoothing && /* @__PURE__ */ e.jsx("g", { clipPath: "url(#viewportClipPath)", children: k.map(({ key: a, d: c, dot: s }) => {
134
134
  var l;
135
135
  return /* @__PURE__ */ e.jsx(
136
136
  "polyline",
137
137
  {
138
- points: d,
138
+ points: c,
139
139
  fill: "none",
140
140
  stroke: m.dotFill(s.data),
141
- strokeWidth: (l = i.aes) == null ? void 0 : l.lineWidth,
141
+ strokeWidth: (l = o.aes) == null ? void 0 : l.lineWidth,
142
142
  strokeDasharray: m.lineType(s.data)
143
143
  },
144
144
  a
@@ -147,9 +147,9 @@ function J({
147
147
  h.selectedData && /* @__PURE__ */ e.jsx(
148
148
  N,
149
149
  {
150
- content: q(h.selectedData, c, (v = n.tooltips) == null ? void 0 : v.content),
151
- x: o.x(h.selectedData.x),
152
- y: o.y(h.selectedData.y),
150
+ content: q(h.selectedData, d, (v = n.tooltips) == null ? void 0 : v.content),
151
+ x: i.x(h.selectedData.x),
152
+ y: i.y(h.selectedData.y),
153
153
  active: !0,
154
154
  fixed: h.fixed,
155
155
  sideDistances: K,
@@ -163,8 +163,8 @@ function J({
163
163
  }
164
164
  );
165
165
  }
166
- const ct = U.memo(J);
166
+ const dt = U.memo(J);
167
167
  export {
168
- ct as default
168
+ dt as default
169
169
  };
170
170
  //# sourceMappingURL=LowerSVG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LowerSVG.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot-umap/components/LowerSVG.tsx"],"sourcesContent":["import { ChartsTitle } from '../../common/ChartsTitle';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport fonts from '../../common/fonts';\nimport { Legend } from '../../common/Legend';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport type { LegendData } from '../../common/types';\nimport { BLACK } from '../../constants';\nimport { DEFAULT_TICKS_SIZE, LEGEND_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotUmapSettingsImpl } from '../SettingsImpl';\nimport type { CaptionsSizes, ChartScales, ChartSizes, Dot, DotInfo, Margins, SVGLayerProps } from '../types';\nimport { Axis } from '../../scatterplot/components/Axis';\nimport type { ColumnName } from '../../types';\nimport type { CurveUmapLayer } from '../../types/scatterplot-umap';\nimport { numberFormat } from '../../utils/numberFormat';\nimport { curveBasis, line } from 'd3-shape';\nimport React, { useEffect, useState } from 'react';\n\nfunction getTooltipContent(dot: DotInfo, keyColumn: ColumnName | null, columnsList: ColumnName[] = []) {\n const row = dot.data;\n const lines = [`x: ${numberFormat(dot.x)}`, `y: ${numberFormat(dot.y)}`];\n if (keyColumn?.label) {\n lines.unshift(`${keyColumn.label}: ${row[keyColumn.label]}`);\n }\n for (const column of columnsList) {\n lines.push(`${column.label}: ${row[column.valueLabels ?? column.value]}`);\n }\n return lines;\n}\n\nfunction getTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.label ?? title.value;\n}\n\nconst lineGenerator = line<Dot>().curve(curveBasis);\n\nfunction LowerSvg({\n scales,\n chartSettings,\n mainTitle,\n keyColumn,\n margins,\n chartSizes,\n container,\n zoomStateKey,\n legendData,\n dotsByGrouping,\n layers,\n aesGetters,\n tooltipData\n}: {\n aesGetters: SVGLayerProps['aesGetters'];\n scales: ChartScales;\n chartSettings: ScatterplotUmapSettingsImpl['chartSettings'];\n mainTitle: string[];\n keyColumn: ColumnName | null;\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n selectedDot?: DotInfo | null;\n container: SVGElement | null;\n zoomStateKey: string;\n legendData: LegendData;\n dotsByGrouping: Record<string, Dot[]>;\n layers: ScatterplotUmapSettingsImpl['layers'];\n tooltipData: TooltipsData<DotInfo>;\n}) {\n const {title, xAxis, yAxis, frame, legend} = chartSettings;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const xTitle = xAxis.title;\n const yTitle = yAxis.title;\n const needLeftAxis = true;\n const needBottomAxis = true;\n\n const sideDistances = {\n left: 0,\n right: chartSizes.chartWidth,\n top: 0,\n bottom: chartSizes.chartHeight,\n };\n\n if (!container) {\n return null;\n }\n\n const curveLayer = layers.find(layer => layer.type === 'curve') as CurveUmapLayer | undefined;\n const [lines, setLines] = useState<{key: string, d:string, dot: Dot}[]>([]);\n\n function updateLines() {\n const data = Object.entries(dotsByGrouping);\n const nextLines = data.map(([key, dots]) => ({\n key,\n d: curveLayer?.smoothing ? lineGenerator(dots) ?? '' : dots.map(d => `${scales.x(d.x)},${scales.y(d.y)}`).join(' '),\n dot: dots[0]\n }));\n setLines(nextLines);\n }\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n lineGenerator\n .x((d: Dot) => scales.x(d.x))\n .y((d: Dot) => scales.y(d.y));\n updateLines();\n }, [zoomStateKey]);\n\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n updateLines();\n }, [curveLayer?.smoothing]);\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${chartSizes.totalWidth} ${chartSizes.totalHeight}`}\n width={chartSizes.totalWidth}\n height={chartSizes.totalHeight}\n style={{pointerEvents: 'none'}}\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`} fontFamily=\"Manrope\">\n <clipPath id=\"viewportClipPath\">\n <rect x=\"0\" y=\"0\" width={chartSizes.chartWidth} height={chartSizes.chartHeight}/>\n </clipPath>\n <ChartsTitle\n title={mainTitle}\n show={title.show}\n position={title.position}\n leftPadding={margins.left}\n rightPadding={margins.right}\n chartsWidth={chartSizes.chartWidth}\n />\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {xTitle && (\n <text\n x={chartSizes.chartWidth / 2}\n y={chartSizes.chartHeight + margins.bottom - TITLE_LINE / 2}\n >\n {getTitle(xTitle)}\n </text>\n )}\n {yTitle && (\n <text\n x={-margins.left + TITLE_LINE / 2}\n y={chartSizes.chartHeight / 2}\n transform={`rotate(-90,${-margins.left + TITLE_LINE / 2},${\n chartSizes.chartHeight / 2\n })`}\n >\n {getTitle(yTitle)}\n </text>\n )}\n </g>\n <ContinuousGrid\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n updatingKey={zoomStateKey}\n frameType={frame.type}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${chartSizes.chartHeight})`}>\n <Axis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} />\n </g>\n )}\n {needLeftAxis && (\n <g>\n <Axis scale={scales.y} orient=\"left\" tickSize={tickSizeY} />\n </g>\n )}\n {curveLayer && curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <path\n key={key}\n d={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.data)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.data)}\n />\n ))}\n </g>\n )}\n {curveLayer && !curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <polyline\n key={key}\n points={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.data)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.data)}\n />\n ))}\n </g>\n )}\n {tooltipData.selectedData && (\n <Tooltip\n content={getTooltipContent(tooltipData.selectedData, keyColumn, chartSettings.tooltips?.content)}\n x={scales.x(tooltipData.selectedData.x)}\n y={scales.y(tooltipData.selectedData.y)}\n active={true}\n fixed={tooltipData.fixed}\n sideDistances={sideDistances}\n container={container}\n onClose={tooltipData.onClose}\n />\n )}\n {legend.show && (\n <g transform={`translate(${chartSizes.chartWidth + LEGEND_OFFSET},0)`}>\n <Legend legendData={legendData} />\n </g>\n )}\n </g>\n </svg>\n );\n}\n\nexport default React.memo(LowerSvg);\n"],"names":["getTooltipContent","dot","keyColumn","columnsList","row","lines","numberFormat","column","getTitle","title","lineGenerator","line","curveBasis","LowerSvg","scales","chartSettings","mainTitle","margins","chartSizes","container","zoomStateKey","legendData","dotsByGrouping","layers","aesGetters","tooltipData","xAxis","yAxis","frame","legend","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","xTitle","yTitle","sideDistances","curveLayer","layer","setLines","useState","updateLines","nextLines","key","dots","d","useEffect","jsxs","jsx","fonts","ChartsTitle","BLACK","TITLE_LINE","ContinuousGrid","Axis","x","_a","e","Tooltip","LEGEND_OFFSET","Legend","LowerSvg$1","React"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"LowerSVG.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot-umap/components/LowerSVG.tsx"],"sourcesContent":["import { ChartsTitle } from '../../common/ChartsTitle';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport fonts from '../../common/fonts';\nimport { Legend } from '../../common/Legend';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport type { LegendData } from '../../common/types';\nimport { BLACK } from '../../constants';\nimport { DEFAULT_TICKS_SIZE, LEGEND_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotUmapSettingsImpl } from '../SettingsImpl';\nimport type { CaptionsSizes, ChartScales, ChartSizes, Dot, DotInfo, Margins, SVGLayerProps } from '../types';\nimport { Axis } from '../../scatterplot/components/Axis';\nimport type { ColumnName } from '../../types';\nimport type { CurveUmapLayer } from '../../types/scatterplot-umap';\nimport { numberFormat } from '../../utils/numberFormat';\nimport { curveBasis, line } from 'd3-shape';\nimport React, { useEffect, useState } from 'react';\n\nfunction getTooltipContent(dot: DotInfo, keyColumn: ColumnName | null, columnsList: ColumnName[] = []) {\n const row = dot.data;\n const lines = [`x: ${numberFormat(dot.x)}`, `y: ${numberFormat(dot.y)}`];\n if (keyColumn?.label) {\n lines.unshift(`${keyColumn.label}: ${row[keyColumn.label]}`);\n }\n for (const column of columnsList) {\n lines.push(`${column.label}: ${row[column.valueLabels ?? column.value]}`);\n }\n return lines;\n}\n\nfunction getTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.label ?? title.value;\n}\n\nconst lineGenerator = line<Dot>().curve(curveBasis);\n\nfunction LowerSvg({\n scales,\n chartSettings,\n mainTitle,\n keyColumn,\n margins,\n chartSizes,\n container,\n zoomStateKey,\n legendData,\n dotsByGrouping,\n layers,\n aesGetters,\n tooltipData\n}: {\n aesGetters: SVGLayerProps['aesGetters'];\n scales: ChartScales;\n chartSettings: ScatterplotUmapSettingsImpl['chartSettings'];\n mainTitle: string[];\n keyColumn: ColumnName | null;\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n selectedDot?: DotInfo | null;\n container: SVGElement | null;\n zoomStateKey: string;\n legendData: LegendData;\n dotsByGrouping: Record<string, Dot[]>;\n layers: ScatterplotUmapSettingsImpl['layers'];\n tooltipData: TooltipsData<DotInfo>;\n}) {\n const {title, xAxis, yAxis, frame, legend} = chartSettings;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const xTitle = xAxis.title;\n const yTitle = yAxis.title;\n const needLeftAxis = true;\n const needBottomAxis = true;\n\n const sideDistances = {\n left: 0,\n right: chartSizes.chartWidth,\n top: 0,\n bottom: chartSizes.chartHeight,\n };\n\n if (!container) {\n return null;\n }\n\n const curveLayer = layers.find(layer => layer.type === 'curve') as CurveUmapLayer | undefined;\n const [lines, setLines] = useState<{key: string, d:string, dot: Dot}[]>([]);\n\n function updateLines() {\n const data = Object.entries(dotsByGrouping);\n const nextLines = data.map(([key, dots]) => ({\n key,\n d: curveLayer?.smoothing ? lineGenerator(dots) ?? '' : dots.map(d => `${scales.x(d.x)},${scales.y(d.y)}`).join(' '),\n dot: dots[0]\n }));\n setLines(nextLines);\n }\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n lineGenerator\n .x((d: Dot) => scales.x(d.x))\n .y((d: Dot) => scales.y(d.y));\n updateLines();\n }, [zoomStateKey, chartSizes.chartWidth, chartSizes.chartHeight]);\n\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n updateLines();\n }, [curveLayer?.smoothing]);\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${chartSizes.totalWidth} ${chartSizes.totalHeight}`}\n width={chartSizes.totalWidth}\n height={chartSizes.totalHeight}\n style={{pointerEvents: 'none'}}\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`} fontFamily=\"Manrope\">\n <clipPath id=\"viewportClipPath\">\n <rect x=\"0\" y=\"0\" width={chartSizes.chartWidth} height={chartSizes.chartHeight}/>\n </clipPath>\n <ChartsTitle\n title={mainTitle}\n show={title.show}\n position={title.position}\n leftPadding={margins.left}\n rightPadding={margins.right}\n chartsWidth={chartSizes.chartWidth}\n />\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {xTitle && (\n <text\n x={chartSizes.chartWidth / 2}\n y={chartSizes.chartHeight + margins.bottom - TITLE_LINE / 2}\n >\n {getTitle(xTitle)}\n </text>\n )}\n {yTitle && (\n <text\n x={-margins.left + TITLE_LINE / 2}\n y={chartSizes.chartHeight / 2}\n transform={`rotate(-90,${-margins.left + TITLE_LINE / 2},${\n chartSizes.chartHeight / 2\n })`}\n >\n {getTitle(yTitle)}\n </text>\n )}\n </g>\n <ContinuousGrid\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n updatingKey={zoomStateKey}\n frameType={frame.type}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${chartSizes.chartHeight})`}>\n <Axis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} />\n </g>\n )}\n {needLeftAxis && (\n <g>\n <Axis scale={scales.y} orient=\"left\" tickSize={tickSizeY} />\n </g>\n )}\n {curveLayer && curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <path\n key={key}\n d={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.data)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.data)}\n />\n ))}\n </g>\n )}\n {curveLayer && !curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <polyline\n key={key}\n points={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.data)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.data)}\n />\n ))}\n </g>\n )}\n {tooltipData.selectedData && (\n <Tooltip\n content={getTooltipContent(tooltipData.selectedData, keyColumn, chartSettings.tooltips?.content)}\n x={scales.x(tooltipData.selectedData.x)}\n y={scales.y(tooltipData.selectedData.y)}\n active={true}\n fixed={tooltipData.fixed}\n sideDistances={sideDistances}\n container={container}\n onClose={tooltipData.onClose}\n />\n )}\n {legend.show && (\n <g transform={`translate(${chartSizes.chartWidth + LEGEND_OFFSET},0)`}>\n <Legend legendData={legendData} />\n </g>\n )}\n </g>\n </svg>\n );\n}\n\nexport default React.memo(LowerSvg);\n"],"names":["getTooltipContent","dot","keyColumn","columnsList","row","lines","numberFormat","column","getTitle","title","lineGenerator","line","curveBasis","LowerSvg","scales","chartSettings","mainTitle","margins","chartSizes","container","zoomStateKey","legendData","dotsByGrouping","layers","aesGetters","tooltipData","xAxis","yAxis","frame","legend","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","xTitle","yTitle","sideDistances","curveLayer","layer","setLines","useState","updateLines","nextLines","key","dots","d","useEffect","jsxs","jsx","fonts","ChartsTitle","BLACK","TITLE_LINE","ContinuousGrid","Axis","_a","e","Tooltip","LEGEND_OFFSET","Legend","LowerSvg$1","React"],"mappings":"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","x_google_ignoreList":[0]}
@@ -85,7 +85,7 @@ class H extends L {
85
85
  return t.grouping.length !== a.grouping.length || t.grouping.some((d, o) => {
86
86
  var c;
87
87
  return d.value !== ((c = a.grouping[o]) == null ? void 0 : c.value);
88
- }) || (((e = t.label) == null ? void 0 : e.value) || ((s = a.label) == null ? void 0 : s.value)) && ((n = t.label) == null ? void 0 : n.value) !== ((i = a.label) == null ? void 0 : i.value);
88
+ }) || t.layers.length !== a.layers.length || t.layers.some((d, o) => d.type !== a.layers[o].type) || (((e = t.label) == null ? void 0 : e.value) || ((s = a.label) == null ? void 0 : s.value)) && ((n = t.label) == null ? void 0 : n.value) !== ((i = a.label) == null ? void 0 : i.value);
89
89
  }
90
90
  _needUpdateCalculatedDataByData(t, a) {
91
91
  const e = Object.keys(t.data), s = Object.keys(a.data);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot-umap/index.ts"],"sourcesContent":["import { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport { addPalettesToAesMapping, createLegendInfo } from '../scatterplot/utils/createLegendInfo';\nimport type { Label } from '../scatterplot/utils/getVisibleLabels';\nimport type { AesItem, ContinuousAesFromColumn, InheritAesScatterplot, ScatterplotEventHandlers } from '../types';\nimport type { ScatterplotUmapLegendInfo, ScatterplotUmapSettings } from '../types/scatterplot-umap';\nimport { TextMeasurer } from '../utils/TextMeasurer';\nimport ChartRenderer from './ChartRenderer';\nimport { SCATTERPLOT_LASSO_EVENTS } from './constants';\nimport type { DotsLayer } from './SettingsImpl';\nimport { ScatterplotUmapSettingsImpl } from './SettingsImpl';\nimport type { Dot, DotsExtents, LassoControlsState, LassoMode, Polygon } from './types';\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\n\nconst LABEL_OFFSET = 10;\nfunction getAllPossibleLabels(dots: Dot[]) {\n const labels: Label[] = [];\n const textMeasurer = new TextMeasurer('16px Manrope');\n for (const dot of dots) {\n const text = dot.label;\n if (!text) {\n continue;\n }\n const metrics = textMeasurer.getTextMetrics(String(text));\n labels.push({\n name: String(text),\n width: metrics?.width ?? 0,\n height: (metrics?.actualBoundingBoxAscent ?? 0) + (metrics?.actualBoundingBoxDescent ?? 0),\n x: 0,\n y: 0,\n xPosition: 'right',\n yPosition: 'middle',\n dot,\n padding: LABEL_OFFSET,\n bbox: {minX: 0, maxX: 0, minY: 0, maxY: 0},\n outerBBox: {minX: 0, maxX: 0, minY: 0, maxY: 0},\n } as Label);\n }\n return labels;\n}\n\nexport class ChartScatterplotUmap extends AbstractChart {\n settings: ScatterplotUmapSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onPolygonUpdate: (data: number[], polygons: Polygon[]) => void = () => undefined; // dots indexes from input data\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n onLassoControlsStateUpdate: (v: LassoControlsState) => void = () => undefined;\n\n calculatedData: {\n dots: Dot[],\n groupingKeys: string[],\n dotsByGrouping: Record<string, Dot[]>,\n allPossibleLabels: Label[],\n dotsExtents: DotsExtents,\n legendLabels: ScatterplotUmapLegendInfo\n } | null = null;\n\n constructor(data: DataFrame, settings: ScatterplotUmapSettings, eventHandlers?: ScatterplotEventHandlers) {\n super(data, settings);\n\n this.settings = new ScatterplotUmapSettingsImpl(settings);\n if (eventHandlers) {\n this.onPolygonUpdate = eventHandlers.onPolygonUpdate;\n this.onTooltipHintSwitch = eventHandlers.onTooltipHintSwitch;\n this.onLassoControlsStateUpdate = eventHandlers.onLassoControlsStateUpdate;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: ScatterplotUmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new ScatterplotUmapSettingsImpl(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\n // for some reason it's not enough for size updating to do like with fillColor\n const prevLayer = previousSettings.layers.find(l => l.type === 'dots') as DotsLayer;\n const currentLayer = this.settings.layers.find(l => l.type === 'dots') as DotsLayer;\n if (prevLayer && currentLayer && prevLayer.aes.dotSize !== currentLayer.aes.dotSize\n && typeof prevLayer.aes.dotSize === 'number' && typeof currentLayer.aes.dotSize === 'number') {\n this.chartRenderer.updatePointSize();\n }\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n updateChartState(field: string, value: unknown) {\n if (field === 'polygon') {\n this.chartRenderer.polygons = value as Polygon[];\n this._updateChart();\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.delete) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.delete);\n document.dispatchEvent(event);\n }}\n if (field === SCATTERPLOT_LASSO_EVENTS.selectMode) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.selectMode, {detail: value as LassoMode});\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.forward) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.forward);\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.back) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.back);\n document.dispatchEvent(event);\n }\n }\n }\n\n export(): string {\n console.warn('export not implemented');\n return '';\n // this._updateChart();\n // return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: ScatterplotUmapSettingsImpl, settings: ScatterplotUmapSettingsImpl) {\n return (\n prevSettings.grouping.length !== settings.grouping.length ||\n prevSettings.grouping.some((el, idx) => el.value !== settings.grouping[idx]?.value) ||\n (prevSettings.label?.value || settings.label?.value) && prevSettings.label?.value !== settings.label?.value\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 {x, y, label, highlight, grouping, layers, inheritedAes} = this.settings;\n\n const dotsExtents = {\n minX: Infinity,\n maxX: -Infinity,\n minY: Infinity,\n maxY: -Infinity,\n };\n\n const hasCurve = layers.some(layer => layer.type === 'curve');\n const groupingKeysSet = new Set<string>();\n const dotsByGrouping:Record<string, Dot[]> = {};\n\n const dots = this.data.rows.reduce((res:Dot[], row, idx) => {\n if (row[x.value] === null || row[y.value] === null) {\n return res;\n }\n const xv = Number(row[x.value]);\n const yv = Number(row[y.value]);\n\n if (xv !== null && xv < dotsExtents.minX) {\n dotsExtents.minX = xv;\n }\n if (xv !== null && xv > dotsExtents.maxX) {\n dotsExtents.maxX = xv;\n }\n if (yv !== null && yv < dotsExtents.minY) {\n dotsExtents.minY = yv;\n }\n if (yv !== null && yv > dotsExtents.maxY) {\n dotsExtents.maxY = yv;\n }\n const labelKey = label?.valueLabels ?? label?.value;\n const dot = {\n x: xv,\n y: yv,\n id: String(idx),\n idx: idx,\n dimmed: highlight ? !row[highlight.value] : false,\n label: labelKey && row[labelKey] ? String(row[labelKey]) : null,\n data: row\n };\n if (hasCurve) {\n const groupingKey = grouping.map(column => row[column.value]).join('_');\n groupingKeysSet.add(groupingKey);\n if (!dotsByGrouping[groupingKey]) {\n dotsByGrouping[groupingKey] = [];\n }\n dotsByGrouping[groupingKey].push(dot);\n\n }\n res.push(dot);\n return res;\n }, []);\n\n if (highlight) {\n dots.sort((d1, d2) => {\n return Number(d2.dimmed) - Number(d1.dimmed);\n });\n }\n\n const groupingKeys = [...groupingKeysSet];\n if (hasCurve) {\n groupingKeys.forEach(key => {\n dotsByGrouping[key].sort((a, b) => a.x - b.x);\n });\n }\n const legendLabels = createLegendInfo(this.data, grouping, layers, inheritedAes);\n\n this.calculatedData = {\n dots,\n dotsByGrouping,\n groupingKeys,\n allPossibleLabels: getAllPossibleLabels(dots),\n dotsExtents,\n legendLabels,\n };\n\n this.chartRenderer.updateData(dots);\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n const {layers, inheritedAes, grouping} = this.settings;\n grouping.forEach(column => {\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes:Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (layer.aes) {\n Object.entries(layer.aes).forEach(([key, value]) => {\n if (isInheritMapping(value) && value.value === column.value) {\n usedAes.add(key as keyof AesItem);\n if (value.palette) {\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n }\n }\n });\n }\n });\n calculated.legendLabels[column.value].usedAes = [...usedAes];\n calculated.legendLabels[column.value].aesMap = addPalettesToAesMapping(calculated.legendLabels[column.value].values, usedAesFromPalettes, inheritedAes[column.value]);\n });\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, keyColumn, layers, grouping} = this.settings;\n this.chartRenderer.render(\n id,\n chartSettings,\n keyColumn,\n this.calculatedData.dots,\n this.calculatedData.dotsExtents,\n this.calculatedData.dotsByGrouping,\n layers,\n this.calculatedData.legendLabels,\n grouping,\n this.calculatedData.allPossibleLabels,\n this.onPolygonUpdate,\n this.onTooltipHintSwitch,\n this.onLassoControlsStateUpdate\n );\n }\n}\n"],"names":["isInheritMapping","value","LABEL_OFFSET","getAllPossibleLabels","dots","labels","textMeasurer","TextMeasurer","dot","text","metrics","ChartScatterplotUmap","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","ScatterplotUmapSettingsImpl","node","err","previousSettings","previousData","prevLayer","l","currentLayer","field","SCATTERPLOT_LASSO_EVENTS","event","prevSettings","el","idx","_a","_b","_c","_d","prevData","prevKeys","keys","s","key","x","y","label","highlight","grouping","layers","inheritedAes","dotsExtents","hasCurve","layer","groupingKeysSet","dotsByGrouping","res","row","xv","yv","labelKey","groupingKey","column","d1","d2","groupingKeys","a","b","legendLabels","createLegendInfo","calculated","usedAes","usedAesFromPalettes","addPalettesToAesMapping","id","chartSettings","keyColumn"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot-umap/index.ts"],"sourcesContent":["import { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport { addPalettesToAesMapping, createLegendInfo } from '../scatterplot/utils/createLegendInfo';\nimport type { Label } from '../scatterplot/utils/getVisibleLabels';\nimport type { AesItem, ContinuousAesFromColumn, InheritAesScatterplot, ScatterplotEventHandlers } from '../types';\nimport type { ScatterplotUmapLegendInfo, ScatterplotUmapSettings } from '../types/scatterplot-umap';\nimport { TextMeasurer } from '../utils/TextMeasurer';\nimport ChartRenderer from './ChartRenderer';\nimport { SCATTERPLOT_LASSO_EVENTS } from './constants';\nimport type { DotsLayer } from './SettingsImpl';\nimport { ScatterplotUmapSettingsImpl } from './SettingsImpl';\nimport type { Dot, DotsExtents, LassoControlsState, LassoMode, Polygon } from './types';\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\n\nconst LABEL_OFFSET = 10;\nfunction getAllPossibleLabels(dots: Dot[]) {\n const labels: Label[] = [];\n const textMeasurer = new TextMeasurer('16px Manrope');\n for (const dot of dots) {\n const text = dot.label;\n if (!text) {\n continue;\n }\n const metrics = textMeasurer.getTextMetrics(String(text));\n labels.push({\n name: String(text),\n width: metrics?.width ?? 0,\n height: (metrics?.actualBoundingBoxAscent ?? 0) + (metrics?.actualBoundingBoxDescent ?? 0),\n x: 0,\n y: 0,\n xPosition: 'right',\n yPosition: 'middle',\n dot,\n padding: LABEL_OFFSET,\n bbox: {minX: 0, maxX: 0, minY: 0, maxY: 0},\n outerBBox: {minX: 0, maxX: 0, minY: 0, maxY: 0},\n } as Label);\n }\n return labels;\n}\n\nexport class ChartScatterplotUmap extends AbstractChart {\n settings: ScatterplotUmapSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onPolygonUpdate: (data: number[], polygons: Polygon[]) => void = () => undefined; // dots indexes from input data\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n onLassoControlsStateUpdate: (v: LassoControlsState) => void = () => undefined;\n\n calculatedData: {\n dots: Dot[],\n groupingKeys: string[],\n dotsByGrouping: Record<string, Dot[]>,\n allPossibleLabels: Label[],\n dotsExtents: DotsExtents,\n legendLabels: ScatterplotUmapLegendInfo\n } | null = null;\n\n constructor(data: DataFrame, settings: ScatterplotUmapSettings, eventHandlers?: ScatterplotEventHandlers) {\n super(data, settings);\n\n this.settings = new ScatterplotUmapSettingsImpl(settings);\n if (eventHandlers) {\n this.onPolygonUpdate = eventHandlers.onPolygonUpdate;\n this.onTooltipHintSwitch = eventHandlers.onTooltipHintSwitch;\n this.onLassoControlsStateUpdate = eventHandlers.onLassoControlsStateUpdate;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: ScatterplotUmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new ScatterplotUmapSettingsImpl(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\n // for some reason it's not enough for size updating to do like with fillColor\n const prevLayer = previousSettings.layers.find(l => l.type === 'dots') as DotsLayer;\n const currentLayer = this.settings.layers.find(l => l.type === 'dots') as DotsLayer;\n if (prevLayer && currentLayer && prevLayer.aes.dotSize !== currentLayer.aes.dotSize\n && typeof prevLayer.aes.dotSize === 'number' && typeof currentLayer.aes.dotSize === 'number') {\n this.chartRenderer.updatePointSize();\n }\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n updateChartState(field: string, value: unknown) {\n if (field === 'polygon') {\n this.chartRenderer.polygons = value as Polygon[];\n this._updateChart();\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.delete) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.delete);\n document.dispatchEvent(event);\n }}\n if (field === SCATTERPLOT_LASSO_EVENTS.selectMode) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.selectMode, {detail: value as LassoMode});\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.forward) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.forward);\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.back) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.back);\n document.dispatchEvent(event);\n }\n }\n }\n\n export(): string {\n console.warn('export not implemented');\n return '';\n // this._updateChart();\n // return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: ScatterplotUmapSettingsImpl, settings: ScatterplotUmapSettingsImpl) {\n return (\n prevSettings.grouping.length !== settings.grouping.length ||\n prevSettings.grouping.some((el, idx) => el.value !== settings.grouping[idx]?.value) ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n (prevSettings.label?.value || settings.label?.value) && prevSettings.label?.value !== settings.label?.value\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 {x, y, label, highlight, grouping, layers, inheritedAes} = this.settings;\n\n const dotsExtents = {\n minX: Infinity,\n maxX: -Infinity,\n minY: Infinity,\n maxY: -Infinity,\n };\n\n const hasCurve = layers.some(layer => layer.type === 'curve');\n const groupingKeysSet = new Set<string>();\n const dotsByGrouping:Record<string, Dot[]> = {};\n\n const dots = this.data.rows.reduce((res:Dot[], row, idx) => {\n if (row[x.value] === null || row[y.value] === null) {\n return res;\n }\n const xv = Number(row[x.value]);\n const yv = Number(row[y.value]);\n\n if (xv !== null && xv < dotsExtents.minX) {\n dotsExtents.minX = xv;\n }\n if (xv !== null && xv > dotsExtents.maxX) {\n dotsExtents.maxX = xv;\n }\n if (yv !== null && yv < dotsExtents.minY) {\n dotsExtents.minY = yv;\n }\n if (yv !== null && yv > dotsExtents.maxY) {\n dotsExtents.maxY = yv;\n }\n const labelKey = label?.valueLabels ?? label?.value;\n const dot = {\n x: xv,\n y: yv,\n id: String(idx),\n idx: idx,\n dimmed: highlight ? !row[highlight.value] : false,\n label: labelKey && row[labelKey] ? String(row[labelKey]) : null,\n data: row\n };\n if (hasCurve) {\n const groupingKey = grouping.map(column => row[column.value]).join('_');\n groupingKeysSet.add(groupingKey);\n if (!dotsByGrouping[groupingKey]) {\n dotsByGrouping[groupingKey] = [];\n }\n dotsByGrouping[groupingKey].push(dot);\n\n }\n res.push(dot);\n return res;\n }, []);\n\n if (highlight) {\n dots.sort((d1, d2) => {\n return Number(d2.dimmed) - Number(d1.dimmed);\n });\n }\n\n const groupingKeys = [...groupingKeysSet];\n if (hasCurve) {\n groupingKeys.forEach(key => {\n dotsByGrouping[key].sort((a, b) => a.x - b.x);\n });\n }\n const legendLabels = createLegendInfo(this.data, grouping, layers, inheritedAes);\n\n this.calculatedData = {\n dots,\n dotsByGrouping,\n groupingKeys,\n allPossibleLabels: getAllPossibleLabels(dots),\n dotsExtents,\n legendLabels,\n };\n\n this.chartRenderer.updateData(dots);\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n const {layers, inheritedAes, grouping} = this.settings;\n grouping.forEach(column => {\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes:Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (layer.aes) {\n Object.entries(layer.aes).forEach(([key, value]) => {\n if (isInheritMapping(value) && value.value === column.value) {\n usedAes.add(key as keyof AesItem);\n if (value.palette) {\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n }\n }\n });\n }\n });\n calculated.legendLabels[column.value].usedAes = [...usedAes];\n calculated.legendLabels[column.value].aesMap = addPalettesToAesMapping(calculated.legendLabels[column.value].values, usedAesFromPalettes, inheritedAes[column.value]);\n });\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, keyColumn, layers, grouping} = this.settings;\n this.chartRenderer.render(\n id,\n chartSettings,\n keyColumn,\n this.calculatedData.dots,\n this.calculatedData.dotsExtents,\n this.calculatedData.dotsByGrouping,\n layers,\n this.calculatedData.legendLabels,\n grouping,\n this.calculatedData.allPossibleLabels,\n this.onPolygonUpdate,\n this.onTooltipHintSwitch,\n this.onLassoControlsStateUpdate\n );\n }\n}\n"],"names":["isInheritMapping","value","LABEL_OFFSET","getAllPossibleLabels","dots","labels","textMeasurer","TextMeasurer","dot","text","metrics","ChartScatterplotUmap","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","ScatterplotUmapSettingsImpl","node","err","previousSettings","previousData","prevLayer","l","currentLayer","field","SCATTERPLOT_LASSO_EVENTS","event","prevSettings","el","idx","_a","_b","_c","_d","prevData","prevKeys","keys","s","key","x","y","label","highlight","grouping","layers","inheritedAes","dotsExtents","hasCurve","layer","groupingKeysSet","dotsByGrouping","res","row","xv","yv","labelKey","groupingKey","column","d1","d2","groupingKeys","a","b","legendLabels","createLegendInfo","calculated","usedAes","usedAesFromPalettes","addPalettesToAesMapping","id","chartSettings","keyColumn"],"mappings":"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","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/graph-maker",
3
- "version": "1.1.136",
3
+ "version": "1.1.138",
4
4
  "type": "module",
5
5
  "main": "dist/lib.js",
6
6
  "types": "dist/lib.d.ts",
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "@ag-grid-community/core": "^32.3.3",
39
39
  "@milaboratories/helpers": "^1.6.15",
40
- "@milaboratories/miplots4": "^1.0.128",
40
+ "@milaboratories/miplots4": "^1.0.129",
41
41
  "@milaboratories/pf-plots": "^1.1.25",
42
42
  "@platforma-sdk/model": "^1.39.8",
43
43
  "@platforma-sdk/ui-vue": "^1.39.16",
@@ -1 +0,0 @@
1
- {"version":3,"file":"AxesIcon.vue.d.ts","sourceRoot":"","sources":["../../../src/GraphMaker/icons/AxesIcon.vue"],"names":[],"mappings":";AA2DA,wBAMG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AxesIcon.vue.js","sources":["../../../src/GraphMaker/icons/AxesIcon.vue"],"sourcesContent":["<template>\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M23.25 17.75V14H24.75V17.75H26V19.25H24.75V23.25H28.75V22H30.25V23.25H34V24.75H30.25V26H28.75V24.75H24.75V28.75H26V30.25H24.75V34H23.25V30.25H22V28.75H23.25V24.75H19.25V26H17.75V24.75H14V23.25H17.75V22H19.25V23.25H23.25V19.25H22V17.75H23.25Z\" fill=\"#110529\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.4697 15.5303L17.7501 17.8107V20H19.2501V17.8107L21.5304 15.5303L20.4697 14.4697L18.5001 16.4393L16.5304 14.4697L15.4697 15.5303ZM27.4697 28.5303L29.4394 30.5L27.4697 32.4697L28.5304 33.5303L30.5001 31.5607L32.4697 33.5303L33.5304 32.4697L31.5607 30.5L33.5304 28.5303L32.4697 27.4697L30.5001 29.4393L28.5304 27.4697L27.4697 28.5303Z\" fill=\"#07AD3E\"/>\n </svg>\n</template>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_cache","_createElementVNode"],"mappings":";;;EACO,OAAM;AAAA,EAAK,QAAO;AAAA,EAAK,SAAQ;AAAA,EAAY,MAAK;AAAA,EAAO,OAAM;;;AAAlE,SAAAA,EAAA,GAAAC,EAGM,OAHNC,GAGMC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,IAFJC,EAAoT,QAAA;AAAA,MAA9S,aAAU;AAAA,MAAU,aAAU;AAAA,MAAU,GAAE;AAAA,MAAoP,MAAK;AAAA;IACzSA,EAAkZ,QAAA;AAAA,MAA5Y,aAAU;AAAA,MAAU,aAAU;AAAA,MAAU,GAAE;AAAA,MAAkV,MAAK;AAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeleteChartIcon.vue.d.ts","sourceRoot":"","sources":["../../../src/GraphMaker/icons/DeleteChartIcon.vue"],"names":[],"mappings":";AA0EA,wBAMG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeleteChartIcon.vue.js","sources":["../../../src/GraphMaker/icons/DeleteChartIcon.vue"],"sourcesContent":["<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.5 3.75002C7.5 3.05967 8.05964 2.50002 8.75 2.50002L15.25 2.5C15.9404 2.5 16.5 3.05964 16.5 3.75V5.50004L20.5 5.50006V7.00006L19 7.00006H17.5L6.5 7.00004H5L3.5 7V5.5L7.5 5.50006V3.75002ZM9 5.50006L15 5.50004V4L9 4.00002V5.50006Z\" fill=\"#110529\"/>\n <path d=\"M17.5 7.00006V12.5H19V7.00006H17.5Z\" fill=\"#110529\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.5 17.75C6.5 18.9926 7.50736 20 8.75 20H12V21.5H8.75C6.67893 21.5 5 19.8211 5 17.75V8.50006H6.5V17.75Z\" fill=\"#110529\"/>\n <path d=\"M6.5 7.00004H5V8.50006H6.5V7.00004Z\" fill=\"#110529\"/>\n <path d=\"M14.75 14.5L18.25 18M21.75 21.5L18.25 18M18.25 18L21.75 14.5M18.25 18L14.75 21.5\" stroke=\"#07AD3E\" stroke-width=\"1.5\"/>\n </svg>\n</template>"],"names":["_openBlock","_createElementBlock","_hoisted_1","_cache","_createStaticVNode"],"mappings":";;;EACO,OAAM;AAAA,EAA6B,OAAM;AAAA,EAAK,QAAO;AAAA,EAAK,SAAQ;AAAA,EAAY,MAAK;;;AAAxF,SAAAA,EAAA,GAAAC,EAMM,OANNC,GAMMC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,IAPRC,EAAA,kvBAAA,CAAA;AAAA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExportIcon.vue.d.ts","sourceRoot":"","sources":["../../../src/GraphMaker/icons/ExportIcon.vue"],"names":[],"mappings":";AAkEA,wBAMG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExportIcon.vue.js","sources":["../../../src/GraphMaker/icons/ExportIcon.vue"],"sourcesContent":["<template>\n <svg class=\"export-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g id=\"Icon\">\n <path id=\"Rectangle 4179\" d=\"M3 17V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V17\" stroke=\"#07AD3E\" stroke-width=\"1.5\"/>\n <path id=\"Vector 1335\" d=\"M18 10L12 16M12 16L6 10M12 16L12 2\" stroke=\"black\" stroke-width=\"1.5\"/>\n </g>\n </svg>\n</template>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_cache","_createElementVNode"],"mappings":";;;EACO,OAAM;AAAA,EAAc,OAAM;AAAA,EAAK,QAAO;AAAA,EAAK,SAAQ;AAAA,EAAY,MAAK;AAAA,EAAO,OAAM;;;AAAtF,SAAAA,EAAA,GAAAC,EAKM,OALNC,GAKMC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,IAJJC,EAGI,KAAA,EAHD,IAAG,OAAM,GAAA;AAAA,MACVA,EAAwI,QAAA;AAAA,QAAlI,IAAG;AAAA,QAAiB,GAAE;AAAA,QAAuE,QAAO;AAAA,QAAU,gBAAa;AAAA;MACjIA,EAAiG,QAAA;AAAA,QAA3F,IAAG;AAAA,QAAc,GAAE;AAAA,QAAqC,QAAO;AAAA,QAAQ,gBAAa;AAAA;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LayersIcon.vue.d.ts","sourceRoot":"","sources":["../../../src/GraphMaker/icons/LayersIcon.vue"],"names":[],"mappings":";AAoEA,wBAMG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LayersIcon.vue.js","sources":["../../../src/GraphMaker/icons/LayersIcon.vue"],"sourcesContent":["<template>\n <svg class=\"layers-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g id=\"24: layers\">\n <path id=\"Subtract\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2.37549 15.1251L12.0003 21.25L21.6255 15.1249L21.6749 15.1563C22.2924 15.5493 22.2924 16.4507 21.6749 16.8436L12.5375 22.6583C12.21 22.8668 11.7913 22.8668 11.4638 22.6583L2.32641 16.8436C1.70891 16.4507 1.70891 15.5493 2.32641 15.1563L2.37549 15.1251Z\" fill=\"#07AD3E\"/>\n <path id=\"Union\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2.32641 7.15633C1.70891 7.54929 1.70891 8.4507 2.32641 8.84366L11.4638 14.6583C11.7913 14.8668 12.21 14.8668 12.5375 14.6583L21.6749 8.84365C22.2924 8.4507 22.2924 7.54929 21.6749 7.15633L12.5375 1.34164C12.21 1.13319 11.7913 1.13319 11.4638 1.34164L2.32641 7.15633ZM3.75 7.99997L12 13.25L20.25 7.99997L12 2.74997L3.75 7.99997ZM12.0003 17.25L2.37549 11.1251L2.32641 11.1563C1.70891 11.5493 1.70891 12.4507 2.32641 12.8436L11.4638 18.6583C11.7913 18.8668 12.21 18.8668 12.5375 18.6583L21.6749 12.8436C22.2924 12.4507 22.2924 11.5493 21.6749 11.1563L21.6255 11.1249L12.0003 17.25Z\" fill=\"#110529\"/>\n </g>\n </svg>\n</template>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_cache","_createElementVNode"],"mappings":";;;EACO,OAAM;AAAA,EAAc,OAAM;AAAA,EAAK,QAAO;AAAA,EAAK,SAAQ;AAAA,EAAY,MAAK;AAAA,EAAO,OAAM;;;AAAtF,SAAAA,EAAA,GAAAC,EAKM,OALNC,GAKMC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,IAJJC,EAGI,KAAA,EAHD,IAAG,aAAY,GAAA;AAAA,MAChBA,EAA8U,QAAA;AAAA,QAAxU,IAAG;AAAA,QAAW,aAAU;AAAA,QAAU,aAAU;AAAA,QAAU,GAAE;AAAA,QAAgQ,MAAK;AAAA;MACnUA,EAAipB,QAAA;AAAA,QAA3oB,IAAG;AAAA,QAAQ,aAAU;AAAA,QAAU,aAAU;AAAA,QAAU,GAAE;AAAA,QAAskB,MAAK;AAAA;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinkIcon.vue.d.ts","sourceRoot":"","sources":["../../../src/GraphMaker/icons/LinkIcon.vue"],"names":[],"mappings":";AA+EA,wBAMG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinkIcon.vue.js","sources":["../../../src/GraphMaker/icons/LinkIcon.vue"],"sourcesContent":["<template>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_8849_14901)\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2214 15.2215L13.5701 12.8728C15.2298 11.2131 15.2298 8.5221 13.5701 6.86237C11.9104 5.20264 9.21943 5.20264 7.5597 6.86237L3.31706 11.105C1.65733 12.7647 1.65733 15.4557 3.31706 17.1154C4.38616 18.1845 5.88312 18.565 7.25674 18.2568L8.45258 19.4526C6.38303 20.2767 3.93151 19.8512 2.2564 18.1761C0.0108876 15.9306 0.0108879 12.2899 2.2564 10.0444L6.49904 5.80171C8.74456 3.5562 12.3853 3.5562 14.6308 5.80171C16.8763 8.04723 16.8763 11.6879 14.6308 13.9334L12.2821 16.2821L11.2214 15.2215Z\" fill=\"#110529\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.4594 18.1761C15.2139 20.4216 11.5732 20.4216 9.32769 18.1761C7.08218 15.9306 7.08218 12.2899 9.32769 10.0444L11.686 7.68604L12.7467 8.7467L10.3884 11.105C8.72862 12.7647 8.72862 15.4557 10.3884 17.1154C12.0481 18.7751 14.739 18.7751 16.3988 17.1154L20.6414 12.8728C22.3011 11.2131 22.3011 8.5221 20.6414 6.86237C19.5764 5.79737 18.0868 5.41575 16.7175 5.71752L15.5197 4.51971C17.5863 3.70299 20.0307 4.13032 21.7021 5.80171C23.9476 8.04723 23.9476 11.6879 21.7021 13.9334L17.4594 18.1761Z\" fill=\"#07AD3E\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_8849_14901\">\n <rect width=\"24\" height=\"24\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n</template>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_cache","_createStaticVNode"],"mappings":";;;EACO,OAAM;AAAA,EAAK,QAAO;AAAA,EAAK,SAAQ;AAAA,EAAY,MAAK;AAAA,EAAO,OAAM;;;AAAlE,SAAAA,EAAA,GAAAC,EAUM,OAVNC,GAUMC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,IAXRC,EAAA,kwCAAA,CAAA;AAAA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsIcon.vue.d.ts","sourceRoot":"","sources":["../../../src/GraphMaker/icons/SettingsIcon.vue"],"names":[],"mappings":";AAuDA,wBAMG"}