@milaboratories/graph-maker 1.1.177 → 1.1.179

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) 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.d.ts +3 -2
  61. package/dist/components/SettingsTabs/index.vue.js +16 -15
  62. package/dist/components/SettingsTabs/index.vue.js.map +1 -1
  63. package/dist/components/Zoom/ZoomInput.vue.js +11 -11
  64. package/dist/components/Zoom/ZoomInput.vue.js.map +1 -1
  65. package/dist/components/Zoom/index.vue.js.map +1 -1
  66. package/dist/composition/useComponent.js.map +1 -1
  67. package/dist/constantsAesthetic.js.map +1 -1
  68. package/dist/constantsCommon.d.ts +3 -1
  69. package/dist/constantsCommon.js +5 -5
  70. package/dist/constantsCommon.js.map +1 -1
  71. package/dist/dataBindAes.js +4 -2
  72. package/dist/dataBindAes.js.map +1 -1
  73. package/dist/forms/AnnotationsForm.vue.d.ts +17 -0
  74. package/dist/forms/AnnotationsForm.vue.js +16 -0
  75. package/dist/forms/AnnotationsForm.vue.js.map +1 -0
  76. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +35 -35
  77. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
  78. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +49 -47
  79. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  80. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +53 -53
  81. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
  82. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +37 -37
  83. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
  84. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +38 -38
  85. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
  86. package/dist/forms/AxesSettingsForm/index.vue.js.map +1 -1
  87. package/dist/forms/DataMappingForm/BubbleForm.vue.js +4 -4
  88. package/dist/forms/DataMappingForm/BubbleForm.vue.js.map +1 -1
  89. package/dist/forms/DataMappingForm/DendroForm.vue.js +1 -1
  90. package/dist/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
  91. package/dist/forms/DataMappingForm/DiscreteForm.vue.js.map +1 -1
  92. package/dist/forms/DataMappingForm/HeatmapForm.vue.js +2 -2
  93. package/dist/forms/DataMappingForm/HeatmapForm.vue.js.map +1 -1
  94. package/dist/forms/DataMappingForm/HistogramForm.vue.js.map +1 -1
  95. package/dist/forms/DataMappingForm/Layout/FormLayout.vue.js.map +1 -1
  96. package/dist/forms/DataMappingForm/Layout/MandatoryOptions.vue.js.map +1 -1
  97. package/dist/forms/DataMappingForm/Layout/OptionsList.vue.js.map +1 -1
  98. package/dist/forms/DataMappingForm/ScatterplotForm.vue.js +4 -4
  99. package/dist/forms/DataMappingForm/ScatterplotForm.vue.js.map +1 -1
  100. package/dist/forms/DataMappingForm/ScatterplotUmapForm.vue.js +4 -4
  101. package/dist/forms/DataMappingForm/ScatterplotUmapForm.vue.js.map +1 -1
  102. package/dist/forms/DataMappingForm/index.vue.js.map +1 -1
  103. package/dist/forms/DataMappingForm/useBaskets.js.map +1 -1
  104. package/dist/forms/DataMappingForm/utils.d.ts +1 -1
  105. package/dist/forms/DataMappingForm/utils.js +34 -34
  106. package/dist/forms/DataMappingForm/utils.js.map +1 -1
  107. package/dist/forms/LayersForm/AesSelector.vue.js +18 -25
  108. package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
  109. package/dist/forms/LayersForm/DotSizeSelector.vue.d.ts +2 -0
  110. package/dist/forms/LayersForm/DotSizeSelector.vue.js +23 -23
  111. package/dist/forms/LayersForm/DotSizeSelector.vue.js.map +1 -1
  112. package/dist/forms/LayersForm/Layer/Bubble.vue.js +32 -34
  113. package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
  114. package/dist/forms/LayersForm/Layer/Dendro.vue.js +6 -6
  115. package/dist/forms/LayersForm/Layer/Dendro.vue.js.map +1 -1
  116. package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js +6 -6
  117. package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js.map +1 -1
  118. package/dist/forms/LayersForm/Layer/discrete/BinnedDots.vue.js +3 -3
  119. package/dist/forms/LayersForm/Layer/discrete/BinnedDots.vue.js.map +1 -1
  120. package/dist/forms/LayersForm/Layer/discrete/Boxplot.vue.js +3 -3
  121. package/dist/forms/LayersForm/Layer/discrete/Boxplot.vue.js.map +1 -1
  122. package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js +9 -9
  123. package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js.map +1 -1
  124. package/dist/forms/LayersForm/Layer/discrete/JitteredDots.vue.js +3 -3
  125. package/dist/forms/LayersForm/Layer/discrete/JitteredDots.vue.js.map +1 -1
  126. package/dist/forms/LayersForm/Layer/discrete/Line.vue.js +8 -8
  127. package/dist/forms/LayersForm/Layer/discrete/Line.vue.js.map +1 -1
  128. package/dist/forms/LayersForm/Layer/discrete/Logo.vue.js +3 -3
  129. package/dist/forms/LayersForm/Layer/discrete/Logo.vue.js.map +1 -1
  130. package/dist/forms/LayersForm/Layer/discrete/Sina.vue.js +3 -3
  131. package/dist/forms/LayersForm/Layer/discrete/Sina.vue.js.map +1 -1
  132. package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js +9 -9
  133. package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -1
  134. package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js +6 -6
  135. package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js.map +1 -1
  136. package/dist/forms/LayersForm/Layer/discrete/Violin.vue.js +3 -3
  137. package/dist/forms/LayersForm/Layer/discrete/Violin.vue.js.map +1 -1
  138. package/dist/forms/LayersForm/Layer/discrete/utils.js.map +1 -1
  139. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +23 -23
  140. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
  141. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js +6 -6
  142. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js.map +1 -1
  143. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +28 -28
  144. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
  145. package/dist/forms/LayersForm/Layer/histogram/Bins.vue.js +3 -3
  146. package/dist/forms/LayersForm/Layer/histogram/Bins.vue.js.map +1 -1
  147. package/dist/forms/LayersForm/Layer/scatterplot/Curve.vue.js.map +1 -1
  148. package/dist/forms/LayersForm/Layer/scatterplot/Scatter.vue.js.map +1 -1
  149. package/dist/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js +2 -2
  150. package/dist/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js.map +1 -1
  151. package/dist/forms/LayersForm/index.vue.js +56 -52
  152. package/dist/forms/LayersForm/index.vue.js.map +1 -1
  153. package/dist/forms/LogForm.vue.js.map +1 -1
  154. package/dist/forms/SettingsForm.vue.js.map +1 -1
  155. package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js +14 -14
  156. package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js.map +1 -1
  157. package/dist/forms/StatisticsForm/ScatterplotStatisticsForm.vue.js.map +1 -1
  158. package/dist/forms/StatisticsForm/index.vue.js.map +1 -1
  159. package/dist/forms/TemplateForm.vue.js +59 -52
  160. package/dist/forms/TemplateForm.vue.js.map +1 -1
  161. package/dist/forms/index.d.ts +21 -0
  162. package/dist/forms/index.js +53 -46
  163. package/dist/forms/index.js.map +1 -1
  164. package/dist/icons/Annotation.vue.d.ts +2 -0
  165. package/dist/icons/Annotation.vue.js +12 -0
  166. package/dist/icons/Annotation.vue.js.map +1 -0
  167. package/dist/icons/Annotation.vue2.js +5 -0
  168. package/dist/icons/Annotation.vue2.js.map +1 -0
  169. package/dist/icons/BinnedDotsIcon.vue.js.map +1 -1
  170. package/dist/icons/BoxplotAndBinnedIcon.vue.js.map +1 -1
  171. package/dist/icons/BoxplotAndJitterIcon.vue.js.map +1 -1
  172. package/dist/icons/BoxplotIcon.vue.js.map +1 -1
  173. package/dist/icons/EditIcon.vue.js.map +1 -1
  174. package/dist/icons/FrameLeft.vue.js.map +1 -1
  175. package/dist/icons/HeatmapAnnotation.vue.js.map +1 -1
  176. package/dist/icons/LineAndErrorbarIcon.vue.js.map +1 -1
  177. package/dist/icons/LogoIcon.vue.js.map +1 -1
  178. package/dist/icons/PlusIcon.vue.js.map +1 -1
  179. package/dist/icons/SinaIcon.vue.js.map +1 -1
  180. package/dist/icons/StackedAreaIcon.vue.js.map +1 -1
  181. package/dist/index.vue.d.ts +1 -0
  182. package/dist/index.vue.js +148 -146
  183. package/dist/index.vue.js.map +1 -1
  184. package/dist/store.d.ts +1 -1
  185. package/dist/store.js +2 -2
  186. package/dist/store.js.map +1 -1
  187. package/dist/types.d.ts +1 -1
  188. package/dist/utils/addFixedOptionsToState.js.map +1 -1
  189. package/dist/utils/calculateDiscreteGroups.js.map +1 -1
  190. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  191. package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  192. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
  193. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +1 -1
  194. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
  195. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  196. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
  197. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  198. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +1 -1
  199. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  200. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +24 -24
  201. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  202. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
  203. package/dist/utils/getPopupHeightForFixedAesList.js.map +1 -1
  204. package/dist/utils/getStatisticsOptions.js.map +1 -1
  205. package/dist/utils/getUsedAesInMapping.js +1 -1
  206. package/dist/utils/getUsedAesInMapping.js.map +1 -1
  207. package/dist/utils/loadDefaultSources.js.map +1 -1
  208. package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
  209. package/dist/utils/saveToFile.js.map +1 -1
  210. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"HeatmapAnnotations.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { computed, reactive, ref } from 'vue';\nimport {\n DEFAULT_CATEGORICAL_PALETTE,\n DEFAULT_CONTINUOUS_PALETTE,\n PALETTE_MAP\n} from '../../../../constantsAesthetic';\nimport { ContinuousPalette, Palette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\nimport { AxisData, ColumnData, HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(\n () => store.value.inputGuide.value as InputGuide<HeatmapUIState>\n);\n\nconst annotationSources = computed(() => {\n const x = optionsState.value.components.annotationsX.selectorStates.map((s) => s.selectedSource);\n const y = optionsState.value.components.annotationsY.selectorStates.map((s) => s.selectedSource);\n return [...x, ...y];\n});\n\nconst annotationsInfo = computed(() => annotationSources.value.reduce((res: Record<string, AxisData | ColumnData>, source) => {\n res[source] = inputGuide.value.getSourceInfo(source);\n return res;\n}, {}));\n\nconst palettes = reactive(annotationSources.value.reduce((res: Record<string, Palette>, source) => {\n const valueType = annotationsInfo.value[source]?.type;\n const defaultPalette = valueType === 'String' ? DEFAULT_CATEGORICAL_PALETTE : DEFAULT_CONTINUOUS_PALETTE;\n res[source] = store.value.reactive.dataBindAes[source]?.palette ?? defaultPalette;\n return res;\n}, {}));\n\nconst palettesOpen = ref<string | null>(null);\nconst currentSource = ref<string | null>(null); // use the same palette form for all the annotations; current is last clicked\nfunction onPaletteSelect(value: Palette) {\n const source = currentSource.value;\n if (source) {\n palettes[source] = value;\n // TODO: categorical mapping, detailed continuous mapping (with range), log continuous mapping\n store.value.reactive.dataBindAes[source] = createContinuousMappingFromPalette(value as ContinuousPalette);\n }\n palettesOpen.value = source;\n}\n</script>\n\n<template>\n <template v-for=\"source of annotationSources\">\n <div class=\"section-title\"><span>{{ annotationsInfo[source].label }}</span></div>\n <multiselect-button\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palettes[source]].title\"\n :palette=\"palettes[source]\"\n :style=\"{marginBottom:'24px'}\"\n @button-click=\"palettesOpen = source; currentSource = source;\"\n />\n <form-wrapper\n v-if=\"palettesOpen === source\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = null\"\n >\n <palettes-form :selected=\"palettes[source]\" :categorical=\"annotationsInfo[source].type === 'String'\"\n @select=\"onPaletteSelect\" />\n </form-wrapper>\n </template>\n</template>\n"],"names":["store","useStore","optionsState","computed","inputGuide","annotationSources","x","s","y","annotationsInfo","res","source","palettes","reactive","defaultPalette","_a","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","_b","palettesOpen","ref","currentSource","onPaletteSelect","value","createContinuousMappingFromPalette","_createElementBlock","_Fragment","_renderList","_createElementVNode","_hoisted_1","_toDisplayString","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm"],"mappings":";;;;;;;;;;AAeA,UAAMA,IAAQC,EAAA,GACRC,IAAeC,EAAS,MAAMH,EAAM,MAAM,SAAS,YAA8B,GACjFI,IAAaD;AAAA,MACjB,MAAMH,EAAM,MAAM,WAAW;AAAA,IAAA,GAGzBK,IAAoBF,EAAS,MAAM;AACvC,YAAMG,IAAIJ,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc,GACzFC,IAAIN,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc;AAC/F,aAAO,CAAC,GAAGD,GAAG,GAAGE,CAAC;AAAA,IACpB,CAAC,GAEKC,IAAkBN,EAAS,MAAME,EAAkB,MAAM,OAAO,CAACK,GAA4CC,OACjHD,EAAIC,CAAM,IAAIP,EAAW,MAAM,cAAcO,CAAM,GAC5CD,IACN,CAAA,CAAE,CAAC,GAEAE,IAAWC,EAASR,EAAkB,MAAM,OAAO,CAACK,GAA8BC,MAAW;;AAEjG,YAAMG,MADYC,IAAAN,EAAgB,MAAME,CAAM,MAA5B,gBAAAI,EAA+B,UACZ,WAAWC,IAA8BC;AAC9E,aAAAP,EAAIC,CAAM,MAAIO,IAAAlB,EAAM,MAAM,SAAS,YAAYW,CAAM,MAAvC,gBAAAO,EAA0C,YAAWJ,GAC5DJ;AAAA,IACT,GAAG,CAAA,CAAE,CAAC,GAEAS,IAAeC,EAAmB,IAAI,GACtCC,IAAgBD,EAAmB,IAAI;AAC7C,aAASE,EAAgBC,GAAgB;AACvC,YAAMZ,IAASU,EAAc;AAC7B,MAAIV,MACFC,EAASD,CAAM,IAAIY,GAEnBvB,EAAM,MAAM,SAAS,YAAYW,CAAM,IAAIa,EAAmCD,CAA0B,IAE1GJ,EAAa,QAAQR;AAAA,IACvB;6BAIEc,EAkBWC,GAAA,MAAAC,EAlBgBtB,EAAA,OAAiB,CAA3BM;MACfiB,EAAiF,OAAjFC,GAAiF;AAAA,QAAtDD,EAAgD,QAAA,MAAAE,EAAvCrB,EAAA,MAAgBE,CAAM,EAAE,KAAK,GAAA,CAAA;AAAA,MAAA;MACjEoB,EAMEC,GAAA;AAAA,QALA,OAAM;AAAA,QACL,OAAOC,EAAAC,CAAA,EAAYtB,EAASD,CAAM,GAAG;AAAA,QACrC,SAASC,EAASD,CAAM;AAAA,QACxB,OAAO,EAAA,cAAA,OAAA;AAAA,QACP;AAAc,UAAAQ,EAAA,QAAeR,GAAQU,EAAA,QAAgBV;AAAA,QAAM;AAAA,MAAA;MAGtDQ,EAAA,UAAiBR,UADzBwB,EAQeC,GAAA;AAAA;QANb,OAAM;AAAA,QACN,cAAW;AAAA,QACV,uCAAYjB,EAAA,QAAY;AAAA,MAAA;mBAEzB,MAC2C;AAAA,UAD3CY,EAC2CM,GAAA;AAAA,YAD3B,UAAUzB,EAASD,CAAM;AAAA,YAAI,aAAaF,EAAA,MAAgBE,CAAM,EAAE,SAAI;AAAA,YACtE,UAAQW;AAAA,UAAA;;;;;;;"}
