@milaboratories/graph-maker 1.1.177 → 1.1.178
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.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/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.js.map +1 -1
- 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.js +4 -4
- 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":"StackedBar.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/discrete/StackedBar.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { computed } from
|
|
1
|
+
{"version":3,"file":"StackedBar.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/discrete/StackedBar.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { computed } from 'vue';\nimport type { AesOption } from '../../../../components/AesSettings/types';\nimport type { AestheticMappingCategorical } from '../../../../dataBindAes';\nimport { useDefaultAes } from './utils';\nimport type { DiscreteUIState } from '@milaboratories/pf-plots';\nimport {\n DEFAULT_BLACK,\n DEFAULT_WHITE,\n} from '../../../../constantsAesthetic';\nimport AesSelector from '../../AesSelector.vue';\nimport { PlCheckbox, Slider, PlDropdown } from '@platforma-sdk/ui-vue';\n\nconst store = useStore();\nconst layer = 'stackedBar';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nconst optionsState = computed(\n () => store.value.reactive.optionsState as DiscreteUIState,\n);\n\nconst fillColor = computed(() =>\n useDefaultAes(settings.value.fillColor, optionsState.value, DEFAULT_WHITE),\n);\nconst lineColor = computed(() =>\n useDefaultAes(settings.value.lineColor, optionsState.value, DEFAULT_BLACK),\n);\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'fillColor' | 'lineColor',\n) {\n if (colorOption.type === 'dataCategorical') {\n store.value.reactive.layersSettings[layer][field] = {\n type: colorOption.inputName,\n };\n } else {\n store.value.reactive.layersSettings[layer][field] = value;\n }\n if (colorOption.type === 'dataCategorical' && typeof value !== 'string') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n\nconst HEIGHT_OPTIONS: { text: string; value: string }[] = [\n { text: 'Sum', value: 'sum' },\n { text: 'Min', value: 'min' },\n { text: 'Max', value: 'max' },\n { text: 'Mean', value: 'mean' },\n { text: 'Median', value: 'median' },\n];\n\nconst opacity = computed({\n get: () => settings.value.opacity * 100,\n set: (newValue: number) => {\n settings.value.opacity = newValue / 100;\n },\n});\n</script>\n\n<template>\n <AesSelector\n label=\"Fill color\"\n form-title=\"Fill Color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"fillColor\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'fillColor')\"\n />\n <AesSelector\n label=\"Stroke color\"\n form-title=\"Stroke Color Settings\"\n form-back-title=\"Layers\"\n type=\"stroke\"\n :selected=\"lineColor\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'lineColor')\"\n />\n <div class=\"input-item\" @click.stop>\n <PlDropdown\n v-model=\"settings.height\"\n label=\"Height\"\n :options=\"HEIGHT_OPTIONS\"\n />\n </div>\n <Slider\n v-model=\"opacity\"\n label=\"Opacity\"\n :min=\"0\"\n :max=\"100\"\n :step=\"1\"\n :breakpoints=\"false\"\n measure=\"%\"\n />\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.normalize\" />\n <span>Normalize</span>\n </div>\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","fillColor","useDefaultAes","DEFAULT_WHITE","lineColor","DEFAULT_BLACK","onUpdate","value","colorOption","field","HEIGHT_OPTIONS","opacity","newValue","_createVNode","AesSelector","_cache","v","c","_createElementVNode","_unref","PlDropdown","$event","Slider","_hoisted_1","PlCheckbox"],"mappings":"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"}
|
|
@@ -89,14 +89,14 @@ const w = { class: "checkbox-item" }, N = { class: "checkbox-item" }, Q = { key:
|
|
|
89
89
|
}, null, 8, ["selected"])
|
|
90
90
|
])) : x("", !0),
|
|
91
91
|
s(u(E), {
|
|
92
|
+
modelValue: v.value,
|
|
93
|
+
"onUpdate:modelValue": e[7] || (e[7] = (t) => v.value = t),
|
|
92
94
|
label: "Opacity",
|
|
93
95
|
min: 0,
|
|
94
96
|
max: 100,
|
|
95
97
|
step: 1,
|
|
96
98
|
breakpoints: !1,
|
|
97
|
-
measure: "%"
|
|
98
|
-
modelValue: v.value,
|
|
99
|
-
"onUpdate:modelValue": e[7] || (e[7] = (t) => v.value = t)
|
|
99
|
+
measure: "%"
|
|
100
100
|
}, null, 8, ["modelValue"])
|
|
101
101
|
], 64));
|
|
102
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Violin.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/discrete/Violin.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport {Slider, PlCheckbox} from
|
|
1
|
+
{"version":3,"file":"Violin.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/discrete/Violin.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { Slider, PlCheckbox } from '@platforma-sdk/ui-vue';\nimport { computed } from 'vue';\nimport type { AesOption } from '../../../../components/AesSettings/types';\nimport type { AestheticMappingCategorical } from '../../../../dataBindAes';\nimport { useDefaultAes } from './utils';\nimport type { DiscreteUIState } from '@milaboratories/pf-plots';\nimport {\n DEFAULT_BLACK,\n DEFAULT_WHITE,\n} from '../../../../constantsAesthetic';\nimport AesSelector from '../../AesSelector.vue';\nimport type { LineType } from '../../../../components/AesSettings/types';\n\nconst store = useStore();\nconst layer = 'violin';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nconst optionsState = computed(\n () => store.value.reactive.optionsState as DiscreteUIState,\n);\n\nconst fillColor = computed(() =>\n useDefaultAes(settings.value.fillColor, optionsState.value, DEFAULT_WHITE),\n);\nconst lineColor = computed(() =>\n useDefaultAes(settings.value.lineColor, optionsState.value, DEFAULT_BLACK),\n);\nconst lineType = computed(() => settings.value.lineType);\nconst medianLineType = computed(() => settings.value.medianLineStyle);\nconst quartilesLineType = computed(() => settings.value.quartilesLineStyle);\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'fillColor' | 'lineColor',\n) {\n if (colorOption.type === 'dataCategorical') {\n store.value.reactive.layersSettings[layer][field] = {\n type: colorOption.inputName,\n };\n } else {\n store.value.reactive.layersSettings[layer][field] = value;\n }\n if (colorOption.type === 'dataCategorical' && typeof value !== 'string') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\nfunction onUpdateLineType(\n value: LineType | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'lineType',\n) {\n store.value.reactive.layersSettings[layer][field]\n = typeof value === 'object' ? { type: colorOption.value } : value;\n if (colorOption.type === 'dataCategorical' && typeof value === 'object') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n\nconst opacity = computed({\n get: () => settings.value.opacity * 100,\n set: (newValue: number) => {\n settings.value.opacity = newValue / 100;\n },\n});\n</script>\n\n<template>\n <AesSelector\n label=\"Fill color\"\n form-title=\"Fill Color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"fillColor\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'fillColor')\"\n />\n <AesSelector\n label=\"Stroke color\"\n form-title=\"Stroke Color Settings\"\n form-back-title=\"Layers\"\n type=\"stroke\"\n :selected=\"lineColor\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'lineColor')\"\n />\n <AesSelector\n label=\"Line Type\"\n form-title=\"Line Type Settings\"\n form-back-title=\"Layers\"\n type=\"lineType\"\n :possible-aes-source-inputs=\"[]\"\n :selected=\"lineType\"\n @aes-update=\"(v, c) => onUpdateLineType(v, c, 'lineType')\"\n />\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.trim\" />\n <span>Trim</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.showQuartiles\" />\n <span>Show median and quartiles</span>\n </div>\n <div v-if=\"settings.showQuartiles\">\n <AesSelector\n label=\"Madian Line Type\"\n form-title=\"Line Type Settings\"\n form-back-title=\"Layers\"\n type=\"lineType\"\n :possible-aes-source-inputs=\"[]\"\n :selected=\"medianLineType\"\n @aes-update=\"(v) => store.reactive.layersSettings[layer].medianLineStyle = v\"\n />\n <AesSelector\n label=\"Quartiles Line Type\"\n form-title=\"Line Type Settings\"\n form-back-title=\"Layers\"\n type=\"lineType\"\n :possible-aes-source-inputs=\"[]\"\n :selected=\"quartilesLineType\"\n @aes-update=\"(v) => store.reactive.layersSettings[layer].quartilesLineStyle = v\"\n />\n </div>\n <Slider\n v-model=\"opacity\"\n label=\"Opacity\"\n :min=\"0\"\n :max=\"100\"\n :step=\"1\"\n :breakpoints=\"false\"\n measure=\"%\"\n />\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","fillColor","useDefaultAes","DEFAULT_WHITE","lineColor","DEFAULT_BLACK","lineType","medianLineType","quartilesLineType","onUpdate","value","colorOption","field","onUpdateLineType","opacity","newValue","_createVNode","AesSelector","_cache","v","c","_createElementVNode","_hoisted_1","_unref","PlCheckbox","$event","_hoisted_2","_createElementBlock","_hoisted_3","Slider"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../src/forms/LayersForm/Layer/discrete/utils.ts"],"sourcesContent":["import { DiscreteUIState } from
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/forms/LayersForm/Layer/discrete/utils.ts"],"sourcesContent":["import type { DiscreteUIState } from '@milaboratories/pf-plots';\nimport type { FixedOrMappedAes } from '../../../../constantsCommon';\n\nexport function useDefaultAes<T extends FixedOrMappedAes>(\n value: T | null,\n optionsState: DiscreteUIState,\n defaultValue: T,\n onlySecondaryAvailable = false,\n): T {\n const hasPrimaryGrouping\n = optionsState.components.primaryGrouping.selectorStates.length > 0;\n const hasSecondaryGrouping\n = optionsState.components.secondaryGrouping.selectorStates.length > 0;\n if (value === null) {\n // not selected by user\n if (hasSecondaryGrouping) {\n return { type: 'secondaryGrouping' } as T;\n }\n if (hasPrimaryGrouping && !onlySecondaryAvailable) {\n return { type: 'primaryGrouping' } as T;\n }\n return defaultValue;\n }\n return value;\n}\n"],"names":["useDefaultAes","value","optionsState","defaultValue","onlySecondaryAvailable","hasPrimaryGrouping","hasSecondaryGrouping"],"mappings":"AAGO,SAASA,EACdC,GACAC,GACAC,GACAC,IAAyB,IACtB;AACH,QAAMC,IACFH,EAAa,WAAW,gBAAgB,eAAe,SAAS,GAC9DI,IACFJ,EAAa,WAAW,kBAAkB,eAAe,SAAS;AACtE,SAAID,MAAU,OAERK,IACK,EAAE,MAAM,oBAAA,IAEbD,KAAsB,CAACD,IAClB,EAAE,MAAM,kBAAA,IAEVD,IAEFF;AACT;"}
|
|
@@ -9,10 +9,10 @@ import { PlBtnGroup as p, PlCheckbox as A, PlNumberField as F } from "@platforma
|
|
|
9
9
|
const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w = { class: "checkbox-item" }, H = { class: "checkbox-item" }, X = { class: "button-group-item" }, Y = {
|
|
10
10
|
class: "button-group-item",
|
|
11
11
|
style: { display: "flex", alignItems: "end" }
|
|
12
|
-
},
|
|
12
|
+
}, Z = "heatmap", te = /* @__PURE__ */ y({
|
|
13
13
|
__name: "Heatmap",
|
|
14
|
-
setup(
|
|
15
|
-
const s = U(), t = m(() => s.value.reactive.layersSettings
|
|
14
|
+
setup(j) {
|
|
15
|
+
const s = U(), t = m(() => s.value.reactive.layersSettings[Z]), b = m(() => s.value.reactive.optionsState), f = m(() => s.value.inputGuide.value), i = m(() => {
|
|
16
16
|
var a;
|
|
17
17
|
return (a = b.value.components.value.selectorStates[0]) == null ? void 0 : a.selectedSource;
|
|
18
18
|
}), N = m(() => {
|
|
@@ -64,20 +64,20 @@ const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w
|
|
|
64
64
|
})) : I("", !0),
|
|
65
65
|
u("div", R, [
|
|
66
66
|
o(n(p), {
|
|
67
|
+
modelValue: t.value.normalizationDirection,
|
|
68
|
+
"onUpdate:modelValue": e[2] || (e[2] = (l) => t.value.normalizationDirection = l),
|
|
67
69
|
label: "Normalize by",
|
|
68
70
|
options: S,
|
|
69
|
-
compact: !0
|
|
70
|
-
modelValue: t.value.normalizationDirection,
|
|
71
|
-
"onUpdate:modelValue": e[2] || (e[2] = (l) => t.value.normalizationDirection = l)
|
|
71
|
+
compact: !0
|
|
72
72
|
}, null, 8, ["modelValue"])
|
|
73
73
|
]),
|
|
74
74
|
u("div", $, [
|
|
75
75
|
o(n(p), {
|
|
76
|
+
modelValue: t.value.normalizationMethod,
|
|
77
|
+
"onUpdate:modelValue": e[3] || (e[3] = (l) => t.value.normalizationMethod = l),
|
|
76
78
|
label: "Normalization method",
|
|
77
79
|
options: O,
|
|
78
|
-
compact: !0
|
|
79
|
-
modelValue: t.value.normalizationMethod,
|
|
80
|
-
"onUpdate:modelValue": e[3] || (e[3] = (l) => t.value.normalizationMethod = l)
|
|
80
|
+
compact: !0
|
|
81
81
|
}, null, 8, ["modelValue"])
|
|
82
82
|
]),
|
|
83
83
|
u("div", w, [
|
|
@@ -96,44 +96,44 @@ const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w
|
|
|
96
96
|
]),
|
|
97
97
|
u("div", X, [
|
|
98
98
|
o(n(p), {
|
|
99
|
+
modelValue: t.value.aggregationMethod,
|
|
100
|
+
"onUpdate:modelValue": e[6] || (e[6] = (l) => t.value.aggregationMethod = l),
|
|
99
101
|
label: "Aggregation method",
|
|
100
102
|
options: x,
|
|
101
|
-
compact: !0
|
|
102
|
-
modelValue: t.value.aggregationMethod,
|
|
103
|
-
"onUpdate:modelValue": e[6] || (e[6] = (l) => t.value.aggregationMethod = l)
|
|
103
|
+
compact: !0
|
|
104
104
|
}, null, 8, ["modelValue"])
|
|
105
105
|
]),
|
|
106
106
|
u("div", Y, [
|
|
107
107
|
o(n(p), {
|
|
108
|
-
label: "Treat NA value as:",
|
|
109
|
-
options: T,
|
|
110
|
-
compact: !0,
|
|
111
108
|
modelValue: g.value,
|
|
112
109
|
"onUpdate:modelValue": [
|
|
113
110
|
e[7] || (e[7] = (l) => g.value = l),
|
|
114
111
|
e[8] || (e[8] = (l) => {
|
|
115
112
|
l === "custom" ? t.value.NAValueAs = c.value : t.value.NAValueAs = l;
|
|
116
113
|
})
|
|
117
|
-
]
|
|
114
|
+
],
|
|
115
|
+
label: "Treat NA value as:",
|
|
116
|
+
options: T,
|
|
117
|
+
compact: !0
|
|
118
118
|
}, null, 8, ["modelValue"]),
|
|
119
119
|
o(n(F), {
|
|
120
|
-
style: { height: "33px", marginLeft: "16px", width: "75px" },
|
|
121
|
-
disabled: g.value !== "custom",
|
|
122
|
-
label: "NA value",
|
|
123
|
-
useIncrementButtons: !1,
|
|
124
120
|
modelValue: c.value,
|
|
125
121
|
"onUpdate:modelValue": [
|
|
126
122
|
e[9] || (e[9] = (l) => c.value = l),
|
|
127
123
|
e[10] || (e[10] = (l) => {
|
|
128
124
|
l !== void 0 && (t.value.NAValueAs = l);
|
|
129
125
|
})
|
|
130
|
-
]
|
|
131
|
-
|
|
126
|
+
],
|
|
127
|
+
style: { height: "33px", marginLeft: "16px", width: "75px" },
|
|
128
|
+
disabled: g.value !== "custom",
|
|
129
|
+
label: "NA value",
|
|
130
|
+
useIncrementButtons: !1
|
|
131
|
+
}, null, 8, ["modelValue", "disabled"])
|
|
132
132
|
])
|
|
133
133
|
], 64));
|
|
134
134
|
}
|
|
135
135
|
});
|
|
136
136
|
export {
|
|
137
|
-
|
|
137
|
+
te as default
|
|
138
138
|
};
|
|
139
139
|
//# sourceMappingURL=Heatmap.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Heatmap.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/Heatmap.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { HeatmapLayer } from '../../../../types';\nimport { computed, ref } from 'vue';\nimport {\n DEFAULT_CONTINUOUS_PALETTE,\n PALETTE_MAP
|
|
1
|
+
{"version":3,"file":"Heatmap.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/Heatmap.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport type { HeatmapLayer } from '../../../../types';\nimport { computed, ref } from 'vue';\nimport {\n DEFAULT_CONTINUOUS_PALETTE,\n PALETTE_MAP,\n} from '../../../../constantsAesthetic';\nimport type { ContinuousPalette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\nimport type { HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlNumberField } from '@platforma-sdk/ui-vue';\n\nconst store = useStore();\nconst layer: HeatmapLayer = 'heatmap';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<HeatmapUIState>);\n\nconst dataSource = computed(() => optionsState.value.components.value.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => dataSource.value ? store.value.reactive.dataBindAes[dataSource.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? DEFAULT_CONTINUOUS_PALETTE);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (dataSource.value) {\n store.value.reactive.dataBindAes[dataSource.value] = createContinuousMappingFromPalette(value);\n }\n}\n\nconst NORMALIZATION_DIRECTION: SimpleOption[] = [\n { label: 'None', value: null },\n { label: 'Columns', value: 'column' },\n { label: 'Rows', value: 'row' },\n];\nconst NORMALIZATION_METHOD: SimpleOption[] = [\n { label: 'z-score', value: 'standardScaling' },\n { label: 'Min-max', value: 'meanNormalization' },\n];\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\nconst AGGREGATION_METHOD: SimpleOption[] = [\n { label: 'Mean', value: 'mean' },\n { label: 'Min', value: 'min' },\n { label: 'Max', value: 'max' },\n { label: 'Median', value: 'median' },\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs === null ? null : 'custom');\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n</script>\n\n<template>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n <FormWrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <PalettesForm\n :selected=\"palette\"\n :categorical=\"dataSource ? inputGuide.getSourceInfo(dataSource).type === 'String' : false\"\n @select=\"onPaletteSelect\"\n />\n </FormWrapper>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationDirection\"\n label=\"Normalize by\"\n :options=\"NORMALIZATION_DIRECTION\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationMethod\"\n label=\"Normalization method\"\n :options=\"NORMALIZATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByX\"/>\n <span>Aggregate X groups</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByY\"/>\n <span>Aggregate Y groups</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.aggregationMethod\"\n label=\"Aggregation method\"\n :options=\"AGGREGATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\" :style=\"{display: 'flex', alignItems: 'end'}\">\n <PlBtnGroup\n v-model=\"NAValueOption\"\n label=\"Treat NA value as:\"\n :options=\"NA_VALUE_OPTIONS\"\n :compact=\"true\"\n @update:modelValue=\"(value:unknown) => {\n if (value === 'custom') {\n settings.NAValueAs = customNA;\n } else {\n settings.NAValueAs = value as number|null;\n }\n }\"\n />\n <PlNumberField\n v-model=\"customNA\"\n :style=\"{height: '33px', marginLeft: '16px', width: '75px'}\"\n :disabled=\"NAValueOption !== 'custom'\"\n label=\"NA value\"\n :useIncrementButtons=\"false\"\n @update:modelValue=\"(value:unknown) => {\n if (value !== undefined) {\n settings.NAValueAs = value as number;\n }\n }\"\n />\n </div>\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","inputGuide","dataSource","_a","savedDataValuePalette","palettesOpen","ref","palette","DEFAULT_CONTINUOUS_PALETTE","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","NA_VALUE_OPTIONS","AGGREGATION_METHOD","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","PlBtnGroup","_cache","$event","_hoisted_2","_hoisted_3","PlCheckbox","_hoisted_4","_hoisted_5","_hoisted_6","PlNumberField"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as g, computed as r, reactive as
|
|
1
|
+
import { defineComponent as g, computed as r, reactive as y, ref as f, createElementBlock as _, openBlock as s, Fragment as S, renderList as P, createElementVNode as C, createVNode as T, createBlock as k, createCommentVNode as B, toDisplayString as L, unref as x, withCtx as F } from "vue";
|
|
2
2
|
import { useStore as N } from "../../../../store.js";
|
|
3
3
|
import { DEFAULT_CATEGORICAL_PALETTE as $, DEFAULT_CONTINUOUS_PALETTE as I, PALETTE_MAP as O } from "../../../../constantsAesthetic.js";
|
|
4
4
|
import { createContinuousMappingFromPalette as U } from "../../../../dataBindAes.js";
|
|
@@ -13,7 +13,7 @@ const V = { class: "section-title" }, q = /* @__PURE__ */ g({
|
|
|
13
13
|
), i = r(() => {
|
|
14
14
|
const n = p.value.components.annotationsX.selectorStates.map((t) => t.selectedSource), e = p.value.components.annotationsY.selectorStates.map((t) => t.selectedSource);
|
|
15
15
|
return [...n, ...e];
|
|
16
|
-
}), c = r(() => i.value.reduce((n, e) => (n[e] = A.value.getSourceInfo(e), n), {})), a =
|
|
16
|
+
}), c = r(() => i.value.reduce((n, e) => (n[e] = A.value.getSourceInfo(e), n), {})), a = y(i.value.reduce((n, e) => {
|
|
17
17
|
var v, d;
|
|
18
18
|
const u = ((v = c.value[e]) == null ? void 0 : v.type) === "String" ? $ : I;
|
|
19
19
|
return n[e] = ((d = o.value.reactive.dataBindAes[e]) == null ? void 0 : d.palette) ?? u, n;
|
|
@@ -22,7 +22,7 @@ const V = { class: "section-title" }, q = /* @__PURE__ */ g({
|
|
|
22
22
|
const e = m.value;
|
|
23
23
|
e && (a[e] = n, o.value.reactive.dataBindAes[e] = U(n)), l.value = e;
|
|
24
24
|
}
|
|
25
|
-
return (n, e) => (s(!0), _(S, null,
|
|
25
|
+
return (n, e) => (s(!0), _(S, null, P(i.value, (t) => (s(), _(S, { key: t }, [
|
|
26
26
|
C("div", V, [
|
|
27
27
|
C("span", null, L(c.value[t].label), 1)
|
|
28
28
|
]),
|
|
@@ -35,7 +35,7 @@ const V = { class: "section-title" }, q = /* @__PURE__ */ g({
|
|
|
35
35
|
l.value = t, m.value = t;
|
|
36
36
|
}
|
|
37
37
|
}, null, 8, ["title", "palette", "onButtonClick"]),
|
|
38
|
-
l.value === t ? (s(),
|
|
38
|
+
l.value === t ? (s(), k(G, {
|
|
39
39
|
key: 0,
|
|
40
40
|
title: "Color Palette",
|
|
41
41
|
"back-title": "Color mapping",
|
|
@@ -49,8 +49,8 @@ const V = { class: "section-title" }, q = /* @__PURE__ */ g({
|
|
|
49
49
|
}, null, 8, ["selected", "categorical"])
|
|
50
50
|
]),
|
|
51
51
|
_: 2
|
|
52
|
-
}, 1024)) :
|
|
53
|
-
], 64))),
|
|
52
|
+
}, 1024)) : B("", !0)
|
|
53
|
+
], 64))), 128));
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeatmapAnnotations.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { computed, reactive, ref } from 'vue';\nimport {\n DEFAULT_CATEGORICAL_PALETTE,\n DEFAULT_CONTINUOUS_PALETTE,\n PALETTE_MAP
|
|
1
|
+
{"version":3,"file":"HeatmapAnnotations.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { computed, reactive, ref } from 'vue';\nimport {\n DEFAULT_CATEGORICAL_PALETTE,\n DEFAULT_CONTINUOUS_PALETTE,\n PALETTE_MAP,\n} from '../../../../constantsAesthetic';\nimport type { ContinuousPalette, Palette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\nimport type { AxisData, ColumnData, HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(\n () => store.value.inputGuide.value as InputGuide<HeatmapUIState>,\n);\n\nconst annotationSources = computed(() => {\n const x = optionsState.value.components.annotationsX.selectorStates.map((s) => s.selectedSource);\n const y = optionsState.value.components.annotationsY.selectorStates.map((s) => s.selectedSource);\n return [...x, ...y];\n});\n\nconst annotationsInfo = computed(() => annotationSources.value.reduce((res: Record<string, AxisData | ColumnData>, source) => {\n res[source] = inputGuide.value.getSourceInfo(source);\n return res;\n}, {}));\n\nconst palettes = reactive(annotationSources.value.reduce((res: Record<string, Palette>, source) => {\n const valueType = annotationsInfo.value[source]?.type;\n const defaultPalette = valueType === 'String' ? DEFAULT_CATEGORICAL_PALETTE : DEFAULT_CONTINUOUS_PALETTE;\n res[source] = store.value.reactive.dataBindAes[source]?.palette ?? defaultPalette;\n return res;\n}, {}));\n\nconst palettesOpen = ref<string | null>(null);\nconst currentSource = ref<string | null>(null); // use the same palette form for all the annotations; current is last clicked\nfunction onPaletteSelect(value: Palette) {\n const source = currentSource.value;\n if (source) {\n palettes[source] = value;\n // TODO: categorical mapping, detailed continuous mapping (with range), log continuous mapping\n store.value.reactive.dataBindAes[source] = createContinuousMappingFromPalette(value as ContinuousPalette);\n }\n palettesOpen.value = source;\n}\n</script>\n\n<template>\n <template v-for=\"source of annotationSources\" :key=\"source\">\n <div class=\"section-title\"><span>{{ annotationsInfo[source].label }}</span></div>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palettes[source]].title\"\n :palette=\"palettes[source]\"\n :style=\"{marginBottom:'24px'}\"\n @button-click=\"palettesOpen = source; currentSource = source;\"\n />\n <FormWrapper\n v-if=\"palettesOpen === source\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = null\"\n >\n <PalettesForm\n :selected=\"palettes[source]\" :categorical=\"annotationsInfo[source].type === 'String'\"\n @select=\"onPaletteSelect\"\n />\n </FormWrapper>\n </template>\n</template>\n"],"names":["store","useStore","optionsState","computed","inputGuide","annotationSources","x","s","y","annotationsInfo","res","source","palettes","reactive","defaultPalette","_a","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","_b","palettesOpen","ref","currentSource","onPaletteSelect","value","createContinuousMappingFromPalette","_createElementBlock","_Fragment","_renderList","_createElementVNode","_hoisted_1","_toDisplayString","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm"],"mappings":";;;;;;;;;;AAeA,UAAMA,IAAQC,EAAA,GACRC,IAAeC,EAAS,MAAMH,EAAM,MAAM,SAAS,YAA8B,GACjFI,IAAaD;AAAA,MACjB,MAAMH,EAAM,MAAM,WAAW;AAAA,IAAA,GAGzBK,IAAoBF,EAAS,MAAM;AACvC,YAAMG,IAAIJ,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc,GACzFC,IAAIN,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc;AAC/F,aAAO,CAAC,GAAGD,GAAG,GAAGE,CAAC;AAAA,IACpB,CAAC,GAEKC,IAAkBN,EAAS,MAAME,EAAkB,MAAM,OAAO,CAACK,GAA4CC,OACjHD,EAAIC,CAAM,IAAIP,EAAW,MAAM,cAAcO,CAAM,GAC5CD,IACN,CAAA,CAAE,CAAC,GAEAE,IAAWC,EAASR,EAAkB,MAAM,OAAO,CAACK,GAA8BC,MAAW;;AAEjG,YAAMG,MADYC,IAAAN,EAAgB,MAAME,CAAM,MAA5B,gBAAAI,EAA+B,UACZ,WAAWC,IAA8BC;AAC9E,aAAAP,EAAIC,CAAM,MAAIO,IAAAlB,EAAM,MAAM,SAAS,YAAYW,CAAM,MAAvC,gBAAAO,EAA0C,YAAWJ,GAC5DJ;AAAA,IACT,GAAG,CAAA,CAAE,CAAC,GAEAS,IAAeC,EAAmB,IAAI,GACtCC,IAAgBD,EAAmB,IAAI;AAC7C,aAASE,EAAgBC,GAAgB;AACvC,YAAMZ,IAASU,EAAc;AAC7B,MAAIV,MACFC,EAASD,CAAM,IAAIY,GAEnBvB,EAAM,MAAM,SAAS,YAAYW,CAAM,IAAIa,EAAmCD,CAA0B,IAE1GJ,EAAa,QAAQR;AAAA,IACvB;6BAIEc,EAoBWC,GAAA,MAAAC,EApBgBtB,EAAA,OAAiB,CAA3BM,wBAAmCA,KAAM;AAAA,MACxDiB,EAAiF,OAAjFC,GAAiF;AAAA,QAAtDD,EAAgD,QAAA,MAAAE,EAAvCrB,EAAA,MAAgBE,CAAM,EAAE,KAAK,GAAA,CAAA;AAAA,MAAA;MACjEoB,EAMEC,GAAA;AAAA,QALA,OAAM;AAAA,QACL,OAAOC,EAAAC,CAAA,EAAYtB,EAASD,CAAM,GAAG;AAAA,QACrC,SAASC,EAASD,CAAM;AAAA,QACxB,OAAO,EAAA,cAAA,OAAA;AAAA,QACP;AAAc,UAAAQ,EAAA,QAAeR,GAAQU,EAAA,QAAgBV;AAAA,QAAM;AAAA,MAAA;MAGtDQ,EAAA,UAAiBR,UADzBwB,EAUcC,GAAA;AAAA;QARZ,OAAM;AAAA,QACN,cAAW;AAAA,QACV,uCAAYjB,EAAA,QAAY;AAAA,MAAA;mBAEzB,MAGE;AAAA,UAHFY,EAGEM,GAAA;AAAA,YAFC,UAAUzB,EAASD,CAAM;AAAA,YAAI,aAAaF,EAAA,MAAgBE,CAAM,EAAE,SAAI;AAAA,YACtE,UAAQW;AAAA,UAAA;;;;;;;"}
|
|
@@ -15,10 +15,10 @@ const G = { class: "checkbox-item" }, F = {
|
|
|
15
15
|
}, H = { class: "button-group-item" }, Z = { class: "button-group-item" }, _ = { class: "checkbox-item" }, j = { class: "checkbox-item" }, q = { class: "button-group-item" }, J = {
|
|
16
16
|
class: "button-group-item",
|
|
17
17
|
style: { display: "flex", alignItems: "end" }
|
|
18
|
-
},
|
|
18
|
+
}, K = "heatmapClustered", ne = /* @__PURE__ */ O({
|
|
19
19
|
__name: "HeatmapClustered",
|
|
20
|
-
setup(
|
|
21
|
-
const d = I(), a = r(() => d.value.reactive.layersSettings
|
|
20
|
+
setup(Q) {
|
|
21
|
+
const d = I(), a = r(() => d.value.reactive.layersSettings[K]), c = r(() => d.value.reactive.optionsState), x = r(() => d.value.inputGuide.value), s = r(() => {
|
|
22
22
|
var n;
|
|
23
23
|
return (n = c.value.components.value.selectorStates[0]) == null ? void 0 : n.selectedSource;
|
|
24
24
|
}), C = r(() => {
|
|
@@ -32,13 +32,13 @@ const G = { class: "checkbox-item" }, F = {
|
|
|
32
32
|
{ label: "None", value: null },
|
|
33
33
|
{ label: "Columns", value: "column" },
|
|
34
34
|
{ label: "Rows", value: "row" }
|
|
35
|
-
],
|
|
35
|
+
], y = [
|
|
36
36
|
{ label: "z-score", value: "standardScaling" },
|
|
37
37
|
{ label: "Min-max", value: "meanNormalization" }
|
|
38
|
-
],
|
|
38
|
+
], M = [
|
|
39
39
|
{ label: "empty", value: null },
|
|
40
40
|
{ label: "Special value", value: "custom" }
|
|
41
|
-
],
|
|
41
|
+
], U = [
|
|
42
42
|
{ label: "Mean", value: "mean" },
|
|
43
43
|
{ label: "Min", value: "min" },
|
|
44
44
|
{ label: "Max", value: "max" },
|
|
@@ -98,20 +98,20 @@ const G = { class: "checkbox-item" }, F = {
|
|
|
98
98
|
])),
|
|
99
99
|
t("div", H, [
|
|
100
100
|
o(u(V), {
|
|
101
|
+
modelValue: a.value.normalizationDirection,
|
|
102
|
+
"onUpdate:modelValue": e[6] || (e[6] = (l) => a.value.normalizationDirection = l),
|
|
101
103
|
label: "Normalize by",
|
|
102
104
|
options: k,
|
|
103
|
-
compact: !0
|
|
104
|
-
modelValue: a.value.normalizationDirection,
|
|
105
|
-
"onUpdate:modelValue": e[6] || (e[6] = (l) => a.value.normalizationDirection = l)
|
|
105
|
+
compact: !0
|
|
106
106
|
}, null, 8, ["modelValue"])
|
|
107
107
|
]),
|
|
108
108
|
t("div", Z, [
|
|
109
109
|
o(u(V), {
|
|
110
|
-
label: "Normalization method",
|
|
111
|
-
options: M,
|
|
112
|
-
compact: !0,
|
|
113
110
|
modelValue: a.value.normalizationMethod,
|
|
114
|
-
"onUpdate:modelValue": e[7] || (e[7] = (l) => a.value.normalizationMethod = l)
|
|
111
|
+
"onUpdate:modelValue": e[7] || (e[7] = (l) => a.value.normalizationMethod = l),
|
|
112
|
+
label: "Normalization method",
|
|
113
|
+
options: y,
|
|
114
|
+
compact: !0
|
|
115
115
|
}, null, 8, ["modelValue"])
|
|
116
116
|
]),
|
|
117
117
|
t("div", _, [
|
|
@@ -130,44 +130,44 @@ const G = { class: "checkbox-item" }, F = {
|
|
|
130
130
|
]),
|
|
131
131
|
t("div", q, [
|
|
132
132
|
o(u(V), {
|
|
133
|
-
label: "Aggregation method",
|
|
134
|
-
options: y,
|
|
135
|
-
compact: !0,
|
|
136
133
|
modelValue: a.value.aggregationMethod,
|
|
137
|
-
"onUpdate:modelValue": e[10] || (e[10] = (l) => a.value.aggregationMethod = l)
|
|
134
|
+
"onUpdate:modelValue": e[10] || (e[10] = (l) => a.value.aggregationMethod = l),
|
|
135
|
+
label: "Aggregation method",
|
|
136
|
+
options: U,
|
|
137
|
+
compact: !0
|
|
138
138
|
}, null, 8, ["modelValue"])
|
|
139
139
|
]),
|
|
140
140
|
t("div", J, [
|
|
141
141
|
o(u(V), {
|
|
142
|
-
label: "Treat NA value as:",
|
|
143
|
-
options: U,
|
|
144
|
-
compact: !0,
|
|
145
142
|
modelValue: b.value,
|
|
146
143
|
"onUpdate:modelValue": [
|
|
147
144
|
e[11] || (e[11] = (l) => b.value = l),
|
|
148
145
|
e[12] || (e[12] = (l) => {
|
|
149
146
|
l === "custom" ? a.value.NAValueAs = f.value : a.value.NAValueAs = l;
|
|
150
147
|
})
|
|
151
|
-
]
|
|
148
|
+
],
|
|
149
|
+
label: "Treat NA value as:",
|
|
150
|
+
options: M,
|
|
151
|
+
compact: !0
|
|
152
152
|
}, null, 8, ["modelValue"]),
|
|
153
153
|
o(u(P), {
|
|
154
|
-
style: { height: "33px", marginLeft: "16px", width: "75px" },
|
|
155
|
-
disabled: b.value !== "custom",
|
|
156
|
-
label: "NA value",
|
|
157
|
-
useIncrementButtons: !1,
|
|
158
154
|
modelValue: f.value,
|
|
159
155
|
"onUpdate:modelValue": [
|
|
160
156
|
e[13] || (e[13] = (l) => f.value = l),
|
|
161
157
|
e[14] || (e[14] = (l) => {
|
|
162
158
|
l !== void 0 && (a.value.NAValueAs = l);
|
|
163
159
|
})
|
|
164
|
-
]
|
|
165
|
-
|
|
160
|
+
],
|
|
161
|
+
style: { height: "33px", marginLeft: "16px", width: "75px" },
|
|
162
|
+
disabled: b.value !== "custom",
|
|
163
|
+
label: "NA value",
|
|
164
|
+
useIncrementButtons: !1
|
|
165
|
+
}, null, 8, ["modelValue", "disabled"])
|
|
166
166
|
])
|
|
167
167
|
], 64));
|
|
168
168
|
}
|
|
169
169
|
});
|
|
170
170
|
export {
|
|
171
|
-
|
|
171
|
+
ne as default
|
|
172
172
|
};
|
|
173
173
|
//# sourceMappingURL=HeatmapClustered.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeatmapClustered.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport {useStore} from '../../../../store';\nimport {HeatmapLayer} from '../../../../types';\nimport { PlBtnGroup, PlCheckbox, PlNumberField, SimpleOption } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { DEFAULT_CONTINUOUS_PALETTE, PALETTE_MAP } from '../../../../constantsAesthetic';\nimport { HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\nimport { ContinuousPalette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\n\nconst store = useStore();\nconst layer:HeatmapLayer = 'heatmapClustered';\nconst settings = computed(() => store.value.reactive.layersSettings.heatmapClustered)\n\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<HeatmapUIState>);\n\nconst dataSource = computed(() => optionsState.value.components.value.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => dataSource.value ? store.value.reactive.dataBindAes[dataSource.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? DEFAULT_CONTINUOUS_PALETTE);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (dataSource.value) {\n store.value.reactive.dataBindAes[dataSource.value] = createContinuousMappingFromPalette(value);\n }\n}\nconst NORMALIZATION_DIRECTION:SimpleOption[] = [\n {label: 'None', value: null},\n {label: 'Columns', value: 'column'},\n {label: 'Rows', value: 'row'},\n];\nconst NORMALIZATION_METHOD:SimpleOption[] = [\n {label: 'z-score', value: 'standardScaling'},\n {label: 'Min-max', value: 'meanNormalization'},\n];\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' }\n];\nconst AGGREGATION_METHOD: SimpleOption[] = [\n {label: 'Mean', value: 'mean'},\n {label: 'Min', value: 'min'},\n {label: 'Max', value: 'max'},\n {label: 'Median', value: 'median'},\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs !== null ? 'custom' : settings.value.NAValueAs);\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n</script>\n\n<template>\n <multiselect-button\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n <form-wrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <palettes-form :selected=\"palette\" :categorical=\"dataSource ? inputGuide.getSourceInfo(dataSource).type === 'String' : false\" @select=\"onPaletteSelect\" />\n </form-wrapper>\n <div class=\"checkbox-item\">\n <pl-checkbox v-model=\"settings.disableClusteringX\"/>\n <span>Disable clustering for X axis</span>\n </div>\n <div class=\"checkbox-item\" v-if=\"!settings.disableClusteringX\">\n <pl-checkbox v-model=\"settings.dendrogramX\" />\n <span>Show dendrogram for X axis</span>\n </div>\n <div class=\"checkbox-item\">\n <pl-checkbox v-model=\"settings.disableClusteringY\"/>\n <span>Disable clustering for Y axis</span>\n </div>\n <div class=\"checkbox-item\" v-if=\"!settings.disableClusteringY\">\n <pl-checkbox v-model=\"settings.dendrogramY\"/>\n <span>Show dendrogram for Y axis</span>\n </div>\n <div class=\"button-group-item\">\n <pl-btn-group\n label=\"Normalize by\"\n :options=\"NORMALIZATION_DIRECTION\"\n :compact=\"true\"\n v-model=\"settings.normalizationDirection\"\n />\n </div>\n <div class=\"button-group-item\">\n <pl-btn-group\n label=\"Normalization method\"\n :options=\"NORMALIZATION_METHOD\"\n :compact=\"true\"\n v-model=\"settings.normalizationMethod\"\n />\n </div>\n <div class=\"checkbox-item\">\n <pl-checkbox v-model=\"settings.aggregateByX\"/>\n <span>Aggregate X groups</span>\n </div>\n <div class=\"checkbox-item\">\n <pl-checkbox v-model=\"settings.aggregateByY\"/>\n <span>Aggregate Y groups</span>\n </div>\n <div class=\"button-group-item\">\n <pl-btn-group\n label=\"Aggregation method\"\n :options=\"AGGREGATION_METHOD\"\n :compact=\"true\"\n v-model=\"settings.aggregationMethod\"\n />\n </div>\n <div class=\"button-group-item\" :style=\"{display: 'flex', alignItems: 'end'}\">\n <pl-btn-group\n label=\"Treat NA value as:\"\n :options=\"NA_VALUE_OPTIONS\"\n :compact=\"true\"\n v-model=\"NAValueOption\"\n @update:modelValue=\"(value:unknown) => {\n if (value === 'custom') {\n settings.NAValueAs = customNA;\n } else {\n settings.NAValueAs = value as number|null;\n }\n }\"\n />\n <pl-number-field\n :style=\"{height: '33px', marginLeft: '16px', width: '75px'}\"\n :disabled=\"NAValueOption !== 'custom'\"\n label=\"NA value\"\n :useIncrementButtons=\"false\"\n v-model=\"customNA\"\n @update:modelValue=\"(value:unknown) => {\n if (value !== undefined) {\n settings.NAValueAs = value as number;\n }\n }\"\n />\n </div>\n</template>\n"],"names":["store","useStore","settings","computed","optionsState","inputGuide","dataSource","_a","savedDataValuePalette","palettesOpen","ref","palette","DEFAULT_CONTINUOUS_PALETTE","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","NA_VALUE_OPTIONS","AGGREGATION_METHOD","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","PlCheckbox","_cache","$event","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","PlBtnGroup","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","PlNumberField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeatmapClustered.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport type { HeatmapLayer } from '../../../../types';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlNumberField } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { DEFAULT_CONTINUOUS_PALETTE, PALETTE_MAP } from '../../../../constantsAesthetic';\nimport type { HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\nimport type { ContinuousPalette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\n\nconst store = useStore();\nconst layer: HeatmapLayer = 'heatmapClustered';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<HeatmapUIState>);\n\nconst dataSource = computed(() => optionsState.value.components.value.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => dataSource.value ? store.value.reactive.dataBindAes[dataSource.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? DEFAULT_CONTINUOUS_PALETTE);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (dataSource.value) {\n store.value.reactive.dataBindAes[dataSource.value] = createContinuousMappingFromPalette(value);\n }\n}\nconst NORMALIZATION_DIRECTION: SimpleOption[] = [\n { label: 'None', value: null },\n { label: 'Columns', value: 'column' },\n { label: 'Rows', value: 'row' },\n];\nconst NORMALIZATION_METHOD: SimpleOption[] = [\n { label: 'z-score', value: 'standardScaling' },\n { label: 'Min-max', value: 'meanNormalization' },\n];\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\nconst AGGREGATION_METHOD: SimpleOption[] = [\n { label: 'Mean', value: 'mean' },\n { label: 'Min', value: 'min' },\n { label: 'Max', value: 'max' },\n { label: 'Median', value: 'median' },\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs !== null ? 'custom' : settings.value.NAValueAs);\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n</script>\n\n<template>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n <FormWrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <PalettesForm :selected=\"palette\" :categorical=\"dataSource ? inputGuide.getSourceInfo(dataSource).type === 'String' : false\" @select=\"onPaletteSelect\" />\n </FormWrapper>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.disableClusteringX\"/>\n <span>Disable clustering for X axis</span>\n </div>\n <div v-if=\"!settings.disableClusteringX\" class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.dendrogramX\" />\n <span>Show dendrogram for X axis</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.disableClusteringY\"/>\n <span>Disable clustering for Y axis</span>\n </div>\n <div v-if=\"!settings.disableClusteringY\" class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.dendrogramY\"/>\n <span>Show dendrogram for Y axis</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationDirection\"\n label=\"Normalize by\"\n :options=\"NORMALIZATION_DIRECTION\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationMethod\"\n label=\"Normalization method\"\n :options=\"NORMALIZATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByX\"/>\n <span>Aggregate X groups</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByY\"/>\n <span>Aggregate Y groups</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.aggregationMethod\"\n label=\"Aggregation method\"\n :options=\"AGGREGATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\" :style=\"{display: 'flex', alignItems: 'end'}\">\n <PlBtnGroup\n v-model=\"NAValueOption\"\n label=\"Treat NA value as:\"\n :options=\"NA_VALUE_OPTIONS\"\n :compact=\"true\"\n @update:modelValue=\"(value:unknown) => {\n if (value === 'custom') {\n settings.NAValueAs = customNA;\n } else {\n settings.NAValueAs = value as number|null;\n }\n }\"\n />\n <PlNumberField\n v-model=\"customNA\"\n :style=\"{height: '33px', marginLeft: '16px', width: '75px'}\"\n :disabled=\"NAValueOption !== 'custom'\"\n label=\"NA value\"\n :useIncrementButtons=\"false\"\n @update:modelValue=\"(value:unknown) => {\n if (value !== undefined) {\n settings.NAValueAs = value as number;\n }\n }\"\n />\n </div>\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","inputGuide","dataSource","_a","savedDataValuePalette","palettesOpen","ref","palette","DEFAULT_CONTINUOUS_PALETTE","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","NA_VALUE_OPTIONS","AGGREGATION_METHOD","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","PlCheckbox","_cache","$event","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","PlBtnGroup","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","PlNumberField"],"mappings":"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"}
|
|
@@ -36,14 +36,14 @@ const i = "bins", V = /* @__PURE__ */ f({
|
|
|
36
36
|
onAesUpdate: e[0] || (e[0] = (l, r) => m(l, r, "fillColor"))
|
|
37
37
|
}, null, 8, ["selected", "withoutFixed"]),
|
|
38
38
|
c(v(C), {
|
|
39
|
+
modelValue: u.value,
|
|
40
|
+
"onUpdate:modelValue": e[1] || (e[1] = (l) => u.value = l),
|
|
39
41
|
label: "Opacity",
|
|
40
42
|
min: 0,
|
|
41
43
|
max: 100,
|
|
42
44
|
step: 1,
|
|
43
45
|
breakpoints: !1,
|
|
44
|
-
measure: "%"
|
|
45
|
-
modelValue: u.value,
|
|
46
|
-
"onUpdate:modelValue": e[1] || (e[1] = (l) => u.value = l)
|
|
46
|
+
measure: "%"
|
|
47
47
|
}, null, 8, ["modelValue"])
|
|
48
48
|
], 64));
|
|
49
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bins.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/histogram/Bins.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport {Slider} from
|
|
1
|
+
{"version":3,"file":"Bins.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/histogram/Bins.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { Slider } from '@platforma-sdk/ui-vue';\nimport { computed } from 'vue';\nimport type { AestheticMappingCategorical } from '../../../../dataBindAes';\nimport { DEFAULT_WHITE } from '../../../../constantsAesthetic';\nimport AesSelector from '../../AesSelector.vue';\nimport type { AesOption } from '../../../../components/AesSettings/types';\nimport type { MappingLink } from '../../../../constantsCommon';\nimport type { HistogramUIState } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst layer = 'bins';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nfunction useDefaultAes<T extends string | MappingLink>(\n value: T | null,\n optionsState: HistogramUIState,\n defaultValue: T,\n): T {\n const hasGrouping = optionsState.components.grouping.selectorStates.length > 0;\n if (value === null) {\n // not selected by user\n if (hasGrouping) {\n return { type: 'grouping', value: optionsState.components.grouping.selectorStates[0].selectedSource } as T;\n }\n return defaultValue;\n }\n return value;\n}\nconst fillColor = computed(() => useDefaultAes(\n settings.value.fillColor,\n store.value.reactive.optionsState as HistogramUIState,\n DEFAULT_WHITE,\n));\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'fillColor',\n) {\n if (colorOption.type === 'dataCategorical') {\n store.value.reactive.layersSettings[layer][field] = { type: colorOption.inputName };\n } else {\n store.value.reactive.layersSettings[layer][field] = value;\n }\n if (colorOption.type === 'dataCategorical' && typeof value !== 'string') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n\nconst opacity = computed({\n get: () => settings.value.opacity * 100,\n set: (newValue: number) => {\n settings.value.opacity = newValue / 100;\n },\n});\n</script>\n\n<template>\n <AesSelector\n label=\"Fill color\"\n form-title=\"Fill Color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"fillColor\"\n :withoutFixed=\"typeof fillColor === 'object'\"\n @aes-update=\"(v:any, c:any) => onUpdate(v, c, 'fillColor')\"\n />\n <Slider\n v-model=\"opacity\"\n label=\"Opacity\"\n :min=\"0\"\n :max=\"100\"\n :step=\"1\"\n :breakpoints=\"false\"\n measure=\"%\"\n />\n</template>\n"],"names":["layer","store","useStore","settings","computed","useDefaultAes","value","optionsState","defaultValue","hasGrouping","fillColor","DEFAULT_WHITE","onUpdate","colorOption","field","opacity","newValue","_createVNode","AesSelector","_cache","v","c","_unref","Slider","$event"],"mappings":";;;;;AAYA,MAAMA,IAAQ;;;AADd,UAAMC,IAAQC,EAAA,GAERC,IAAWC,EAAS,MAAMH,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC;AAE1E,aAASK,EACPC,GACAC,GACAC,GACG;AACH,YAAMC,IAAcF,EAAa,WAAW,SAAS,eAAe,SAAS;AAC7E,aAAID,MAAU,OAERG,IACK,EAAE,MAAM,YAAY,OAAOF,EAAa,WAAW,SAAS,eAAe,CAAC,EAAE,eAAA,IAEhFC,IAEFF;AAAA,IACT;AACA,UAAMI,IAAYN,EAAS,MAAMC;AAAA,MAC/BF,EAAS,MAAM;AAAA,MACfF,EAAM,MAAM,SAAS;AAAA,MACrBU;AAAA,IAAA,CACD;AAED,aAASC,EACPN,GACAO,GACAC,GACA;AACA,MAAID,EAAY,SAAS,oBACvBZ,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAI,EAAE,MAAMD,EAAY,UAAA,IAExEZ,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAIR,GAElDO,EAAY,SAAS,qBAAqB,OAAOP,KAAU,aAC7DL,EAAM,MAAM,SAAS,YAAYY,EAAY,cAAc,IAAIP;AAAA,IAEnE;AAEA,UAAMS,IAAUX,EAAS;AAAA,MACvB,KAAK,MAAMD,EAAS,MAAM,UAAU;AAAA,MACpC,KAAK,CAACa,MAAqB;AACzB,QAAAb,EAAS,MAAM,UAAUa,IAAW;AAAA,MACtC;AAAA,IAAA,CACD;;MAICC,EAQEC,GAAA;AAAA,QAPA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUR,EAAA;AAAA,QACV,qBAAqBA,EAAA,SAAS;AAAA,QAC9B,aAAUS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,GAAOC,MAAUT,EAASQ,GAAGC,GAAC,WAAA;AAAA,MAAA;MAE9CJ,EAQEK,EAAAC,CAAA,GAAA;AAAA,oBAPSR,EAAA;AAAA,sDAAAA,EAAO,QAAAS;AAAA,QAChB,OAAM;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,MAAM;AAAA,QACN,aAAa;AAAA,QACd,SAAQ;AAAA,MAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Curve.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/scatterplot/Curve.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlToggleSwitch } from '@platforma-sdk/ui-vue';\nimport {useStore} from '../../../../store';\nimport AesSelector from '../../AesSelector.vue';\nimport {computed} from
|
|
1
|
+
{"version":3,"file":"Curve.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/scatterplot/Curve.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlToggleSwitch } from '@platforma-sdk/ui-vue';\nimport { useStore } from '../../../../store';\nimport AesSelector from '../../AesSelector.vue';\nimport { computed } from 'vue';\nimport { DEFAULT_BLACK } from '../../../../constantsAesthetic';\nimport type { AestheticMappingCategorical } from '../../../../dataBindAes';\nimport type { AesOption } from '../../../../components/AesSettings/types';\nimport type { MappingLink } from '../../../../constantsCommon';\nimport type { ScatterplotUIState } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst layer = 'curve';\nconst state = store.value.reactive.optionsState as ScatterplotUIState;\n\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nfunction isMapping(value: MappingLink | string | null): value is MappingLink {\n return value !== null && typeof value === 'object' && 'type' in value;\n}\nconst lineColor = computed(() => {\n const value = settings.value.lineColor;\n const columns = state.components.grouping.selectorStates.map((s) => s.selectedSource);\n if (isMapping(value) && columns.length) {\n return columns.includes(value.value as string) ? value : { type: 'grouping', value: columns[0] };\n }\n return columns.length ? { type: 'grouping', value: columns[0] } : isMapping(value) ? DEFAULT_BLACK : value ?? DEFAULT_BLACK;\n});\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'lineColor',\n) {\n if (typeof value === 'string') {\n store.value.reactive.layersSettings[layer][field] = value;\n } else if (colorOption.type === 'dataCategorical') {\n store.value.reactive.layersSettings[layer][field] = { type: colorOption.inputName, value: colorOption.selectedSource };\n }\n if (colorOption.type === 'dataCategorical' && typeof value !== 'string') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n</script>\n\n<template>\n <AesSelector\n label=\"Color\"\n form-title=\"Color Settings\"\n form-back-title=\"Layers\"\n type=\"stroke\"\n :selected=\"lineColor\"\n :withoutFixed=\"typeof lineColor === 'object'\"\n :possible-aes-source-inputs=\"['grouping']\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'lineColor')\"\n />\n <div class=\"input-item\" style=\"display: flex; justify-content: space-between; align-items: center\">\n <span>Smoothing</span>\n <PlToggleSwitch v-model=\"store.reactive.layersSettings.curve.smoothing\"/>\n </div>\n</template>\n"],"names":["layer","store","useStore","state","settings","computed","isMapping","value","lineColor","columns","s","DEFAULT_BLACK","onUpdate","colorOption","field","_createVNode","AesSelector","_cache","v","c","_createElementVNode","_hoisted_1","_unref","PlToggleSwitch","$event"],"mappings":";;;;;;;;GAYMA,IAAQ;;;AADd,UAAMC,IAAQC,EAAA,GAERC,IAAQF,EAAM,MAAM,SAAS,cAE7BG,IAAWC,EAAS,MAAMJ,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC;AAC1E,aAASM,EAAUC,GAA0D;AAC3E,aAAOA,MAAU,QAAQ,OAAOA,KAAU,YAAY,UAAUA;AAAA,IAClE;AACA,UAAMC,IAAYH,EAAS,MAAM;AAC/B,YAAME,IAAQH,EAAS,MAAM,WACvBK,IAAUN,EAAM,WAAW,SAAS,eAAe,IAAI,CAACO,MAAMA,EAAE,cAAc;AACpF,aAAIJ,EAAUC,CAAK,KAAKE,EAAQ,SACvBA,EAAQ,SAASF,EAAM,KAAe,IAAIA,IAAQ,EAAE,MAAM,YAAY,OAAOE,EAAQ,CAAC,EAAA,IAExFA,EAAQ,SAAS,EAAE,MAAM,YAAY,OAAOA,EAAQ,CAAC,EAAA,IAAMH,EAAUC,CAAK,IAAII,IAAgBJ,KAASI;AAAA,IAChH,CAAC;AACD,aAASC,EACPL,GACAM,GACAC,GACA;AACA,MAAI,OAAOP,KAAU,WACnBN,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAIP,IAC3CM,EAAY,SAAS,sBAC9BZ,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAI,EAAE,MAAMD,EAAY,WAAW,OAAOA,EAAY,eAAA,IAEpGA,EAAY,SAAS,qBAAqB,OAAON,KAAU,aAC7DN,EAAM,MAAM,SAAS,YAAYY,EAAY,cAAc,IAAIN;AAAA,IAEnE;;MAIEQ,EASEC,GAAA;AAAA,QARA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUR,EAAA;AAAA,QACV,qBAAqBA,EAAA,SAAS;AAAA,QAC9B,8BAA4B,CAAA,UAAA;AAAA,QAC5B,aAAUS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,GAAGC,MAAMP,EAASM,GAAGC,GAAC,WAAA;AAAA,MAAA;MAEtCC,EAGM,OAHNC,GAGM;AAAA,QAFJJ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAAsB,cAAhB,aAAS,EAAA;AAAA,QACfL,EAAyEO,EAAAC,CAAA,GAAA;AAAA,UAAhD,YAAAD,EAAArB,CAAA,EAAM,SAAS,eAAe,MAAM;AAAA,UAApC,uBAAAgB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAO,MAAAF,EAAArB,CAAA,EAAM,SAAS,eAAe,MAAM,YAASuB;AAAA,QAAA;;;;;"}
|