@milaboratories/graph-maker 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/assets/ui.css +1 -1
  2. package/dist/components/ChartTruncationWarningAlert.css +1 -0
  3. package/dist/components/ChartTruncationWarningAlert.vue.d.ts +7 -0
  4. package/dist/components/ChartTruncationWarningAlert.vue.d.ts.map +1 -0
  5. package/dist/components/ChartTruncationWarningAlert.vue.js +10 -0
  6. package/dist/components/ChartTruncationWarningAlert.vue.js.map +1 -0
  7. package/dist/components/ChartTruncationWarningAlert.vue2.js +54 -0
  8. package/dist/components/ChartTruncationWarningAlert.vue2.js.map +1 -0
  9. package/dist/components/ChartTruncationWarningAlert.vue3.js +8 -0
  10. package/dist/components/ChartTruncationWarningAlert.vue3.js.map +1 -0
  11. package/dist/components/DragAndDrop/DnDBasketChip.vue.d.ts.map +1 -1
  12. package/dist/components/DragAndDrop/DnDBasketChip.vue.js +34 -31
  13. package/dist/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
  14. package/dist/components/DragAndDrop/DnDRangeChip.vue.d.ts.map +1 -1
  15. package/dist/components/DragAndDrop/DnDRangeChip.vue.js +34 -31
  16. package/dist/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
  17. package/dist/components/DragAndDrop/DndDoubleChip.vue.d.ts.map +1 -1
  18. package/dist/components/DragAndDrop/DndDoubleChip.vue.js +40 -35
  19. package/dist/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
  20. package/dist/components/PanelModal.vue.d.ts.map +1 -1
  21. package/dist/components/PanelModal.vue.js +25 -11
  22. package/dist/components/PanelModal.vue.js.map +1 -1
  23. package/dist/constantsCommon.d.ts +6 -0
  24. package/dist/constantsCommon.d.ts.map +1 -1
  25. package/dist/constantsCommon.js +36 -32
  26. package/dist/constantsCommon.js.map +1 -1
  27. package/dist/dataBindAes.d.ts.map +1 -1
  28. package/dist/dataBindAes.js +81 -86
  29. package/dist/dataBindAes.js.map +1 -1
  30. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.d.ts.map +1 -1
  31. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +64 -54
  32. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
  33. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.d.ts.map +1 -1
  34. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +177 -157
  35. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  36. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.d.ts.map +1 -1
  37. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +133 -123
  38. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
  39. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.d.ts.map +1 -1
  40. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +130 -120
  41. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
  42. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.d.ts.map +1 -1
  43. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +164 -147
  44. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
  45. package/dist/forms/DataMappingForm/utils.js +58 -58
  46. package/dist/forms/DataMappingForm/utils.js.map +1 -1
  47. package/dist/forms/LayersForm/AesSelector.vue.js +66 -66
  48. package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
  49. package/dist/index.vue.d.ts.map +1 -1
  50. package/dist/index.vue.js +186 -172
  51. package/dist/index.vue.js.map +1 -1
  52. package/dist/store.d.ts +2 -1
  53. package/dist/store.d.ts.map +1 -1
  54. package/dist/store.js +140 -134
  55. package/dist/store.js.map +1 -1
  56. package/dist/types.d.ts +2 -0
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/utils/calculateDiscreteGroups.d.ts.map +1 -1
  59. package/dist/utils/calculateDiscreteGroups.js +6 -6
  60. package/dist/utils/calculateDiscreteGroups.js.map +1 -1
  61. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +1 -0
  62. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
  63. package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +19 -1
  64. package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts.map +1 -1
  65. package/dist/utils/createChartSettingsForRender/composeChartSettings.js +74 -40
  66. package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  67. package/dist/utils/createChartSettingsForRender/composeDendroSettings.d.ts +1 -0
  68. package/dist/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
  69. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js +22 -22
  70. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
  71. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +4 -487
  72. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  73. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +48 -35
  74. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
  75. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +1 -0
  76. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
  77. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +1 -0
  78. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
  79. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +1 -0
  80. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  81. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +80 -67
  82. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  83. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts.map +1 -1
  84. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +28 -28
  85. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  86. package/dist/utils/loadUniqueValuesToSave.d.ts +3 -1
  87. package/dist/utils/loadUniqueValuesToSave.d.ts.map +1 -1
  88. package/dist/utils/loadUniqueValuesToSave.js +81 -63
  89. package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
  90. package/package.json +3 -3
  91. package/dist/assets/drag-and-drop/img/chip-close.svg.js +0 -7
  92. package/dist/assets/drag-and-drop/img/chip-close.svg.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.js","sources":["../src/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n ErrorInfo,\n LassoControlsState,\n Settings,\n} from '@milaboratories/miplots4';\nimport { MiPlots } from '@milaboratories/miplots4';\nimport type { ChartType, PlotDataAndSettings } from '@milaboratories/pf-plots';\nimport { DemoDataStore } from '@milaboratories/pf-plots';\nimport type { AxisSpec, PFrameDriver, PlSelectionModel, PTableKey } from '@platforma-sdk/model';\nimport { watchDebounced } from '@vueuse/core';\nimport { computed, onMounted, onUnmounted, ref, shallowRef, toRaw, useSlots, watch } from 'vue';\nimport './assets/ui.scss';\nimport Chart from './components/Chart.vue';\nimport PanelModal from './components/PanelModal.vue';\nimport VTabs from './components/SettingsTabs/index.vue';\nimport TransitionSlidePanel from './components/TransitionSlidePanel.vue';\nimport ChartErrorNotificationAlert from './components/ChartErrorNotificationAlert.vue';\nimport { isOwnGraphMakerTab, useSettingsForm } from './forms';\nimport { createReactiveState, provideStore } from './store';\nimport type { DendroNodeInfo, GraphMakerProps, GraphMakerState, GraphStatus } from './types';\nimport { composeChartSettings, saveToFile } from './utils';\nimport { copyJSON } from './utils/copyJSON';\nimport GraphStatusScreen from './components/GraphStatusScreen.vue';\n\nconst _emit = defineEmits(['delete-this-graph', 'tooltip-btn-click']);\n\nconst graphMakerState = defineModel<GraphMakerState>({ required: true });\nconst selectionState = defineModel<PlSelectionModel>('selection');\n\nconst props = defineProps<GraphMakerProps>();\n\ndefineExpose({\n /**\n reset() will update data-mapping, axis-settings, layers-settings with the state that is in v-model at the moment.\n In other cases editing of v-model fields doesn't make any impact to graphs and interface.\n */\n reset,\n});\n\nconst dataStore = ref<DemoDataStore | null>(null);\n\nwatch(() => props.pFrame, (pframe) => {\n if (!pframe.ok || !pframe.value) {\n dataStore.value = null;\n return;\n }\n const driver = ('platforma' in window) ? window.platforma?.pFrameDriver as PFrameDriver : props.driver;\n if (!driver) {\n throw new Error('PFrame driver is missing');\n }\n dataStore.value = new DemoDataStore(\n pframe.value,\n driver,\n props.labelsModifier,\n );\n}, { immediate: true, deep: true });\n\n// fixed options can be updated outside, other settings only inside from chart settings interface, so we don't watching other settings\nconst fixedOptions = ref<typeof props.fixedOptions>(props.fixedOptions ?? []);\nwatch(() => props.fixedOptions, (value, oldValue) => {\n if (\n (value && oldValue && JSON.stringify(value) !== JSON.stringify(oldValue))\n || (value && !oldValue)\n || (oldValue && !value)\n ) {\n fixedOptions.value = value;\n }\n}, { deep: true });\nconst defaultOptions = ref<typeof props.defaultOptions>(props.defaultOptions);\nwatch(() => props.defaultOptions, (v) => {\n defaultOptions.value = v;\n}, { deep: true });\nconst state = provideStore(\n toRaw(graphMakerState.value),\n dataStore,\n props.chartType,\n defaultOptions,\n fixedOptions,\n props.dataColumnPredicate,\n props.metaColumnPredicate,\n props.readonlyInputs,\n props.defaultPalette,\n);\n\nfunction reset() {\n const nextReactiveState = createReactiveState(\n toRaw(graphMakerState.value),\n props.chartType,\n );\n Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions;\n}\n\nconst currentForm = computed(() => useSettingsForm(state.value.reactive.currentTab));\n\nconst chartRef = shallowRef<ChartInterface | null>(null);\nconst chartCalculatedDataRef = ref<Record<string, unknown> | null>(null);\nconst chartError = ref(false);\nconst chartErrorInfo = ref<ErrorInfo | null>(null);\n\nconst isRunning = computed(\n () => props.pFrame.ok && !props.pFrame.value && !props.pFrame.stable,\n);\nconst isInitialLoading = computed(\n () => state.value.loading.initialInputGuide && graphStatus.value === 'loading',\n);\n\nconst graphStatus = computed<GraphStatus>((previousStatus) => {\n if (isRunning.value) {\n return 'running';\n }\n if (props.pFrame.ok && props.pFrame.stable && !props.pFrame.value) {\n return 'noPframe';\n }\n if (!props.pFrame.ok) {\n return 'noPframeWithError';\n }\n const inputGuide = state.value.inputGuide.value;\n const chartData = state.value.chartData.value;\n if (!inputGuide.consistent) {\n return 'inconsistent';\n }\n if (!inputGuide.ready) {\n return defaultOptions.value === null\n || state.value.loading.defaults\n || state.value.loading.initialInputGuide\n ? 'loading'\n : 'notReady';\n }\n if (chartData && Object.values(chartData.data.byColumns.values)[0]?.length === 0) {\n return 'empty';\n }\n if (chartError.value) {\n return chartErrorInfo.value?.type === 'unknownError' ? 'unknownError' : 'knownError';\n }\n if (\n (state.value.loading.initialCharts || (previousStatus !== 'ready' && state.value.loading.chartData) || state.value.loading.chartRendering)\n || (chartRef.value === null && (state.value.loading.inputGuide || state.value.loading.chartData))\n ) {\n return 'loading';\n }\n return 'ready';\n});\n\nfunction onTreeNodeClick(d: DendroNodeInfo) {\n state.value.reactive.dendroSelectedNodeId = d?.info[0]?.id as number;\n state.value.reactive.dendroInfoByClick = d;\n}\n\nconst tooltipHintHideTimerRef = ref<ReturnType<typeof setTimeout> | null>(null);\n\nfunction onTooltipHintSwitch(v: boolean) {\n const reactive = state.value.reactive;\n if (v) {\n if (reactive.tooltipHintWasShown) return;\n if (tooltipHintHideTimerRef.value) {\n clearTimeout(tooltipHintHideTimerRef.value);\n tooltipHintHideTimerRef.value = null;\n }\n reactive.showTooltipHint = true;\n tooltipHintHideTimerRef.value = setTimeout(() => {\n reactive.showTooltipHint = false;\n reactive.tooltipHintWasShown = true;\n tooltipHintHideTimerRef.value = null;\n }, 3000);\n } else {\n reactive.showTooltipHint = false;\n }\n}\n\nfunction onLassoPolygonUpdate(dotIndexes: number[], polygons: { points: [number, number][]; closed: boolean }[]) {\n graphMakerState.value = {\n ...graphMakerState.value,\n selectedPolygons: polygons,\n };\n\n const axesData = state.value.chartData.value?.data?.axesData;\n if (dotIndexes.length === 0 || !axesData) {\n selectionState.value = { axesSpec: [], selectedKeys: [] };\n return;\n }\n\n const axisKeys = Object.keys(axesData);\n const inputGuide = state.value.inputGuide.value;\n selectionState.value = {\n axesSpec: axisKeys.map((axisKey) => inputGuide.getSourceInfo(axisKey).spec as AxisSpec),\n selectedKeys: dotIndexes.map((idx) => axisKeys.map((axisKey) => axesData[axisKey][idx]) as PTableKey),\n };\n}\n\nfunction onLassoStateChange(v: LassoControlsState) {\n state.value.reactive.lassoControlsState = v;\n}\nlet chartRenderingInProgress: ReturnType<typeof setTimeout> | null = null;\nfunction onLoadingStateChange(v: boolean) {\n if (v) {\n chartRenderingInProgress = setTimeout(() => {\n state.value.loading.chartRendering = true;\n }, 1000);\n } else {\n if (chartRenderingInProgress) {\n clearTimeout(chartRenderingInProgress);\n }\n state.value.loading.chartRendering = false;\n }\n}\nconst isScatterplotZoomChanged = ref(false);\nfunction onZoomChange(isZoomChanged: boolean) {\n isScatterplotZoomChanged.value = isZoomChanged;\n}\nconst graphEventHandlers: Record<ChartType, unknown> = {\n 'dendro': [onTreeNodeClick],\n 'scatterplot-umap': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n onZoomChange,\n },\n 'discrete': [onTooltipHintSwitch],\n 'scatterplot': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n },\n 'histogram': [onTooltipHintSwitch],\n 'heatmap': { onTooltipHintSwitch, onLoadingChange: onLoadingStateChange },\n 'bubble': [onTooltipHintSwitch],\n};\nfunction updateChart(value: { data: PlotDataAndSettings['data']['byColumns']; settings: PlotDataAndSettings['settings'] } | null) {\n // if dataByColumns exists but columns has no data - show empty chart\n if (value && Object.values(value.data.values)[0]?.length > 0) {\n // console.log('value.dataByColumns', toRaw(value.data));\n // console.log('value.settings', toRaw(value.settings));\n if (chartRef.value) {\n chartRef.value.updateSettingsAndData({ ...toRaw(value.data), id: value.data.id + (props.pFrame.ok ? props.pFrame.value : '') }, toRaw(value.settings) as Settings);\n } else {\n const htmlNode = document.getElementById('chartSvgContainer');\n if (htmlNode) {\n chartRef.value = MiPlots.newPlot(toRaw(value.data), toRaw(value.settings) as Settings, graphEventHandlers[value.settings.type as ChartType]);\n if (value.settings.type === 'scatterplot-umap') {\n // set default polygons (from props)\n chartRef.value.updateChartState('polygon', graphMakerState.value.selectedPolygons ?? []);\n }\n chartRef.value.mount(htmlNode);\n }\n }\n // calculated by chart renderer data, tree hierarchy for example\n chartCalculatedDataRef.value = chartRef.value?.calculatedData ? { ...chartRef.value.calculatedData } : null;\n chartError.value = chartRef.value?.hasError ?? false;\n chartErrorInfo.value = chartRef.value?.errorInfo ?? null;\n } else {\n chartRef.value?.unmount();\n chartRef.value = null;\n chartErrorInfo.value = null;\n }\n}\n\nwatch(() => graphStatus.value, (v) => {\n if (v === 'notReady' || v === 'noPframe' || dataStore.value === null) {\n chartRef.value?.unmount();\n chartRef.value = null;\n }\n});\n\nconst chartDataForRender = shallowRef<{ settings: Settings; data: DataByColumns } | null>(null);\nwatch([\n () => state.value.chartData.value,\n], ([chartData]) => {\n chartDataForRender.value = composeChartSettings(\n toRaw(chartData),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n});\nwatch([\n () => state.value.reactive.template,\n () => state.value.reactive.layersSettings,\n () => state.value.reactive.axesSettings,\n () => state.value.reactive.statisticsSettings,\n () => state.value.reactive.dataBindAes,\n () => state.value.reactive.chartScale,\n], () => {\n chartDataForRender.value = composeChartSettings(\n toRaw(state.value.chartData.value),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n );\n}, { deep: true });\n\nwatch(() => chartDataForRender.value, (chartData) => {\n updateChart(chartData);\n});\nonMounted(() => {\n updateChart(null);\n});\nonUnmounted(() => {\n if (tooltipHintHideTimerRef.value) {\n clearTimeout(tooltipHintHideTimerRef.value);\n tooltipHintHideTimerRef.value = null;\n }\n chartRef.value?.unmount();\n});\n\nwatchDebounced(() => state.value.reactive.optionsState, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n optionsState: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.usedDefaultOptions, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n usedDefaultOptions: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.statisticsSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n statisticsSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.axesSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n axesSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.layersSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n layersSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.dataBindAes, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataBindAes: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\n\nwatchDebounced([\n () => state.value.reactive.chartScale,\n () => state.value.reactive.template,\n () => state.value.reactive.currentTab,\n], ([zoomState, template, currentTab]) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n zoomState,\n template,\n currentTab,\n };\n}, { debounce: 1000 });\n\nwatch(() => state.value.reactive.tooltipHintWasShown, (v) => {\n if (v) {\n graphMakerState.value = { ...graphMakerState.value, tooltipHintWasShown: true };\n }\n});\n\nwatch(() => graphMakerState.value.currentTab, (v) => {\n state.value.reactive.currentTab = v === undefined ? 'dataMapping' : v;\n});\n\nwatch(() => graphMakerState.value?.layersSettings?.dendro?.showTable, (v) => {\n state.value.reactive.layersSettings.dendro.showTable = v ?? false;\n});\n\nfunction onExport() {\n saveToFile(\n new Blob([\n chartRef.value?.export() ?? '',\n ]),\n 'chart.svg',\n );\n}\n\nfunction updateGraphTitle(nextTitle: string) {\n graphMakerState.value = {\n ...graphMakerState.value,\n title: nextTitle,\n };\n}\n\nfunction selectTreeNode(id: number | null) {\n state.value.reactive.dendroSelectedNodeId = id;\n chartRef.value?.updateChartState('selectedNode', id);\n}\n\nconst slots = useSlots();\n\nconst hasAnnotationsSlot = computed(() => Boolean(slots.annotationsSlot));\nconst hasSettingsSlot = computed(() => Boolean(slots.settingsSlot));\nconst hasLogSlot = computed(() => Boolean(slots.logSlot));\n\n</script>\n\n<template>\n <div class=\"graph-maker\">\n <div class=\"graph-maker__main-pane\">\n <Chart\n :graph-status=\"graphStatus\" :graphTitle=\"graphMakerState.title\" :chartData=\"chartCalculatedDataRef\"\n :chart-ref=\"chartRef\" :error-info=\"chartErrorInfo\" :dendroTooltipButton=\"tooltipButton\"\n :custom-status-text=\"statusText\"\n :allow-title-editing=\"allowTitleEditing\"\n :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"\n @graph-title-update=\"updateGraphTitle\" @dendro-node-select=\"selectTreeNode\"\n @dendro-tooltip-btn-click=\"(id: string) => $emit('tooltip-btn-click', id)\"\n >\n <slot name=\"titleLineSlot\" />\n </Chart>\n <GraphStatusScreen v-if=\"isInitialLoading || isRunning\" :graphStatus=\"isRunning ? 'running' : 'loading'\" :top=\"67\" :left=\"12\" :right=\"12\" :bottom=\"12\" :customStatusText=\"statusText\" />\n <TransitionSlidePanel id=\"graph-settings-modal\">\n <PanelModal\n v-if=\"state.reactive.currentTab && !((isInitialLoading || isRunning) && isOwnGraphMakerTab(state.reactive.currentTab))\"\n @close=\"state.reactive.currentTab = null\"\n >\n <component :is=\"currentForm.value\">\n <slot v-if=\"state.reactive.currentTab === 'annotations'\" name=\"annotationsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'settings'\" name=\"settingsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'log'\" name=\"logSlot\" />\n </component>\n </PanelModal>\n </TransitionSlidePanel>\n </div>\n <VTabs\n v-model=\"state.reactive.currentTab\" :chart-type=\"state.reactive.chartType\" :graph-status=\"graphStatus\"\n :allowDeleting=\"allowChartDeleting\" :hasAnnotationsSlot=\"hasAnnotationsSlot\" :hasSettingsSlot=\"hasSettingsSlot\"\n :hasLogSlot=\"hasLogSlot\" :initialLoading=\"isInitialLoading || isRunning\" @export=\"onExport\"\n @delete=\"$emit('delete-this-graph')\"\n />\n <ChartErrorNotificationAlert v-if=\"chartErrorInfo?.type === 'unknownError'\" :errorInfo=\"chartErrorInfo\" />\n </div>\n</template>\n"],"names":["graphMakerState","_useModel","selectionState","__props","props","__expose","reset","dataStore","ref","watch","pframe","driver","_a","DemoDataStore","fixedOptions","value","oldValue","defaultOptions","v","state","provideStore","toRaw","nextReactiveState","createReactiveState","currentForm","computed","useSettingsForm","chartRef","shallowRef","chartCalculatedDataRef","chartError","chartErrorInfo","isRunning","isInitialLoading","graphStatus","previousStatus","inputGuide","chartData","_b","onTreeNodeClick","d","tooltipHintHideTimerRef","onTooltipHintSwitch","reactive","onLassoPolygonUpdate","dotIndexes","polygons","axesData","axisKeys","axisKey","idx","onLassoStateChange","chartRenderingInProgress","onLoadingStateChange","isScatterplotZoomChanged","onZoomChange","isZoomChanged","graphEventHandlers","updateChart","htmlNode","MiPlots","_c","_d","_e","chartDataForRender","composeChartSettings","onMounted","onUnmounted","watchDebounced","copyJSON","zoomState","template","currentTab","onExport","saveToFile","updateGraphTitle","nextTitle","selectTreeNode","id","slots","useSlots","hasAnnotationsSlot","hasSettingsSlot","hasLogSlot","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","Chart","_cache","$emit","_renderSlot","_ctx","_createBlock","GraphStatusScreen","TransitionSlidePanel","_unref","PanelModal","$event","_resolveDynamicComponent","VTabs","ChartErrorNotificationAlert"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue.js","sources":["../src/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n ErrorInfo,\n LassoControlsState,\n Settings,\n} from '@milaboratories/miplots4';\nimport { MiPlots } from '@milaboratories/miplots4';\nimport type { ChartType, PlotDataAndSettings } from '@milaboratories/pf-plots';\nimport { DemoDataStore } from '@milaboratories/pf-plots';\nimport type { AxisSpec, PFrameDriver, PlSelectionModel, PTableKey } from '@platforma-sdk/model';\nimport { watchDebounced } from '@vueuse/core';\nimport { computed, onMounted, onUnmounted, ref, shallowRef, toRaw, useSlots, watch } from 'vue';\nimport './assets/ui.scss';\nimport Chart from './components/Chart.vue';\nimport PanelModal from './components/PanelModal.vue';\nimport VTabs from './components/SettingsTabs/index.vue';\nimport TransitionSlidePanel from './components/TransitionSlidePanel.vue';\nimport ChartErrorNotificationAlert from './components/ChartErrorNotificationAlert.vue';\nimport ChartTruncationWarningAlert from './components/ChartTruncationWarningAlert.vue';\nimport { isOwnGraphMakerTab, useSettingsForm } from './forms';\nimport { createReactiveState, provideStore } from './store';\nimport type { DendroNodeInfo, GraphMakerProps, GraphMakerState, GraphStatus } from './types';\nimport { composeChartSettings, saveToFile } from './utils';\nimport type { ChartTruncationWarning } from './utils/createChartSettingsForRender/composeChartSettings';\nimport { copyJSON } from './utils/copyJSON';\nimport GraphStatusScreen from './components/GraphStatusScreen.vue';\n\nconst _emit = defineEmits(['delete-this-graph', 'tooltip-btn-click']);\n\nconst graphMakerState = defineModel<GraphMakerState>({ required: true });\nconst selectionState = defineModel<PlSelectionModel>('selection');\n\nconst props = defineProps<GraphMakerProps>();\n\ndefineExpose({\n /**\n reset() will update data-mapping, axis-settings, layers-settings with the state that is in v-model at the moment.\n In other cases editing of v-model fields doesn't make any impact to graphs and interface.\n */\n reset,\n});\n\nconst dataStore = ref<DemoDataStore | null>(null);\n\nwatch(() => props.pFrame, (pframe) => {\n if (!pframe.ok || !pframe.value) {\n dataStore.value = null;\n return;\n }\n const driver = ('platforma' in window) ? window.platforma?.pFrameDriver as PFrameDriver : props.driver;\n if (!driver) {\n throw new Error('PFrame driver is missing');\n }\n dataStore.value = new DemoDataStore(\n pframe.value,\n driver,\n props.labelsModifier,\n );\n}, { immediate: true, deep: true });\n\n// fixed options can be updated outside, other settings only inside from chart settings interface, so we don't watching other settings\nconst fixedOptions = ref<typeof props.fixedOptions>(props.fixedOptions ?? []);\nwatch(() => props.fixedOptions, (value, oldValue) => {\n if (\n (value && oldValue && JSON.stringify(value) !== JSON.stringify(oldValue))\n || (value && !oldValue)\n || (oldValue && !value)\n ) {\n fixedOptions.value = value;\n }\n}, { deep: true });\nconst defaultOptions = ref<typeof props.defaultOptions>(props.defaultOptions);\nwatch(() => props.defaultOptions, (v) => {\n defaultOptions.value = v;\n}, { deep: true });\nconst state = provideStore(\n toRaw(graphMakerState.value),\n dataStore,\n props.chartType,\n defaultOptions,\n fixedOptions,\n props.dataColumnPredicate,\n props.metaColumnPredicate,\n props.readonlyInputs,\n props.defaultPalette,\n);\n\nfunction reset() {\n const nextReactiveState = createReactiveState(\n toRaw(graphMakerState.value),\n props.chartType,\n );\n Object.assign(state.value.reactive, nextReactiveState);\n Object.assign(state.value.loading, {\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n });\n defaultOptions.value = props.defaultOptions;\n}\n\nconst currentForm = computed(() => useSettingsForm(state.value.reactive.currentTab));\n\nconst chartRef = shallowRef<ChartInterface | null>(null);\nconst chartCalculatedDataRef = ref<Record<string, unknown> | null>(null);\nconst chartError = ref(false);\nconst chartErrorInfo = ref<ErrorInfo | null>(null);\n\nconst isRunning = computed(\n () => props.pFrame.ok && !props.pFrame.value && !props.pFrame.stable,\n);\nconst isInitialLoading = computed(\n () => state.value.loading.initialInputGuide && graphStatus.value === 'loading',\n);\n\nconst graphStatus = computed<GraphStatus>((previousStatus) => {\n if (isRunning.value) {\n return 'running';\n }\n if (props.pFrame.ok && props.pFrame.stable && !props.pFrame.value) {\n return 'noPframe';\n }\n if (!props.pFrame.ok) {\n return 'noPframeWithError';\n }\n const inputGuide = state.value.inputGuide.value;\n const chartData = state.value.chartData.value;\n if (!inputGuide.consistent) {\n return 'inconsistent';\n }\n if (!inputGuide.ready) {\n return defaultOptions.value === null\n || state.value.loading.defaults\n || state.value.loading.initialInputGuide\n ? 'loading'\n : 'notReady';\n }\n if (chartData && Object.values(chartData.data.byColumns.values)[0]?.length === 0) {\n return 'empty';\n }\n if (chartError.value) {\n return chartErrorInfo.value?.type === 'unknownError' ? 'unknownError' : 'knownError';\n }\n if (\n (state.value.loading.initialCharts || (previousStatus !== 'ready' && state.value.loading.chartData) || state.value.loading.chartRendering)\n || (chartRef.value === null && (state.value.loading.inputGuide || state.value.loading.chartData))\n ) {\n return 'loading';\n }\n return 'ready';\n});\n\nfunction onTreeNodeClick(d: DendroNodeInfo) {\n state.value.reactive.dendroSelectedNodeId = d?.info[0]?.id as number;\n state.value.reactive.dendroInfoByClick = d;\n}\n\nconst tooltipHintHideTimerRef = ref<ReturnType<typeof setTimeout> | null>(null);\n\nfunction onTooltipHintSwitch(v: boolean) {\n const reactive = state.value.reactive;\n if (v) {\n if (reactive.tooltipHintWasShown) return;\n if (tooltipHintHideTimerRef.value) {\n clearTimeout(tooltipHintHideTimerRef.value);\n tooltipHintHideTimerRef.value = null;\n }\n reactive.showTooltipHint = true;\n tooltipHintHideTimerRef.value = setTimeout(() => {\n reactive.showTooltipHint = false;\n reactive.tooltipHintWasShown = true;\n tooltipHintHideTimerRef.value = null;\n }, 3000);\n } else {\n reactive.showTooltipHint = false;\n }\n}\n\nfunction onLassoPolygonUpdate(dotIndexes: number[], polygons: { points: [number, number][]; closed: boolean }[]) {\n graphMakerState.value = {\n ...graphMakerState.value,\n selectedPolygons: polygons,\n };\n\n const axesData = state.value.chartData.value?.data?.axesData;\n if (dotIndexes.length === 0 || !axesData) {\n selectionState.value = { axesSpec: [], selectedKeys: [] };\n return;\n }\n\n const axisKeys = Object.keys(axesData);\n const inputGuide = state.value.inputGuide.value;\n selectionState.value = {\n axesSpec: axisKeys.map((axisKey) => inputGuide.getSourceInfo(axisKey).spec as AxisSpec),\n selectedKeys: dotIndexes.map((idx) => axisKeys.map((axisKey) => axesData[axisKey][idx]) as PTableKey),\n };\n}\n\nfunction onLassoStateChange(v: LassoControlsState) {\n state.value.reactive.lassoControlsState = v;\n}\nlet chartRenderingInProgress: ReturnType<typeof setTimeout> | null = null;\nfunction onLoadingStateChange(v: boolean) {\n if (v) {\n chartRenderingInProgress = setTimeout(() => {\n state.value.loading.chartRendering = true;\n }, 1000);\n } else {\n if (chartRenderingInProgress) {\n clearTimeout(chartRenderingInProgress);\n }\n state.value.loading.chartRendering = false;\n }\n}\nconst isScatterplotZoomChanged = ref(false);\nfunction onZoomChange(isZoomChanged: boolean) {\n isScatterplotZoomChanged.value = isZoomChanged;\n}\nconst graphEventHandlers: Record<ChartType, unknown> = {\n 'dendro': [onTreeNodeClick],\n 'scatterplot-umap': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n onZoomChange,\n },\n 'discrete': [onTooltipHintSwitch],\n 'scatterplot': {\n onPolygonUpdate: onLassoPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate: onLassoStateChange,\n },\n 'histogram': [onTooltipHintSwitch],\n 'heatmap': { onTooltipHintSwitch, onLoadingChange: onLoadingStateChange },\n 'bubble': [onTooltipHintSwitch],\n};\nfunction updateChart(value: { data: PlotDataAndSettings['data']['byColumns']; settings: PlotDataAndSettings['settings'] } | null) {\n // if dataByColumns exists but columns has no data - show empty chart\n if (value && Object.values(value.data.values)[0]?.length > 0) {\n // console.log('value.dataByColumns', toRaw(value.data));\n // console.log('value.settings', toRaw(value.settings));\n if (chartRef.value) {\n chartRef.value.updateSettingsAndData({ ...toRaw(value.data), id: value.data.id + (props.pFrame.ok ? props.pFrame.value : '') }, toRaw(value.settings) as Settings);\n } else {\n const htmlNode = document.getElementById('chartSvgContainer');\n if (htmlNode) {\n chartRef.value = MiPlots.newPlot(toRaw(value.data), toRaw(value.settings) as Settings, graphEventHandlers[value.settings.type as ChartType]);\n if (value.settings.type === 'scatterplot-umap') {\n // set default polygons (from props)\n chartRef.value.updateChartState('polygon', graphMakerState.value.selectedPolygons ?? []);\n }\n chartRef.value.mount(htmlNode);\n }\n }\n // calculated by chart renderer data, tree hierarchy for example\n chartCalculatedDataRef.value = chartRef.value?.calculatedData ? { ...chartRef.value.calculatedData } : null;\n chartError.value = chartRef.value?.hasError ?? false;\n chartErrorInfo.value = chartRef.value?.errorInfo ?? null;\n } else {\n chartRef.value?.unmount();\n chartRef.value = null;\n chartErrorInfo.value = null;\n }\n}\n\nwatch(() => graphStatus.value, (v) => {\n if (v === 'notReady' || v === 'noPframe' || dataStore.value === null) {\n chartRef.value?.unmount();\n chartRef.value = null;\n }\n});\n\nconst chartDataForRender = shallowRef<{ settings: Settings; data: DataByColumns } | null>(null);\nconst chartTruncationWarning = ref<ChartTruncationWarning | null>(null);\n\nfunction applyComposeResult(result: ReturnType<typeof composeChartSettings>) {\n if (!result) {\n chartDataForRender.value = null;\n chartTruncationWarning.value = null;\n return;\n }\n chartDataForRender.value = { settings: result.settings, data: result.data };\n chartTruncationWarning.value = result.truncationWarning;\n}\n\nwatch([\n () => state.value.chartData.value,\n], ([chartData]) => {\n applyComposeResult(composeChartSettings(\n toRaw(chartData),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n toRaw(state.value.facetValuesData.value),\n ));\n});\nwatch([\n () => state.value.reactive.template,\n () => state.value.reactive.layersSettings,\n () => state.value.reactive.axesSettings,\n () => state.value.reactive.statisticsSettings,\n () => state.value.reactive.dataBindAes,\n () => state.value.reactive.chartScale,\n], () => {\n applyComposeResult(composeChartSettings(\n toRaw(state.value.chartData.value),\n toRaw(state.value.inputGuide.value),\n toRaw(state.value.uniqueValuesData.value),\n toRaw(state.value.filterLabelsInfo.value),\n toRaw(state.value.reactive),\n toRaw(state.value.defaultPalette),\n toRaw(state.value.facetValuesData.value),\n ));\n}, { deep: true });\n\nwatch(() => chartDataForRender.value, (chartData) => {\n updateChart(chartData);\n});\nonMounted(() => {\n updateChart(null);\n});\nonUnmounted(() => {\n if (tooltipHintHideTimerRef.value) {\n clearTimeout(tooltipHintHideTimerRef.value);\n tooltipHintHideTimerRef.value = null;\n }\n chartRef.value?.unmount();\n});\n\nwatchDebounced(() => state.value.reactive.optionsState, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n optionsState: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.usedDefaultOptions, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n usedDefaultOptions: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.statisticsSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n statisticsSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.axesSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n axesSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.layersSettings, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n layersSettings: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\nwatchDebounced(() => state.value.reactive.dataBindAes, (v) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n dataBindAes: copyJSON(v),\n };\n}, { deep: true, debounce: 1000 });\n\nwatchDebounced([\n () => state.value.reactive.chartScale,\n () => state.value.reactive.template,\n () => state.value.reactive.currentTab,\n], ([zoomState, template, currentTab]) => {\n graphMakerState.value = {\n ...graphMakerState.value,\n zoomState,\n template,\n currentTab,\n };\n}, { debounce: 1000 });\n\nwatch(() => state.value.reactive.tooltipHintWasShown, (v) => {\n if (v) {\n graphMakerState.value = { ...graphMakerState.value, tooltipHintWasShown: true };\n }\n});\n\nwatch(() => graphMakerState.value.currentTab, (v) => {\n state.value.reactive.currentTab = v === undefined ? 'dataMapping' : v;\n});\n\nwatch(() => graphMakerState.value?.layersSettings?.dendro?.showTable, (v) => {\n state.value.reactive.layersSettings.dendro.showTable = v ?? false;\n});\n\nfunction onExport() {\n saveToFile(\n new Blob([\n chartRef.value?.export() ?? '',\n ]),\n 'chart.svg',\n );\n}\n\nfunction updateGraphTitle(nextTitle: string) {\n graphMakerState.value = {\n ...graphMakerState.value,\n title: nextTitle,\n };\n}\n\nfunction selectTreeNode(id: number | null) {\n state.value.reactive.dendroSelectedNodeId = id;\n chartRef.value?.updateChartState('selectedNode', id);\n}\n\nconst slots = useSlots();\n\nconst hasAnnotationsSlot = computed(() => Boolean(slots.annotationsSlot));\nconst hasSettingsSlot = computed(() => Boolean(slots.settingsSlot));\nconst hasLogSlot = computed(() => Boolean(slots.logSlot));\n\n</script>\n\n<template>\n <div class=\"graph-maker\">\n <div class=\"graph-maker__main-pane\">\n <Chart\n :graph-status=\"graphStatus\" :graphTitle=\"graphMakerState.title\" :chartData=\"chartCalculatedDataRef\"\n :chart-ref=\"chartRef\" :error-info=\"chartErrorInfo\" :dendroTooltipButton=\"tooltipButton\"\n :custom-status-text=\"statusText\"\n :allow-title-editing=\"allowTitleEditing\"\n :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"\n @graph-title-update=\"updateGraphTitle\" @dendro-node-select=\"selectTreeNode\"\n @dendro-tooltip-btn-click=\"(id: string) => $emit('tooltip-btn-click', id)\"\n >\n <slot name=\"titleLineSlot\" />\n </Chart>\n <GraphStatusScreen v-if=\"isInitialLoading || isRunning\" :graphStatus=\"isRunning ? 'running' : 'loading'\" :top=\"67\" :left=\"12\" :right=\"12\" :bottom=\"12\" :customStatusText=\"statusText\" />\n <TransitionSlidePanel id=\"graph-settings-modal\">\n <PanelModal\n v-if=\"state.reactive.currentTab && !((isInitialLoading || isRunning) && isOwnGraphMakerTab(state.reactive.currentTab))\"\n @close=\"state.reactive.currentTab = null\"\n >\n <component :is=\"currentForm.value\">\n <slot v-if=\"state.reactive.currentTab === 'annotations'\" name=\"annotationsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'settings'\" name=\"settingsSlot\" />\n <slot v-if=\"state.reactive.currentTab === 'log'\" name=\"logSlot\" />\n </component>\n </PanelModal>\n </TransitionSlidePanel>\n </div>\n <VTabs\n v-model=\"state.reactive.currentTab\" :chart-type=\"state.reactive.chartType\" :graph-status=\"graphStatus\"\n :allowDeleting=\"allowChartDeleting\" :hasAnnotationsSlot=\"hasAnnotationsSlot\" :hasSettingsSlot=\"hasSettingsSlot\"\n :hasLogSlot=\"hasLogSlot\" :initialLoading=\"isInitialLoading || isRunning\" @export=\"onExport\"\n @delete=\"$emit('delete-this-graph')\"\n />\n <ChartErrorNotificationAlert v-if=\"chartErrorInfo?.type === 'unknownError'\" :errorInfo=\"chartErrorInfo\" />\n <ChartTruncationWarningAlert\n v-if=\"chartTruncationWarning && (chartTruncationWarning.groups || chartTruncationWarning.facets)\"\n :truncation-warning=\"chartTruncationWarning\"\n />\n </div>\n</template>\n"],"names":["graphMakerState","_useModel","selectionState","__props","props","__expose","reset","dataStore","ref","watch","pframe","driver","_a","DemoDataStore","fixedOptions","value","oldValue","defaultOptions","v","state","provideStore","toRaw","nextReactiveState","createReactiveState","currentForm","computed","useSettingsForm","chartRef","shallowRef","chartCalculatedDataRef","chartError","chartErrorInfo","isRunning","isInitialLoading","graphStatus","previousStatus","inputGuide","chartData","_b","onTreeNodeClick","d","tooltipHintHideTimerRef","onTooltipHintSwitch","reactive","onLassoPolygonUpdate","dotIndexes","polygons","axesData","axisKeys","axisKey","idx","onLassoStateChange","chartRenderingInProgress","onLoadingStateChange","isScatterplotZoomChanged","onZoomChange","isZoomChanged","graphEventHandlers","updateChart","htmlNode","MiPlots","_c","_d","_e","chartDataForRender","chartTruncationWarning","applyComposeResult","result","composeChartSettings","onMounted","onUnmounted","watchDebounced","copyJSON","zoomState","template","currentTab","onExport","saveToFile","updateGraphTitle","nextTitle","selectTreeNode","id","slots","useSlots","hasAnnotationsSlot","hasSettingsSlot","hasLogSlot","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","Chart","_cache","$emit","_renderSlot","_ctx","_createBlock","GraphStatusScreen","TransitionSlidePanel","_unref","PanelModal","$event","_resolveDynamicComponent","VTabs","ChartErrorNotificationAlert","ChartTruncationWarningAlert"],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -29,12 +29,13 @@ export interface Store {