1
+ {"version":3,"file":"HeatmapAnnotations.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { computed, reactive, ref } from 'vue';\nimport {\n DEFAULT_CATEGORICAL_PALETTE,\n DEFAULT_CONTINUOUS_PALETTE,\n PALETTE_MAP,\n} from '../../../../constantsAesthetic';\nimport type { ContinuousPalette, Palette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\nimport type { AxisData, ColumnData, HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(\n () => store.value.inputGuide.value as InputGuide<HeatmapUIState>,\n);\n\nconst annotationSources = computed(() => {\n const x = optionsState.value.components.annotationsX.selectorStates.map((s) => s.selectedSource);\n const y = optionsState.value.components.annotationsY.selectorStates.map((s) => s.selectedSource);\n return [...x, ...y];\n});\n\nconst annotationsInfo = computed(() => annotationSources.value.reduce((res: Record<string, AxisData | ColumnData>, source) => {\n res[source] = inputGuide.value.getSourceInfo(source);\n return res;\n}, {}));\n\nconst palettes = reactive(annotationSources.value.reduce((res: Record<string, Palette>, source) => {\n const valueType = annotationsInfo.value[source]?.type;\n const defaultPalette = valueType === 'String' ? DEFAULT_CATEGORICAL_PALETTE : DEFAULT_CONTINUOUS_PALETTE;\n res[source] = store.value.reactive.dataBindAes[source]?.palette ?? defaultPalette;\n return res;\n}, {}));\n\nconst palettesOpen = ref<string | null>(null);\nconst currentSource = ref<string | null>(null); // use the same palette form for all the annotations; current is last clicked\nfunction onPaletteSelect(value: Palette) {\n const source = currentSource.value;\n if (source) {\n palettes[source] = value;\n // TODO: categorical mapping, detailed continuous mapping (with range), log continuous mapping\n store.value.reactive.dataBindAes[source] = createContinuousMappingFromPalette(value as ContinuousPalette);\n }\n palettesOpen.value = source;\n}\n</script>\n\n<template>\n <template v-for=\"source of annotationSources\" :key=\"source\">\n <div class=\"section-title\"><span>{{ annotationsInfo[source].label }}</span></div>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palettes[source]].title\"\n :palette=\"palettes[source]\"\n :style=\"{marginBottom:'24px'}\"\n @button-click=\"palettesOpen = source; currentSource = source;\"\n />\n <FormWrapper\n v-if=\"palettesOpen === source\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = null\"\n >\n <PalettesForm\n :selected=\"palettes[source]\" :categorical=\"annotationsInfo[source].type === 'String'\"\n @select=\"onPaletteSelect\"\n />\n </FormWrapper>\n </template>\n</template>\n"],"names":["store","useStore","optionsState","computed","inputGuide","annotationSources","x","s","y","annotationsInfo","res","source","palettes","reactive","defaultPalette","_a","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","_b","palettesOpen","ref","currentSource","onPaletteSelect","value","createContinuousMappingFromPalette","_createElementBlock","_Fragment","_renderList","_createElementVNode","_hoisted_1","_toDisplayString","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm"],"mappings":";;;;;;;;;;AAeA,UAAMA,IAAQC,EAAA,GACRC,IAAeC,EAAS,MAAMH,EAAM,MAAM,SAAS,YAA8B,GACjFI,IAAaD;AAAA,MACjB,MAAMH,EAAM,MAAM,WAAW;AAAA,IAAA,GAGzBK,IAAoBF,EAAS,MAAM;AACvC,YAAMG,IAAIJ,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc,GACzFC,IAAIN,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc;AAC/F,aAAO,CAAC,GAAGD,GAAG,GAAGE,CAAC;AAAA,IACpB,CAAC,GAEKC,IAAkBN,EAAS,MAAME,EAAkB,MAAM,OAAO,CAACK,GAA4CC,OACjHD,EAAIC,CAAM,IAAIP,EAAW,MAAM,cAAcO,CAAM,GAC5CD,IACN,CAAA,CAAE,CAAC,GAEAE,IAAWC,EAASR,EAAkB,MAAM,OAAO,CAACK,GAA8BC,MAAW;;AAEjG,YAAMG,MADYC,IAAAN,EAAgB,MAAME,CAAM,MAA5B,gBAAAI,EAA+B,UACZ,WAAWC,IAA8BC;AAC9E,aAAAP,EAAIC,CAAM,MAAIO,IAAAlB,EAAM,MAAM,SAAS,YAAYW,CAAM,MAAvC,gBAAAO,EAA0C,YAAWJ,GAC5DJ;AAAA,IACT,GAAG,CAAA,CAAE,CAAC,GAEAS,IAAeC,EAAmB,IAAI,GACtCC,IAAgBD,EAAmB,IAAI;AAC7C,aAASE,EAAgBC,GAAgB;AACvC,YAAMZ,IAASU,EAAc;AAC7B,MAAIV,MACFC,EAASD,CAAM,IAAIY,GAEnBvB,EAAM,MAAM,SAAS,YAAYW,CAAM,IAAIa,EAAmCD,CAA0B,IAE1GJ,EAAa,QAAQR;AAAA,IACvB;6BAIEc,EAoBWC,GAAA,MAAAC,EApBgBtB,EAAA,OAAiB,CAA3BM,wBAAmCA,KAAM;AAAA,MACxDiB,EAAiF,OAAjFC,GAAiF;AAAA,QAAtDD,EAAgD,QAAA,MAAAE,EAAvCrB,EAAA,MAAgBE,CAAM,EAAE,KAAK,GAAA,CAAA;AAAA,MAAA;MACjEoB,EAMEC,GAAA;AAAA,QALA,OAAM;AAAA,QACL,OAAOC,EAAAC,CAAA,EAAYtB,EAASD,CAAM,GAAG;AAAA,QACrC,SAASC,EAASD,CAAM;AAAA,QACxB,OAAO,EAAA,cAAA,OAAA;AAAA,QACP;AAAc,UAAAQ,EAAA,QAAeR,GAAQU,EAAA,QAAgBV;AAAA,QAAM;AAAA,MAAA;MAGtDQ,EAAA,UAAiBR,UADzBwB,EAUcC,GAAA;AAAA;QARZ,OAAM;AAAA,QACN,cAAW;AAAA,QACV,uCAAYjB,EAAA,QAAY;AAAA,MAAA;mBAEzB,MAGE;AAAA,UAHFY,EAGEM,GAAA;AAAA,YAFC,UAAUzB,EAASD,CAAM;AAAA,YAAI,aAAaF,EAAA,MAAgBE,CAAM,EAAE,SAAI;AAAA,YACtE,UAAQW;AAAA,UAAA;;;;;;;"}
@@ -15,10 +15,10 @@ const G = { class: "checkbox-item" }, F = {
15
15
  }, H = { class: "button-group-item" }, Z = { class: "button-group-item" }, _ = { class: "checkbox-item" }, j = { class: "checkbox-item" }, q = { class: "button-group-item" }, J = {
16
16
  class: "button-group-item",
17
17
  style: { display: "flex", alignItems: "end" }
18
- }, ue = /* @__PURE__ */ O({
18
+ }, K = "heatmapClustered", ne = /* @__PURE__ */ O({
19
19
  __name: "HeatmapClustered",
20
- setup(K) {
21
- const d = I(), a = r(() => d.value.reactive.layersSettings.heatmapClustered), c = r(() => d.value.reactive.optionsState), x = r(() => d.value.inputGuide.value), s = r(() => {
20
+ setup(Q) {
21
+ const d = I(), a = r(() => d.value.reactive.layersSettings[K]), c = r(() => d.value.reactive.optionsState), x = r(() => d.value.inputGuide.value), s = r(() => {
22
22
  var n;
23
23
  return (n = c.value.components.value.selectorStates[0]) == null ? void 0 : n.selectedSource;
24
24
  }), C = r(() => {
@@ -32,13 +32,13 @@ const G = { class: "checkbox-item" }, F = {
32
32
  { label: "None", value: null },
33
33
  { label: "Columns", value: "column" },
34
34
  { label: "Rows", value: "row" }
35
- ], M = [
35
+ ], y = [
36
36
  { label: "z-score", value: "standardScaling" },
37
37
  { label: "Min-max", value: "meanNormalization" }
38
- ], U = [
38
+ ], M = [
39
39
  { label: "empty", value: null },
40
40
  { label: "Special value", value: "custom" }
41
- ], y = [
41
+ ], U = [
42
42
  { label: "Mean", value: "mean" },
43
43
  { label: "Min", value: "min" },
44
44
  { label: "Max", value: "max" },
@@ -98,20 +98,20 @@ const G = { class: "checkbox-item" }, F = {
98
98
  ])),
99
99
  t("div", H, [
100
100
  o(u(V), {
101
+ modelValue: a.value.normalizationDirection,
102
+ "onUpdate:modelValue": e[6] || (e[6] = (l) => a.value.normalizationDirection = l),
101
103
  label: "Normalize by",
102
104
  options: k,
103
- compact: !0,
104
- modelValue: a.value.normalizationDirection,
105
- "onUpdate:modelValue": e[6] || (e[6] = (l) => a.value.normalizationDirection = l)
105
+ compact: !0
106
106
  }, null, 8, ["modelValue"])
107
107
  ]),
108
108
  t("div", Z, [
109
109
  o(u(V), {
110
- label: "Normalization method",
111
- options: M,
112
- compact: !0,
113
110
  modelValue: a.value.normalizationMethod,
114
- "onUpdate:modelValue": e[7] || (e[7] = (l) => a.value.normalizationMethod = l)
111
+ "onUpdate:modelValue": e[7] || (e[7] = (l) => a.value.normalizationMethod = l),
112
+ label: "Normalization method",
113
+ options: y,
114
+ compact: !0
115
115
  }, null, 8, ["modelValue"])
116
116
  ]),
117
117
  t("div", _, [
@@ -130,44 +130,44 @@ const G = { class: "checkbox-item" }, F = {
130
130
  ]),
131
131
  t("div", q, [
132
132
  o(u(V), {
133
- label: "Aggregation method",
134
- options: y,
135
- compact: !0,
136
133
  modelValue: a.value.aggregationMethod,
137
- "onUpdate:modelValue": e[10] || (e[10] = (l) => a.value.aggregationMethod = l)
134
+ "onUpdate:modelValue": e[10] || (e[10] = (l) => a.value.aggregationMethod = l),
135
+ label: "Aggregation method",
136
+ options: U,
137
+ compact: !0
138
138
  }, null, 8, ["modelValue"])
139
139
  ]),
140
140
  t("div", J, [
141
141
  o(u(V), {
142
- label: "Treat NA value as:",
143
- options: U,
144
- compact: !0,
145
142
  modelValue: b.value,
146
143
  "onUpdate:modelValue": [
147
144
  e[11] || (e[11] = (l) => b.value = l),
148
145
  e[12] || (e[12] = (l) => {
149
146
  l === "custom" ? a.value.NAValueAs = f.value : a.value.NAValueAs = l;
150
147
  })
151
- ]
148
+ ],
149
+ label: "Treat NA value as:",
150
+ options: M,
151
+ compact: !0
152
152
  }, null, 8, ["modelValue"]),
153
153
  o(u(P), {
154
- style: { height: "33px", marginLeft: "16px", width: "75px" },
155
- disabled: b.value !== "custom",
156
- label: "NA value",
157
- useIncrementButtons: !1,
158
154
  modelValue: f.value,
159
155
  "onUpdate:modelValue": [
160
156
  e[13] || (e[13] = (l) => f.value = l),
161
157
  e[14] || (e[14] = (l) => {
162
158
  l !== void 0 && (a.value.NAValueAs = l);
163
159
  })
164
- ]
165
- }, null, 8, ["disabled", "modelValue"])
160
+ ],
161
+ style: { height: "33px", marginLeft: "16px", width: "75px" },
162
+ disabled: b.value !== "custom",
163
+ label: "NA value",
164
+ useIncrementButtons: !1
165
+ }, null, 8, ["modelValue", "disabled"])
166
166
  ])
167
167
  ], 64));
168
168
  }
169
169
  });
