@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.
Files changed (197) hide show
  1. package/dist/components/AesButton.vue.d.ts +6 -6
  2. package/dist/components/AesButton.vue.js +2 -2
  3. package/dist/components/AesButton.vue.js.map +1 -1
  4. package/dist/components/AesSettings/AesDataMappingContinuous.vue.js +14 -14
  5. package/dist/components/AesSettings/AesDataMappingContinuous.vue.js.map +1 -1
  6. package/dist/components/AesSettings/AesDataMappingDiscrete.vue.js +39 -38
  7. package/dist/components/AesSettings/AesDataMappingDiscrete.vue.js.map +1 -1
  8. package/dist/components/AesSettings/FixedColorsList.vue.d.ts +1 -1
  9. package/dist/components/AesSettings/FixedColorsList.vue.js +13 -12
  10. package/dist/components/AesSettings/FixedColorsList.vue.js.map +1 -1
  11. package/dist/components/AesSettings/FixedDotShapeList.vue.js +10 -9
  12. package/dist/components/AesSettings/FixedDotShapeList.vue.js.map +1 -1
  13. package/dist/components/AesSettings/FixedLineTypeList.vue.js +12 -11
  14. package/dist/components/AesSettings/FixedLineTypeList.vue.js.map +1 -1
  15. package/dist/components/AesSettings/FormWrapper.vue.js +2 -2
  16. package/dist/components/AesSettings/FormWrapper.vue.js.map +1 -1
  17. package/dist/components/AesSettings/PalettesForm.vue.js +54 -50
  18. package/dist/components/AesSettings/PalettesForm.vue.js.map +1 -1
  19. package/dist/components/AesSettings/types.d.ts +9 -9
  20. package/dist/components/BtnIconGroup.vue.js +10 -11
  21. package/dist/components/BtnIconGroup.vue.js.map +1 -1
  22. package/dist/components/Chart.vue.js +6 -8
  23. package/dist/components/Chart.vue.js.map +1 -1
  24. package/dist/components/CollapsableBlock.vue.js +2 -2
  25. package/dist/components/CollapsableBlock.vue.js.map +1 -1
  26. package/dist/components/DendroTable.vue.js +2 -2
  27. package/dist/components/DendroTable.vue.js.map +1 -1
  28. package/dist/components/DendroTooltip.vue.js +15 -14
  29. package/dist/components/DendroTooltip.vue.js.map +1 -1
  30. package/dist/components/DragAndDrop/DnDBasketChip.vue.js +2 -2
  31. package/dist/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
  32. package/dist/components/DragAndDrop/DnDRangeChip.vue.d.ts +12 -3
  33. package/dist/components/DragAndDrop/DnDRangeChip.vue.js +4 -4
  34. package/dist/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
  35. package/dist/components/DragAndDrop/DndBasket.vue.js +26 -26
  36. package/dist/components/DragAndDrop/DndBasket.vue.js.map +1 -1
  37. package/dist/components/DragAndDrop/DndChip.vue.js.map +1 -1
  38. package/dist/components/DragAndDrop/DndDoubleChip.vue.js +2 -2
  39. package/dist/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
  40. package/dist/components/DragAndDrop/types.d.ts +1 -1
  41. package/dist/components/LassoControls/index.vue.js +4 -4
  42. package/dist/components/LassoControls/index.vue.js.map +1 -1
  43. package/dist/components/Loading.vue.js +8 -7
  44. package/dist/components/Loading.vue.js.map +1 -1
  45. package/dist/components/MultiselectButton.vue.js +28 -27
  46. package/dist/components/MultiselectButton.vue.js.map +1 -1
  47. package/dist/components/PanelModal.vue.js.map +1 -1
  48. package/dist/components/PlColorSlider.vue.js +12 -12
  49. package/dist/components/PlColorSlider.vue.js.map +1 -1
  50. package/dist/components/PlColorSliderThumb.vue.js +1 -3
  51. package/dist/components/PlColorSliderThumb.vue.js.map +1 -1
  52. package/dist/components/Popup.vue.d.ts +2 -0
  53. package/dist/components/Popup.vue.js +21 -21
  54. package/dist/components/Popup.vue.js.map +1 -1
  55. package/dist/components/ReorderForm.vue.js +20 -17
  56. package/dist/components/ReorderForm.vue.js.map +1 -1
  57. package/dist/components/SettingsTabs/icons/DeleteChartIcon.vue.js.map +1 -1
  58. package/dist/components/SettingsTabs/icons/LogIcon.vue.js.map +1 -1
  59. package/dist/components/SettingsTabs/icons/SettingsIcon.vue.js.map +1 -1
  60. package/dist/components/SettingsTabs/index.vue.js.map +1 -1
  61. package/dist/components/Zoom/ZoomInput.vue.js +11 -11
  62. package/dist/components/Zoom/ZoomInput.vue.js.map +1 -1
  63. package/dist/components/Zoom/index.vue.js.map +1 -1
  64. package/dist/composition/useComponent.js.map +1 -1
  65. package/dist/constantsAesthetic.js.map +1 -1
  66. package/dist/constantsCommon.d.ts +3 -1
  67. package/dist/constantsCommon.js +5 -5
  68. package/dist/constantsCommon.js.map +1 -1
  69. package/dist/dataBindAes.js +4 -2
  70. package/dist/dataBindAes.js.map +1 -1
  71. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +35 -35
  72. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
  73. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +49 -47
  74. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  75. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +53 -53
  76. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
  77. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +37 -37
  78. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
  79. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +38 -38
  80. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
  81. package/dist/forms/AxesSettingsForm/index.vue.js.map +1 -1
  82. package/dist/forms/DataMappingForm/BubbleForm.vue.js +4 -4
  83. package/dist/forms/DataMappingForm/BubbleForm.vue.js.map +1 -1
  84. package/dist/forms/DataMappingForm/DendroForm.vue.js +1 -1
  85. package/dist/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
  86. package/dist/forms/DataMappingForm/DiscreteForm.vue.js.map +1 -1
  87. package/dist/forms/DataMappingForm/HeatmapForm.vue.js +2 -2
  88. package/dist/forms/DataMappingForm/HeatmapForm.vue.js.map +1 -1
  89. package/dist/forms/DataMappingForm/HistogramForm.vue.js.map +1 -1
  90. package/dist/forms/DataMappingForm/Layout/FormLayout.vue.js.map +1 -1
  91. package/dist/forms/DataMappingForm/Layout/MandatoryOptions.vue.js.map +1 -1
  92. package/dist/forms/DataMappingForm/Layout/OptionsList.vue.js.map +1 -1
  93. package/dist/forms/DataMappingForm/ScatterplotForm.vue.js +4 -4
  94. package/dist/forms/DataMappingForm/ScatterplotForm.vue.js.map +1 -1
  95. package/dist/forms/DataMappingForm/ScatterplotUmapForm.vue.js +4 -4
  96. package/dist/forms/DataMappingForm/ScatterplotUmapForm.vue.js.map +1 -1
  97. package/dist/forms/DataMappingForm/index.vue.js.map +1 -1
  98. package/dist/forms/DataMappingForm/useBaskets.js.map +1 -1
  99. package/dist/forms/DataMappingForm/utils.d.ts +1 -1
  100. package/dist/forms/DataMappingForm/utils.js +34 -34
  101. package/dist/forms/DataMappingForm/utils.js.map +1 -1
  102. package/dist/forms/LayersForm/AesSelector.vue.js +18 -25
  103. package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
  104. package/dist/forms/LayersForm/DotSizeSelector.vue.d.ts +2 -0
  105. package/dist/forms/LayersForm/DotSizeSelector.vue.js +23 -23
  106. package/dist/forms/LayersForm/DotSizeSelector.vue.js.map +1 -1
  107. package/dist/forms/LayersForm/Layer/Bubble.vue.js +32 -34
  108. package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
  109. package/dist/forms/LayersForm/Layer/Dendro.vue.js +6 -6
  110. package/dist/forms/LayersForm/Layer/Dendro.vue.js.map +1 -1
  111. package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js +6 -6
  112. package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js.map +1 -1
  113. package/dist/forms/LayersForm/Layer/discrete/BinnedDots.vue.js +3 -3
  114. package/dist/forms/LayersForm/Layer/discrete/BinnedDots.vue.js.map +1 -1
  115. package/dist/forms/LayersForm/Layer/discrete/Boxplot.vue.js +3 -3
  116. package/dist/forms/LayersForm/Layer/discrete/Boxplot.vue.js.map +1 -1
  117. package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js +9 -9
  118. package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js.map +1 -1
  119. package/dist/forms/LayersForm/Layer/discrete/JitteredDots.vue.js +3 -3
  120. package/dist/forms/LayersForm/Layer/discrete/JitteredDots.vue.js.map +1 -1
  121. package/dist/forms/LayersForm/Layer/discrete/Line.vue.js +8 -8
  122. package/dist/forms/LayersForm/Layer/discrete/Line.vue.js.map +1 -1
  123. package/dist/forms/LayersForm/Layer/discrete/Logo.vue.js +3 -3
  124. package/dist/forms/LayersForm/Layer/discrete/Logo.vue.js.map +1 -1
  125. package/dist/forms/LayersForm/Layer/discrete/Sina.vue.js +3 -3
  126. package/dist/forms/LayersForm/Layer/discrete/Sina.vue.js.map +1 -1
  127. package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js +9 -9
  128. package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -1
  129. package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js +6 -6
  130. package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js.map +1 -1
  131. package/dist/forms/LayersForm/Layer/discrete/Violin.vue.js +3 -3
  132. package/dist/forms/LayersForm/Layer/discrete/Violin.vue.js.map +1 -1
  133. package/dist/forms/LayersForm/Layer/discrete/utils.js.map +1 -1
  134. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +23 -23
  135. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
  136. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js +6 -6
  137. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js.map +1 -1
  138. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +28 -28
  139. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
  140. package/dist/forms/LayersForm/Layer/histogram/Bins.vue.js +3 -3
  141. package/dist/forms/LayersForm/Layer/histogram/Bins.vue.js.map +1 -1
  142. package/dist/forms/LayersForm/Layer/scatterplot/Curve.vue.js.map +1 -1
  143. package/dist/forms/LayersForm/Layer/scatterplot/Scatter.vue.js.map +1 -1
  144. package/dist/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js +2 -2
  145. package/dist/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js.map +1 -1
  146. package/dist/forms/LayersForm/index.vue.js +56 -52
  147. package/dist/forms/LayersForm/index.vue.js.map +1 -1
  148. package/dist/forms/LogForm.vue.js.map +1 -1
  149. package/dist/forms/SettingsForm.vue.js.map +1 -1
  150. package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js +14 -14
  151. package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js.map +1 -1
  152. package/dist/forms/StatisticsForm/ScatterplotStatisticsForm.vue.js.map +1 -1
  153. package/dist/forms/StatisticsForm/index.vue.js.map +1 -1
  154. package/dist/forms/TemplateForm.vue.js +59 -52
  155. package/dist/forms/TemplateForm.vue.js.map +1 -1
  156. package/dist/forms/index.js.map +1 -1
  157. package/dist/icons/BinnedDotsIcon.vue.js.map +1 -1
  158. package/dist/icons/BoxplotAndBinnedIcon.vue.js.map +1 -1
  159. package/dist/icons/BoxplotAndJitterIcon.vue.js.map +1 -1
  160. package/dist/icons/BoxplotIcon.vue.js.map +1 -1
  161. package/dist/icons/EditIcon.vue.js.map +1 -1
  162. package/dist/icons/FrameLeft.vue.js.map +1 -1
  163. package/dist/icons/HeatmapAnnotation.vue.js.map +1 -1
  164. package/dist/icons/LineAndErrorbarIcon.vue.js.map +1 -1
  165. package/dist/icons/LogoIcon.vue.js.map +1 -1
  166. package/dist/icons/PlusIcon.vue.js.map +1 -1
  167. package/dist/icons/SinaIcon.vue.js.map +1 -1
  168. package/dist/icons/StackedAreaIcon.vue.js.map +1 -1
  169. package/dist/index.vue.js +4 -4
  170. package/dist/index.vue.js.map +1 -1
  171. package/dist/store.d.ts +1 -1
  172. package/dist/store.js +2 -2
  173. package/dist/store.js.map +1 -1
  174. package/dist/types.d.ts +1 -1
  175. package/dist/utils/addFixedOptionsToState.js.map +1 -1
  176. package/dist/utils/calculateDiscreteGroups.js.map +1 -1
  177. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  178. package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  179. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
  180. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +1 -1
  181. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
  182. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  183. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
  184. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  185. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +1 -1
  186. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  187. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +24 -24
  188. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  189. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
  190. package/dist/utils/getPopupHeightForFixedAesList.js.map +1 -1
  191. package/dist/utils/getStatisticsOptions.js.map +1 -1
  192. package/dist/utils/getUsedAesInMapping.js +1 -1
  193. package/dist/utils/getUsedAesInMapping.js.map +1 -1
  194. package/dist/utils/loadDefaultSources.js.map +1 -1
  195. package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
  196. package/dist/utils/saveToFile.js.map +1 -1
  197. 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(), m = p(() => r.value.reactive.chartType), i = h, k = {
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[m.value], l = v(
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 m.value === "scatterplot" || m.value === "dendro" ? `Grouping: ${e == null ? void 0 : e.label}` : e ? (e == null ? void 0 : e.label) ?? "" : "Not consistent (grouping)";
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 c = p(() => {
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: d }) => {
36
- V.value.getSourceInfo(d).type !== "String" && t.push({
37
- text: A(d),
38
- value: d
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
- }, null, 8, ["disabled", "options", "modelValue"])
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
- modelValue: n.value,
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
- modelValue: u.value,
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, isContinuousDataMapping } from '../../constantsCommon';\nimport { ChartType } from '@milaboratories/pf-plots';\n\nconst props = withDefaults(defineProps<{\n selected?: number | ContinuousDataMappingSize;\n min?: number;\n max?: number;\n possibleAesSourceInputs?: string[];\n}>(), {min: 3, max: 10});\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 <pl-dropdown\n :disabled=\"options.length < 2 && options[0].value === selectedKey\"\n label=\"Dot size source\"\n :options=\"options\"\n v-model=\"selectedKey\"\n />\n </div>\n </div>\n <div class=\"dot-size-selector-row\">\n <SliderRange v-if=\"selectedKey !== 'fix'\"\n :min=\"min\"\n :max=\"max\"\n :breakpoints=\"true\"\n label=\"Dot size range\"\n v-model=\"rangeValue\"\n />\n <Slider v-else\n :min=\"min\"\n :max=\"max\"\n :step=\"1\"\n :breakpoints=\"true\"\n label=\"Dot size\"\n v-model=\"fixedValue\"\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":";;;;;;;;;;;;;;;AAQA,UAAMA,IAAQC,GAORC,IAAQC,EAAA,GACRC,IAAYC,EAAS,MAAMH,EAAM,MAAM,SAAS,SAAS,GACzDI,IAAOC,GAEPC,IAAkD;AAAA,MACtD,UAAU,CAAC,mBAAmB,mBAAmB;AAAA,MACjD,aAAa,CAAC,MAAM;AAAA,MACpB,oBAAoB,CAAC,MAAM;AAAA,MAC3B,QAAQ,CAAA;AAAA,MACR,SAAS,CAAA;AAAA,MACT,WAAW,CAAA;AAAA,MACX,QAAQ,CAAA;AAAA,IAAC,GAELC,IAA0BT,EAAM,2BAA2BQ,EAAmBJ,EAAU,KAAK,GAE7FM,IAAcC;AAAA,MAClBC,EAAwBZ,EAAM,QAAQ,IAAIA,EAAM,SAAS,SAAS;AAAA,IAAA,GAG9Da,IAAaR,EAAS,MAAMH,EAAM,MAAM,WAAW,KAAK;AAE9D,aAASY,EAAeC,GAAkB;AACxC,YAAMC,IAAqBH,EAAW,MAAM,cAAcE,CAAQ;AAElE,aAAIX,EAAU,UAAU,iBAAiBA,EAAU,UAAU,WACpD,aAAaY,KAAA,gBAAAA,EAAoB,KAAK,KAE1CA,KAGEA,KAAA,gBAAAA,EAAoB,UAAS,KAF3B;AAAA,IAGX;AAEA,UAAMC,IAAUZ,EAAS,MAAM;AAC7B,YAAMY,IAA6C,CAAA,GAC7CC,IAAgBhB,EAAM,MAAM,SAAS,aAAa;AAExD,aAAAO,EAAwB,QAAQ,CAACU,MAAS;;AACxC,SAAIC,IAAAF,KAAA,gBAAAA,EAAgBC,OAAhB,QAAAC,EAAuB,eAAe,UACxCF,EAAcC,CAAI,EAAE,eAAe,QAAQ,CAAC,EAAE,gBAAAE,QAAqB;AAEjE,UAD2BR,EAAW,MAAM,cAAcQ,CAAc,EACjD,SAAS,YAC9BJ,EAAQ,KAAK;AAAA,YACX,MAAMH,EAAeO,CAAc;AAAA,YACnC,OAAOA;AAAA,UAAA,CACR;AAAA,QAEL,CAAC;AAAA,MAEL,CAAC,GACMJ,EAAQ,SAASA,IAAU,CAAC,EAAE,MAAM,SAAS,OAAO,OAAO;AAAA,IACpE,CAAC,GAEKK,IAAaX,EAAIC,EAAwBZ,EAAM,QAAQ,IAAIuB,IAAmBvB,EAAM,YAAYuB,CAAgB,GAChHC,IAAab,EAAsBC,EAAwBZ,EAAM,QAAQ,IAAI,CAACA,EAAM,SAAS,MAAM,KAAKA,EAAM,SAAS,MAAM,GAAG,IAAI,CAACyB,EAAkB,KAAKA,EAAkB,GAAG,CAAC;AAExL,WAAAC;AAAA,MACE,MAAMhB,EAAY;AAAA,MAClB,CAACiB,MAAU;AACT,YAAIA,MAAU;AACZ,UAAArB,EAAK,cAAcgB,EAAW,KAAK;AAAA,aAC9B;AACL,gBAAMM,IAAU;AAAA,YACd,QAAQD;AAAA,YACR,OAAO,EAAE,KAAKH,EAAW,MAAM,CAAC,GAAG,KAAKA,EAAW,MAAM,CAAC,EAAA;AAAA,UAAE;AAE9D,UAAAlB,EAAK,cAAcsB,CAAO;AAAA,QAC5B;AAAA,MACF;AAAA,IAAA,GAGFF;AAAA,MACE,MAAMJ,EAAW;AAAA,MACjB,CAACK,MAAU;AACT,QAAIjB,EAAY,UAAU,SACxBJ,EAAK,cAAcqB,CAAK;AAAA,MAE5B;AAAA,IAAA,GAGFD;AAAA,MACE,MAAMF,EAAW;AAAA,MACjB,CAACK,MAAW;AACV,YAAInB,EAAY,UAAU,OAAO;AAC/B,gBAAMkB,IAAU;AAAA,YACd,QAAQlB,EAAY;AAAA,YACpB,OAAO,EAAE,KAAKmB,EAAO,CAAC,GAAG,KAAKA,EAAO,CAAC,EAAA;AAAA,UAAE;AAE1C,UAAAvB,EAAK,cAAcsB,CAAO;AAAA,QAC5B;AAAA,MACF;AAAA,IAAA,cAMAE,EAAA,GAAAC,EA4BM,OA5BNC,GA4BM;AAAA,MA3BJC,EASM,OATNC,GASM;AAAA,QARJD,EAOM,OAAA;AAAA,UAPD,OAAM;AAAA,UAAoB,2BAAD,MAAA;AAAA,UAAA,GAAW,CAAA,MAAA,CAAA;AAAA,QAAA;UACvCE,EAKEC,EAAAC,CAAA,GAAA;AAAA,YAJC,UAAUpB,QAAQ,cAAcA,EAAA,MAAO,CAAA,EAAI,UAAUP,EAAA;AAAA,YACtD,OAAM;AAAA,YACL,SAASO,EAAA;AAAA,wBACDP,EAAA;AAAA,0DAAAA,EAAW,QAAA4B;AAAA,UAAA;;;MAI1BL,EAgBM,OAhBNM,GAgBM;AAAA,QAfe7B,EAAA,UAAW,cAA9B8B,EAMEJ,EAAAK,CAAA,GAAA;AAAA;UALY,KAAKxC,EAAA;AAAA,UACL,KAAKA,EAAA;AAAA,UACL,aAAa;AAAA,UACd,OAAM;AAAA,sBACGuB,EAAA;AAAA,wDAAAA,EAAU,QAAAc;AAAA,QAAA,mDAEhCE,EAOEJ,EAAAM,CAAA,GAAA;AAAA;UANO,KAAKzC,EAAA;AAAA,UACL,KAAKA,EAAA;AAAA,UACL,MAAM;AAAA,UACN,aAAa;AAAA,UACd,OAAM;AAAA,sBACGqB,EAAA;AAAA,wDAAAA,EAAU,QAAAgB;AAAA,QAAA;;;;;"}
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 B, computed as s, ref as v, createElementBlock as O, openBlock as A, Fragment as x, createVNode as a, createBlock as y, createCommentVNode as E, createElementVNode as u, unref as n, withCtx as U } from "vue";
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 G } from "@platforma-sdk/ui-vue";
9
- import R from "../AesSelector.vue.js";
10
- const w = { 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 = {
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
- }, ue = /* @__PURE__ */ B({
13
+ }, q = "bubble", ne = /* @__PURE__ */ y({
14
14
  __name: "Bubble",
15
- setup(q) {
16
- const i = P(), t = s(() => i.value.reactive.layersSettings.bubble), f = s(() => i.value.reactive.optionsState);
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(x, null, [
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(), y($, {
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", w, [
74
- a(R, {
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(G), {
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
- }, null, 8, ["disabled", "modelValue"])
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
- ue as default
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\n} from '../../../constantsAesthetic';\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';\nimport { BubbleUIState, InputGuide } from '@milaboratories/pf-plots';\nimport { PlBtnGroup, PlCheckbox, PlNumberField, SimpleOption } 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.bubble);\nconst optionsState = computed(() => store.value.reactive.optionsState as BubbleUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<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 <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=\"false\" @select=\"onPaletteSelect\" />\n </form-wrapper>\n <div class=\"input-item\">\n <aes-selector\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 <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","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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"}
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 \"vue\";\nimport AesSelector from '../AesSelector.vue';\nimport { AestheticMappingCategorical } from '../../../dataBindAes';\nimport {\n AesMappingOption,\n AesOption,\n DotShape,\n} from '../../../components/AesSettings/types';\nimport { 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 <aes-selector\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 <aes-selector\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 <aes-selector\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 v-if=\"optionsState.components.nodeSize.selectorStates.length > 0\"\n :min=\"3\"\n :max=\"10\"\n :breakpoints=\"true\"\n label=\"Node size range\"\n v-model=\"nodeSizeRange\"\n />\n <Slider v-else\n :min=\"3\"\n :max=\"10\"\n :step=\"1\"\n :breakpoints=\"true\"\n label=\"Node size\"\n v-model=\"nodeSize\"\n />\n </div>\n <div class=\"checkbox-item\">\n <pl-checkbox v-model=\"leavesAlign\" @update:modelValue=\"(v) => {\n settings.leavesMode = v ? 'alignLeavesToLine' : 'normal';\n }\"/>\n <span>Move leaves to the right</span>\n </div>\n <div class=\"checkbox-item\">\n <pl-checkbox 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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"}
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":";;;;;sEAeMA,IAAQ;;;AADd,UAAMC,IAAQC,EAAA,GAERC,IAAWC,EAAS,MAAMH,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC,GACpEK,IAAeD;AAAA,MACnB,MAAMH,EAAM,MAAM,SAAS;AAAA,IAAA,GAGvBK,IAAYF,EAAS,MAAMD,EAAS,MAAM,OAAO,GACjDI,IAAYH,EAAS,MAAMD,EAAS,MAAM,QAAQ,GAClDK,IAAYJ,EAAS,MAAMD,EAAS,MAAM,SAAS;AAEzD,aAASM,EACPC,GACAC,GACAC,GACA;AACA,MAAI,OAAOF,KAAU,WACnBT,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEY,CAAK,IAAIF,IAC3CC,EAAY,SAAS,sBAC9BV,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEY,CAAK,IAAI;AAAA,QAClD,MAAMD,EAAY;AAAA,QAClB,OAAOA,EAAY;AAAA,MAAA,IAGnBA,EAAY,SAAS,qBAAqB,OAAOD,KAAU,aAC7DT,EAAM,MAAM,SAAS,YAAYU,EAAY,cAAc,IAAID;AAAA,IAEnE;AAEA,aAASG,EACPH,GACAC,GACAC,GACA;AACA,MAAI,OAAOF,KAAU,WACnBT,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEY,CAAK,IAAIF,IAC3CC,EAAY,SAAS,sBAC9BV,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEY,CAAK,IAAI;AAAA,QAClD,MAAMD,EAAY;AAAA,QAClB,OAAOA,EAAY;AAAA,MAAA,IAGnBA,EAAY,SAAS,qBAAqB,OAAOD,KAAU,aAC7DT,EAAM,MAAM,SAAS,YAAYU,EAAY,cAAc,IAAID;AAAA,IAEnE;AAIA,UAAMI,IAAcC,EAAIZ,EAAS,MAAM,eAAe,mBAAmB,GAEnEa,IAAaZ,EAAS;AAAA,MAC1B,MAAM;AAAE,eAAOD,EAAS,MAAM,cAAc;AAAA,MAAM;AAAA,MAClD,IAAIc,GAAG;AACL,QAAAd,EAAS,MAAM,aAAac;AAAA,MAC9B;AAAA,IAAA,CACD,GACKC,IAAgBd,EAA2B;AAAA,MAC/C,MAAM;AAAE,eAAOe,EAAchB,EAAS,MAAM,OAAO,IAAI,CAACA,EAAS,MAAM,QAAQ,KAAKA,EAAS,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;AAAA,MAAG;AAAA,MAC3H,IAAI,CAACiB,GAAKC,CAAG,GAAqB;AAChC,QAAAlB,EAAS,MAAM,UAAU,EAAE,KAAAiB,GAAK,KAAAC,EAAA;AAAA,MAClC;AAAA,IAAA,CACD,GACKC,IAAWlB,EAAiB;AAAA,MAChC,MAAM;AAAE,eAAOe,EAAchB,EAAS,MAAM,OAAO,IAAI,IAAIA,EAAS,MAAM;AAAA,MAAS;AAAA,MACnF,IAAIc,GAAW;AACb,QAAAd,EAAS,MAAM,UAAUc;AAAA,MAC3B;AAAA,IAAA,CACD;;MAKCM,EAWEC,GAAA;AAAA,QAVA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUlB,EAAA;AAAA,QACV,8BAA4B,CAAA,WAAA;AAAA,QAC5B,iBAAsBD,EAAA,MAAa,WAAW,UAAU,eAAe,SAAM;AAAA,QAG7E,aAAUoB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGR,GAAsCS,MAAgBjB,EAASQ,GAAGS,GAAC,SAAA;AAAA,MAAA;MAEnFH,EAWEC,GAAA;AAAA,QAVA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUjB,EAAA;AAAA,QACV,8BAA4B,CAAA,WAAA;AAAA,QAC5B,iBAAsBF,EAAA,MAAa,WAAW,UAAU,eAAe,SAAM;AAAA,QAG7E,aAAUoB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGR,GAAwCS,MAAuBb,EAAYI,GAAGS,GAAC,UAAA;AAAA,MAAA;MAE/FH,EAWEC,GAAA;AAAA,QAVA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUhB,EAAA;AAAA,QACV,8BAA4B,CAAA,WAAA;AAAA,QAC5B,iBAAsBH,EAAA,MAAa,WAAW,UAAU,eAAe,SAAM;AAAA,QAG7E,aAAUoB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGR,GAAsCS,MAAgBjB,EAASQ,GAAGS,GAAC,WAAA;AAAA,MAAA;MAQnFC,EAkBM,OAAA,MAAA;AAAA,QAhBItB,EAAA,MAAa,WAAW,SAAS,eAAe,SAAM,UAD9DuB,EAOEC,EAAAC,CAAA,GAAA;AAAA;sBALSZ,EAAA;AAAA,wDAAAA,EAAa,QAAAa;AAAA,UACrB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,aAAa;AAAA,UACd,OAAM;AAAA,QAAA,qCAERH,EAQEC,EAAAG,CAAA,GAAA;AAAA;sBANSV,EAAA;AAAA,wDAAAA,EAAQ,QAAAS;AAAA,UAChB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,MAAM;AAAA,UACN,aAAa;AAAA,UACd,OAAM;AAAA,QAAA;;MAGVJ,EAOM,OAPNM,GAOM;AAAA,QANJV,EAIEM,EAAAK,CAAA,GAAA;AAAA,sBAHSpB,EAAA;AAAA;mCAAAA,EAAW,QAAAiB;AAAA,6BAAuBd,MAAC;AAAe,cAAAd,EAAA,MAAS,aAAac,IAAC,sBAAA;AAAA;;;QAIpFQ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAE,EAAqC,cAA/B,4BAAwB,EAAA;AAAA,MAAA;MAEhCA,EAGM,OAHNQ,GAGM;AAAA,QAFJZ,EAAkCM,EAAAK,CAAA,GAAA;AAAA,sBAAblB,EAAA;AAAA,wDAAAA,EAAU,QAAAe;AAAA,QAAA;QAC/BN,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAE,EAAwB,cAAlB,eAAW,EAAA;AAAA,MAAA;;;;"}
@@ -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
  }