@milaboratories/graph-maker 1.1.177 → 1.1.179
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.
- package/dist/components/AesButton.vue.d.ts +6 -6
- package/dist/components/AesButton.vue.js +2 -2
- package/dist/components/AesButton.vue.js.map +1 -1
- package/dist/components/AesSettings/AesDataMappingContinuous.vue.js +14 -14
- package/dist/components/AesSettings/AesDataMappingContinuous.vue.js.map +1 -1
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue.js +39 -38
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue.js.map +1 -1
- package/dist/components/AesSettings/FixedColorsList.vue.d.ts +1 -1
- package/dist/components/AesSettings/FixedColorsList.vue.js +13 -12
- package/dist/components/AesSettings/FixedColorsList.vue.js.map +1 -1
- package/dist/components/AesSettings/FixedDotShapeList.vue.js +10 -9
- package/dist/components/AesSettings/FixedDotShapeList.vue.js.map +1 -1
- package/dist/components/AesSettings/FixedLineTypeList.vue.js +12 -11
- package/dist/components/AesSettings/FixedLineTypeList.vue.js.map +1 -1
- package/dist/components/AesSettings/FormWrapper.vue.js +2 -2
- package/dist/components/AesSettings/FormWrapper.vue.js.map +1 -1
- package/dist/components/AesSettings/PalettesForm.vue.js +54 -50
- package/dist/components/AesSettings/PalettesForm.vue.js.map +1 -1
- package/dist/components/AesSettings/types.d.ts +9 -9
- package/dist/components/BtnIconGroup.vue.js +10 -11
- package/dist/components/BtnIconGroup.vue.js.map +1 -1
- package/dist/components/Chart.vue.js +6 -8
- package/dist/components/Chart.vue.js.map +1 -1
- package/dist/components/CollapsableBlock.vue.js +2 -2
- package/dist/components/CollapsableBlock.vue.js.map +1 -1
- package/dist/components/DendroTable.vue.js +2 -2
- package/dist/components/DendroTable.vue.js.map +1 -1
- package/dist/components/DendroTooltip.vue.js +15 -14
- package/dist/components/DendroTooltip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DnDBasketChip.vue.js +2 -2
- package/dist/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DnDRangeChip.vue.d.ts +12 -3
- package/dist/components/DragAndDrop/DnDRangeChip.vue.js +4 -4
- package/dist/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DndBasket.vue.js +26 -26
- package/dist/components/DragAndDrop/DndBasket.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DndChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DndDoubleChip.vue.js +2 -2
- package/dist/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/types.d.ts +1 -1
- package/dist/components/LassoControls/index.vue.js +4 -4
- package/dist/components/LassoControls/index.vue.js.map +1 -1
- package/dist/components/Loading.vue.js +8 -7
- package/dist/components/Loading.vue.js.map +1 -1
- package/dist/components/MultiselectButton.vue.js +28 -27
- package/dist/components/MultiselectButton.vue.js.map +1 -1
- package/dist/components/PanelModal.vue.js.map +1 -1
- package/dist/components/PlColorSlider.vue.js +12 -12
- package/dist/components/PlColorSlider.vue.js.map +1 -1
- package/dist/components/PlColorSliderThumb.vue.js +1 -3
- package/dist/components/PlColorSliderThumb.vue.js.map +1 -1
- package/dist/components/Popup.vue.d.ts +2 -0
- package/dist/components/Popup.vue.js +21 -21
- package/dist/components/Popup.vue.js.map +1 -1
- package/dist/components/ReorderForm.vue.js +20 -17
- package/dist/components/ReorderForm.vue.js.map +1 -1
- package/dist/components/SettingsTabs/icons/DeleteChartIcon.vue.js.map +1 -1
- package/dist/components/SettingsTabs/icons/LogIcon.vue.js.map +1 -1
- package/dist/components/SettingsTabs/icons/SettingsIcon.vue.js.map +1 -1
- package/dist/components/SettingsTabs/index.vue.d.ts +3 -2
- package/dist/components/SettingsTabs/index.vue.js +16 -15
- package/dist/components/SettingsTabs/index.vue.js.map +1 -1
- package/dist/components/Zoom/ZoomInput.vue.js +11 -11
- package/dist/components/Zoom/ZoomInput.vue.js.map +1 -1
- package/dist/components/Zoom/index.vue.js.map +1 -1
- package/dist/composition/useComponent.js.map +1 -1
- package/dist/constantsAesthetic.js.map +1 -1
- package/dist/constantsCommon.d.ts +3 -1
- package/dist/constantsCommon.js +5 -5
- package/dist/constantsCommon.js.map +1 -1
- package/dist/dataBindAes.js +4 -2
- package/dist/dataBindAes.js.map +1 -1
- package/dist/forms/AnnotationsForm.vue.d.ts +17 -0
- package/dist/forms/AnnotationsForm.vue.js +16 -0
- package/dist/forms/AnnotationsForm.vue.js.map +1 -0
- package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +35 -35
- package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +49 -47
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +53 -53
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +37 -37
- package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +38 -38
- package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/index.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/BubbleForm.vue.js +4 -4
- package/dist/forms/DataMappingForm/BubbleForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/DendroForm.vue.js +1 -1
- package/dist/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/DiscreteForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/HeatmapForm.vue.js +2 -2
- package/dist/forms/DataMappingForm/HeatmapForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/HistogramForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/Layout/FormLayout.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/Layout/MandatoryOptions.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/Layout/OptionsList.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/ScatterplotForm.vue.js +4 -4
- package/dist/forms/DataMappingForm/ScatterplotForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/ScatterplotUmapForm.vue.js +4 -4
- package/dist/forms/DataMappingForm/ScatterplotUmapForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/index.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/useBaskets.js.map +1 -1
- package/dist/forms/DataMappingForm/utils.d.ts +1 -1
- package/dist/forms/DataMappingForm/utils.js +34 -34
- package/dist/forms/DataMappingForm/utils.js.map +1 -1
- package/dist/forms/LayersForm/AesSelector.vue.js +18 -25
- package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
- package/dist/forms/LayersForm/DotSizeSelector.vue.d.ts +2 -0
- package/dist/forms/LayersForm/DotSizeSelector.vue.js +23 -23
- package/dist/forms/LayersForm/DotSizeSelector.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/Bubble.vue.js +32 -34
- package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/Dendro.vue.js +6 -6
- package/dist/forms/LayersForm/Layer/Dendro.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js +6 -6
- package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/BinnedDots.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/BinnedDots.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Boxplot.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/Boxplot.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js +9 -9
- package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/JitteredDots.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/JitteredDots.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Line.vue.js +8 -8
- package/dist/forms/LayersForm/Layer/discrete/Line.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Logo.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/Logo.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Sina.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/Sina.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js +9 -9
- package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js +6 -6
- package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Violin.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/Violin.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/utils.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +23 -23
- package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js +6 -6
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +28 -28
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/histogram/Bins.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/histogram/Bins.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/scatterplot/Curve.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/scatterplot/Scatter.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js +2 -2
- package/dist/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js.map +1 -1
- package/dist/forms/LayersForm/index.vue.js +56 -52
- package/dist/forms/LayersForm/index.vue.js.map +1 -1
- package/dist/forms/LogForm.vue.js.map +1 -1
- package/dist/forms/SettingsForm.vue.js.map +1 -1
- package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js +14 -14
- package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js.map +1 -1
- package/dist/forms/StatisticsForm/ScatterplotStatisticsForm.vue.js.map +1 -1
- package/dist/forms/StatisticsForm/index.vue.js.map +1 -1
- package/dist/forms/TemplateForm.vue.js +59 -52
- package/dist/forms/TemplateForm.vue.js.map +1 -1
- package/dist/forms/index.d.ts +21 -0
- package/dist/forms/index.js +53 -46
- package/dist/forms/index.js.map +1 -1
- package/dist/icons/Annotation.vue.d.ts +2 -0
- package/dist/icons/Annotation.vue.js +12 -0
- package/dist/icons/Annotation.vue.js.map +1 -0
- package/dist/icons/Annotation.vue2.js +5 -0
- package/dist/icons/Annotation.vue2.js.map +1 -0
- package/dist/icons/BinnedDotsIcon.vue.js.map +1 -1
- package/dist/icons/BoxplotAndBinnedIcon.vue.js.map +1 -1
- package/dist/icons/BoxplotAndJitterIcon.vue.js.map +1 -1
- package/dist/icons/BoxplotIcon.vue.js.map +1 -1
- package/dist/icons/EditIcon.vue.js.map +1 -1
- package/dist/icons/FrameLeft.vue.js.map +1 -1
- package/dist/icons/HeatmapAnnotation.vue.js.map +1 -1
- package/dist/icons/LineAndErrorbarIcon.vue.js.map +1 -1
- package/dist/icons/LogoIcon.vue.js.map +1 -1
- package/dist/icons/PlusIcon.vue.js.map +1 -1
- package/dist/icons/SinaIcon.vue.js.map +1 -1
- package/dist/icons/StackedAreaIcon.vue.js.map +1 -1
- package/dist/index.vue.d.ts +1 -0
- package/dist/index.vue.js +148 -146
- package/dist/index.vue.js.map +1 -1
- package/dist/store.d.ts +1 -1
- package/dist/store.js +2 -2
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils/addFixedOptionsToState.js.map +1 -1
- package/dist/utils/calculateDiscreteGroups.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +24 -24
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
- package/dist/utils/getPopupHeightForFixedAesList.js.map +1 -1
- package/dist/utils/getStatisticsOptions.js.map +1 -1
- package/dist/utils/getUsedAesInMapping.js +1 -1
- package/dist/utils/getUsedAesInMapping.js.map +1 -1
- package/dist/utils/loadDefaultSources.js.map +1 -1
- package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
- package/dist/utils/saveToFile.js.map +1 -1
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DendroTable.vue.js","sources":["../../src/components/DendroTable.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Column, GridApi, IRowNode } from '@ag-grid-community/core';\nimport {\n DendroUIState,\n PValue
|
|
1
|
+
{"version":3,"file":"DendroTable.vue.js","sources":["../../src/components/DendroTable.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Column, GridApi, IRowNode } from '@ag-grid-community/core';\nimport type {\n DendroUIState,\n PValue,\n} from '@milaboratories/pf-plots';\nimport { AgGridTheme } from '@platforma-sdk/ui-vue';\nimport { AgGridVue } from 'ag-grid-vue3';\nimport type { HierarchyNode } from 'd3-hierarchy';\nimport { computed, ref, shallowRef, watch } from 'vue';\nimport { useStore } from '../store.ts';\n\nconst _emit = defineEmits(['row-select']);\n\nconst store = useStore();\n\nconst props = defineProps<{\n chartData: Record<string, unknown> | null;\n}>();\n\nconst width = ref(100); // table width\nconst gridApi = shallowRef();\n\nconst columnKeys = computed(() => [\n 'id',\n ...(store.value.reactive.optionsState as DendroUIState).components.tableContent.selectorStates.map((s) => s.selectedSource),\n]);\n\nconst rowKeys = ref<string[]>([]);\nwatch(() => props.chartData?.hierarchy as HierarchyNode<{ data: Record<string, PValue> }>, (hierarchy) => {\n if (hierarchy) {\n const newLeaves = hierarchy.leaves().map((l) => (l.data as unknown as {\n rawData: Record<string, PValue>;\n })['rawData']['id']) as string[];\n if (newLeaves.length !== rowKeys.value.length || newLeaves.some((l, idx) => l !== rowKeys.value[idx])) {\n rowKeys.value = newLeaves;\n }\n } else {\n rowKeys.value = [];\n }\n}, { immediate: true });\n\nconst rowData = ref<Record<string, PValue>[]>([]);\nconst colDefs = ref<{ field: string; sortable: false; resizable: false }[]>([]);\n\nwatch([\n () => rowKeys.value,\n () => columnKeys.value,\n () => store.value.commonHelpersData.dendroTableData.value,\n], ([rowKeysValue, columnKeysValue, tableData]) => {\n if (tableData === null) {\n colDefs.value = [];\n rowData.value = [];\n return;\n }\n if (columnKeysValue.some((key) => !tableData[key])) {\n return;\n }\n const rowsByKey = tableData['id'].data.reduce((resultByColumnId: Record<string, Record<string, PValue>>, nodeId, idx) => {\n const id = nodeId as string;\n if (resultByColumnId[id]) {\n console.warn(`More than 1 value for node id ${id} in dendro table`);\n }\n resultByColumnId[id] = columnKeysValue.reduce((rowDataByColumns: Record<string, PValue>, columnKey) => {\n const columnData = tableData[columnKey];\n if (columnData) {\n rowDataByColumns[columnKey] = columnData.data[idx];\n }\n return rowDataByColumns;\n }, {});\n return resultByColumnId;\n }, {});\n\n colDefs.value = columnKeysValue.map((key) => ({\n headerName: tableData[key].label,\n field: key,\n sortable: false,\n resizable: false,\n }));\n rowData.value = rowKeysValue.map((key) => rowsByKey[key] ?? null);\n updateContainerWidth();\n}, { immediate: true });\n\nconst leafSize = computed(() => {\n const height = (props.chartData?.chartSizes as { treeHeight: number })?.treeHeight;\n return rowKeys.value.length ? height / rowKeys.value.length : 0;\n});\n\nconst onGridReady = (params: { api: GridApi }) => {\n gridApi.value = params.api;\n updateContainerWidth();\n};\n\nfunction updateContainerWidth() {\n if (gridApi.value && !gridApi.value.isDestroyed()) {\n gridApi.value.autoSizeAllColumns();\n const columns = gridApi.value.getColumns();\n if (columns) {\n width.value = columns.reduce((res: number, column: Column) => {\n return res + column.getActualWidth();\n }, 2);\n }\n }\n}\n\nwatch(() => store.value.reactive.dendroSelectedNodeId, (id) => {\n if (gridApi.value) {\n if (id === null) {\n gridApi.value.deselectAll();\n } else {\n gridApi.value.forEachNode((node: IRowNode) => {\n if (node.data.id === id) {\n node.setSelected(true, true);\n }\n });\n }\n }\n});\n\n</script>\n\n<template>\n <div class=\"dendro-table\" :style=\"{width: width + 'px'}\">\n <AgGridVue\n :theme=\"AgGridTheme\"\n :gridApi=\"gridApi\"\n :onGridReady=\"onGridReady\"\n :defaultColDef=\"{ suppressHeaderMenuButton: true }\"\n :rowData=\"rowData\"\n :columnDefs=\"colDefs\"\n :rowHeight=\"leafSize\"\n :autoSizeStrategy=\"{type: 'fitCellContents'}\"\n domLayout=\"autoHeight\"\n @gridColumnsChanged=\"() => {\n updateContainerWidth();\n }\"\n />\n </div>\n</template>\n"],"names":["store","useStore","props","__props","width","ref","gridApi","shallowRef","columnKeys","computed","s","rowKeys","watch","_a","hierarchy","newLeaves","l","idx","rowData","colDefs","rowKeysValue","columnKeysValue","tableData","key","rowsByKey","resultByColumnId","nodeId","id","rowDataByColumns","columnKey","columnData","updateContainerWidth","leafSize","height","_b","onGridReady","params","columns","res","column","node","_createElementBlock","_createVNode","_unref","AgGridVue","AgGridTheme","_cache"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent as B, ref as H, computed as n, createElementBlock as i, openBlock as l, normalizeStyle as y, createElementVNode as c, createVNode as f, createCommentVNode as
|
|
2
|
-
import { useClickOutside as
|
|
1
|
+
import { defineComponent as B, ref as H, computed as n, createElementBlock as i, openBlock as l, normalizeStyle as y, createElementVNode as c, createVNode as f, createCommentVNode as b, unref as v, Fragment as O, renderList as N, normalizeClass as D, toDisplayString as p, withCtx as I, createTextVNode as z } from "vue";
|
|
2
|
+
import { useClickOutside as P, PlMaskIcon24 as V, PlMaskIcon16 as w, PlBtnSecondary as W } from "@platforma-sdk/ui-vue";
|
|
3
3
|
import { useStore as $ } from "../store.js";
|
|
4
4
|
const K = { class: "graph-info-tooltip-title" }, L = ["title"], M = {
|
|
5
5
|
key: 1,
|
|
@@ -11,7 +11,7 @@ const K = { class: "graph-info-tooltip-title" }, L = ["title"], M = {
|
|
|
11
11
|
key: 0,
|
|
12
12
|
"data-theme": "dark",
|
|
13
13
|
class: "graph-info-tooltip-button"
|
|
14
|
-
}, A = 48, G = 62.5, J = 26, X = 16,
|
|
14
|
+
}, A = 48, G = 62.5, J = 26, X = 16, C = 24, Y = 20, ot = /* @__PURE__ */ B({
|
|
15
15
|
__name: "DendroTooltip",
|
|
16
16
|
props: {
|
|
17
17
|
info: {},
|
|
@@ -21,7 +21,7 @@ const K = { class: "graph-info-tooltip-title" }, L = ["title"], M = {
|
|
|
21
21
|
emits: ["close", "tooltip-btn-click"],
|
|
22
22
|
setup(u, { emit: x }) {
|
|
23
23
|
const s = u, m = $(), d = x, g = H();
|
|
24
|
-
|
|
24
|
+
P([g], () => d("close"));
|
|
25
25
|
const T = n(() => {
|
|
26
26
|
const o = (a) => m.value.reactive.optionsState.components[a].selectorStates.map((r) => r.selectedSource), e = ["tableContent", "labels", "nodeColor", "nodeSize", "nodeShape", "lineColor"], t = ["id"];
|
|
27
27
|
return e.forEach((a) => {
|
|
@@ -47,9 +47,9 @@ const K = { class: "graph-info-tooltip-title" }, L = ["title"], M = {
|
|
|
47
47
|
}) : [];
|
|
48
48
|
}), _ = n(() => S.value.reduce((o, e) => o + (e.isSequence ? G : J), 0) + X * 2 + (s.tooltipBtn ? A : 0)), F = n(() => ({
|
|
49
49
|
left: s.info.x + Y + "px",
|
|
50
|
-
top: s.info.y +
|
|
50
|
+
top: s.info.y + C + "px"
|
|
51
51
|
})), R = n(() => {
|
|
52
|
-
const o = s.containerRef.scrollHeight, e = _.value / 2, t = s.info.y +
|
|
52
|
+
const o = s.containerRef.scrollHeight, e = _.value / 2, t = s.info.y + C;
|
|
53
53
|
return t < e ? -t : o - e < t ? -(_.value - (o - t)) : -e;
|
|
54
54
|
});
|
|
55
55
|
function q(o) {
|
|
@@ -57,24 +57,25 @@ const K = { class: "graph-info-tooltip-title" }, L = ["title"], M = {
|
|
|
57
57
|
(e = window == null ? void 0 : window.navigator) == null || e.clipboard.writeText(o);
|
|
58
58
|
}
|
|
59
59
|
return (o, e) => (l(), i("div", {
|
|
60
|
-
class: "graph-info-tooltip__container",
|
|
61
60
|
ref: "",
|
|
61
|
+
class: "graph-info-tooltip__container",
|
|
62
62
|
style: y(F.value)
|
|
63
63
|
}, [
|
|
64
64
|
e[3] || (e[3] = c("div", { class: "graph-info-tooltip__tail" }, null, -1)),
|
|
65
65
|
c("div", {
|
|
66
|
-
class: "graph-info-tooltip",
|
|
67
66
|
ref_key: "rootRef",
|
|
68
67
|
ref: g,
|
|
68
|
+
class: "graph-info-tooltip",
|
|
69
69
|
style: y({ transform: `translate(0,${R.value}px)` }),
|
|
70
70
|
onClick: e[2] || (e[2] = (t) => t.stopPropagation())
|
|
71
71
|
}, [
|
|
72
|
-
f(v(
|
|
72
|
+
f(v(V), {
|
|
73
73
|
class: "graph-info-tooltip-close",
|
|
74
74
|
name: "close",
|
|
75
75
|
onClick: e[0] || (e[0] = (t) => d("close"))
|
|
76
76
|
}),
|
|
77
77
|
(l(!0), i(O, null, N(S.value, (t) => (l(), i("div", {
|
|
78
|
+
key: t.label,
|
|
78
79
|
class: D(["graph-info-tooltip-row", { "graph-info-tooltip-row__sequence": t.isSequence }])
|
|
79
80
|
}, [
|
|
80
81
|
c("div", K, p(t.label + ":"), 1),
|
|
@@ -84,18 +85,18 @@ const K = { class: "graph-info-tooltip-title" }, L = ["title"], M = {
|
|
|
84
85
|
title: String(t.value)
|
|
85
86
|
}, p(t.value), 9, U),
|
|
86
87
|
t.isSequence ? (l(), i("div", Q, [
|
|
87
|
-
f(v(
|
|
88
|
+
f(v(w), {
|
|
88
89
|
class: "graph-info-tooltip-clipboard",
|
|
89
90
|
name: "clipboard",
|
|
90
91
|
onClick: () => q(String(t.value))
|
|
91
92
|
}, null, 8, ["onClick"])
|
|
92
|
-
])) :
|
|
93
|
+
])) : b("", !0)
|
|
93
94
|
])) : (l(), i("div", {
|
|
94
95
|
key: 0,
|
|
95
96
|
class: "graph-info-tooltip-value",
|
|
96
97
|
title: String(t.value)
|
|
97
98
|
}, p(t.value), 9, L))
|
|
98
|
-
], 2))),
|
|
99
|
+
], 2))), 128)),
|
|
99
100
|
u.tooltipBtn ? (l(), i("div", j, [
|
|
100
101
|
f(v(W), {
|
|
101
102
|
icon: "arrow-right",
|
|
@@ -103,11 +104,11 @@ const K = { class: "graph-info-tooltip-title" }, L = ["title"], M = {
|
|
|
103
104
|
onClick: e[1] || (e[1] = () => d("tooltip-btn-click", h.value))
|
|
104
105
|
}, {
|
|
105
106
|
default: I(() => [
|
|
106
|
-
|
|
107
|
+
z(p(u.tooltipBtn), 1)
|
|
107
108
|
]),
|
|
108
109
|
_: 1
|
|
109
110
|
})
|
|
110
|
-
])) :
|
|
111
|
+
])) : b("", !0)
|
|
111
112
|
], 4)
|
|
112
113
|
], 4));
|
|
113
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DendroTooltip.vue.js","sources":["../../src/components/DendroTooltip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { DendroUIState } from '@milaboratories/pf-plots';\nimport { PlBtnSecondary, PlMaskIcon16, PlMaskIcon24, useClickOutside } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { useStore } from '../store';\nimport { DendroNodeInfo } from '../types';\n\nconst props = defineProps<{\n info: DendroNodeInfo
|
|
1
|
+
{"version":3,"file":"DendroTooltip.vue.js","sources":["../../src/components/DendroTooltip.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { DendroUIState } from '@milaboratories/pf-plots';\nimport { PlBtnSecondary, PlMaskIcon16, PlMaskIcon24, useClickOutside } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { useStore } from '../store';\nimport type { DendroNodeInfo } from '../types';\n\nconst props = defineProps<{\n info: DendroNodeInfo;\n tooltipBtn?: string;\n containerRef: Element;\n}>();\nconst store = useStore();\n\nconst $emit = defineEmits(['close', 'tooltip-btn-click']);\n\nconst rootRef = ref();\nuseClickOutside([rootRef], () => $emit('close'));\n\nconst columnKeys = computed(() => {\n const getColumnKeysFromInput = (inputName: keyof DendroUIState['components']) => {\n return (store.value.reactive.optionsState as DendroUIState).components[inputName].selectorStates.map((s) => s.selectedSource);\n };\n const inputs: (keyof DendroUIState['components'])[] = ['tableContent', 'labels', 'nodeColor', 'nodeSize', 'nodeShape', 'lineColor'];\n const keys = ['id'];\n inputs.forEach((inputName) => {\n const newKeys = getColumnKeysFromInput(inputName);\n newKeys.forEach((key) => {\n if (!keys.includes(key)) {\n keys.push(key);\n }\n });\n });\n return keys;\n});\n\nconst firstRowFromNode = computed(() => props.info.info[0]);\nconst id = computed(() => firstRowFromNode.value?.id);\nconst infoList = computed(() => {\n const tableData = store.value.commonHelpersData.dendroTableData.value;\n if (!tableData) {\n return [];\n }\n const rowIdx = tableData['id'].data.findIndex((v) => String(v) === String(id.value));\n if (rowIdx !== -1) {\n return columnKeys.value.map((columnKey) => ({\n label: tableData[columnKey].label,\n value: tableData[columnKey].data[rowIdx],\n isSequence: tableData[columnKey].spec?.annotations?.['pl7.app/type'] === 'sequence',\n }));\n }\n return [];\n});\n\nconst BTN_H = 48;\nconst SEQ_ROW_H = 62.5;\nconst ROW_H = 26;\nconst OFFSET = 16;\nconst height = computed(() => {\n return infoList.value.reduce((sum, row) => sum + (row.isSequence ? SEQ_ROW_H : ROW_H), 0) + OFFSET * 2 + (props.tooltipBtn ? BTN_H : 0);\n});\n\nconst OUTER_OFFSET_H = 24;\nconst OUTER_OFFSET_W = 20;\n\nconst position = computed(() => {\n return {\n left: props.info.x + OUTER_OFFSET_W + 'px',\n top: props.info.y + OUTER_OFFSET_H + 'px',\n };\n});\n\nconst verticalShift = computed(() => {\n const parentHeight = props.containerRef.scrollHeight;\n const halfHeight = height.value / 2;\n const y = props.info.y + OUTER_OFFSET_H;\n if (y < halfHeight) {\n return -y;\n }\n if (parentHeight - halfHeight < y) {\n return -(height.value - (parentHeight - y));\n }\n return -halfHeight;\n});\n\nfunction copyToClipboard(text: string) {\n window?.navigator?.clipboard.writeText(text);\n}\n\n</script>\n\n<template>\n <div ref=\"\" class=\"graph-info-tooltip__container\" :style=\"position\">\n <div class=\"graph-info-tooltip__tail\" />\n <div\n ref=\"rootRef\" class=\"graph-info-tooltip\" :style=\"{transform: `translate(0,${verticalShift}px)`}\"\n @click=\"(e) => e.stopPropagation()\"\n >\n <PlMaskIcon24 class=\"graph-info-tooltip-close\" name=\"close\" @click=\"$emit('close')\" />\n <div\n v-for=\"row in infoList\"\n :key=\"row.label\"\n class=\"graph-info-tooltip-row\"\n :class=\"{'graph-info-tooltip-row__sequence': row.isSequence}\"\n >\n <div class=\"graph-info-tooltip-title\">{{ row.label + ':' }}</div>\n <div v-if=\"!row.isSequence\" class=\"graph-info-tooltip-value\" :title=\"String(row.value)\">\n {{ row.value }}\n </div>\n <div v-else class=\"graph-info-tooltip-sequence-row\">\n <div class=\"graph-info-tooltip-value\" :title=\"String(row.value)\">\n {{ row.value }}\n </div>\n <div v-if=\"row.isSequence\" class=\"graph-info-tooltip-icon\">\n <PlMaskIcon16\n class=\"graph-info-tooltip-clipboard\"\n name=\"clipboard\"\n @click=\"() => copyToClipboard(String(row.value))\"\n />\n </div>\n </div>\n </div>\n <div v-if=\"tooltipBtn\" data-theme=\"dark\" class=\"graph-info-tooltip-button\">\n <PlBtnSecondary\n icon=\"arrow-right\"\n size=\"small\"\n @click=\"() => $emit('tooltip-btn-click', id)\"\n >\n {{ tooltipBtn }}\n </PlBtnSecondary>\n </div>\n </div>\n </div>\n</template>\n"],"names":["BTN_H","SEQ_ROW_H","ROW_H","OFFSET","OUTER_OFFSET_H","OUTER_OFFSET_W","props","__props","store","useStore","$emit","__emit","rootRef","ref","useClickOutside","columnKeys","computed","getColumnKeysFromInput","inputName","s","inputs","keys","key","firstRowFromNode","id","_a","infoList","tableData","rowIdx","v","columnKey","_b","height","sum","row","position","verticalShift","parentHeight","halfHeight","y","copyToClipboard","text","_createElementBlock","_createElementVNode","_cache","e","_createVNode","_unref","PlMaskIcon24","_Fragment","_renderList","_normalizeClass","_hoisted_1","_toDisplayString","_openBlock","_hoisted_3","_hoisted_4","_hoisted_5","PlMaskIcon16","_hoisted_2","_hoisted_6","PlBtnSecondary"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDBasketChip.vue.js","sources":["../../../src/components/DragAndDrop/DnDBasketChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlIcon16 } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { ChipInfo } from './types.ts';\nimport CloseChipIcon from '../../assets/drag-and-drop/img/chip-close.svg?raw';\n\nconst props = defineProps<{\n error: boolean;\n info: ChipInfo;\n sortable?: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: 'close-chip', item: ChipInfo['id']): void;\n}>();\n\nconst chipRoot = ref<HTMLElement>();\n\nconst dimensionsTitle = computed(() =>\n props.info.uniqueValues.join('/')
|
|
1
|
+
{"version":3,"file":"DnDBasketChip.vue.js","sources":["../../../src/components/DragAndDrop/DnDBasketChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlIcon16 } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport type { ChipInfo } from './types.ts';\nimport CloseChipIcon from '../../assets/drag-and-drop/img/chip-close.svg?raw';\n\nconst props = defineProps<{\n error: boolean;\n info: ChipInfo;\n sortable?: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: 'close-chip', item: ChipInfo['id']): void;\n}>();\n\nconst chipRoot = ref<HTMLElement>();\n\nconst dimensionsTitle = computed(() =>\n props.info.uniqueValues.join('/'),\n);\n\nfunction closeChip() {\n emit('close-chip', props.info['id']);\n}\n\n</script>\n<template>\n <div ref=\"chipRoot\" class=\"dnd-basket-chip__group\">\n <div :class=\"{ error, sortable }\" class=\"dnd-basket-chip\">\n <div class=\"dnd-basket-chip__icon\" :class=\"{error}\">\n <PlIcon16 v-if=\"error\" name=\"warning\" :class=\"{error}\" />\n <PlIcon16 v-else :name=\"info.isSubsetFilter ? 'cell-type-subset' : info.type === 'String' ? 'cell-type-txt' : 'cell-type-num'\"/>\n </div>\n <div v-if=\"sortable\" class=\"dnd-basket-chip__handler\"/>\n <PlIcon16 name=\"drag-dots\" />\n <div class=\"dnd-basket-chip__title-wrapper\">\n <div class=\"dnd-basket-chip__title\" :title=\"info.title\">\n {{ info.title }}\n </div>\n <div\n v-if=\"info.nonHomogenous\"\n class=\"dnd-basket-chip__sub-title\"\n :title=\"dimensionsTitle\"\n >\n {{ dimensionsTitle }}\n </div>\n </div>\n <div\n class=\"dnd-basket-chip__icon-close\"\n @click=\"closeChip\"\n v-html=\"CloseChipIcon\"\n />\n </div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","chipRoot","ref","dimensionsTitle","computed","closeChip","_createElementBlock","_createElementVNode","_normalizeClass","_createBlock","_unref","PlIcon16","_openBlock","_hoisted_1","_createVNode","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4","CloseChipIcon"],"mappings":";;;;;;;;;;;;;;;AAMA,UAAMA,IAAQC,GAMRC,IAAOC,GAIPC,IAAWC,EAAA,GAEXC,IAAkBC;AAAA,MAAS,MAC/BP,EAAM,KAAK,aAAa,KAAK,GAAG;AAAA,IAAA;AAGlC,aAASQ,IAAY;AACnB,MAAAN,EAAK,cAAcF,EAAM,KAAK,EAAK;AAAA,IACrC;2BAIES,EA0BM,OAAA;AAAA,eA1BG;AAAA,MAAJ,KAAIL;AAAA,MAAW,OAAM;AAAA,IAAA;MACxBM,EAwBM,OAAA;AAAA,QAxBA,OAAKC,EAAA,CAAA,EAAA,OAAIV,EAAA,OAAK,UAAEA,EAAA,SAAA,GAAkB,iBAAiB,CAAA;AAAA,MAAA;QACvDS,EAGM,OAAA;AAAA,UAHD,OAAKC,EAAA,CAAC,yBAAuB,EAAA,OAAUV,EAAA,OAAK,CAAA;AAAA,QAAA;UAC/BA,EAAA,cAAhBW,EAAyDC,EAAAC,CAAA,GAAA;AAAA;YAAlC,MAAK;AAAA,YAAW,kBAAQb,EAAA,OAAK;AAAA,UAAA,gCACpDW,EAAgIC,EAAAC,CAAA,GAAA;AAAA;YAA9G,MAAMb,EAAA,KAAK,iBAAc,qBAAwBA,EAAA,KAAK,SAAI,WAAA,kBAAA;AAAA,UAAA;;QAEnEA,EAAA,YAAXc,EAAA,GAAAN,EAAuD,OAAvDO,CAAuD;QACvDC,EAA6BJ,EAAAC,CAAA,GAAA,EAAnB,MAAK,aAAW;AAAA,QAC1BJ,EAWM,OAXNQ,GAWM;AAAA,UAVJR,EAEM,OAAA;AAAA,YAFD,OAAM;AAAA,YAA0B,OAAOT,EAAA,KAAK;AAAA,UAAA,GAC5CkB,EAAAlB,EAAA,KAAK,KAAK,GAAA,GAAAmB,CAAA;AAAA,UAGPnB,EAAA,KAAK,sBADbQ,EAMM,OAAA;AAAA;YAJJ,OAAM;AAAA,YACL,OAAOH,EAAA;AAAA,UAAA,KAELA,EAAA,KAAe,GAAA,GAAAe,CAAA;;QAGtBX,EAIE,OAAA;AAAA,UAHA,OAAM;AAAA,UACL,SAAOF;AAAA,UACR,WAAQK,EAAAS,CAAA;AAAA,QAAA;;;;;"}
|
|
@@ -4,15 +4,24 @@ type __VLS_Props = {
|
|
|
4
4
|
error: boolean;
|
|
5
5
|
};
|
|
6
6
|
type __VLS_PublicProps = {
|
|
7
|
-
'filter':
|
|
7
|
+
'filter': number[] | {
|
|
8
|
+
min: number | undefined;
|
|
9
|
+
max: number | undefined;
|
|
10
|
+
};
|
|
8
11
|
} & __VLS_Props;
|
|
9
12
|
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
10
|
-
"update:filter": (value:
|
|
13
|
+
"update:filter": (value: number[] | {
|
|
14
|
+
min: number | undefined;
|
|
15
|
+
max: number | undefined;
|
|
16
|
+
}) => any;
|
|
11
17
|
} & {
|
|
12
18
|
"close-chip": (id: string) => any;
|
|
13
19
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
14
20
|
"onClose-chip"?: ((id: string) => any) | undefined;
|
|
15
|
-
"onUpdate:filter"?: ((value:
|
|
21
|
+
"onUpdate:filter"?: ((value: number[] | {
|
|
22
|
+
min: number | undefined;
|
|
23
|
+
max: number | undefined;
|
|
24
|
+
}) => any) | undefined;
|
|
16
25
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
17
26
|
chipRoot: HTMLDivElement;
|
|
18
27
|
}, HTMLDivElement>;
|
|
@@ -41,26 +41,26 @@ const k = {
|
|
|
41
41
|
e("div", E, V(o.info.title), 1)
|
|
42
42
|
], 8, w),
|
|
43
43
|
e("div", {
|
|
44
|
-
innerHTML: n(C),
|
|
45
44
|
class: "dnd-double-chip__icon-close",
|
|
46
|
-
onClick: t[0] || (t[0] = (i) => s.$emit("close-chip", p.info.id))
|
|
45
|
+
onClick: t[0] || (t[0] = (i) => s.$emit("close-chip", p.info.id)),
|
|
46
|
+
innerHTML: n(C)
|
|
47
47
|
}, null, 8, I)
|
|
48
48
|
]),
|
|
49
49
|
e("div", y, [
|
|
50
50
|
e("div", D, [
|
|
51
51
|
r(n(m), {
|
|
52
|
-
label: "Min",
|
|
53
52
|
modelValue: l.min,
|
|
54
53
|
"onUpdate:modelValue": t[1] || (t[1] = (i) => l.min = i),
|
|
54
|
+
label: "Min",
|
|
55
55
|
updateOnEnterOrClickOutside: !0,
|
|
56
56
|
useIncrementButtons: !1
|
|
57
57
|
}, null, 8, ["modelValue"])
|
|
58
58
|
]),
|
|
59
59
|
e("div", N, [
|
|
60
60
|
r(n(m), {
|
|
61
|
-
label: "Max",
|
|
62
61
|
modelValue: l.max,
|
|
63
62
|
"onUpdate:modelValue": t[2] || (t[2] = (i) => l.max = i),
|
|
63
|
+
label: "Max",
|
|
64
64
|
updateOnEnterOrClickOutside: !0,
|
|
65
65
|
useIncrementButtons: !1
|
|
66
66
|
}, null, 8, ["modelValue"])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDRangeChip.vue.js","sources":["../../../src/components/DragAndDrop/DnDRangeChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ChipInfo } from './types.ts';\nimport CloseIcon from '../../assets/drag-and-drop/img/chip-close.svg?raw';\nimport { reactive, watch } from 'vue';\nimport { PlIcon16, PlNumberField } from '@platforma-sdk/ui-vue';\n\nconst props = defineProps<{\n info: ChipInfo;\n error: boolean;\n}>();\n\nconst
|
|
1
|
+
{"version":3,"file":"DnDRangeChip.vue.js","sources":["../../../src/components/DragAndDrop/DnDRangeChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ChipInfo } from './types.ts';\nimport CloseIcon from '../../assets/drag-and-drop/img/chip-close.svg?raw';\nimport { reactive, watch } from 'vue';\nimport { PlIcon16, PlNumberField } from '@platforma-sdk/ui-vue';\n\nconst props = defineProps<{\n info: ChipInfo;\n error: boolean;\n}>();\n\nconst _emit = defineEmits<{\n (e: 'close-chip', id: ChipInfo['id']): void;\n}>();\n\nconst filterModel = defineModel<number[] | { min: number | undefined; max: number | undefined }>('filter', { required: true });\n\nconst range = reactive({\n min: (filterModel.value as number[])?.[0] as number | undefined,\n max: (filterModel.value as number[])?.[1] as number | undefined,\n});\n\nwatch(() => range, (rangeValue) => {\n filterModel.value = rangeValue;\n}, { deep: true },\n);\n\n</script>\n\n<template>\n <div ref=\"chipRoot\" class=\"dnd-double-chip__group\">\n <div :class=\"{ error }\" class=\"dnd-double-chip\">\n <div class=\"dnd-double-chip__top\">\n <div class=\"dnd-double-chip__icon\">\n <PlIcon16 name=\"cell-type-num\" />\n </div>\n <div class=\"dnd-double-chip__title-wrapper\" :title=\"info.title\">\n <div class=\"dnd-double-chip__title\">\n {{ info.title }}\n </div>\n </div>\n <div\n class=\"dnd-double-chip__icon-close\"\n @click=\"$emit('close-chip', props.info.id)\"\n v-html=\"CloseIcon\"\n />\n </div>\n <div class=\"dnd-double-chip__bottom-range\">\n <div class=\"dnd-double-chip__bottom-range-row\">\n <PlNumberField\n v-model=\"range.min\"\n label=\"Min\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n />\n </div>\n <div class=\"dnd-double-chip__bottom-range-row\">\n <PlNumberField\n v-model=\"range.max\"\n label=\"Max\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","filterModel","_useModel","range","reactive","_a","_b","watch","rangeValue","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeClass","_hoisted_2","_hoisted_3","_createVNode","_unref","PlIcon16","_hoisted_5","_toDisplayString","$emit","CloseIcon","_hoisted_7","_hoisted_8","PlNumberField","_cache","$event","_hoisted_9"],"mappings":";;;;;;;;;;;;;;;;;;AAMA,UAAMA,IAAQC,GASRC,IAAcC,EAA4EF,GAAC,QAA4B,GAEvHG,IAAQC,EAAS;AAAA,MACrB,MAAMC,IAAAJ,EAAY,UAAZ,gBAAAI,EAAiC;AAAA,MACvC,MAAMC,IAAAL,EAAY,UAAZ,gBAAAK,EAAiC;AAAA,IAAC,CACzC;AAED,WAAAC;AAAA,MAAM,MAAMJ;AAAA,MAAO,CAACK,MAAe;AACjC,QAAAP,EAAY,QAAQO;AAAA,MACtB;AAAA,MAAG,EAAE,MAAM,GAAA;AAAA,IAAK,cAMdC,EAAA,GAAAC,EAoCM,OApCNC,GAoCM;AAAA,MAnCJC,EAkCM,OAAA;AAAA,QAlCA,OAAKC,EAAA,CAAA,EAAA,OAAIb,EAAA,MAAA,GAAe,iBAAiB,CAAA;AAAA,MAAA;QAC7CY,EAcM,OAdNE,GAcM;AAAA,UAbJF,EAEM,OAFNG,GAEM;AAAA,YADJC,EAAiCC,EAAAC,CAAA,GAAA,EAAvB,MAAK,iBAAe;AAAA,UAAA;UAEhCN,EAIM,OAAA;AAAA,YAJD,OAAM;AAAA,YAAkC,OAAOZ,EAAA,KAAK;AAAA,UAAA;YACvDY,EAEM,OAFNO,GAEMC,EADDpB,EAAA,KAAK,KAAK,GAAA,CAAA;AAAA,UAAA;UAGjBY,EAIE,OAAA;AAAA,YAHA,OAAM;AAAA,YACL,gCAAOS,EAAAA,MAAK,cAAetB,EAAM,KAAK,EAAE;AAAA,YACzC,WAAQkB,EAAAK,CAAA;AAAA,UAAA;;QAGZV,EAiBM,OAjBNW,GAiBM;AAAA,UAhBJX,EAOM,OAPNY,GAOM;AAAA,YANJR,EAKEC,EAAAQ,CAAA,GAAA;AAAA,cAJS,YAAAtB,EAAM;AAAA,cAAN,uBAAAuB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAxB,EAAM,MAAGwB;AAAA,cAClB,OAAM;AAAA,cACL,6BAA6B;AAAA,cAC7B,qBAAqB;AAAA,YAAA;;UAG1Bf,EAOM,OAPNgB,GAOM;AAAA,YANJZ,EAKEC,EAAAQ,CAAA,GAAA;AAAA,cAJS,YAAAtB,EAAM;AAAA,cAAN,uBAAAuB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAxB,EAAM,MAAGwB;AAAA,cAClB,OAAM;AAAA,cACL,6BAA6B;AAAA,cAC7B,qBAAqB;AAAA,YAAA;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as E, ref as
|
|
1
|
+
import { defineComponent as E, ref as m, reactive as v, computed as C, watch as L, createElementBlock as i, openBlock as o, normalizeClass as M, createElementVNode as f, createCommentVNode as h, createTextVNode as N, toDisplayString as P, Fragment as B, renderList as z, createBlock as g, unref as D } from "vue";
|
|
2
2
|
import { useSortable as A } from "@platforma-sdk/ui-vue";
|
|
3
3
|
import H from "./DnDBasketChip.vue.js";
|
|
4
4
|
import K from "./DndDoubleChip.vue.js";
|
|
@@ -32,37 +32,37 @@ const Z = { class: "dnd-basket__title" }, j = {
|
|
|
32
32
|
},
|
|
33
33
|
emits: ["drop-item", "remove-item", "select-filter-value", "select-filter-range", "reorder"],
|
|
34
34
|
setup(e, { emit: $ }) {
|
|
35
|
-
const n = e,
|
|
36
|
-
let
|
|
37
|
-
const
|
|
38
|
-
|
|
35
|
+
const n = e, b = $, d = m(), y = m(), k = m(0);
|
|
36
|
+
let u = v(n.selectedFilters ?? {});
|
|
37
|
+
const F = v(n.selectedRanges ?? {}), c = C(() => !(n.disabled || !n.multiple && n.droppedIds.length > 0)), w = C(() => n.disabled ? "1 true" : !c.value && n.draggedId ? "2 true" : !1);
|
|
38
|
+
L(
|
|
39
39
|
() => n.selectedFilters,
|
|
40
40
|
() => {
|
|
41
|
-
|
|
41
|
+
u = v(n.selectedFilters ?? {});
|
|
42
42
|
}
|
|
43
|
-
), n.sortable && (
|
|
43
|
+
), n.sortable && (L(
|
|
44
44
|
() => n.droppedIds,
|
|
45
45
|
() => {
|
|
46
|
-
|
|
46
|
+
k.value++;
|
|
47
47
|
},
|
|
48
48
|
{ deep: !0 }
|
|
49
|
-
), A(
|
|
49
|
+
), A(y, {
|
|
50
50
|
handle: ".dnd-basket-chip__handler",
|
|
51
51
|
onChange(r) {
|
|
52
|
-
|
|
52
|
+
b(
|
|
53
53
|
"reorder",
|
|
54
54
|
r.map((s) => n.droppedIds[s])
|
|
55
55
|
);
|
|
56
56
|
}
|
|
57
57
|
}));
|
|
58
58
|
function R() {
|
|
59
|
-
d.value && !n.disabled &&
|
|
59
|
+
d.value && !n.disabled && c.value && d.value.classList.add("active");
|
|
60
60
|
}
|
|
61
|
-
function
|
|
61
|
+
function p() {
|
|
62
62
|
d.value && d.value.classList.remove("active");
|
|
63
63
|
}
|
|
64
64
|
function V(r) {
|
|
65
|
-
r.stopPropagation(),
|
|
65
|
+
r.stopPropagation(), c.value && (n.draggedId && b("drop-item", { draggedId: n.draggedId, id: n.id }), p());
|
|
66
66
|
}
|
|
67
67
|
function O(r) {
|
|
68
68
|
r.preventDefault();
|
|
@@ -83,7 +83,7 @@ const Z = { class: "dnd-basket__title" }, j = {
|
|
|
83
83
|
onDrop: V,
|
|
84
84
|
onDragenter: O,
|
|
85
85
|
onDragover: S,
|
|
86
|
-
onDragleave:
|
|
86
|
+
onDragleave: p
|
|
87
87
|
}, [
|
|
88
88
|
f("div", Z, [
|
|
89
89
|
e.required ? (o(), i("span", j, [...s[0] || (s[0] = [
|
|
@@ -99,27 +99,27 @@ const Z = { class: "dnd-basket__title" }, j = {
|
|
|
99
99
|
fill: "#F1222F"
|
|
100
100
|
})
|
|
101
101
|
], -1)
|
|
102
|
-
])])) :
|
|
102
|
+
])])) : h("", !0),
|
|
103
103
|
N(" " + P(e.title), 1)
|
|
104
104
|
]),
|
|
105
105
|
f("div", G, [
|
|
106
106
|
(o(), i("div", {
|
|
107
107
|
ref_key: "listRef",
|
|
108
|
-
ref:
|
|
109
|
-
key:
|
|
108
|
+
ref: y,
|
|
109
|
+
key: k.value,
|
|
110
110
|
class: "dnd-basket__chip-wrapper"
|
|
111
111
|
}, [
|
|
112
|
-
(o(!0), i(
|
|
113
|
-
!e.isFilter || e.info[t].isSubsetFilter ? (o(),
|
|
112
|
+
(o(!0), i(B, null, z(e.droppedIds, (t, a) => (o(), i(B, null, [
|
|
113
|
+
!e.isFilter || e.info[t].isSubsetFilter ? (o(), g(H, {
|
|
114
114
|
key: t + "_subset",
|
|
115
115
|
sortable: e.sortable,
|
|
116
116
|
error: e.consistency[t] === !1,
|
|
117
117
|
info: e.info[t],
|
|
118
118
|
onCloseChip: (l) => r.$emit("remove-item", { chipId: t, basketId: e.id })
|
|
119
|
-
}, null, 8, ["sortable", "error", "info", "onCloseChip"])) : e.info[t].isDiscreteFilter ? (o(),
|
|
119
|
+
}, null, 8, ["sortable", "error", "info", "onCloseChip"])) : e.info[t].isDiscreteFilter ? (o(), g(K, {
|
|
120
120
|
key: t + "_double",
|
|
121
|
-
filter: u
|
|
122
|
-
"onUpdate:filter": [(l) => u
|
|
121
|
+
filter: D(u)[t],
|
|
122
|
+
"onUpdate:filter": [(l) => D(u)[t] = l, (l) => r.$emit("select-filter-value", { v: l, idx: a })],
|
|
123
123
|
info: e.info[t],
|
|
124
124
|
error: e.consistency[t] === !1,
|
|
125
125
|
sortable: e.sortable,
|
|
@@ -127,17 +127,17 @@ const Z = { class: "dnd-basket__title" }, j = {
|
|
|
127
127
|
"search-model": q,
|
|
128
128
|
"load-options": e.loadOptionsFn,
|
|
129
129
|
onCloseChip: (l) => r.$emit("remove-item", { chipId: t, basketId: e.id })
|
|
130
|
-
}, null, 8, ["filter", "onUpdate:filter", "info", "error", "sortable", "load-options", "onCloseChip"])) : (o(),
|
|
130
|
+
}, null, 8, ["filter", "onUpdate:filter", "info", "error", "sortable", "load-options", "onCloseChip"])) : (o(), g(T, {
|
|
131
131
|
key: t + "_range",
|
|
132
|
-
filter:
|
|
133
|
-
"onUpdate:filter": [(l) =>
|
|
132
|
+
filter: F[t],
|
|
133
|
+
"onUpdate:filter": [(l) => F[t] = l, (l) => r.$emit("select-filter-range", { v: l, idx: a })],
|
|
134
134
|
info: e.info[t],
|
|
135
135
|
error: e.consistency[t] === !1,
|
|
136
136
|
onCloseChip: (l) => r.$emit("remove-item", { chipId: t, basketId: e.id })
|
|
137
137
|
}, null, 8, ["filter", "onUpdate:filter", "info", "error", "onCloseChip"]))
|
|
138
138
|
], 64))), 256))
|
|
139
139
|
])),
|
|
140
|
-
!e.droppedIds.length || e.multiple ? (o(), i("div", J, " Drop dimensions here ")) :
|
|
140
|
+
!e.droppedIds.length || e.multiple ? (o(), i("div", J, " Drop dimensions here ")) : h("", !0)
|
|
141
141
|
])
|
|
142
142
|
], 34));
|
|
143
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DndBasket.vue.js","sources":["../../../src/components/DragAndDrop/DndBasket.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useSortable } from '@platforma-sdk/ui-vue';\nimport { computed, reactive, ref, watch } from 'vue';\nimport DndBasketChip from './DnDBasketChip.vue';\nimport DndDoubleChip from './DndDoubleChip.vue';\nimport DnDRangeChip from './DnDRangeChip.vue';\nimport {\n DndBasketEmits,\n DndBasketProps,\n SelectFilterValueEvent
|
|
1
|
+
{"version":3,"file":"DndBasket.vue.js","sources":["../../../src/components/DragAndDrop/DndBasket.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useSortable } from '@platforma-sdk/ui-vue';\nimport { computed, reactive, ref, watch } from 'vue';\nimport DndBasketChip from './DnDBasketChip.vue';\nimport DndDoubleChip from './DndDoubleChip.vue';\nimport DnDRangeChip from './DnDRangeChip.vue';\nimport type {\n DndBasketEmits,\n DndBasketProps,\n SelectFilterValueEvent,\n} from './types';\n\nconst props = defineProps<DndBasketProps>();\n\nconst emit = defineEmits<DndBasketEmits>();\n\nconst basketRoot = ref<HTMLElement>();\nconst listRef = ref<HTMLElement>();\nconst listKey = ref(0);\n\nlet selectedFilterValues = reactive(props.selectedFilters ?? {});\nconst selectedFilterRanges = reactive(props.selectedRanges ?? {});\n\nconst canPutOneMore = computed(() => {\n if (props.disabled) {\n return false;\n }\n if (!props.multiple && props.droppedIds.length > 0) {\n return false;\n }\n\n return true;\n});\n\nconst isBasketDisable = computed(() => {\n if (props.disabled) {\n return '1 true';\n }\n if (!canPutOneMore.value && props.draggedId) {\n return '2 true';\n }\n return false;\n});\n\nwatch(\n () => props.selectedFilters,\n () => {\n selectedFilterValues = reactive(props.selectedFilters ?? {});\n },\n);\n\nif (props.sortable) {\n watch(\n () => props.droppedIds,\n () => {\n listKey.value++;\n },\n { deep: true },\n );\n useSortable(listRef, {\n handle: '.dnd-basket-chip__handler',\n onChange(indices) {\n emit(\n 'reorder',\n indices.map((i) => props.droppedIds[i]),\n );\n },\n });\n}\n\nfunction addActiveClass() {\n if (basketRoot.value && !props.disabled && canPutOneMore.value) {\n basketRoot.value.classList.add('active');\n }\n}\n\nfunction removeActiveClass() {\n if (basketRoot.value) {\n basketRoot.value.classList.remove('active');\n }\n}\n\nfunction handleDrop(event: DragEvent) {\n event.stopPropagation();\n if (canPutOneMore.value) {\n if (props.draggedId) {\n emit('drop-item', { draggedId: props.draggedId, id: props.id });\n }\n removeActiveClass();\n }\n}\n\nfunction dragEnter(event: DragEvent) {\n event.preventDefault();\n}\n\nfunction dragOver(event: DragEvent) {\n event.preventDefault();\n addActiveClass();\n}\nconst filterOptions = async (sourceId: string, searchStr: string) => {\n return props.searchFn(sourceId, searchStr);\n};\nconst searchModel = async (sourceId: string, selectedValues: string[]) => {\n const result = await Promise.all(selectedValues.map((v) => props.searchSelectedValueFn(sourceId, v)));\n return result.map((r) => r[0]);\n};\n\n</script>\n<template>\n <div\n ref=\"basketRoot\"\n :class=\"{\n disabled: isBasketDisable,\n empty: droppedIds.length === 0,\n readonly\n }\"\n class=\"dnd-basket\"\n dropzone=\"true\"\n @drop=\"handleDrop\"\n @dragenter=\"dragEnter\"\n @dragover=\"dragOver\"\n @dragleave=\"removeActiveClass\"\n >\n <div class=\"dnd-basket__title\">\n <span v-if=\"required\" class=\"dnd-basket__required\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"6\"\n height=\"16\"\n viewBox=\"0 0 6 16\"\n fill=\"none\"\n >\n <path\n d=\"M2.01685 6.8L3 5.34159L3.97612 6.8L4.89607 6.12743L3.81461 4.7469L5.5 4.25133L5.14888 3.16106L3.50562 3.77699L3.56882 2H2.43118L2.49438 3.77699L0.851124 3.16106L0.5 4.25133L2.18539 4.7469L1.09691 6.12743L2.01685 6.8Z\"\n fill=\"#F1222F\"\n />\n </svg>\n </span>\n {{ title }}\n </div>\n <div class=\"dnd-basket__drop-container\">\n <div ref=\"listRef\" :key=\"listKey\" class=\"dnd-basket__chip-wrapper\">\n <template v-for=\"(chipId, idx) in droppedIds\">\n <DndBasketChip\n v-if=\"!isFilter || info[chipId].isSubsetFilter\"\n :key=\"chipId + '_subset'\"\n :sortable=\"sortable\"\n :error=\"consistency[chipId] === false\"\n :info=\"info[chipId]\"\n @close-chip=\"$emit('remove-item', { chipId, basketId: id })\"\n />\n <DndDoubleChip\n v-else-if=\"info[chipId].isDiscreteFilter\"\n :key=\"chipId + '_double'\"\n v-model:filter=\"selectedFilterValues[chipId]\"\n :info=\"info[chipId]\"\n :error=\"consistency[chipId] === false\"\n :sortable=\"sortable\"\n :search-options=\"filterOptions\"\n :search-model=\"searchModel\"\n :load-options=\"loadOptionsFn\"\n @close-chip=\"$emit('remove-item', { chipId, basketId: id })\"\n @update:filter=\"(v: SelectFilterValueEvent['v']) => $emit('select-filter-value', { v, idx })\"\n />\n <DnDRangeChip\n v-else\n :key=\"chipId + '_range'\"\n v-model:filter=\"selectedFilterRanges[chipId]\"\n :info=\"info[chipId]\"\n :error=\"consistency[chipId] === false\"\n @close-chip=\"$emit('remove-item', { chipId, basketId: id })\"\n @update:filter=\"(v:SelectFilterValueEvent['v']) => $emit('select-filter-range', { v, idx })\"\n />\n </template>\n </div>\n <div v-if=\"!droppedIds.length || multiple\" class=\"dnd-basket__placeholder\">\n Drop dimensions here\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","basketRoot","ref","listRef","listKey","selectedFilterValues","reactive","selectedFilterRanges","canPutOneMore","computed","isBasketDisable","watch","useSortable","indices","i","addActiveClass","removeActiveClass","handleDrop","event","dragEnter","dragOver","filterOptions","sourceId","searchStr","searchModel","selectedValues","v","r","_createElementBlock","_normalizeClass","_createElementVNode","_hoisted_1","_openBlock","_hoisted_2","_cache","_createTextVNode","_hoisted_3","_Fragment","_renderList","chipId","idx","_createBlock","DndBasketChip","$event","$emit","DndDoubleChip","_unref","DnDRangeChip","_hoisted_4"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DndChip.vue.js","sources":["../../../src/components/DragAndDrop/DndChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport { ChipInfo } from './types.ts';\nimport { PlIcon16 } from '@platforma-sdk/ui-vue';\n\nconst props = defineProps<{\n info: ChipInfo;\n}>();\n\nconst emit = defineEmits<{\n (e: 'dragstart', item: ChipInfo['id']): void;\n (e: 'dragend', item: ChipInfo['id']): void;\n}>();\n\nconst chipRoot = ref<HTMLElement>();\n\nconst dimensionsTitle = computed(() =>\n props.info.uniqueValues.join('/'),\n);\nfunction dragStart(event: DragEvent) {\n event.dataTransfer?.clearData();\n event.dataTransfer?.setData('text/plain', props.info.id);\n // console.log('dragStart', props.info);\n emit('dragstart', props.info.id);\n (event.target as HTMLElement).style.opacity = '0.4';\n if (chipRoot.value) {\n chipRoot.value.classList.toggle('drag-active');\n }\n}\n\nfunction dragEnd(event: DragEvent) {\n emit('dragend', props.info.id);\n (event.target as HTMLElement).style.opacity = '1';\n if (chipRoot.value) {\n chipRoot.value.classList.toggle('drag-active');\n }\n}\n</script>\n<template>\n <div\n ref=\"chipRoot\"\n draggable=\"true\"\n class=\"dnd-chip\"\n @dragstart=\"dragStart\"\n @dragend=\"dragEnd\"\n >\n <div class=\"dnd-chip__icon\" >\n <PlIcon16 :name=\"info.isSubsetFilter ? 'cell-type-subset' : info.type === 'String' ? 'cell-type-txt' : 'cell-type-num'\"/>\n </div>\n <div class=\"dnd-chip__title-wrapper\">\n <div class=\"dnd-chip__title\" :title=\"info.title\">{{ info.title }}</div>\n <div v-if=\"info.nonHomogenous\" class=\"dnd-chip__sub-title\" :title=\"dimensionsTitle\">\n {{ dimensionsTitle }}\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","chipRoot","ref","dimensionsTitle","computed","dragStart","event","_a","_b","dragEnd","_createElementBlock","_createElementVNode","_hoisted_1","_createVNode","_unref","PlIcon16","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4"],"mappings":";;;;;;;;;AAKA,UAAMA,IAAQC,GAIRC,IAAOC,GAKPC,IAAWC,EAAA,GAEXC,IAAkBC;AAAA,MAAS,MAC/BP,EAAM,KAAK,aAAa,KAAK,GAAG;AAAA,IAAA;AAElC,aAASQ,EAAUC,GAAkB;;AACnC,OAAAC,IAAAD,EAAM,iBAAN,QAAAC,EAAoB,cACpBC,IAAAF,EAAM,iBAAN,QAAAE,EAAoB,QAAQ,cAAcX,EAAM,KAAK,KAErDE,EAAK,aAAaF,EAAM,KAAK,EAAE,GAC9BS,EAAM,OAAuB,MAAM,UAAU,OAC1CL,EAAS,SACXA,EAAS,MAAM,UAAU,OAAO,aAAa;AAAA,IAEjD;AAEA,aAASQ,EAAQH,GAAkB;AACjC,MAAAP,EAAK,WAAWF,EAAM,KAAK,EAAE,GAC5BS,EAAM,OAAuB,MAAM,UAAU,KAC1CL,EAAS,SACXA,EAAS,MAAM,UAAU,OAAO,aAAa;AAAA,IAEjD;2BAGES,EAgBM,OAAA;AAAA,eAfA;AAAA,MAAJ,KAAIT;AAAA,MACJ,WAAU;AAAA,MACV,OAAM;AAAA,MACL,aAAWI;AAAA,MACX,WAASI;AAAA,IAAA;MAEVE,EAEM,OAFNC,GAEM;AAAA,QADJC,EAAyHC,EAAAC,CAAA,GAAA;AAAA,UAA9G,MAAMjB,EAAA,KAAK,iBAAc,qBAAwBA,EAAA,KAAK,SAAI,WAAA,kBAAA;AAAA,QAAA;;MAEvEa,EAKM,OALNK,GAKM;AAAA,QAJJL,EAAuE,OAAA;AAAA,UAAlE,OAAM;AAAA,UAAmB,OAAOb,EAAA,KAAK;AAAA,QAAA,GAAUmB,EAAAnB,EAAA,KAAK,KAAK,GAAA,GAAAoB,CAAA;AAAA,QACnDpB,EAAA,KAAK,sBAAhBY,EAEM,OAAA;AAAA;UAFyB,OAAM;AAAA,UAAuB,OAAOP,EAAA;AAAA,QAAA,KAC9DA,EAAA,KAAe,GAAA,GAAAgB,CAAA;;;;;"}
|
|
1
|
+
{"version":3,"file":"DndChip.vue.js","sources":["../../../src/components/DragAndDrop/DndChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { ChipInfo } from './types.ts';\nimport { PlIcon16 } from '@platforma-sdk/ui-vue';\n\nconst props = defineProps<{\n info: ChipInfo;\n}>();\n\nconst emit = defineEmits<{\n (e: 'dragstart', item: ChipInfo['id']): void;\n (e: 'dragend', item: ChipInfo['id']): void;\n}>();\n\nconst chipRoot = ref<HTMLElement>();\n\nconst dimensionsTitle = computed(() =>\n props.info.uniqueValues.join('/'),\n);\nfunction dragStart(event: DragEvent) {\n event.dataTransfer?.clearData();\n event.dataTransfer?.setData('text/plain', props.info.id);\n // console.log('dragStart', props.info);\n emit('dragstart', props.info.id);\n (event.target as HTMLElement).style.opacity = '0.4';\n if (chipRoot.value) {\n chipRoot.value.classList.toggle('drag-active');\n }\n}\n\nfunction dragEnd(event: DragEvent) {\n emit('dragend', props.info.id);\n (event.target as HTMLElement).style.opacity = '1';\n if (chipRoot.value) {\n chipRoot.value.classList.toggle('drag-active');\n }\n}\n</script>\n<template>\n <div\n ref=\"chipRoot\"\n draggable=\"true\"\n class=\"dnd-chip\"\n @dragstart=\"dragStart\"\n @dragend=\"dragEnd\"\n >\n <div class=\"dnd-chip__icon\" >\n <PlIcon16 :name=\"info.isSubsetFilter ? 'cell-type-subset' : info.type === 'String' ? 'cell-type-txt' : 'cell-type-num'\"/>\n </div>\n <div class=\"dnd-chip__title-wrapper\">\n <div class=\"dnd-chip__title\" :title=\"info.title\">{{ info.title }}</div>\n <div v-if=\"info.nonHomogenous\" class=\"dnd-chip__sub-title\" :title=\"dimensionsTitle\">\n {{ dimensionsTitle }}\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","chipRoot","ref","dimensionsTitle","computed","dragStart","event","_a","_b","dragEnd","_createElementBlock","_createElementVNode","_hoisted_1","_createVNode","_unref","PlIcon16","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4"],"mappings":";;;;;;;;;AAKA,UAAMA,IAAQC,GAIRC,IAAOC,GAKPC,IAAWC,EAAA,GAEXC,IAAkBC;AAAA,MAAS,MAC/BP,EAAM,KAAK,aAAa,KAAK,GAAG;AAAA,IAAA;AAElC,aAASQ,EAAUC,GAAkB;;AACnC,OAAAC,IAAAD,EAAM,iBAAN,QAAAC,EAAoB,cACpBC,IAAAF,EAAM,iBAAN,QAAAE,EAAoB,QAAQ,cAAcX,EAAM,KAAK,KAErDE,EAAK,aAAaF,EAAM,KAAK,EAAE,GAC9BS,EAAM,OAAuB,MAAM,UAAU,OAC1CL,EAAS,SACXA,EAAS,MAAM,UAAU,OAAO,aAAa;AAAA,IAEjD;AAEA,aAASQ,EAAQH,GAAkB;AACjC,MAAAP,EAAK,WAAWF,EAAM,KAAK,EAAE,GAC5BS,EAAM,OAAuB,MAAM,UAAU,KAC1CL,EAAS,SACXA,EAAS,MAAM,UAAU,OAAO,aAAa;AAAA,IAEjD;2BAGES,EAgBM,OAAA;AAAA,eAfA;AAAA,MAAJ,KAAIT;AAAA,MACJ,WAAU;AAAA,MACV,OAAM;AAAA,MACL,aAAWI;AAAA,MACX,WAASI;AAAA,IAAA;MAEVE,EAEM,OAFNC,GAEM;AAAA,QADJC,EAAyHC,EAAAC,CAAA,GAAA;AAAA,UAA9G,MAAMjB,EAAA,KAAK,iBAAc,qBAAwBA,EAAA,KAAK,SAAI,WAAA,kBAAA;AAAA,QAAA;;MAEvEa,EAKM,OALNK,GAKM;AAAA,QAJJL,EAAuE,OAAA;AAAA,UAAlE,OAAM;AAAA,UAAmB,OAAOb,EAAA,KAAK;AAAA,QAAA,GAAUmB,EAAAnB,EAAA,KAAK,KAAK,GAAA,GAAAoB,CAAA;AAAA,QACnDpB,EAAA,KAAK,sBAAhBY,EAEM,OAAA;AAAA;UAFyB,OAAM;AAAA,UAAuB,OAAOP,EAAA;AAAA,QAAA,KAC9DA,EAAA,KAAe,GAAA,GAAAgB,CAAA;;;;;"}
|
|
@@ -59,9 +59,9 @@ const P = {
|
|
|
59
59
|
i("div", H, C(e.info.title), 1)
|
|
60
60
|
], 8, E),
|
|
61
61
|
i("div", {
|
|
62
|
-
innerHTML: r(B),
|
|
63
62
|
class: "dnd-double-chip__icon-close",
|
|
64
|
-
onClick: t[0] || (t[0] = (l) => n.$emit("close-chip", o.info.id))
|
|
63
|
+
onClick: t[0] || (t[0] = (l) => n.$emit("close-chip", o.info.id)),
|
|
64
|
+
innerHTML: r(B)
|
|
65
65
|
}, null, 8, I)
|
|
66
66
|
]),
|
|
67
67
|
i("div", L, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DndDoubleChip.vue.js","sources":["../../../src/components/DragAndDrop/DndDoubleChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport type { ListOption, ListOptionBase } from '@platforma-sdk/ui-vue';\nimport { PlAutocompleteMulti, PlDropdownMulti, PlIcon16 } from '@platforma-sdk/ui-vue';\nimport { ChipInfo } from './types';\
|
|
1
|
+
{"version":3,"file":"DndDoubleChip.vue.js","sources":["../../../src/components/DragAndDrop/DndDoubleChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport type { ListOption, ListOptionBase } from '@platforma-sdk/ui-vue';\nimport { PlAutocompleteMulti, PlDropdownMulti, PlIcon16 } from '@platforma-sdk/ui-vue';\nimport type { ChipInfo } from './types';\nimport CloseIcon from '../../assets/drag-and-drop/img/chip-close.svg?raw';\nimport { useStore } from '../../store.ts';\n\nconst props = defineProps<{\n info: ChipInfo;\n error: boolean;\n searchModel: (sourceId: string, selectedValues: string[]) => Promise<ListOptionBase<string>[]>;\n searchOptions: (sourceId: string, searchStr: string) => Promise<ListOptionBase<string>[]>;\n loadOptions: (sourceId: string) => Promise<{ values: ListOption<string>[]; overflow: boolean }>;\n sortable?: boolean;\n}>();\n\nconst _emit = defineEmits<{\n (e: 'close-chip', id: ChipInfo['id']): void;\n (e: 'update:filter', id: unknown): void;\n}>();\n\nconst store = useStore();\n\nconst filterModel = defineModel<string[]>('filter', { required: true });\n\nconst preloadedOptions = ref<ListOption[] | undefined>(store.value.filterSuggestionsData.value[props.info.id]?.values);\nconst optionsOverflow = ref(store.value.filterSuggestionsData.value[props.info.id]?.overflow ?? false);\n\nwatch(() => store.value.loading.inputGuide, async (loading) => {\n if (loading) {\n return;\n }\n const { values, overflow } = await props.loadOptions(props.info.id);\n preloadedOptions.value = values;\n optionsOverflow.value = overflow;\n}, { immediate: true });\n\nfunction searchOptionsFn(str: string): Promise<ListOptionBase<string>[]> {\n if (str === '') {\n return Promise.resolve((preloadedOptions.value ?? []) as ListOptionBase<string>[]);\n }\n return props.searchOptions(props.info.id, str);\n}\n\n</script>\n\n<template>\n <div ref=\"chipRoot\" class=\"dnd-double-chip__group\">\n <div :class=\"{ error, sortable }\" class=\"dnd-double-chip\">\n <div class=\"dnd-double-chip__top\">\n <div class=\"dnd-double-chip__icon\" :class=\"{error}\">\n <PlIcon16 v-if=\"error\" name=\"warning\"/>\n <PlIcon16 v-else :name=\"info.isSubsetFilter ? 'cell-type-subset' : info.type === 'String' ? 'cell-type-txt' : 'cell-type-num'\"/>\n </div>\n <div v-if=\"sortable\" class=\"dnd-basket-chip__handler\"/>\n <PlIcon16 name=\"drag-dots\" />\n <div class=\"dnd-double-chip__title-wrapper\" :title=\"info.title\">\n <div class=\"dnd-double-chip__title\">\n {{ info.title }}\n </div>\n </div>\n\n <div\n class=\"dnd-double-chip__icon-close\"\n @click=\"$emit('close-chip', props.info.id)\"\n v-html=\"CloseIcon\"\n />\n </div>\n <div class=\"dnd-double-chip__bottom\">\n <PlDropdownMulti v-if=\"!optionsOverflow\" v-model=\"filterModel\" :options=\"preloadedOptions\" />\n <PlAutocompleteMulti\n v-else\n v-model=\"filterModel\"\n :options-search=\"searchOptionsFn\"\n :model-search=\"(v) => searchModel(props.info.id, v as string[])\"\n />\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","store","useStore","filterModel","_useModel","preloadedOptions","ref","_a","optionsOverflow","_b","watch","loading","values","overflow","searchOptionsFn","str","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_normalizeClass","_hoisted_2","_createBlock","_unref","PlIcon16","_hoisted_3","_createVNode","_hoisted_5","_toDisplayString","$emit","CloseIcon","_hoisted_7","PlAutocompleteMulti","$event","v","PlDropdownMulti"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAMA,IAAQC,GAcRC,IAAQC,EAAA,GAERC,IAAcC,EAAqBJ,GAAC,QAA4B,GAEhEK,IAAmBC,GAA8BC,IAAAN,EAAM,MAAM,sBAAsB,MAAMF,EAAM,KAAK,EAAE,MAArD,gBAAAQ,EAAwD,MAAM,GAC/GC,IAAkBF,IAAIG,IAAAR,EAAM,MAAM,sBAAsB,MAAMF,EAAM,KAAK,EAAE,MAArD,gBAAAU,EAAwD,aAAY,EAAK;AAErG,IAAAC,EAAM,MAAMT,EAAM,MAAM,QAAQ,YAAY,OAAOU,MAAY;AAC7D,UAAIA;AACF;AAEF,YAAM,EAAE,QAAAC,GAAQ,UAAAC,MAAa,MAAMd,EAAM,YAAYA,EAAM,KAAK,EAAE;AAClE,MAAAM,EAAiB,QAAQO,GACzBJ,EAAgB,QAAQK;AAAA,IAC1B,GAAG,EAAE,WAAW,IAAM;AAEtB,aAASC,EAAgBC,GAAgD;AACvE,aAAIA,MAAQ,KACH,QAAQ,QAASV,EAAiB,SAAS,CAAA,CAA+B,IAE5EN,EAAM,cAAcA,EAAM,KAAK,IAAIgB,CAAG;AAAA,IAC/C;sBAKEC,EAAA,GAAAC,EA+BM,OA/BNC,GA+BM;AAAA,MA9BJC,EA6BM,OAAA;AAAA,QA7BA,OAAKC,EAAA,CAAA,EAAA,OAAIpB,EAAA,OAAK,UAAEA,EAAA,SAAA,GAAkB,iBAAiB,CAAA;AAAA,MAAA;QACvDmB,EAkBM,OAlBNE,GAkBM;AAAA,UAjBJF,EAGM,OAAA;AAAA,YAHD,OAAKC,EAAA,CAAC,yBAAuB,EAAA,OAAUpB,EAAA,OAAK,CAAA;AAAA,UAAA;YAC/BA,EAAA,cAAhBsB,EAAuCC,EAAAC,CAAA,GAAA;AAAA;cAAhB,MAAK;AAAA,YAAA,YAC5BF,EAAgIC,EAAAC,CAAA,GAAA;AAAA;cAA9G,MAAMxB,EAAA,KAAK,iBAAc,qBAAwBA,EAAA,KAAK,SAAI,WAAA,kBAAA;AAAA,YAAA;;UAEnEA,EAAA,YAAXgB,EAAA,GAAAC,EAAuD,OAAvDQ,CAAuD;UACvDC,EAA6BH,EAAAC,CAAA,GAAA,EAAnB,MAAK,aAAW;AAAA,UAC1BL,EAIM,OAAA;AAAA,YAJD,OAAM;AAAA,YAAkC,OAAOnB,EAAA,KAAK;AAAA,UAAA;YACvDmB,EAEM,OAFNQ,GAEMC,EADD5B,EAAA,KAAK,KAAK,GAAA,CAAA;AAAA,UAAA;UAIjBmB,EAIE,OAAA;AAAA,YAHA,OAAM;AAAA,YACL,gCAAOU,EAAAA,MAAK,cAAe9B,EAAM,KAAK,EAAE;AAAA,YACzC,WAAQwB,EAAAO,CAAA;AAAA,UAAA;;QAGZX,EAQM,OARNY,GAQM;AAAA,UAPoBvB,EAAA,cACxBc,EAKEC,EAAAS,CAAA,GAAA;AAAA;wBAHS7B,EAAA;AAAA,0DAAAA,EAAW,QAAA8B;AAAA,YACnB,kBAAgBnB;AAAA,YAChB,gBAAY,CAAGoB,MAAMlC,EAAA,YAAYD,EAAM,KAAK,IAAImC,CAAC;AAAA,UAAA,qDALpDZ,EAA6FC,EAAAY,CAAA,GAAA;AAAA;wBAA3ChC,EAAA;AAAA,0DAAAA,EAAW,QAAA8B;AAAA,YAAG,SAAS5B,EAAA;AAAA,UAAA;;;;;;"}
|
|
@@ -43,20 +43,20 @@ const N = { class: "lasso-controls-container" }, V = { class: "lasso-buttons-gro
|
|
|
43
43
|
r("div", V, [
|
|
44
44
|
o[0] || (o[0] = r("div", { class: "lasso-controls-border" }, null, -1)),
|
|
45
45
|
l(n(c), {
|
|
46
|
-
onClick: i,
|
|
47
46
|
class: h({
|
|
48
47
|
"lasso-button-selected": ((s = t.value) == null ? void 0 : s.mode) === "pen" || !t.value,
|
|
49
48
|
"lasso-button-not-selected": ((v = t.value) == null ? void 0 : v.mode) !== "pen" && t.value
|
|
50
49
|
}),
|
|
51
|
-
icon: "cursor-pointer"
|
|
50
|
+
icon: "cursor-pointer",
|
|
51
|
+
onClick: i
|
|
52
52
|
}, null, 8, ["class"]),
|
|
53
53
|
l(n(c), {
|
|
54
|
-
onClick: u,
|
|
55
54
|
class: h({
|
|
56
55
|
"lasso-button-selected": ((b = t.value) == null ? void 0 : b.mode) === "selection",
|
|
57
56
|
"lasso-button-not-selected": ((k = t.value) == null ? void 0 : k.mode) !== "selection"
|
|
58
57
|
}),
|
|
59
|
-
icon: "pen-tool"
|
|
58
|
+
icon: "pen-tool",
|
|
59
|
+
onClick: u
|
|
60
60
|
}, null, 8, ["class"]),
|
|
61
61
|
o[1] || (o[1] = r("div", { class: "lasso-controls-separator" }, null, -1)),
|
|
62
62
|
l(n(c), {
|