@milaboratories/graph-maker 1.1.211 → 1.1.213

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.
@@ -1 +1 @@
1
- {"version":3,"file":"GraphStatusScreen.vue.d.ts","sourceRoot":"","sources":["../../src/components/GraphStatusScreen.vue"],"names":[],"mappings":"AA2GA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;;YADS,MAAM;UAFR,MAAM;WACL,MAAM;SAFR,MAAM;sBAFO,OAAO,CAAC,cAAc,CAAC;eAC9B,SAAS,GAAG,IAAI;;AAuK9B,wBAOG"}
1
+ {"version":3,"file":"GraphStatusScreen.vue.d.ts","sourceRoot":"","sources":["../../src/components/GraphStatusScreen.vue"],"names":[],"mappings":"AAuGA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;;YADS,MAAM;UAFR,MAAM;WACL,MAAM;SAFR,MAAM;sBAFO,OAAO,CAAC,cAAc,CAAC;eAC9B,SAAS,GAAG,IAAI;;AAmK9B,wBAOG"}
@@ -1,5 +1,5 @@
1
- import { defineComponent as x, computed as e, watch as T, createElementBlock as I, createCommentVNode as g, openBlock as u, normalizeStyle as v, normalizeClass as $, createBlock as s, unref as i } from "vue";
2
- import { PlPlaceholder as M, PlAgOverlayLoading as k, PlAgOverlayNoRows as C } from "@platforma-sdk/ui-vue";
1
+ import { defineComponent as x, computed as e, createElementBlock as T, createCommentVNode as g, openBlock as u, normalizeStyle as I, normalizeClass as $, createBlock as s, unref as i } from "vue";
2
+ import { PlPlaceholder as v, PlAgOverlayLoading as M, PlAgOverlayNoRows as k } from "@platforma-sdk/ui-vue";
3
3
  import { DEFAULT_STATUS_TEXT as h } from "../constantsCommon.js";
