@milaboratories/graph-maker 1.1.212 → 1.1.214

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.
@@ -36,7 +36,7 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
36
36
  const P = p(() => {
37
37
  var t;
38
38
  return (t = o.value.reactive.optionsState.components.tabBy) == null ? void 0 : t.selectorStates[0];
39
- }), m = p(() => {
39
+ }), v = p(() => {
40
40
  var t;
41
41
  return (t = P.value) == null ? void 0 : t.selectedSource;
42
42
  }), G = p(() => {
@@ -45,9 +45,9 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
45
45
  }), L = p(() => {
46
46
  var t;
47
47
  return (t = o.value.reactive.optionsState.components.filters) == null ? void 0 : t.selectorStates;
48
- }), v = h(G.value);
49
- y(() => m.value, (t, e) => {
50
- t !== e && (v.value = G.value);
48
+ }), m = h(G.value);
49
+ y(() => v.value, (t, e) => {
50
+ t !== e && (m.value = G.value);
51
51
  }, { immediate: !0 });
52
52
  async function W(t) {
53
53
  var a;
@@ -68,17 +68,17 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
68
68
  }
69
69
  const f = h();
70
70
  y([
71
- () => m.value,
71
+ () => v.value,
72
72
  () => o.value.loading.inputGuide
73
73
  ], async ([t, e]) => {
74
74
  t === void 0 || e || !o.value.columnsDataStore.value || (f.value = await W(t));
75
75
  }, { immediate: !0 }), y(() => f.value, async (t) => {
76
- if (m.value === void 0 || v.value !== void 0 || t === void 0)
76
+ if (v.value === void 0 || m.value !== void 0 || t === void 0)
77
77
  return;
78
78
  let e = t;
79
- if (t === null && (e = await F(m.value, "")), e != null && e.length) {
79
+ if (t === null && (e = await F(v.value, "")), e != null && e.length) {
80
80
  const l = e[0].value;
81
- v.value = l, b(l);
81
+ m.value = l, b(l);
82
82
  }
83
83
  }, { immediate: !0 });
84
84
  function b(t) {
@@ -187,25 +187,25 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
187
187
  ])]),
188
188
  _: 1
189
189
  }, 8, ["modelValue"]),