29
29
  inputGuide: Ref<InputGuide<InputState>>;
30
30
  chartData: Ref<PlotDataAndSettings | null>;
31
31
  uniqueValuesData: Ref<UniqueValuesBySourceMap>;
32
+ facetValuesData: Ref<UniqueValuesBySourceMap>;
32
33
  filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>;
33
34
  filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>;
34
35
  readonlyInputs?: InputNamesByChartType[ChartType][];
35
36
  defaultPalette: DefaultPalettes;
36
37
  }
37
- export declare function factoryStore(reactiveState: Reactive<ReactiveState>, dataStore: Ref<DemoDataStore | null>, inputGuide: Ref<InputGuide<InputState>>, chartData: Ref<PlotDataAndSettings | null>, dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>, uniqueValuesData: Ref<UniqueValuesBySourceMap>, filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>, filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>, readonlyInputs?: InputNamesByChartType[ChartType][], defaultPalette?: Palette | {
38
+ export declare function factoryStore(reactiveState: Reactive<ReactiveState>, dataStore: Ref<DemoDataStore | null>, inputGuide: Ref<InputGuide<InputState>>, chartData: Ref<PlotDataAndSettings | null>, dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>, uniqueValuesData: Ref<UniqueValuesBySourceMap>, facetValuesData: Ref<UniqueValuesBySourceMap>, filterSuggestionsData: Ref<FilterSuggestionsBySourceMap>, filterLabelsInfo: Ref<FilterLabelsInfoBySourceMap>, readonlyInputs?: InputNamesByChartType[ChartType][], defaultPalette?: Palette | {
38
39
  categorical?: Palette;
39
40
  continuous?: Palette;
40
41
  }): Store;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/store.js CHANGED
@@ -1,61 +1,61 @@
1
- import { getControllerByType as L, getInitialStateByType as _ } from "@milaboratories/pf-plots";
2
- import { ref as r, computed as I, watch as g, toRaw as O, provide as W, reactive as H, inject as K } from "vue";
1
+ import { getControllerByType as L, getInitialStateByType as V } from "@milaboratories/pf-plots";
2
+ import { ref as c, computed as h, watch as g, toRaw as O, provide as W, reactive as M, inject as K } from "vue";
3
3
  import { getInitialAxesSettings as k, getInitialLayersSettings as q, getInitialStatisticsState as z, getInitialTemplate as J } from "./constantsCommon.js";
4
- import { updateDataBindAes as V } from "./dataBindAes.js";
5
- import { notEmpty as Q } from "./helpers.js";
6
- import { storeKey as M } from "./keys.js";
7
- import { addFixedOptionsToState as X } from "./utils/addFixedOptionsToState.js";
8
- import { calculateDiscreteGroups as x } from "./utils/calculateDiscreteGroups.js";
9
- import { copyJSON as h } from "./utils/copyJSON.js";
10
- import { loadDataForPlot as Y } from "./utils/createChartSettingsForRender/composeChartSettings.js";
11
- import { getUsedAesInMapping as Z } from "./utils/getUsedAesInMapping.js";
12
- import { getUniqueValuesFromReadyChartData as $, loadFilterLabelsForTitle as R } from "./utils/loadUniqueValuesToSave.js";
13
- import { tabKeys as P } from "./forms/index.js";
14
- import { DEFAULT_CONTINUOUS_PALETTE as tt, DEFAULT_CATEGORICAL_PALETTE as et } from "./constantsAesthetic.js";
15
- import { loadDefaultSources as j, isOptionsStateNeedsToBeUpdated as at, createUpdatedWithNewDefaultsOptionsState as ot } from "./utils/loadDefaultSources.js";
16
- function nt(e, a) {
17
- const s = h(_(e));
18
- if ((a == null ? void 0 : a.type) !== e)
19
- return s;
20
- const c = h(a);
4
+ import { updateDataBindAes as Q } from "./dataBindAes.js";
5
+ import { notEmpty as X } from "./helpers.js";
6
+ import { storeKey as _ } from "./keys.js";
7
+ import { addFixedOptionsToState as Y } from "./utils/addFixedOptionsToState.js";
8
+ import { calculateDiscreteGroups as j } from "./utils/calculateDiscreteGroups.js";
9
+ import { copyJSON as C } from "./utils/copyJSON.js";
10
+ import { loadDataForPlot as Z } from "./utils/createChartSettingsForRender/composeChartSettings.js";
11
+ import { getUsedAesInMapping as $ } from "./utils/getUsedAesInMapping.js";
12
+ import { getUniqueValuesFromReadyChartData as R, getFacetValuesFromReadyChartData as P, loadFilterLabelsForTitle as tt } from "./utils/loadUniqueValuesToSave.js";
13
+ import { tabKeys as et } from "./forms/index.js";
14
+ import { DEFAULT_CONTINUOUS_PALETTE as at, DEFAULT_CATEGORICAL_PALETTE as ot } from "./constantsAesthetic.js";
15
+ import { loadDefaultSources as H, isOptionsStateNeedsToBeUpdated as nt, createUpdatedWithNewDefaultsOptionsState as ut } from "./utils/loadDefaultSources.js";
16
+ function lt(t, e) {
17
+ const r = C(V(t));
18
+ if ((e == null ? void 0 : e.type) !== t)
19
+ return r;
20
+ const p = C(e);
21
21
  return {
22
- ...s,
23
- ...c,
22
+ ...r,
23
+ ...p,
24
24
  components: {
25
- ...s.components,
26
- ...c.components
25
+ ...r.components,
26
+ ...p.components
27
27
  }
28
28
  };
29
29
  }
30
- function ut(e, a) {
31
- return H({
32
- chartType: a,
30
+ function st(t, e) {
31
+ return M({
32
+ chartType: e,
33
33
  // from pf-plots
34
- optionsState: nt(a, e.optionsState),
34
+ optionsState: lt(e, t.optionsState),
35
35
  // contains user selected inputs
36
36
  // previously used default options
37
- usedDefaultOptions: e.usedDefaultOptions ? h(e.usedDefaultOptions ?? {}) : null,
37
+ usedDefaultOptions: t.usedDefaultOptions ? C(t.usedDefaultOptions ?? {}) : null,
38
38
  // local form states, updates directly in forms
39
- template: J(e.template, a),
40
- statisticsSettings: z(a, e.statisticsSettings),
41
- layersSettings: q(e.layersSettings),
42
- axesSettings: k(a, e.axesSettings),
39
+ template: J(t.template, e),
40
+ statisticsSettings: z(e, t.statisticsSettings),
41
+ layersSettings: q(t.layersSettings),
42
+ axesSettings: k(e, t.axesSettings),
43
43
  // common aesthetics data mapped on columns/axes values
44
- dataBindAes: h(e.dataBindAes ?? {}),
45
- chartScale: e.zoomState ?? 100,
44
+ dataBindAes: C(t.dataBindAes ?? {}),
45
+ chartScale: t.zoomState ?? 100,
46
46
  lassoControlsState: null,
47
- currentTab: e.currentTab === void 0 ? "dataMapping" : e.currentTab,
48
- tabDefaultState: P().reduce((s, c) => (s[c] = {}, s), {}),
47
+ currentTab: t.currentTab === void 0 ? "dataMapping" : t.currentTab,
48
+ tabDefaultState: et().reduce((r, p) => (r[p] = {}, r), {}),
49
49
  dendroInfoByClick: null,
50
50
  dendroSelectedNodeId: null,
51
51
  showTooltipHint: !1,
52
- tooltipHintWasShown: e.tooltipHintWasShown ?? !1
52
+ tooltipHintWasShown: t.tooltipHintWasShown ?? !1
53
53
  });
54
54
  }
55
- function lt(e, a, s, c, m, v, G, b, C, t) {
55
+ function it(t, e, r, p, v, f, G, b, w, a, o) {
56
56
  return {
57
- reactive: e,
58
- loading: H({
57
+ reactive: t,
58
+ loading: M({
59
59
  initialInputGuide: !0,
60
60
  initialCharts: !0,
61
61
  initialDefaults: !0,
@@ -66,140 +66,146 @@ function lt(e, a, s, c, m, v, G, b, C, t) {
66
66
  dendroTableData: !1
67
67
  }),
68
68
  commonHelpersData: {
69
- primaryGroups: I(
70
- () => x(
71
- e.optionsState,
72
- v.value,
69
+ primaryGroups: h(
70
+ () => j(
71
+ t.optionsState,
72
+ f.value,
73
73
  "primaryGrouping"
74
74
  )
75
75
  ),
76
- secondaryGroups: I(
77
- () => x(
78
- e.optionsState,
79
- v.value,
76
+ secondaryGroups: h(
77
+ () => j(
78
+ t.optionsState,
79
+ f.value,
80
80
  "secondaryGrouping"
81
81
  )
82
82
  ),
83
- usedAesInMapping: I(
84
- () => Z(
85
- e.chartType,
86
- e.template,
87
- e.layersSettings,
88
- e.statisticsSettings,
89
- e.optionsState,
90
- s.value
83
+ usedAesInMapping: h(
84
+ () => $(
85
+ t.chartType,
86
+ t.template,
87
+ t.layersSettings,
88
+ t.statisticsSettings,
89
+ t.optionsState,
90
+ r.value
91
91
  )
92
92
  ),
93
- dendroTableData: m
93
+ dendroTableData: v
94
94
  },
95
- controller: L(e.chartType),
96
- columnsDataStore: a,
97
- inputGuide: s,
98
- chartData: c,
99
- uniqueValuesData: v,
100
- filterSuggestionsData: G,
101
- filterLabelsInfo: b,
102
- readonlyInputs: C,
95
+ controller: L(t.chartType),
96
+ columnsDataStore: e,
97
+ inputGuide: r,
98
+ chartData: p,
99
+ uniqueValuesData: f,
100
+ facetValuesData: G,
101
+ filterSuggestionsData: b,
102
+ filterLabelsInfo: w,
103
+ readonlyInputs: a,
103
104
  defaultPalette: {
104
- categorical: typeof t == "object" && t.categorical ? t.categorical : typeof t == "string" ? t : et,
105
- continuous: typeof t == "object" && t.continuous ? t.continuous : typeof t == "string" ? t : tt
105
+ categorical: typeof o == "object" && o.categorical ? o.categorical : typeof o == "string" ? o : ot,
106
+ continuous: typeof o == "object" && o.continuous ? o.continuous : typeof o == "string" ? o : at
106
107
  }
107
108
  };
108
109
  }
109
- function ht(e, a, s, c, m, v, G, b, C) {
110
- const t = ut(e, s), f = L(t.chartType), y = r(L(t.chartType).getEmptyInputGuide(t.optionsState)), F = r(null), S = r({}), T = r({}), w = r({}), N = r(null), o = I(() => lt(
111
- t,
110
+ function Gt(t, e, r, p, v, f, G, b, w) {
111
+ const a = st(t, r), o = L(a.chartType), y = c(L(a.chartType).getEmptyInputGuide(a.optionsState)), N = c(null), S = c({}), D = c({}), T = c({}), A = c({}), x = c(null), n = h(() => it(
112
112
  a,
113
+ e,
113
114
  y,
114
- F,
115
115
  N,
116
+ x,
116
117
  S,
118
+ D,
117
119
  T,
118
- w,
120
+ A,
119
121
  b,
120
- C
122
+ w
121
123
  ));
122
- g(() => a.value, () => {
123
- w.value = {}, S.value = {}, T.value = {};
124
+ g(() => e.value, () => {
125
+ A.value = {}, S.value = {}, D.value = {}, T.value = {};
124
126
  });
125
- const A = r(0);
127
+ const E = c(0);
126
128
  g([
127
- () => a.value,
128
- () => c.value
129
- ], async ([n, u]) => {
130
- if (!u || (u == null ? void 0 : u.length) === 0 || !n)
129
+ () => e.value,
130
+ () => p.value
131
+ ], async ([u, l]) => {
132
+ if (!l || (l == null ? void 0 : l.length) === 0 || !u)
131
133
  return;
132
- A.value++;
133
- const l = A.value;
134
- o.value.loading.defaults = !0, t.usedDefaultOptions === null && (o.value.loading.initialInputGuide = !0);
135
- const i = await j(n, u, t.usedDefaultOptions);
136
- if (A.value !== l)
134
+ E.value++;
135
+ const s = E.value;
136
+ n.value.loading.defaults = !0, a.usedDefaultOptions === null && (n.value.loading.initialInputGuide = !0);
137
+ const i = await H(u, l, a.usedDefaultOptions);
138
+ if (E.value !== s)
137
139
  return;
138
- const { usedDefaultOptions: p, optionsState: d } = t;
139
- if (!at(d, p, i)) {
140
- o.value.loading.defaults = !1;
140
+ const { usedDefaultOptions: d, optionsState: m } = a;
141
+ if (!nt(m, d, i)) {
142
+ n.value.loading.defaults = !1;
141
143
  return;
142
144
  }
143
- o.value.loading.initialCharts = !0, t.optionsState.components = ot(d, p, i), t.usedDefaultOptions = i;
145
+ n.value.loading.initialCharts = !0, a.optionsState.components = ut(m, d, i), a.usedDefaultOptions = i;
144
146
  }, { immediate: !0 });
145
- const E = r(0);
147
+ const B = c(0);
146
148
  g([
147
- () => t.optionsState,
148
- () => a.value,
149
- () => m.value
150
- ], async ([n, u, l]) => {
151
- if (c.value === null || a.value === null)
149
+ () => a.optionsState,
150
+ () => e.value,
151
+ () => v.value
152
+ ], async ([u, l, s]) => {
153
+ if (p.value === null || e.value === null)
152
154
  return;
153
- E.value++;
154
- const i = E.value;
155
- o.value.loading.inputGuide = !0;
156
- const p = u && l ? Object.values(await j(u, l, null, !1)).flatMap((D) => D.map((U) => U.selectedSource)) : [], d = u ? await f.calculateOptions(O(u), n, p, v, G) : f.getEmptyInputGuide(n);
157
- i === E.value && (y.value = d, o.value.loading.defaults = !1, o.value.loading.inputGuide = !1, o.value.loading.initialInputGuide && (o.value.loading.initialInputGuide = !1));
158
- }, { immediate: !0, deep: !0 });
159
- const B = r(0);
160
- if (g(() => y.value, async (n) => {
161
155
  B.value++;
162
- const u = B.value;
163
- o.value.loading.chartData = !0;
164
- const l = O(a.value), i = await Y(n, t, l, m.value);
165
- if (i && l) {
166
- const { uniqueValues: p, filterSuggestions: d } = await $(
156
+ const i = B.value;
157
+ n.value.loading.inputGuide = !0;
158
+ const d = l && s ? Object.values(await H(l, s, null, !1)).flatMap((I) => I.map((F) => F.selectedSource)) : [], m = l ? await o.calculateOptions(O(l), u, d, f, G) : o.getEmptyInputGuide(u);
159
+ i === B.value && (y.value = m, n.value.loading.defaults = !1, n.value.loading.inputGuide = !1, n.value.loading.initialInputGuide && (n.value.loading.initialInputGuide = !1));
160
+ }, { immediate: !0, deep: !0 });
161
+ const U = c(0);
162
+ if (g(() => y.value, async (u) => {
163
+ U.value++;
164
+ const l = U.value;
165
+ n.value.loading.chartData = !0;
166
+ const s = O(e.value), i = await Z(u, a, s, v.value);
167
+ if (i && s) {
168
+ const { uniqueValues: d, filterSuggestions: m } = await R(
167
169
  i,
168
- n,
169
- t.optionsState.components,
170
- f,
171
- l,
170
+ u,
171
+ a.optionsState.components,
172
+ o,
173
+ s,
172
174
  O(T.value)
173
175
  );
174
- S.value = p, T.value = d, V(t.optionsState, t.dataBindAes, S.value);
175
- }
176
- w.value = l ? await R(t.optionsState.components, n, f, l) : {}, u === B.value && (F.value = i, n.ready && (o.value.loading.initialCharts = !1), o.value.loading.chartData = !1);
177
- }, { immediate: !0, deep: !0 }), t.chartType === "dendro") {
178
- const n = r(0);
176
+ S.value = d, D.value = P(
177
+ i,
178
+ a.optionsState.components
179
+ ), T.value = m, Q(a.optionsState, a.dataBindAes, S.value);
180
+ } else
181
+ D.value = {};
182
+ A.value = s ? await tt(a.optionsState.components, u, o, s) : {}, l === U.value && (N.value = i, u.ready && (n.value.loading.initialCharts = !1), n.value.loading.chartData = !1);
183
+ }, { immediate: !0, deep: !0 }), a.chartType === "dendro") {
184
+ const u = c(0);
179
185
  g([
180
- () => t.optionsState,
181
- () => a.value,
186
+ () => a.optionsState,
187
+ () => e.value,
182
188
  () => y.value.readyData,
183
- () => m.value
184
- ], async ([u, l, i, p]) => {
185
- if (i && l) {
186
- n.value++;
187
- const d = n.value;
188
- o.value.loading.dendroTableData = !0;
189
- const D = await X(u, l, p), U = await f.createTableData(l, D);
190
- n.value === d && (N.value = U), o.value.loading.dendroTableData = !1;
189
+ () => v.value
190
+ ], async ([l, s, i, d]) => {
191
+ if (i && s) {
192
+ u.value++;
193
+ const m = u.value;
194
+ n.value.loading.dendroTableData = !0;
195
+ const I = await Y(l, s, d), F = await o.createTableData(s, I);
196
+ u.value === m && (x.value = F), n.value.loading.dendroTableData = !1;
191
197
  }
192
198
  }, { immediate: !0 });
193
199
  }
194
- return W(M, o), o;
200
+ return W(_, n), n;
195
201
  }
196
- function Gt() {
197
- return Q(K(M), "Empty store");
202
+ function bt() {
203
+ return X(K(_), "Empty store");
198
204
  }
199
205
  export {
200
- ut as createReactiveState,
201
- lt as factoryStore,
202
- ht as provideStore,
203
- Gt as useStore
206
+ st as createReactiveState,
207
+ it as factoryStore,
208
+ Gt as provideStore,
209
+ bt as useStore
204
210
  };
205
211
  //# sourceMappingURL=store.js.map