4
4
  const E = /* @__PURE__ */ x({
5
5
  __name: "GraphStatusScreen",
@@ -35,27 +35,25 @@ Try to filter the data.` : "";
35
35
  var r, o;
36
36
  return t.graphStatus !== "loading" && t.graphStatus !== "running" ? "" : ((o = (r = t.customStatusText) == null ? void 0 : r[t.graphStatus]) == null ? void 0 : o.subtitle) ?? h[t.graphStatus].subtitle;
37
37
  });
38
- return T(() => t.graphStatus, (r) => {
39
- console.log("screen", r, a.value);
40
- }, { immediate: !0 }), (r, o) => n.graphStatus !== "ready" ? (u(), I("div", {
38
+ return (r, o) => n.graphStatus !== "ready" ? (u(), T("div", {
41
39
  key: 0,
42
40
  class: $(["graph-maker__loading", [r.$style.loaderContainer, { [r.$style.withBorder]: l.value || f.value }]]),
43
- style: v({
41
+ style: I({
44
42
  top: `${t.top}px`,
45
43
  bottom: `${t.bottom}px`,
46
44
  right: `${t.right}px`,
47
45
  left: `${t.left}px`
48
46
  })
49
47
  }, [
50
- n.graphStatus === "loading" || n.graphStatus === "running" ? (u(), s(i(M), {
48
+ n.graphStatus === "loading" || n.graphStatus === "running" ? (u(), s(i(v), {
51
49
  key: 0,
52
50
  variant: "graph",
53
51
  title: a.value,
54
52
  subtitle: S.value
55
- }, null, 8, ["title", "subtitle"])) : l.value ? (u(), s(i(k), {
53
+ }, null, 8, ["title", "subtitle"])) : l.value ? (u(), s(i(M), {
56
54
  key: a.value + "catInBag",
57
55
  params: { variant: "not-ready", notReadyText: a.value }
58
- }, null, 8, ["params"])) : f.value ? (u(), s(i(C), {
56
+ }, null, 8, ["params"])) : f.value ? (u(), s(i(k), {
59
57
  key: a.value + "catNoData",
60
58
  params: { text: a.value }
61
59
  }, null, 8, ["params"])) : g("", !0)
@@ -1 +1 @@
1
- {"version":3,"file":"GraphStatusScreen.vue2.js","sources":["../../src/components/GraphStatusScreen.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlPlaceholder, PlAgOverlayLoading, PlAgOverlayNoRows } from '@platforma-sdk/ui-vue';\nimport { computed, watch } from 'vue';\nimport { DEFAULT_STATUS_TEXT } from '../constantsCommon';\nimport type { GraphStatus, StatusTextData } from '../types';\nimport type { ErrorInfo } from '@milaboratories/miplots4';\n\nconst props = withDefaults(defineProps<{\n graphStatus: GraphStatus;\n customStatusText?: Partial<StatusTextData>;\n errorInfo?: ErrorInfo | null;\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n}>(), {\n customStatusText: undefined,\n errorInfo: null,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n});\n\nconst errorMessage = computed(() => {\n if (props.errorInfo?.type === 'tooManyFacets') {\n return `Too many facets (${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyPrimaryGroups') {\n return `Too many primary groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManySecondaryGroups') {\n return `Too many secondary groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyScatterplotGroupsX') {\n return `Too many categories on X axis\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyScatterplotGroupsY') {\n return `Too many categories on Y axis\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyHistogramGroups') {\n return `Too many groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n return '';\n});\n\nconst catInBagStatus = computed(() => props.graphStatus === 'noPframe' || props.graphStatus === 'empty');\nconst catNoDataStatus = computed(() => props.graphStatus === 'notReady' || props.graphStatus === 'inconsistent' || props.graphStatus === 'knownError' || props.graphStatus === 'unknownError');\n\nconst statusText = computed(() => {\n if (props.graphStatus === 'knownError') {\n return errorMessage.value;\n }\n return props.customStatusText?.[props.graphStatus]?.title ?? DEFAULT_STATUS_TEXT[props.graphStatus].title;\n});\n\nconst subtitle = computed(() => {\n if (props.graphStatus !== 'loading' && props.graphStatus !== 'running') {\n return '';\n }\n return props.customStatusText?.[props.graphStatus]?.subtitle ?? DEFAULT_STATUS_TEXT[props.graphStatus].subtitle;\n});\n\nwatch(() => props.graphStatus, (s) => {\n console.log('screen', s, statusText.value);\n}, { immediate: true });\n\n</script>\n<template>\n <div\n v-if=\"graphStatus !== 'ready'\"\n class=\"graph-maker__loading\"\n :class=\"[$style.loaderContainer, {[$style.withBorder]: catInBagStatus || catNoDataStatus}]\"\n :style=\"{\n top: `${props.top}px`,\n bottom: `${props.bottom}px`,\n right: `${props.right}px`,\n left: `${props.left}px`\n }\"\n >\n <PlPlaceholder v-if=\"graphStatus === 'loading' || graphStatus === 'running'\" variant=\"graph\" :title=\"statusText\" :subtitle=\"subtitle\" />\n <PlAgOverlayLoading v-else-if=\"catInBagStatus\" :key=\"statusText + 'catInBag'\" :params=\"{variant: 'not-ready', notReadyText: statusText}\"/>\n <PlAgOverlayNoRows v-else-if=\"catNoDataStatus\" :key=\"statusText + 'catNoData'\" :params=\"{text: statusText}\"/>\n </div>\n</template>\n<style module>\n.loaderContainer {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.withBorder {\n border: 1px solid #E1E3EB;\n border-radius: 8px;\n overflow: 'hidden';\n}\n</style>\n"],"names":["props","__props","errorMessage","computed","_a","_b","_c","_d","_e","_f","catInBagStatus","catNoDataStatus","statusText","DEFAULT_STATUS_TEXT","subtitle","watch","s","_createElementBlock","_normalizeClass","$style","_normalizeStyle","_createBlock","_unref","PlPlaceholder","PlAgOverlayLoading","PlAgOverlayNoRows"],"mappings":"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"}
1
+ {"version":3,"file":"GraphStatusScreen.vue2.js","sources":["../../src/components/GraphStatusScreen.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlPlaceholder, PlAgOverlayLoading, PlAgOverlayNoRows } from '@platforma-sdk/ui-vue';\nimport { computed } from 'vue';\nimport { DEFAULT_STATUS_TEXT } from '../constantsCommon';\nimport type { GraphStatus, StatusTextData } from '../types';\nimport type { ErrorInfo } from '@milaboratories/miplots4';\n\nconst props = withDefaults(defineProps<{\n graphStatus: GraphStatus;\n customStatusText?: Partial<StatusTextData>;\n errorInfo?: ErrorInfo | null;\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n}>(), {\n customStatusText: undefined,\n errorInfo: null,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n});\n\nconst errorMessage = computed(() => {\n if (props.errorInfo?.type === 'tooManyFacets') {\n return `Too many facets (${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyPrimaryGroups') {\n return `Too many primary groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManySecondaryGroups') {\n return `Too many secondary groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyScatterplotGroupsX') {\n return `Too many categories on X axis\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyScatterplotGroupsY') {\n return `Too many categories on Y axis\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyHistogramGroups') {\n return `Too many groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n return '';\n});\n\nconst catInBagStatus = computed(() => props.graphStatus === 'noPframe' || props.graphStatus === 'empty');\nconst catNoDataStatus = computed(() => props.graphStatus === 'notReady' || props.graphStatus === 'inconsistent' || props.graphStatus === 'knownError' || props.graphStatus === 'unknownError');\n\nconst statusText = computed(() => {\n if (props.graphStatus === 'knownError') {\n return errorMessage.value;\n }\n return props.customStatusText?.[props.graphStatus]?.title ?? DEFAULT_STATUS_TEXT[props.graphStatus].title;\n});\n\nconst subtitle = computed(() => {\n if (props.graphStatus !== 'loading' && props.graphStatus !== 'running') {\n return '';\n }\n return props.customStatusText?.[props.graphStatus]?.subtitle ?? DEFAULT_STATUS_TEXT[props.graphStatus].subtitle;\n});\n\n</script>\n<template>\n <div\n v-if=\"graphStatus !== 'ready'\"\n class=\"graph-maker__loading\"\n :class=\"[$style.loaderContainer, {[$style.withBorder]: catInBagStatus || catNoDataStatus}]\"\n :style=\"{\n top: `${props.top}px`,\n bottom: `${props.bottom}px`,\n right: `${props.right}px`,\n left: `${props.left}px`\n }\"\n >\n <PlPlaceholder v-if=\"graphStatus === 'loading' || graphStatus === 'running'\" variant=\"graph\" :title=\"statusText\" :subtitle=\"subtitle\" />\n <PlAgOverlayLoading v-else-if=\"catInBagStatus\" :key=\"statusText + 'catInBag'\" :params=\"{variant: 'not-ready', notReadyText: statusText}\"/>\n <PlAgOverlayNoRows v-else-if=\"catNoDataStatus\" :key=\"statusText + 'catNoData'\" :params=\"{text: statusText}\"/>\n </div>\n</template>\n<style module>\n.loaderContainer {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.withBorder {\n border: 1px solid #E1E3EB;\n border-radius: 8px;\n overflow: 'hidden';\n}\n</style>\n"],"names":["props","__props","errorMessage","computed","_a","_b","_c","_d","_e","_f","catInBagStatus","catNoDataStatus","statusText","DEFAULT_STATUS_TEXT","subtitle","_createElementBlock","_normalizeClass","$style","_normalizeStyle","_createBlock","_unref","PlPlaceholder","PlAgOverlayLoading","PlAgOverlayNoRows"],"mappings":";;;;;;;;;;;;;;;AAOA,UAAMA,IAAQC,GAiBRC,IAAeC,EAAS,MAAM;;AAClC,eAAIC,IAAAJ,EAAM,cAAN,gBAAAI,EAAiB,UAAS,kBACrB,oBAAoBJ,EAAM,UAAU,KAAK,KAAK;AAAA,mBAA6BA,EAAM,UAAU,KAAK,QAAQ;AAAA,6BAE7GK,IAAAL,EAAM,cAAN,gBAAAK,EAAiB,UAAS,yBACrB,4BAAiCL,EAAM,UAAU,KAAK,KAAK;AAAA,mBAA6BA,EAAM,UAAU,KAAK,QAAQ;AAAA,6BAE1HM,IAAAN,EAAM,cAAN,gBAAAM,EAAiB,UAAS,2BACrB,8BAAmCN,EAAM,UAAU,KAAK,KAAK;AAAA,mBAA6BA,EAAM,UAAU,KAAK,QAAQ;AAAA,6BAE5HO,IAAAP,EAAM,cAAN,gBAAAO,EAAiB,UAAS,8BACrB,kCAAuCP,EAAM,UAAU,KAAK,KAAK;AAAA,mBAA6BA,EAAM,UAAU,KAAK,QAAQ;AAAA,6BAEhIQ,IAAAR,EAAM,cAAN,gBAAAQ,EAAiB,UAAS,8BACrB,kCAAuCR,EAAM,UAAU,KAAK,KAAK;AAAA,mBAA6BA,EAAM,UAAU,KAAK,QAAQ;AAAA,6BAEhIS,IAAAT,EAAM,cAAN,gBAAAS,EAAiB,UAAS,2BACrB,oBAAyBT,EAAM,UAAU,KAAK,KAAK;AAAA,mBAA6BA,EAAM,UAAU,KAAK,QAAQ;AAAA,2BAE/G;AAAA,IACT,CAAC,GAEKU,IAAiBP,EAAS,MAAMH,EAAM,gBAAgB,cAAcA,EAAM,gBAAgB,OAAO,GACjGW,IAAkBR,EAAS,MAAMH,EAAM,gBAAgB,cAAcA,EAAM,gBAAgB,kBAAkBA,EAAM,gBAAgB,gBAAgBA,EAAM,gBAAgB,cAAc,GAEvLY,IAAaT,EAAS,MAAM;;AAChC,aAAIH,EAAM,gBAAgB,eACjBE,EAAa,UAEfG,KAAAD,IAAAJ,EAAM,qBAAN,gBAAAI,EAAyBJ,EAAM,iBAA/B,gBAAAK,EAA6C,UAASQ,EAAoBb,EAAM,WAAW,EAAE;AAAA,IACtG,CAAC,GAEKc,IAAWX,EAAS,MAAM;;AAC9B,aAAIH,EAAM,gBAAgB,aAAaA,EAAM,gBAAgB,YACpD,OAEFK,KAAAD,IAAAJ,EAAM,qBAAN,gBAAAI,EAAyBJ,EAAM,iBAA/B,gBAAAK,EAA6C,aAAYQ,EAAoBb,EAAM,WAAW,EAAE;AAAA,IACzG,CAAC;qBAKSC,EAAA,gBAAW,gBADnBc,EAcM,OAAA;AAAA;MAZJ,OAAKC,EAAA,CAAC,wBAAsB,CACnBC,EAAAA,OAAO,iBAAe,EAAA,CAAIA,EAAAA,OAAO,UAAU,GAAGP,EAAA,SAAkBC,EAAA,MAAA,CAAe,CAAA,CAAA;AAAA,MACvF,OAAKO,EAAA;AAAA,QAAkB,KAAA,GAAAlB,EAAM,GAAG;AAAA,QAAuB,QAAA,GAAAA,EAAM,MAAM;AAAA,QAAsB,OAAA,GAAAA,EAAM,KAAK;AAAA,QAAqB,MAAA,GAAAA,EAAM,IAAI;AAAA,MAAA;;MAO/GC,EAAA,6BAA6BA,EAAA,gBAAW,kBAA7DkB,EAAwIC,EAAAC,CAAA,GAAA;AAAA;QAA3D,SAAQ;AAAA,QAAS,OAAOT,EAAA;AAAA,QAAa,UAAUE,EAAA;AAAA,MAAA,sCAC7FJ,EAAA,cAA/BS,EAA0IC,EAAAE,CAAA,GAAA;AAAA,QAA1F,KAAKV,EAAA,QAAU;AAAA,QAAgB,8CAA6CA,EAAA,MAAA;AAAA,MAAU,2BACxGD,EAAA,cAA9BQ,EAA6GC,EAAAG,CAAA,GAAA;AAAA,QAA7D,KAAKX,EAAA,QAAU;AAAA,QAAiB,gBAAeA,EAAA,MAAA;AAAA,MAAU;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../../../src/components/LassoControls/index.vue"],"names":[],"mappings":"AAgKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM/D,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;;AA6RF,wBAOG"}
1
+ {"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../../../src/components/LassoControls/index.vue"],"names":[],"mappings":"AA4JA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM/D,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;;AAyRF,wBAOG"}
@@ -1,55 +1,50 @@
1
- import { defineComponent as V, computed as K, onMounted as g, onUnmounted as P, watch as z, createElementBlock as L, openBlock as $, normalizeClass as l, createElementVNode as i, createBlock as M, createCommentVNode as Z, createVNode as s, unref as o, withCtx as u, createTextVNode as D } from "vue";
2
- import { SCATTERPLOT_CONTROLS_EVENTS as r } from "@milaboratories/miplots4";
3
- import { PlBtnGhost as c, PlMaskIcon24 as B, PlTooltip as H } from "@platforma-sdk/ui-vue";
4
- import { useStore as I } from "../../store.js";
5
- const U = /* @__PURE__ */ V({
1
+ import { defineComponent as V, computed as K, onMounted as P, onUnmounted as z, createElementBlock as L, openBlock as $, normalizeClass as l, createElementVNode as i, createBlock as M, createCommentVNode as g, createVNode as a, unref as o, withCtx as u, createTextVNode as H } from "vue";
2
+ import { SCATTERPLOT_CONTROLS_EVENTS as n } from "@milaboratories/miplots4";
3
+ import { PlBtnGhost as r, PlMaskIcon24 as B, PlTooltip as I } from "@platforma-sdk/ui-vue";
4
+ import { useStore as O } from "../../store.js";
5
+ const F = /* @__PURE__ */ V({
6
6
  __name: "index",
7
7
  props: {
8
8
  chartRef: {},
9
9
  isScatterplotZoomChanged: { type: Boolean }
10
10
  },
11
11
  setup(p) {
12
- const n = p, f = I(), t = K(() => f.value.reactive.lassoControlsState);
12
+ const s = p, f = O(), t = K(() => f.value.reactive.lassoControlsState);
13
13
  function E() {
14
14
  var e;
15
- (e = n.chartRef) == null || e.updateChartState(r.lassoSelectMode, "pen");
15
+ (e = s.chartRef) == null || e.updateChartState(n.lassoSelectMode, "pen");
16
16
  }
17
17
  function R() {
18
18
  var e;
19
- (e = n.chartRef) == null || e.updateChartState(r.lassoSelectMode, "selection");
19
+ (e = s.chartRef) == null || e.updateChartState(n.lassoSelectMode, "selection");
20
20
  }
21
21
  function m() {
22
22
  var e;
23
- (e = n.chartRef) == null || e.updateChartState(r.lassoBack, null);
23
+ (e = s.chartRef) == null || e.updateChartState(n.lassoBack, null);
24
24
  }
25
- function C() {
25
+ function y() {
26
26
  var e;
27
- (e = n.chartRef) == null || e.updateChartState(r.lassoForward, null);
27
+ (e = s.chartRef) == null || e.updateChartState(n.lassoForward, null);
28
28
  }
29
29
  function N() {
30
30
  var e;
31
- (e = n.chartRef) == null || e.updateChartState(r.lassoDelete, null);
31
+ (e = s.chartRef) == null || e.updateChartState(n.lassoDelete, null);
32
32
  }
33
- function y(e) {
34
- var a, d;
35
- (a = t.value) != null && a.backEnabled && e.key === "z" && (e.ctrlKey || e.metaKey) && !e.shiftKey && m(), (d = t.value) != null && d.forwardEnabled && e.key === "z" && (e.ctrlKey || e.metaKey) && e.shiftKey && C();
33
+ function C(e) {
34
+ var c, d;
35
+ (c = t.value) != null && c.backEnabled && e.key === "z" && (e.ctrlKey || e.metaKey) && !e.shiftKey && m(), (d = t.value) != null && d.forwardEnabled && e.key === "z" && (e.ctrlKey || e.metaKey) && e.shiftKey && y();
36
36
  }
37
- g(() => {
38
- document.addEventListener("keydown", y);
39
- }), P(() => {
40
- document.removeEventListener("keydown", y);
37
+ P(() => {
38
+ document.addEventListener("keydown", C);
39
+ }), z(() => {
40
+ document.removeEventListener("keydown", C);
41
41
  });
42
42
  function T() {
43
43
  var e;
44
- (e = n.chartRef) == null || e.updateChartState(r.resetViewport, null);
44
+ (e = s.chartRef) == null || e.updateChartState(n.resetViewport, null);
45
45
  }
46
- return z(() => {
47
- var e, a;
48
- return (a = (e = n.chartRef) == null ? void 0 : e.calculatedData) == null ? void 0 : a.isZoomChanged;
49
- }, (e) => {
50
- console.log("isZoomChanged", e);
51
- }), (e, a) => {
52
- var d, v, h, S, k, b, w;
46
+ return (e, c) => {
47
+ var d, v, S, h, k, b, w;
53
48
  return $(), L("div", {
54
49
  class: l(e.$style.lassoControlsContainer)
55
50
  }, [
@@ -59,7 +54,7 @@ const U = /* @__PURE__ */ V({
59
54
  i("div", {
60
55
  class: l(e.$style.lassoControlsBorder)
61
56
  }, null, 2),
62
- s(o(c), {
57
+ a(o(r), {
63
58
  class: l({
64
59
  [e.$style.lassoButtonSelected]: ((d = t.value) == null ? void 0 : d.mode) === "pen" || !t.value,
65
60
  [e.$style.lassoButtonNotSelected]: ((v = t.value) == null ? void 0 : v.mode) !== "pen" && t.value
@@ -67,10 +62,10 @@ const U = /* @__PURE__ */ V({
67
62
  icon: "cursor-pointer",
68
63
  onClick: E
69
64
  }, null, 8, ["class"]),
70
- s(o(c), {
65
+ a(o(r), {
71
66
  class: l({
72
- [e.$style.lassoButtonSelected]: ((h = t.value) == null ? void 0 : h.mode) === "selection",
73
- [e.$style.lassoButtonNotSelected]: ((S = t.value) == null ? void 0 : S.mode) !== "selection"
67
+ [e.$style.lassoButtonSelected]: ((S = t.value) == null ? void 0 : S.mode) === "selection",
68
+ [e.$style.lassoButtonNotSelected]: ((h = t.value) == null ? void 0 : h.mode) !== "selection"
74
69
  }),
75
70
  icon: "pen-tool",
76
71
  onClick: R
@@ -78,17 +73,17 @@ const U = /* @__PURE__ */ V({
78
73
  i("div", {
79
74
  class: l(e.$style.lassoControlsSeparator)
80
75
  }, null, 2),
81
- s(o(c), {
76
+ a(o(r), {
82
77
  disabled: !((k = t.value) != null && k.backEnabled),
83
78
  icon: "arrow-left-curved",
84
79
  onClick: m
85
80
  }, null, 8, ["disabled"]),
86
- s(o(c), {
81
+ a(o(r), {
87
82
  disabled: !((b = t.value) != null && b.forwardEnabled),
88
- onClick: C
83
+ onClick: y
89
84
  }, {
90
85
  icon: u(() => [
91
- s(o(B), {
86
+ a(o(B), {
92
87
  name: "arrow-left-curved",
93
88
  style: { transform: "scale(-1, 1)" }
94
89
  })
@@ -98,34 +93,34 @@ const U = /* @__PURE__ */ V({
98
93
  i("div", {
99
94
  class: l(e.$style.lassoControlsSeparator)
100
95
  }, null, 2),
101
- s(o(c), {
96
+ a(o(r), {
102
97
  disabled: !((w = t.value) != null && w.deleteEnabled),
103
98
  icon: "delete-bin",
104
99
  onClick: N
105
100
  }, null, 8, ["disabled"])
106
101
  ], 2),
107
- o(f).reactive.chartType === "scatterplot-umap" ? ($(), M(o(c), {
102
+ o(f).reactive.chartType === "scatterplot-umap" ? ($(), M(o(r), {
108
103
  key: 0,
109
104
  class: l(e.$style.resetViewport),
110
105
  disabled: !p.isScatterplotZoomChanged,
111
106
  onClick: T
112
107
  }, {
113
108
  default: u(() => [
114
- s(o(B), {
109
+ a(o(B), {
115
110
  name: "restart",
116
111
  class: l(e.$style.resetIcon)
117
112
  }, null, 8, ["class"]),
118
- s(o(H), {
113
+ a(o(I), {
119
114
  class: l(["info", e.$style.resetHintIcon])
120
115
  }, {
121
- tooltip: u(() => [...a[0] || (a[0] = [
122
- D(" Return to default pan & zoom ", -1)
116
+ tooltip: u(() => [...c[0] || (c[0] = [
117
+ H(" Return to default pan & zoom ", -1)
123
118
  ])]),
124
119
  _: 1
125
120
  }, 8, ["class"])
126
121
  ]),
127
122
  _: 1
128
- }, 8, ["class", "disabled"])) : Z("", !0),
123
+ }, 8, ["class", "disabled"])) : g("", !0),
129
124
  i("div", {
130
125
  class: l(e.$style.lassoHint)
131
126
  }, " Hold Cmd/Ctrl and left-click to pan the canvas ", 2)
@@ -134,6 +129,6 @@ const U = /* @__PURE__ */ V({
134
129
  }
135
130
  });
136
131
  export {
137
- U as default
132
+ F as default
138
133
  };
139
134
  //# sourceMappingURL=index.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../src/components/LassoControls/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ChartInterface } from '@milaboratories/miplots4';\nimport { SCATTERPLOT_CONTROLS_EVENTS } from '@milaboratories/miplots4';\nimport { PlBtnGhost, PlMaskIcon24, PlTooltip } from '@platforma-sdk/ui-vue';\nimport { computed, onMounted, onUnmounted, watch } from 'vue';\nimport { useStore } from '../../store';\n\nconst props = defineProps<{\n chartRef: ChartInterface | null;\n isScatterplotZoomChanged?: boolean;\n}>();\n\nconst store = useStore();\nconst controlsState = computed(() => store.value.reactive.lassoControlsState);\n\nfunction setPen() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoSelectMode, 'pen');\n}\nfunction setSelection() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoSelectMode, 'selection');\n}\nfunction back() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoBack, null);\n}\nfunction forward() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoForward, null);\n}\nfunction deletePolygon() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoDelete, null);\n}\n\nfunction onKeyDown(e: KeyboardEvent) {\n if (controlsState.value?.backEnabled && e.key === 'z' && (e.ctrlKey || e.metaKey) && !e.shiftKey) {\n back();\n }\n if (controlsState.value?.forwardEnabled && e.key === 'z' && (e.ctrlKey || e.metaKey) && e.shiftKey) {\n forward();\n }\n}\nonMounted(() => {\n document.addEventListener('keydown', onKeyDown);\n});\nonUnmounted(() => {\n document.removeEventListener('keydown', onKeyDown);\n});\n\nfunction resetViewport() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.resetViewport, null);\n}\n\nwatch(() => props.chartRef?.calculatedData?.isZoomChanged, (v) => {\n console.log('isZoomChanged', v);\n});\n\n</script>\n<template>\n <div :class=\"$style.lassoControlsContainer\">\n <div :class=\"$style.lassoButtonsGroup\">\n <div :class=\"$style.lassoControlsBorder\"/>\n <PlBtnGhost\n :class=\"{\n [$style.lassoButtonSelected]: controlsState?.mode === 'pen' || !controlsState,\n [$style.lassoButtonNotSelected]: controlsState?.mode !== 'pen' && controlsState,\n }\"\n icon=\"cursor-pointer\"\n @click=\"setPen\"\n />\n <PlBtnGhost\n :class=\"{\n [$style.lassoButtonSelected]: controlsState?.mode === 'selection',\n [$style.lassoButtonNotSelected]: controlsState?.mode !== 'selection',\n }\"\n icon=\"pen-tool\"\n @click=\"setSelection\"\n />\n <div :class=\"$style.lassoControlsSeparator\"/>\n <PlBtnGhost\n :disabled=\"!controlsState?.backEnabled\"\n icon=\"arrow-left-curved\"\n @click=\"back\"\n />\n <PlBtnGhost\n :disabled=\"!controlsState?.forwardEnabled\"\n @click=\"forward\"\n >\n <template #icon>\n <PlMaskIcon24 name=\"arrow-left-curved\" :style=\"{transform: 'scale(-1, 1)'}\"/>\n </template>\n </PlBtnGhost>\n <div :class=\"$style.lassoControlsSeparator\"/>\n <PlBtnGhost\n :disabled=\"!controlsState?.deleteEnabled\"\n icon=\"delete-bin\"\n @click=\"deletePolygon\"\n />\n </div>\n <PlBtnGhost v-if=\"store.reactive.chartType === 'scatterplot-umap'\" :class=\"$style.resetViewport\" :disabled=\"!isScatterplotZoomChanged\" @click=\"resetViewport\" >\n <PlMaskIcon24 name=\"restart\" :class=\"$style.resetIcon\"/>\n <PlTooltip class=\"info\" :class=\"$style.resetHintIcon\">\n <template #tooltip>\n Return to default pan & zoom\n </template>\n </PlTooltip>\n </PlBtnGhost>\n <div :class=\"$style.lassoHint\">\n Hold Cmd/Ctrl and left-click to pan the canvas\n </div>\n </div>\n</template>\n<style module>\n.lassoControlsContainer {\n display: flex;\n align-items: baseline;\n}\n.lassoButtonsGroup {\n background: white;\n display: flex;\n position: relative;\n}\n.lassoControlsBorder {\n position: absolute;\n border: 1px solid var(--color-div-grey);\n border-radius: var(--border-radius-control);\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n.lassoButtonSelected {\n border: 2px solid var(--border-color-focus);\n}\n.lassoButtonNotSelected {\n border: 2px solid transparent;\n}\n.lassoControlsSeparator {\n width: 1px;\n height: 32px;\n background-color: var(--color-div-grey);\n margin: 4px;\n}\n.lassoHint {\n color: var(--txt-03);\n font-size: 14px;\n margin-left: 8px;\n}\n.resetViewport {\n width: 58px;\n min-width: 58px;\n margin-left: 24px;\n border: 1px solid var(--color-div-grey);\n}\n.resetIcon {\n margin-left: -6px;\n}\n.resetHintIcon {\n align-self: center;\n}\n</style>\n"],"names":["props","__props","store","useStore","controlsState","computed","setPen","_a","SCATTERPLOT_CONTROLS_EVENTS","setSelection","back","forward","deletePolygon","onKeyDown","_b","onMounted","onUnmounted","resetViewport","watch","v","_createElementBlock","_normalizeClass","$style","_createElementVNode","_createVNode","_unref","PlBtnGhost","_c","_d","_e","_f","PlMaskIcon24","_g","_createBlock","PlTooltip","_cache"],"mappings":";;;;;;;;;;;AAOA,UAAMA,IAAQC,GAKRC,IAAQC,EAAA,GACRC,IAAgBC,EAAS,MAAMH,EAAM,MAAM,SAAS,kBAAkB;AAE5E,aAASI,IAAS;;AAChB,OAAAC,IAAAP,EAAM,aAAN,QAAAO,EAAgB,iBAAiBC,EAA4B,iBAAiB;AAAA,IAChF;AACA,aAASC,IAAe;;AACtB,OAAAF,IAAAP,EAAM,aAAN,QAAAO,EAAgB,iBAAiBC,EAA4B,iBAAiB;AAAA,IAChF;AACA,aAASE,IAAO;;AACd,OAAAH,IAAAP,EAAM,aAAN,QAAAO,EAAgB,iBAAiBC,EAA4B,WAAW;AAAA,IAC1E;AACA,aAASG,IAAU;;AACjB,OAAAJ,IAAAP,EAAM,aAAN,QAAAO,EAAgB,iBAAiBC,EAA4B,cAAc;AAAA,IAC7E;AACA,aAASI,IAAgB;;AACvB,OAAAL,IAAAP,EAAM,aAAN,QAAAO,EAAgB,iBAAiBC,EAA4B,aAAa;AAAA,IAC5E;AAEA,aAASK,EAAU,GAAkB;;AACnC,OAAIN,IAAAH,EAAc,UAAd,QAAAG,EAAqB,eAAe,EAAE,QAAQ,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,YACtFG,EAAA,IAEEI,IAAAV,EAAc,UAAd,QAAAU,EAAqB,kBAAkB,EAAE,QAAQ,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,YACxFH,EAAA;AAAA,IAEJ;AACA,IAAAI,EAAU,MAAM;AACd,eAAS,iBAAiB,WAAWF,CAAS;AAAA,IAChD,CAAC,GACDG,EAAY,MAAM;AAChB,eAAS,oBAAoB,WAAWH,CAAS;AAAA,IACnD,CAAC;AAED,aAASI,IAAgB;;AACvB,OAAAV,IAAAP,EAAM,aAAN,QAAAO,EAAgB,iBAAiBC,EAA4B,eAAe;AAAA,IAC9E;AAEA,WAAAU,EAAM,MAAA;;AAAM,cAAAJ,KAAAP,IAAAP,EAAM,aAAN,gBAAAO,EAAgB,mBAAhB,gBAAAO,EAAgC;AAAA,OAAe,CAACK,MAAM;AAChE,cAAQ,IAAI,iBAAiBA,CAAC;AAAA,IAChC,CAAC;;kBAICC,EAmDM,OAAA;AAAA,QAnDA,OAAKC,EAAEC,EAAAA,OAAO,sBAAsB;AAAA,MAAA;QACxCC,EAsCM,OAAA;AAAA,UAtCA,OAAKF,EAAEC,EAAAA,OAAO,iBAAiB;AAAA,QAAA;UACnCC,EAA0C,OAAA;AAAA,YAApC,OAAKF,EAAEC,EAAAA,OAAO,mBAAmB;AAAA,UAAA;UACvCE,EAOEC,EAAAC,CAAA,GAAA;AAAA,YANC,OAAKL,EAAA;AAAA,cAAeC,CAAAA,EAAAA,OAAO,mBAAmB,KAAGf,IAAAH,YAAA,gBAAAG,EAAe,oBAAmBH,EAAA;AAAA,cAA0BkB,CAAAA,EAAAA,OAAO,sBAAsB,KAAGR,IAAAV,YAAA,gBAAAU,EAAe,mBAAkBV,EAAA;AAAA,YAAA;YAI/K,MAAK;AAAA,YACJ,SAAOE;AAAA,UAAA;UAEVkB,EAOEC,EAAAC,CAAA,GAAA;AAAA,YANC,OAAKL,EAAA;AAAA,cAAeC,CAAAA,EAAAA,OAAO,mBAAmB,KAAGK,IAAAvB,EAAA,UAAA,gBAAAuB,EAAe,UAAI;AAAA,cAA6BL,CAAAA,EAAAA,OAAO,sBAAsB,KAAGM,IAAAxB,EAAA,UAAA,gBAAAwB,EAAe,UAAI;AAAA,YAAA;YAIrJ,MAAK;AAAA,YACJ,SAAOnB;AAAA,UAAA;UAEVc,EAA6C,OAAA;AAAA,YAAvC,OAAKF,EAAEC,EAAAA,OAAO,sBAAsB;AAAA,UAAA;UAC1CE,EAIEC,EAAAC,CAAA,GAAA;AAAA,YAHC,UAAQ,GAAGG,IAAAzB,EAAA,UAAA,QAAAyB,EAAe;AAAA,YAC3B,MAAK;AAAA,YACJ,SAAOnB;AAAA,UAAA;UAEVc,EAOaC,EAAAC,CAAA,GAAA;AAAA,YANV,UAAQ,GAAGI,IAAA1B,EAAA,UAAA,QAAA0B,EAAe;AAAA,YAC1B,SAAOnB;AAAA,UAAA;YAEG,QACT,MAA6E;AAAA,cAA7Ea,EAA6EC,EAAAM,CAAA,GAAA;AAAA,gBAA/D,MAAK;AAAA,gBAAqB,OAAO,EAAA,WAAA,eAAA;AAAA,cAAA;;;;UAGnDR,EAA6C,OAAA;AAAA,YAAvC,OAAKF,EAAEC,EAAAA,OAAO,sBAAsB;AAAA,UAAA;UAC1CE,EAIEC,EAAAC,CAAA,GAAA;AAAA,YAHC,UAAQ,GAAGM,IAAA5B,EAAA,UAAA,QAAA4B,EAAe;AAAA,YAC3B,MAAK;AAAA,YACJ,SAAOpB;AAAA,UAAA;;QAGMa,EAAAvB,CAAA,EAAM,SAAS,cAAS,2BAA1C+B,EAOaR,EAAAC,CAAA,GAAA;AAAA;UAPuD,OAAKL,EAAEC,EAAAA,OAAO,aAAa;AAAA,UAAG,WAAWrB,EAAA;AAAA,UAA2B,SAAOgB;AAAA,QAAA;qBAC7I,MAAwD;AAAA,YAAxDO,EAAwDC,EAAAM,CAAA,GAAA;AAAA,cAA1C,MAAK;AAAA,cAAW,OAAKV,EAAEC,EAAAA,OAAO,SAAS;AAAA,YAAA;YACrDE,EAIYC,EAAAS,CAAA,GAAA;AAAA,cAJD,OAAKb,EAAA,CAAC,QAAeC,EAAAA,OAAO,aAAa,CAAA;AAAA,YAAA;cACvC,WAAQ,MAEnB,CAAA,GAAAa,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,kBAFmB,kCAEnB,EAAA;AAAA,cAAA;;;;;;QAGJZ,EAEM,OAAA;AAAA,UAFA,OAAKF,EAAEC,EAAAA,OAAO,SAAS;AAAA,QAAA,GAAE,oDAE/B,CAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../src/components/LassoControls/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ChartInterface } from '@milaboratories/miplots4';\nimport { SCATTERPLOT_CONTROLS_EVENTS } from '@milaboratories/miplots4';\nimport { PlBtnGhost, PlMaskIcon24, PlTooltip } from '@platforma-sdk/ui-vue';\nimport { computed, onMounted, onUnmounted } from 'vue';\nimport { useStore } from '../../store';\n\nconst props = defineProps<{\n chartRef: ChartInterface | null;\n isScatterplotZoomChanged?: boolean;\n}>();\n\nconst store = useStore();\nconst controlsState = computed(() => store.value.reactive.lassoControlsState);\n\nfunction setPen() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoSelectMode, 'pen');\n}\nfunction setSelection() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoSelectMode, 'selection');\n}\nfunction back() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoBack, null);\n}\nfunction forward() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoForward, null);\n}\nfunction deletePolygon() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.lassoDelete, null);\n}\n\nfunction onKeyDown(e: KeyboardEvent) {\n if (controlsState.value?.backEnabled && e.key === 'z' && (e.ctrlKey || e.metaKey) && !e.shiftKey) {\n back();\n }\n if (controlsState.value?.forwardEnabled && e.key === 'z' && (e.ctrlKey || e.metaKey) && e.shiftKey) {\n forward();\n }\n}\nonMounted(() => {\n document.addEventListener('keydown', onKeyDown);\n});\nonUnmounted(() => {\n document.removeEventListener('keydown', onKeyDown);\n});\n\nfunction resetViewport() {\n props.chartRef?.updateChartState(SCATTERPLOT_CONTROLS_EVENTS.resetViewport, null);\n}\n\n</script>\n<template>\n <div :class=\"$style.lassoControlsContainer\">\n <div :class=\"$style.lassoButtonsGroup\">\n <div :class=\"$style.lassoControlsBorder\"/>\n <PlBtnGhost\n :class=\"{\n [$style.lassoButtonSelected]: controlsState?.mode === 'pen' || !controlsState,\n [$style.lassoButtonNotSelected]: controlsState?.mode !== 'pen' && controlsState,\n }\"\n icon=\"cursor-pointer\"\n @click=\"setPen\"\n />\n <PlBtnGhost\n :class=\"{\n [$style.lassoButtonSelected]: controlsState?.mode === 'selection',\n [$style.lassoButtonNotSelected]: controlsState?.mode !== 'selection',\n }\"\n icon=\"pen-tool\"\n @click=\"setSelection\"\n />\n <div :class=\"$style.lassoControlsSeparator\"/>\n <PlBtnGhost\n :disabled=\"!controlsState?.backEnabled\"\n icon=\"arrow-left-curved\"\n @click=\"back\"\n />\n <PlBtnGhost\n :disabled=\"!controlsState?.forwardEnabled\"\n @click=\"forward\"\n >\n <template #icon>\n <PlMaskIcon24 name=\"arrow-left-curved\" :style=\"{transform: 'scale(-1, 1)'}\"/>\n </template>\n </PlBtnGhost>\n <div :class=\"$style.lassoControlsSeparator\"/>\n <PlBtnGhost\n :disabled=\"!controlsState?.deleteEnabled\"\n icon=\"delete-bin\"\n @click=\"deletePolygon\"\n />\n </div>\n <PlBtnGhost v-if=\"store.reactive.chartType === 'scatterplot-umap'\" :class=\"$style.resetViewport\" :disabled=\"!isScatterplotZoomChanged\" @click=\"resetViewport\" >\n <PlMaskIcon24 name=\"restart\" :class=\"$style.resetIcon\"/>\n <PlTooltip class=\"info\" :class=\"$style.resetHintIcon\">\n <template #tooltip>\n Return to default pan & zoom\n </template>\n </PlTooltip>\n </PlBtnGhost>\n <div :class=\"$style.lassoHint\">\n Hold Cmd/Ctrl and left-click to pan the canvas\n </div>\n </div>\n</template>\n<style module>\n.lassoControlsContainer {\n display: flex;\n align-items: baseline;\n}\n.lassoButtonsGroup {\n background: white;\n display: flex;\n position: relative;\n}\n.lassoControlsBorder {\n position: absolute;\n border: 1px solid var(--color-div-grey);\n border-radius: var(--border-radius-control);\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n.lassoButtonSelected {\n border: 2px solid var(--border-color-focus);\n}\n.lassoButtonNotSelected {\n border: 2px solid transparent;\n}\n.lassoControlsSeparator {\n width: 1px;\n height: 32px;\n background-color: var(--color-div-grey);\n margin: 4px;\n}\n.lassoHint {\n color: var(--txt-03);\n font-size: 14px;\n margin-left: 8px;\n}\n.resetViewport {\n width: 58px;\n min-width: 58px;\n margin-left: 24px;\n border: 1px solid var(--color-div-grey);\n}\n.resetIcon {\n margin-left: -6px;\n}\n.resetHintIcon {\n align-self: center;\n}\n</style>\n"],"names":["props","__props","store","useStore","controlsState","computed","setPen","_a","SCATTERPLOT_CONTROLS_EVENTS","setSelection","back","forward","deletePolygon","onKeyDown","_b","onMounted","onUnmounted","resetViewport","_createElementBlock","_normalizeClass","$style","_createElementVNode","_createVNode","_unref","PlBtnGhost","_c","_d","_e","_f","PlMaskIcon24","_g","_createBlock","PlTooltip","_cache"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../src/index.vue"],"names":[],"mappings":"AAweA,OAAO,KAAK,EAA0B,gBAAgB,EAAa,MAAM,sBAAsB,CAAC;AAIhG,OAAO,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAmC,eAAe,EAAe,MAAM,SAAS,CAAC;AAqF7F,iBAAS,KAAK,SAcb;AAED,iBAAS,aAAa,SASrB;AA+TD,iBAAS,cAAc;WAoMT,OAAO,IAA6B;;+BAbf,GAAG;iCACA,GAAG;8BACN,GAAG;yBACR,GAAG;;;;EAehC;AAkCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;gBApPT,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;IAxZ5B;;;;OAIG;;IAEH;;OAEG;;;;;;;;gBA+YO,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;;;;;6FA+P5B,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../src/index.vue"],"names":[],"mappings":"AAmeA,OAAO,KAAK,EAA0B,gBAAgB,EAAa,MAAM,sBAAsB,CAAC;AAIhG,OAAO,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAmC,eAAe,EAAe,MAAM,SAAS,CAAC;AAqF7F,iBAAS,KAAK,SAcb;AAED,iBAAS,aAAa,SASrB;AA0TD,iBAAS,cAAc;WAoMT,OAAO,IAA6B;;+BAbf,GAAG;iCACA,GAAG;8BACN,GAAG;yBACR,GAAG;;;;EAehC;AAkCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;gBApPT,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;IAnZ5B;;;;OAIG;;IAEH;;OAEG;;;;;;;;gBA0YO,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;;;;;6FA+P5B,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
package/dist/index.vue.js CHANGED
@@ -1,6 +1,6 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(`.graph-maker .settings-tabs{display:flex;flex-direction:column;border-radius:6px;border:1px solid var(--color-div-grey);background:var(--bg-elevated-01);z-index:1}.graph-maker .settings-tabs>div{--divider-display: block;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:48px;height:48px}.graph-maker .settings-tabs>div:after{content:"";position:absolute;bottom:0;left:8px;right:8px;border-bottom:1px solid var(--color-div-grey);display:var(--divider-display)}.graph-maker .settings-tabs>div:last-child{--divider-display: none}.graph-maker .settings-tabs>div.active{border-radius:6px;border:1px solid var(--color-border-default);background:var(--btn-switcher-bg);box-shadow:var(--btn-shape-shadow)}.graph-maker .settings-tabs>div.active svg:not(.export-icon) path{fill:var(--color-ic-01)}.graph-maker .settings-tabs>div:not(.active){cursor:pointer}.graph-maker .settings-tabs>div.last{margin-top:auto;border-top:1px solid var(--color-div-grey);border-bottom:0}.graph-maker .settings-tabs>div.temp-inactive{pointer-events:none}.graph-maker .settings-tabs>div.temp-inactive.template svg path,.graph-maker .settings-tabs>div.temp-inactive.axes svg path,.graph-maker .settings-tabs>div.temp-inactive.dataMapping svg path,.graph-maker .settings-tabs>div.temp-inactive.statistics svg path,.graph-maker .settings-tabs>div.temp-inactive.layers svg path{fill:var(--color-div-grey)}.graph-maker .settings-tabs>div.temp-inactive.export svg path{stroke:var(--color-div-grey)}.graph-maker{position:relative;display:flex;background-color:#fff;height:100%;padding:12px;overflow:hidden}.graph-maker__main-pane{position:relative;overflow:hidden;width:100%;z-index:1}.graph-maker .settings-tabs{margin-left:auto;align-self:start}.graph-maker .chart_container{position:relative;padding:12px 24px 0 12px;height:100%;width:100%;display:flex;flex-direction:column}.graph-maker .chart_container .chart_header{display:flex;margin-bottom:16px;max-width:100%}.graph-maker .chart_container .chart_titleEdit{margin-top:11px;margin-left:-24px;opacity:0;pointer-events:none}.graph-maker .chart_container .chart_header:hover .chart_titleEdit,.graph-maker .chart_container .chart_header:focus-within .chart_titleEdit{opacity:1}.graph-maker .chart_container .chart_title{font-family:var(--font-family-base);font-weight:var(--font-weigh-base);font-size:28px;height:40px;border:none;outline:none;text-overflow:ellipsis;margin-left:-2px;padding-right:28px;cursor:pointer;field-sizing:content;background:transparent}.graph-maker .chart_container .chart_title:disabled{cursor:default}.graph-maker .chart_container .chart_titleLineSlot{display:flex;margin-left:auto;align-content:center}.graph-maker .chart_container .chart_tooltipHint{position:fixed;left:50%;transform:translate(-85px);animation:tooltipAppears .2s linear}.graph-maker .chart_container .chart_controls{position:absolute;left:12px;bottom:12px;display:flex}@keyframes tooltipAppears{0%{transform:translate(-85px,-40px)}to{transform:translate(-85px)}}.graph-maker .chart_container .chart_tabBy{width:max-content;min-width:200px;margin-top:24px}.graph-maker .chart_container .chart_main-content{display:flex;width:100%;height:100%;overflow:auto;padding-bottom:40px;position:relative}.graph-maker .chart_container .chart_main-content__dendro{padding-top:24px}.graph-maker .chart_container .chart_main-content__dendro .dendro-table{position:relative;margin-top:-3px;flex-shrink:0;z-index:0}.graph-maker .chart_container .chart_main-content__dendro .dendro-table .ag-center-cols-viewport{min-height:unset!important}.graph-maker .chart_container .chart_main-content #chartSvgContainer{flex-shrink:0;width:100%;height:100%;position:relative}.graph-maker .chart_container .chart_main-content #chartSvgContainer svg{outline:none}.graph-maker .chart_container .chart_main-content #chartSvgContainer .chart_ready{width:max-content;height:max-content}.graph-maker .chart_container .chart_main-content #chartSvgContainer.chart_loading{overflow:hidden}.graph-maker .chart_container .chart_main-content #chartSvgContainer.chart_activeLassoSelection .miplots-scatterplot-plot-area{cursor:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC00LC00KSI+CiAgICAgICAgPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF8xNjcwNF8yMjc1NSkiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTYuMTQ2NiA1Ljk2NTY5TDguODA0MzMgNS4wOTU2NkM2LjY1MDQ3IDQuODUxNjIgNC44MzYxMyA2LjY2NTk2IDUuMDgwMTYgOC44MTk4Mkw1Ljk1MDIgMTYuMTQwOEM2LjI0NzI4IDE4LjY0NDggNy41MzExMSAxOS42OTUyIDkuOTcxNDUgMTkuNDYxOEwxMi43NzI1IDE5LjI5MjFMMTMuOTE4NCAyMS4xMTdDMTQuMzc0NyAyMS44NDkxIDE1LjEzODYgMjIuMzM3MiAxNi4wMTkyIDIyLjQzMjdDMTYuOTMxNyAyMi41Mzg4IDE3Ljg3NiAyMi4yMzExIDE4LjU5NzUgMjEuNTk0NUMxOC42NTA2IDIxLjU0MTQgMTguNzE0MiAyMS40OTkgMTguNzY3MyAyMS40NDU5TDIxLjQ0MSAxOC43NzIyQzIyLjIwNSAxOC4wMDgyIDIyLjU3NjMgMTcuMDIxNSAyMi40ODA4IDE2LjA3NzJDMjIuMzg1MyAxNS4xOTY1IDIxLjkwNzkgMTQuNDQzMiAyMS4xMzMzIDEzLjk0NDVMMTkuMzI5NiAxMi43OTg2TDE5LjQ3ODIgOS45NzYzM0MxOS42MzczIDcuNDQwNSAxOC42NTA2IDYuMjQxNTUgMTYuMTU3MiA1Ljk1NTA4TDE2LjE0NjYgNS45NjU2OVoiIGZpbGw9IndoaXRlIi8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik0yMC42MzE5IDE3Ljk4NzVMMTcuOTM3IDIwLjY4MjVDMTcuMzY0IDIxLjE3MDUgMTYuNzM4IDIxLjM5MzMgMTYuMTMzMiAyMS4zMTkxQzE1LjYwMjcgMjEuMjU1NCAxNS4xMjUzIDIwLjk2ODkgMTQuODYgMjAuNTMzOUwxMy4zNjQgMTguMTQ2Nkw5Ljg5NDQ2IDE4LjM0ODJDOC4wMjcwNyAxOC41MzkyIDcuMjg0MzYgMTcuOTIzOCA3LjA2MTU0IDE2LjAyNDZMNi4yMDIxMiA4LjY5Mjk4QzYuMTE3MjQgOC4wMTM5MyA2LjM1MDY2IDcuMzM0ODggNi44Mzg3MyA2Ljg0NjgyQzcuMzI2OCA2LjM1ODc1IDcuOTk1MjQgNi4xMzU5MyA4LjY4NDkgNi4yMTAyMUwxNi4wMjcxIDcuMDgwMjRDMTcuOTI2MyA3LjMwMzA1IDE4LjQ2NzUgNy45NTAyNyAxOC4zNTA4IDkuOTEzMTVMMTguMTU5OCAxMy4zOTMzTDIwLjUyNTggMTQuODg5M0MyMS4wMTM5IDE1LjIwNzYgMjEuMzAwNCAxNS42NjM5IDIxLjM2NCAxNi4xOTQ0QzIxLjQyNzcgMTYuODA5OCAyMS4xNjI0IDE3LjQ1NyAyMC42NDI2IDE3Ljk3NjlMMjAuNjMxOSAxNy45ODc1Wk0xNy40NDg5IDIwLjEwOTVMMjAuMTEyIDE3LjQ0NjRDMjAuNDcyOCAxNy4wODU2IDIwLjY1MzIgMTYuNjUwNiAyMC42MTA3IDE2LjI2ODZDMjAuNTc4OSAxNS45NjA5IDIwLjQwOTEgMTUuNzA2MyAyMC4xMTIgMTUuNTE1M0wxNy4zNzQ2IDEzLjc5NjVMMTcuNTg2OCA5Ljg3MDcxQzE3LjY3MTcgOC4zMjE2MyAxNy40MTcxIDguMDAzMzIgMTUuOTIxIDcuODIyOTVMOC41Nzg4IDYuOTUyOTJDNy42NjYzMiA2Ljg0NjgyIDYuODI4MTIgNy42ODUwMiA2Ljk0NDgzIDguNTg2ODhMNy44MDQyNiAxNS45MTg1QzcuOTg0NjMgMTcuNDE0NSA4LjM1NTk4IDE3LjcyMjIgOS44MzA4IDE3LjU4NDNMMTMuNzQ1OSAxNy4zNjE1TDE1LjQ4NiAyMC4xMjAxQzE1LjY0NTIgMjAuMzY0MiAxNS44OTk4IDIwLjUzMzkgMTYuMjA3NSAyMC41NjU4QzE2LjU4OTUgMjAuNjA4MiAxNy4wMjQ1IDIwLjQ0OSAxNy40Mjc3IDIwLjEwOTVIMTcuNDQ4OVoiIGZpbGw9ImJsYWNrIi8+CiAgICAgICAgPHBhdGggZD0iTTEwLjg4MzkgMTAuODg4NUMxMC43MzU0IDExLjAzNzEgMTAuNTAxOSAxMS4wMzcxIDEwLjM1MzQgMTAuODg4NUw2Ljg0MTQzIDcuMzc2NThDNi42OTI4OCA3LjIyODA0IDYuNjkyODggNi45OTQ2MiA2Ljg0MTQzIDYuODQ2MDdDNi45ODk5NyA2LjY5NzUzIDcuMjIzMzkgNi42OTc1MyA3LjM3MTkzIDYuODQ2MDdMMTAuODgzOSAxMC4zNThDMTEuMDMyNCAxMC41MDY2IDExLjAzMjQgMTAuNzQgMTAuODgzOSAxMC44ODg1WiIgZmlsbD0iYmxhY2siLz4KICAgICAgICA8ZGVmcz4KICAgICAgICAgICAgPGZpbHRlciBpZD0iZmlsdGVyMF9kXzE2NzA0XzIyNzU1IiB4PSIzLjA1ODU5IiB5PSI1LjA3MzI0IiB3aWR0aD0iMTkuNDM3NSIgaGVpZ2h0PSIxOS4zNzk5IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CiAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgogICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+CiAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHg9Ii0xIiBkeT0iMSIvPgogICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMC41Ii8+CiAgICAgICAgICAgICAgICA8ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJvdXQiLz4KICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjIgMCIvPgogICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfMTY3MDRfMjI3NTUiLz4KICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93XzE2NzA0XzIyNzU1IiByZXN1bHQ9InNoYXBlIi8+CiAgICAgICAgICAgIDwvZmlsdGVyPgogICAgICAgIDwvZGVmcz4KICAgIDwvZz4KPC9zdmc+) 0 0,pointer}.graph-maker{--modal-shadow: 0 6px 24px -2px rgba(15, 36, 77, .08), 0px 4px 12px -2px rgba(15, 36, 77, .08)}.graph-maker .panel-modal{position:absolute;top:0;right:6px;bottom:6px;display:flex;flex-direction:column;margin:0;min-width:304px;border-radius:6px;border:1px solid var(--color-div-grey);background:var(--bg-elevated-01);z-index:1;box-shadow:var(--modal-shadow)}.graph-maker .panel-modal .close-panel-modal{position:absolute;top:4px;right:4px}.graph-maker .panel-modal h3{color:var(--txt-01);font-size:20px;font-style:normal;font-weight:500;line-height:24px;letter-spacing:-.2px;margin:0;font-family:var(--font-family-base);cursor:default}.graph-maker .panel-modal .inputs-block{height:100%;display:flex;flex-direction:column;overflow:auto;overflow-x:hidden;padding:0 32px;margin:32px -32px 0}.graph-maker .panel-modal .input-item{min-width:256px;margin:12px 0}.graph-maker .panel-modal .data-form-input-item{min-width:256px;margin:6px 0 0}.graph-maker .panel-modal .aes-input-row{display:flex;margin-bottom:12px}.graph-maker .panel-modal .aes-input-row .aes-input-select{width:100%}.graph-maker .panel-modal .aes-input-row .ui-aes-button{margin-left:8px}.graph-maker .panel-modal .checkbox-item{margin:12px 0;display:flex;align-items:center}.graph-maker .panel-modal .checkbox-item span{font-family:var(--font-family-base);margin-left:8px;font-size:var(--font-size-base);color:var(--txt-01)}.graph-maker .panel-modal .button-group-item{margin:24px 0}.graph-maker .panel-modal .section-title{color:var(--txt-03);font-family:var(--font-family-base);font-size:11px;letter-spacing:.44px;font-style:normal;font-weight:500;line-height:12px;text-transform:uppercase;background:linear-gradient(transparent 0%,transparent calc(50% - .5px),var(--color-div-grey) calc(50% - .5px),var(--color-div-grey) calc(50% + .5px),transparent calc(50% + .5px))}.graph-maker .panel-modal .section-title span{background-color:#fff;padding-right:8px}.graph-maker .panel-modal .section-description{color:var(--txt-03);font-family:var(--font-family-base);font-size:12px;line-height:16px;margin-top:4px}.graph-maker .panel-modal .data-form{height:100%;overflow:hidden;display:flex}.graph-maker .panel-modal .data-form .left-block,.graph-maker .panel-modal .data-form .right-block{height:100%;overflow:hidden;display:flex;flex-direction:column;padding:16px 24px;max-width:320px}.graph-maker .panel-modal .data-form .left-block{width:320px}.graph-maker .panel-modal .data-form .separator{position:relative;width:0;border:.5px solid var(--color-div-grey)}.graph-maker .panel-modal .data-form .separator .arrow-circle{width:32px;height:32px;border-radius:32px;border:1px solid var(--color-div-grey);position:absolute;top:11px;left:-16px;background:#fff;display:flex;align-items:center;justify-content:center}.graph-maker .panel-modal .data-form .separator .mask{position:static;cursor:default;background-color:var(--txt-01)}.graph-maker .panel-modal .data-form .separator .mask:hover{background-color:var(--txt-01)}.graph-maker .panel-modal .data-form .metadata-block{font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weigh-base);margin:24px -32px 0;padding:0 32px;display:flex;flex-direction:column;overflow:hidden}.graph-maker .panel-modal .data-form .metadata-block .title{margin-bottom:8px;cursor:default}.graph-maker .panel-modal .data-form .metadata-block .metadata-item{margin:3px 0}.graph-maker .panel-modal .data-form .metadata-block__items{display:flex;flex-direction:column;overflow:auto;padding-right:8px;margin-right:-8px}.graph-maker .panel-modal .data-form .metadata-block__search{margin-bottom:16px}.graph-maker .panel-modal .stat-form{height:100%;overflow:auto;display:flex;flex-direction:column;padding:16px 24px}.graph-maker .panel-modal .stat-form .section-title{margin:20px 0 12px}.graph-maker .panel-modal .template-form{height:100%;display:flex;overflow:hidden;flex-direction:column}.graph-maker .panel-modal .template-form .template-title{padding:16px 24px 8px}.graph-maker .panel-modal .template-form .template-list{padding:24px 0;overflow:auto}.graph-maker .panel-modal .template-form .template-item{font-family:var(--font-family-base);height:40px;padding:0 24px;display:flex;align-items:center;position:relative;cursor:pointer}.graph-maker .panel-modal .template-form .template-item .checkmark{margin-left:auto;display:none}.graph-maker .panel-modal .template-form .template-item:hover,.graph-maker .panel-modal .template-form .template-item.selected{background-color:var(--color-active-select)}.graph-maker .panel-modal .template-form .template-item.selected .checkmark{display:block}.graph-maker .panel-modal .template-form .inline-icon{margin-right:8px}.graph-maker .panel-modal .settings-form{height:100%;display:flex;overflow:hidden;flex-direction:column}.graph-maker .panel-modal .settings-form .settings-title{padding:16px 24px 8px}.graph-maker .panel-modal .settings-form .settings-list{display:flex;flex-direction:column;padding:24px;gap:16px}.graph-maker .panel-modal .layers-form,.graph-maker .panel-modal .axes-form{height:100%;overflow:hidden;display:flex;flex-direction:column;font-family:var(--font-family-base)}.graph-maker .panel-modal .layers-form .layers-title,.graph-maker .panel-modal .layers-form .axes-title,.graph-maker .panel-modal .axes-form .layers-title,.graph-maker .panel-modal .axes-form .axes-title{padding:16px 24px}.graph-maker .panel-modal .layers-form .section-title,.graph-maker .panel-modal .axes-form .section-title{margin-bottom:24px}.graph-maker .panel-modal .axes-form{max-width:320px}.graph-maker .panel-modal .layers-form{max-width:345px}.graph-maker .panel-modal .layers-list,.graph-maker .panel-modal .axes-settings-list{overflow:auto;height:100%}.graph-maker .panel-modal .axes-form{width:100%}.graph-maker .panel-modal .axes-form .axes-settings-list .axes-settings-input{margin:24px 0}.graph-maker .panel-modal .axes-form .axes-settings-list .axes-settings-row{margin:24px 0;height:20px}.graph-maker .panel-modal .axes-form .axes-settings-list .axes-settings-options-row{margin:24px 0;font-size:var(--font-size-base);display:flex;justify-content:space-between;align-items:center}.graph-maker .panel-modal .axes-form .axes-settings-list .axes-settings-options-row.block{display:block}.graph-maker .panel-modal .axes-form .axes-settings-list .axes-settings-options-row.table{border-bottom:1px solid var(--color-div-grey);padding:8px 0;margin:0}.graph-maker .panel-modal .axes-form .axes-settings-list .axes-settings-options-row.table:last-of-type{border-bottom:none;margin-bottom:16px}.graph-maker .panel-modal .axes-form .axes-settings-list .other{padding:0 24px 8px;border-top:1px solid var(--color-div-grey)}.graph-maker .panel-modal .collapsable-block-container{border-top:1px solid var(--color-div-grey);max-height:100vh;transition:max-height .3s;--title-height: 48px}.graph-maker .panel-modal .collapsable-block-container .collapsable-block-title{font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:600;height:var(--title-height);padding:0 24px;display:flex;align-items:center;position:relative;cursor:pointer;background-color:transparent;transition:background-color .3s}.graph-maker .panel-modal .collapsable-block-container .collapsable-block-title:before{position:absolute;content:"";top:0;left:0;right:0;bottom:0;opacity:.5;background:linear-gradient(var(--color-active-select) 0,#fff var(--title-height));transition:opacity .3s;z-index:0}.graph-maker .panel-modal .collapsable-block-container .collapsable-block-title svg,.graph-maker .panel-modal .collapsable-block-container .collapsable-block-title span{z-index:0}.graph-maker .panel-modal .collapsable-block-container .collapsable-block-title span{margin-left:8px}.graph-maker .panel-modal .collapsable-block-container .collapsable-block-content{padding:24px;background-color:transparent;transition:background-color .3s}.graph-maker .panel-modal .collapsable-block-container.minimized{overflow:hidden;max-height:var(--title-height)}.graph-maker .panel-modal .collapsable-block-container.minimized .collapsable-block-title{background-color:var(--bg-base-light)}.graph-maker .panel-modal .collapsable-block-container.minimized .collapsable-block-title:before{opacity:0}.graph-maker .panel-modal .collapsable-block-container.minimized .collapsable-block-content{background-color:var(--bg-base-light)}.graph-maker .panel-modal .collapsable-block-container.maximized{overflow:visible;animation:.3s delay-overflow}@keyframes delay-overflow{0%{overflow:hidden}}.graph-maker .btn-icon-group{display:inline-flex;--size: 32px}.graph-maker .btn-icon-group .btn-icon-group__option{width:var(--size);height:var(--size);display:flex;justify-content:center;align-items:center;cursor:pointer;color:var(--color-dis-01)}.graph-maker .btn-icon-group .btn-icon-group__option.active{color:var(--main-dark-color)}.fixed-aes-list{display:flex;flex-wrap:wrap;overflow:auto;padding:20px}.fixed-aes-list__rows{flex-wrap:nowrap;flex-direction:column;flex-shrink:1;flex-basis:100%;padding:16px}.fixed-aes-list .color-item{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:3px;margin:6px;position:relative;cursor:pointer}.fixed-aes-list .color-item:after{content:"";position:absolute;top:-4px;left:-4px;width:32px;height:32px;border:1px solid var(--color-ic-01);border-radius:6px;opacity:0}.fixed-aes-list .color-item:hover:after{opacity:1}.fixed-aes-list .color-item.border{background:var(--color-ic-00);border:3px solid}.fixed-aes-list .color-item.border:after{top:-7px;left:-7px}.fixed-aes-list .color-item.white,.fixed-aes-list .color-item.empty{border:1px solid var(--color-div-grey)}.fixed-aes-list .color-item.white:after,.fixed-aes-list .color-item.empty:after{top:-5px;left:-5px}.fixed-aes-list .color-item.white.white.border:before,.fixed-aes-list .color-item.empty.white.border:before{content:"";position:absolute;top:1px;left:1px;width:20px;height:20px;border:1px solid var(--color-div-grey);border-radius:1px}.fixed-aes-list .color-item.empty{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H4V4H0V0ZM8 4H4V8H0V12H4V16H0V20H4V16H8V20H12V16H16V20H20V16H16V12H20V8H16V4H20V0H16V4H12V0H8V4ZM8 8V4H12V8H8ZM8 12V16H12V12H16V8H12V12H8ZM8 12H4V8H8V12Z" fill="%23E1E3EB"/></svg>') no-repeat center}.fixed-aes-list .color-item .checkmark{display:none}.fixed-aes-list .color-item.selected:after{opacity:1}.fixed-aes-list .color-item.selected .checkmark{display:block}.fixed-aes-list .row-item{width:100%;height:32px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;border-radius:6px;border:1px solid transparent}.fixed-aes-list .row-item:hover{background-color:var(--color-sec-hover-grey)}.fixed-aes-list .row-item__selected{background-color:transparent;border-color:var(--color-ic-01);cursor:default;pointer-events:none}.fixed-aes-list .row-item__title{margin-right:8px;font-size:var(--font-size-base)}.fixed-aes-list .row-item__line{width:120px;height:100%}.graph-maker .aes-settings-form{position:absolute;top:-1px;right:-1px;bottom:-1px;width:368px;margin:0;background:#fff;display:flex;flex-direction:column;border-radius:6px;font-family:var(--font-family-base);overflow:hidden;z-index:1;border:1px solid var(--color-div-grey);box-shadow:var(--modal-shadow)}.graph-maker .aes-settings-form__header{padding:16px 24px 0}.graph-maker .aes-settings-form__header .back-link{margin:0 0 8px -8px;cursor:pointer;font-size:var(--font-size-base);display:flex;align-items:center}.graph-maker .aes-settings-form__header .back-link .inline-icon{margin-right:8px}.graph-maker .aes-settings-form__header h3{margin:24px 0}.graph-maker .aes-settings-form .type-color-selector{margin:8px 0 32px}.graph-maker .aes-settings-form .aes-mapping-block{overflow:hidden;display:flex;flex-direction:column}.graph-maker .aes-settings-form .palettes-groups{padding:0 24px;overflow:auto}.graph-maker .aes-settings-form .palettes-groups .palettes-list{margin:24px 0}.graph-maker .aes-settings-form .palettes-groups .palettes-list__palette{display:flex;height:40px;padding:8px 12px;align-items:center;justify-content:space-between;font-size:var(--font-size-base);cursor:pointer;border-radius:6px;border:1px solid transparent}.graph-maker .aes-settings-form .palettes-groups .palettes-list__palette:hover{background-color:var(--color-sec-hover-grey)}.graph-maker .aes-settings-form .palettes-groups .palettes-list__palette.selected{border-color:var(--color-ic-01);cursor:default;pointer-events:none}.graph-maker .aes-settings-form .palettes-groups .palettes-list__palette .palette-gradient{height:24px;min-width:196px;border-radius:3px;display:flex;overflow:hidden}.graph-maker .aes-settings-form .palettes-groups .palettes-list__palette .palette-gradient__item{flex-basis:100%;border-right:.5px solid white;border-left:.5px solid white}.graph-maker .aes-settings-form .palettes-groups .palettes-list__palette .palette-gradient__item:first-child{border-left:none}.graph-maker .aes-settings-form .palettes-groups .palettes-list__palette .palette-gradient__item:last-child{border-right:none}.graph-maker .aes-settings-form .aes-settings-hint{padding:0 24px;font-family:var(--font-family-base);font-size:12px;color:var(--txt-03)}.graph-maker .aes-settings-form .column-values-list{overflow:auto;padding:8px 24px 24px;--contour-color: var(--color-focus);--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-focus-shadow)}.graph-maker .aes-settings-form .column-values-list .column-value{display:flex;min-height:40px;align-items:center;padding-left:12px;padding-right:2px;border-radius:var(--border-radius-control);border:1px solid var(--color-div-grey);margin-bottom:6px;background-color:var(--color-ic-00)}.graph-maker .aes-settings-form .column-values-list .column-value__reorder-icon{padding:12px;margin-right:-4px;margin-left:-12px;cursor:pointer}.graph-maker .aes-settings-form .column-values-list .column-value:last-child{margin-bottom:0}.graph-maker .aes-settings-form .column-values-list .column-value__aes-group{margin-left:auto;flex-shrink:0;display:flex;align-items:center}.graph-maker .aes-settings-form .column-values-list .column-value__aes{width:40px;height:40px;display:flex;justify-content:center;align-items:center;cursor:pointer;background:var(--color-ic-00);border-radius:var(--border-radius-control)}.graph-maker .aes-settings-form .column-values-list .column-value__aes.aes__selected{border:var(--contour-border-width) solid var(--contour-color);box-shadow:var(--contour-box-shadow);z-index:1}.graph-maker .aes-settings-form .column-values-list .column-value__with-reorder .column-value__aes{cursor:default}.graph-maker .aes-settings-form .column-values-list .column-value__title{overflow:hidden;text-overflow:ellipsis;margin-right:8px;line-height:24px}.graph-maker .aes-settings-form .column-values-list .column-value__color{width:18px;height:18px;border-radius:3px}.ui-multiselect-button{--contour-color: var(--txt-01);--label-color: var(--txt-01);--contour-border-width: 1px;--contour-box-shadow: none;--label-offset-left-x: 8px;--label-offset-right-x: 8px;width:100%;min-height:var(--control-height);position:relative;border-radius:var(--border-radius-control);display:flex;flex-direction:row;align-items:center;outline:none;cursor:pointer}.ui-multiselect-button__envelope{font-family:var(--font-family-base)}.ui-multiselect-button label{display:flex;align-items:center;position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);padding:0 4px;max-width:calc(100% - 16px);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);font-size:12px;font-weight:500}.ui-multiselect-button__contour{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--border-radius-control);border-width:var(--contour-border-width);border-color:var(--contour-color);border-style:solid;box-shadow:var(--contour-box-shadow);z-index:0;pointer-events:none}.ui-multiselect-button__content{padding:8px 12px;display:flex;align-items:center;flex-basis:100%;font-size:var(--font-size-base)}.ui-multiselect-button__content .title{margin-right:auto}.ui-multiselect-button__content .gradient{height:18px;min-width:113px;border-radius:3px;display:flex;overflow:hidden}.ui-multiselect-button__content .gradient__item{flex-basis:100%;border-right:.5px solid white;border-left:.5px solid white}.ui-multiselect-button__content .gradient__item:first-child{border-left:none}.ui-multiselect-button__content .gradient__item:last-child{border-right:none}.ui-multiselect-button__content .icon{margin-left:8px;background-color:var(--color-ic-01);position:relative}.ui-multiselect-button__content .icon__fill,.ui-multiselect-button__content .icon__stroke{width:18px;height:18px;border-radius:3px;margin:0 4px}.ui-multiselect-button__content .icon__stroke{background:none;border:3px solid}.ui-multiselect-button__content .icon__stroke.icon__white:before{content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border:1px solid var(--color-div-grey);border-radius:1px}.ui-multiselect-button__content .icon__white,.ui-multiselect-button__content .icon__empty{border:1px solid var(--color-div-grey)}.ui-multiselect-button__content .icon__white:after,.ui-multiselect-button__content .icon__empty:after{top:-5px;left:-5px}.ui-multiselect-button__content .icon__empty{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H4V4H0V0ZM8 4H4V8H0V12H4V16H0V20H4V16H8V20H12V16H16V20H20V16H16V12H20V8H16V4H20V0H16V4H12V0H8V4ZM8 8V4H12V8H8ZM8 12V16H12V12H16V8H12V12H8ZM8 12H4V8H8V12Z" fill="%23E1E3EB"/></svg>') no-repeat center}.ui-aes-button{--contour-color: var(--txt-01);--label-color: var(--txt-01);--contour-border-width: 1px;--contour-box-shadow: none;width:var(--control-height);height:var(--control-height);position:relative;border-radius:var(--border-radius-control);display:flex;flex-shrink:0;flex-direction:row;align-items:center;justify-content:center;outline:none;cursor:pointer;font-family:var(--font-family-base)}.ui-aes-button .icon{position:relative}.ui-aes-button .icon__fill,.ui-aes-button .icon__stroke{width:18px;height:18px;border-radius:3px;margin:0 4px}.ui-aes-button .icon__stroke{background:none;border:3px solid}.ui-aes-button .icon__stroke.icon__white:before{content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border:1px solid var(--color-div-grey);border-radius:1px}.ui-aes-button .icon__white,.ui-aes-button .icon__empty{border:1px solid var(--color-div-grey)}.ui-aes-button .icon__white:after,.ui-aes-button .icon__empty:after{top:-5px;left:-5px}.ui-aes-button .icon__empty{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H4V4H0V0ZM8 4H4V8H0V12H4V16H0V20H4V16H8V20H12V16H16V20H20V16H16V12H20V8H16V4H20V0H16V4H12V0H8V4ZM8 8V4H12V8H8ZM8 12V16H12V12H16V8H12V12H8ZM8 12H4V8H8V12Z" fill="%23E1E3EB"/></svg>') no-repeat center}.dot{width:24px;height:24px}.dot__0{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><rect x="6" y="6" width="12" height="12" stroke="%23110529"/></svg>') no-repeat center}.dot__5{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 5L19 12L12 19L5 12L12 5Z" stroke="%23110529"/></svg>') no-repeat center}.dot__1{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="6" stroke="%23110529"/></svg>') no-repeat center}.dot__2{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 6L19 18H5L12 6Z" stroke="%23110529"/></svg>') no-repeat center}.dot__6{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 18L19 6H5L12 18Z" stroke="%23110529"/></svg>') no-repeat center}.dot__7{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 5.5H5.5V6V18V18.5H6H18H18.5V18V6V5.5H18H6ZM6.5 7.20711V16.7929L11.2929 12L6.5 7.20711ZM7.20711 17.5H16.7929L12 12.7071L7.20711 17.5ZM17.5 16.7929V7.20711L12.7071 12L17.5 16.7929ZM16.7929 6.5H7.20711L12 11.2929L16.7929 6.5Z" fill="%23110529"/></svg>') no-repeat center}.dot__9{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.3536 4.6464L12.0001 4.29285L11.6465 4.6464L4.64652 11.6464L4.29297 12L4.64652 12.3535L11.6465 19.3535L12.0001 19.7071L12.3536 19.3535L19.3536 12.3535L19.7072 12L19.3536 11.6464L12.3536 4.6464ZM6.20718 12.5L11.5001 17.7928V12.5H6.20718ZM12.5001 17.7928L17.793 12.5H12.5001V17.7928ZM17.793 11.5L12.5001 6.20706V11.5H17.793ZM11.5001 6.20706L6.20718 11.5H11.5001V6.20706Z" fill="%23110529"/></svg>') no-repeat center}.dot__3{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 6V12M12 18V12M12 12H18M12 12H6" stroke="%23110529"/></svg>') no-repeat center}.dot__4{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M17 7L12 12M12 12L7 17M12 12L17 17M12 12L7 7" stroke="%23110529"/></svg>') no-repeat center}.dot__8{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.7924 11.5L6.69625 7.40385L7.40336 6.69674L11.5 10.7934V5H12.5V10.7925L16.5957 6.69674L17.3029 7.40385L13.2067 11.5H19V12.5H13.2066L17.3029 16.5962L16.5957 17.3033L12.5 13.2076V19H11.5V13.2067L7.40336 17.3033L6.69625 16.5962L10.7925 12.5H5V11.5H10.7924Z" fill="%23110529"/></svg>') no-repeat center}.dot__12{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 5.5H5.5V6V18V18.5H6H18H18.5V18V6V5.5H18H6ZM6.5 11.5V6.5H11.5V11.5H6.5ZM6.5 12.5V17.5H11.5V12.5H6.5ZM12.5 17.5H17.5V12.5H12.5V17.5ZM17.5 11.5V6.5H12.5V11.5H17.5Z" fill="%23110529"/></svg>') no-repeat center}.dot__10{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 6.02054C8.5851 6.26101 6.26101 8.5851 6.02054 11.5L11.5 11.5V6.02054ZM6.02054 12.5C6.26101 15.4149 8.5851 17.739 11.5 17.9795L11.5 12.5L6.02054 12.5ZM12.5 17.9795C15.4149 17.739 17.739 15.4149 17.9795 12.5H12.5L12.5 17.9795ZM17.9795 11.5C17.739 8.5851 15.4149 6.26101 12.5 6.02054V11.5H17.9795ZM12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5Z" fill="%23110529"/></svg>') no-repeat center}.dot__13{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.48049 7.77335C9.43424 6.9783 10.6613 6.5 12 6.5C13.3387 6.5 14.5658 6.9783 15.5195 7.77335L12 11.2929L8.48049 7.77335ZM7.77091 7.06377L6.35355 5.64641L5.64645 6.35352L7.0638 7.77087C6.08896 8.90764 5.5 10.385 5.5 12C5.5 13.6149 6.08894 15.0923 7.06377 16.2291L5.64645 17.6464L6.35355 18.3535L7.77087 16.9362C8.90764 17.911 10.385 18.5 12 18.5C13.615 18.5 15.0924 17.911 16.2291 16.9362L17.6464 18.3535L18.3536 17.6464L16.9362 16.2291C17.9111 15.0923 18.5 13.6149 18.5 12C18.5 10.385 17.911 8.90764 16.9362 7.77087L18.3536 6.35352L17.6464 5.64641L16.2291 7.06377C15.0923 6.08894 13.6149 5.5 12 5.5C10.3851 5.5 8.90768 6.08894 7.77091 7.06377ZM16.2266 8.48045L12.7071 12L16.2267 15.5195C17.0217 14.5658 17.5 13.3387 17.5 12C17.5 10.6612 17.0217 9.4342 16.2266 8.48045ZM15.5195 16.2266L12 12.7071L8.48045 16.2266C9.4342 17.0217 10.6612 17.5 12 17.5C13.3388 17.5 14.5658 17.0217 15.5195 16.2266ZM7.77335 15.5195L11.2929 12L7.77338 8.48045C6.97832 9.4342 6.5 10.6612 6.5 12C6.5 13.3387 6.9783 14.5658 7.77335 15.5195Z" fill="%23110529"/></svg>') no-repeat center}.dot__14{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 5.5H5.5V6V18V18.5H6H18H18.5V18V6V5.5H18H6ZM17.5 15.882V6.5H12.809L17.5 15.882ZM11.191 6.5H6.5V15.882L11.191 6.5ZM6.80902 17.5H17.191L12 7.11803L6.80902 17.5Z" fill="%23110529"/></svg>') no-repeat center}.dot__11{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.441 5.11803L12 4L12.559 5.11803L13 6H17.882H19L18.5 7L16 12L18.5 17L19 18H17.882H13L12.559 18.882L12 20L11.441 18.882L11 18H6.11803H5L5.5 17L8 12L5.5 7L5 6H6.11803H11L11.441 5.11803ZM10.5 7H6.61803L8.55902 10.882L10.5 7ZM8.55902 13.118L6.61803 17H10.5L8.55902 13.118ZM11.618 17L9.11803 12L11.618 7H12.382L14.882 12L12.382 17H11.618ZM13.5 17H17.382L15.441 13.118L13.5 17ZM15.441 10.882L17.382 7H13.5L15.441 10.882Z" fill="%23110529"/></svg>') no-repeat center}.dot__22{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><rect x="6" y="6" width="12" height="12" fill="%23110529"/></svg>') no-repeat center}.dot__23{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 5L19 12L12 19L5 12L12 5Z" fill="%23110529"/></svg>') no-repeat center}.dot__21{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="6" fill="%23110529"/></svg>') no-repeat center}.dot__24{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 6L19 18H5L12 6Z" fill="%23110529"/></svg>') no-repeat center}.dot__25{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M12 18L19 6H5L12 18Z" fill="%23110529"/></svg>') no-repeat center}svg.line{width:100%;height:100%;stroke-width:1.5px;stroke:var(--color-ic-01)}svg.line__dashed{stroke-dasharray:6 6}svg.line__dotted{stroke-dasharray:1.5 4}svg.line__dotdash{stroke-dasharray:1.5 4 8 4}svg.line__longdash{stroke-dasharray:10 4}svg.line__twodash{stroke-dasharray:3 3 9 3}.icon__line{height:24px;width:24px}.icon__line.line__solid{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M1 11.25H23V12.75H1V11.25Z" fill="%23110529"/></svg>') no-repeat center}.icon__line.line__dashed{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M1 11.25H6V12.75H1V11.25ZM9.5 11.25H14.5V12.75H9.5V11.25ZM18 11.25H23V12.75H18V11.25Z" fill="%23110529"/></svg>') no-repeat center}.icon__line.line__dotted{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path d="M2.75 11.25H1.25V12.75H2.75V11.25Z" fill="%23110529"/><path d="M11.25 11.25H12.75V12.75H11.25V11.25Z" fill="%23110529"/><path d="M22.75 11.25H21.25V12.75H22.75V11.25Z" fill="%23110529"/><path d="M7.75 11.25H6.25V12.75H7.75V11.25Z" fill="%23110529"/><path d="M16.25 11.25H17.75V12.75H16.25V11.25Z" fill="%23110529"/></svg>') no-repeat center}.icon__line.line__dotdash{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M1 11.25H2.5V12.75H1V11.25ZM17 12.75H7V11.25H17V12.75ZM21.5 12.75V11.25H23V12.75H21.5Z" fill="%23110529"/></svg>') no-repeat center}.icon__line.line__longdash{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M1 11.25H10V12.75H1V11.25ZM14 11.25H23V12.75H14V11.25Z" fill="%23110529"/></svg>') no-repeat center}.icon__line.line__twodash{background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M1 11.25H4V12.75H1V11.25ZM17.0261 12.75H7V11.25H17.0261V12.75ZM20 12.75V11.25H23V12.75H20Z" fill="%23110529"/></svg>') no-repeat center}.popup{position:absolute;width:0;height:0;--modal-shadow: 0 6px 24px -2px rgba(15, 36, 77, .08), 0px 4px 12px -2px rgba(15, 36, 77, .08)}.popup__content{z-index:3;position:absolute;display:inline-block;background:var(--color-ic-00);border-radius:6px;width:max-content;border:1px solid var(--color-div-grey);box-shadow:var(--modal-shadow);font-family:var(--font-family-base)}.popup__content .beak{position:absolute}.popup__content .beak path{fill:var(--color-ic-00)}.popup__content .beak polyline{stroke:var(--color-div-grey)}.popup__content.bottom{top:0;right:0}.popup__content.bottom .beak{transform:translate(50%) translateY(-100%) rotate(90deg);top:2px;right:20px}.popup__content.left-bottom{top:0;right:0}.popup__content.left-bottom .beak{transform:translate(100%) rotate(180deg);right:0}.pl-color-slider{height:32px;border:1px solid var(--color-border-default);border-radius:6px;display:flex}.pl-color-slider__wrapper{width:100%;height:100%;position:relative}.pl-color-slider__color-contaier{height:100%;padding:0 16px;background-color:#f0f0f0;position:absolute;width:100%;z-index:2;border-radius:5px}.pl-color-slider__gradient{height:100%}.pl-color-slider__thumbs-contaier{height:100%;z-index:2;position:relative;border-radius:4px}.pl-color-slider__thumb{height:100%;width:1px;background-color:var(--txt-01);position:absolute;z-index:5;outline:none}.pl-color-slider__thumb-roof{width:8px;height:8px;position:absolute;bottom:-4px;left:-3.5px;background-color:red;background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='8'%20height='9'%20viewBox='0%200%208%209'%20fill='none'%3e%3cpath%20d='M3.64645%201.56066C3.84171%201.3654%204.15829%201.3654%204.35355%201.56066L6.93934%204.14645C7.1346%204.34171%207.1346%204.65829%206.93934%204.85355L4.35355%207.43934C4.15829%207.6346%203.84171%207.6346%203.64645%207.43934L1.06066%204.85355C0.865398%204.65829%200.865398%204.34171%201.06066%204.14645L3.64645%201.56066Z'%20fill='white'%20stroke='%23110529'/%3e%3c/svg%3e");cursor:pointer}.pl-color-slider .active,.pl-color-slider__thumb-roof:active,.pl-color-slider__thumb-roof:hover,.active-thumb .pl-color-slider__thumb-roof{background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='36'%20height='44'%20viewBox='0%200%2036%2044'%20fill='none'%3e%3cg%20filter='url(%23filter0_d_11505_23033)'%3e%3cpath%20d='M6%2017.1995C6%2015.798%206.58823%2014.4608%207.62138%2013.5137L18%204L28.3786%2013.5137C29.4118%2014.4608%2030%2015.798%2030%2017.1995V31C30%2033.7614%2027.7614%2036%2025%2036H11C8.23858%2036%206%2033.7614%206%2031V17.1995Z'%20fill='white'/%3e%3cpath%20d='M6.5%2017.1995C6.5%2015.9381%207.02941%2014.7347%207.95924%2013.8823L18%204.67828L28.0408%2013.8823C28.9706%2014.7347%2029.5%2015.9381%2029.5%2017.1995V31C29.5%2033.4853%2027.4853%2035.5%2025%2035.5H11C8.51472%2035.5%206.5%2033.4853%206.5%2031V17.1995Z'%20stroke='%23110529'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d_11505_23033'%20x='0'%20y='0'%20width='36'%20height='44'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='hardAlpha'/%3e%3cfeOffset%20dy='2'/%3e%3cfeGaussianBlur%20stdDeviation='3'/%3e%3cfeComposite%20in2='hardAlpha'%20operator='out'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200.0666667%200%200%200%200%200.0196078%200%200%200%200%200.160784%200%200%200%200.16%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow_11505_23033'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow_11505_23033'%20result='shape'/%3e%3c/filter%3e%3c/defs%3e%3c/svg%3e");width:24px;height:32px;background-repeat:no-repeat;background-position:-6px -4px;border-radius:4px;left:-11.5px;bottom:-25px;position:absolute;transition:all .1s ease-in-out}.pl-color-slider .active-thumb{z-index:6}.pl-color-slider__top-index{z-index:7}.active .pl-color-slider__thumb-color-indicator,.active-thumb .pl-color-slider__thumb-color-indicator,.pl-color-slider__thumb-roof:active,.pl-color-slider__thumb-roof:hover .pl-color-slider__thumb-color-indicator{opacity:1;transform:scale(1);transition:all .5s}.pl-color-slider__thumb-color-indicator{opacity:0;position:absolute;bottom:3px;width:18px;height:18px;left:3px;border-radius:4px;transform:scale(0);pointer-events:none}.dnd-chip{border-radius:6px;border:1px solid #E1E3EB;background:#f7f8fa;padding:10px 12px;display:flex;align-items:center;width:100%;margin-bottom:6px;cursor:grab}.dnd-chip.drag-active,.dnd-chip:hover{background:#fff;position:relative}.dnd-chip.drag-active:after,.dnd-chip:hover:after{content:"";position:absolute;pointer-events:none;top:-1px;bottom:-1px;left:-1px;right:-1px;z-index:10;border-radius:6px;border-width:1px;border-color:#49cc49;border-style:solid}.dnd-chip.drag-active:after{border-width:2px;box-shadow:0 0 0 4px #49cc493d}.dnd-chip__title{overflow:hidden;color:#110529;text-overflow:ellipsis;white-space:nowrap;font-family:Manrope;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.dnd-chip__sub-title{overflow:hidden;color:#9d9eae;text-overflow:ellipsis;white-space:nowrap;font-family:Manrope;font-size:12px;font-style:normal;font-weight:500;line-height:16px}.dnd-chip__title-wrapper{overflow:hidden}.dnd-chip__icon{width:16px;height:16px;margin-right:12px;flex-shrink:0}.dnd-chip__icon svg{width:100%;height:100%}.dnd-basket{border-radius:6px;border:1px solid #E1E3EB;background:#f7f8fa;padding:10px 12px 12px}.dnd-basket__required{position:relative}.dnd-basket__required svg{position:relative;left:2px;top:4px;margin-right:2px}.dnd-basket__title{color:#110529;font-family:Manrope;font-size:14px;font-style:normal;font-weight:500;line-height:20px;margin-bottom:6px;cursor:default}.dnd-basket__chip-wrapper .dnd-basket-chip:last-child{margin-bottom:0}.dnd-basket__placeholder{border-radius:6px;border:1.5px dashed #E1E3EB;color:#9d9eae;font-family:Manrope;font-size:14px;font-style:normal;font-weight:500;height:40px;cursor:default;display:flex;justify-content:center;align-items:center}.dnd-basket.disabled,.dnd-basket.readonly{opacity:.24;cursor:no-drop}.dnd-basket.readonly{pointer-events:none}.dnd-basket.active,.dnd-basket:hover{border:1px solid #49CC49;background:#63e0241f}.dnd-basket.active .dnd-basket__placeholder,.dnd-basket:hover .dnd-basket__placeholder{border:1.5px dashed #49CC49}.dnd-basket__chip-wrapper .dnd-double-chip:last-child{margin-bottom:0}.dnd-double-chip{background:#fff;position:relative;cursor:default}.dnd-double-chip .mask-drag-dots{display:none;width:16px;height:16px;margin-right:12px;flex-shrink:0;color:var(--ic-02)}.dnd-double-chip:hover.sortable .mask-drag-dots{display:block}.dnd-double-chip:hover.sortable .dnd-double-chip__icon{display:none}.dnd-double-chip.error *{border-color:#ff5c5c}.dnd-double-chip__group{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.dnd-double-chip .pl-dropdown__contour,.dnd-double-chip .pl-dropdown-multi__contour,.dnd-double-chip .pl-autocomplete__contour,.dnd-double-chip .pl-autocomplete-multi__contour{border-top:none;border-top-right-radius:0;border-top-left-radius:0}.dnd-double-chip__bottom{position:relative}.dnd-double-chip__top{display:flex;padding:10px 12px;align-items:center;border:1px solid #110529;border-radius:6px 6px 0 0}.dnd-double-chip__icon-close,.dnd-double-chip__icon{line-height:0;width:16px;height:16px}.dnd-double-chip__icon{margin-right:12px}.dnd-double-chip__icon.error{--icon-color: var(--errorColor)}.dnd-double-chip__icon-close{margin-left:12px;cursor:pointer}.dnd-double-chip__title-wrapper{flex-grow:1;overflow:hidden}.dnd-double-chip__title{overflow:hidden;color:#110529;text-overflow:ellipsis;white-space:nowrap;font-family:Manrope;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.dnd-double-chip__bottom-range{border:1px solid black;border-top:none;padding:12px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;display:flex;flex-direction:column}.dnd-double-chip__bottom-range-row+.dnd-double-chip__bottom-range-row{margin-top:12px}.dnd-basket-chip{border-radius:6px;border:1px solid var(--txt-01);background:#fff;padding:10px 12px;display:flex;align-items:center;width:100%;position:relative;z-index:1;cursor:default;--errorColor: #FF5C5C}.dnd-basket-chip__handler{position:absolute;left:0;top:0;bottom:0;right:36px;cursor:grab;z-index:20}.dnd-basket-chip .mask-drag-dots{display:none;width:16px;height:16px;margin-right:12px;flex-shrink:0;color:var(--ic-02)}.dnd-basket-chip.sortable__item{z-index:3}.dnd-basket-chip:hover.sortable .mask-drag-dots{display:block}.dnd-basket-chip:hover.sortable .dnd-basket-chip__icon{display:none}.dnd-basket-chip__icon{width:16px;height:16px;margin-right:12px;flex-shrink:0}.dnd-basket-chip__icon svg{width:100%;height:100%}.dnd-basket-chip__icon.error{--icon-color: var(--errorColor)}.dnd-basket-chip.error{border-color:var(--errorColor)}.dnd-basket-chip.drag-active{border-radius:6px;border:2px solid #49CC49;background:#fff;box-shadow:0 0 0 4px #49cc493d;cursor:grab}.dnd-basket-chip__group{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.dnd-basket-chip__title{overflow:hidden;color:#110529;text-overflow:ellipsis;white-space:nowrap;font-family:Manrope;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.dnd-basket-chip__sub-title{overflow:hidden;color:#9d9eae;text-overflow:ellipsis;white-space:nowrap;font-family:Manrope;font-size:12px;font-style:normal;font-weight:500;line-height:16px}.dnd-basket-chip__title-wrapper{overflow:hidden;flex-grow:1}.dnd-basket-chip__icon-close{line-height:0;width:16px;height:16px;margin-left:12px;cursor:pointer}.dnd-basket-chip__fixed-axes-block{display:flex;flex-direction:column;gap:6px}.dnd-basket-chip__fixed-axes-block .pl-autocomplete,.dnd-basket-chip__fixed-axes-block .pl-dropdown,.dnd-basket-chip__fixed-axes-block .pl-dropdown-multi,.dnd-basket-chip__fixed-axes-block .pl-autocomplete-multi{background:#fff}.dnd-basket-chip__fixed-axes-block label{padding-top:2px;z-index:1}.double-contour-temp{--contour-offset: 4px;position:absolute;top:calc(var(--contour-offset) * -1);left:calc(var(--contour-offset) * -1);right:calc(var(--contour-offset) * -1);bottom:calc(var(--contour-offset) * -1);pointer-events:none;z-index:1;--offset-left-x: calc(var(--label-offset-left-x) + var(--contour-offset));clip-path:polygon(0 0,var(--offset-left-x) 0,var(--offset-left-x) 12px,var(--label-offset-right-x) 12px,var(--label-offset-right-x) 0,100% 0,100% 100%,0 100%,0 0)}.double-contour-temp>div{position:absolute;top:var(--contour-offset);left:var(--contour-offset);right:var(--contour-offset);bottom:var(--contour-offset)}.zoom-container{background:#fff;display:flex;position:relative;margin-right:24px}.zoom-container .zoom-border{position:absolute;border:1px solid var(--color-div-grey);border-radius:var(--border-radius-control);top:0;left:0;right:0;bottom:0}.zoom-input input::-webkit-outer-spin-button,.zoom-input input::-webkit-inner-spin-button{-webkit-appearance:none}.zoom-input .zoom-text-field{--contour-color: transparent;--contour-border-width: 1px;--contour-box-shadow: none;--prefix-color: var(--color-placeholder);min-height:var(--control-height);position:relative;border-radius:var(--border-radius-control);display:flex;flex-direction:row;align-items:center;outline:none;width:64px}.zoom-input .zoom-text-field__envelope{font-family:var(--font-family-base)}.zoom-input .zoom-text-field input{min-height:calc(var(--control-height) - 2px);line-height:calc(var(--control-height) - 2px);width:100%;border:none;font-size:inherit;background-color:transparent;color:var(--txt-01);caret-color:var(--border-color-focus);cursor:inherit;padding:0;text-align:center;font-family:var(--font-family-base)}.zoom-input .zoom-text-field input:focus{outline:none}.zoom-input .zoom-text-field__contour{border-radius:var(--border-radius-control);border-width:var(--contour-border-width);border-color:var(--contour-color);border-style:solid;box-shadow:var(--contour-box-shadow);z-index:0;pointer-events:none}.zoom-input .zoom-text-field:hover{background-color:var(--btn-sec-hover-grey)}.zoom-input .zoom-text-field:focus-within{--contour-color: var(--border-color-focus);--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--border-color-focus-shadow)}.zoom-input .zoom-text-field:before{left:0}.zoom-input .zoom-text-field:after{right:0}.zoom-input .zoom-text-field:before,.zoom-input .zoom-text-field:after{content:"";position:absolute;top:8px;bottom:8px;width:1px;background-color:var(--color-div-grey);z-index:0}.graph-info-tooltip{width:320px;border-radius:16px;background:var(--bg-base-dark);color:var(--color-ic-00);padding:16px;display:flex;flex-direction:column}.graph-info-tooltip__container{position:absolute;height:0}.graph-info-tooltip__tail{position:absolute;width:9px;height:9px;background:var(--bg-base-dark);top:-4.5px;left:-4.5px;transform:rotate(45deg)}.graph-info-tooltip .graph-info-tooltip-row{display:flex;line-height:20px;margin-bottom:6px}.graph-info-tooltip .graph-info-tooltip-row .graph-info-tooltip-title,.graph-info-tooltip .graph-info-tooltip-row .graph-info-tooltip-value{flex-basis:50%}.graph-info-tooltip .graph-info-tooltip-row__sequence{flex-direction:column}.graph-info-tooltip .graph-info-tooltip-row__sequence .graph-info-tooltip-title,.graph-info-tooltip .graph-info-tooltip-row__sequence .graph-info-tooltip-value{flex-basis:unset}.graph-info-tooltip .graph-info-tooltip-row__sequence .graph-info-tooltip-icon{margin-left:auto}.graph-info-tooltip .graph-info-tooltip-sequence-row{display:flex;background:var(--txt-02);padding:8px}.graph-info-tooltip .graph-info-tooltip-value{text-overflow:ellipsis;overflow:hidden}.graph-info-tooltip .graph-info-tooltip-close{cursor:pointer;position:absolute;top:12px;right:12px;background-color:var(--ic-02)}.graph-info-tooltip .graph-info-tooltip-clipboard{cursor:pointer;background-color:var(--ic-02);margin-left:4px}.graph-info-tooltip .graph-info-tooltip-button{margin-top:16px;--color-border-default: white}
2
2
  .slide-panel-enter-active{transition:transform .3s ease-out}.slide-panel-leave-active{transition:transform .3s ease-in-out}.slide-panel-enter-from{transform:translate(200%);opacity:0}.slide-panel-leave-to{transform:translate(200%);opacity:1}`)),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
3
- import { defineComponent as de, mergeModels as Z, useModel as q, ref as f, watch as s, toRaw as u, computed as c, shallowRef as H, onMounted as ce, onUnmounted as ve, useSlots as pe, createElementBlock as me, openBlock as y, createElementVNode as fe, createVNode as J, createBlock as w, createCommentVNode as g, withCtx as P, renderSlot as B, unref as v, resolveDynamicComponent as ge } from "vue";
3
+ import { defineComponent as de, mergeModels as Z, useModel as q, ref as f, watch as s, toRaw as u, computed as c, shallowRef as H, onMounted as ce, onUnmounted as ve, useSlots as pe, createElementBlock as me, openBlock as y, createElementVNode as fe, createVNode as J, createBlock as C, createCommentVNode as g, withCtx as P, renderSlot as B, unref as v, resolveDynamicComponent as ge } from "vue";
4
4
  import { MiPlots as he } from "@milaboratories/miplots4";
5
5
  import { DemoDataStore as Se } from "@milaboratories/pf-plots";
6
6
  import { watchDebounced as b } from "@vueuse/core";
@@ -19,7 +19,7 @@ import "./constantsAesthetic.js";
19
19
  import "d3-scale";
20
20
  import { composeChartSettings as z } from "./utils/createChartSettingsForRender/composeChartSettings.js";
21
21
  import { saveToFile as Pe } from "./utils/saveToFile.js";
22
- import { copyJSON as k } from "./utils/copyJSON.js";
22
+ import { copyJSON as w } from "./utils/copyJSON.js";
23
23
  import "@platforma-sdk/model";
24
24
  import Be from "./components/GraphStatusScreen.vue.js";
25
25
  const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, tt = /* @__PURE__ */ de({
@@ -61,17 +61,17 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
61
61
  */
62
62
  resetDefaults: X
63
63
  });
64
- const O = f(null);
64
+ const k = f(null);
65
65
  s(() => l.pFrame, (e) => {
66
66
  var o;
67
67
  if (!e.ok || !e.value) {
68
- O.value = null;
68
+ k.value = null;
69
69
  return;
70
70
  }
71
71
  const a = "platforma" in window ? (o = window.platforma) == null ? void 0 : o.pFrameDriver : l.driver;
72
72
  if (!a)
73
73
  throw new Error("PFrame driver is missing");
74
- O.value = new Se(
74
+ k.value = new Se(
75
75
  e.value,
76
76
  a,
77
77
  l.labelsModifier
@@ -87,7 +87,7 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
87
87
  });
88
88
  const t = Oe(
89
89
  u(n.value),
90
- O,
90
+ k,
91
91
  l.chartType,
92
92
  p,
93
93
  R,
@@ -128,13 +128,13 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
128
128
  chartData: !1
129
129
  }), p.value = l.defaultOptions ? [...l.defaultOptions] : []), t.value.reactive.dataStateKey = e;
130
130
  }, { deep: !0, immediate: !0 });
131
- const Y = c(() => ke(t.value.reactive.currentTab)), i = H(null), M = f(null), K = f(!1), h = f(null), x = c(
131
+ const Y = c(() => ke(t.value.reactive.currentTab)), i = H(null), M = f(null), K = f(!1), h = f(null), O = c(
132
132
  () => l.pFrame.ok && !l.pFrame.value && !l.pFrame.stable
133
133
  ), I = c(
134
- () => t.value.loading.initialInputGuide && D.value === "loading"
135
- ), D = c((e) => {
134
+ () => t.value.loading.initialInputGuide && x.value === "loading"
135
+ ), x = c((e) => {
136
136
  var r, m;
137
- if (console.log("status update"), x.value)
137
+ if (O.value)
138
138
  return "running";
139
139
  if (l.pFrame.ok && l.pFrame.stable && !l.pFrame.value)
140
140
  return "noPframe";
@@ -143,9 +143,6 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
143
143
  const a = t.value.inputGuide.value, o = t.value.chartData.value;
144
144
  return a.consistent ? a.ready ? o && ((r = Object.values(o.data.byColumns.values)[0]) == null ? void 0 : r.length) === 0 ? "empty" : K.value ? ((m = h.value) == null ? void 0 : m.type) === "unknownError" ? "unknownError" : "knownError" : t.value.loading.initialCharts || e !== "ready" && t.value.loading.chartData || t.value.loading.chartRendering || i.value === null && (t.value.loading.inputGuide || t.value.loading.chartData) ? "loading" : "ready" : p.value === null || t.value.loading.defaults || t.value.loading.initialInputGuide ? "loading" : "notReady" : "inconsistent";
145
145
  });
146
- s(() => D.value, (e) => {
147
- console.log("status", e);
148
- }, { immediate: !0 });
149
146
  function _(e) {
150
147
  var a;
151
148
  t.value.reactive.dendroSelectedNodeId = (a = e == null ? void 0 : e.info[0]) == null ? void 0 : a.id, t.value.reactive.dendroInfoByClick = e;
@@ -154,12 +151,12 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
154
151
  t.value.reactive.showTooltipHint = e;
155
152
  }
156
153
  function A(e, a) {
157
- var T, C;
154
+ var D, T;
158
155
  n.value = {
159
156
  ...n.value,
160
157
  selectedPolygons: a
161
158
  };
162
- const o = (C = (T = t.value.chartData.value) == null ? void 0 : T.data) == null ? void 0 : C.axesData;
159
+ const o = (T = (D = t.value.chartData.value) == null ? void 0 : D.data) == null ? void 0 : T.axesData;
163
160
  if (e.length === 0 || !o) {
164
161
  N.value = { axesSpec: [], selectedKeys: [] };
165
162
  return;
@@ -202,21 +199,21 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
202
199
  bubble: [S]
203
200
  };
204
201
  function V(e) {
205
- var a, o, r, m, T;
202
+ var a, o, r, m, D;
206
203
  if (e && ((a = Object.values(e.data.values)[0]) == null ? void 0 : a.length) > 0) {
207
204
  if (i.value)
208
205
  i.value.updateSettingsAndData(u(e.data), u(e.settings));
209
206
  else {
210
- const C = document.getElementById("chartSvgContainer");
211
- C && (i.value = he.newPlot(u(e.data), u(e.settings), ae[e.settings.type]), e.settings.type === "scatterplot-umap" && i.value.updateChartState("polygon", n.value.selectedPolygons ?? []), i.value.mount(C));
207
+ const T = document.getElementById("chartSvgContainer");
208
+ T && (i.value = he.newPlot(u(e.data), u(e.settings), ae[e.settings.type]), e.settings.type === "scatterplot-umap" && i.value.updateChartState("polygon", n.value.selectedPolygons ?? []), i.value.mount(T));
212
209
  }
213
210
  M.value = (o = i.value) != null && o.calculatedData ? { ...i.value.calculatedData } : null, K.value = ((r = i.value) == null ? void 0 : r.hasError) ?? !1, h.value = ((m = i.value) == null ? void 0 : m.errorInfo) ?? null;
214
211
  } else
215
- (T = i.value) == null || T.unmount(), i.value = null, h.value = null;
212
+ (D = i.value) == null || D.unmount(), i.value = null, h.value = null;
216
213
  }
217
- s(() => D.value, (e) => {
214
+ s(() => x.value, (e) => {
218
215
  var a;
219
- (e === "notReady" || e === "noPframe" || O.value === null) && ((a = i.value) == null || a.unmount(), i.value = null);
216
+ (e === "notReady" || e === "noPframe" || k.value === null) && ((a = i.value) == null || a.unmount(), i.value = null);
220
217
  });
221
218
  const G = H(null);
222
219
  s([
@@ -256,27 +253,27 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
256
253
  }), b(() => t.value.reactive.optionsState, (e) => {
257
254
  n.value = {
258
255
  ...n.value,
259
- optionsState: k(e)
256
+ optionsState: w(e)
260
257
  };
261
258
  }, { deep: !0, debounce: 1e3 }), b(() => t.value.reactive.statisticsSettings, (e) => {
262
259
  n.value = {
263
260
  ...n.value,
264
- statisticsSettings: k(e)
261
+ statisticsSettings: w(e)
265
262
  };
266
263
  }, { deep: !0, debounce: 1e3 }), b(() => t.value.reactive.axesSettings, (e) => {
267
264
  n.value = {
268
265
  ...n.value,
269
- axesSettings: k(e)
266
+ axesSettings: w(e)
270
267
  };
271
268
  }, { deep: !0, debounce: 1e3 }), b(() => t.value.reactive.layersSettings, (e) => {
272
269
  n.value = {
273
270
  ...n.value,
274
- layersSettings: k(e)
271
+ layersSettings: w(e)
275
272
  };
276
273
  }, { deep: !0, debounce: 1e3 }), b(() => t.value.reactive.dataBindAes, (e) => {
277
274
  n.value = {
278
275
  ...n.value,
279
- dataBindAes: k(e)
276
+ dataBindAes: w(e)
280
277
  };
281
278
  }, { deep: !0, debounce: 1e3 }), b([
282
279
  () => t.value.reactive.chartScale,
@@ -327,7 +324,7 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
327
324
  return y(), me("div", Ie, [
328
325
  fe("div", Fe, [
329
326
  J(be, {
330
- "graph-status": D.value,
327
+ "graph-status": x.value,
331
328
  graphTitle: n.value.title,
332
329
  chartData: M.value,
333
330
  "chart-ref": i.value,
@@ -345,26 +342,26 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
345
342
  ]),
346
343
  _: 3
347
344
  }, 8, ["graph-status", "graphTitle", "chartData", "chart-ref", "error-info", "dendroTooltipButton", "custom-status-text", "allow-title-editing", "isScatterplotZoomChanged"]),
348
- I.value || x.value ? (y(), w(Be, {
345
+ I.value || O.value ? (y(), C(Be, {
349
346
  key: 0,
350
- graphStatus: x.value ? "running" : "loading",
347
+ graphStatus: O.value ? "running" : "loading",
351
348
  top: 67,
352
349
  left: 12,
353
350
  right: 12,
354
351
  bottom: 12,
355
352
  customStatusText: d.statusText
356
353
  }, null, 8, ["graphStatus", "customStatusText"])) : g("", !0),
357
- I.value ? g("", !0) : (y(), w(Ce, {
354
+ I.value ? g("", !0) : (y(), C(Ce, {
358
355
  key: 1,
359
356
  id: "graph-settings-modal"
360
357
  }, {
361
358
  default: P(() => [
362
- v(t).reactive.currentTab ? (y(), w(De, {
359
+ v(t).reactive.currentTab ? (y(), C(De, {
363
360
  key: 0,
364
361
  onClose: a[1] || (a[1] = (r) => v(t).reactive.currentTab = null)
365
362
  }, {
366
363
  default: P(() => [
367
- (y(), w(ge(Y.value.value), null, {
364
+ (y(), C(ge(Y.value.value), null, {
368
365
  default: P(() => [
369
366
  v(t).reactive.currentTab === "annotations" ? B(e.$slots, "annotationsSlot", { key: 0 }) : g("", !0),
370
367
  v(t).reactive.currentTab === "settings" ? B(e.$slots, "settingsSlot", { key: 1 }) : g("", !0),
@@ -383,16 +380,16 @@ const Ie = { class: "graph-maker" }, Fe = { class: "graph-maker__main-pane" }, t
383
380
  modelValue: v(t).reactive.currentTab,
384
381
  "onUpdate:modelValue": a[2] || (a[2] = (r) => v(t).reactive.currentTab = r),
385
382
  "chart-type": v(t).reactive.chartType,
386
- "graph-status": D.value,
383
+ "graph-status": x.value,
387
384
  allowDeleting: d.allowChartDeleting,
388
385
  hasAnnotationsSlot: ie.value,
389
386
  hasSettingsSlot: ue.value,
390
387
  hasLogSlot: re.value,
391
- initialLoading: I.value || x.value,
388
+ initialLoading: I.value || O.value,
392
389
  onExport: le,
393
390
  onDelete: a[3] || (a[3] = (r) => e.$emit("delete-this-graph"))
394
391
  }, null, 8, ["modelValue", "chart-type", "graph-status", "allowDeleting", "hasAnnotationsSlot", "hasSettingsSlot", "hasLogSlot", "initialLoading"]),
395
- ((o = h.value) == null ? void 0 : o.type) === "unknownError" ? (y(), w(we, {
392
+ ((o = h.value) == null ? void 0 : o.type) === "unknownError" ? (y(), C(we, {
396
393
  key: 0,
397
394
  errorInfo: h.value
398
395
  }, null, 8, ["errorInfo"])) : g("", !0)
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.js","sources":["../src/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n ErrorInfo,\n LassoControlsState,\n Settings,\n} from '@milaboratories/miplots4';\nimport {\n MiPlots,\n} from '@milaboratories/miplots4';\nimport type {\n ChartType,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport {\n DemoDataStore,\n} from '@milaboratories/pf-plots';\nimport type { AxisSpec, PFrameDriver, PlSelectionModel, PTableKey } from '@platforma-sdk/model';\nimport { watchDebounced } from '@vueuse/core';\nimport canonicalize from 'canonicalize';\nimport { computed, onMounted, onUnmounted, ref, shallowRef, toRaw, useSlots, watch } from 'vue';\nimport './assets/ui.scss';\nimport Chart from './components/Chart.vue';\nimport PanelModal from './components/PanelModal.vue';\nimport VTabs from './components/SettingsTabs/index.vue';\nimport TransitionSlidePanel from './components/TransitionSlidePanel.vue';\nimport ChartErrorNotificationAlert from './components/ChartErrorNotificationAlert.vue';\nimport { useSettingsForm } from './forms';\nimport { createReactiveState, provideStore } from './store';\nimport type { DendroNodeInfo, GraphMakerProps, GraphMakerState, GraphStatus } from './types';\nimport { composeChartSettings, saveToFile } from './utils';\nimport { copyJSON } from './utils/copyJSON';\nimport GraphStatusScreen from './components/GraphStatusScreen.vue';\n\nconst _emit = defineEmits(['delete-this-graph', 'tooltip-btn-click']);\n\nconst graphMakerState = defineModel<GraphMakerState>({ required: true });\nconst selectionState = defineModel<PlSelectionModel>('selection');\n\nconst props = defineProps<GraphMakerProps>();\n\ndefineExpose({\n /**\n reset() will update data-mapping, axis-settings, layers-settings with the state that is in v-model at the moment.\n In other cases editing of v-model fields doesn't make any impact to graphs and interface.\n Besides, after reset default-options will be applied again. You can use reset to apply new default-options.\n */\n reset,\n /**\n Apply new defaults without resetting all the state\n */\n resetDefaults,\n});\n\nconst dataStore = ref<DemoDataStore | null>(null);\n\nwatch(() => props.pFrame, (pframe) => {\n if (!pframe.ok || !pframe.value) {\n dataStore.value = null;\n return;\n }\n const driver = ('platforma' in window) ? window.platforma?.pFrameDriver as PFrameDriver : props.driver;\n if (!driver) {\n throw new Error('PFrame driver is missing');\n }\n dataStore.value = new DemoDataStore(\n pframe.value,\n driver,\n props.labelsModifier,\n );\n}, { immediate: true, deep: true });\n\n// fixed options can be updated outside, other settings only inside from chart settings interface, so we don't watching other settings\nconst fixedOptions = ref<typeof props.fixedOptions>(props.fixedOptions ?? []);\nwatch(() => props.fixedOptions, (value, oldValue) => {\n if (\n (value && oldValue && JSON.stringify(value) !== JSON.stringify(oldValue))\n || (value && !oldValue)\n || (oldValue && !value)\n ) {\n fixedOptions.value = value;\n }\n}, { deep: true });\nconst defaultOptions = ref<typeof props.defaultOptions>(props.defaultOptions);\nwatch(() => props.defaultOptions, (v) => {\n if (v && !defaultOptions.value) {\n defaultOptions.value = v;\n }\n});\nconst state = provideStore(\n toRaw(graphMakerState.value),\n dataStore,\n props.chartType,\n defaultOptions,\n fixedOptions,\n props.dataColumnPredicate,\n props.metaColumnPredicate,\n props.readonlyInputs,\n props.defaultPalette,\n);\n\nfunction reset() {\n const nextReactiveState = createReactiveState(\n toRaw(graphMakerState.value),\n props.chartType,\n );\n Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions;\n}\n\nfunction resetDefaults() {\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions ? [...props.defaultOptions] as typeof props.defaultOptions : [];\n}\n\nconst prevDataKey = computed(() => state.value.reactive.dataStateKey);\nwatch(() => canonicalize(props.dataStateKey), (keyValue) => {\n if ((keyValue !== undefined || prevDataKey.value !== undefined) && prevDataKey.value !== keyValue) {\n // graphMakerState.value.optionsState = copyJSON(getInitialStateByType(props.chartType));\n // const nextReactiveState = createReactiveState(toRaw(graphMakerState.value), props.chartType);\n // Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions ? [...props.defaultOptions] as typeof props.defaultOptions : []; // to trigger watch on defaults\n }\n state.value.reactive.dataStateKey = keyValue;\n}, { deep: true, immediate: true });\n\nconst currentForm = computed(() => useSettingsForm(state.value.reactive.currentTab));\n\nconst chartRef = shallowRef<ChartInterface | null>(null);\nconst chartCalculatedDataRef = ref<Record<string, unknown> | null>(null);\nconst chartError = ref(false);\nconst chartErrorInfo = ref<ErrorInfo | null>(null);\n\nconst isRunning = computed(\n () => props.pFrame.ok && !props.pFrame.value && !props.pFrame.stable,\n);\nconst isInitialLoading = computed(\n () => state.value.loading.initialInputGuide && graphStatus.value === 'loading',\n);\n\nconst graphStatus = computed<GraphStatus>((previousStatus) => {\n console.log('status update');\n if (isRunning.value) {\n return 'running';\n }\n if (props.pFrame.ok && props.pFrame.stable && !props.pFrame.value) {\n return 'noPframe';\n }\n if (!props.pFrame.ok) {\n return 'noPframeWithError';\n }\n const inputGuide = state.value.inputGuide.value;\n const chartData = state.value.chartData.value;\n if (!inputGuide.consistent) {\n return 'inconsistent';\n }\n if (!inputGuide.ready) {\n return defaultOptions.value === null\n || state.value.loading.defaults\n || state.value.loading.initialInputGuide\n ? 'loading'\n : 'notReady';\n }\n if (chartData && Object.values(chartData.data.byColumns.values)[0]?.length === 0) {\n return 'empty';\n }\n if (chartError.value) {\n return chartErrorInfo.value?.type === 'unknownError' ? 'unknownError' : 'knownError';\n }\n if (\n (state.value.loading.initialCharts || (previousStatus !== 'ready' && state.value.loading.chartData) || state.value.loading.chartRendering)\n || (chartRef.value === null && (state.value.loading.inputGuide || state.value.loading.chartData))\n ) {\n return 'loading';\n }\n return 'ready';\n});\n\nwatch(() => graphStatus.value, (v) => {\n console.log('status', v);\n}, { immediate: true });\n\nfunction onTreeNodeClick(d: DendroNodeInfo) {\n state.value.reactive.dendroSelectedNodeId = d?.info[0]?.id as number;\n state.value.reactive.dendroInfoByClick = d;\n}\n\nfunction onTooltipHintSwitch(v: boolean) {\n state.value.reactive.showTooltipHint = v;\n}\n\nfunction onLassoPolygonUpdate(dotIndexes: number[], polygons: { points: [number, number][]; closed: boolean }[]) {\n graphMakerState.value = {\n ...graphMakerState.value,\n selectedPolygons: polygons,\n };\n\n const axesData = state.value.chartData.value?.data?.axesData;\n if (dotIndexes.length === 0 || !axesData) {\n selectionState.value = { axesSpec: [], selectedKeys: [] };\n return;\n }\n\n const axisKeys = Object.keys(axesData);\n const inputGuide = state.value.inputGuide.value;\n selectionState.value = {\n axesSpec: axisKeys.map((axisKey) => inputGuide.getSourceInfo(axisKey).spec as AxisSpec),\n selectedKeys: dotIndexes.map((idx) => axisKeys.map((axisKey) => axesData[axisKey][idx]) as PTableKey),\n };\n}\n\nfunction onLassoStateChange(v: LassoControlsState) {\n state.value.reactive.lassoControlsState = v;\n}\nlet chartRenderingInProgress: ReturnType<typeof setTimeout> | null = null;\nfunction onLoadingStateChange(v: boolean) {\n if (v) {\n chartRenderingInProgress = setTimeout(() => {\n state.value.loading.chartRendering = true;\n }, 1000);\n } else {\n if (chartRenderingInProgress) {\n clearTimeout(chartRenderingInProgress);\n }\n state.value.loading.chartRendering = false;\n }\n}\nconst isScatterplotZoomChanged = ref(false);\nfunction onZoomChange(isZoomChanged: boolean) {\n isScatterplotZoomChanged.value = isZoomChanged;\n}\nconst graphEventHandlers: Record<ChartType, unknown> = {\n 'dendro': [onTreeNodeClick],\n 'scatterplot-umap': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n onZoomChange,\n },\n 'discrete': [onTooltipHintSwitch],\n 'scatterplot': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n },\n 'histogram': [onTooltipHintSwitch],\n 'heatmap': { onTooltipHintSwitch, onLoadingChange: onLoadingStateChange },\n 'bubble': [onTooltipHintSwitch],\n};\nfunction updateChart(value: { data: PlotDataAndSettings['data']['byColumns']; settings: PlotDataAndSettings['settings'] } | null) {\n // if dataByColumns exists but columns has no data - show empty chart\n if (value && Object.values(value.data.values)[0]?.length > 0) {\n // console.log('value.dataByColumns', toRaw(value.data));\n // console.log('value.settings', toRaw(value.settings));\n if (chartRef.value) {\n chartRef.value.updateSettingsAndData(toRaw(value.data), toRaw(value.settings) as Settings);\n } else {\n const htmlNode = document.getElementById('chartSvgContainer');\n if (htmlNode) {\n chartRef.value = MiPlots.newPlot(toRaw(value.data), toRaw(value.settings) as Settings, graphEventHandlers[value.settings.type as ChartType]);\n if (value.settings.type === 'scatterplot-umap') {\n // set default polygons (from props)\n chartRef.value.updateChartState('polygon', graphMakerState.value.selectedPolygons ?? []);\n }\n chartRef.value.mount(htmlNode);\n }\n }\n // calculated by chart renderer data, tree hierarchy for example\n chartCalculatedDataRef.value = chartRef.value?.calculatedData ? { ...chartRef.value.calculatedData } : null;\n chartError.value = chartRef.value?.hasError ?? false;\n chartErrorInfo.value = chartRef.value?.errorInfo ?? null;\n } else {\n chartRef.value?.unmount();\n chartRef.value = null;\n chartErrorInfo.value = null;\n }\n}\n\nwatch(() => graphStatus.value, (v) => {\n if (v === 'notReady' || v === 'noPframe' || dataStore.value === null) {\n chartRef.value?.unmount();\n chartRef.value = null;\n }\n});\n\nconst chartDataForRender = shallowRef<{ settings: Settings; data: DataByColumns } | null>(null);\nwatch([\n () => state.value.chartData.value,\n], ([chartData]) => {\n chartDataForRender.value = composeChartSettings(\n toRaw(chartData),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n});\nwatch([\n () => state.value.reactive.template,\n () => state.value.reactive.layersSettings,\n () => state.value.reactive.axesSettings,\n () => state.value.reactive.statisticsSettings,\n () => state.value.reactive.dataBindAes,\n () => state.value.reactive.chartScale,\n], () => {\n chartDataForRender.value = composeChartSettings(\n toRaw(state.value.chartData.value),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n}, { deep: true });\n\nwatch(() => chartDataForRender.value, (chartData) => {\n updateChart(chartData);\n});\nonMounted(() => {\n updateChart(null);\n});\nonUnmounted(() => {\n chartRef.value?.unmount();\n});\n\nwatchDebounced(() => state.value.reactive.optionsState, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n optionsState: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.statisticsSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n statisticsSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.axesSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n axesSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.layersSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n layersSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.dataBindAes, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataBindAes: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\n\nwatchDebounced([\n () => state.value.reactive.chartScale,\n () => state.value.reactive.template,\n () => state.value.reactive.currentTab,\n], ([zoomState, template, currentTab]) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n zoomState,\n template,\n currentTab,\n };\n}, { debounce: 1000 });\n\nwatch(() => state.value.reactive.dataStateKey, (dataStateKey) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataStateKey,\n };\n}, { immediate: true });\n\nwatch(() => graphMakerState.value.currentTab, (v) => {\n state.value.reactive.currentTab = v === undefined ? 'dataMapping' : v;\n});\n\nwatch(() => graphMakerState.value?.layersSettings?.dendro?.showTable, (v) => {\n state.value.reactive.layersSettings.dendro.showTable = v ?? false;\n});\n\nfunction onExport() {\n saveToFile(\n new Blob([\n chartRef.value?.export() ?? '',\n ]),\n 'chart.svg',\n );\n}\n\nfunction updateGraphTitle(nextTitle: string) {\n graphMakerState.value = {\n ...graphMakerState.value,\n title: nextTitle,\n };\n}\n\nfunction selectTreeNode(id: number | null) {\n state.value.reactive.dendroSelectedNodeId = id;\n chartRef.value?.updateChartState('selectedNode', id);\n}\n\nconst slots = useSlots();\n\nconst hasAnnotationsSlot = computed(() => Boolean(slots.annotationsSlot));\nconst hasSettingsSlot = computed(() => Boolean(slots.settingsSlot));\nconst hasLogSlot = computed(() => Boolean(slots.logSlot));\n\n</script>\n\n<template>\n <div class=\"graph-maker\">\n <div class=\"graph-maker__main-pane\">\n <Chart\n :graph-status=\"graphStatus\" :graphTitle=\"graphMakerState.title\" :chartData=\"chartCalculatedDataRef\"\n :chart-ref=\"chartRef\" :error-info=\"chartErrorInfo\" :dendroTooltipButton=\"tooltipButton\"\n :custom-status-text=\"statusText\"\n :allow-title-editing=\"allowTitleEditing\"\n :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"\n @graph-title-update=\"updateGraphTitle\" @dendro-node-select=\"selectTreeNode\"\n @dendro-tooltip-btn-click=\"(id: string) => $emit('tooltip-btn-click', id)\"\n >\n <slot name=\"titleLineSlot\" />\n </Chart>\n <GraphStatusScreen v-if=\"isInitialLoading || isRunning\" :graphStatus=\"isRunning ? 'running' : 'loading'\" :top=\"67\" :left=\"12\" :right=\"12\" :bottom=\"12\" :customStatusText=\"statusText\" />\n <TransitionSlidePanel v-if=\"!isInitialLoading\" id=\"graph-settings-modal\">\n <PanelModal v-if=\"state.reactive.currentTab\" @close=\"state.reactive.currentTab = null\">\n <component :is=\"currentForm.value\">\n <slot v-if=\"state.reactive.currentTab === 'annotations'\" name=\"annotationsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'settings'\" name=\"settingsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'log'\" name=\"logSlot\" />\n </component>\n </PanelModal>\n </TransitionSlidePanel>\n </div>\n <VTabs\n v-model=\"state.reactive.currentTab\" :chart-type=\"state.reactive.chartType\" :graph-status=\"graphStatus\"\n :allowDeleting=\"allowChartDeleting\" :hasAnnotationsSlot=\"hasAnnotationsSlot\" :hasSettingsSlot=\"hasSettingsSlot\"\n :hasLogSlot=\"hasLogSlot\" :initialLoading=\"isInitialLoading || isRunning\" @export=\"onExport\"\n @delete=\"$emit('delete-this-graph')\"\n />\n <ChartErrorNotificationAlert v-if=\"chartErrorInfo?.type === 'unknownError'\" :errorInfo=\"chartErrorInfo\" />\n </div>\n</template>\n"],"names":["graphMakerState","_useModel","selectionState","__props","props","__expose","reset","resetDefaults","dataStore","ref","watch","pframe","driver","_a","DemoDataStore","fixedOptions","value","oldValue","defaultOptions","v","state","provideStore","toRaw","nextReactiveState","createReactiveState","prevDataKey","computed","canonicalize","keyValue","currentForm","useSettingsForm","chartRef","shallowRef","chartCalculatedDataRef","chartError","chartErrorInfo","isRunning","isInitialLoading","graphStatus","previousStatus","inputGuide","chartData","_b","onTreeNodeClick","d","onTooltipHintSwitch","onLassoPolygonUpdate","dotIndexes","polygons","axesData","axisKeys","axisKey","idx","onLassoStateChange","chartRenderingInProgress","onLoadingStateChange","isScatterplotZoomChanged","onZoomChange","isZoomChanged","graphEventHandlers","updateChart","htmlNode","MiPlots","_c","_d","_e","chartDataForRender","composeChartSettings","onMounted","onUnmounted","watchDebounced","copyJSON","zoomState","template","currentTab","dataStateKey","onExport","saveToFile","updateGraphTitle","nextTitle","selectTreeNode","id","slots","useSlots","hasAnnotationsSlot","hasSettingsSlot","hasLogSlot","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","Chart","_cache","$emit","_renderSlot","_ctx","_createBlock","GraphStatusScreen","TransitionSlidePanel","_unref","PanelModal","$event","_resolveDynamicComponent","VTabs","ChartErrorNotificationAlert"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue.js","sources":["../src/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n ErrorInfo,\n LassoControlsState,\n Settings,\n} from '@milaboratories/miplots4';\nimport {\n MiPlots,\n} from '@milaboratories/miplots4';\nimport type {\n ChartType,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport {\n DemoDataStore,\n} from '@milaboratories/pf-plots';\nimport type { AxisSpec, PFrameDriver, PlSelectionModel, PTableKey } from '@platforma-sdk/model';\nimport { watchDebounced } from '@vueuse/core';\nimport canonicalize from 'canonicalize';\nimport { computed, onMounted, onUnmounted, ref, shallowRef, toRaw, useSlots, watch } from 'vue';\nimport './assets/ui.scss';\nimport Chart from './components/Chart.vue';\nimport PanelModal from './components/PanelModal.vue';\nimport VTabs from './components/SettingsTabs/index.vue';\nimport TransitionSlidePanel from './components/TransitionSlidePanel.vue';\nimport ChartErrorNotificationAlert from './components/ChartErrorNotificationAlert.vue';\nimport { useSettingsForm } from './forms';\nimport { createReactiveState, provideStore } from './store';\nimport type { DendroNodeInfo, GraphMakerProps, GraphMakerState, GraphStatus } from './types';\nimport { composeChartSettings, saveToFile } from './utils';\nimport { copyJSON } from './utils/copyJSON';\nimport GraphStatusScreen from './components/GraphStatusScreen.vue';\n\nconst _emit = defineEmits(['delete-this-graph', 'tooltip-btn-click']);\n\nconst graphMakerState = defineModel<GraphMakerState>({ required: true });\nconst selectionState = defineModel<PlSelectionModel>('selection');\n\nconst props = defineProps<GraphMakerProps>();\n\ndefineExpose({\n /**\n reset() will update data-mapping, axis-settings, layers-settings with the state that is in v-model at the moment.\n In other cases editing of v-model fields doesn't make any impact to graphs and interface.\n Besides, after reset default-options will be applied again. You can use reset to apply new default-options.\n */\n reset,\n /**\n Apply new defaults without resetting all the state\n */\n resetDefaults,\n});\n\nconst dataStore = ref<DemoDataStore | null>(null);\n\nwatch(() => props.pFrame, (pframe) => {\n if (!pframe.ok || !pframe.value) {\n dataStore.value = null;\n return;\n }\n const driver = ('platforma' in window) ? window.platforma?.pFrameDriver as PFrameDriver : props.driver;\n if (!driver) {\n throw new Error('PFrame driver is missing');\n }\n dataStore.value = new DemoDataStore(\n pframe.value,\n driver,\n props.labelsModifier,\n );\n}, { immediate: true, deep: true });\n\n// fixed options can be updated outside, other settings only inside from chart settings interface, so we don't watching other settings\nconst fixedOptions = ref<typeof props.fixedOptions>(props.fixedOptions ?? []);\nwatch(() => props.fixedOptions, (value, oldValue) => {\n if (\n (value && oldValue && JSON.stringify(value) !== JSON.stringify(oldValue))\n || (value && !oldValue)\n || (oldValue && !value)\n ) {\n fixedOptions.value = value;\n }\n}, { deep: true });\nconst defaultOptions = ref<typeof props.defaultOptions>(props.defaultOptions);\nwatch(() => props.defaultOptions, (v) => {\n if (v && !defaultOptions.value) {\n defaultOptions.value = v;\n }\n});\nconst state = provideStore(\n toRaw(graphMakerState.value),\n dataStore,\n props.chartType,\n defaultOptions,\n fixedOptions,\n props.dataColumnPredicate,\n props.metaColumnPredicate,\n props.readonlyInputs,\n props.defaultPalette,\n);\n\nfunction reset() {\n const nextReactiveState = createReactiveState(\n toRaw(graphMakerState.value),\n props.chartType,\n );\n Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions;\n}\n\nfunction resetDefaults() {\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions ? [...props.defaultOptions] as typeof props.defaultOptions : [];\n}\n\nconst prevDataKey = computed(() => state.value.reactive.dataStateKey);\nwatch(() => canonicalize(props.dataStateKey), (keyValue) => {\n if ((keyValue !== undefined || prevDataKey.value !== undefined) && prevDataKey.value !== keyValue) {\n // graphMakerState.value.optionsState = copyJSON(getInitialStateByType(props.chartType));\n // const nextReactiveState = createReactiveState(toRaw(graphMakerState.value), props.chartType);\n // Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions ? [...props.defaultOptions] as typeof props.defaultOptions : []; // to trigger watch on defaults\n }\n state.value.reactive.dataStateKey = keyValue;\n}, { deep: true, immediate: true });\n\nconst currentForm = computed(() => useSettingsForm(state.value.reactive.currentTab));\n\nconst chartRef = shallowRef<ChartInterface | null>(null);\nconst chartCalculatedDataRef = ref<Record<string, unknown> | null>(null);\nconst chartError = ref(false);\nconst chartErrorInfo = ref<ErrorInfo | null>(null);\n\nconst isRunning = computed(\n () => props.pFrame.ok && !props.pFrame.value && !props.pFrame.stable,\n);\nconst isInitialLoading = computed(\n () => state.value.loading.initialInputGuide && graphStatus.value === 'loading',\n);\n\nconst graphStatus = computed<GraphStatus>((previousStatus) => {\n if (isRunning.value) {\n return 'running';\n }\n if (props.pFrame.ok && props.pFrame.stable && !props.pFrame.value) {\n return 'noPframe';\n }\n if (!props.pFrame.ok) {\n return 'noPframeWithError';\n }\n const inputGuide = state.value.inputGuide.value;\n const chartData = state.value.chartData.value;\n if (!inputGuide.consistent) {\n return 'inconsistent';\n }\n if (!inputGuide.ready) {\n return defaultOptions.value === null\n || state.value.loading.defaults\n || state.value.loading.initialInputGuide\n ? 'loading'\n : 'notReady';\n }\n if (chartData && Object.values(chartData.data.byColumns.values)[0]?.length === 0) {\n return 'empty';\n }\n if (chartError.value) {\n return chartErrorInfo.value?.type === 'unknownError' ? 'unknownError' : 'knownError';\n }\n if (\n (state.value.loading.initialCharts || (previousStatus !== 'ready' && state.value.loading.chartData) || state.value.loading.chartRendering)\n || (chartRef.value === null && (state.value.loading.inputGuide || state.value.loading.chartData))\n ) {\n return 'loading';\n }\n return 'ready';\n});\n\nfunction onTreeNodeClick(d: DendroNodeInfo) {\n state.value.reactive.dendroSelectedNodeId = d?.info[0]?.id as number;\n state.value.reactive.dendroInfoByClick = d;\n}\n\nfunction onTooltipHintSwitch(v: boolean) {\n state.value.reactive.showTooltipHint = v;\n}\n\nfunction onLassoPolygonUpdate(dotIndexes: number[], polygons: { points: [number, number][]; closed: boolean }[]) {\n graphMakerState.value = {\n ...graphMakerState.value,\n selectedPolygons: polygons,\n };\n\n const axesData = state.value.chartData.value?.data?.axesData;\n if (dotIndexes.length === 0 || !axesData) {\n selectionState.value = { axesSpec: [], selectedKeys: [] };\n return;\n }\n\n const axisKeys = Object.keys(axesData);\n const inputGuide = state.value.inputGuide.value;\n selectionState.value = {\n axesSpec: axisKeys.map((axisKey) => inputGuide.getSourceInfo(axisKey).spec as AxisSpec),\n selectedKeys: dotIndexes.map((idx) => axisKeys.map((axisKey) => axesData[axisKey][idx]) as PTableKey),\n };\n}\n\nfunction onLassoStateChange(v: LassoControlsState) {\n state.value.reactive.lassoControlsState = v;\n}\nlet chartRenderingInProgress: ReturnType<typeof setTimeout> | null = null;\nfunction onLoadingStateChange(v: boolean) {\n if (v) {\n chartRenderingInProgress = setTimeout(() => {\n state.value.loading.chartRendering = true;\n }, 1000);\n } else {\n if (chartRenderingInProgress) {\n clearTimeout(chartRenderingInProgress);\n }\n state.value.loading.chartRendering = false;\n }\n}\nconst isScatterplotZoomChanged = ref(false);\nfunction onZoomChange(isZoomChanged: boolean) {\n isScatterplotZoomChanged.value = isZoomChanged;\n}\nconst graphEventHandlers: Record<ChartType, unknown> = {\n 'dendro': [onTreeNodeClick],\n 'scatterplot-umap': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n onZoomChange,\n },\n 'discrete': [onTooltipHintSwitch],\n 'scatterplot': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n },\n 'histogram': [onTooltipHintSwitch],\n 'heatmap': { onTooltipHintSwitch, onLoadingChange: onLoadingStateChange },\n 'bubble': [onTooltipHintSwitch],\n};\nfunction updateChart(value: { data: PlotDataAndSettings['data']['byColumns']; settings: PlotDataAndSettings['settings'] } | null) {\n // if dataByColumns exists but columns has no data - show empty chart\n if (value && Object.values(value.data.values)[0]?.length > 0) {\n // console.log('value.dataByColumns', toRaw(value.data));\n // console.log('value.settings', toRaw(value.settings));\n if (chartRef.value) {\n chartRef.value.updateSettingsAndData(toRaw(value.data), toRaw(value.settings) as Settings);\n } else {\n const htmlNode = document.getElementById('chartSvgContainer');\n if (htmlNode) {\n chartRef.value = MiPlots.newPlot(toRaw(value.data), toRaw(value.settings) as Settings, graphEventHandlers[value.settings.type as ChartType]);\n if (value.settings.type === 'scatterplot-umap') {\n // set default polygons (from props)\n chartRef.value.updateChartState('polygon', graphMakerState.value.selectedPolygons ?? []);\n }\n chartRef.value.mount(htmlNode);\n }\n }\n // calculated by chart renderer data, tree hierarchy for example\n chartCalculatedDataRef.value = chartRef.value?.calculatedData ? { ...chartRef.value.calculatedData } : null;\n chartError.value = chartRef.value?.hasError ?? false;\n chartErrorInfo.value = chartRef.value?.errorInfo ?? null;\n } else {\n chartRef.value?.unmount();\n chartRef.value = null;\n chartErrorInfo.value = null;\n }\n}\n\nwatch(() => graphStatus.value, (v) => {\n if (v === 'notReady' || v === 'noPframe' || dataStore.value === null) {\n chartRef.value?.unmount();\n chartRef.value = null;\n }\n});\n\nconst chartDataForRender = shallowRef<{ settings: Settings; data: DataByColumns } | null>(null);\nwatch([\n () => state.value.chartData.value,\n], ([chartData]) => {\n chartDataForRender.value = composeChartSettings(\n toRaw(chartData),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n});\nwatch([\n () => state.value.reactive.template,\n () => state.value.reactive.layersSettings,\n () => state.value.reactive.axesSettings,\n () => state.value.reactive.statisticsSettings,\n () => state.value.reactive.dataBindAes,\n () => state.value.reactive.chartScale,\n], () => {\n chartDataForRender.value = composeChartSettings(\n toRaw(state.value.chartData.value),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n}, { deep: true });\n\nwatch(() => chartDataForRender.value, (chartData) => {\n updateChart(chartData);\n});\nonMounted(() => {\n updateChart(null);\n});\nonUnmounted(() => {\n chartRef.value?.unmount();\n});\n\nwatchDebounced(() => state.value.reactive.optionsState, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n optionsState: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.statisticsSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n statisticsSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.axesSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n axesSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.layersSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n layersSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.dataBindAes, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataBindAes: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\n\nwatchDebounced([\n () => state.value.reactive.chartScale,\n () => state.value.reactive.template,\n () => state.value.reactive.currentTab,\n], ([zoomState, template, currentTab]) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n zoomState,\n template,\n currentTab,\n };\n}, { debounce: 1000 });\n\nwatch(() => state.value.reactive.dataStateKey, (dataStateKey) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataStateKey,\n };\n}, { immediate: true });\n\nwatch(() => graphMakerState.value.currentTab, (v) => {\n state.value.reactive.currentTab = v === undefined ? 'dataMapping' : v;\n});\n\nwatch(() => graphMakerState.value?.layersSettings?.dendro?.showTable, (v) => {\n state.value.reactive.layersSettings.dendro.showTable = v ?? false;\n});\n\nfunction onExport() {\n saveToFile(\n new Blob([\n chartRef.value?.export() ?? '',\n ]),\n 'chart.svg',\n );\n}\n\nfunction updateGraphTitle(nextTitle: string) {\n graphMakerState.value = {\n ...graphMakerState.value,\n title: nextTitle,\n };\n}\n\nfunction selectTreeNode(id: number | null) {\n state.value.reactive.dendroSelectedNodeId = id;\n chartRef.value?.updateChartState('selectedNode', id);\n}\n\nconst slots = useSlots();\n\nconst hasAnnotationsSlot = computed(() => Boolean(slots.annotationsSlot));\nconst hasSettingsSlot = computed(() => Boolean(slots.settingsSlot));\nconst hasLogSlot = computed(() => Boolean(slots.logSlot));\n\n</script>\n\n<template>\n <div class=\"graph-maker\">\n <div class=\"graph-maker__main-pane\">\n <Chart\n :graph-status=\"graphStatus\" :graphTitle=\"graphMakerState.title\" :chartData=\"chartCalculatedDataRef\"\n :chart-ref=\"chartRef\" :error-info=\"chartErrorInfo\" :dendroTooltipButton=\"tooltipButton\"\n :custom-status-text=\"statusText\"\n :allow-title-editing=\"allowTitleEditing\"\n :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"\n @graph-title-update=\"updateGraphTitle\" @dendro-node-select=\"selectTreeNode\"\n @dendro-tooltip-btn-click=\"(id: string) => $emit('tooltip-btn-click', id)\"\n >\n <slot name=\"titleLineSlot\" />\n </Chart>\n <GraphStatusScreen v-if=\"isInitialLoading || isRunning\" :graphStatus=\"isRunning ? 'running' : 'loading'\" :top=\"67\" :left=\"12\" :right=\"12\" :bottom=\"12\" :customStatusText=\"statusText\" />\n <TransitionSlidePanel v-if=\"!isInitialLoading\" id=\"graph-settings-modal\">\n <PanelModal v-if=\"state.reactive.currentTab\" @close=\"state.reactive.currentTab = null\">\n <component :is=\"currentForm.value\">\n <slot v-if=\"state.reactive.currentTab === 'annotations'\" name=\"annotationsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'settings'\" name=\"settingsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'log'\" name=\"logSlot\" />\n </component>\n </PanelModal>\n </TransitionSlidePanel>\n </div>\n <VTabs\n v-model=\"state.reactive.currentTab\" :chart-type=\"state.reactive.chartType\" :graph-status=\"graphStatus\"\n :allowDeleting=\"allowChartDeleting\" :hasAnnotationsSlot=\"hasAnnotationsSlot\" :hasSettingsSlot=\"hasSettingsSlot\"\n :hasLogSlot=\"hasLogSlot\" :initialLoading=\"isInitialLoading || isRunning\" @export=\"onExport\"\n @delete=\"$emit('delete-this-graph')\"\n />\n <ChartErrorNotificationAlert v-if=\"chartErrorInfo?.type === 'unknownError'\" :errorInfo=\"chartErrorInfo\" />\n </div>\n</template>\n"],"names":["graphMakerState","_useModel","selectionState","__props","props","__expose","reset","resetDefaults","dataStore","ref","watch","pframe","driver","_a","DemoDataStore","fixedOptions","value","oldValue","defaultOptions","v","state","provideStore","toRaw","nextReactiveState","createReactiveState","prevDataKey","computed","canonicalize","keyValue","currentForm","useSettingsForm","chartRef","shallowRef","chartCalculatedDataRef","chartError","chartErrorInfo","isRunning","isInitialLoading","graphStatus","previousStatus","inputGuide","chartData","_b","onTreeNodeClick","d","onTooltipHintSwitch","onLassoPolygonUpdate","dotIndexes","polygons","axesData","axisKeys","axisKey","idx","onLassoStateChange","chartRenderingInProgress","onLoadingStateChange","isScatterplotZoomChanged","onZoomChange","isZoomChanged","graphEventHandlers","updateChart","htmlNode","MiPlots","_c","_d","_e","chartDataForRender","composeChartSettings","onMounted","onUnmounted","watchDebounced","copyJSON","zoomState","template","currentTab","dataStateKey","onExport","saveToFile","updateGraphTitle","nextTitle","selectTreeNode","id","slots","useSlots","hasAnnotationsSlot","hasSettingsSlot","hasLogSlot","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","Chart","_cache","$emit","_renderSlot","_ctx","_createBlock","GraphStatusScreen","TransitionSlidePanel","_unref","PanelModal","$event","_resolveDynamicComponent","VTabs","ChartErrorNotificationAlert"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/graph-maker",
3
- "version": "1.1.211",
3
+ "version": "1.1.213",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,8 +36,8 @@
36
36
  "d3-hierarchy": "^3.1.2",
37
37
  "d3-scale": "^4.0.2",
38
38
  "vue": "^3.5.24",
39
- "@milaboratories/miplots4": "1.0.166",
40
- "@milaboratories/pf-plots": "1.1.58"
39
+ "@milaboratories/miplots4": "1.0.167",
40
+ "@milaboratories/pf-plots": "1.1.60"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@milaboratories/build-configs": "^1.0.5",