170
170
  export {
171
- ue as default
171
+ ne as default
172
172
  };
173
173
  //# sourceMappingURL=HeatmapClustered.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeatmapClustered.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport {useStore} from '../../../../store';\nimport {HeatmapLayer} from '../../../../types';\nimport { PlBtnGroup, PlCheckbox, PlNumberField, SimpleOption } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { DEFAULT_CONTINUOUS_PALETTE, PALETTE_MAP } from '../../../../constantsAesthetic';\nimport { HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\nimport { ContinuousPalette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\n\nconst store = useStore();\nconst layer:HeatmapLayer = 'heatmapClustered';\nconst settings = computed(() => store.value.reactive.layersSettings.heatmapClustered)\n\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<HeatmapUIState>);\n\nconst dataSource = computed(() => optionsState.value.components.value.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => dataSource.value ? store.value.reactive.dataBindAes[dataSource.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? DEFAULT_CONTINUOUS_PALETTE);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (dataSource.value) {\n store.value.reactive.dataBindAes[dataSource.value] = createContinuousMappingFromPalette(value);\n }\n}\nconst NORMALIZATION_DIRECTION:SimpleOption[] = [\n {label: 'None', value: null},\n {label: 'Columns', value: 'column'},\n {label: 'Rows', value: 'row'},\n];\nconst NORMALIZATION_METHOD:SimpleOption[] = [\n {label: 'z-score', value: 'standardScaling'},\n {label: 'Min-max', value: 'meanNormalization'},\n];\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' }\n];\nconst AGGREGATION_METHOD: SimpleOption[] = [\n {label: 'Mean', value: 'mean'},\n {label: 'Min', value: 'min'},\n {label: 'Max', value: 'max'},\n {label: 'Median', value: 'median'},\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs !== null ? 'custom' : settings.value.NAValueAs);\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n</script>\n\n<template>\n <multiselect-button\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n <form-wrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <palettes-form :selected=\"palette\" :categorical=\"dataSource ? inputGuide.getSourceInfo(dataSource).type === 'String' : false\" @select=\"onPaletteSelect\" />\n </form-wrapper>\n <div class=\"checkbox-item\">\n <pl-checkbox v-model=\"settings.disableClusteringX\"/>\n <span>Disable clustering for X axis</span>\n </div>\n <div class=\"checkbox-item\" v-if=\"!settings.disableClusteringX\">\n <pl-checkbox v-model=\"settings.dendrogramX\" />\n <span>Show dendrogram for X axis</span>\n </div>\n <div class=\"checkbox-item\">\n <pl-checkbox v-model=\"settings.disableClusteringY\"/>\n <span>Disable clustering for Y axis</span>\n </div>\n <div class=\"checkbox-item\" v-if=\"!settings.disableClusteringY\">\n <pl-checkbox v-model=\"settings.dendrogramY\"/>\n <span>Show dendrogram for Y axis</span>\n </div>\n <div class=\"button-group-item\">\n <pl-btn-group\n label=\"Normalize by\"\n :options=\"NORMALIZATION_DIRECTION\"\n :compact=\"true\"\n v-model=\"settings.normalizationDirection\"\n />\n </div>\n <div class=\"button-group-item\">\n <pl-btn-group\n label=\"Normalization method\"\n :options=\"NORMALIZATION_METHOD\"\n :compact=\"true\"\n v-model=\"settings.normalizationMethod\"\n />\n </div>\n <div class=\"checkbox-item\">\n <pl-checkbox v-model=\"settings.aggregateByX\"/>\n <span>Aggregate X groups</span>\n </div>\n <div class=\"checkbox-item\">\n <pl-checkbox v-model=\"settings.aggregateByY\"/>\n <span>Aggregate Y groups</span>\n </div>\n <div class=\"button-group-item\">\n <pl-btn-group\n label=\"Aggregation method\"\n :options=\"AGGREGATION_METHOD\"\n :compact=\"true\"\n v-model=\"settings.aggregationMethod\"\n />\n </div>\n <div class=\"button-group-item\" :style=\"{display: 'flex', alignItems: 'end'}\">\n <pl-btn-group\n label=\"Treat NA value as:\"\n :options=\"NA_VALUE_OPTIONS\"\n :compact=\"true\"\n v-model=\"NAValueOption\"\n @update:modelValue=\"(value:unknown) => {\n if (value === 'custom') {\n settings.NAValueAs = customNA;\n } else {\n settings.NAValueAs = value as number|null;\n }\n }\"\n />\n <pl-number-field\n :style=\"{height: '33px', marginLeft: '16px', width: '75px'}\"\n :disabled=\"NAValueOption !== 'custom'\"\n label=\"NA value\"\n :useIncrementButtons=\"false\"\n v-model=\"customNA\"\n @update:modelValue=\"(value:unknown) => {\n if (value !== undefined) {\n settings.NAValueAs = value as number;\n }\n }\"\n />\n </div>\n</template>\n"],"names":["store","useStore","settings","computed","optionsState","inputGuide","dataSource","_a","savedDataValuePalette","palettesOpen","ref","palette","DEFAULT_CONTINUOUS_PALETTE","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","NA_VALUE_OPTIONS","AGGREGATION_METHOD","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","PlCheckbox","_cache","$event","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","PlBtnGroup","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","PlNumberField"],"mappings":"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"}
1
+ {"version":3,"file":"HeatmapClustered.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport type { HeatmapLayer } from '../../../../types';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlNumberField } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { DEFAULT_CONTINUOUS_PALETTE, PALETTE_MAP } from '../../../../constantsAesthetic';\nimport type { HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\nimport type { ContinuousPalette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\n\nconst store = useStore();\nconst layer: HeatmapLayer = 'heatmapClustered';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<HeatmapUIState>);\n\nconst dataSource = computed(() => optionsState.value.components.value.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => dataSource.value ? store.value.reactive.dataBindAes[dataSource.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? DEFAULT_CONTINUOUS_PALETTE);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (dataSource.value) {\n store.value.reactive.dataBindAes[dataSource.value] = createContinuousMappingFromPalette(value);\n }\n}\nconst NORMALIZATION_DIRECTION: SimpleOption[] = [\n { label: 'None', value: null },\n { label: 'Columns', value: 'column' },\n { label: 'Rows', value: 'row' },\n];\nconst NORMALIZATION_METHOD: SimpleOption[] = [\n { label: 'z-score', value: 'standardScaling' },\n { label: 'Min-max', value: 'meanNormalization' },\n];\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\nconst AGGREGATION_METHOD: SimpleOption[] = [\n { label: 'Mean', value: 'mean' },\n { label: 'Min', value: 'min' },\n { label: 'Max', value: 'max' },\n { label: 'Median', value: 'median' },\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs !== null ? 'custom' : settings.value.NAValueAs);\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n</script>\n\n<template>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n <FormWrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <PalettesForm :selected=\"palette\" :categorical=\"dataSource ? inputGuide.getSourceInfo(dataSource).type === 'String' : false\" @select=\"onPaletteSelect\" />\n </FormWrapper>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.disableClusteringX\"/>\n <span>Disable clustering for X axis</span>\n </div>\n <div v-if=\"!settings.disableClusteringX\" class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.dendrogramX\" />\n <span>Show dendrogram for X axis</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.disableClusteringY\"/>\n <span>Disable clustering for Y axis</span>\n </div>\n <div v-if=\"!settings.disableClusteringY\" class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.dendrogramY\"/>\n <span>Show dendrogram for Y axis</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationDirection\"\n label=\"Normalize by\"\n :options=\"NORMALIZATION_DIRECTION\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationMethod\"\n label=\"Normalization method\"\n :options=\"NORMALIZATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByX\"/>\n <span>Aggregate X groups</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByY\"/>\n <span>Aggregate Y groups</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.aggregationMethod\"\n label=\"Aggregation method\"\n :options=\"AGGREGATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\" :style=\"{display: 'flex', alignItems: 'end'}\">\n <PlBtnGroup\n v-model=\"NAValueOption\"\n label=\"Treat NA value as:\"\n :options=\"NA_VALUE_OPTIONS\"\n :compact=\"true\"\n @update:modelValue=\"(value:unknown) => {\n if (value === 'custom') {\n settings.NAValueAs = customNA;\n } else {\n settings.NAValueAs = value as number|null;\n }\n }\"\n />\n <PlNumberField\n v-model=\"customNA\"\n :style=\"{height: '33px', marginLeft: '16px', width: '75px'}\"\n :disabled=\"NAValueOption !== 'custom'\"\n label=\"NA value\"\n :useIncrementButtons=\"false\"\n @update:modelValue=\"(value:unknown) => {\n if (value !== undefined) {\n settings.NAValueAs = value as number;\n }\n }\"\n />\n </div>\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","inputGuide","dataSource","_a","savedDataValuePalette","palettesOpen","ref","palette","DEFAULT_CONTINUOUS_PALETTE","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","NA_VALUE_OPTIONS","AGGREGATION_METHOD","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","PlCheckbox","_cache","$event","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","PlBtnGroup","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","PlNumberField"],"mappings":"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"}
@@ -36,14 +36,14 @@ const i = "bins", V = /* @__PURE__ */ f({
36
36
  onAesUpdate: e[0] || (e[0] = (l, r) => m(l, r, "fillColor"))
37
37
  }, null, 8, ["selected", "withoutFixed"]),
