@milaboratories/graph-maker 1.1.176 → 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 +41 -41
- 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":"AesSelector.vue.js","sources":["../../../src/forms/LayersForm/AesSelector.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue';\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport {\n AestheticMappingCategorical, AestheticMappingContinuous, createContinuousMappingFromPalette,\n createDefaultMapping\n} from '../../dataBindAes';\nimport {\n AesOption,\n DotShape,\n LineType\n} from '../../components/AesSettings/types';\nimport {\n DEFAULT_CONTINUOUS_PALETTE,\n DEFAULT_DOT_SHAPE,\n DEFAULT_LINE_TYPE,\n FIXED_COLORS,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES\n} from '../../constantsAesthetic';\nimport AesButton, { type AesButtonProps } from '../../components/AesButton.vue';\nimport { useStore } from '../../store';\nimport { AesType, isMappedAes, MappingLink } from '../../constantsCommon';\nimport Popup from '../../components/Popup.vue';\nimport FixedColorsList from '../../components/AesSettings/FixedColorsList.vue';\nimport FixedDotShapeList from '../../components/AesSettings/FixedDotShapeList.vue';\nimport FixedLineTypeList from '../../components/AesSettings/FixedLineTypeList.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport AesDataMappingDiscrete from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport AesDataMappingContinuous from '../../components/AesSettings/AesDataMappingContinuous.vue';\nimport { ChartType } from '@milaboratories/pf-plots';\n\nconst props = defineProps<{\n label: string;\n type: AesType;\n selected: string | MappingLink;\n formTitle: string;\n formBackTitle: string;\n possibleAesSourceInputs?: string[];\n withoutFixed?: boolean;\n disabled?: boolean;\n}>();\n\nconst store = useStore();\nconst chartType = computed(() => store.value.reactive.chartType);\nconst emit = defineEmits(['aes-update', 'aes-selector-close']);\n\nconst DEFAULT_AES_INPUTS: Record<ChartType, string[]> = {\n discrete: ['primaryGrouping', 'secondaryGrouping'],\n scatterplot: ['grouping'],\n 'scatterplot-umap': ['grouping'],\n dendro: [],\n heatmap: [],\n histogram: ['grouping'],\n bubble: []\n};\nconst possibleAesSourceInputs = props.possibleAesSourceInputs ?? DEFAULT_AES_INPUTS[chartType.value];\nconst usedAesInMapping = computed(\n () => {\n const v = store.value.commonHelpersData.usedAesInMapping.value;\n return v;\n }\n);\n\nfunction getKeyFromSelectedType(value: MappingLink | string) {\n if (typeof value === 'string') {\n return value;\n }\n if (chartType.value === 'scatterplot') {\n return `grouping_${value.value}`;\n }\n if (chartType.value === 'dendro') {\n return `${value.type}_${value.value}`;\n }\n return value.type;\n}\n\nconst selectedType = ref(\n isMappedAes(props.selected) ? getKeyFromSelectedType(props.selected) : 'fix'\n);\nconst DEFAULT_BY_TYPES: Record<AesType, string | DotShape | LineType> = {\n fill: FIXED_COLORS[0].color,\n stroke: FIXED_COLORS[0].color,\n dotShape: DEFAULT_DOT_SHAPE,\n lineType: DEFAULT_LINE_TYPE,\n size: '' // temporary\n};\n\nconst inputGuide = computed(() => store.value.inputGuide.value);\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\nconst chartTypesWithContinuousColors = new Set<ChartType>([\n 'scatterplot', 'scatterplot-umap', 'heatmap'\n]);\n\nconst optionsInfo = computed(() => {\n const res: Record<string, AesOption> = {};\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addInfo(name: string, source: string) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(source);\n const uniqueValuesItem = labelsInfo.value[source];\n const uniqueValues = uniqueValuesItem?.list ?? [];\n const valueLabels = uniqueValuesItem?.labels ?? {};\n const key = getKeyFromSelectedType({ type: name, value: source });\n if (\n chartTypesWithContinuousColors.has(chartType.value) && selectedSourceInfo.type === 'String' ||\n !chartTypesWithContinuousColors.has(chartType.value)\n ) {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createDefaultMapping(uniqueValues)) as AestheticMappingCategorical;\n res[key] = {\n type: 'dataCategorical',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues,\n labels: mapping.order.reduce(\n (res: Record<string, string>, v: string | number) => {\n res[v] = valueLabels[v] ?? String(v);\n return res;\n },\n {}\n )\n };\n } else {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createContinuousMappingFromPalette(DEFAULT_CONTINUOUS_PALETTE)) as AestheticMappingContinuous;\n res[key] = {\n type: 'dataContinuous',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues\n };\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addInfo(name, selectedSource);\n });\n }\n });\n\n if (!props.withoutFixed) {\n res['fix'] = {\n type: 'fix',\n value: 'fix',\n initialData: isMappedAes(props.selected)\n ? DEFAULT_BY_TYPES[props.type]\n : props.selected\n };\n }\n return res;\n});\n\nconst option = computed<AesOption | null>(\n () => optionsInfo.value[selectedType.value] ?? null\n);\n\nfunction getTitle(option: AesOption, selected: string) {\n if (option.type === 'fix') {\n return 'Fixed';\n }\n if (selected === option.value) {\n return `${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'discrete') {\n return `${\n option.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping: ${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'scatterplot' || chartType.value === 'dendro') {\n return `Grouping: ${option.selectedSourceInfo?.label}`;\n }\n return option.selectedSourceInfo?.label ?? '';\n}\n\nconst typeOptions = computed(() => {\n const options = [];\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addOption(name: string, source: string) {\n const key = getKeyFromSelectedType({\n type: name === 'shape' ? 'grouping' : name,\n value: source\n });\n if (optionsInfo.value[key]) {\n options.push({\n text: getTitle(optionsInfo.value[key], selectedType.value),\n value: key\n });\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addOption(name, selectedSource);\n });\n }\n });\n if (!optionsInfo.value[selectedType.value]) {\n let text = 'Not consistent (grouping)';\n if (chartType.value === 'discrete') {\n text = `${\n selectedType.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping (not selected)`;\n }\n options.push({ text, value: selectedType.value });\n }\n if (!props.withoutFixed) {\n options.push({ text: 'Fixed', value: 'fix' });\n }\n return options;\n});\n\nconst openForm = ref(false);\n\nconst defaultFixed = ref(\n optionsInfo.value['fix']\n ? (optionsInfo.value['fix'].initialData as string)\n : null\n);\nconst defaultMappingCategorical = ref(\n option.value?.type === 'dataCategorical'\n ? (option.value.initialData as AestheticMappingCategorical)\n : null\n);\n\nconst defaultMappingContinuous = ref(\n option.value?.type === 'dataContinuous'\n ? (option.value.initialData as AestheticMappingContinuous)\n : null\n);\nwatch(\n () => selectedType.value,\n (value) => {\n const option = optionsInfo.value[value];\n if (option.type === 'fix') {\n emit('aes-update', defaultFixed.value, option);\n } else if (option.type === 'dataCategorical') {\n defaultMappingCategorical.value = option.initialData;\n emit('aes-update', option.initialData, option);\n } else if (option.type === 'dataContinuous') {\n defaultMappingContinuous.value = option.initialData;\n emit('aes-update', option.initialData, option);\n }\n }\n);\n\nconst aesButtonRef = ref();\n\n//TODO: move to utils\nconst popupHeight = computed(() => {\n if (props.type === 'lineType') {\n const ROW_HEIGHT = 32;\n const OFFSET = 16;\n return FIXED_LINE_TYPES.length * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'dotShape') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXES_DOT_SHAPES.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'fill' || props.type === 'stroke') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXED_COLORS.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n});\n\n</script>\n\n<template>\n <div class=\"aes-input-row\">\n <div class=\"aes-input-select\" @click.stop>\n <pl-dropdown\n :disabled=\"disabled || typeOptions.length < 2\"\n :label=\"label\"\n :options=\"typeOptions\"\n v-model=\"selectedType\"\n />\n </div>\n <aes-button\n :data=\"{\n type: selectedType === 'fix' ? type : 'data',\n value: selectedType === 'fix' ? type === 'size' ? Number(selected) : selected as string : null\n } as AesButtonProps['data']\"\n @click=\"openForm = !openForm\"\n @ref=\"(el:Element) => (aesButtonRef = el)\"\n />\n <popup\n v-if=\"selectedType === 'fix' && openForm && defaultFixed\"\n :height=\"popupHeight\"\n :targetRef=\"aesButtonRef\"\n @popup:close=\"openForm = false\"\n >\n <div\n class=\"fixed-aes-list\"\n :class=\"{ 'fixed-aes-list__rows': type === 'lineType' }\"\n >\n <fixed-colors-list\n v-if=\"type === 'fill' || type === 'stroke'\"\n :color-using=\"type\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:string) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <fixed-dot-shape-list\n v-if=\"type === 'dotShape'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:DotShape) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <fixed-line-type-list\n v-if=\"type === 'lineType'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:LineType) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n </div>\n </popup>\n </div>\n <template v-if=\"(\n (option?.type === 'dataCategorical' && defaultMappingCategorical) ||\n (option?.type === 'dataContinuous' && defaultMappingContinuous)) && openForm\">\n <form-wrapper\n :title=\"formTitle\"\n :back-title=\"formBackTitle\"\n @form:close=\"openForm = false\"\n >\n <aes-data-mapping-discrete\n v-if=\"option?.type === 'dataCategorical' && defaultMappingCategorical\"\n :column-value-labels=\"option.labels\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[option.selectedSource]\"\n :allow-hiding=\"chartType === 'discrete'\"\n :allow-reordering=\"chartType === 'discrete' || chartType === 'histogram' || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n :allow-null-option=\"chartType === 'discrete' && (\n selectedType === 'primaryGrouping' && store.reactive.axesSettings.axisX.allowNullPrimaryGroups ||\n selectedType === 'secondaryGrouping' && store.reactive.axesSettings.axisX.allowNullSecondaryGroups\n ) || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n v-model=\"defaultMappingCategorical\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => $emit('aes-update', value, option)\"\n />\n <aes-data-mapping-continuous\n v-if=\"option?.type === 'dataContinuous' && defaultMappingContinuous\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n v-model=\"defaultMappingContinuous\"\n @update:modelValue=\"(value:AestheticMappingContinuous) => $emit('aes-update', value, option)\"\n />\n </form-wrapper>\n </template>\n</template>\n"],"names":["props","__props","store","useStore","chartType","computed","emit","__emit","DEFAULT_AES_INPUTS","possibleAesSourceInputs","usedAesInMapping","getKeyFromSelectedType","value","selectedType","ref","isMappedAes","DEFAULT_BY_TYPES","FIXED_COLORS","DEFAULT_DOT_SHAPE","DEFAULT_LINE_TYPE","inputGuide","labelsInfo","chartTypesWithContinuousColors","optionsInfo","res","inputStateMap","addInfo","name","source","selectedSourceInfo","uniqueValuesItem","uniqueValues","valueLabels","key","mapping","createDefaultMapping","v","createContinuousMappingFromPalette","DEFAULT_CONTINUOUS_PALETTE","_a","selectedSource","option","getTitle","selected","typeOptions","options","addOption","text","openForm","defaultFixed","defaultMappingCategorical","defaultMappingContinuous","_b","watch","aesButtonRef","popupHeight","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","_createElementVNode","_hoisted_1","_createVNode","_unref","PlDropdown","$event","AesButton","_cache","el","_createBlock","Popup","_normalizeClass","FixedColorsList","$emit","FixedDotShapeList","FixedLineTypeList","FormWrapper","AesDataMappingDiscrete","_c","AesDataMappingContinuous","_d"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AesSelector.vue.js","sources":["../../../src/forms/LayersForm/AesSelector.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue';\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport type {\n AestheticMappingCategorical, AestheticMappingContinuous } from '../../dataBindAes';\nimport { createContinuousMappingFromPalette,\n createDefaultMapping,\n} from '../../dataBindAes';\nimport type {\n AesOption,\n DotShape,\n LineType,\n} from '../../components/AesSettings/types';\nimport {\n DEFAULT_CONTINUOUS_PALETTE,\n DEFAULT_DOT_SHAPE,\n DEFAULT_LINE_TYPE,\n FIXED_COLORS,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES,\n} from '../../constantsAesthetic';\nimport AesButton, { type AesButtonProps } from '../../components/AesButton.vue';\nimport { useStore } from '../../store';\nimport type { AesType, MappingLink } from '../../constantsCommon';\nimport { isMappedAes } from '../../constantsCommon';\nimport Popup from '../../components/Popup.vue';\nimport FixedColorsList from '../../components/AesSettings/FixedColorsList.vue';\nimport FixedDotShapeList from '../../components/AesSettings/FixedDotShapeList.vue';\nimport FixedLineTypeList from '../../components/AesSettings/FixedLineTypeList.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport AesDataMappingDiscrete from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport AesDataMappingContinuous from '../../components/AesSettings/AesDataMappingContinuous.vue';\nimport type { ChartType } from '@milaboratories/pf-plots';\n\nconst props = defineProps<{\n label: string;\n type: AesType;\n selected: string | MappingLink;\n formTitle: string;\n formBackTitle: string;\n possibleAesSourceInputs?: string[];\n withoutFixed?: boolean;\n disabled?: boolean;\n}>();\n\nconst store = useStore();\nconst chartType = computed(() => store.value.reactive.chartType);\nconst emit = defineEmits(['aes-update', 'aes-selector-close']);\n\nconst DEFAULT_AES_INPUTS: Record<ChartType, string[]> = {\n 'discrete': ['primaryGrouping', 'secondaryGrouping'],\n 'scatterplot': ['grouping'],\n 'scatterplot-umap': ['grouping'],\n 'dendro': [],\n 'heatmap': [],\n 'histogram': ['grouping'],\n 'bubble': [],\n};\nconst possibleAesSourceInputs = props.possibleAesSourceInputs ?? DEFAULT_AES_INPUTS[chartType.value];\nconst usedAesInMapping = computed(\n () => {\n const v = store.value.commonHelpersData.usedAesInMapping.value;\n return v;\n },\n);\n\nfunction getKeyFromSelectedType(value: MappingLink | string) {\n if (typeof value === 'string') {\n return value;\n }\n if (chartType.value === 'scatterplot') {\n return `grouping_${value.value}`;\n }\n if (chartType.value === 'dendro') {\n return `${value.type}_${value.value}`;\n }\n return value.type;\n}\n\nconst selectedType = ref(\n isMappedAes(props.selected) ? getKeyFromSelectedType(props.selected) : 'fix',\n);\nconst DEFAULT_BY_TYPES: Record<AesType, string | DotShape | LineType> = {\n fill: FIXED_COLORS[0].color,\n stroke: FIXED_COLORS[0].color,\n dotShape: DEFAULT_DOT_SHAPE,\n lineType: DEFAULT_LINE_TYPE,\n size: '', // temporary\n};\n\nconst inputGuide = computed(() => store.value.inputGuide.value);\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\nconst chartTypesWithContinuousColors = new Set<ChartType>([\n 'scatterplot', 'scatterplot-umap', 'heatmap',\n]);\n\nconst optionsInfo = computed(() => {\n const res: Record<string, AesOption> = {};\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addInfo(name: string, source: string) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(source);\n const uniqueValuesItem = labelsInfo.value[source];\n const uniqueValues = uniqueValuesItem?.list ?? [];\n const valueLabels = uniqueValuesItem?.labels ?? {};\n const key = getKeyFromSelectedType({ type: name, value: source });\n if (\n (chartTypesWithContinuousColors.has(chartType.value) && selectedSourceInfo.type === 'String')\n || !chartTypesWithContinuousColors.has(chartType.value)\n ) {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createDefaultMapping(uniqueValues)) as AestheticMappingCategorical;\n res[key] = {\n type: 'dataCategorical',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues,\n labels: mapping.order.reduce(\n (res: Record<string, string>, v: string | number) => {\n res[v] = valueLabels[v] ?? String(v);\n return res;\n },\n {},\n ),\n };\n } else {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createContinuousMappingFromPalette(DEFAULT_CONTINUOUS_PALETTE)) as AestheticMappingContinuous;\n res[key] = {\n type: 'dataContinuous',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues,\n };\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addInfo(name, selectedSource);\n });\n }\n });\n\n if (!props.withoutFixed) {\n res['fix'] = {\n type: 'fix',\n value: 'fix',\n initialData: isMappedAes(props.selected)\n ? DEFAULT_BY_TYPES[props.type]\n : props.selected,\n };\n }\n return res;\n});\n\nconst option = computed<AesOption | null>(\n () => optionsInfo.value[selectedType.value] ?? null,\n);\n\nfunction getTitle(option: AesOption, selected: string) {\n if (option.type === 'fix') {\n return 'Fixed';\n }\n if (selected === option.value) {\n return `${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'discrete') {\n return `${\n option.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping: ${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'scatterplot' || chartType.value === 'dendro') {\n return `Grouping: ${option.selectedSourceInfo?.label}`;\n }\n return option.selectedSourceInfo?.label ?? '';\n}\n\nconst typeOptions = computed(() => {\n const options = [];\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addOption(name: string, source: string) {\n const key = getKeyFromSelectedType({\n type: name === 'shape' ? 'grouping' : name,\n value: source,\n });\n if (optionsInfo.value[key]) {\n options.push({\n text: getTitle(optionsInfo.value[key], selectedType.value),\n value: key,\n });\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addOption(name, selectedSource);\n });\n }\n });\n if (!optionsInfo.value[selectedType.value]) {\n let text = 'Not consistent (grouping)';\n if (chartType.value === 'discrete') {\n text = `${\n selectedType.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping (not selected)`;\n }\n options.push({ text, value: selectedType.value });\n }\n if (!props.withoutFixed) {\n options.push({ text: 'Fixed', value: 'fix' });\n }\n return options;\n});\n\nconst openForm = ref(false);\n\nconst defaultFixed = ref(\n optionsInfo.value['fix']\n ? (optionsInfo.value['fix'].initialData as string)\n : null,\n);\nconst defaultMappingCategorical = ref(\n option.value?.type === 'dataCategorical'\n ? (option.value.initialData as AestheticMappingCategorical)\n : null,\n);\n\nconst defaultMappingContinuous = ref(\n option.value?.type === 'dataContinuous'\n ? (option.value.initialData as AestheticMappingContinuous)\n : null,\n);\nwatch(\n () => selectedType.value,\n (value) => {\n const option = optionsInfo.value[value];\n if (option.type === 'fix') {\n emit('aes-update', defaultFixed.value, option);\n } else if (option.type === 'dataCategorical') {\n defaultMappingCategorical.value = option.initialData;\n emit('aes-update', option.initialData, option);\n } else if (option.type === 'dataContinuous') {\n defaultMappingContinuous.value = option.initialData;\n emit('aes-update', option.initialData, option);\n }\n },\n);\n\nconst aesButtonRef = ref();\n\n// TODO: move to utils\nconst popupHeight = computed(() => {\n if (props.type === 'lineType') {\n const ROW_HEIGHT = 32;\n const OFFSET = 16;\n return FIXED_LINE_TYPES.length * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'dotShape') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXES_DOT_SHAPES.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'fill' || props.type === 'stroke') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXED_COLORS.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n return 0;\n});\n\n</script>\n\n<template>\n <div class=\"aes-input-row\">\n <div class=\"aes-input-select\" @click.stop>\n <PlDropdown\n v-model=\"selectedType\"\n :disabled=\"disabled || typeOptions.length < 2\"\n :label=\"label\"\n :options=\"typeOptions\"\n />\n </div>\n <AesButton\n :data=\"{\n type: selectedType === 'fix' ? type : 'data',\n value: selectedType === 'fix' ? type === 'size' ? Number(selected) : selected as string : null\n } as AesButtonProps['data']\"\n @click=\"openForm = !openForm\"\n @ref=\"(el:Element) => (aesButtonRef = el)\"\n />\n <Popup\n v-if=\"selectedType === 'fix' && openForm && defaultFixed\"\n :height=\"popupHeight\"\n :targetRef=\"aesButtonRef\"\n @popup:close=\"openForm = false\"\n >\n <div\n class=\"fixed-aes-list\"\n :class=\"{ 'fixed-aes-list__rows': type === 'lineType' }\"\n >\n <FixedColorsList\n v-if=\"type === 'fill' || type === 'stroke'\"\n v-model=\"defaultFixed\"\n :color-using=\"type\"\n @update:modelValue=\"\n (value:string) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <FixedDotShapeList\n v-if=\"type === 'dotShape'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:DotShape) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <FixedLineTypeList\n v-if=\"type === 'lineType'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:LineType) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n </div>\n </Popup>\n </div>\n <template\n v-if=\"(\n (option?.type === 'dataCategorical' && defaultMappingCategorical) ||\n (option?.type === 'dataContinuous' && defaultMappingContinuous)) && openForm\"\n >\n <FormWrapper\n :title=\"formTitle\"\n :back-title=\"formBackTitle\"\n @form:close=\"openForm = false\"\n >\n <AesDataMappingDiscrete\n v-if=\"option?.type === 'dataCategorical' && defaultMappingCategorical\"\n v-model=\"defaultMappingCategorical\"\n :column-value-labels=\"option.labels\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[option.selectedSource]\"\n :allow-hiding=\"chartType === 'discrete'\"\n :allow-reordering=\"chartType === 'discrete' || chartType === 'histogram' || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n :allow-null-option=\"chartType === 'discrete' && (\n selectedType === 'primaryGrouping' && store.reactive.axesSettings.axisX.allowNullPrimaryGroups ||\n selectedType === 'secondaryGrouping' && store.reactive.axesSettings.axisX.allowNullSecondaryGroups\n ) || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => $emit('aes-update', value, option)\"\n />\n <AesDataMappingContinuous\n v-if=\"option?.type === 'dataContinuous' && defaultMappingContinuous\"\n v-model=\"defaultMappingContinuous\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n @update:modelValue=\"(value:AestheticMappingContinuous) => $emit('aes-update', value, option)\"\n />\n </FormWrapper>\n </template>\n</template>\n"],"names":["props","__props","store","useStore","chartType","computed","emit","__emit","DEFAULT_AES_INPUTS","possibleAesSourceInputs","usedAesInMapping","getKeyFromSelectedType","value","selectedType","ref","isMappedAes","DEFAULT_BY_TYPES","FIXED_COLORS","DEFAULT_DOT_SHAPE","DEFAULT_LINE_TYPE","inputGuide","labelsInfo","chartTypesWithContinuousColors","optionsInfo","res","inputStateMap","addInfo","name","source","selectedSourceInfo","uniqueValuesItem","uniqueValues","valueLabels","key","mapping","createDefaultMapping","v","createContinuousMappingFromPalette","DEFAULT_CONTINUOUS_PALETTE","_a","selectedSource","option","getTitle","selected","typeOptions","options","addOption","text","openForm","defaultFixed","defaultMappingCategorical","defaultMappingContinuous","_b","watch","aesButtonRef","popupHeight","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","_createElementVNode","_hoisted_1","_createVNode","_unref","PlDropdown","$event","AesButton","_cache","el","_createBlock","Popup","_normalizeClass","FixedColorsList","$emit","FixedDotShapeList","FixedLineTypeList","FormWrapper","AesDataMappingDiscrete","_c","AesDataMappingContinuous","_d"],"mappings":"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"}
|
|
@@ -12,7 +12,9 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
12
12
|
"onAes-update"?: ((...args: any[]) => any) | undefined;
|
|
13
13
|
"onAes-selector-close"?: ((...args: any[]) => any) | undefined;
|
|
14
14
|
}>, {
|
|
15
|
+
selected: number | ContinuousDataMappingSize;
|
|
15
16
|
min: number;
|
|
16
17
|
max: number;
|
|
18
|
+
possibleAesSourceInputs: string[];
|
|
17
19
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
18
20
|
export default _default;
|
|
@@ -6,14 +6,14 @@ import { isContinuousDataMapping as S } from "../../constantsCommon.js";
|
|
|
6
6
|
const C = { class: "dot-size-selector" }, L = { class: "dot-size-selector__row" }, O = { class: "dot-size-selector-row" }, j = /* @__PURE__ */ U({
|
|
7
7
|
__name: "DotSizeSelector",
|
|
8
8
|
props: {
|
|
9
|
-
selected: {},
|
|
9
|
+
selected: { default: void 0 },
|
|
10
10
|
min: { default: 3 },
|
|
11
11
|
max: { default: 10 },
|
|
12
|
-
possibleAesSourceInputs: {}
|
|
12
|
+
possibleAesSourceInputs: { default: void 0 }
|
|
13
13
|
},
|
|
14
14
|
emits: ["aes-update", "aes-selector-close"],
|
|
15
15
|
setup(s, { emit: h }) {
|
|
16
|
-
const o = s, r = B(),
|
|
16
|
+
const o = s, r = B(), d = p(() => r.value.reactive.chartType), i = h, k = {
|
|
17
17
|
discrete: ["primaryGrouping", "secondaryGrouping"],
|
|
18
18
|
scatterplot: ["size"],
|
|
19
19
|
"scatterplot-umap": ["size"],
|
|
@@ -21,21 +21,21 @@ const C = { class: "dot-size-selector" }, L = { class: "dot-size-selector__row"
|
|
|
21
21
|
heatmap: [],
|
|
22
22
|
histogram: [],
|
|
23
23
|
bubble: []
|
|
24
|
-
}, y = o.possibleAesSourceInputs ?? k[
|
|
24
|
+
}, y = o.possibleAesSourceInputs ?? k[d.value], l = v(
|
|
25
25
|
S(o.selected) ? o.selected.column : "fix"
|
|
26
26
|
), V = p(() => r.value.inputGuide.value);
|
|
27
27
|
function A(t) {
|
|
28
28
|
const e = V.value.getSourceInfo(t);
|
|
29
|
-
return
|
|
29
|
+
return d.value === "scatterplot" || d.value === "dendro" ? `Grouping: ${e == null ? void 0 : e.label}` : e ? (e == null ? void 0 : e.label) ?? "" : "Not consistent (grouping)";
|
|
30
30
|
}
|
|
31
|
-
const
|
|
31
|
+
const m = p(() => {
|
|
32
32
|
const t = [], e = r.value.reactive.optionsState.components;
|
|
33
33
|
return y.forEach((a) => {
|
|
34
34
|
var D;
|
|
35
|
-
(D = e == null ? void 0 : e[a]) != null && D.selectorStates.length && e[a].selectorStates.forEach(({ selectedSource:
|
|
36
|
-
V.value.getSourceInfo(
|
|
37
|
-
text: A(
|
|
38
|
-
value:
|
|
35
|
+
(D = e == null ? void 0 : e[a]) != null && D.selectorStates.length && e[a].selectorStates.forEach(({ selectedSource: c }) => {
|
|
36
|
+
V.value.getSourceInfo(c).type !== "String" && t.push({
|
|
37
|
+
text: A(c),
|
|
38
|
+
value: c
|
|
39
39
|
});
|
|
40
40
|
});
|
|
41
41
|
}), t.length ? t : [{ text: "Fixed", value: "fix" }];
|
|
@@ -77,33 +77,33 @@ const C = { class: "dot-size-selector" }, L = { class: "dot-size-selector__row"
|
|
|
77
77
|
}, ["stop"]))
|
|
78
78
|
}, [
|
|
79
79
|
w(b(N), {
|
|
80
|
-
disabled: c.value.length < 2 && c.value[0].value === l.value,
|
|
81
|
-
label: "Dot size source",
|
|
82
|
-
options: c.value,
|
|
83
80
|
modelValue: l.value,
|
|
84
|
-
"onUpdate:modelValue": e[0] || (e[0] = (a) => l.value = a)
|
|
85
|
-
|
|
81
|
+
"onUpdate:modelValue": e[0] || (e[0] = (a) => l.value = a),
|
|
82
|
+
disabled: m.value.length < 2 && m.value[0].value === l.value,
|
|
83
|
+
label: "Dot size source",
|
|
84
|
+
options: m.value
|
|
85
|
+
}, null, 8, ["modelValue", "disabled", "options"])
|
|
86
86
|
])
|
|
87
87
|
]),
|
|
88
88
|
g("div", O, [
|
|
89
89
|
l.value !== "fix" ? (x(), E(b(F), {
|
|
90
90
|
key: 0,
|
|
91
|
+
modelValue: n.value,
|
|
92
|
+
"onUpdate:modelValue": e[2] || (e[2] = (a) => n.value = a),
|
|
91
93
|
min: s.min,
|
|
92
94
|
max: s.max,
|
|
93
95
|
breakpoints: !0,
|
|
94
|
-
label: "Dot size range"
|
|
95
|
-
|
|
96
|
-
"onUpdate:modelValue": e[2] || (e[2] = (a) => n.value = a)
|
|
97
|
-
}, null, 8, ["min", "max", "modelValue"])) : (x(), E(b(_), {
|
|
96
|
+
label: "Dot size range"
|
|
97
|
+
}, null, 8, ["modelValue", "min", "max"])) : (x(), E(b(_), {
|
|
98
98
|
key: 1,
|
|
99
|
+
modelValue: u.value,
|
|
100
|
+
"onUpdate:modelValue": e[3] || (e[3] = (a) => u.value = a),
|
|
99
101
|
min: s.min,
|
|
100
102
|
max: s.max,
|
|
101
103
|
step: 1,
|
|
102
104
|
breakpoints: !0,
|
|
103
|
-
label: "Dot size"
|
|
104
|
-
|
|
105
|
-
"onUpdate:modelValue": e[3] || (e[3] = (a) => u.value = a)
|
|
106
|
-
}, null, 8, ["min", "max", "modelValue"]))
|
|
105
|
+
label: "Dot size"
|
|
106
|
+
}, null, 8, ["modelValue", "min", "max"]))
|
|
107
107
|
])
|
|
108
108
|
]));
|
|
109
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DotSizeSelector.vue.js","sources":["../../../src/forms/LayersForm/DotSizeSelector.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue';\nimport { PlDropdown, Slider, SliderRange } from '@platforma-sdk/ui-vue';\nimport { DEFAULT_DOT_RANGE, DEFAULT_DOT_SIZE } from '../../dataBindAes';\nimport { useStore } from '../../store';\nimport { ContinuousDataMappingSize
|
|
1
|
+
{"version":3,"file":"DotSizeSelector.vue.js","sources":["../../../src/forms/LayersForm/DotSizeSelector.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue';\nimport { PlDropdown, Slider, SliderRange } from '@platforma-sdk/ui-vue';\nimport { DEFAULT_DOT_RANGE, DEFAULT_DOT_SIZE } from '../../dataBindAes';\nimport { useStore } from '../../store';\nimport type { ContinuousDataMappingSize } from '../../constantsCommon';\nimport { isContinuousDataMapping } from '../../constantsCommon';\nimport type { ChartType } from '@milaboratories/pf-plots';\n\nconst props = withDefaults(defineProps<{\n selected?: number | ContinuousDataMappingSize;\n min?: number;\n max?: number;\n possibleAesSourceInputs?: string[];\n}>(), { selected: undefined, min: 3, max: 10, possibleAesSourceInputs: undefined });\n\nconst store = useStore();\nconst chartType = computed(() => store.value.reactive.chartType);\nconst emit = defineEmits(['aes-update', 'aes-selector-close']);\n\nconst DEFAULT_AES_INPUTS: Record<ChartType, string[]> = {\n 'discrete': ['primaryGrouping', 'secondaryGrouping'],\n 'scatterplot': ['size'],\n 'scatterplot-umap': ['size'],\n 'dendro': [],\n 'heatmap': [],\n 'histogram': [],\n 'bubble': [],\n};\nconst possibleAesSourceInputs = props.possibleAesSourceInputs ?? DEFAULT_AES_INPUTS[chartType.value];\n\nconst selectedKey = ref(\n isContinuousDataMapping(props.selected) ? props.selected.column : 'fix',\n);\n\nconst inputGuide = computed(() => store.value.inputGuide.value);\n\nfunction getOptionTitle(selected: string) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(selected);\n\n if (chartType.value === 'scatterplot' || chartType.value === 'dendro') {\n return `Grouping: ${selectedSourceInfo?.label}`;\n }\n if (!selectedSourceInfo) {\n return 'Not consistent (grouping)';\n }\n return selectedSourceInfo?.label ?? '';\n}\n\nconst options = computed(() => {\n const options: { text: string; value: string }[] = [];\n const inputStateMap = store.value.reactive.optionsState.components;\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(selectedSource);\n if (selectedSourceInfo.type !== 'String') {\n options.push({\n text: getOptionTitle(selectedSource),\n value: selectedSource,\n });\n }\n });\n }\n });\n return options.length ? options : [{ text: 'Fixed', value: 'fix' }];\n});\n\nconst fixedValue = ref(isContinuousDataMapping(props.selected) ? DEFAULT_DOT_SIZE : props.selected ?? DEFAULT_DOT_SIZE);\nconst rangeValue = ref<[number, number]>(isContinuousDataMapping(props.selected) ? [props.selected.range.min, props.selected.range.max] : [DEFAULT_DOT_RANGE.min, DEFAULT_DOT_RANGE.max]);\n\nwatch(\n () => selectedKey.value,\n (value) => {\n if (value === 'fix') {\n emit('aes-update', fixedValue.value);\n } else {\n const mapping = {\n column: value,\n range: { min: rangeValue.value[0], max: rangeValue.value[1] },\n } as ContinuousDataMappingSize;\n emit('aes-update', mapping);\n }\n },\n);\n\nwatch(\n () => fixedValue.value,\n (value) => {\n if (selectedKey.value === 'fix') {\n emit('aes-update', value);\n }\n },\n);\n\nwatch(\n () => rangeValue.value,\n (rangeV) => {\n if (selectedKey.value !== 'fix') {\n const mapping = {\n column: selectedKey.value,\n range: { min: rangeV[0], max: rangeV[1] },\n } as ContinuousDataMappingSize;\n emit('aes-update', mapping);\n }\n },\n);\n\n</script>\n\n<template>\n <div class=\"dot-size-selector\">\n <div class=\"dot-size-selector__row\">\n <div class=\"aes-input-select\" @click.stop>\n <PlDropdown\n v-model=\"selectedKey\"\n :disabled=\"options.length < 2 && options[0].value === selectedKey\"\n label=\"Dot size source\"\n :options=\"options\"\n />\n </div>\n </div>\n <div class=\"dot-size-selector-row\">\n <SliderRange\n v-if=\"selectedKey !== 'fix'\"\n v-model=\"rangeValue\"\n :min=\"min\"\n :max=\"max\"\n :breakpoints=\"true\"\n label=\"Dot size range\"\n />\n <Slider\n v-else\n v-model=\"fixedValue\"\n :min=\"min\"\n :max=\"max\"\n :step=\"1\"\n :breakpoints=\"true\"\n label=\"Dot size\"\n />\n </div>\n </div>\n</template>\n<style>\n .dot-size-selector {\n margin-top: 24px\n }\n .dot-size-selector__row {\n margin: 12px 0;\n }\n</style>\n"],"names":["props","__props","store","useStore","chartType","computed","emit","__emit","DEFAULT_AES_INPUTS","possibleAesSourceInputs","selectedKey","ref","isContinuousDataMapping","inputGuide","getOptionTitle","selected","selectedSourceInfo","options","inputStateMap","name","_a","selectedSource","fixedValue","DEFAULT_DOT_SIZE","rangeValue","DEFAULT_DOT_RANGE","watch","value","mapping","rangeV","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createVNode","_unref","PlDropdown","$event","_hoisted_3","_createBlock","SliderRange","Slider"],"mappings":"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"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as y, computed as s, ref as v, createElementBlock as B, openBlock as A, Fragment as O, createVNode as a, createBlock as x, createCommentVNode as E, createElementVNode as u, unref as n, withCtx as U } from "vue";
|
|
2
2
|
import { useStore as P } from "../../../store.js";
|
|
3
3
|
import { DEFAULT_CONTINUOUS_PALETTE as _, DEFAULT_BLACK as I, PALETTE_MAP as L } from "../../../constantsAesthetic.js";
|
|
4
4
|
import { createContinuousMappingFromPalette as z } from "../../../dataBindAes.js";
|
|
5
5
|
import D from "../../../components/MultiselectButton.vue.js";
|
|
6
6
|
import F from "../../../components/AesSettings/PalettesForm.vue.js";
|
|
7
7
|
import $ from "../../../components/AesSettings/FormWrapper.vue.js";
|
|
8
|
-
import { PlBtnGroup as p, PlCheckbox as V, PlNumberField as
|
|
9
|
-
import
|
|
10
|
-
const
|
|
8
|
+
import { PlBtnGroup as p, PlCheckbox as V, PlNumberField as R } from "@platforma-sdk/ui-vue";
|
|
9
|
+
import w from "../AesSelector.vue.js";
|
|
10
|
+
const G = { class: "input-item" }, X = { class: "button-group-item" }, Y = { class: "button-group-item" }, H = { class: "checkbox-item" }, Z = { class: "checkbox-item" }, K = { class: "button-group-item" }, j = {
|
|
11
11
|
class: "button-group-item",
|
|
12
12
|
style: { display: "flex", alignItems: "end" }
|
|
13
|
-
},
|
|
13
|
+
}, q = "bubble", ne = /* @__PURE__ */ y({
|
|
14
14
|
__name: "Bubble",
|
|
15
|
-
setup(
|
|
16
|
-
const i = P(), t = s(() => i.value.reactive.layersSettings
|
|
17
|
-
s(() => i.value.inputGuide.value);
|
|
18
|
-
const r = s(() => {
|
|
15
|
+
setup(J) {
|
|
16
|
+
const i = P(), t = s(() => i.value.reactive.layersSettings[q]), f = s(() => i.value.reactive.optionsState), r = s(() => {
|
|
19
17
|
var o;
|
|
20
18
|
return (o = f.value.components.valueColor.selectorStates[0]) == null ? void 0 : o.selectedSource;
|
|
21
19
|
}), N = s(() => {
|
|
@@ -46,7 +44,7 @@ const w = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
|
|
|
46
44
|
{ label: "empty", value: null },
|
|
47
45
|
{ label: "Special value", value: "custom" }
|
|
48
46
|
], g = v(t.value.NAValueAs !== null ? "custom" : t.value.NAValueAs), c = v(t.value.NAValueAs ?? 0);
|
|
49
|
-
return (o, e) => (A(), O
|
|
47
|
+
return (o, e) => (A(), B(O, null, [
|
|
50
48
|
a(D, {
|
|
51
49
|
label: "Color Palette ",
|
|
52
50
|
title: n(L)[d.value].title,
|
|
@@ -55,7 +53,7 @@ const w = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
|
|
|
55
53
|
m.value = !0;
|
|
56
54
|
})
|
|
57
55
|
}, null, 8, ["title", "palette"]),
|
|
58
|
-
m.value ? (A(),
|
|
56
|
+
m.value ? (A(), x($, {
|
|
59
57
|
key: 0,
|
|
60
58
|
title: "Color Palette",
|
|
61
59
|
"back-title": "Color mapping",
|
|
@@ -70,8 +68,8 @@ const w = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
|
|
|
70
68
|
]),
|
|
71
69
|
_: 1
|
|
72
70
|
})) : E("", !0),
|
|
73
|
-
u("div",
|
|
74
|
-
a(
|
|
71
|
+
u("div", G, [
|
|
72
|
+
a(w, {
|
|
75
73
|
label: "Stroke color",
|
|
76
74
|
"form-title": "Stroke Color Settings",
|
|
77
75
|
"form-back-title": "Layers",
|
|
@@ -83,20 +81,20 @@ const w = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
|
|
|
83
81
|
]),
|
|
84
82
|
u("div", X, [
|
|
85
83
|
a(n(p), {
|
|
84
|
+
modelValue: t.value.normalizationDirection,
|
|
85
|
+
"onUpdate:modelValue": e[3] || (e[3] = (l) => t.value.normalizationDirection = l),
|
|
86
86
|
label: "Normalize by",
|
|
87
87
|
options: k,
|
|
88
|
-
compact: !0
|
|
89
|
-
modelValue: t.value.normalizationDirection,
|
|
90
|
-
"onUpdate:modelValue": e[3] || (e[3] = (l) => t.value.normalizationDirection = l)
|
|
88
|
+
compact: !0
|
|
91
89
|
}, null, 8, ["modelValue"])
|
|
92
90
|
]),
|
|
93
91
|
u("div", Y, [
|
|
94
92
|
a(n(p), {
|
|
93
|
+
modelValue: t.value.normalizationMethod,
|
|
94
|
+
"onUpdate:modelValue": e[4] || (e[4] = (l) => t.value.normalizationMethod = l),
|
|
95
95
|
label: "Normalization method",
|
|
96
96
|
options: M,
|
|
97
|
-
compact: !0
|
|
98
|
-
modelValue: t.value.normalizationMethod,
|
|
99
|
-
"onUpdate:modelValue": e[4] || (e[4] = (l) => t.value.normalizationMethod = l)
|
|
97
|
+
compact: !0
|
|
100
98
|
}, null, 8, ["modelValue"])
|
|
101
99
|
]),
|
|
102
100
|
u("div", H, [
|
|
@@ -115,44 +113,44 @@ const w = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
|
|
|
115
113
|
]),
|
|
116
114
|
u("div", K, [
|
|
117
115
|
a(n(p), {
|
|
116
|
+
modelValue: t.value.aggregationMethod,
|
|
117
|
+
"onUpdate:modelValue": e[7] || (e[7] = (l) => t.value.aggregationMethod = l),
|
|
118
118
|
label: "Aggregation method",
|
|
119
119
|
options: S,
|
|
120
|
-
compact: !0
|
|
121
|
-
modelValue: t.value.aggregationMethod,
|
|
122
|
-
"onUpdate:modelValue": e[7] || (e[7] = (l) => t.value.aggregationMethod = l)
|
|
120
|
+
compact: !0
|
|
123
121
|
}, null, 8, ["modelValue"])
|
|
124
122
|
]),
|
|
125
123
|
u("div", j, [
|
|
126
124
|
a(n(p), {
|
|
127
|
-
label: "Treat NA value as:",
|
|
128
|
-
options: T,
|
|
129
|
-
compact: !0,
|
|
130
125
|
modelValue: g.value,
|
|
131
126
|
"onUpdate:modelValue": [
|
|
132
127
|
e[8] || (e[8] = (l) => g.value = l),
|
|
133
128
|
e[9] || (e[9] = (l) => {
|
|
134
129
|
l === "custom" ? t.value.NAValueAs = c.value : t.value.NAValueAs = l;
|
|
135
130
|
})
|
|
136
|
-
]
|
|
131
|
+
],
|
|
132
|
+
label: "Treat NA value as:",
|
|
133
|
+
options: T,
|
|
134
|
+
compact: !0
|
|
137
135
|
}, null, 8, ["modelValue"]),
|
|
138
|
-
a(n(
|
|
139
|
-
style: { height: "33px", marginLeft: "16px", width: "75px" },
|
|
140
|
-
disabled: g.value !== "custom",
|
|
141
|
-
label: "NA value",
|
|
142
|
-
useIncrementButtons: !1,
|
|
136
|
+
a(n(R), {
|
|
143
137
|
modelValue: c.value,
|
|
144
138
|
"onUpdate:modelValue": [
|
|
145
139
|
e[10] || (e[10] = (l) => c.value = l),
|
|
146
140
|
e[11] || (e[11] = (l) => {
|
|
147
141
|
l !== void 0 && (t.value.NAValueAs = l);
|
|
148
142
|
})
|
|
149
|
-
]
|
|
150
|
-
|
|
143
|
+
],
|
|
144
|
+
style: { height: "33px", marginLeft: "16px", width: "75px" },
|
|
145
|
+
disabled: g.value !== "custom",
|
|
146
|
+
label: "NA value",
|
|
147
|
+
useIncrementButtons: !1
|
|
148
|
+
}, null, 8, ["modelValue", "disabled"])
|
|
151
149
|
])
|
|
152
150
|
], 64));
|
|
153
151
|
}
|
|
154
152
|
});
|
|
155
153
|
export {
|
|
156
|
-
|
|
154
|
+
ne as default
|
|
157
155
|
};
|
|
158
156
|
//# sourceMappingURL=Bubble.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bubble.vue.js","sources":["../../../../src/forms/LayersForm/Layer/Bubble.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../store';\nimport { BubbleLayer } from '../../../types';\nimport { computed, ref } from 'vue';\nimport {\n DEFAULT_BLACK,\n DEFAULT_CONTINUOUS_PALETTE,\n PALETTE_MAP
|
|
1
|
+
{"version":3,"file":"Bubble.vue.js","sources":["../../../../src/forms/LayersForm/Layer/Bubble.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../store';\nimport type { BubbleLayer } from '../../../types';\nimport { computed, ref } from 'vue';\nimport {\n DEFAULT_BLACK,\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 { BubbleUIState } from '@milaboratories/pf-plots';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlNumberField } from '@platforma-sdk/ui-vue';\nimport AesSelector from '../AesSelector.vue';\n\nconst store = useStore();\nconst layer: BubbleLayer = 'bubble';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nconst optionsState = computed(() => store.value.reactive.optionsState as BubbleUIState);\n\nconst valueColor = computed(() => optionsState.value.components.valueColor.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => valueColor.value ? store.value.reactive.dataBindAes[valueColor.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 (valueColor.value) {\n store.value.reactive.dataBindAes[valueColor.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 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 stroke = computed({\n get: () => {\n return settings.value.strokeColor ?? DEFAULT_BLACK;\n },\n set: (v: string) => {\n settings.value.strokeColor = v;\n },\n});\n\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs !== null ? 'custom' : settings.value.NAValueAs);\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n\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=\"false\" @select=\"onPaletteSelect\" />\n </FormWrapper>\n <div class=\"input-item\">\n <AesSelector\n label=\"Stroke color\"\n form-title=\"Stroke Color Settings\"\n form-back-title=\"Layers\"\n type=\"stroke\"\n :possible-aes-source-inputs=\"[]\"\n :selected=\"stroke\"\n @aes-update=\"(v:string) => stroke = v\"\n />\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","valueColor","_a","savedDataValuePalette","palettesOpen","ref","palette","DEFAULT_CONTINUOUS_PALETTE","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","AGGREGATION_METHOD","stroke","DEFAULT_BLACK","v","NA_VALUE_OPTIONS","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","AesSelector","_cache","_hoisted_2","PlBtnGroup","$event","_hoisted_3","_hoisted_4","PlCheckbox","_hoisted_5","_hoisted_6","_hoisted_7","PlNumberField"],"mappings":"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"}
|
|
@@ -77,21 +77,21 @@ const M = { class: "checkbox-item" }, R = { class: "checkbox-item" }, r = "dendr
|
|
|
77
77
|
d("div", null, [
|
|
78
78
|
u.value.components.nodeSize.selectorStates.length > 0 ? (m(), b(p(B), {
|
|
79
79
|
key: 0,
|
|
80
|
+
modelValue: c.value,
|
|
81
|
+
"onUpdate:modelValue": e[3] || (e[3] = (t) => c.value = t),
|
|
80
82
|
min: 3,
|
|
81
83
|
max: 10,
|
|
82
84
|
breakpoints: !0,
|
|
83
|
-
label: "Node size range"
|
|
84
|
-
modelValue: c.value,
|
|
85
|
-
"onUpdate:modelValue": e[3] || (e[3] = (t) => c.value = t)
|
|
85
|
+
label: "Node size range"
|
|
86
86
|
}, null, 8, ["modelValue"])) : (m(), b(p(F), {
|
|
87
87
|
key: 1,
|
|
88
|
+
modelValue: y.value,
|
|
89
|
+
"onUpdate:modelValue": e[4] || (e[4] = (t) => y.value = t),
|
|
88
90
|
min: 3,
|
|
89
91
|
max: 10,
|
|
90
92
|
step: 1,
|
|
91
93
|
breakpoints: !0,
|
|
92
|
-
label: "Node size"
|
|
93
|
-
modelValue: y.value,
|
|
94
|
-
"onUpdate:modelValue": e[4] || (e[4] = (t) => y.value = t)
|
|
94
|
+
label: "Node size"
|
|
95
95
|
}, null, 8, ["modelValue"]))
|
|
96
96
|
]),
|
|
97
97
|
d("div", M, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dendro.vue.js","sources":["../../../../src/forms/LayersForm/Layer/Dendro.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../store';\nimport { computed, ref } from
|
|
1
|
+
{"version":3,"file":"Dendro.vue.js","sources":["../../../../src/forms/LayersForm/Layer/Dendro.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../store';\nimport { computed, ref } from 'vue';\nimport AesSelector from '../AesSelector.vue';\nimport type { AestheticMappingCategorical } from '../../../dataBindAes';\nimport type {\n AesMappingOption,\n AesOption,\n DotShape,\n} from '../../../components/AesSettings/types';\nimport type { DendroUIState } from '@milaboratories/pf-plots';\nimport { PlCheckbox, SliderRange, Slider } from '@platforma-sdk/ui-vue';\nimport { isNumberRange } from '../../../constantsCommon';\n\nconst store = useStore();\nconst layer = 'dendro';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nconst optionsState = computed(\n () => store.value.reactive.optionsState as DendroUIState,\n);\n\nconst nodeColor = computed(() => settings.value.dotFill);\nconst nodeShape = computed(() => settings.value.dotShape);\nconst lineColor = computed(() => settings.value.lineColor);\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'dotFill' | '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] = {\n type: colorOption.inputName,\n value: colorOption.selectedSource,\n };\n }\n if (colorOption.type === 'dataCategorical' && typeof value !== 'string') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n\nfunction onUpdateDot(\n value: DotShape | AestheticMappingCategorical,\n colorOption: AesMappingOption,\n field: 'dotShape',\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] = {\n type: colorOption.inputName,\n value: colorOption.selectedSource,\n };\n }\n if (colorOption.type === 'dataCategorical' && typeof value !== 'string') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n\n// Tree mode 'useAllNodesAsLeaves' - align tree special way to be able to set table line opposite every node\n// const treeAlign = ref(settings.value.mode === 'useAllNodesAsLeaves');\nconst leavesAlign = ref(settings.value.leavesMode === 'alignLeavesToLine');\n\nconst showLegend = computed({\n get() { return settings.value.showLegend ?? true; },\n set(v) {\n settings.value.showLegend = v;\n },\n});\nconst nodeSizeRange = computed<[number, number]>({\n get() { return isNumberRange(settings.value.dotSize) ? [settings.value.dotSize.min, settings.value.dotSize.max] : [3, 10]; },\n set([min, max]: [number, number]) {\n settings.value.dotSize = { min, max };\n },\n});\nconst nodeSize = computed<number>({\n get() { return isNumberRange(settings.value.dotSize) ? 3 : settings.value.dotSize; },\n set(v: number) {\n settings.value.dotSize = v;\n },\n});\n\n</script>\n\n<template>\n <AesSelector\n label=\"Node color\"\n form-title=\"Node Color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"nodeColor\"\n :possible-aes-source-inputs=\"['nodeColor']\"\n :without-fixed=\"\n optionsState.components.nodeColor.selectorStates.length > 0\n \"\n @aes-update=\"(v:string|AestheticMappingCategorical, c:AesOption) => onUpdate(v, c, 'dotFill')\"\n />\n <AesSelector\n label=\"Node shape\"\n form-title=\"Node Shape Settings\"\n form-back-title=\"Layers\"\n type=\"dotShape\"\n :selected=\"nodeShape\"\n :possible-aes-source-inputs=\"['nodeShape']\"\n :without-fixed=\"\n optionsState.components.nodeShape.selectorStates.length > 0\n \"\n @aes-update=\"(v:DotShape|AestheticMappingCategorical, c:AesMappingOption) => onUpdateDot(v, c, 'dotShape')\"\n />\n <AesSelector\n label=\"Line color\"\n form-title=\"Line Color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"lineColor\"\n :possible-aes-source-inputs=\"['lineColor']\"\n :without-fixed=\"\n optionsState.components.lineColor.selectorStates.length > 0\n \"\n @aes-update=\"(v:string|AestheticMappingCategorical, c:AesOption) => onUpdate(v, c, 'lineColor')\"\n />\n <!-- <div class=\"checkbox-item\">-->\n <!-- <pl-checkbox v-model=\"treeAlign\" @update:modelValue=\"(v) => {-->\n <!-- settings.mode = v ? 'useAllNodesAsLeaves' : 'normal';-->\n <!-- }\"/>-->\n <!-- <span>Align every node with table</span>-->\n <!-- </div>-->\n <div>\n <SliderRange\n v-if=\"optionsState.components.nodeSize.selectorStates.length > 0\"\n v-model=\"nodeSizeRange\"\n :min=\"3\"\n :max=\"10\"\n :breakpoints=\"true\"\n label=\"Node size range\"\n />\n <Slider\n v-else\n v-model=\"nodeSize\"\n :min=\"3\"\n :max=\"10\"\n :step=\"1\"\n :breakpoints=\"true\"\n label=\"Node size\"\n />\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox\n v-model=\"leavesAlign\" @update:modelValue=\"(v) => {\n settings.leavesMode = v ? 'alignLeavesToLine' : 'normal';\n }\"\n />\n <span>Move leaves to the right</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"showLegend\"/>\n <span>Show legend</span>\n </div>\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","nodeColor","nodeShape","lineColor","onUpdate","value","colorOption","field","onUpdateDot","leavesAlign","ref","showLegend","v","nodeSizeRange","isNumberRange","min","max","nodeSize","_createVNode","AesSelector","_cache","c","_createElementVNode","_createBlock","_unref","SliderRange","$event","Slider","_hoisted_1","PlCheckbox","_hoisted_2"],"mappings":"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"}
|
|
@@ -51,21 +51,21 @@ const s = "bar", _ = /* @__PURE__ */ C({
|
|
|
51
51
|
}, ["stop"]))
|
|
52
52
|
}, [
|
|
53
53
|
r(d(U), {
|
|
54
|
-
label: "Height",
|
|
55
|
-
options: g,
|
|
56
54
|
modelValue: l.value.height,
|
|
57
|
-
"onUpdate:modelValue": e[2] || (e[2] = (t) => l.value.height = t)
|
|
55
|
+
"onUpdate:modelValue": e[2] || (e[2] = (t) => l.value.height = t),
|
|
56
|
+
label: "Height",
|
|
57
|
+
options: g
|
|
58
58
|
}, null, 8, ["modelValue"])
|
|
59
59
|
]),
|
|
60
60
|
r(d(E), {
|
|
61
|
+
modelValue: p.value,
|
|
62
|
+
"onUpdate:modelValue": e[4] || (e[4] = (t) => p.value = t),
|
|
61
63
|
label: "Opacity",
|
|
62
64
|
min: 0,
|
|
63
65
|
max: 100,
|
|
64
66
|
step: 1,
|
|
65
67
|
breakpoints: !1,
|
|
66
|
-
measure: "%"
|
|
67
|
-
modelValue: p.value,
|
|
68
|
-
"onUpdate:modelValue": e[4] || (e[4] = (t) => p.value = t)
|
|
68
|
+
measure: "%"
|
|
69
69
|
}, null, 8, ["modelValue"])
|
|
70
70
|
], 64));
|
|
71
71
|
}
|