190
- m.value ? (s(), w("div", me, [
190
+ v.value ? (s(), w("div", me, [
191
191
  f.value || f.value === void 0 && r(o).loading.inputGuide ? (s(), d(r(ee), {
192
192
  key: 0,
193
- modelValue: v.value,
193
+ modelValue: m.value,
194
194
  "onUpdate:modelValue": [
195
- e[2] || (e[2] = (a) => v.value = a),
195
+ e[2] || (e[2] = (a) => m.value = a),
196
196
  e[3] || (e[3] = (a) => b(a))
197
197
  ],
198
198
  label: "Show for",
199
199
  options: f.value
200
200
  }, null, 8, ["modelValue", "options"])) : (s(), d(r(te), {
201
201
  key: 1,
202
- modelValue: v.value,
202
+ modelValue: m.value,
203
203
  "onUpdate:modelValue": [
204
- e[4] || (e[4] = (a) => v.value = a),
204
+ e[4] || (e[4] = (a) => m.value = a),
205
205
  e[5] || (e[5] = (a) => b(a))
206
206
  ],
207
207
  label: "Show for",
208
- "options-search": (a, i) => F(m.value, a, i)
208
+ "options-search": (a, i) => F(v.value, a, i)
209
209
  }, null, 8, ["modelValue", "options-search"]))
210
210
  ])) : c("", !0),
211
211
  S("div", {
@@ -223,11 +223,11 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
223
223
  }, null, 2),
224
224
  C(se, {
225
225
  graphStatus: n.graphStatus,
226
- top: 0,
226
+ top: v.value ? 24 : 0,
227
227
  bottom: 11,
228
228
  customStatusText: n.customStatusText,
229
229
  errorInfo: n.errorInfo
230
- }, null, 8, ["graphStatus", "customStatusText", "errorInfo"]),
230
+ }, null, 8, ["graphStatus", "top", "customStatusText", "errorInfo"]),
231
231
  r(o).reactive.chartType === "dendro" && n.chartData && r(o).reactive.layersSettings.dendro.showTable ? (s(), d(ae, {
232
232
  key: 0,
233
233
  chartData: n.chartData,
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.vue.js","sources":["../../src/components/Chart.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ChartInterface, ErrorInfo } from '@milaboratories/miplots4';\nimport type { SelectorStateFilter } from '@milaboratories/pf-plots';\nimport type { ListOption } from '@platforma-sdk/ui-vue';\nimport { PlAutocomplete, PlBtnGhost, PlDropdown, PlNotificationAlert } from '@platforma-sdk/ui-vue';\nimport { computed, ref, watch } from 'vue';\nimport DendroTable from '../components/DendroTable.vue';\nimport DendroTooltip from '../components/DendroTooltip.vue';\nimport LassoControls from '../components/LassoControls/index.vue';\nimport Zoom from '../components/Zoom/index.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../constantsCommon.ts';\nimport EditIcon from '../icons/EditIcon.vue';\nimport { useStore } from '../store.ts';\nimport type { GraphStatus, StatusTextData } from '../types.ts';\nimport GraphStatusScreen from './GraphStatusScreen.vue';\n\nconst emit = defineEmits(['graph-title-update', 'dendro-node-select', 'dendro-tooltip-btn-click']);\n\nconst store = useStore();\n\nconst props = defineProps<{\n graphStatus: GraphStatus;\n graphTitle: string;\n dendroTooltipButton?: string;\n chartData: Record<string, unknown> | null;\n chartRef: ChartInterface | null;\n errorInfo: ErrorInfo | null;\n customStatusText?: Partial<StatusTextData>;\n allowTitleEditing?: boolean;\n isScatterplotZoomChanged?: boolean;\n}>();\n\nconst title = ref(props.graphTitle);\n// title can be updated from graph-maker settings\nwatch(() => props.graphTitle, (graphTitle) => {\n title.value = graphTitle;\n});\n\nconst tabByState = computed(() => store.value.reactive.optionsState.components.tabBy?.selectorStates[0] as SelectorStateFilter | undefined);\nconst tabBySource = computed(() => tabByState.value?.selectedSource);\nconst tabByFilterValue = computed(() => tabByState.value?.selectedFilterValues?.[0]);\nconst filtersStates = computed(() => store.value.reactive.optionsState.components.filters?.selectorStates as SelectorStateFilter[]);\n\nconst tabByLocalValue = ref(tabByFilterValue.value);\nwatch(() => tabBySource.value, (value, prevValue) => { // tabBy column changed, needs to update selected value\n if (value !== prevValue) {\n tabByLocalValue.value = tabByFilterValue.value;\n }\n}, { immediate: true });\n\n// try to load full options list, without search query; if result is not overflow, use values from it in regular dropdown, no autocomplete;\nasync function loadOptions(sourceId: string) {\n if (!store.value.columnsDataStore.value) {\n return Promise.resolve([]);\n }\n // if the same source is selected in filters, return only selected values;\n const filtersStateWithTheSameSource = filtersStates.value.find((state) => state.selectedSource === sourceId) as SelectorStateFilter | undefined;\n if (filtersStateWithTheSameSource && (filtersStateWithTheSameSource.selectedFilterValues?.length ?? 0) > 0) {\n const selectedValues = filtersStateWithTheSameSource.selectedFilterValues ?? [];\n return Promise.all(selectedValues.map((selectedValue) => searchSelectedFilterValueOptions(sourceId, selectedValue)));\n }\n const response = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore.value,\n store.value.inputGuide.value,\n sourceId,\n MAX_SEARCH_OPTIONS_LIST_LENGTH,\n );\n return response.overflow ? null : response.values;\n}\nconst preloadedOptions = ref<ListOption[] | null | undefined>();\nwatch([\n () => tabBySource.value,\n () => store.value.loading.inputGuide,\n], async ([v, loading]) => {\n if (v === undefined || loading || !store.value.columnsDataStore.value) {\n return undefined;\n }\n preloadedOptions.value = await loadOptions(v);\n}, { immediate: true });\n\nwatch(() => preloadedOptions.value, async (opts) => {\n if (\n tabBySource.value === undefined // no tabBy selected\n || tabByLocalValue.value !== undefined // tabBy selected and has selected value\n || opts === undefined // options not loaded yet\n ) {\n return;\n }\n let availableOptions = opts;\n if (opts === null) { // options loaded but too many unique values\n availableOptions = await searchFilterOptions(tabBySource.value, '');\n }\n if (availableOptions?.length) {\n const nextFilterValue = availableOptions[0].value as string;\n tabByLocalValue.value = nextFilterValue;\n onFilterValueUpdate(nextFilterValue);\n }\n}, { immediate: true });\n\nfunction onFilterValueUpdate(value: string) {\n const prevSelectorStates = store.value.reactive.optionsState.components.tabBy.selectorStates;\n if (prevSelectorStates.length) {\n store.value.reactive.optionsState.components.tabBy.selectorStates = [{\n ...prevSelectorStates[0],\n type: 'equals',\n selectedFilterValues: [value],\n }];\n }\n}\n\nfunction onTitleChange(e: Event) {\n const target = e.currentTarget as HTMLInputElement;\n title.value = target.value;\n emit('graph-title-update', target.value);\n}\n\nfunction onTableRowSelect(id: number) {\n emit('dendro-node-select', id);\n}\n\n// search options for autocomplete component; use label-mode search for options and value-mode for search of label of selected by default value;\nasync function searchFilterOptions(sourceId: string, searchStr: string, type: 'value' | 'label' = 'label') {\n if (!store.value.columnsDataStore.value) {\n return Promise.resolve([]);\n }\n // if the same source is selected in filters, return only selected values;\n const filtersStateWithTheSameSource = filtersStates.value.find((state) => state.selectedSource === sourceId) as SelectorStateFilter | undefined;\n if (filtersStateWithTheSameSource && (filtersStateWithTheSameSource.selectedFilterValues?.length ?? 0) > 0) {\n const selectedValues = filtersStateWithTheSameSource.selectedFilterValues ?? [];\n const results = await Promise.all(selectedValues.map((selectedValue) => searchSelectedFilterValueOptions(sourceId, selectedValue)));\n return searchStr ? results.filter((v) => v.label.toLowerCase().includes(searchStr.toLowerCase())) : results;\n }\n const searchLabelStr = type === 'label' ? searchStr : undefined;\n const searchValueStr = type === 'value' ? searchStr : undefined;\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore.value, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchLabelStr, searchValueStr)).values;\n}\n\n// search by value, not by label;\nasync function searchSelectedFilterValueOptions(sourceId: string, selectedValue: string) {\n if (!store.value.columnsDataStore.value) {\n return Promise.resolve({ value: selectedValue, label: ' ' }); // don't show non-human-readable value\n }\n const value = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore.value, store.value.inputGuide.value,\n sourceId, 1, undefined, selectedValue).then((v) => v.values[0]);\n return value;\n}\n\nconst chartContainerRef = ref();\n\nconst hasPrimaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.primaryGrouping?.selectorStates.length) {\n const columnName = optionsState.primaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nconst hasSecondaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.secondaryGrouping?.selectorStates.length) {\n const columnName = optionsState.secondaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nfunction openAxesSettingsPrimary() {\n store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\nfunction openAxesSettingsSecondary() {\n store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\n\n</script>\n\n<template>\n <div class=\"chart_container\">\n <div class=\"chart_header\">\n <input\n class=\"chart_title\"\n :value=\"title\"\n :disabled=\"!allowTitleEditing\"\n @change=\"onTitleChange\"\n @keyup.enter=\"(e) => { (e.target as HTMLInputElement)?.blur() }\"\n />\n <component :is=\"EditIcon\" v-if=\"allowTitleEditing\" class=\"chart_titleEdit\" />\n <div class=\"chart_titleLineSlot\">\n <slot />\n </div>\n </div>\n <PlNotificationAlert\n v-model=\"store.reactive.showTooltipHint\" type=\"success\" class=\"chart_tooltipHint\"\n width=\"170px\"\n >\n Hit enter to pin tooltip\n </PlNotificationAlert>\n <div v-if=\"tabBySource\" class=\"chart_tabBy\">\n <PlDropdown\n v-if=\"preloadedOptions || (preloadedOptions === undefined && store.loading.inputGuide)\"\n v-model=\"tabByLocalValue\" label=\"Show for\" :options=\"preloadedOptions\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n <PlAutocomplete\n v-else v-model=\"tabByLocalValue\" label=\"Show for\"\n :options-search=\"(str, type) => searchFilterOptions(tabBySource as string, str, type)\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n </div>\n <div\n ref=\"chartContainerRef\" class=\"chart_main-content\"\n :class=\"[{ 'chart_main-content__dendro': store.reactive.chartType === 'dendro' }, 'pl-scrollable']\"\n >\n <div\n id=\"chartSvgContainer\" :class=\"{\n 'chart_ready': graphStatus === 'ready',\n 'chart_loading': graphStatus === 'loading',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n />\n <GraphStatusScreen :graphStatus=\"graphStatus\" :top=\"0\" :bottom=\"11\" :customStatusText=\"customStatusText\" :errorInfo=\"errorInfo\"/>\n <DendroTable\n v-if=\"store.reactive.chartType === 'dendro' && chartData && store.reactive.layersSettings.dendro.showTable\"\n :chartData=\"chartData\" @row-select=\"onTableRowSelect\"\n />\n <DendroTooltip\n v-if=\"store.reactive.dendroInfoByClick\" :info=\"store.reactive.dendroInfoByClick\"\n :containerRef=\"chartContainerRef\" :tooltipBtn=\"dendroTooltipButton\"\n @tooltip-btn-click=\"(id: string) => $emit('dendro-tooltip-btn-click', id)\" @close=\"\n store.reactive.dendroInfoByClick = null;\n $emit('dendro-node-select', null);\n \"\n />\n </div>\n <div v-if=\"graphStatus === 'ready'\" class=\"chart_controls\">\n <Zoom />\n <LassoControls v-if=\"store.reactive.chartType === 'scatterplot-umap'\" :chart-ref=\"chartRef\" :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"/>\n <PlBtnGhost v-if=\"hasPrimaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsPrimary()\">\n Hidden (primary)\n </PlBtnGhost>\n <PlBtnGhost v-if=\"hasSecondaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsSecondary()\">\n Hidden (secondary)\n </PlBtnGhost>\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","store","useStore","props","__props","title","ref","watch","graphTitle","tabByState","computed","_a","tabBySource","tabByFilterValue","_b","filtersStates","tabByLocalValue","value","prevValue","loadOptions","sourceId","filtersStateWithTheSameSource","state","selectedValues","selectedValue","searchSelectedFilterValueOptions","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","loading","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","prevSelectorStates","onTitleChange","e","target","onTableRowSelect","id","searchStr","type","results","searchLabelStr","searchValueStr","chartContainerRef","hasPrimaryHidden","optionsState","columnName","dataBindAes","hasSecondaryHidden","openAxesSettingsPrimary","openAxesSettingsSecondary","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createBlock","_resolveDynamicComponent","EditIcon","_hoisted_4","_renderSlot","_ctx","_createVNode","_unref","PlNotificationAlert","$event","_cache","_hoisted_5","PlDropdown","PlAutocomplete","str","_normalizeClass","GraphStatusScreen","DendroTable","DendroTooltip","$emit","_hoisted_6","Zoom","LassoControls","PlBtnGhost"],"mappings":"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"}
1
+ {"version":3,"file":"Chart.vue.js","sources":["../../src/components/Chart.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ChartInterface, ErrorInfo } from '@milaboratories/miplots4';\nimport type { SelectorStateFilter } from '@milaboratories/pf-plots';\nimport type { ListOption } from '@platforma-sdk/ui-vue';\nimport { PlAutocomplete, PlBtnGhost, PlDropdown, PlNotificationAlert } from '@platforma-sdk/ui-vue';\nimport { computed, ref, watch } from 'vue';\nimport DendroTable from '../components/DendroTable.vue';\nimport DendroTooltip from '../components/DendroTooltip.vue';\nimport LassoControls from '../components/LassoControls/index.vue';\nimport Zoom from '../components/Zoom/index.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../constantsCommon.ts';\nimport EditIcon from '../icons/EditIcon.vue';\nimport { useStore } from '../store.ts';\nimport type { GraphStatus, StatusTextData } from '../types.ts';\nimport GraphStatusScreen from './GraphStatusScreen.vue';\n\nconst emit = defineEmits(['graph-title-update', 'dendro-node-select', 'dendro-tooltip-btn-click']);\n\nconst store = useStore();\n\nconst props = defineProps<{\n graphStatus: GraphStatus;\n graphTitle: string;\n dendroTooltipButton?: string;\n chartData: Record<string, unknown> | null;\n chartRef: ChartInterface | null;\n errorInfo: ErrorInfo | null;\n customStatusText?: Partial<StatusTextData>;\n allowTitleEditing?: boolean;\n isScatterplotZoomChanged?: boolean;\n}>();\n\nconst title = ref(props.graphTitle);\n// title can be updated from graph-maker settings\nwatch(() => props.graphTitle, (graphTitle) => {\n title.value = graphTitle;\n});\n\nconst tabByState = computed(() => store.value.reactive.optionsState.components.tabBy?.selectorStates[0] as SelectorStateFilter | undefined);\nconst tabBySource = computed(() => tabByState.value?.selectedSource);\nconst tabByFilterValue = computed(() => tabByState.value?.selectedFilterValues?.[0]);\nconst filtersStates = computed(() => store.value.reactive.optionsState.components.filters?.selectorStates as SelectorStateFilter[]);\n\nconst tabByLocalValue = ref(tabByFilterValue.value);\nwatch(() => tabBySource.value, (value, prevValue) => { // tabBy column changed, needs to update selected value\n if (value !== prevValue) {\n tabByLocalValue.value = tabByFilterValue.value;\n }\n}, { immediate: true });\n\n// try to load full options list, without search query; if result is not overflow, use values from it in regular dropdown, no autocomplete;\nasync function loadOptions(sourceId: string) {\n if (!store.value.columnsDataStore.value) {\n return Promise.resolve([]);\n }\n // if the same source is selected in filters, return only selected values;\n const filtersStateWithTheSameSource = filtersStates.value.find((state) => state.selectedSource === sourceId) as SelectorStateFilter | undefined;\n if (filtersStateWithTheSameSource && (filtersStateWithTheSameSource.selectedFilterValues?.length ?? 0) > 0) {\n const selectedValues = filtersStateWithTheSameSource.selectedFilterValues ?? [];\n return Promise.all(selectedValues.map((selectedValue) => searchSelectedFilterValueOptions(sourceId, selectedValue)));\n }\n const response = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore.value,\n store.value.inputGuide.value,\n sourceId,\n MAX_SEARCH_OPTIONS_LIST_LENGTH,\n );\n return response.overflow ? null : response.values;\n}\nconst preloadedOptions = ref<ListOption[] | null | undefined>();\nwatch([\n () => tabBySource.value,\n () => store.value.loading.inputGuide,\n], async ([v, loading]) => {\n if (v === undefined || loading || !store.value.columnsDataStore.value) {\n return undefined;\n }\n preloadedOptions.value = await loadOptions(v);\n}, { immediate: true });\n\nwatch(() => preloadedOptions.value, async (opts) => {\n if (\n tabBySource.value === undefined // no tabBy selected\n || tabByLocalValue.value !== undefined // tabBy selected and has selected value\n || opts === undefined // options not loaded yet\n ) {\n return;\n }\n let availableOptions = opts;\n if (opts === null) { // options loaded but too many unique values\n availableOptions = await searchFilterOptions(tabBySource.value, '');\n }\n if (availableOptions?.length) {\n const nextFilterValue = availableOptions[0].value as string;\n tabByLocalValue.value = nextFilterValue;\n onFilterValueUpdate(nextFilterValue);\n }\n}, { immediate: true });\n\nfunction onFilterValueUpdate(value: string) {\n const prevSelectorStates = store.value.reactive.optionsState.components.tabBy.selectorStates;\n if (prevSelectorStates.length) {\n store.value.reactive.optionsState.components.tabBy.selectorStates = [{\n ...prevSelectorStates[0],\n type: 'equals',\n selectedFilterValues: [value],\n }];\n }\n}\n\nfunction onTitleChange(e: Event) {\n const target = e.currentTarget as HTMLInputElement;\n title.value = target.value;\n emit('graph-title-update', target.value);\n}\n\nfunction onTableRowSelect(id: number) {\n emit('dendro-node-select', id);\n}\n\n// search options for autocomplete component; use label-mode search for options and value-mode for search of label of selected by default value;\nasync function searchFilterOptions(sourceId: string, searchStr: string, type: 'value' | 'label' = 'label') {\n if (!store.value.columnsDataStore.value) {\n return Promise.resolve([]);\n }\n // if the same source is selected in filters, return only selected values;\n const filtersStateWithTheSameSource = filtersStates.value.find((state) => state.selectedSource === sourceId) as SelectorStateFilter | undefined;\n if (filtersStateWithTheSameSource && (filtersStateWithTheSameSource.selectedFilterValues?.length ?? 0) > 0) {\n const selectedValues = filtersStateWithTheSameSource.selectedFilterValues ?? [];\n const results = await Promise.all(selectedValues.map((selectedValue) => searchSelectedFilterValueOptions(sourceId, selectedValue)));\n return searchStr ? results.filter((v) => v.label.toLowerCase().includes(searchStr.toLowerCase())) : results;\n }\n const searchLabelStr = type === 'label' ? searchStr : undefined;\n const searchValueStr = type === 'value' ? searchStr : undefined;\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore.value, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchLabelStr, searchValueStr)).values;\n}\n\n// search by value, not by label;\nasync function searchSelectedFilterValueOptions(sourceId: string, selectedValue: string) {\n if (!store.value.columnsDataStore.value) {\n return Promise.resolve({ value: selectedValue, label: ' ' }); // don't show non-human-readable value\n }\n const value = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore.value, store.value.inputGuide.value,\n sourceId, 1, undefined, selectedValue).then((v) => v.values[0]);\n return value;\n}\n\nconst chartContainerRef = ref();\n\nconst hasPrimaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.primaryGrouping?.selectorStates.length) {\n const columnName = optionsState.primaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nconst hasSecondaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.secondaryGrouping?.selectorStates.length) {\n const columnName = optionsState.secondaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nfunction openAxesSettingsPrimary() {\n store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\nfunction openAxesSettingsSecondary() {\n store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\n\n</script>\n\n<template>\n <div class=\"chart_container\">\n <div class=\"chart_header\">\n <input\n class=\"chart_title\"\n :value=\"title\"\n :disabled=\"!allowTitleEditing\"\n @change=\"onTitleChange\"\n @keyup.enter=\"(e) => { (e.target as HTMLInputElement)?.blur() }\"\n />\n <component :is=\"EditIcon\" v-if=\"allowTitleEditing\" class=\"chart_titleEdit\" />\n <div class=\"chart_titleLineSlot\">\n <slot />\n </div>\n </div>\n <PlNotificationAlert\n v-model=\"store.reactive.showTooltipHint\" type=\"success\" class=\"chart_tooltipHint\"\n width=\"170px\"\n >\n Hit enter to pin tooltip\n </PlNotificationAlert>\n <div v-if=\"tabBySource\" class=\"chart_tabBy\">\n <PlDropdown\n v-if=\"preloadedOptions || (preloadedOptions === undefined && store.loading.inputGuide)\"\n v-model=\"tabByLocalValue\" label=\"Show for\" :options=\"preloadedOptions\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n <PlAutocomplete\n v-else v-model=\"tabByLocalValue\" label=\"Show for\"\n :options-search=\"(str, type) => searchFilterOptions(tabBySource as string, str, type)\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n </div>\n <div\n ref=\"chartContainerRef\" class=\"chart_main-content\"\n :class=\"[{ 'chart_main-content__dendro': store.reactive.chartType === 'dendro' }, 'pl-scrollable']\"\n >\n <div\n id=\"chartSvgContainer\" :class=\"{\n 'chart_ready': graphStatus === 'ready',\n 'chart_loading': graphStatus === 'loading',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n />\n <GraphStatusScreen :graphStatus=\"graphStatus\" :top=\"tabBySource ? 24 : 0\" :bottom=\"11\" :customStatusText=\"customStatusText\" :errorInfo=\"errorInfo\"/>\n <DendroTable\n v-if=\"store.reactive.chartType === 'dendro' && chartData && store.reactive.layersSettings.dendro.showTable\"\n :chartData=\"chartData\" @row-select=\"onTableRowSelect\"\n />\n <DendroTooltip\n v-if=\"store.reactive.dendroInfoByClick\" :info=\"store.reactive.dendroInfoByClick\"\n :containerRef=\"chartContainerRef\" :tooltipBtn=\"dendroTooltipButton\"\n @tooltip-btn-click=\"(id: string) => $emit('dendro-tooltip-btn-click', id)\" @close=\"\n store.reactive.dendroInfoByClick = null;\n $emit('dendro-node-select', null);\n \"\n />\n </div>\n <div v-if=\"graphStatus === 'ready'\" class=\"chart_controls\">\n <Zoom />\n <LassoControls v-if=\"store.reactive.chartType === 'scatterplot-umap'\" :chart-ref=\"chartRef\" :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"/>\n <PlBtnGhost v-if=\"hasPrimaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsPrimary()\">\n Hidden (primary)\n </PlBtnGhost>\n <PlBtnGhost v-if=\"hasSecondaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsSecondary()\">\n Hidden (secondary)\n </PlBtnGhost>\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","store","useStore","props","__props","title","ref","watch","graphTitle","tabByState","computed","_a","tabBySource","tabByFilterValue","_b","filtersStates","tabByLocalValue","value","prevValue","loadOptions","sourceId","filtersStateWithTheSameSource","state","selectedValues","selectedValue","searchSelectedFilterValueOptions","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","loading","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","prevSelectorStates","onTitleChange","e","target","onTableRowSelect","id","searchStr","type","results","searchLabelStr","searchValueStr","chartContainerRef","hasPrimaryHidden","optionsState","columnName","dataBindAes","hasSecondaryHidden","openAxesSettingsPrimary","openAxesSettingsSecondary","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createBlock","_resolveDynamicComponent","EditIcon","_hoisted_4","_renderSlot","_ctx","_createVNode","_unref","PlNotificationAlert","$event","_cache","_hoisted_5","PlDropdown","PlAutocomplete","str","_normalizeClass","GraphStatusScreen","DendroTable","DendroTooltip","$emit","_hoisted_6","Zoom","LassoControls","PlBtnGhost"],"mappings":"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"}
@@ -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":"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"}
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/components/SettingsTabs/index.vue"],"names":[],"mappings":"AAyFA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B,CAAC;;;;;;;;;;AA8MF,wBAOG"}
1
+ {"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SettingsTabs/index.vue"],"names":[],"mappings":"AA6FA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B,CAAC;;;;;;;;;;AAgNF,wBAOG"}