38
38
  c(v(C), {
39
+ modelValue: u.value,
40
+ "onUpdate:modelValue": e[1] || (e[1] = (l) => u.value = l),
39
41
  label: "Opacity",
40
42
  min: 0,
41
43
  max: 100,
42
44
  step: 1,
43
45
  breakpoints: !1,
44
- measure: "%",
45
- modelValue: u.value,
46
- "onUpdate:modelValue": e[1] || (e[1] = (l) => u.value = l)
46
+ measure: "%"
47
47
  }, null, 8, ["modelValue"])
48
48
  ], 64));
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Bins.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/histogram/Bins.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport {Slider} from \"@platforma-sdk/ui-vue\";\nimport { computed } from \"vue\";\nimport type { AestheticMappingCategorical } from '../../../../dataBindAes';\nimport { DEFAULT_WHITE } from '../../../../constantsAesthetic';\nimport AesSelector from '../../AesSelector.vue';\nimport {AesOption} from '../../../../components/AesSettings/types';\nimport { MappingLink } from '../../../../constantsCommon';\nimport {HistogramUIState} from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst layer = \"bins\";\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nfunction useDefaultAes<T extends string | MappingLink>(\n value: T | null,\n optionsState: HistogramUIState,\n defaultValue: T,\n):T {\n const hasGrouping = optionsState.components.grouping.selectorStates.length > 0;\n if (value === null) {\n // not selected by user\n if (hasGrouping) {\n return { type: 'grouping', value: optionsState.components.grouping.selectorStates[0].selectedSource} as T;\n }\n return defaultValue;\n }\n return value;\n}\nconst fillColor = computed(() => useDefaultAes(\n settings.value.fillColor,\n store.value.reactive.optionsState as HistogramUIState,\n DEFAULT_WHITE\n));\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: \"fillColor\"\n) {\n if (colorOption.type === 'dataCategorical') {\n store.value.reactive.layersSettings[layer][field] = { type: colorOption.inputName };\n } else {\n store.value.reactive.layersSettings[layer][field] = value;\n }\n if (colorOption.type === \"dataCategorical\" && typeof value !== \"string\") {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n\nconst opacity = computed({\n get: () => settings.value.opacity * 100,\n set: (newValue: number) => {\n settings.value.opacity = newValue / 100;\n }\n})\n</script>\n\n<template>\n <aes-selector\n label=\"Fill color\"\n form-title=\"Fill Color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"fillColor\"\n :withoutFixed=\"typeof fillColor === 'object'\"\n @aes-update=\"(v:any, c:any) => onUpdate(v, c, 'fillColor')\"\n />\n <Slider\n label=\"Opacity\"\n :min=\"0\"\n :max=\"100\"\n :step=\"1\"\n :breakpoints=\"false\"\n measure=\"%\"\n v-model=\"opacity\"\n />\n</template>\n"],"names":["layer","store","useStore","settings","computed","useDefaultAes","value","optionsState","defaultValue","hasGrouping","fillColor","DEFAULT_WHITE","onUpdate","colorOption","field","opacity","newValue","_createVNode","AesSelector","_cache","v","c","_unref","Slider","$event"],"mappings":";;;;;AAYA,MAAMA,IAAQ;;;AADd,UAAMC,IAAQC,EAAA,GAERC,IAAWC,EAAS,MAAMH,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC;AAE1E,aAASK,EACPC,GACAC,GACAC,GACE;AACF,YAAMC,IAAcF,EAAa,WAAW,SAAS,eAAe,SAAS;AAC7E,aAAID,MAAU,OAERG,IACK,EAAE,MAAM,YAAY,OAAOF,EAAa,WAAW,SAAS,eAAe,CAAC,EAAE,eAAA,IAEhFC,IAEFF;AAAA,IACT;AACA,UAAMI,IAAYN,EAAS,MAAMC;AAAA,MAC/BF,EAAS,MAAM;AAAA,MACfF,EAAM,MAAM,SAAS;AAAA,MACrBU;AAAA,IAAA,CACD;AAED,aAASC,EACPN,GACAO,GACAC,GACA;AACA,MAAID,EAAY,SAAS,oBACvBZ,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAI,EAAE,MAAMD,EAAY,UAAA,IAExEZ,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAIR,GAElDO,EAAY,SAAS,qBAAqB,OAAOP,KAAU,aAC7DL,EAAM,MAAM,SAAS,YAAYY,EAAY,cAAc,IAAIP;AAAA,IAEnE;AAEA,UAAMS,IAAUX,EAAS;AAAA,MACvB,KAAK,MAAMD,EAAS,MAAM,UAAU;AAAA,MACpC,KAAK,CAACa,MAAqB;AACzB,QAAAb,EAAS,MAAM,UAAUa,IAAW;AAAA,MACtC;AAAA,IAAA,CACD;;MAICC,EAQEC,GAAA;AAAA,QAPA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUR,EAAA;AAAA,QACV,qBAAqBA,EAAA,SAAS;AAAA,QAC9B,aAAUS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,GAAOC,MAAUT,EAASQ,GAAGC,GAAC,WAAA;AAAA,MAAA;MAE9CJ,EAQEK,EAAAC,CAAA,GAAA;AAAA,QAPA,OAAM;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,MAAM;AAAA,QACN,aAAa;AAAA,QACd,SAAQ;AAAA,oBACCR,EAAA;AAAA,sDAAAA,EAAO,QAAAS;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"Bins.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/histogram/Bins.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { Slider } from '@platforma-sdk/ui-vue';\nimport { computed } from 'vue';\nimport type { AestheticMappingCategorical } from '../../../../dataBindAes';\nimport { DEFAULT_WHITE } from '../../../../constantsAesthetic';\nimport AesSelector from '../../AesSelector.vue';\nimport type { AesOption } from '../../../../components/AesSettings/types';\nimport type { MappingLink } from '../../../../constantsCommon';\nimport type { HistogramUIState } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst layer = 'bins';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nfunction useDefaultAes<T extends string | MappingLink>(\n value: T | null,\n optionsState: HistogramUIState,\n defaultValue: T,\n): T {\n const hasGrouping = optionsState.components.grouping.selectorStates.length > 0;\n if (value === null) {\n // not selected by user\n if (hasGrouping) {\n return { type: 'grouping', value: optionsState.components.grouping.selectorStates[0].selectedSource } as T;\n }\n return defaultValue;\n }\n return value;\n}\nconst fillColor = computed(() => useDefaultAes(\n settings.value.fillColor,\n store.value.reactive.optionsState as HistogramUIState,\n DEFAULT_WHITE,\n));\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'fillColor',\n) {\n if (colorOption.type === 'dataCategorical') {\n store.value.reactive.layersSettings[layer][field] = { type: colorOption.inputName };\n } else {\n store.value.reactive.layersSettings[layer][field] = value;\n }\n if (colorOption.type === 'dataCategorical' && typeof value !== 'string') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n\nconst opacity = computed({\n get: () => settings.value.opacity * 100,\n set: (newValue: number) => {\n settings.value.opacity = newValue / 100;\n },\n});\n</script>\n\n<template>\n <AesSelector\n label=\"Fill color\"\n form-title=\"Fill Color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"fillColor\"\n :withoutFixed=\"typeof fillColor === 'object'\"\n @aes-update=\"(v:any, c:any) => onUpdate(v, c, 'fillColor')\"\n />\n <Slider\n v-model=\"opacity\"\n label=\"Opacity\"\n :min=\"0\"\n :max=\"100\"\n :step=\"1\"\n :breakpoints=\"false\"\n measure=\"%\"\n />\n</template>\n"],"names":["layer","store","useStore","settings","computed","useDefaultAes","value","optionsState","defaultValue","hasGrouping","fillColor","DEFAULT_WHITE","onUpdate","colorOption","field","opacity","newValue","_createVNode","AesSelector","_cache","v","c","_unref","Slider","$event"],"mappings":";;;;;AAYA,MAAMA,IAAQ;;;AADd,UAAMC,IAAQC,EAAA,GAERC,IAAWC,EAAS,MAAMH,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC;AAE1E,aAASK,EACPC,GACAC,GACAC,GACG;AACH,YAAMC,IAAcF,EAAa,WAAW,SAAS,eAAe,SAAS;AAC7E,aAAID,MAAU,OAERG,IACK,EAAE,MAAM,YAAY,OAAOF,EAAa,WAAW,SAAS,eAAe,CAAC,EAAE,eAAA,IAEhFC,IAEFF;AAAA,IACT;AACA,UAAMI,IAAYN,EAAS,MAAMC;AAAA,MAC/BF,EAAS,MAAM;AAAA,MACfF,EAAM,MAAM,SAAS;AAAA,MACrBU;AAAA,IAAA,CACD;AAED,aAASC,EACPN,GACAO,GACAC,GACA;AACA,MAAID,EAAY,SAAS,oBACvBZ,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAI,EAAE,MAAMD,EAAY,UAAA,IAExEZ,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAIR,GAElDO,EAAY,SAAS,qBAAqB,OAAOP,KAAU,aAC7DL,EAAM,MAAM,SAAS,YAAYY,EAAY,cAAc,IAAIP;AAAA,IAEnE;AAEA,UAAMS,IAAUX,EAAS;AAAA,MACvB,KAAK,MAAMD,EAAS,MAAM,UAAU;AAAA,MACpC,KAAK,CAACa,MAAqB;AACzB,QAAAb,EAAS,MAAM,UAAUa,IAAW;AAAA,MACtC;AAAA,IAAA,CACD;;MAICC,EAQEC,GAAA;AAAA,QAPA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUR,EAAA;AAAA,QACV,qBAAqBA,EAAA,SAAS;AAAA,QAC9B,aAAUS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,GAAOC,MAAUT,EAASQ,GAAGC,GAAC,WAAA;AAAA,MAAA;MAE9CJ,EAQEK,EAAAC,CAAA,GAAA;AAAA,oBAPSR,EAAA;AAAA,sDAAAA,EAAO,QAAAS;AAAA,QAChB,OAAM;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,MAAM;AAAA,QACN,aAAa;AAAA,QACd,SAAQ;AAAA,MAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Curve.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/scatterplot/Curve.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlToggleSwitch } from '@platforma-sdk/ui-vue';\nimport {useStore} from '../../../../store';\nimport AesSelector from '../../AesSelector.vue';\nimport {computed} from \"vue\";\nimport {DEFAULT_BLACK} from '../../../../constantsAesthetic';\nimport {AestheticMappingCategorical} from '../../../../dataBindAes';\nimport {AesOption} from '../../../../components/AesSettings/types';\nimport { MappingLink } from '../../../../constantsCommon';\nimport { ScatterplotUIState } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst layer = 'curve';\nconst state = store.value.reactive.optionsState as ScatterplotUIState;\n\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nfunction isMapping(value:MappingLink|string|null): value is MappingLink {\n return value !== null && typeof value === 'object' && 'type' in value;\n}\nconst lineColor = computed(() => {\n const value = settings.value.lineColor;\n const columns = state.components.grouping.selectorStates.map((s) => s.selectedSource);\n if (isMapping(value) && columns.length) {\n return columns.includes(value.value as string) ? value : { type: 'grouping', value: columns[0] };\n }\n return columns.length ? { type: 'grouping', value: columns[0] } : isMapping(value) ? DEFAULT_BLACK : value ?? DEFAULT_BLACK\n});\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: \"lineColor\"\n) {\n if (typeof value === \"string\") {\n store.value.reactive.layersSettings[layer][field] = value;\n } else if (colorOption.type === \"dataCategorical\") {\n store.value.reactive.layersSettings[layer][field] = { type: colorOption.inputName, value: colorOption.selectedSource }\n }\n if (colorOption.type === \"dataCategorical\" && typeof value !== \"string\") {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n</script>\n\n<template>\n <aes-selector\n label=\"Color\"\n form-title=\"Color Settings\"\n form-back-title=\"Layers\"\n type=\"stroke\"\n :selected=\"lineColor\"\n :withoutFixed=\"typeof lineColor === 'object'\"\n :possible-aes-source-inputs=\"['grouping']\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'lineColor')\"\n />\n <div class=\"input-item\" style=\"display: flex; justify-content: space-between; align-items: center\">\n <span>Smoothing</span>\n <pl-toggle-switch v-model=\"store.reactive.layersSettings.curve.smoothing\"/>\n </div>\n</template>\n"],"names":["layer","store","useStore","state","settings","computed","isMapping","value","lineColor","columns","s","DEFAULT_BLACK","onUpdate","colorOption","field","_createVNode","AesSelector","_cache","v","c","_createElementVNode","_hoisted_1","_unref","PlToggleSwitch","$event"],"mappings":";;;;;;;;GAYMA,IAAQ;;;AADd,UAAMC,IAAQC,EAAA,GAERC,IAAQF,EAAM,MAAM,SAAS,cAE7BG,IAAWC,EAAS,MAAMJ,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC;AAC1E,aAASM,EAAUC,GAAqD;AACtE,aAAOA,MAAU,QAAQ,OAAOA,KAAU,YAAY,UAAUA;AAAA,IAClE;AACA,UAAMC,IAAYH,EAAS,MAAM;AAC/B,YAAME,IAAQH,EAAS,MAAM,WACvBK,IAAUN,EAAM,WAAW,SAAS,eAAe,IAAI,CAACO,MAAMA,EAAE,cAAc;AACpF,aAAIJ,EAAUC,CAAK,KAAKE,EAAQ,SACvBA,EAAQ,SAASF,EAAM,KAAe,IAAIA,IAAQ,EAAE,MAAM,YAAY,OAAOE,EAAQ,CAAC,EAAA,IAExFA,EAAQ,SAAS,EAAE,MAAM,YAAY,OAAOA,EAAQ,CAAC,EAAA,IAAMH,EAAUC,CAAK,IAAII,IAAgBJ,KAASI;AAAA,IAChH,CAAC;AACD,aAASC,EACLL,GACAM,GACAC,GACF;AACA,MAAI,OAAOP,KAAU,WACnBN,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAIP,IAC3CM,EAAY,SAAS,sBAC9BZ,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAI,EAAE,MAAMD,EAAY,WAAW,OAAOA,EAAY,eAAA,IAEpGA,EAAY,SAAS,qBAAqB,OAAON,KAAU,aAC7DN,EAAM,MAAM,SAAS,YAAYY,EAAY,cAAc,IAAIN;AAAA,IAEnE;;MAIEQ,EASEC,GAAA;AAAA,QARE,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUR,EAAA;AAAA,QACV,qBAAqBA,EAAA,SAAS;AAAA,QAC9B,8BAA4B,CAAA,UAAA;AAAA,QAC5B,aAAUS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,GAAGC,MAAMP,EAASM,GAAGC,GAAC,WAAA;AAAA,MAAA;MAExCC,EAGM,OAHNC,GAGM;AAAA,QAFJJ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAAsB,cAAhB,aAAS,EAAA;AAAA,QACfL,EAA2EO,EAAAC,CAAA,GAAA;AAAA,UAAhD,YAAAD,EAAArB,CAAA,EAAM,SAAS,eAAe,MAAM;AAAA,UAApC,uBAAAgB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAO,MAAAF,EAAArB,CAAA,EAAM,SAAS,eAAe,MAAM,YAASuB;AAAA,QAAA;;;;;"}
1
+ {"version":3,"file":"Curve.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/scatterplot/Curve.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlToggleSwitch } from '@platforma-sdk/ui-vue';\nimport { useStore } from '../../../../store';\nimport AesSelector from '../../AesSelector.vue';\nimport { computed } from 'vue';\nimport { DEFAULT_BLACK } from '../../../../constantsAesthetic';\nimport type { AestheticMappingCategorical } from '../../../../dataBindAes';\nimport type { AesOption } from '../../../../components/AesSettings/types';\nimport type { MappingLink } from '../../../../constantsCommon';\nimport type { ScatterplotUIState } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst layer = 'curve';\nconst state = store.value.reactive.optionsState as ScatterplotUIState;\n\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nfunction isMapping(value: MappingLink | string | null): value is MappingLink {\n return value !== null && typeof value === 'object' && 'type' in value;\n}\nconst lineColor = computed(() => {\n const value = settings.value.lineColor;\n const columns = state.components.grouping.selectorStates.map((s) => s.selectedSource);\n if (isMapping(value) && columns.length) {\n return columns.includes(value.value as string) ? value : { type: 'grouping', value: columns[0] };\n }\n return columns.length ? { type: 'grouping', value: columns[0] } : isMapping(value) ? DEFAULT_BLACK : value ?? DEFAULT_BLACK;\n});\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'lineColor',\n) {\n if (typeof value === 'string') {\n store.value.reactive.layersSettings[layer][field] = value;\n } else if (colorOption.type === 'dataCategorical') {\n store.value.reactive.layersSettings[layer][field] = { type: colorOption.inputName, value: colorOption.selectedSource };\n }\n if (colorOption.type === 'dataCategorical' && typeof value !== 'string') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n</script>\n\n<template>\n <AesSelector\n label=\"Color\"\n form-title=\"Color Settings\"\n form-back-title=\"Layers\"\n type=\"stroke\"\n :selected=\"lineColor\"\n :withoutFixed=\"typeof lineColor === 'object'\"\n :possible-aes-source-inputs=\"['grouping']\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'lineColor')\"\n />\n <div class=\"input-item\" style=\"display: flex; justify-content: space-between; align-items: center\">\n <span>Smoothing</span>\n <PlToggleSwitch v-model=\"store.reactive.layersSettings.curve.smoothing\"/>\n </div>\n</template>\n"],"names":["layer","store","useStore","state","settings","computed","isMapping","value","lineColor","columns","s","DEFAULT_BLACK","onUpdate","colorOption","field","_createVNode","AesSelector","_cache","v","c","_createElementVNode","_hoisted_1","_unref","PlToggleSwitch","$event"],"mappings":";;;;;;;;GAYMA,IAAQ;;;AADd,UAAMC,IAAQC,EAAA,GAERC,IAAQF,EAAM,MAAM,SAAS,cAE7BG,IAAWC,EAAS,MAAMJ,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC;AAC1E,aAASM,EAAUC,GAA0D;AAC3E,aAAOA,MAAU,QAAQ,OAAOA,KAAU,YAAY,UAAUA;AAAA,IAClE;AACA,UAAMC,IAAYH,EAAS,MAAM;AAC/B,YAAME,IAAQH,EAAS,MAAM,WACvBK,IAAUN,EAAM,WAAW,SAAS,eAAe,IAAI,CAACO,MAAMA,EAAE,cAAc;AACpF,aAAIJ,EAAUC,CAAK,KAAKE,EAAQ,SACvBA,EAAQ,SAASF,EAAM,KAAe,IAAIA,IAAQ,EAAE,MAAM,YAAY,OAAOE,EAAQ,CAAC,EAAA,IAExFA,EAAQ,SAAS,EAAE,MAAM,YAAY,OAAOA,EAAQ,CAAC,EAAA,IAAMH,EAAUC,CAAK,IAAII,IAAgBJ,KAASI;AAAA,IAChH,CAAC;AACD,aAASC,EACPL,GACAM,GACAC,GACA;AACA,MAAI,OAAOP,KAAU,WACnBN,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAIP,IAC3CM,EAAY,SAAS,sBAC9BZ,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEc,CAAK,IAAI,EAAE,MAAMD,EAAY,WAAW,OAAOA,EAAY,eAAA,IAEpGA,EAAY,SAAS,qBAAqB,OAAON,KAAU,aAC7DN,EAAM,MAAM,SAAS,YAAYY,EAAY,cAAc,IAAIN;AAAA,IAEnE;;MAIEQ,EASEC,GAAA;AAAA,QARA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUR,EAAA;AAAA,QACV,qBAAqBA,EAAA,SAAS;AAAA,QAC9B,8BAA4B,CAAA,UAAA;AAAA,QAC5B,aAAUS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,GAAGC,MAAMP,EAASM,GAAGC,GAAC,WAAA;AAAA,MAAA;MAEtCC,EAGM,OAHNC,GAGM;AAAA,QAFJJ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAAsB,cAAhB,aAAS,EAAA;AAAA,QACfL,EAAyEO,EAAAC,CAAA,GAAA;AAAA,UAAhD,YAAAD,EAAArB,CAAA,EAAM,SAAS,eAAe,MAAM;AAAA,UAApC,uBAAAgB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAO,MAAAF,EAAArB,CAAA,EAAM,SAAS,eAAe,MAAM,YAASuB;AAAA,QAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Scatter.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/scatterplot/Scatter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport AesSelector from '../../AesSelector.vue';\nimport { computed, Ref } from 'vue';\nimport { DEFAULT_BLACK, DEFAULT_DOT_SHAPE } from '../../../../constantsAesthetic';\nimport {\n AestheticMappingCategorical,\n AestheticMappingContinuous,\n DEFAULT_DOT_RANGE,\n DEFAULT_DOT_SIZE, isAestheticMapping\n} from '../../../../dataBindAes';\nimport { AesMappingOption, AesOption, DotShape } from '../../../../components/AesSettings/types';\nimport { ContinuousDataMappingSize, isContinuousDataMapping, MappingLink } from '../../../../constantsCommon';\nimport DotSizeSelector from '../../DotSizeSelector.vue';\nimport { InputGuide, ScatterplotUIState } from '@milaboratories/pf-plots';\nimport { Annotation, readAnnotation } from '@platforma-sdk/model';\n\nconst store = useStore();\nconst layer = 'dots';\nconst state = store.value.reactive.optionsState as ScatterplotUIState;\nconst inputGuide = computed(\n () => store.value.inputGuide.value\n) as unknown as Ref<InputGuide<ScatterplotUIState>>;\n\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nfunction isMapping(value:MappingLink|string|null): value is MappingLink {\n return value !== null && typeof value === 'object' && 'type' in value;\n}\nconst dotFill = computed(() => {\n const value = settings.value.dotFill;\n const columns = state.components.grouping.selectorStates.map((s) => s.selectedSource);\n if (isMapping(value) && columns.length) {\n return columns.includes(value.value as string) ? value : { type: 'grouping', value: columns[0] };\n }\n return columns.length ? { type: 'grouping', value: columns[0] } : isMapping(value) ? DEFAULT_BLACK : value ?? DEFAULT_BLACK\n});\n\nconst dotShape = computed(() => {\n const value = settings.value.dotShape;\n const columns = state.components.shape.selectorStates.map((s) => s.selectedSource);\n if (isMapping(value) && columns.length) {\n return value.value === columns[0] ? value : { type: 'shape', value: columns[0] };\n }\n return columns.length ? { type: 'shape', value: columns[0] } : isMapping(value) ? DEFAULT_DOT_SHAPE : value ?? DEFAULT_DOT_SHAPE\n});\n\nconst dotSize = computed(() => {\n const value = settings.value.dotSize;\n const columns = state.components.size.selectorStates.map((s) => s.selectedSource);\n\n if (columns.length) {\n return {column: columns[0], range: isContinuousDataMapping(value) ? value.range : DEFAULT_DOT_RANGE};\n }\n return isContinuousDataMapping(value) ? DEFAULT_DOT_SIZE : value ?? DEFAULT_DOT_SIZE;\n});\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical | AestheticMappingContinuous,\n colorOption: AesOption,\n field: 'dotFill'\n) {\n if (typeof value === 'string') {\n store.value.reactive.layersSettings[layer][field] = value;\n } else if (colorOption.type === 'dataCategorical' || colorOption.type === 'dataContinuous') {\n store.value.reactive.layersSettings[layer][field] = {\n type: 'grouping',\n value: colorOption.selectedSource\n };\n }\n if (isAestheticMapping(value) && colorOption.type !== 'fix') {\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: 'grouping',\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 onUpdateDotSize(value: number | ContinuousDataMappingSize) {\n store.value.reactive.layersSettings[layer].dotSize = value;\n}\n\nconst disabledColor = computed(() => {\n if (state.components.grouping.selectorStates.length) {\n const groupingSource = state.components.grouping.selectorStates[0].selectedSource;\n const spec = inputGuide.value.getSourceInfo(groupingSource).spec;\n if (readAnnotation(spec, Annotation.Graph.Palette)) {\n return true;\n }\n }\n return false;\n})\n</script>\n\n<template>\n <aes-selector\n label=\"Dot color\"\n form-title=\"Dot color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"dotFill\"\n :possible-aes-source-inputs=\"['grouping']\"\n :disabled=\"disabledColor\"\n :withoutFixed=\"typeof dotFill === 'object'\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'dotFill')\"\n />\n <aes-selector\n label=\"Dot shape\"\n form-title=\"Dot shape Settings\"\n form-back-title=\"Layers\"\n type=\"dotShape\"\n :possible-aes-source-inputs=\"['shape']\"\n :selected=\"dotShape\"\n :withoutFixed=\"typeof dotShape === 'object'\"\n @aes-update=\"(v, c) => onUpdateDot(v, c, 'dotShape')\"\n />\n <dot-size-selector :selected=\"dotSize\" @aes-update=\"onUpdateDotSize\" />\n</template>\n"],"names":["layer","store","useStore","state","inputGuide","computed","settings","isMapping","value","dotFill","columns","s","DEFAULT_BLACK","dotShape","DEFAULT_DOT_SHAPE","dotSize","isContinuousDataMapping","DEFAULT_DOT_RANGE","DEFAULT_DOT_SIZE","onUpdate","colorOption","field","isAestheticMapping","onUpdateDot","onUpdateDotSize","disabledColor","groupingSource","spec","readAnnotation","Annotation","_createVNode","AesSelector","_cache","v","c","DotSizeSelector"],"mappings":"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"}
1
+ {"version":3,"file":"Scatter.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/scatterplot/Scatter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport AesSelector from '../../AesSelector.vue';\nimport type { Ref } from 'vue';\nimport { computed } from 'vue';\nimport { DEFAULT_BLACK, DEFAULT_DOT_SHAPE } from '../../../../constantsAesthetic';\nimport type {\n AestheticMappingCategorical,\n AestheticMappingContinuous } from '../../../../dataBindAes';\nimport {\n DEFAULT_DOT_RANGE,\n DEFAULT_DOT_SIZE, isAestheticMapping,\n} from '../../../../dataBindAes';\nimport type { AesMappingOption, AesOption, DotShape } from '../../../../components/AesSettings/types';\nimport type { ContinuousDataMappingSize, MappingLink } from '../../../../constantsCommon';\nimport { isContinuousDataMapping } from '../../../../constantsCommon';\nimport DotSizeSelector from '../../DotSizeSelector.vue';\nimport type { InputGuide, ScatterplotUIState } from '@milaboratories/pf-plots';\nimport { Annotation, readAnnotation } from '@platforma-sdk/model';\n\nconst store = useStore();\nconst layer = 'dots';\nconst state = store.value.reactive.optionsState as ScatterplotUIState;\nconst inputGuide = computed(\n () => store.value.inputGuide.value,\n) as unknown as Ref<InputGuide<ScatterplotUIState>>;\n\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nfunction isMapping(value: MappingLink | string | null): value is MappingLink {\n return value !== null && typeof value === 'object' && 'type' in value;\n}\nconst dotFill = computed(() => {\n const value = settings.value.dotFill;\n const columns = state.components.grouping.selectorStates.map((s) => s.selectedSource);\n if (isMapping(value) && columns.length) {\n return columns.includes(value.value as string) ? value : { type: 'grouping', value: columns[0] };\n }\n return columns.length ? { type: 'grouping', value: columns[0] } : isMapping(value) ? DEFAULT_BLACK : value ?? DEFAULT_BLACK;\n});\n\nconst dotShape = computed(() => {\n const value = settings.value.dotShape;\n const columns = state.components.shape.selectorStates.map((s) => s.selectedSource);\n if (isMapping(value) && columns.length) {\n return value.value === columns[0] ? value : { type: 'shape', value: columns[0] };\n }\n return columns.length ? { type: 'shape', value: columns[0] } : isMapping(value) ? DEFAULT_DOT_SHAPE : value ?? DEFAULT_DOT_SHAPE;\n});\n\nconst dotSize = computed(() => {\n const value = settings.value.dotSize;\n const columns = state.components.size.selectorStates.map((s) => s.selectedSource);\n\n if (columns.length) {\n return { column: columns[0], range: isContinuousDataMapping(value) ? value.range : DEFAULT_DOT_RANGE };\n }\n return isContinuousDataMapping(value) ? DEFAULT_DOT_SIZE : value ?? DEFAULT_DOT_SIZE;\n});\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical | AestheticMappingContinuous,\n colorOption: AesOption,\n field: 'dotFill',\n) {\n if (typeof value === 'string') {\n store.value.reactive.layersSettings[layer][field] = value;\n } else if (colorOption.type === 'dataCategorical' || colorOption.type === 'dataContinuous') {\n store.value.reactive.layersSettings[layer][field] = {\n type: 'grouping',\n value: colorOption.selectedSource,\n };\n }\n if (isAestheticMapping(value) && colorOption.type !== 'fix') {\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: 'grouping',\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 onUpdateDotSize(value: number | ContinuousDataMappingSize) {\n store.value.reactive.layersSettings[layer].dotSize = value;\n}\n\nconst disabledColor = computed(() => {\n if (state.components.grouping.selectorStates.length) {\n const groupingSource = state.components.grouping.selectorStates[0].selectedSource;\n const spec = inputGuide.value.getSourceInfo(groupingSource).spec;\n if (readAnnotation(spec, Annotation.Graph.Palette)) {\n return true;\n }\n }\n return false;\n});\n</script>\n\n<template>\n <AesSelector\n label=\"Dot color\"\n form-title=\"Dot color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"dotFill\"\n :possible-aes-source-inputs=\"['grouping']\"\n :disabled=\"disabledColor\"\n :withoutFixed=\"typeof dotFill === 'object'\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'dotFill')\"\n />\n <AesSelector\n label=\"Dot shape\"\n form-title=\"Dot shape Settings\"\n form-back-title=\"Layers\"\n type=\"dotShape\"\n :possible-aes-source-inputs=\"['shape']\"\n :selected=\"dotShape\"\n :withoutFixed=\"typeof dotShape === 'object'\"\n @aes-update=\"(v, c) => onUpdateDot(v, c, 'dotShape')\"\n />\n <DotSizeSelector :selected=\"dotSize\" @aes-update=\"onUpdateDotSize\" />\n</template>\n"],"names":["layer","store","useStore","state","inputGuide","computed","settings","isMapping","value","dotFill","columns","s","DEFAULT_BLACK","dotShape","DEFAULT_DOT_SHAPE","dotSize","isContinuousDataMapping","DEFAULT_DOT_RANGE","DEFAULT_DOT_SIZE","onUpdate","colorOption","field","isAestheticMapping","onUpdateDot","onUpdateDotSize","disabledColor","groupingSource","spec","readAnnotation","Annotation","_createVNode","AesSelector","_cache","v","c","DotSizeSelector"],"mappings":"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"}
@@ -55,8 +55,8 @@ const i = "dots", $ = /* @__PURE__ */ A({
55
55
  }, null, 8, ["selected", "disabled", "withoutFixed"]),
