@milaboratories/graph-maker 1.1.153 → 1.1.155

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 (26) hide show
  1. package/dist/GraphMaker/components/AesSettings/FormWrapper.vue.d.ts +2 -0
  2. package/dist/GraphMaker/components/AesSettings/FormWrapper.vue.d.ts.map +1 -1
  3. package/dist/GraphMaker/components/AesSettings/FormWrapper.vue.js +18 -16
  4. package/dist/GraphMaker/components/AesSettings/FormWrapper.vue.js.map +1 -1
  5. package/dist/GraphMaker/components/Chart.vue.d.ts.map +1 -1
  6. package/dist/GraphMaker/components/Chart.vue.js +177 -120
  7. package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
  8. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.d.ts.map +1 -1
  9. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +198 -192
  10. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  11. package/dist/GraphMaker/store.d.ts.map +1 -1
  12. package/dist/GraphMaker/store.js +85 -81
  13. package/dist/GraphMaker/store.js.map +1 -1
  14. package/dist/GraphMaker/types.d.ts +1 -0
  15. package/dist/GraphMaker/types.d.ts.map +1 -1
  16. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +6 -6
  17. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -1
  18. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +94 -91
  19. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -1
  20. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +2 -2
  21. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js.map +1 -1
  22. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +50 -49
  23. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -1
  24. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +15 -14
  25. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
  26. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"DiscreteAxesSettingsForm.vue.js","sources":["../../../../src/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { Slider, PlToggleSwitch } from '@platforma-sdk/ui-vue';\nimport { useStore } from '../../store';\nimport CollapsableBlock from '../../components/CollapsableBlock.vue';\nimport Right from '../../icons/Right.vue';\nimport Down from '../../icons/Down.vue';\nimport { PlTextField, PlBtnGroup } from '@platforma-sdk/ui-vue';\nimport BtnIconGroup from '../../components/BtnIconGroup.vue';\nimport AlignLeft from '../../icons/AlignLeft.vue';\nimport AlignCenter from '../../icons/AlignCenter.vue';\nimport AlignRight from '../../icons/AlignRight.vue';\nimport FrameFull from '../../icons/FrameFull.vue';\nimport FrameEmpty from '../../icons/FrameEmpty.vue';\nimport Rotation0 from '../../icons/Rotation0.vue';\nimport Rotation45 from '../../icons/Rotation45.vue';\nimport Rotation90 from '../../icons/Rotation90.vue';\nimport FrameLeft from '../../icons/FrameLeft.vue';\nimport FrameBottom from '../../icons/FrameBottom.vue';\nimport FrameLeftBottom from '../../icons/FrameLeftBottom.vue';\nimport AesButton from '../../components/AesButton.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport { computed, ref } from 'vue';\nimport AesDataMapping from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport { AestheticMappingCategorical, createDefaultMapping } from '../../dataBindAes';\nimport { LabelsRotation } from '../../types';\nimport { getDiscreteLabelsRotation } from '../../utils';\n\nconst store = useStore();\nconst settings = store.value.reactive.axesSettings;\nconst blockSettings = {\n height: 40,\n horizontalPadding: 12,\n defaultState: 'open' as 'open' | 'close'\n};\n\nconst OPTIONS_TITLE_ALIGN = [\n {value: 'left', icon: AlignLeft},\n {value: 'center', icon: AlignCenter},\n {value: 'right', icon: AlignRight},\n]\n// const OPTIONS_FACET_FRAME = [\n// {value: 'empty', icon: FrameEmpty},\n// {value: 'full', icon: FrameFull},\n// ]\nconst OPTIONS_LABELS_ROTATION = [\n { value: 'center', icon: Rotation0 },\n { value: '45deg', icon: Rotation45 },\n { value: '90deg', icon: Rotation90 }\n];\nconst OPTIONS_AXIS_LABEL_MODE = [\n { value: 'auto', text: 'Auto' },\n { value: 'custom', text: 'Custom' },\n { value: 'hidden', text: 'Hide' }\n];\nconst OPTIONS_SCALE = [\n { value: 'linear', text: 'Linear' },\n { value: 'log', text: 'Log' }\n];\nconst OPTIONS_CHART_FRAME = [\n { value: 'empty', icon: FrameEmpty },\n { value: 'left', icon: FrameLeft },\n { value: 'bottom', icon: FrameBottom },\n { value: 'left-bottom', icon: FrameLeftBottom },\n { value: 'full', icon: FrameFull }\n];\n\nconst inputGuide = computed(() => store.value.inputGuide.value)\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value)\n\nconst reorderPrimaryOpen = ref(false);\nconst reorderSecondaryOpen = ref(false);\n\nconst primaryGrouping = computed(() => store.value.reactive.optionsState.components.primaryGrouping?.selectorStates[0]?.selectedSource);\nconst secondaryGrouping = computed(() => store.value.reactive.optionsState.components.secondaryGrouping?.selectorStates[0]?.selectedSource);\n\nconst primaryGroups = computed(() => store.value.commonHelpersData.primaryGroups.value)\nconst secondaryGroups = computed(() => store.value.commonHelpersData.secondaryGroups.value)\n\nconst usedAesInMapping = computed(() => store.value.commonHelpersData.usedAesInMapping.value);\n\nconst mappingPrimary = ref(store.value.reactive.dataBindAes[primaryGrouping.value] as AestheticMappingCategorical ?? createDefaultMapping(primaryGroups.value));\nconst mappingSecondary = ref(store.value.reactive.dataBindAes[secondaryGrouping.value] as AestheticMappingCategorical ?? createDefaultMapping(secondaryGroups.value));\n\nconst primaryInfo = computed(() => {\n if (primaryGrouping.value) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(primaryGrouping.value) ?? null;\n const valueLabels = labelsInfo.value[primaryGrouping.value]?.labels ?? null;\n return {\n selectedSourceInfo,\n labels: primaryGroups.value.reduce((res: Record<string, string>, v) => {\n res[v] = valueLabels?.[v] ?? String(v);\n return res;\n }, {})\n };\n }\n});\nconst secondaryInfo = computed(() => {\n if (secondaryGrouping.value) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(secondaryGrouping.value) ?? null;\n const valueLabels = labelsInfo.value[secondaryGrouping.value]?.labels ?? null;\n return {\n selectedSourceInfo,\n labels: secondaryGroups.value.reduce((res: Record<string, string>, v) => {\n res[v] = valueLabels?.[v] ?? String(v);\n return res;\n }, {})\n };\n }\n});\n\nfunction updateOrder(value: AestheticMappingCategorical, sourceId: string) {\n store.value.reactive.dataBindAes[sourceId] = value;\n}\n\nconst OPTIONS_FACET_SHARED = [\n { text: 'X', value: 'x' },\n { text: 'Y', value: 'y' },\n { text: 'XY', value: 'xy' },\n { text: 'None', value: 'none' }\n];\n\nconst primaryOptions = computed(() => labelsInfo.value[primaryGrouping.value])\nconst xLabelsRotation = computed({\n get(){\n return getDiscreteLabelsRotation(settings.axisX.labelsRotation, primaryOptions.value?.options)\n },\n set(value:LabelsRotation) {\n settings.axisX.labelsRotation = value;\n }\n})\n</script>\n\n<template>\n <div class=\"axes-form\" @click=\"(e) => e.stopPropagation()\">\n <h3 class=\"axes-title\">\n Axes\n </h3>\n <div class=\"axes-settings-list\">\n <!-- Chart title -->\n <collapsable-block title=\"Title\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n v-model=\"settings.title.mode\"\n />\n </div>\n <div class=\"axes-settings-input\" v-if=\"settings.title.mode === 'custom'\">\n <pl-text-field\n label=\"Chart title\"\n placeholder=\"Chart title\"\n v-model=\"settings.title.value\"\n />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Alignment</span>\n <btn-icon-group :options=\"OPTIONS_TITLE_ALIGN\" v-model=\"settings.title.position\"/>\n </div>\n<!-- <div class=\"axes-settings-options-row\">-->\n<!-- <span>Facet frame style</span>-->\n<!-- <btn-icon-group :options=\"OPTIONS_FACET_FRAME\" v-model=\"settings.title.facetTitleFrame\"/>-->\n<!-- </div>-->\n </collapsable-block>\n <!-- X axis settings-->\n <collapsable-block title=\"X-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row\" v-if=\"primaryGroups.length > 1\">\n <span>Primary groups order: </span>\n <aes-button :data=\"{type: 'data', value: null}\" @click=\"reorderPrimaryOpen = true;\" />\n <template v-if=\"reorderPrimaryOpen && primaryInfo\">\n <form-wrapper\n title=\"Reorder primary groups\"\n back-title=\"Axes Settings\"\n @form:close=\"reorderPrimaryOpen = false\"\n >\n <aes-data-mapping\n :column-value-labels=\"primaryInfo.labels\"\n :data-column-label=\"primaryInfo.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[primaryGrouping]\"\n allow-reordering\n allow-hiding\n :allow-null-option=\"settings.axisX.allowNullPrimaryGroups\"\n v-model=\"mappingPrimary\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => updateOrder(value, primaryGrouping)\"\n />\n </form-wrapper>\n </template>\n </div>\n <div class=\"axes-settings-options-row\" v-if=\"primaryGroups.length > 1\">\n <span>Allow null primary group</span>\n <pl-toggle-switch v-model=\"settings.axisX.allowNullPrimaryGroups\" />\n </div>\n <div class=\"axes-settings-options-row\" v-if=\"secondaryGroups.length > 1\">\n <span>Secondary groups order: </span>\n <aes-button :data=\"{type: 'data', value: null}\" @click=\"reorderSecondaryOpen = true;\" />\n <template v-if=\"reorderSecondaryOpen && secondaryInfo\">\n <form-wrapper\n title=\"Reorder secondary groups\"\n back-title=\"Axes Settings\"\n @form:close=\"reorderSecondaryOpen = false\"\n >\n <aes-data-mapping\n :column-value-labels=\"secondaryInfo.labels\"\n :data-column-label=\"secondaryInfo.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[secondaryGrouping]\"\n allow-reordering\n allow-hiding\n :allow-null-option=\"settings.axisX.allowNullSecondaryGroups\"\n v-model=\"mappingSecondary\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => updateOrder(value, secondaryGrouping)\"\n />\n </form-wrapper>\n </template>\n </div>\n <div class=\"axes-settings-options-row\" v-if=\"secondaryGroups.length > 1\">\n <span>Allow null secondary group</span>\n <pl-toggle-switch v-model=\"settings.axisX.allowNullSecondaryGroups\" />\n </div>\n <div class=\"axes-settings-options-row\" v-if=\"store.reactive.chartType === 'discrete'\">\n <span>Labels rotation</span>\n <btn-icon-group :options=\"OPTIONS_LABELS_ROTATION\" v-model=\"xLabelsRotation\" />\n </div>\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n v-model=\"settings.axisX.titleMode\"\n />\n </div>\n <div v-if=\"settings.axisX.titleMode === 'custom'\">\n <pl-text-field\n label=\"Text\"\n placeholder=\"Type\"\n v-model=\"settings.axisX.customTitle\"\n />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Gridlines</span>\n <pl-toggle-switch v-model=\"settings.axisX.gridlines\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Lines between categories</span>\n <pl-toggle-switch v-model=\"settings.axisX.linesBetweenCategories\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Ticks</span>\n <pl-toggle-switch v-model=\"settings.axisX.ticks\" />\n </div>\n </collapsable-block>\n <!-- Y axis settings-->\n <collapsable-block title=\"Y-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n v-model=\"settings.axisY.titleMode\"\n />\n </div>\n <div v-if=\"settings.axisY.titleMode === 'custom'\">\n <pl-text-field\n label=\"Text\"\n placeholder=\"Type\"\n v-model=\"settings.axisY.customTitle\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Scale\"\n :options=\"OPTIONS_SCALE\"\n v-model=\"settings.axisY.scale\"\n />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Gridlines</span>\n <pl-toggle-switch v-model=\"settings.axisY.gridlines\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Ticks</span>\n <pl-toggle-switch v-model=\"settings.axisY.ticks\" />\n </div>\n </collapsable-block>\n <!-- Facet settings-->\n <div class=\"other\">\n <div class=\"axes-settings-options-row\">\n <span>Frame</span>\n <btn-icon-group :options=\"OPTIONS_CHART_FRAME\" v-model=\"settings.other.frame\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Reverse axes</span>\n <pl-toggle-switch v-model=\"settings.other.reverse\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <Slider\n :style=\"{width: '100%'}\"\n label=\"Facet column count\"\n :min=\"1\"\n :max=\"6\"\n :step=\"1\"\n :breakpoints=\"true\"\n mode=\"input\"\n v-model=\"settings.other.facetColumns\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Facet shared by\"\n :options=\"OPTIONS_FACET_SHARED\"\n v-model=\"settings.other.facetSharedBy\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["store","useStore","settings","blockSettings","OPTIONS_TITLE_ALIGN","AlignLeft","AlignCenter","AlignRight","OPTIONS_LABELS_ROTATION","Rotation0","Rotation45","Rotation90","OPTIONS_AXIS_LABEL_MODE","OPTIONS_SCALE","OPTIONS_CHART_FRAME","FrameEmpty","FrameLeft","FrameBottom","FrameLeftBottom","FrameFull","inputGuide","computed","labelsInfo","reorderPrimaryOpen","ref","reorderSecondaryOpen","primaryGrouping","_b","_a","secondaryGrouping","primaryGroups","secondaryGroups","usedAesInMapping","mappingPrimary","createDefaultMapping","mappingSecondary","primaryInfo","selectedSourceInfo","valueLabels","res","v","secondaryInfo","updateOrder","value","sourceId","OPTIONS_FACET_SHARED","primaryOptions","xLabelsRotation","getDiscreteLabelsRotation"],"mappings":"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"}
1
+ {"version":3,"file":"DiscreteAxesSettingsForm.vue.js","sources":["../../../../src/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { Slider, PlToggleSwitch } from '@platforma-sdk/ui-vue';\nimport { useStore } from '../../store';\nimport CollapsableBlock from '../../components/CollapsableBlock.vue';\nimport Right from '../../icons/Right.vue';\nimport Down from '../../icons/Down.vue';\nimport { PlTextField, PlBtnGroup } from '@platforma-sdk/ui-vue';\nimport BtnIconGroup from '../../components/BtnIconGroup.vue';\nimport AlignLeft from '../../icons/AlignLeft.vue';\nimport AlignCenter from '../../icons/AlignCenter.vue';\nimport AlignRight from '../../icons/AlignRight.vue';\nimport FrameFull from '../../icons/FrameFull.vue';\nimport FrameEmpty from '../../icons/FrameEmpty.vue';\nimport Rotation0 from '../../icons/Rotation0.vue';\nimport Rotation45 from '../../icons/Rotation45.vue';\nimport Rotation90 from '../../icons/Rotation90.vue';\nimport FrameLeft from '../../icons/FrameLeft.vue';\nimport FrameBottom from '../../icons/FrameBottom.vue';\nimport FrameLeftBottom from '../../icons/FrameLeftBottom.vue';\nimport AesButton from '../../components/AesButton.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport { computed, onMounted, ref } from 'vue';\nimport AesDataMapping from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport { AestheticMappingCategorical, createDefaultMapping } from '../../dataBindAes';\nimport { LabelsRotation } from '../../types';\nimport { getDiscreteLabelsRotation } from '../../utils';\nimport { watch } from 'vue';\n\nconst store = useStore();\nconst settings = store.value.reactive.axesSettings;\nconst blockSettings = {\n height: 40,\n horizontalPadding: 12,\n defaultState: 'open' as 'open' | 'close'\n};\n\nconst OPTIONS_TITLE_ALIGN = [\n {value: 'left', icon: AlignLeft},\n {value: 'center', icon: AlignCenter},\n {value: 'right', icon: AlignRight},\n]\n// const OPTIONS_FACET_FRAME = [\n// {value: 'empty', icon: FrameEmpty},\n// {value: 'full', icon: FrameFull},\n// ]\nconst OPTIONS_LABELS_ROTATION = [\n { value: 'center', icon: Rotation0 },\n { value: '45deg', icon: Rotation45 },\n { value: '90deg', icon: Rotation90 }\n];\nconst OPTIONS_AXIS_LABEL_MODE = [\n { value: 'auto', text: 'Auto' },\n { value: 'custom', text: 'Custom' },\n { value: 'hidden', text: 'Hide' }\n];\nconst OPTIONS_SCALE = [\n { value: 'linear', text: 'Linear' },\n { value: 'log', text: 'Log' }\n];\nconst OPTIONS_CHART_FRAME = [\n { value: 'empty', icon: FrameEmpty },\n { value: 'left', icon: FrameLeft },\n { value: 'bottom', icon: FrameBottom },\n { value: 'left-bottom', icon: FrameLeftBottom },\n { value: 'full', icon: FrameFull }\n];\n\nconst inputGuide = computed(() => store.value.inputGuide.value)\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value)\n\nconst reorderPrimaryOpen = ref(false);\nconst reorderSecondaryOpen = ref(false);\n\nconst defaultReorderPrimaryOpen = computed(() => store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen);\nconst defaultReorderSecondaryOpen = computed(() => store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen);\nonMounted(() => {\n if (defaultReorderPrimaryOpen.value) {\n reorderPrimaryOpen.value = true;\n }\n if (defaultReorderSecondaryOpen.value) {\n reorderSecondaryOpen.value = true;\n }\n})\nwatch(() => defaultReorderPrimaryOpen.value, (v) => {\n if (v) {\n reorderSecondaryOpen.value = false;\n reorderPrimaryOpen.value = true;\n }\n});\nwatch(() => defaultReorderSecondaryOpen.value, (v) => {\n if (v) {\n reorderPrimaryOpen.value = false;\n reorderSecondaryOpen.value = true;\n }\n});\n\nconst primaryGrouping = computed(() => store.value.reactive.optionsState.components.primaryGrouping?.selectorStates[0]?.selectedSource);\nconst secondaryGrouping = computed(() => store.value.reactive.optionsState.components.secondaryGrouping?.selectorStates[0]?.selectedSource);\n\nconst primaryGroups = computed(() => store.value.commonHelpersData.primaryGroups.value)\nconst secondaryGroups = computed(() => store.value.commonHelpersData.secondaryGroups.value)\n\nconst usedAesInMapping = computed(() => store.value.commonHelpersData.usedAesInMapping.value);\n\nconst mappingPrimary = ref(store.value.reactive.dataBindAes[primaryGrouping.value] as AestheticMappingCategorical ?? createDefaultMapping(primaryGroups.value));\nconst mappingSecondary = ref(store.value.reactive.dataBindAes[secondaryGrouping.value] as AestheticMappingCategorical ?? createDefaultMapping(secondaryGroups.value));\n\nconst primaryInfo = computed(() => {\n if (primaryGrouping.value) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(primaryGrouping.value) ?? null;\n const valueLabels = labelsInfo.value[primaryGrouping.value]?.labels ?? null;\n return {\n selectedSourceInfo,\n labels: primaryGroups.value.reduce((res: Record<string, string>, v) => {\n res[v] = valueLabels?.[v] ?? String(v);\n return res;\n }, {})\n };\n }\n});\nconst secondaryInfo = computed(() => {\n if (secondaryGrouping.value) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(secondaryGrouping.value) ?? null;\n const valueLabels = labelsInfo.value[secondaryGrouping.value]?.labels ?? null;\n return {\n selectedSourceInfo,\n labels: secondaryGroups.value.reduce((res: Record<string, string>, v) => {\n res[v] = valueLabels?.[v] ?? String(v);\n return res;\n }, {})\n };\n }\n});\n\nfunction updateOrder(value: AestheticMappingCategorical, sourceId: string) {\n store.value.reactive.dataBindAes[sourceId] = value;\n}\n\nconst OPTIONS_FACET_SHARED = [\n { text: 'X', value: 'x' },\n { text: 'Y', value: 'y' },\n { text: 'XY', value: 'xy' },\n { text: 'None', value: 'none' }\n];\n\nconst primaryOptions = computed(() => labelsInfo.value[primaryGrouping.value])\nconst xLabelsRotation = computed({\n get(){\n return getDiscreteLabelsRotation(settings.axisX.labelsRotation, primaryOptions.value?.options)\n },\n set(value:LabelsRotation) {\n settings.axisX.labelsRotation = value;\n }\n})\n</script>\n\n<template>\n <div class=\"axes-form\" @click=\"(e) => e.stopPropagation()\">\n <h3 class=\"axes-title\">\n Axes\n </h3>\n <div class=\"axes-settings-list\">\n <!-- Chart title -->\n <collapsable-block title=\"Title\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n v-model=\"settings.title.mode\"\n />\n </div>\n <div class=\"axes-settings-input\" v-if=\"settings.title.mode === 'custom'\">\n <pl-text-field\n label=\"Chart title\"\n placeholder=\"Chart title\"\n v-model=\"settings.title.value\"\n />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Alignment</span>\n <btn-icon-group :options=\"OPTIONS_TITLE_ALIGN\" v-model=\"settings.title.position\"/>\n </div>\n<!-- <div class=\"axes-settings-options-row\">-->\n<!-- <span>Facet frame style</span>-->\n<!-- <btn-icon-group :options=\"OPTIONS_FACET_FRAME\" v-model=\"settings.title.facetTitleFrame\"/>-->\n<!-- </div>-->\n </collapsable-block>\n <!-- X axis settings-->\n <collapsable-block title=\"X-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row\" v-if=\"primaryGroups.length > 1\">\n <span>Primary groups order: </span>\n <aes-button :data=\"{type: 'data', value: null}\" @click=\"reorderPrimaryOpen = true\" />\n <template v-if=\"reorderPrimaryOpen && primaryInfo\">\n <form-wrapper\n title=\"Reorder primary groups\"\n back-title=\"Axes Settings\"\n @form:open=\"store.reactive.tabDefaultState['axes'].reorderPrimaryOpen = false\"\n @form:close=\"reorderPrimaryOpen = false\"\n >\n <aes-data-mapping\n :column-value-labels=\"primaryInfo.labels\"\n :data-column-label=\"primaryInfo.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[primaryGrouping]\"\n allow-reordering\n allow-hiding\n :allow-null-option=\"settings.axisX.allowNullPrimaryGroups\"\n v-model=\"mappingPrimary\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => updateOrder(value, primaryGrouping)\"\n />\n </form-wrapper>\n </template>\n </div>\n <div class=\"axes-settings-options-row\" v-if=\"primaryGroups.length > 1\">\n <span>Allow null primary group</span>\n <pl-toggle-switch v-model=\"settings.axisX.allowNullPrimaryGroups\" />\n </div>\n <div class=\"axes-settings-options-row\" v-if=\"secondaryGroups.length > 1\">\n <span>Secondary groups order: </span>\n <aes-button :data=\"{type: 'data', value: null}\" @click=\"reorderSecondaryOpen = true\" />\n <template v-if=\"reorderSecondaryOpen && secondaryInfo\">\n <form-wrapper\n title=\"Reorder secondary groups\"\n back-title=\"Axes Settings\"\n @form:open=\"store.reactive.tabDefaultState['axes'].reorderSecondaryOpen = false\"\n @form:close=\"reorderSecondaryOpen = false\"\n >\n <aes-data-mapping\n :column-value-labels=\"secondaryInfo.labels\"\n :data-column-label=\"secondaryInfo.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[secondaryGrouping]\"\n allow-reordering\n allow-hiding\n :allow-null-option=\"settings.axisX.allowNullSecondaryGroups\"\n v-model=\"mappingSecondary\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => updateOrder(value, secondaryGrouping)\"\n />\n </form-wrapper>\n </template>\n </div>\n <div class=\"axes-settings-options-row\" v-if=\"secondaryGroups.length > 1\">\n <span>Allow null secondary group</span>\n <pl-toggle-switch v-model=\"settings.axisX.allowNullSecondaryGroups\" />\n </div>\n <div class=\"axes-settings-options-row\" v-if=\"store.reactive.chartType === 'discrete'\">\n <span>Labels rotation</span>\n <btn-icon-group :options=\"OPTIONS_LABELS_ROTATION\" v-model=\"xLabelsRotation\" />\n </div>\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n v-model=\"settings.axisX.titleMode\"\n />\n </div>\n <div v-if=\"settings.axisX.titleMode === 'custom'\">\n <pl-text-field\n label=\"Text\"\n placeholder=\"Type\"\n v-model=\"settings.axisX.customTitle\"\n />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Gridlines</span>\n <pl-toggle-switch v-model=\"settings.axisX.gridlines\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Lines between categories</span>\n <pl-toggle-switch v-model=\"settings.axisX.linesBetweenCategories\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Ticks</span>\n <pl-toggle-switch v-model=\"settings.axisX.ticks\" />\n </div>\n </collapsable-block>\n <!-- Y axis settings-->\n <collapsable-block title=\"Y-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n v-model=\"settings.axisY.titleMode\"\n />\n </div>\n <div v-if=\"settings.axisY.titleMode === 'custom'\">\n <pl-text-field\n label=\"Text\"\n placeholder=\"Type\"\n v-model=\"settings.axisY.customTitle\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Scale\"\n :options=\"OPTIONS_SCALE\"\n v-model=\"settings.axisY.scale\"\n />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Gridlines</span>\n <pl-toggle-switch v-model=\"settings.axisY.gridlines\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Ticks</span>\n <pl-toggle-switch v-model=\"settings.axisY.ticks\" />\n </div>\n </collapsable-block>\n <!-- Facet settings-->\n <div class=\"other\">\n <div class=\"axes-settings-options-row\">\n <span>Frame</span>\n <btn-icon-group :options=\"OPTIONS_CHART_FRAME\" v-model=\"settings.other.frame\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Reverse axes</span>\n <pl-toggle-switch v-model=\"settings.other.reverse\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <Slider\n :style=\"{width: '100%'}\"\n label=\"Facet column count\"\n :min=\"1\"\n :max=\"6\"\n :step=\"1\"\n :breakpoints=\"true\"\n mode=\"input\"\n v-model=\"settings.other.facetColumns\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <pl-btn-group\n label=\"Facet shared by\"\n :options=\"OPTIONS_FACET_SHARED\"\n v-model=\"settings.other.facetSharedBy\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["store","useStore","settings","blockSettings","OPTIONS_TITLE_ALIGN","AlignLeft","AlignCenter","AlignRight","OPTIONS_LABELS_ROTATION","Rotation0","Rotation45","Rotation90","OPTIONS_AXIS_LABEL_MODE","OPTIONS_SCALE","OPTIONS_CHART_FRAME","FrameEmpty","FrameLeft","FrameBottom","FrameLeftBottom","FrameFull","inputGuide","computed","labelsInfo","reorderPrimaryOpen","ref","reorderSecondaryOpen","defaultReorderPrimaryOpen","defaultReorderSecondaryOpen","onMounted","watch","v","primaryGrouping","_b","_a","secondaryGrouping","primaryGroups","secondaryGroups","usedAesInMapping","mappingPrimary","createDefaultMapping","mappingSecondary","primaryInfo","selectedSourceInfo","valueLabels","res","secondaryInfo","updateOrder","value","sourceId","OPTIONS_FACET_SHARED","primaryOptions","xLabelsRotation","getDiscreteLabelsRotation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/GraphMaker/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/GraphMaker/store.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { deepClone as H } from "../node_modules/@milaboratories/helpers/dist/objects.js";
2
- import { getControllerByType as A, getInitialStateByType as j } from "../node_modules/@milaboratories/pf-plots/dist/index.js";
3
- import { ref as p, computed as D, toRaw as w, watch as T, provide as k, reactive as M, inject as z } from "vue";
2
+ import { getControllerByType as B, getInitialStateByType as j } from "../node_modules/@milaboratories/pf-plots/dist/index.js";
3
+ import { ref as d, computed as b, toRaw as A, watch as D, provide as k, reactive as K, inject as z } from "vue";
4
4
  import { getInitialAxesSettings as J, getInitialLayersSettings as O, getInitialStatisticsState as P, getInitialTemplate as V } from "./constantsCommon.js";
5
5
  import { updateDataBindAes as W } from "./dataBindAes.js";
6
6
  import { notEmpty as q } from "./helpers.js";
7
- import { storeKey as K } from "./keys.js";
7
+ import { storeKey as M } from "./keys.js";
8
8
  import "./constantsAesthetic.js";
9
9
  import { loadDataForPlot as Q } from "./utils/createChartSettingsForRender/composeChartSettings.js";
10
10
  import { calculateDiscreteGroups as x } from "./utils/calculateDiscreteGroups.js";
@@ -13,25 +13,26 @@ import { loadDefaultSources as E } from "./utils/loadDefaultSources.js";
13
13
  import { copyJSON as G } from "./utils/copyJSON.js";
14
14
  import { getUsedAesInMapping as Y } from "./utils/getUsedAesInMapping.js";
15
15
  import { getUniqueValuesFromReadyChartData as Z, loadFilterLabelsForTitle as _ } from "./utils/loadUniqueValuesToSave.js";
16
- function $(t, e) {
17
- const c = G(j(t));
16
+ import { tabKeys as $ } from "./forms/index.js";
17
+ function R(t, e) {
18
+ const r = G(j(t));
18
19
  if ((e == null ? void 0 : e.type) !== t)
19
- return c;
20
- const d = G(e);
20
+ return r;
21
+ const c = G(e);
21
22
  return {
23
+ ...r,
22
24
  ...c,
23
- ...d,
24
25
  components: {
25
- ...c.components,
26
- ...d.components
26
+ ...r.components,
27
+ ...c.components
27
28
  }
28
29
  };
29
30
  }
30
- function R(t, e) {
31
- return M({
31
+ function tt(t, e) {
32
+ return K({
32
33
  chartType: e,
33
34
  // from pf-plots
34
- optionsState: $(e, t.optionsState),
35
+ optionsState: R(e, t.optionsState),
35
36
  // contains user selected inputs
36
37
  dataStateKey: H(t.dataStateKey),
37
38
  //local form states, updates directly in forms
@@ -44,15 +45,16 @@ function R(t, e) {
44
45
  chartScale: t.zoomState ?? 100,
45
46
  lassoControlsState: null,
46
47
  currentTab: null,
48
+ tabDefaultState: $().reduce((r, c) => (r[c] = {}, r), {}),
47
49
  dendroInfoByClick: null,
48
50
  dendroSelectedNodeId: null,
49
51
  showTooltipHint: !1
50
52
  });
51
53
  }
52
- function tt(t, e, c, d, f, v, m, a) {
54
+ function et(t, e, r, c, v, g, m, a) {
53
55
  return {
54
56
  reactive: t,
55
- loading: M({
57
+ loading: K({
56
58
  initialInputGuide: !0,
57
59
  initialCharts: !0,
58
60
  initialDefaults: !0,
@@ -61,70 +63,72 @@ function tt(t, e, c, d, f, v, m, a) {
61
63
  dendroTableData: !1
62
64
  }),
63
65
  commonHelpersData: {
64
- primaryGroups: D(
66
+ primaryGroups: b(
65
67
  () => x(
66
68
  t.optionsState,
67
- v.value,
69
+ g.value,
68
70
  "primaryGrouping"
69
71
  )
70
72
  ),
71
- secondaryGroups: D(
73
+ secondaryGroups: b(
72
74
  () => x(
73
75
  t.optionsState,
74
- v.value,
76
+ g.value,
75
77
  "secondaryGrouping"
76
78
  )
77
79
  ),
78
- usedAesInMapping: D(
80
+ usedAesInMapping: b(
79
81
  () => Y(
80
82
  t.chartType,
81
83
  t.template,
82
84
  t.layersSettings,
83
85
  t.statisticsSettings,
84
86
  t.optionsState,
85
- c.value
87
+ r.value
86
88
  )
87
89
  ),
88
- dendroTableData: f
90
+ dendroTableData: v
89
91
  },
90
- controller: A(t.chartType),
92
+ controller: B(t.chartType),
91
93
  columnsDataStore: e,
92
- inputGuide: c,
93
- chartData: d,
94
- uniqueValuesData: v,
94
+ inputGuide: r,
95
+ chartData: c,
96
+ uniqueValuesData: g,
95
97
  filterLabelsInfo: m,
96
98
  readonlyInputs: a
97
99
  };
98
100
  }
99
- function gt(t, e, c, d, f, v, m) {
100
- const a = R(t, c), g = A(a.chartType), y = p(A(a.chartType).getEmptyInputGuide(a.optionsState)), B = p(null), h = p({}), F = p({}), N = p(null), o = D(() => tt(a, w(e.value), y, B, N, h, F, m));
101
- T([
101
+ function St(t, e, r, c, v, g, m) {
102
+ const a = tt(t, r), y = B(a.chartType), T = d(B(a.chartType).getEmptyInputGuide(a.optionsState)), F = d(null), S = d({}), I = d({}), N = d(null), o = b(() => et(a, A(e.value), T, F, N, S, I, m));
103
+ D(() => e.value, () => {
104
+ I.value = {}, S.value = {};
105
+ }), D([
102
106
  () => e.value,
103
- () => d.value
107
+ () => c.value
104
108
  ], async ([l, i]) => {
105
109
  if (!i || !l || !o.value.loading.initialDefaults)
106
110
  return;
107
111
  o.value.loading.initialDefaults = !1, o.value.loading.initialInputGuide = !0;
108
- const n = G(a.optionsState.components), r = i.filter((u) => {
109
- var s;
110
- return ((s = a.optionsState.components[u.inputName]) == null ? void 0 : s.selectorStates.length) === 0 || (m == null ? void 0 : m.includes(u.inputName));
112
+ const n = G(a.optionsState.components), u = i.filter((s) => {
113
+ var f;
114
+ return ((f = a.optionsState.components[s.inputName]) == null ? void 0 : f.selectorStates.length) === 0 || (m == null ? void 0 : m.includes(s.inputName));
111
115
  });
112
- if (r.length === 0)
116
+ if (u.length === 0)
113
117
  return;
114
- r.forEach((u) => {
115
- n[u.inputName].selectorStates = [];
118
+ u.forEach((s) => {
119
+ n[s.inputName].selectorStates = [];
116
120
  });
117
- const S = await E(l, r);
121
+ const h = await E(l, u);
118
122
  for (const {
119
- inputName: u,
120
- selectedSource: s,
121
- filterType: C,
123
+ inputName: s,
124
+ selectedSource: p,
125
+ filterType: f,
122
126
  selectedFilterValues: L,
123
127
  selectedFilterRange: U
124
- } of S)
125
- n[u].selectorStates.push({
126
- selectedSource: s,
127
- type: C,
128
+ } of h)
129
+ n[s].selectorStates.push({
130
+ selectedSource: p,
131
+ type: f,
128
132
  selectedFilterValues: L,
129
133
  selectedFilterRange: U
130
134
  });
@@ -133,66 +137,66 @@ function gt(t, e, c, d, f, v, m) {
133
137
  ...n
134
138
  };
135
139
  }, { immediate: !0 });
136
- const b = p(0);
137
- T([
140
+ const C = d(0);
141
+ D([
138
142
  () => a.optionsState,
139
143
  () => e.value,
140
- () => f.value
144
+ () => v.value
141
145
  ], async ([l, i, n]) => {
142
- b.value++;
143
- const r = b.value;
146
+ C.value++;
147
+ const u = C.value;
144
148
  o.value.loading.inputGuide = !0;
145
- const S = i && n ? (await E(i, n, !1)).map((s) => s.selectedSource) : [], u = i ? await g.calculateOptions(w(i), l, S, v) : g.getEmptyInputGuide(l);
146
- if (r === b.value && (y.value = u, o.value.loading.inputGuide = !1, o.value.loading.initialInputGuide)) {
149
+ const h = i && n ? (await E(i, n, !1)).map((p) => p.selectedSource) : [], s = i ? await y.calculateOptions(A(i), l, h, g) : y.getEmptyInputGuide(l);
150
+ if (u === C.value && (T.value = s, o.value.loading.inputGuide = !1, o.value.loading.initialInputGuide)) {
147
151
  o.value.loading.initialInputGuide = !1;
148
- const s = t.currentTab === void 0 ? "dataMapping" : t.currentTab;
149
- o.value.reactive.currentTab = o.value.reactive.currentTab ?? s;
152
+ const p = t.currentTab === void 0 ? "dataMapping" : t.currentTab;
153
+ o.value.reactive.currentTab = o.value.reactive.currentTab ?? p;
150
154
  }
151
155
  }, { immediate: !0, deep: !0 });
152
- const I = p(0);
153
- if (T(() => y.value, async (l) => {
154
- I.value++;
155
- const i = I.value;
156
+ const w = d(0);
157
+ if (D(() => T.value, async (l) => {
158
+ w.value++;
159
+ const i = w.value;
156
160
  o.value.loading.chartData = !0;
157
- const n = w(e.value), r = await Q(l, a, n, f.value);
158
- r && n && (h.value = await Z(
159
- r,
161
+ const n = A(e.value), u = await Q(l, a, n, v.value);
162
+ u && n && (S.value = await Z(
163
+ u,
160
164
  l,
161
- g,
165
+ y,
162
166
  n,
163
- h.value
164
- ), W(a.optionsState, a.dataBindAes, h.value)), F.value = n ? await _(
167
+ S.value
168
+ ), W(a.optionsState, a.dataBindAes, S.value)), I.value = n ? await _(
165
169
  a.optionsState.components,
166
170
  l,
167
- g,
171
+ y,
168
172
  n
169
- ) : {}, i === I.value && (B.value = r, l.ready && (o.value.loading.initialCharts = !1), o.value.loading.chartData = !1);
173
+ ) : {}, i === w.value && (F.value = u, l.ready && (o.value.loading.initialCharts = !1), o.value.loading.chartData = !1);
170
174
  }, { immediate: !0, deep: !0 }), a.chartType === "dendro") {
171
- const l = p(0);
172
- T([
175
+ const l = d(0);
176
+ D([
173
177
  () => a.optionsState,
174
178
  () => e.value,
175
- () => y.value.readyData,
176
- () => f.value
177
- ], async ([i, n, r, S]) => {
178
- if (r && n) {
179
+ () => T.value.readyData,
180
+ () => v.value
181
+ ], async ([i, n, u, h]) => {
182
+ if (u && n) {
179
183
  l.value++;
180
- const u = l.value;
184
+ const s = l.value;
181
185
  o.value.loading.dendroTableData = !0;
182
- const s = await X(i, n, S), C = await g.createTableData(n, s);
183
- l.value === u && (N.value = C), o.value.loading.dendroTableData = !1;
186
+ const p = await X(i, n, h), f = await y.createTableData(n, p);
187
+ l.value === s && (N.value = f), o.value.loading.dendroTableData = !1;
184
188
  }
185
189
  }, { immediate: !0 });
186
190
  }
187
- return k(K, o), o;
191
+ return k(M, o), o;
188
192
  }
189
- function St() {
190
- return q(z(K), "Empty store");
193
+ function ht() {
194
+ return q(z(M), "Empty store");
191
195
  }
192
196
  export {
193
- R as createReactiveState,
194
- tt as factoryStore,
195
- gt as provideStore,
196
- St as useStore
197
+ tt as createReactiveState,
198
+ et as factoryStore,
199
+ St as provideStore,
200
+ ht as useStore
197
201
  };
198
202
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sources":["../../src/GraphMaker/store.ts"],"sourcesContent":["import { deepClone } from '@milaboratories/helpers';\nimport {\n ChartType,\n DemoDataStore,\n DendroStateController,\n DendroUIState,\n getControllerByType,\n getInitialStateByType,\n InputGuide,\n InputNamesByChartType,\n InputState,\n PlotDataAndSettings\n} from '@milaboratories/pf-plots';\nimport { PColumnSpec } from '@platforma-sdk/model';\nimport { ListOption } from '@platforma-sdk/ui-vue';\nimport { computed, ComputedRef, inject, provide, reactive, Reactive, Ref, ref, toRaw, watch } from 'vue';\nimport {\n AesType,\n getInitialAxesSettings,\n getInitialLayersSettings,\n getInitialStatisticsState,\n getInitialTemplate\n} from './constantsCommon';\nimport { updateDataBindAes } from './dataBindAes';\nimport { notEmpty } from './helpers';\nimport { storeKey } from './keys';\nimport {\n DendroNodeInfo,\n GraphMakerProps,\n GraphMakerState,\n ReactiveState, UniqueValuesBySourceMap\n} from './types';\nimport { loadDefaultSources } from './utils';\nimport { addFixedOptionsToState } from './utils/addFixedOptionsToState';\nimport { calculateDiscreteGroups } from './utils/calculateDiscreteGroups';\nimport { copyJSON } from './utils/copyJSON';\nimport { loadDataForPlot } from './utils/createChartSettingsForRender/composeChartSettings';\nimport { getUsedAesInMapping } from './utils/getUsedAesInMapping';\nimport {\n getUniqueValuesFromReadyChartData,\n loadFilterLabelsForTitle\n} from './utils/loadUniqueValuesToSave';\n\nfunction getInitialOptionsState(chartType: ChartType, optionsState: InputState | undefined) {\n const defaultState = copyJSON(getInitialStateByType(chartType));\n if (optionsState?.type !== chartType) {\n return defaultState;\n }\n const optionsStateCopy = copyJSON(optionsState);\n\n return {\n ...defaultState,\n ...optionsStateCopy,\n components: {\n ...defaultState.components,\n ...optionsStateCopy.components\n }\n };\n}\n\nexport function createReactiveState(\n initialData: GraphMakerState,\n chartType: ChartType\n): Reactive<ReactiveState> {\n return reactive({\n chartType: chartType,\n // from pf-plots\n optionsState: getInitialOptionsState(chartType, initialData.optionsState), // contains user selected inputs\n\n dataStateKey: deepClone(initialData.dataStateKey),\n //local form states, updates directly in forms\n template: getInitialTemplate(initialData.template, chartType),\n statisticsSettings: getInitialStatisticsState(chartType, initialData.statisticsSettings),\n layersSettings: getInitialLayersSettings(initialData.layersSettings),\n axesSettings: getInitialAxesSettings(chartType, initialData.axesSettings),\n //common aesthetics data mapped on columns/axes values\n dataBindAes: copyJSON(initialData.dataBindAes ?? {}),\n chartScale: initialData.zoomState ?? 100,\n lassoControlsState: null,\n currentTab: null,\n dendroInfoByClick: null as null | DendroNodeInfo,\n dendroSelectedNodeId: null,\n showTooltipHint: false,\n });\n}\n\nexport interface Store {\n reactive: Reactive<ReactiveState>;\n loading: {\n initialInputGuide: boolean;\n initialCharts: boolean;\n initialDefaults: boolean;\n inputGuide: boolean;\n chartData: boolean;\n dendroTableData: boolean;\n };\n commonHelpersData: {\n primaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n secondaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n usedAesInMapping: ComputedRef<Record<string, Record<AesType, boolean>>>;\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>;\n };\n controller: ReturnType<typeof getControllerByType>;\n columnsDataStore: DemoDataStore | null;\n inputGuide: Ref<InputGuide<InputState>>;\n chartData: Ref<PlotDataAndSettings | null>;\n uniqueValuesData: Ref<UniqueValuesBySourceMap>;\n filterLabelsInfo: Ref<Record<string, ListOption>>;\n readonlyInputs?: InputNamesByChartType[ChartType][];\n}\n\nexport function factoryStore(\n reactiveState: Reactive<ReactiveState>,\n dataStore: DemoDataStore | null,\n inputGuide: Ref<InputGuide<InputState>>,\n chartData: Ref<PlotDataAndSettings | null>,\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>,\n uniqueValuesData: Ref<UniqueValuesBySourceMap>,\n filterLabelsInfo: Ref<Record<string, ListOption>>,\n readonlyInputs?: InputNamesByChartType[ChartType][]\n): Store {\n return {\n reactive: reactiveState,\n loading: reactive({\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n dendroTableData: false\n }),\n commonHelpersData: {\n primaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'primaryGrouping'\n )\n ),\n secondaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'secondaryGrouping'\n )\n ),\n usedAesInMapping: computed<Record<string, Record<AesType, boolean>>>(() =>\n getUsedAesInMapping(\n reactiveState.chartType,\n reactiveState.template,\n reactiveState.layersSettings,\n reactiveState.statisticsSettings,\n reactiveState.optionsState,\n inputGuide.value\n )\n ),\n dendroTableData\n },\n controller: getControllerByType(reactiveState.chartType),\n columnsDataStore: dataStore,\n inputGuide,\n chartData,\n uniqueValuesData,\n filterLabelsInfo,\n readonlyInputs\n };\n}\n\nexport type ComputedStore = ComputedRef<Store>;\n\nexport function provideStore(\n initialState: GraphMakerState,\n dataStoreRef: Ref<DemoDataStore | null>,\n chartType: ChartType,\n defaultOptionsRef: Ref<GraphMakerProps['defaultOptions']>,\n fixedOptionsRef: Ref<GraphMakerProps['fixedOptions']>,\n dataColumnPredicate?: (spec:PColumnSpec) => boolean,\n readonlyInputs?: InputNamesByChartType[ChartType][]\n) {\n const reactiveState = createReactiveState(initialState, chartType);\n const controller = getControllerByType(reactiveState.chartType);\n\n const inputGuide = ref<InputGuide<InputState>>(getControllerByType(reactiveState.chartType).getEmptyInputGuide(reactiveState.optionsState));\n const chartData = ref<PlotDataAndSettings | null>(null);\n\n const uniqueValuesData = ref<UniqueValuesBySourceMap>({});\n const filterLabelsInfo = ref<Record<string, ListOption>>({}); // for auto titles of chart if something selected in filter/tabby\n\n const dendroTableData = ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>(null);\n\n // toRaw removes Vue proxy from dataStore.pframe (PFrame api)\n const store = computed(() => factoryStore(reactiveState, toRaw(dataStoreRef.value), inputGuide, chartData, dendroTableData, uniqueValuesData, filterLabelsInfo, readonlyInputs));\n\n watch([\n () => dataStoreRef.value,\n () => defaultOptionsRef.value\n ], async ([ds, defaultOptions]) => {\n if (!defaultOptions || !ds || !store.value.loading.initialDefaults) {\n return;\n }\n store.value.loading.initialDefaults = false; // to avoid multiple calculations, default settings cannot change except after reset\n store.value.loading.initialInputGuide = true; // to show loader on initial loading; changing of reactiveState.optionsState always triggers inputGuide recalculating, so it will be off after inputGuide\n\n const defaultStateMap = copyJSON(reactiveState.optionsState.components);\n const defaultOptionsWithoutUserChanges = defaultOptions.filter((opt) => {\n return reactiveState.optionsState.components[opt.inputName]?.selectorStates.length === 0 ||\n readonlyInputs?.includes(opt.inputName);\n })\n if (defaultOptionsWithoutUserChanges.length === 0) {\n return;\n }\n defaultOptionsWithoutUserChanges.forEach((opt) => {\n defaultStateMap[opt.inputName].selectorStates = [];\n });\n const loadedDefaultSources = await loadDefaultSources(ds, defaultOptionsWithoutUserChanges);\n for (const {\n inputName,\n selectedSource,\n filterType,\n selectedFilterValues,\n selectedFilterRange\n } of loadedDefaultSources) {\n defaultStateMap[inputName].selectorStates.push({\n selectedSource,\n type: filterType,\n selectedFilterValues,\n selectedFilterRange\n });\n }\n\n reactiveState.optionsState.components = {\n ...reactiveState.optionsState.components,\n ...defaultStateMap\n };\n }, { immediate: true });\n\n // recalculate input guide - options for every data input, consistency info etc\n const inputGuideCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState,\n () => dataStoreRef.value,\n () => fixedOptionsRef.value\n ], async ([optionsState, ds, fixedOptions]) => {\n inputGuideCounter.value++;\n const counter = inputGuideCounter.value;\n store.value.loading.inputGuide = true;\n const ignoredIds = ds && fixedOptions ? (await loadDefaultSources(ds, fixedOptions, false)).map(item => item.selectedSource) : [];\n\n // const start = Date.now();\n const nextInputGuide = ds ? await controller.calculateOptions(toRaw(ds), optionsState, ignoredIds, dataColumnPredicate) : controller.getEmptyInputGuide(optionsState);\n // console.log('input guide', Date.now() - start);\n\n if (counter === inputGuideCounter.value) { // race condition check\n inputGuide.value = nextInputGuide;\n\n store.value.loading.inputGuide = false;\n if (store.value.loading.initialInputGuide) { // open default/saved tab only after inputGuide loading\n store.value.loading.initialInputGuide = false;\n const initialTab = initialState.currentTab === undefined ? 'dataMapping' : initialState.currentTab;\n store.value.reactive.currentTab = store.value.reactive.currentTab ?? initialTab;\n }\n }\n }, { immediate: true, deep: true });\n\n // recalculate data for chart rendering (miplots4)\n const chartDataCounter = ref(0); // to avoid race condition on async calculations\n watch(() => inputGuide.value, async (ig) => {\n chartDataCounter.value++;\n const counter = chartDataCounter.value;\n store.value.loading.chartData = true;\n\n const ds = toRaw(dataStoreRef.value);\n const start = Date.now();\n const nextChartData = await loadDataForPlot(ig, reactiveState, ds, fixedOptionsRef.value);\n\n if (nextChartData && ds) {\n uniqueValuesData.value = await getUniqueValuesFromReadyChartData(\n nextChartData,\n ig,\n controller,\n ds,\n uniqueValuesData.value\n );\n updateDataBindAes(reactiveState.optionsState, reactiveState.dataBindAes, uniqueValuesData.value);\n }\n filterLabelsInfo.value = ds ? await loadFilterLabelsForTitle(\n reactiveState.optionsState.components,\n ig,\n controller,\n ds,\n ) : {};\n // console.log('chart data', Date.now() - start);\n\n if (counter === chartDataCounter.value) { // race condition check\n chartData.value = nextChartData;\n if (ig.ready) {\n store.value.loading.initialCharts = false;\n }\n store.value.loading.chartData = false;\n }\n }, { immediate: true, deep: true });\n\n // watch data for table, only dendro chart; data is also using for popup by tree node click\n if (reactiveState.chartType === 'dendro') {\n const dendroDataCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState as DendroUIState,\n () => dataStoreRef.value,\n () => inputGuide.value.readyData,\n () => fixedOptionsRef.value\n ], async ([optionsState, dataStore, ready, fixed]) => {\n if (ready && dataStore) {\n dendroDataCounter.value++;\n const counter = dendroDataCounter.value;\n store.value.loading.dendroTableData = true;\n const state = await addFixedOptionsToState(optionsState, dataStore, fixed) as DendroUIState;\n const nextDendroTableData = await (controller as unknown as DendroStateController).createTableData(dataStore, state);\n\n if (dendroDataCounter.value === counter) {\n dendroTableData.value = nextDendroTableData;\n }\n store.value.loading.dendroTableData = false;\n }\n }, { immediate: true });\n }\n\n provide(storeKey, store);\n return store;\n}\n\nexport function useStore() {\n return notEmpty(inject<ComputedStore>(storeKey), 'Empty store');\n}\n"],"names":["getInitialOptionsState","chartType","optionsState","defaultState","copyJSON","getInitialStateByType","optionsStateCopy","createReactiveState","initialData","reactive","deepClone","getInitialTemplate","getInitialStatisticsState","getInitialLayersSettings","getInitialAxesSettings","factoryStore","reactiveState","dataStore","inputGuide","chartData","dendroTableData","uniqueValuesData","filterLabelsInfo","readonlyInputs","computed","calculateDiscreteGroups","getUsedAesInMapping","getControllerByType","provideStore","initialState","dataStoreRef","defaultOptionsRef","fixedOptionsRef","dataColumnPredicate","controller","ref","store","toRaw","watch","ds","defaultOptions","defaultStateMap","defaultOptionsWithoutUserChanges","opt","_a","loadedDefaultSources","loadDefaultSources","inputName","selectedSource","filterType","selectedFilterValues","selectedFilterRange","inputGuideCounter","fixedOptions","counter","ignoredIds","item","nextInputGuide","initialTab","chartDataCounter","ig","nextChartData","loadDataForPlot","getUniqueValuesFromReadyChartData","updateDataBindAes","loadFilterLabelsForTitle","dendroDataCounter","ready","fixed","state","addFixedOptionsToState","nextDendroTableData","provide","storeKey","useStore","notEmpty","inject"],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sources":["../../src/GraphMaker/store.ts"],"sourcesContent":["import { deepClone } from '@milaboratories/helpers';\nimport {\n ChartType,\n DemoDataStore,\n DendroStateController,\n DendroUIState,\n getControllerByType,\n getInitialStateByType,\n InputGuide,\n InputNamesByChartType,\n InputState,\n PlotDataAndSettings\n} from '@milaboratories/pf-plots';\nimport { PColumnSpec } from '@platforma-sdk/model';\nimport { ListOption } from '@platforma-sdk/ui-vue';\nimport { computed, ComputedRef, inject, provide, reactive, Reactive, Ref, ref, toRaw, watch } from 'vue';\nimport {\n AesType,\n getInitialAxesSettings,\n getInitialLayersSettings,\n getInitialStatisticsState,\n getInitialTemplate\n} from './constantsCommon';\nimport { updateDataBindAes } from './dataBindAes';\nimport { notEmpty } from './helpers';\nimport { storeKey } from './keys';\nimport {\n DendroNodeInfo,\n GraphMakerProps,\n GraphMakerState,\n ReactiveState, UniqueValuesBySourceMap\n} from './types';\nimport { loadDefaultSources } from './utils';\nimport { addFixedOptionsToState } from './utils/addFixedOptionsToState';\nimport { calculateDiscreteGroups } from './utils/calculateDiscreteGroups';\nimport { copyJSON } from './utils/copyJSON';\nimport { loadDataForPlot } from './utils/createChartSettingsForRender/composeChartSettings';\nimport { getUsedAesInMapping } from './utils/getUsedAesInMapping';\nimport {\n getUniqueValuesFromReadyChartData,\n loadFilterLabelsForTitle\n} from './utils/loadUniqueValuesToSave';\nimport { FormKey, tabKeys } from './forms';\n\nfunction getInitialOptionsState(chartType: ChartType, optionsState: InputState | undefined) {\n const defaultState = copyJSON(getInitialStateByType(chartType));\n if (optionsState?.type !== chartType) {\n return defaultState;\n }\n const optionsStateCopy = copyJSON(optionsState);\n\n return {\n ...defaultState,\n ...optionsStateCopy,\n components: {\n ...defaultState.components,\n ...optionsStateCopy.components\n }\n };\n}\n\nexport function createReactiveState(\n initialData: GraphMakerState,\n chartType: ChartType\n): Reactive<ReactiveState> {\n return reactive({\n chartType: chartType,\n // from pf-plots\n optionsState: getInitialOptionsState(chartType, initialData.optionsState), // contains user selected inputs\n\n dataStateKey: deepClone(initialData.dataStateKey),\n //local form states, updates directly in forms\n template: getInitialTemplate(initialData.template, chartType),\n statisticsSettings: getInitialStatisticsState(chartType, initialData.statisticsSettings),\n layersSettings: getInitialLayersSettings(initialData.layersSettings),\n axesSettings: getInitialAxesSettings(chartType, initialData.axesSettings),\n //common aesthetics data mapped on columns/axes values\n dataBindAes: copyJSON(initialData.dataBindAes ?? {}),\n chartScale: initialData.zoomState ?? 100,\n lassoControlsState: null,\n currentTab: null,\n tabDefaultState: tabKeys().reduce((res, formKey: FormKey) => { res[formKey] = {}; return res; }, {} as Record<FormKey, Record<string, boolean>>),\n dendroInfoByClick: null as null | DendroNodeInfo,\n dendroSelectedNodeId: null,\n showTooltipHint: false,\n });\n}\n\nexport interface Store {\n reactive: Reactive<ReactiveState>;\n loading: {\n initialInputGuide: boolean;\n initialCharts: boolean;\n initialDefaults: boolean;\n inputGuide: boolean;\n chartData: boolean;\n dendroTableData: boolean;\n };\n commonHelpersData: {\n primaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n secondaryGroups: ComputedRef<ReturnType<typeof calculateDiscreteGroups>>;\n usedAesInMapping: ComputedRef<Record<string, Record<AesType, boolean>>>;\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>;\n };\n controller: ReturnType<typeof getControllerByType>;\n columnsDataStore: DemoDataStore | null;\n inputGuide: Ref<InputGuide<InputState>>;\n chartData: Ref<PlotDataAndSettings | null>;\n uniqueValuesData: Ref<UniqueValuesBySourceMap>;\n filterLabelsInfo: Ref<Record<string, ListOption>>;\n readonlyInputs?: InputNamesByChartType[ChartType][];\n}\n\nexport function factoryStore(\n reactiveState: Reactive<ReactiveState>,\n dataStore: DemoDataStore | null,\n inputGuide: Ref<InputGuide<InputState>>,\n chartData: Ref<PlotDataAndSettings | null>,\n dendroTableData: Ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>,\n uniqueValuesData: Ref<UniqueValuesBySourceMap>,\n filterLabelsInfo: Ref<Record<string, ListOption>>,\n readonlyInputs?: InputNamesByChartType[ChartType][]\n): Store {\n return {\n reactive: reactiveState,\n loading: reactive({\n initialInputGuide: true,\n initialCharts: true,\n initialDefaults: true,\n inputGuide: false,\n chartData: false,\n dendroTableData: false\n }),\n commonHelpersData: {\n primaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'primaryGrouping'\n )\n ),\n secondaryGroups: computed(() => calculateDiscreteGroups(\n reactiveState.optionsState,\n uniqueValuesData.value,\n 'secondaryGrouping'\n )\n ),\n usedAesInMapping: computed<Record<string, Record<AesType, boolean>>>(() =>\n getUsedAesInMapping(\n reactiveState.chartType,\n reactiveState.template,\n reactiveState.layersSettings,\n reactiveState.statisticsSettings,\n reactiveState.optionsState,\n inputGuide.value\n )\n ),\n dendroTableData\n },\n controller: getControllerByType(reactiveState.chartType),\n columnsDataStore: dataStore,\n inputGuide,\n chartData,\n uniqueValuesData,\n filterLabelsInfo,\n readonlyInputs\n };\n}\n\nexport type ComputedStore = ComputedRef<Store>;\n\nexport function provideStore(\n initialState: GraphMakerState,\n dataStoreRef: Ref<DemoDataStore | null>,\n chartType: ChartType,\n defaultOptionsRef: Ref<GraphMakerProps['defaultOptions']>,\n fixedOptionsRef: Ref<GraphMakerProps['fixedOptions']>,\n dataColumnPredicate?: (spec: PColumnSpec) => boolean,\n readonlyInputs?: InputNamesByChartType[ChartType][]\n) {\n const reactiveState = createReactiveState(initialState, chartType);\n const controller = getControllerByType(reactiveState.chartType);\n\n const inputGuide = ref<InputGuide<InputState>>(getControllerByType(reactiveState.chartType).getEmptyInputGuide(reactiveState.optionsState));\n const chartData = ref<PlotDataAndSettings | null>(null);\n\n const uniqueValuesData = ref<UniqueValuesBySourceMap>({});\n const filterLabelsInfo = ref<Record<string, ListOption>>({}); // for auto titles of chart if something selected in filter/tabby\n\n const dendroTableData = ref<Awaited<ReturnType<DendroStateController['createTableData']>> | null>(null);\n\n // toRaw removes Vue proxy from dataStore.pframe (PFrame api)\n const store = computed(() => factoryStore(reactiveState, toRaw(dataStoreRef.value), inputGuide, chartData, dendroTableData, uniqueValuesData, filterLabelsInfo, readonlyInputs));\n\n watch(() => dataStoreRef.value, () => {\n filterLabelsInfo.value = {};\n uniqueValuesData.value = {}; // reset saved data; avoid caching of empty results from old empty pframe\n });\n watch([\n () => dataStoreRef.value,\n () => defaultOptionsRef.value\n ], async ([ds, defaultOptions]) => {\n if (!defaultOptions || !ds || !store.value.loading.initialDefaults) {\n return;\n }\n store.value.loading.initialDefaults = false; // to avoid multiple calculations, default settings cannot change except after reset\n store.value.loading.initialInputGuide = true; // to show loader on initial loading; changing of reactiveState.optionsState always triggers inputGuide recalculating, so it will be off after inputGuide\n\n const defaultStateMap = copyJSON(reactiveState.optionsState.components);\n const defaultOptionsWithoutUserChanges = defaultOptions.filter((opt) => {\n const res = reactiveState.optionsState.components[opt.inputName]?.selectorStates.length === 0 ||\n readonlyInputs?.includes(opt.inputName);\n return res;\n })\n if (defaultOptionsWithoutUserChanges.length === 0) {\n return;\n }\n defaultOptionsWithoutUserChanges.forEach((opt) => {\n defaultStateMap[opt.inputName].selectorStates = [];\n });\n const loadedDefaultSources = await loadDefaultSources(ds, defaultOptionsWithoutUserChanges);\n for (const {\n inputName,\n selectedSource,\n filterType,\n selectedFilterValues,\n selectedFilterRange\n } of loadedDefaultSources) {\n defaultStateMap[inputName].selectorStates.push({\n selectedSource,\n type: filterType,\n selectedFilterValues,\n selectedFilterRange\n });\n }\n\n reactiveState.optionsState.components = {\n ...reactiveState.optionsState.components,\n ...defaultStateMap\n };\n }, { immediate: true });\n\n // recalculate input guide - options for every data input, consistency info etc\n const inputGuideCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState,\n () => dataStoreRef.value,\n () => fixedOptionsRef.value\n ], async ([optionsState, ds, fixedOptions]) => {\n inputGuideCounter.value++;\n const counter = inputGuideCounter.value;\n store.value.loading.inputGuide = true;\n const ignoredIds = ds && fixedOptions ? (await loadDefaultSources(ds, fixedOptions, false)).map(item => item.selectedSource) : [];\n\n // const start = Date.now();\n const nextInputGuide = ds ? await controller.calculateOptions(toRaw(ds), optionsState, ignoredIds, dataColumnPredicate) : controller.getEmptyInputGuide(optionsState);\n // console.log('input guide', Date.now() - start);\n\n if (counter === inputGuideCounter.value) { // race condition check\n inputGuide.value = nextInputGuide;\n\n store.value.loading.inputGuide = false;\n if (store.value.loading.initialInputGuide) { // open default/saved tab only after inputGuide loading\n store.value.loading.initialInputGuide = false;\n const initialTab = initialState.currentTab === undefined ? 'dataMapping' : initialState.currentTab;\n store.value.reactive.currentTab = store.value.reactive.currentTab ?? initialTab;\n }\n }\n }, { immediate: true, deep: true });\n\n // recalculate data for chart rendering (miplots4)\n const chartDataCounter = ref(0); // to avoid race condition on async calculations\n watch(() => inputGuide.value, async (ig) => {\n chartDataCounter.value++;\n const counter = chartDataCounter.value;\n store.value.loading.chartData = true;\n\n const ds = toRaw(dataStoreRef.value);\n const start = Date.now();\n const nextChartData = await loadDataForPlot(ig, reactiveState, ds, fixedOptionsRef.value);\n\n if (nextChartData && ds) {\n uniqueValuesData.value = await getUniqueValuesFromReadyChartData(\n nextChartData,\n ig,\n controller,\n ds,\n uniqueValuesData.value\n );\n updateDataBindAes(reactiveState.optionsState, reactiveState.dataBindAes, uniqueValuesData.value);\n }\n filterLabelsInfo.value = ds ? await loadFilterLabelsForTitle(\n reactiveState.optionsState.components,\n ig,\n controller,\n ds,\n ) : {};\n // console.log('chart data', Date.now() - start);\n\n if (counter === chartDataCounter.value) { // race condition check\n chartData.value = nextChartData;\n if (ig.ready) {\n store.value.loading.initialCharts = false;\n }\n store.value.loading.chartData = false;\n }\n }, { immediate: true, deep: true });\n\n // watch data for table, only dendro chart; data is also using for popup by tree node click\n if (reactiveState.chartType === 'dendro') {\n const dendroDataCounter = ref(0); // to avoid race condition on async calculations\n watch([\n () => reactiveState.optionsState as DendroUIState,\n () => dataStoreRef.value,\n () => inputGuide.value.readyData,\n () => fixedOptionsRef.value\n ], async ([optionsState, dataStore, ready, fixed]) => {\n if (ready && dataStore) {\n dendroDataCounter.value++;\n const counter = dendroDataCounter.value;\n store.value.loading.dendroTableData = true;\n const state = await addFixedOptionsToState(optionsState, dataStore, fixed) as DendroUIState;\n const nextDendroTableData = await (controller as unknown as DendroStateController).createTableData(dataStore, state);\n\n if (dendroDataCounter.value === counter) {\n dendroTableData.value = nextDendroTableData;\n }\n store.value.loading.dendroTableData = false;\n }\n }, { immediate: true });\n }\n\n provide(storeKey, store);\n return store;\n}\n\nexport function useStore() {\n return notEmpty(inject<ComputedStore>(storeKey), 'Empty store');\n}\n"],"names":["getInitialOptionsState","chartType","optionsState","defaultState","copyJSON","getInitialStateByType","optionsStateCopy","createReactiveState","initialData","reactive","deepClone","getInitialTemplate","getInitialStatisticsState","getInitialLayersSettings","getInitialAxesSettings","tabKeys","res","formKey","factoryStore","reactiveState","dataStore","inputGuide","chartData","dendroTableData","uniqueValuesData","filterLabelsInfo","readonlyInputs","computed","calculateDiscreteGroups","getUsedAesInMapping","getControllerByType","provideStore","initialState","dataStoreRef","defaultOptionsRef","fixedOptionsRef","dataColumnPredicate","controller","ref","store","toRaw","watch","ds","defaultOptions","defaultStateMap","defaultOptionsWithoutUserChanges","opt","_a","loadedDefaultSources","loadDefaultSources","inputName","selectedSource","filterType","selectedFilterValues","selectedFilterRange","inputGuideCounter","fixedOptions","counter","ignoredIds","item","nextInputGuide","initialTab","chartDataCounter","ig","nextChartData","loadDataForPlot","getUniqueValuesFromReadyChartData","updateDataBindAes","loadFilterLabelsForTitle","dendroDataCounter","ready","fixed","state","addFixedOptionsToState","nextDendroTableData","provide","storeKey","useStore","notEmpty","inject"],"mappings":"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"}
@@ -79,6 +79,7 @@ export type ReactiveState = {
79
79
  chartScale: number;
80
80
  lassoControlsState: LassoControlsState | null;
81
81
  currentTab: FormKey | null;
82
+ tabDefaultState: Record<FormKey, Record<string, unknown>>;
82
83
  dendroInfoByClick: null | DendroNodeInfo;
83
84
  dendroSelectedNodeId: null | number;
84
85
  dataStateKey: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/GraphMaker/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/GraphMaker/types.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,10 @@ import "../node_modules/@milaboratories/pl-error-like/dist/error_like_shape.js";
10
10
  import { DISCRETE_FILTER_KEY as F, SUBSET_FILTER_KEY as L, COLUMN_LABEL_KEY as z, IS_LINKER_COLUMN as H } from "../constants.js";
11
11
  import { columnOrAxisIdFromString as B, isColumnId as T, AxisId as N, ColumnId as Y } from "../spec.js";
12
12
  import { getStateCopy as q, getNotAllowedAxes as $, axisIsNonHomogenous as Z, getColumnOrAxisLabel as V } from "../utils.js";
13
- var G = Object.defineProperty, J = (S, e, t) => e in S ? G(S, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : S[e] = t, d = (S, e, t) => J(S, typeof e != "symbol" ? e + "" : e, t);
14
- const Q = (S) => {
13
+ var G = Object.defineProperty, J = (d, e, t) => e in d ? G(d, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : d[e] = t, S = (d, e, t) => J(d, typeof e != "symbol" ? e + "" : e, t);
14
+ const Q = (d) => {
15
15
  var e;
16
- return ((e = S == null ? void 0 : S.annotations) == null ? void 0 : e[H]) === "true";
16
+ return ((e = d == null ? void 0 : d.annotations) == null ? void 0 : e[H]) === "true";
17
17
  }, M = class R {
18
18
  constructor({
19
19
  componentName: e,
@@ -25,7 +25,7 @@ const Q = (S) => {
25
25
  annotations: p = {},
26
26
  checkSourceBySpec: o
27
27
  }) {
28
- d(this, "componentName"), d(this, "allowedTypes"), d(this, "settings"), d(this, "dependsOn"), d(this, "parentComponents"), d(this, "strictlyDependsOnParents"), d(this, "annotations"), d(this, "checkSourceBySpec"), this.componentName = e, this.allowedTypes = [...t], this.settings = { ...R.DefaultSettings, ...n }, this.dependsOn = [...i], this.parentComponents = [...l], this.strictlyDependsOnParents = s ?? !0, this.annotations = { ...p }, o && (this.checkSourceBySpec = o);
28
+ S(this, "componentName"), S(this, "allowedTypes"), S(this, "settings"), S(this, "dependsOn"), S(this, "parentComponents"), S(this, "strictlyDependsOnParents"), S(this, "annotations"), S(this, "checkSourceBySpec"), this.componentName = e, this.allowedTypes = [...t], this.settings = { ...R.DefaultSettings, ...n }, this.dependsOn = [...i], this.parentComponents = [...l], this.strictlyDependsOnParents = s ?? !0, this.annotations = { ...p }, o && (this.checkSourceBySpec = o);
29
29
  }
30
30
  get isRequired() {
31
31
  return this.settings.required;
@@ -110,7 +110,7 @@ const Q = (S) => {
110
110
  getAllowedAxes(e, t, n) {
111
111
  const s = this.getColumnSourceAxes(e, t, n);
112
112
  for (const [i, l] of Object.entries(e))
113
- if (i !== this.componentName)
113
+ if (!(i === this.componentName && !this.settings.multipleSelectors))
114
114
  for (const p of l.hangingAxes)
115
115
  s.set(...p);
116
116
  return s;
@@ -185,7 +185,7 @@ const Q = (S) => {
185
185
  };
186
186
  }
187
187
  };
188
- d(M, "DefaultSettings", {
188
+ S(M, "DefaultSettings", {
189
189
  isDataComponent: !1,
190
190
  multipleSelectors: !1,
191
191
  required: !1,