56
56
  c(x, {
57
57
  selected: v.value,
58
- onAesUpdate: y,
59
- min: 2
58
+ min: 2,
59
+ onAesUpdate: y
60
60
  }, null, 8, ["selected"])
61
61
  ], 64));
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Scatter.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport AesSelector from '../../AesSelector.vue';\nimport { computed, Ref } from 'vue';\nimport { DEFAULT_BLACK } from '../../../../constantsAesthetic';\nimport {\n AestheticMappingCategorical,\n DEFAULT_DOT_RANGE, DEFAULT_DOT_SIZE_CANVAS,\n isAestheticMapping\n} from '../../../../dataBindAes';\nimport { AesOption } from '../../../../components/AesSettings/types';\nimport {\n ContinuousDataMappingSize,\n isContinuousDataMapping,\n MappingLink\n} from '../../../../constantsCommon';\nimport { InputGuide, ScatterplotUIState } from '@milaboratories/pf-plots';\nimport DotSizeSelector from '../../DotSizeSelector.vue';\nimport { Annotation, readAnnotation } from '@platforma-sdk/model';\n\nconst store = useStore();\nconst layer = 'dots';\nconst state = store.value.reactive.optionsState as ScatterplotUIState;\nconst inputGuide = computed(\n () => store.value.inputGuide.value\n) as unknown as Ref<InputGuide<ScatterplotUIState>>;\n\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nfunction isMapping(value:MappingLink|string|null): value is MappingLink {\n return value !== null && typeof value === 'object' && 'type' in value;\n}\nconst dotFill = computed(() => {\n const value = settings.value.dotFill;\n const columns = state.components.grouping.selectorStates.map((s) => s.selectedSource);\n if (isMapping(value) && columns.length) {\n return columns.includes(value.value as string) ? value : { type: 'grouping', value: columns[0] };\n }\n return columns.length ? { type: 'grouping', value: columns[0] } : isMapping(value) ? DEFAULT_BLACK : value ?? DEFAULT_BLACK\n});\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'dotFill'\n) {\n if (typeof value === 'string') {\n store.value.reactive.layersSettings[layer][field] = value;\n } else if (colorOption.type === 'dataCategorical' || colorOption.type === 'dataContinuous') {\n store.value.reactive.layersSettings[layer][field] = {\n type: 'grouping',\n value: colorOption.selectedSource\n };\n }\n if (isAestheticMapping(value) && colorOption.type !== 'fix') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n\nconst disabledColor = computed(() => {\n if (state.components.grouping.selectorStates.length) {\n const groupingSource = state.components.grouping.selectorStates[0].selectedSource;\n const spec = inputGuide.value.getSourceInfo(groupingSource).spec;\n if (readAnnotation(spec, Annotation.Graph.Palette)) {\n return true;\n }\n }\n return false;\n})\n\nconst dotSize = computed(() => {\n const value = settings.value.dotSize;\n const columns = state.components.size.selectorStates.map((s) => s.selectedSource);\n\n if (columns.length) {\n return {column: columns[0], range: isContinuousDataMapping(value) ? value.range : DEFAULT_DOT_RANGE};\n }\n return isContinuousDataMapping(value) ? DEFAULT_DOT_SIZE_CANVAS : value ?? DEFAULT_DOT_SIZE_CANVAS;\n});\n\nfunction onUpdateDotSize(value: number | ContinuousDataMappingSize) {\n store.value.reactive.layersSettings[layer].dotSize = value;\n}\n</script>\n\n<template>\n <aes-selector\n label=\"Dot color\"\n form-title=\"Dot color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"dotFill\"\n :possible-aes-source-inputs=\"['grouping']\"\n :disabled=\"disabledColor\"\n :withoutFixed=\"typeof dotFill === 'object'\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'dotFill')\"\n />\n <dot-size-selector :selected=\"dotSize\" @aes-update=\"onUpdateDotSize\" :min=\"2\" />\n</template>\n"],"names":["layer","store","useStore","state","inputGuide","computed","settings","isMapping","value","dotFill","columns","s","DEFAULT_BLACK","onUpdate","colorOption","field","isAestheticMapping","disabledColor","groupingSource","spec","readAnnotation","Annotation","dotSize","isContinuousDataMapping","DEFAULT_DOT_RANGE","DEFAULT_DOT_SIZE_CANVAS","onUpdateDotSize","_createVNode","AesSelector","_cache","v","c","DotSizeSelector"],"mappings":";;;;;;;;;AAqBA,MAAMA,IAAQ;;;AADd,UAAMC,IAAQC,EAAA,GAERC,IAAQF,EAAM,MAAM,SAAS,cAC7BG,IAAaC;AAAA,MACjB,MAAMJ,EAAM,MAAM,WAAW;AAAA,IAAA,GAGzBK,IAAWD,EAAS,MAAMJ,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC;AAE1E,aAASO,EAAUC,GAAqD;AACtE,aAAOA,MAAU,QAAQ,OAAOA,KAAU,YAAY,UAAUA;AAAA,IAClE;AACA,UAAMC,IAAUJ,EAAS,MAAM;AAC7B,YAAMG,IAAQF,EAAS,MAAM,SACvBI,IAAUP,EAAM,WAAW,SAAS,eAAe,IAAI,CAACQ,MAAMA,EAAE,cAAc;AACpF,aAAIJ,EAAUC,CAAK,KAAKE,EAAQ,SACvBA,EAAQ,SAASF,EAAM,KAAe,IAAIA,IAAQ,EAAE,MAAM,YAAY,OAAOE,EAAQ,CAAC,EAAA,IAExFA,EAAQ,SAAS,EAAE,MAAM,YAAY,OAAOA,EAAQ,CAAC,EAAA,IAAMH,EAAUC,CAAK,IAAII,IAAgBJ,KAASI;AAAA,IAChH,CAAC;AAED,aAASC,EACPL,GACAM,GACAC,GACA;AACA,MAAI,OAAOP,KAAU,WACnBP,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEe,CAAK,IAAIP,KAC3CM,EAAY,SAAS,qBAAqBA,EAAY,SAAS,sBACxEb,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEe,CAAK,IAAI;AAAA,QAClD,MAAM;AAAA,QACN,OAAOD,EAAY;AAAA,MAAA,IAGnBE,EAAmBR,CAAK,KAAKM,EAAY,SAAS,UACpDb,EAAM,MAAM,SAAS,YAAYa,EAAY,cAAc,IAAIN;AAAA,IAEnE;AAEA,UAAMS,IAAgBZ,EAAS,MAAM;AACnC,UAAIF,EAAM,WAAW,SAAS,eAAe,QAAQ;AACnD,cAAMe,IAAiBf,EAAM,WAAW,SAAS,eAAe,CAAC,EAAE,gBAC7DgB,IAAOf,EAAW,MAAM,cAAcc,CAAc,EAAE;AAC5D,YAAIE,EAAeD,GAAME,EAAW,MAAM,OAAO;AAC/C,iBAAO;AAAA,MAEX;AACA,aAAO;AAAA,IACT,CAAC,GAEKC,IAAUjB,EAAS,MAAM;AAC7B,YAAMG,IAAQF,EAAS,MAAM,SACvBI,IAAUP,EAAM,WAAW,KAAK,eAAe,IAAI,CAACQ,MAAMA,EAAE,cAAc;AAEhF,aAAID,EAAQ,SACF,EAAC,QAAQA,EAAQ,CAAC,GAAG,OAAOa,EAAwBf,CAAK,IAAIA,EAAM,QAAQgB,EAAA,IAE9ED,EAAwBf,CAAK,IAAIiB,IAA0BjB,KAASiB;AAAA,IAC7E,CAAC;AAED,aAASC,EAAgBlB,GAA2C;AAClE,MAAAP,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAE,UAAUQ;AAAA,IACvD;;MAIEmB,EAUEC,GAAA;AAAA,QATA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUnB,EAAA;AAAA,QACV,8BAA4B,CAAA,UAAA;AAAA,QAC5B,UAAUQ,EAAA;AAAA,QACV,qBAAqBR,EAAA,SAAO;AAAA,QAC5B,aAAUoB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,GAAGC,MAAMlB,EAASiB,GAAGC,GAAC,SAAA;AAAA,MAAA;MAEtCJ,EAAgFK,GAAA;AAAA,QAA5D,UAAUV,EAAA;AAAA,QAAU,aAAYI;AAAA,QAAkB,KAAK;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"Scatter.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport AesSelector from '../../AesSelector.vue';\nimport type { Ref } from 'vue';\nimport { computed } from 'vue';\nimport { DEFAULT_BLACK } from '../../../../constantsAesthetic';\nimport type {\n AestheticMappingCategorical } from '../../../../dataBindAes';\nimport {\n DEFAULT_DOT_RANGE, DEFAULT_DOT_SIZE_CANVAS,\n isAestheticMapping,\n} from '../../../../dataBindAes';\nimport type { AesOption } from '../../../../components/AesSettings/types';\nimport type {\n ContinuousDataMappingSize,\n MappingLink,\n} from '../../../../constantsCommon';\nimport {\n isContinuousDataMapping,\n} from '../../../../constantsCommon';\nimport type { InputGuide, ScatterplotUIState } from '@milaboratories/pf-plots';\nimport DotSizeSelector from '../../DotSizeSelector.vue';\nimport { Annotation, readAnnotation } from '@platforma-sdk/model';\n\nconst store = useStore();\nconst layer = 'dots';\nconst state = store.value.reactive.optionsState as ScatterplotUIState;\nconst inputGuide = computed(\n () => store.value.inputGuide.value,\n) as unknown as Ref<InputGuide<ScatterplotUIState>>;\n\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nfunction isMapping(value: MappingLink | string | null): value is MappingLink {\n return value !== null && typeof value === 'object' && 'type' in value;\n}\nconst dotFill = computed(() => {\n const value = settings.value.dotFill;\n const columns = state.components.grouping.selectorStates.map((s) => s.selectedSource);\n if (isMapping(value) && columns.length) {\n return columns.includes(value.value as string) ? value : { type: 'grouping', value: columns[0] };\n }\n return columns.length ? { type: 'grouping', value: columns[0] } : isMapping(value) ? DEFAULT_BLACK : value ?? DEFAULT_BLACK;\n});\n\nfunction onUpdate(\n value: string | AestheticMappingCategorical,\n colorOption: AesOption,\n field: 'dotFill',\n) {\n if (typeof value === 'string') {\n store.value.reactive.layersSettings[layer][field] = value;\n } else if (colorOption.type === 'dataCategorical' || colorOption.type === 'dataContinuous') {\n store.value.reactive.layersSettings[layer][field] = {\n type: 'grouping',\n value: colorOption.selectedSource,\n };\n }\n if (isAestheticMapping(value) && colorOption.type !== 'fix') {\n store.value.reactive.dataBindAes[colorOption.selectedSource] = value;\n }\n}\n\nconst disabledColor = computed(() => {\n if (state.components.grouping.selectorStates.length) {\n const groupingSource = state.components.grouping.selectorStates[0].selectedSource;\n const spec = inputGuide.value.getSourceInfo(groupingSource).spec;\n if (readAnnotation(spec, Annotation.Graph.Palette)) {\n return true;\n }\n }\n return false;\n});\n\nconst dotSize = computed(() => {\n const value = settings.value.dotSize;\n const columns = state.components.size.selectorStates.map((s) => s.selectedSource);\n\n if (columns.length) {\n return { column: columns[0], range: isContinuousDataMapping(value) ? value.range : DEFAULT_DOT_RANGE };\n }\n return isContinuousDataMapping(value) ? DEFAULT_DOT_SIZE_CANVAS : value ?? DEFAULT_DOT_SIZE_CANVAS;\n});\n\nfunction onUpdateDotSize(value: number | ContinuousDataMappingSize) {\n store.value.reactive.layersSettings[layer].dotSize = value;\n}\n</script>\n\n<template>\n <AesSelector\n label=\"Dot color\"\n form-title=\"Dot color Settings\"\n form-back-title=\"Layers\"\n type=\"fill\"\n :selected=\"dotFill\"\n :possible-aes-source-inputs=\"['grouping']\"\n :disabled=\"disabledColor\"\n :withoutFixed=\"typeof dotFill === 'object'\"\n @aes-update=\"(v, c) => onUpdate(v, c, 'dotFill')\"\n />\n <DotSizeSelector :selected=\"dotSize\" :min=\"2\" @aes-update=\"onUpdateDotSize\" />\n</template>\n"],"names":["layer","store","useStore","state","inputGuide","computed","settings","isMapping","value","dotFill","columns","s","DEFAULT_BLACK","onUpdate","colorOption","field","isAestheticMapping","disabledColor","groupingSource","spec","readAnnotation","Annotation","dotSize","isContinuousDataMapping","DEFAULT_DOT_RANGE","DEFAULT_DOT_SIZE_CANVAS","onUpdateDotSize","_createVNode","AesSelector","_cache","v","c","DotSizeSelector"],"mappings":";;;;;;;;;AAyBA,MAAMA,IAAQ;;;AADd,UAAMC,IAAQC,EAAA,GAERC,IAAQF,EAAM,MAAM,SAAS,cAC7BG,IAAaC;AAAA,MACjB,MAAMJ,EAAM,MAAM,WAAW;AAAA,IAAA,GAGzBK,IAAWD,EAAS,MAAMJ,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC;AAE1E,aAASO,EAAUC,GAA0D;AAC3E,aAAOA,MAAU,QAAQ,OAAOA,KAAU,YAAY,UAAUA;AAAA,IAClE;AACA,UAAMC,IAAUJ,EAAS,MAAM;AAC7B,YAAMG,IAAQF,EAAS,MAAM,SACvBI,IAAUP,EAAM,WAAW,SAAS,eAAe,IAAI,CAACQ,MAAMA,EAAE,cAAc;AACpF,aAAIJ,EAAUC,CAAK,KAAKE,EAAQ,SACvBA,EAAQ,SAASF,EAAM,KAAe,IAAIA,IAAQ,EAAE,MAAM,YAAY,OAAOE,EAAQ,CAAC,EAAA,IAExFA,EAAQ,SAAS,EAAE,MAAM,YAAY,OAAOA,EAAQ,CAAC,EAAA,IAAMH,EAAUC,CAAK,IAAII,IAAgBJ,KAASI;AAAA,IAChH,CAAC;AAED,aAASC,EACPL,GACAM,GACAC,GACA;AACA,MAAI,OAAOP,KAAU,WACnBP,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEe,CAAK,IAAIP,KAC3CM,EAAY,SAAS,qBAAqBA,EAAY,SAAS,sBACxEb,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAEe,CAAK,IAAI;AAAA,QAClD,MAAM;AAAA,QACN,OAAOD,EAAY;AAAA,MAAA,IAGnBE,EAAmBR,CAAK,KAAKM,EAAY,SAAS,UACpDb,EAAM,MAAM,SAAS,YAAYa,EAAY,cAAc,IAAIN;AAAA,IAEnE;AAEA,UAAMS,IAAgBZ,EAAS,MAAM;AACnC,UAAIF,EAAM,WAAW,SAAS,eAAe,QAAQ;AACnD,cAAMe,IAAiBf,EAAM,WAAW,SAAS,eAAe,CAAC,EAAE,gBAC7DgB,IAAOf,EAAW,MAAM,cAAcc,CAAc,EAAE;AAC5D,YAAIE,EAAeD,GAAME,EAAW,MAAM,OAAO;AAC/C,iBAAO;AAAA,MAEX;AACA,aAAO;AAAA,IACT,CAAC,GAEKC,IAAUjB,EAAS,MAAM;AAC7B,YAAMG,IAAQF,EAAS,MAAM,SACvBI,IAAUP,EAAM,WAAW,KAAK,eAAe,IAAI,CAACQ,MAAMA,EAAE,cAAc;AAEhF,aAAID,EAAQ,SACH,EAAE,QAAQA,EAAQ,CAAC,GAAG,OAAOa,EAAwBf,CAAK,IAAIA,EAAM,QAAQgB,EAAA,IAE9ED,EAAwBf,CAAK,IAAIiB,IAA0BjB,KAASiB;AAAA,IAC7E,CAAC;AAED,aAASC,EAAgBlB,GAA2C;AAClE,MAAAP,EAAM,MAAM,SAAS,eAAeD,CAAK,EAAE,UAAUQ;AAAA,IACvD;;MAIEmB,EAUEC,GAAA;AAAA,QATA,OAAM;AAAA,QACN,cAAW;AAAA,QACX,mBAAgB;AAAA,QAChB,MAAK;AAAA,QACJ,UAAUnB,EAAA;AAAA,QACV,8BAA4B,CAAA,UAAA;AAAA,QAC5B,UAAUQ,EAAA;AAAA,QACV,qBAAqBR,EAAA,SAAO;AAAA,QAC5B,aAAUoB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAGC,GAAGC,MAAMlB,EAASiB,GAAGC,GAAC,SAAA;AAAA,MAAA;MAEtCJ,EAA8EK,GAAA;AAAA,QAA5D,UAAUV,EAAA;AAAA,QAAU,KAAK;AAAA,QAAI,aAAYI;AAAA,MAAA;;;;"}
@@ -1,9 +1,9 @@
1
- import { defineComponent as L, createElementBlock as _, openBlock as e, createElementVNode as u, createCommentVNode as a, createBlock as o, unref as t, Fragment as l, renderList as p, withCtx as n, resolveDynamicComponent as f, createVNode as d } from "vue";
2
- import { useStore as b } from "../../store.js";
3
- import { DISCRETE_TEMPLATES_MAP as E, LAYER_TITLES as c, LAYER_ICONS as s, SCATTERPLOT_TEMPLATES_MAP as T, SCATTERPLOT_UMAP_TEMPLATES_MAP as M, HEATMAP_TEMPLATES_MAP as P } from "../../constantsCommon.js";
1
+ import { defineComponent as k, createElementBlock as _, openBlock as i, createElementVNode as u, createCommentVNode as n, createBlock as r, unref as t, Fragment as p, renderList as l, withCtx as a, resolveDynamicComponent as f, createVNode as d } from "vue";
2
+ import { useStore as L } from "../../store.js";
3
+ import { DISCRETE_TEMPLATES_MAP as E, LAYER_TITLES as c, LAYER_ICONS as s, SCATTERPLOT_TEMPLATES_MAP as T, SCATTERPLOT_UMAP_TEMPLATES_MAP as b, HEATMAP_TEMPLATES_MAP as M } from "../../constantsCommon.js";
4
4
  import m from "../../components/CollapsableBlock.vue.js";
5
- import R from "./Layer/discrete/Boxplot.vue.js";
6
- import k from "./Layer/discrete/BinnedDots.vue.js";
5
+ import P from "./Layer/discrete/Boxplot.vue.js";
6
+ import R from "./Layer/discrete/BinnedDots.vue.js";
7
7
  import y from "./Layer/discrete/JitteredDots.vue.js";
8
8
  import C from "./Layer/discrete/Violin.vue.js";
9
9
  import O from "./Layer/discrete/Bar.vue.js";
@@ -24,14 +24,14 @@ import q from "../../icons/HeatmapAnnotation.vue.js";
24
24
  import z from "./Layer/histogram/Bins.vue.js";
25
25
  import G from "./Layer/Bubble.vue.js";
26
26
  const J = {
27
- class: "layers-form",
28
- id: "layers-form"
29
- }, K = { class: "layers-list" }, gt = /* @__PURE__ */ L({
27
+ id: "layers-form",
28
+ class: "layers-form"
29
+ }, K = { class: "layers-list" }, gt = /* @__PURE__ */ k({
30
30
  __name: "index",
31
31
  setup(Q) {
32
- const i = b(), v = {
33
- box: R,
34
- binnedDots: k,
32
+ const o = L(), v = {
33
+ box: P,
34
+ binnedDots: R,
35
35
  jitteredDots: y,
36
36
  violin: C,
37
37
  bar: O,
@@ -51,95 +51,99 @@ const J = {
51
51
  heatmap: N,
52
52
  heatmapClustered: U
53
53
  };
54
- return (W, A) => (e(), _("div", J, [
54
+ return (W, A) => (i(), _("div", J, [
55
55
  A[0] || (A[0] = u("div", { class: "layers-title" }, [
56
56
  u("h3", null, " Layers ")
57
57
  ], -1)),
58
58
  u("div", K, [
59
- t(i).reactive.chartType === "discrete" ? (e(!0), _(l, { key: 0 }, p(t(E)[t(i).reactive.template], (r) => (e(), o(m, {
60
- icon: t(s)[r],
61
- title: t(c)[r],
62
- settings: { defaultState: t(E)[t(i).reactive.template].length > 1 ? "close" : "open" }
59
+ t(o).reactive.chartType === "discrete" ? (i(!0), _(p, { key: 0 }, l(t(E)[t(o).reactive.template], (e) => (i(), r(m, {
60
+ key: e,
61
+ icon: t(s)[e],
62
+ title: t(c)[e],
63
+ settings: { defaultState: t(E)[t(o).reactive.template].length > 1 ? "close" : "open" }
63
64
  }, {
64
- default: n(() => [
65
- (e(), o(f(v[r])))
65
+ default: a(() => [
66
+ (i(), r(f(v[e])))
66
67
  ]),
67
68
  _: 2
68
- }, 1032, ["icon", "title", "settings"]))), 256)) : a("", !0),
69
- t(i).reactive.chartType === "scatterplot" ? (e(!0), _(l, { key: 1 }, p(t(T)[t(i).reactive.template], (r) => (e(), o(m, {
70
- icon: t(s)[r],
71
- title: t(c)[r],
72
- settings: { defaultState: t(T)[t(i).reactive.template].length > 1 ? "close" : "open" }
69
+ }, 1032, ["icon", "title", "settings"]))), 128)) : n("", !0),
70
+ t(o).reactive.chartType === "scatterplot" ? (i(!0), _(p, { key: 1 }, l(t(T)[t(o).reactive.template], (e) => (i(), r(m, {
71
+ key: e,
72
+ icon: t(s)[e],
73
+ title: t(c)[e],
74
+ settings: { defaultState: t(T)[t(o).reactive.template].length > 1 ? "close" : "open" }
73
75
  }, {
74
- default: n(() => [
75
- (e(), o(f($[r])))
76
+ default: a(() => [
77
+ (i(), r(f($[e])))
76
78
  ]),
77
79
  _: 2
78
- }, 1032, ["icon", "title", "settings"]))), 256)) : a("", !0),
79
- t(i).reactive.chartType === "scatterplot-umap" ? (e(!0), _(l, { key: 2 }, p(t(M)[t(i).reactive.template], (r) => (e(), o(m, {
80
- icon: t(s)[r],
81
- title: t(c)[r],
82
- settings: { defaultState: t(T)[t(i).reactive.template].length > 1 ? "close" : "open" }
80
+ }, 1032, ["icon", "title", "settings"]))), 128)) : n("", !0),
81
+ t(o).reactive.chartType === "scatterplot-umap" ? (i(!0), _(p, { key: 2 }, l(t(b)[t(o).reactive.template], (e) => (i(), r(m, {
82
+ key: e,
83
+ icon: t(s)[e],
84
+ title: t(c)[e],
85
+ settings: { defaultState: t(T)[t(o).reactive.template].length > 1 ? "close" : "open" }
83
86
  }, {
84
- default: n(() => [
85
- (e(), o(f(h[r])))
87
+ default: a(() => [
88
+ (i(), r(f(h[e])))
86
89
  ]),
87
90
  _: 2
88
- }, 1032, ["icon", "title", "settings"]))), 256)) : a("", !0),
89
- t(i).reactive.chartType === "heatmap" ? (e(!0), _(l, { key: 3 }, p(t(P)[t(i).reactive.template], (r) => (e(), o(m, {
90
- icon: t(s)[r],
91
- title: t(c)[r],
91
+ }, 1032, ["icon", "title", "settings"]))), 128)) : n("", !0),
92
+ t(o).reactive.chartType === "heatmap" ? (i(!0), _(p, { key: 3 }, l(t(M)[t(o).reactive.template], (e) => (i(), r(m, {
93
+ key: e,
94
+ icon: t(s)[e],
95
+ title: t(c)[e],
92
96
  settings: { defaultState: "open" }
93
97
  }, {
94
- default: n(() => [
95
- (e(), o(f(g[r])))
98
+ default: a(() => [
99
+ (i(), r(f(g[e])))
96
100
  ]),
97
101
  _: 2
98
- }, 1032, ["icon", "title"]))), 256)) : a("", !0),
99
- t(i).reactive.chartType === "heatmap" ? (e(), o(m, {
102
+ }, 1032, ["icon", "title"]))), 128)) : n("", !0),
103
+ t(o).reactive.chartType === "heatmap" ? (i(), r(m, {
100
104
  key: 4,
101
105
  icon: q,
102
106
  title: "Annotations",
103
107
  settings: { defaultState: "open" }
104
108
  }, {
105
- default: n(() => [
106
- (e(), o(f(w)))
109
+ default: a(() => [
110
+ (i(), r(f(w)))
107
111
  ]),
108
112
  _: 1
109
- })) : a("", !0),
110
- t(i).reactive.chartType === "dendro" ? (e(), o(m, {
113
+ })) : n("", !0),
114
+ t(o).reactive.chartType === "dendro" ? (i(), r(m, {
111
115
  key: 5,
112
116
  icon: t(s).dendro,
113
117
  title: t(c).dendro,
114
118
  settings: { defaultState: "open" }
115
119
  }, {
116
- default: n(() => [
120
+ default: a(() => [
117
121
  d(H)
118
122
  ]),
119
123
  _: 1
120
- }, 8, ["icon", "title"])) : a("", !0),
121
- t(i).reactive.chartType === "histogram" ? (e(), o(m, {
124
+ }, 8, ["icon", "title"])) : n("", !0),
125
+ t(o).reactive.chartType === "histogram" ? (i(), r(m, {
122
126
  key: 6,
123
127
  icon: t(s).bins,
124
128
  title: t(c).bins,
125
129
  settings: { defaultState: "open" }
126
130
  }, {
127
- default: n(() => [
131
+ default: a(() => [
128
132
  d(z)
129
133
  ]),
130
134
  _: 1
131
- }, 8, ["icon", "title"])) : a("", !0),
132
- t(i).reactive.chartType === "bubble" ? (e(), o(m, {
135
+ }, 8, ["icon", "title"])) : n("", !0),
136
+ t(o).reactive.chartType === "bubble" ? (i(), r(m, {
133
137
  key: 7,
134
138
  icon: t(s).bubble,
135
139
  title: t(c).bubble,
136
140
  settings: { defaultState: "open" }
137
141
  }, {
138
- default: n(() => [
142
+ default: a(() => [
139
143
  d(G)
140
144
  ]),
141
145
  _: 1
142
- }, 8, ["icon", "title"])) : a("", !0)
146
+ }, 8, ["icon", "title"])) : n("", !0)
143
147
  ])
144
148
  ]));
145
149
  }