@milaboratories/graph-maker 1.1.177 → 1.1.178
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AesButton.vue.d.ts +6 -6
- package/dist/components/AesButton.vue.js +2 -2
- package/dist/components/AesButton.vue.js.map +1 -1
- package/dist/components/AesSettings/AesDataMappingContinuous.vue.js +14 -14
- package/dist/components/AesSettings/AesDataMappingContinuous.vue.js.map +1 -1
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue.js +39 -38
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue.js.map +1 -1
- package/dist/components/AesSettings/FixedColorsList.vue.d.ts +1 -1
- package/dist/components/AesSettings/FixedColorsList.vue.js +13 -12
- package/dist/components/AesSettings/FixedColorsList.vue.js.map +1 -1
- package/dist/components/AesSettings/FixedDotShapeList.vue.js +10 -9
- package/dist/components/AesSettings/FixedDotShapeList.vue.js.map +1 -1
- package/dist/components/AesSettings/FixedLineTypeList.vue.js +12 -11
- package/dist/components/AesSettings/FixedLineTypeList.vue.js.map +1 -1
- package/dist/components/AesSettings/FormWrapper.vue.js +2 -2
- package/dist/components/AesSettings/FormWrapper.vue.js.map +1 -1
- package/dist/components/AesSettings/PalettesForm.vue.js +54 -50
- package/dist/components/AesSettings/PalettesForm.vue.js.map +1 -1
- package/dist/components/AesSettings/types.d.ts +9 -9
- package/dist/components/BtnIconGroup.vue.js +10 -11
- package/dist/components/BtnIconGroup.vue.js.map +1 -1
- package/dist/components/Chart.vue.js +6 -8
- package/dist/components/Chart.vue.js.map +1 -1
- package/dist/components/CollapsableBlock.vue.js +2 -2
- package/dist/components/CollapsableBlock.vue.js.map +1 -1
- package/dist/components/DendroTable.vue.js +2 -2
- package/dist/components/DendroTable.vue.js.map +1 -1
- package/dist/components/DendroTooltip.vue.js +15 -14
- package/dist/components/DendroTooltip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DnDBasketChip.vue.js +2 -2
- package/dist/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DnDRangeChip.vue.d.ts +12 -3
- package/dist/components/DragAndDrop/DnDRangeChip.vue.js +4 -4
- package/dist/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DndBasket.vue.js +26 -26
- package/dist/components/DragAndDrop/DndBasket.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DndChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/DndDoubleChip.vue.js +2 -2
- package/dist/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
- package/dist/components/DragAndDrop/types.d.ts +1 -1
- package/dist/components/LassoControls/index.vue.js +4 -4
- package/dist/components/LassoControls/index.vue.js.map +1 -1
- package/dist/components/Loading.vue.js +8 -7
- package/dist/components/Loading.vue.js.map +1 -1
- package/dist/components/MultiselectButton.vue.js +28 -27
- package/dist/components/MultiselectButton.vue.js.map +1 -1
- package/dist/components/PanelModal.vue.js.map +1 -1
- package/dist/components/PlColorSlider.vue.js +12 -12
- package/dist/components/PlColorSlider.vue.js.map +1 -1
- package/dist/components/PlColorSliderThumb.vue.js +1 -3
- package/dist/components/PlColorSliderThumb.vue.js.map +1 -1
- package/dist/components/Popup.vue.d.ts +2 -0
- package/dist/components/Popup.vue.js +21 -21
- package/dist/components/Popup.vue.js.map +1 -1
- package/dist/components/ReorderForm.vue.js +20 -17
- package/dist/components/ReorderForm.vue.js.map +1 -1
- package/dist/components/SettingsTabs/icons/DeleteChartIcon.vue.js.map +1 -1
- package/dist/components/SettingsTabs/icons/LogIcon.vue.js.map +1 -1
- package/dist/components/SettingsTabs/icons/SettingsIcon.vue.js.map +1 -1
- package/dist/components/SettingsTabs/index.vue.js.map +1 -1
- package/dist/components/Zoom/ZoomInput.vue.js +11 -11
- package/dist/components/Zoom/ZoomInput.vue.js.map +1 -1
- package/dist/components/Zoom/index.vue.js.map +1 -1
- package/dist/composition/useComponent.js.map +1 -1
- package/dist/constantsAesthetic.js.map +1 -1
- package/dist/constantsCommon.d.ts +3 -1
- package/dist/constantsCommon.js +5 -5
- package/dist/constantsCommon.js.map +1 -1
- package/dist/dataBindAes.js +4 -2
- package/dist/dataBindAes.js.map +1 -1
- package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +35 -35
- package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +49 -47
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +53 -53
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +37 -37
- package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +38 -38
- package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/index.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/BubbleForm.vue.js +4 -4
- package/dist/forms/DataMappingForm/BubbleForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/DendroForm.vue.js +1 -1
- package/dist/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/DiscreteForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/HeatmapForm.vue.js +2 -2
- package/dist/forms/DataMappingForm/HeatmapForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/HistogramForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/Layout/FormLayout.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/Layout/MandatoryOptions.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/Layout/OptionsList.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/ScatterplotForm.vue.js +4 -4
- package/dist/forms/DataMappingForm/ScatterplotForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/ScatterplotUmapForm.vue.js +4 -4
- package/dist/forms/DataMappingForm/ScatterplotUmapForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/index.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/useBaskets.js.map +1 -1
- package/dist/forms/DataMappingForm/utils.d.ts +1 -1
- package/dist/forms/DataMappingForm/utils.js +34 -34
- package/dist/forms/DataMappingForm/utils.js.map +1 -1
- package/dist/forms/LayersForm/AesSelector.vue.js +18 -25
- package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
- package/dist/forms/LayersForm/DotSizeSelector.vue.d.ts +2 -0
- package/dist/forms/LayersForm/DotSizeSelector.vue.js +23 -23
- package/dist/forms/LayersForm/DotSizeSelector.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/Bubble.vue.js +32 -34
- package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/Dendro.vue.js +6 -6
- package/dist/forms/LayersForm/Layer/Dendro.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js +6 -6
- package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/BinnedDots.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/BinnedDots.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Boxplot.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/Boxplot.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js +9 -9
- package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/JitteredDots.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/JitteredDots.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Line.vue.js +8 -8
- package/dist/forms/LayersForm/Layer/discrete/Line.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Logo.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/Logo.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Sina.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/Sina.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js +9 -9
- package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js +6 -6
- package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Violin.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/discrete/Violin.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/utils.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +23 -23
- package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js +6 -6
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +28 -28
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/histogram/Bins.vue.js +3 -3
- package/dist/forms/LayersForm/Layer/histogram/Bins.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/scatterplot/Curve.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/scatterplot/Scatter.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js +2 -2
- package/dist/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js.map +1 -1
- package/dist/forms/LayersForm/index.vue.js +56 -52
- package/dist/forms/LayersForm/index.vue.js.map +1 -1
- package/dist/forms/LogForm.vue.js.map +1 -1
- package/dist/forms/SettingsForm.vue.js.map +1 -1
- package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js +14 -14
- package/dist/forms/StatisticsForm/DiscreteStatisticsForm.vue.js.map +1 -1
- package/dist/forms/StatisticsForm/ScatterplotStatisticsForm.vue.js.map +1 -1
- package/dist/forms/StatisticsForm/index.vue.js.map +1 -1
- package/dist/forms/TemplateForm.vue.js +59 -52
- package/dist/forms/TemplateForm.vue.js.map +1 -1
- package/dist/forms/index.js.map +1 -1
- package/dist/icons/BinnedDotsIcon.vue.js.map +1 -1
- package/dist/icons/BoxplotAndBinnedIcon.vue.js.map +1 -1
- package/dist/icons/BoxplotAndJitterIcon.vue.js.map +1 -1
- package/dist/icons/BoxplotIcon.vue.js.map +1 -1
- package/dist/icons/EditIcon.vue.js.map +1 -1
- package/dist/icons/FrameLeft.vue.js.map +1 -1
- package/dist/icons/HeatmapAnnotation.vue.js.map +1 -1
- package/dist/icons/LineAndErrorbarIcon.vue.js.map +1 -1
- package/dist/icons/LogoIcon.vue.js.map +1 -1
- package/dist/icons/PlusIcon.vue.js.map +1 -1
- package/dist/icons/SinaIcon.vue.js.map +1 -1
- package/dist/icons/StackedAreaIcon.vue.js.map +1 -1
- package/dist/index.vue.js +4 -4
- package/dist/index.vue.js.map +1 -1
- package/dist/store.d.ts +1 -1
- package/dist/store.js +2 -2
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils/addFixedOptionsToState.js.map +1 -1
- package/dist/utils/calculateDiscreteGroups.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +24 -24
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
- package/dist/utils/getPopupHeightForFixedAesList.js.map +1 -1
- package/dist/utils/getStatisticsOptions.js.map +1 -1
- package/dist/utils/getUsedAesInMapping.js +1 -1
- package/dist/utils/getUsedAesInMapping.js.map +1 -1
- package/dist/utils/loadDefaultSources.js.map +1 -1
- package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
- package/dist/utils/saveToFile.js.map +1 -1
- package/package.json +5 -3
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { FIXED_LINE_TYPES as
|
|
3
|
-
const E = ["onClick"], k = { class: "row-item__title" },
|
|
1
|
+
import { defineComponent as _, createElementBlock as t, openBlock as l, Fragment as a, renderList as u, normalizeClass as r, createElementVNode as n, toDisplayString as d, unref as c } from "vue";
|
|
2
|
+
import { FIXED_LINE_TYPES as f, LINE_TYPES_MAP as p } from "../../constantsAesthetic.js";
|
|
3
|
+
const E = ["onClick"], k = { class: "row-item__title" }, x = /* @__PURE__ */ _({
|
|
4
4
|
__name: "FixedLineTypeList",
|
|
5
5
|
props: {
|
|
6
6
|
modelValue: {},
|
|
7
|
-
list: { default: () =>
|
|
7
|
+
list: { default: () => f }
|
|
8
8
|
},
|
|
9
9
|
emits: ["update:modelValue"],
|
|
10
|
-
setup(
|
|
11
|
-
|
|
10
|
+
setup(o, { emit: L }) {
|
|
11
|
+
const s = o;
|
|
12
|
+
return (m, i) => (l(!0), t(a, null, u(s.list, (e) => (l(), t("div", {
|
|
12
13
|
key: e,
|
|
13
14
|
class: r(["row-item", {
|
|
14
|
-
"row-item__selected": e ===
|
|
15
|
+
"row-item__selected": e === o.modelValue,
|
|
15
16
|
[`line__${e}`]: !0
|
|
16
17
|
}]),
|
|
17
|
-
onClick: (
|
|
18
|
+
onClick: (V) => m.$emit("update:modelValue", e)
|
|
18
19
|
}, [
|
|
19
|
-
n("div", k,
|
|
20
|
+
n("div", k, d(c(p)[e].title), 1),
|
|
20
21
|
(l(), t("svg", {
|
|
21
22
|
class: r(["row-item__line line", { [`line__${e}`]: !0 }])
|
|
22
|
-
}, [...
|
|
23
|
+
}, [...i[0] || (i[0] = [
|
|
23
24
|
n("line", {
|
|
24
25
|
x1: "0",
|
|
25
26
|
x2: "100%",
|
|
@@ -31,6 +32,6 @@ const E = ["onClick"], k = { class: "row-item__title" }, w = /* @__PURE__ */ m({
|
|
|
31
32
|
}
|
|
32
33
|
});
|
|
33
34
|
export {
|
|
34
|
-
|
|
35
|
+
x as default
|
|
35
36
|
};
|
|
36
37
|
//# sourceMappingURL=FixedLineTypeList.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FixedLineTypeList.vue.js","sources":["../../../src/components/AesSettings/FixedLineTypeList.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { LineType } from './types';\nimport {\n FIXED_LINE_TYPES,\n LINE_TYPES_MAP,\n} from '../../constantsAesthetic';\n\nconst props = withDefaults(\n defineProps<{\n modelValue: string;\n list?: LineType[];\n }>(),\n {\n list: () => FIXED_LINE_TYPES,\n },\n);\n\nconst
|
|
1
|
+
{"version":3,"file":"FixedLineTypeList.vue.js","sources":["../../../src/components/AesSettings/FixedLineTypeList.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { LineType } from './types';\nimport {\n FIXED_LINE_TYPES,\n LINE_TYPES_MAP,\n} from '../../constantsAesthetic';\n\nconst props = withDefaults(\n defineProps<{\n modelValue: string;\n list?: LineType[];\n }>(),\n {\n list: () => FIXED_LINE_TYPES,\n },\n);\n\nconst _emit = defineEmits(['update:modelValue']);\n</script>\n\n<template>\n <div\n v-for=\"lineType of props.list\"\n :key=\"lineType\"\n class=\"row-item\"\n :class=\"{\n 'row-item__selected': lineType === modelValue,\n [`line__${lineType}`]: true,\n }\"\n @click=\"$emit('update:modelValue', lineType)\"\n >\n <div class=\"row-item__title\">{{ LINE_TYPES_MAP[lineType].title }}</div>\n <svg class=\"row-item__line line\" :class=\"{ [`line__${lineType}`]: true }\">\n <line x1=\"0\" x2=\"100%\" y1=\"50%\" y2=\"50%\" />\n </svg>\n </div>\n</template>\n"],"names":["props","__props","_openBlock","_createElementBlock","_Fragment","_renderList","lineType","$event","$emit","_createElementVNode","_hoisted_2","_toDisplayString","_unref","_normalizeClass"],"mappings":";;;;;;;;;;AAOA,UAAMA,IAAQC;sBAcZC,EAAA,EAAA,GAAAC,EAcMC,GAAA,MAAAC,EAbeL,EAAM,OAAlBM,YADTH,EAcM,OAAA;AAAA,MAZH,KAAKG;AAAA,MACN,UAAM,YAAU;AAAA,QACsB,sBAAAA,MAAaL,EAAA;AAAA,kBAA4BK,CAAQ,EAAA,GAAA;AAAA,MAAA;MAItF,SAAK,CAAAC,MAAEC,EAAAA,MAAK,qBAAsBF,CAAQ;AAAA,IAAA;MAE3CG,EAAuE,OAAvEC,GAAuEC,EAAvCC,KAAeN,CAAQ,EAAE,KAAK,GAAA,CAAA;AAAA,YAC9DH,EAEM,OAAA;AAAA,QAFD,OAAKU,EAAA,CAAC,uBAAqB,EAAA,CAAA,SAAqBP,CAAQ,EAAA,GAAA,IAAA,CAAA;AAAA,MAAA;QAC3DG,EAA2C,QAAA;AAAA,UAArC,IAAG;AAAA,UAAI,IAAG;AAAA,UAAO,IAAG;AAAA,UAAM,IAAG;AAAA,QAAA;;;;;"}
|
|
@@ -18,8 +18,8 @@ const h = {
|
|
|
18
18
|
e("div", h, [
|
|
19
19
|
e("div", v, [
|
|
20
20
|
e("div", {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
class: "back-link",
|
|
22
|
+
onClick: r[0] || (r[0] = k((T) => t.$emit("form:close"), ["stop"]))
|
|
23
23
|
}, [
|
|
24
24
|
(n(), s(u(g))),
|
|
25
25
|
_(" " + i(`Back to ${o.backTitle}`), 1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormWrapper.vue.js","sources":["../../../src/components/AesSettings/FormWrapper.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { onMounted } from
|
|
1
|
+
{"version":3,"file":"FormWrapper.vue.js","sources":["../../../src/components/AesSettings/FormWrapper.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { onMounted } from 'vue';\nimport ArrowLeft from '../../icons/ArrowLeft.vue';\n\nconst props = defineProps<{\n title: string;\n backTitle: string;\n}>();\n\nconst emit = defineEmits(['form:close', 'form:open']);\nonMounted(() => {\n emit('form:open');\n});\n\n</script>\n\n<template>\n <Teleport to=\"#graph-settings-modal\">\n <div ref=\"root\" class=\"aes-settings-form\">\n <div class=\"aes-settings-form__header\">\n <div class=\"back-link\" @click.stop=\"$emit('form:close')\">\n <component :is=\"ArrowLeft\" />\n {{ `Back to ${props.backTitle}` }}\n </div>\n <h3>\n {{ props.title }}\n </h3>\n </div>\n <slot/>\n </div>\n </Teleport>\n</template>\n"],"names":["props","__props","emit","__emit","onMounted","_createBlock","_Teleport","_createElementVNode","_hoisted_1","_hoisted_2","$emit","_openBlock","_resolveDynamicComponent","ArrowLeft","_toDisplayString","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GAKRC,IAAOC;AACb,WAAAC,EAAU,MAAM;AACd,MAAAF,EAAK,WAAW;AAAA,IAClB,CAAC,mBAKCG,EAaWC,GAAA,EAbD,IAAG,2BAAuB;AAAA,MAClCC,EAWM,OAXNC,GAWM;AAAA,QAVJD,EAQM,OARNE,GAQM;AAAA,UAPJF,EAGM,OAAA;AAAA,YAHD,OAAM;AAAA,YAAa,kCAAYG,EAAAA,MAAK,YAAA,GAAA,CAAA,MAAA,CAAA;AAAA,UAAA;aACvCC,KAAAN,EAA6BO,EAAbC,CAAS,CAAA;AAAA,cAAI,MAC7BC,EAAA,WAAcd,EAAM,SAAS,EAAA,GAAA,CAAA;AAAA,UAAA;UAE/BO,EAEK,MAAA,MAAAO,EADAd,EAAM,KAAK,GAAA,CAAA;AAAA,QAAA;QAGlBe,EAAOC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent as f, createElementBlock as l, openBlock as i, createCommentVNode as g, Fragment as
|
|
2
|
-
import { CATEGORICAL_LIST as L, PALETTE_MAP as a, SEQUENTIAL_LIST as
|
|
3
|
-
const
|
|
1
|
+
import { defineComponent as f, createElementBlock as l, openBlock as i, createCommentVNode as g, Fragment as r, createElementVNode as t, renderList as u, unref as n, withModifiers as m, normalizeClass as p, toDisplayString as k, normalizeStyle as C } from "vue";
|
|
2
|
+
import { CATEGORICAL_LIST as L, PALETTE_MAP as a, SEQUENTIAL_LIST as A, DIVERGING_LIST as S } from "../../constantsAesthetic.js";
|
|
3
|
+
const T = { class: "palettes-groups" }, B = { class: "palettes-list" }, G = ["onClick"], N = { class: "palette-gradient" }, R = { class: "palettes-list" }, $ = ["onClick"], O = { class: "palettes-list" }, V = ["onClick"], q = 9, b = /* @__PURE__ */ f({
|
|
4
4
|
__name: "PalettesForm",
|
|
5
5
|
props: {
|
|
6
6
|
selected: {},
|
|
@@ -9,79 +9,83 @@ const S = { class: "palettes-groups" }, T = { class: "palettes-list" }, B = ["on
|
|
|
9
9
|
diverging: { type: Boolean, default: !0 }
|
|
10
10
|
},
|
|
11
11
|
emits: ["select"],
|
|
12
|
-
setup(
|
|
13
|
-
const
|
|
12
|
+
setup(d, { emit: E }) {
|
|
13
|
+
const I = E, _ = d;
|
|
14
14
|
function v(c) {
|
|
15
|
-
|
|
15
|
+
I("select", c);
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function y(c) {
|
|
18
18
|
const s = 100 / (c.length - 1);
|
|
19
|
-
return `background: linear-gradient(to right, ${c.map((
|
|
19
|
+
return `background: linear-gradient(to right, ${c.map((e, o) => `${e} ${o * s}%`).join(", ")})`;
|
|
20
20
|
}
|
|
21
|
-
return (c, s) => (i(), l("div",
|
|
22
|
-
|
|
23
|
-
s[0] || (s[0] =
|
|
24
|
-
|
|
21
|
+
return (c, s) => (i(), l("div", T, [
|
|
22
|
+
d.categorical ? (i(), l(r, { key: 0 }, [
|
|
23
|
+
s[0] || (s[0] = t("div", { class: "section-title" }, [
|
|
24
|
+
t("span", null, "CATEGORICAL")
|
|
25
25
|
], -1)),
|
|
26
|
-
s[1] || (s[1] =
|
|
27
|
-
|
|
28
|
-
(i(!0), l(
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
s[1] || (s[1] = t("div", { class: "section-description" }, " Best to representing categorical data ", -1)),
|
|
27
|
+
t("div", B, [
|
|
28
|
+
(i(!0), l(r, null, u(n(L), (e) => (i(), l("div", {
|
|
29
|
+
key: e,
|
|
30
|
+
class: p(["palettes-list__palette", { selected: _.selected === e }]),
|
|
31
|
+
onClick: m((o) => v(e), ["stop"])
|
|
31
32
|
}, [
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
(i(!0), l(
|
|
33
|
+
t("div", null, k(n(a)[e].title), 1),
|
|
34
|
+
t("div", N, [
|
|
35
|
+
(i(!0), l(r, null, u(n(a)[e].colors.slice(
|
|
35
36
|
0,
|
|
36
|
-
|
|
37
|
-
), (
|
|
37
|
+
q
|
|
38
|
+
), (o) => (i(), l("div", {
|
|
39
|
+
key: o,
|
|
38
40
|
class: "palette-gradient__item",
|
|
39
|
-
style:
|
|
40
|
-
}, null, 4))),
|
|
41
|
+
style: C({ background: o })
|
|
42
|
+
}, null, 4))), 128))
|
|
41
43
|
])
|
|
42
|
-
], 10,
|
|
44
|
+
], 10, G))), 128))
|
|
43
45
|
])
|
|
44
46
|
], 64)) : g("", !0),
|
|
45
|
-
|
|
46
|
-
s[2] || (s[2] =
|
|
47
|
-
|
|
47
|
+
d.sequential ? (i(), l(r, { key: 1 }, [
|
|
48
|
+
s[2] || (s[2] = t("div", { class: "section-title" }, [
|
|
49
|
+
t("span", null, "SEQUENTIAL")
|
|
48
50
|
], -1)),
|
|
49
|
-
s[3] || (s[3] =
|
|
50
|
-
|
|
51
|
-
(i(!0), l(
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
s[3] || (s[3] = t("div", { class: "section-description" }, " Best to representing sequential data ", -1)),
|
|
52
|
+
t("div", R, [
|
|
53
|
+
(i(!0), l(r, null, u(n(A), (e) => (i(), l("div", {
|
|
54
|
+
key: e,
|
|
55
|
+
class: p(["palettes-list__palette", { selected: d.selected === e }]),
|
|
56
|
+
onClick: m((o) => v(e), ["stop"])
|
|
54
57
|
}, [
|
|
55
|
-
|
|
56
|
-
|
|
58
|
+
t("div", null, k(n(a)[e].title), 1),
|
|
59
|
+
t("div", {
|
|
57
60
|
class: "palette-gradient",
|
|
58
|
-
style:
|
|
61
|
+
style: C(y(n(a)[e].colors))
|
|
59
62
|
}, null, 4)
|
|
60
|
-
], 10,
|
|
63
|
+
], 10, $))), 128))
|
|
61
64
|
])
|
|
62
65
|
], 64)) : g("", !0),
|
|
63
|
-
|
|
64
|
-
s[4] || (s[4] =
|
|
65
|
-
|
|
66
|
+
d.diverging ? (i(), l(r, { key: 2 }, [
|
|
67
|
+
s[4] || (s[4] = t("div", { class: "section-title" }, [
|
|
68
|
+
t("span", null, "DIVERGING")
|
|
66
69
|
], -1)),
|
|
67
|
-
s[5] || (s[5] =
|
|
68
|
-
|
|
69
|
-
(i(!0), l(
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
s[5] || (s[5] = t("div", { class: "section-description" }, " Best to representing diverging data ", -1)),
|
|
71
|
+
t("div", O, [
|
|
72
|
+
(i(!0), l(r, null, u(n(S), (e) => (i(), l("div", {
|
|
73
|
+
key: e,
|
|
74
|
+
class: p(["palettes-list__palette", { selected: d.selected === e }]),
|
|
75
|
+
onClick: m((o) => v(e), ["stop"])
|
|
72
76
|
}, [
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
t("div", null, k(n(a)[e].title), 1),
|
|
78
|
+
t("div", {
|
|
75
79
|
class: "palette-gradient",
|
|
76
|
-
style:
|
|
80
|
+
style: C(y(n(a)[e].colors))
|
|
77
81
|
}, null, 4)
|
|
78
|
-
], 10,
|
|
82
|
+
], 10, V))), 128))
|
|
79
83
|
])
|
|
80
84
|
], 64)) : g("", !0)
|
|
81
85
|
]));
|
|
82
86
|
}
|
|
83
87
|
});
|
|
84
88
|
export {
|
|
85
|
-
|
|
89
|
+
b as default
|
|
86
90
|
};
|
|
87
91
|
//# sourceMappingURL=PalettesForm.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PalettesForm.vue.js","sources":["../../../src/components/AesSettings/PalettesForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport {\n Palette,\n PaletteData
|
|
1
|
+
{"version":3,"file":"PalettesForm.vue.js","sources":["../../../src/components/AesSettings/PalettesForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n Palette,\n PaletteData,\n} from './types';\nimport {\n CATEGORICAL_LIST,\n DIVERGING_LIST,\n PALETTE_MAP,\n SEQUENTIAL_LIST,\n} from '../../constantsAesthetic';\n\nconst emit = defineEmits(['select']);\n\nconst props = withDefaults(defineProps<{\n selected: Palette;\n categorical?: boolean;\n sequential?: boolean;\n diverging?: boolean;\n}>(), {\n categorical: true,\n sequential: true,\n diverging: true,\n});\n\nconst COLORS_CATEGORICAL_VISIBLE = 9;\n\nfunction onSelect(v: Palette) {\n emit('select', v);\n}\n\nfunction createCssGradient(palette: PaletteData) {\n const step = 100 / (palette.length - 1);\n return `background: linear-gradient(to right, ${palette\n .map((value, idx) => `${value} ${idx * step}%`)\n .join(', ')})`;\n}\n</script>\n\n<template>\n <div class=\"palettes-groups\">\n <template v-if=\"categorical\">\n <div class=\"section-title\"><span>CATEGORICAL</span></div>\n <div class=\"section-description\">\n Best to representing categorical data\n </div>\n <div class=\"palettes-list\">\n <div\n v-for=\"palette of CATEGORICAL_LIST\"\n :key=\"palette\"\n class=\"palettes-list__palette\"\n :class=\"{ selected: props.selected === palette }\"\n @click.stop=\"onSelect(palette)\"\n >\n <div>{{ PALETTE_MAP[palette].title }}</div>\n <div class=\"palette-gradient\">\n <div\n v-for=\"color of PALETTE_MAP[palette].colors.slice(\n 0,\n COLORS_CATEGORICAL_VISIBLE,\n )\"\n :key=\"color\"\n class=\"palette-gradient__item\"\n :style=\"{ background: color }\"\n />\n </div>\n </div>\n </div>\n </template>\n <template v-if=\"sequential\">\n <div class=\"section-title\"><span>SEQUENTIAL</span></div>\n <div class=\"section-description\">\n Best to representing sequential data\n </div>\n <div class=\"palettes-list\">\n <div\n v-for=\"palette of SEQUENTIAL_LIST\"\n :key=\"palette\"\n class=\"palettes-list__palette\"\n :class=\"{ selected: selected === palette }\"\n @click.stop=\"onSelect(palette)\"\n >\n <div>{{ PALETTE_MAP[palette].title }}</div>\n <div\n class=\"palette-gradient\"\n :style=\"createCssGradient(PALETTE_MAP[palette].colors)\"\n />\n </div>\n </div>\n </template>\n <template v-if=\"diverging\">\n <div class=\"section-title\"><span>DIVERGING</span></div>\n <div class=\"section-description\">\n Best to representing diverging data\n </div>\n <div class=\"palettes-list\">\n <div\n v-for=\"palette of DIVERGING_LIST\"\n :key=\"palette\"\n class=\"palettes-list__palette\"\n :class=\"{ selected: selected === palette }\"\n @click.stop=\"onSelect(palette)\"\n >\n <div>{{ PALETTE_MAP[palette].title }}</div>\n <div\n class=\"palette-gradient\"\n :style=\"createCssGradient(PALETTE_MAP[palette].colors)\"\n />\n </div>\n </div>\n </template>\n </div>\n</template>\n"],"names":["COLORS_CATEGORICAL_VISIBLE","emit","__emit","props","__props","onSelect","v","createCssGradient","palette","step","value","idx","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_createElementVNode","_cache","_hoisted_2","_renderList","_unref","CATEGORICAL_LIST","_withModifiers","$event","_toDisplayString","PALETTE_MAP","_hoisted_4","color","_hoisted_5","SEQUENTIAL_LIST","_normalizeClass","_hoisted_7","DIVERGING_LIST"],"mappings":"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"}
|
|
@@ -5,13 +5,13 @@ export type PaletteInfo = {
|
|
|
5
5
|
title: string;
|
|
6
6
|
colors: PaletteData;
|
|
7
7
|
};
|
|
8
|
-
export type CategoricalPalette =
|
|
9
|
-
export type SequentialPalette =
|
|
10
|
-
export type DivergingPalette =
|
|
8
|
+
export type CategoricalPalette = 'light' | 'bright' | 'dark' | 'paired' | 'triadic';
|
|
9
|
+
export type SequentialPalette = 'viridis' | 'magma' | 'density' | 'salinity' | 'sunset' | 'perceptual_rainbow';
|
|
10
|
+
export type DivergingPalette = 'spectrum' | 'teal_red' | 'blue_red' | 'lime_rose' | 'viridis_magma';
|
|
11
11
|
export type ContinuousPalette = SequentialPalette | DivergingPalette;
|
|
12
12
|
export type Palette = CategoricalPalette | ContinuousPalette;
|
|
13
13
|
export type AesMappingOptionCategorical = {
|
|
14
|
-
type:
|
|
14
|
+
type: 'dataCategorical';
|
|
15
15
|
value: string;
|
|
16
16
|
initialData: AestheticMappingCategorical;
|
|
17
17
|
inputName: string;
|
|
@@ -21,7 +21,7 @@ export type AesMappingOptionCategorical = {
|
|
|
21
21
|
labels: Record<string, string>;
|
|
22
22
|
};
|
|
23
23
|
export type AesMappingOptionContinuous = {
|
|
24
|
-
type:
|
|
24
|
+
type: 'dataContinuous';
|
|
25
25
|
value: string;
|
|
26
26
|
initialData: AestheticMappingContinuous;
|
|
27
27
|
inputName: string;
|
|
@@ -31,13 +31,13 @@ export type AesMappingOptionContinuous = {
|
|
|
31
31
|
};
|
|
32
32
|
export type AesMappingOption = AesMappingOptionCategorical | AesMappingOptionContinuous;
|
|
33
33
|
export type AesFixedOption = {
|
|
34
|
-
type:
|
|
35
|
-
value:
|
|
34
|
+
type: 'fix';
|
|
35
|
+
value: 'fix';
|
|
36
36
|
initialData: string | DotShape | LineType;
|
|
37
37
|
};
|
|
38
38
|
export type AesOption = AesFixedOption | AesMappingOption;
|
|
39
|
-
export type DotShape =
|
|
40
|
-
export type LineType =
|
|
39
|
+
export type DotShape = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '21' | '22' | '23' | '24' | '25';
|
|
40
|
+
export type LineType = 'solid' | 'dashed' | 'dotted' | 'dotdash' | 'longdash' | 'twodash';
|
|
41
41
|
export type LineTypeInfo = {
|
|
42
42
|
title: string;
|
|
43
43
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent as m,
|
|
2
|
-
const
|
|
1
|
+
import { defineComponent as m, createElementBlock as t, openBlock as o, normalizeClass as i, Fragment as r, renderList as v, withKeys as b, createBlock as k, resolveDynamicComponent as y } from "vue";
|
|
2
|
+
const B = ["tabindex", "onKeydown", "onClick"], f = /* @__PURE__ */ m({
|
|
3
3
|
__name: "BtnIconGroup",
|
|
4
4
|
props: {
|
|
5
5
|
modelValue: {},
|
|
@@ -8,24 +8,23 @@ const C = ["tabindex", "onKeydown", "onClick"], p = /* @__PURE__ */ m({
|
|
|
8
8
|
},
|
|
9
9
|
emits: ["update:modelValue"],
|
|
10
10
|
setup(n, { emit: d }) {
|
|
11
|
-
r();
|
|
12
11
|
const c = d, l = (a) => c("update:modelValue", a);
|
|
13
|
-
return (a,
|
|
12
|
+
return (a, C) => (o(), t("div", {
|
|
14
13
|
class: i(["btn-icon-group", { disabled: n.disabled }])
|
|
15
14
|
}, [
|
|
16
|
-
(o(!0), t(
|
|
17
|
-
key: e.value + ":" +
|
|
15
|
+
(o(!0), t(r, null, v(n.options, (e, u) => (o(), t("div", {
|
|
16
|
+
key: e.value + ":" + u,
|
|
18
17
|
class: i(["btn-icon-group__option", { active: n.modelValue === e.value }]),
|
|
19
18
|
tabindex: n.modelValue === e.value || n.disabled ? void 0 : 0,
|
|
20
|
-
onKeydown:
|
|
21
|
-
onClick: (
|
|
19
|
+
onKeydown: b((s) => l(e.value), ["enter"]),
|
|
20
|
+
onClick: (s) => l(e.value)
|
|
22
21
|
}, [
|
|
23
|
-
(o(), y(
|
|
24
|
-
], 42,
|
|
22
|
+
(o(), k(y(e.icon)))
|
|
23
|
+
], 42, B))), 128))
|
|
25
24
|
], 2));
|
|
26
25
|
}
|
|
27
26
|
});
|
|
28
27
|
export {
|
|
29
|
-
|
|
28
|
+
f as default
|
|
30
29
|
};
|
|
31
30
|
//# sourceMappingURL=BtnIconGroup.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BtnIconGroup.vue.js","sources":["../../src/components/BtnIconGroup.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {Component
|
|
1
|
+
{"version":3,"file":"BtnIconGroup.vue.js","sources":["../../src/components/BtnIconGroup.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Component } from 'vue';\n\nconst emit = defineEmits(['update:modelValue']);\n\nconst emitModel = (v: unknown) => emit('update:modelValue', v);\n\ndefineProps<{\n modelValue: unknown;\n options: { value: string | number; icon: Component }[];\n disabled?: boolean;\n}>();\n</script>\n\n<template>\n <div class=\"btn-icon-group\" :class=\"{ disabled }\">\n <div\n v-for=\"(opt, i) in options\"\n :key=\"opt.value + ':' + i\"\n class=\"btn-icon-group__option\"\n :tabindex=\"modelValue === opt.value || disabled ? undefined : 0\"\n :class=\"{ active: modelValue === opt.value }\"\n @keydown.enter=\"emitModel(opt.value)\"\n @click=\"emitModel(opt.value)\"\n >\n <component :is=\"opt.icon\"/>\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","emitModel","v","_createElementBlock","_normalizeClass","__props","_openBlock","_Fragment","_renderList","opt","i","_withKeys","$event","_createBlock","_resolveDynamicComponent"],"mappings":";;;;;;;;;;AAGA,UAAMA,IAAOC,GAEPC,IAAY,CAACC,MAAeH,EAAK,qBAAqBG,CAAC;2BAU3DC,EAYM,OAAA;AAAA,MAZD,OAAKC,EAAA,CAAC,kBAAgB,EAAA,UAAWC,EAAA,UAAQ,CAAA;AAAA,IAAA;OAC5CC,EAAA,EAAA,GAAAH,EAUMI,GAAA,MAAAC,EATeH,EAAA,SAAO,CAAlBI,GAAKC,YADfP,EAUM,OAAA;AAAA,QARH,KAAKM,EAAI,cAAcC;AAAA,QACxB,UAAM,0BAAwB,EAAA,QAEZL,iBAAeI,EAAI,MAAA,CAAK,CAAA;AAAA,QADzC,UAAUJ,iBAAeI,EAAI,SAASJ,EAAA,WAAW,SAAS;AAAA,QAE1D,WAAOM,EAAA,CAAAC,MAAQX,EAAUQ,EAAI,KAAK,GAAA,CAAA,OAAA,CAAA;AAAA,QAClC,SAAK,CAAAG,MAAEX,EAAUQ,EAAI,KAAK;AAAA,MAAA;cAE3BI,EAA2BC,EAAXL,EAAI,IAAI,CAAA;AAAA,MAAA;;;;"}
|
|
@@ -55,9 +55,7 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
55
55
|
], async ([t, e]) => {
|
|
56
56
|
t === void 0 || e || !a.value.columnsDataStore || (m.value = await L(t));
|
|
57
57
|
}, { immediate: !0 }), y(() => m.value, async (t) => {
|
|
58
|
-
if (c.value === void 0 ||
|
|
59
|
-
d.value !== void 0 || // tabBy selected and has selected value
|
|
60
|
-
t === void 0)
|
|
58
|
+
if (c.value === void 0 || d.value !== void 0 || t === void 0)
|
|
61
59
|
return;
|
|
62
60
|
let e = t;
|
|
63
61
|
if (t === null && (e = await G(c.value, "")), e != null && e.length) {
|
|
@@ -147,9 +145,9 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
147
145
|
])
|
|
148
146
|
]),
|
|
149
147
|
H(r(z), {
|
|
150
|
-
type: "success",
|
|
151
148
|
modelValue: r(a).reactive.showTooltipHint,
|
|
152
149
|
"onUpdate:modelValue": e[1] || (e[1] = (o) => r(a).reactive.showTooltipHint = o),
|
|
150
|
+
type: "success",
|
|
153
151
|
class: "chart_tooltipHint",
|
|
154
152
|
width: "170px"
|
|
155
153
|
}, {
|
|
@@ -161,29 +159,29 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
161
159
|
c.value ? (l(), T("div", ue, [
|
|
162
160
|
m.value || m.value === void 0 && r(a).loading.inputGuide ? (l(), u(r(X), {
|
|
163
161
|
key: 0,
|
|
164
|
-
label: "Show for",
|
|
165
162
|
modelValue: d.value,
|
|
166
163
|
"onUpdate:modelValue": [
|
|
167
164
|
e[2] || (e[2] = (o) => d.value = o),
|
|
168
165
|
e[3] || (e[3] = (o) => b(o))
|
|
169
166
|
],
|
|
167
|
+
label: "Show for",
|
|
170
168
|
options: m.value
|
|
171
169
|
}, null, 8, ["modelValue", "options"])) : (l(), u(r(J), {
|
|
172
170
|
key: 1,
|
|
173
|
-
label: "Show for",
|
|
174
171
|
modelValue: d.value,
|
|
175
172
|
"onUpdate:modelValue": [
|
|
176
173
|
e[4] || (e[4] = (o) => d.value = o),
|
|
177
174
|
e[5] || (e[5] = (o) => b(o))
|
|
178
175
|
],
|
|
176
|
+
label: "Show for",
|
|
179
177
|
"options-search": (o) => G(c.value, o),
|
|
180
178
|
"model-search": (o) => A(c.value, o)
|
|
181
179
|
}, null, 8, ["modelValue", "options-search", "model-search"]))
|
|
182
180
|
])) : s("", !0),
|
|
183
181
|
h("div", {
|
|
184
|
-
class: R(["chart_main-content", [{ "chart_main-content__dendro": r(a).reactive.chartType === "dendro" }, "pl-scrollable"]]),
|
|
185
182
|
ref_key: "chartContainerRef",
|
|
186
|
-
ref: P
|
|
183
|
+
ref: P,
|
|
184
|
+
class: R(["chart_main-content", [{ "chart_main-content__dendro": r(a).reactive.chartType === "dendro" }, "pl-scrollable"]])
|
|
187
185
|
}, [
|
|
188
186
|
h("div", {
|
|
189
187
|
id: "chartSvgContainer",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.vue.js","sources":["../../src/components/Chart.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ChartInterface } from '@milaboratories/miplots4';\nimport { SelectorStateFilter } from '@milaboratories/pf-plots';\nimport { ListOption, PlAutocomplete, PlBtnGhost, PlDropdown, PlNotificationAlert } from '@platforma-sdk/ui-vue';\nimport { computed, ref, watch } from 'vue';\nimport DendroTable from '../components/DendroTable.vue';\nimport DendroTooltip from '../components/DendroTooltip.vue';\nimport LassoControls from '../components/LassoControls/index.vue';\nimport Loading from '../components/Loading.vue';\nimport Zoom from '../components/Zoom/index.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../constantsCommon.ts';\nimport EditIcon from '../icons/EditIcon.vue';\nimport { useStore } from '../store.ts';\nimport { GraphStatus } from '../types.ts';\n\nconst emit = defineEmits(['graph-title-update', 'dendro-node-select', 'dendro-tooltip-btn-click']);\n\nconst store = useStore();\n\nconst props = defineProps<{\n graphStatus: GraphStatus,\n graphTitle: string,\n dendroTooltipButton?: string,\n chartData: Record<string, unknown> | null,\n chartRef: ChartInterface | null,\n}>();\n\nconst title = ref(props.graphTitle);\n// title can be updated from graph-maker settings\nwatch(() => props.graphTitle, (graphTitle) => {\n title.value = graphTitle;\n});\n\nconst tabByState = computed(() => store.value.reactive.optionsState.components.tabBy?.selectorStates[0] as SelectorStateFilter | undefined);\nconst tabBySource = computed(() => tabByState.value?.selectedSource);\nconst tabByFilterValue = computed(() => tabByState.value?.selectedFilterValues?.[0]);\n\nconst tabByLocalValue = ref(tabByFilterValue.value);\nwatch(() => tabBySource.value, (value, prevValue) => { // tabBy column changed, needs to update selected value\n if (value !== prevValue) {\n tabByLocalValue.value = tabByFilterValue.value;\n }\n}, { immediate: true });\n\nasync function loadOptions(sourceId:string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n const response = await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH);\n return response.overflow ? null : response.values;\n}\nconst preloadedOptions = ref<ListOption[]|null|undefined>();\nwatch([\n () => tabBySource.value,\n () => store.value.loading.inputGuide\n], async ([v, loading]) => {\n if (v === undefined || loading || !store.value.columnsDataStore) {\n return undefined;\n }\n preloadedOptions.value = await loadOptions(v);\n}, {immediate: true});\n\nwatch(() => preloadedOptions.value, async (opts) => {\n if (\n tabBySource.value === undefined || // no tabBy selected\n tabByLocalValue.value !== undefined || // tabBy selected and has selected value\n opts === undefined // options not loaded yet\n ) {\n return;\n }\n let availableOptions = opts;\n if (opts === null) { // options loaded but too many unique values\n availableOptions = await searchFilterOptions(tabBySource.value, '');\n }\n if (availableOptions?.length) {\n const nextFilterValue = availableOptions[0].value as string;\n tabByLocalValue.value = nextFilterValue;\n onFilterValueUpdate(nextFilterValue);\n }\n}, { immediate: true });\n\n\nfunction onFilterValueUpdate(value:string) {\n const prevSelectorStates = store.value.reactive.optionsState.components.tabBy.selectorStates;\n if (prevSelectorStates.length) {\n store.value.reactive.optionsState.components.tabBy.selectorStates = [{\n ...prevSelectorStates[0],\n type: 'equals',\n selectedFilterValues: [value]\n }];\n }\n}\n\nfunction onTitleChange(e: Event) {\n const target = e.currentTarget as HTMLInputElement;\n title.value = target.value;\n emit('graph-title-update', target.value);\n}\n\nfunction onTableRowSelect(id: number) {\n emit('dendro-node-select', id);\n}\n\nasync function searchFilterOptions(sourceId:string, searchStr:string):Promise<ListOption[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchStr || undefined)).values;\n}\n\nasync function searchSelectedFilterValueOptions(sourceId:string, selectedValue:string):Promise<ListOption> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve({value: selectedValue, label: ' '}); // don't show non-human-readable value\n }\n const value = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore, store.value.inputGuide.value,\n sourceId, 1, undefined, selectedValue).then(v => v.values[0]);\n return value;\n}\n\nconst chartContainerRef = ref();\n\nconst hasPrimaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.primaryGrouping?.selectorStates.length) {\n const columnName = optionsState.primaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some(v => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nconst hasSecondaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.secondaryGrouping?.selectorStates.length) {\n const columnName = optionsState.secondaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some(v => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nfunction openAxesSettingsPrimary() {\n store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\nfunction openAxesSettingsSecondary() {\n store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\n\n</script>\n\n<template>\n <div class=\"chart_container\">\n <div class=\"chart_header\">\n <input class=\"chart_title\" :value=\"title\" @change=\"onTitleChange\"\n @keyup.enter=\"(e) => {(e.target as HTMLInputElement)?.blur()}\" />\n <component class=\"chart_titleEdit\" :is=\"EditIcon\" />\n <div class=\"chart_titleLineSlot\">\n <slot></slot>\n </div>\n </div>\n <PlNotificationAlert\n type=\"success\"\n v-model=\"store.reactive.showTooltipHint\"\n class=\"chart_tooltipHint\"\n width=\"170px\"\n >\n Hit enter to pin tooltip\n </PlNotificationAlert>\n <div class=\"chart_tabBy\" v-if=\"tabBySource\">\n <pl-dropdown\n v-if=\"preloadedOptions || (preloadedOptions === undefined && store.loading.inputGuide)\"\n label=\"Show for\"\n v-model=\"tabByLocalValue\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n :options=\"preloadedOptions\"\n />\n <pl-autocomplete\n v-else\n label=\"Show for\"\n v-model=\"tabByLocalValue\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n :options-search=\"(str) => searchFilterOptions(tabBySource as string, str)\"\n :model-search=\"(v) => searchSelectedFilterValueOptions(tabBySource as string, v as string)\"\n />\n </div>\n <div class=\"chart_main-content\" ref=\"chartContainerRef\"\n :class=\"[{'chart_main-content__dendro': store.reactive.chartType === 'dendro'}, 'pl-scrollable']\">\n <div\n id=\"chartSvgContainer\"\n :class=\"{\n 'chart_loading': graphStatus === 'loading',\n 'chart_noDataMapping': graphStatus === 'notReady',\n 'chart_emptyData': graphStatus === 'empty',\n 'chart_inconsistent': graphStatus === 'inconsistent',\n 'chart_error': graphStatus === 'error',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n >\n <loading v-if=\"graphStatus === 'loading'\" :top=\"10\"/>\n </div>\n <dendro-table\n v-if=\"store.reactive.chartType === 'dendro' && chartData && store.reactive.layersSettings.dendro.showTable\"\n :chartData=\"chartData\"\n @row-select=\"onTableRowSelect\"\n />\n <dendro-tooltip\n v-if=\"store.reactive.dendroInfoByClick\"\n :info=\"store.reactive.dendroInfoByClick\"\n :containerRef=\"chartContainerRef\"\n :tooltipBtn=\"dendroTooltipButton\"\n @tooltip-btn-click=\"(id:string) => $emit('dendro-tooltip-btn-click', id)\"\n @close=\"\n store.reactive.dendroInfoByClick = null;\n $emit('dendro-node-select', null);\n \"\n />\n </div>\n <div class=\"chart_controls\" v-if=\"graphStatus !== 'empty'\">\n <zoom />\n <lasso-controls v-if=\"store.reactive.chartType === 'scatterplot-umap'\" :chart-ref=\"chartRef\"/>\n <PlBtnGhost v-if=\"hasPrimaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsPrimary()\">\n Hidden (primary)\n </PlBtnGhost>\n <PlBtnGhost v-if=\"hasSecondaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsSecondary()\">\n Hidden (secondary)\n </PlBtnGhost>\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","store","useStore","props","__props","title","ref","watch","graphTitle","tabByState","computed","_a","tabBySource","tabByFilterValue","_b","tabByLocalValue","value","prevValue","loadOptions","sourceId","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","loading","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","prevSelectorStates","onTitleChange","e","target","onTableRowSelect","id","searchStr","searchSelectedFilterValueOptions","selectedValue","chartContainerRef","hasPrimaryHidden","optionsState","columnName","dataBindAes","hasSecondaryHidden","openAxesSettingsPrimary","openAxesSettingsSecondary","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createBlock","_resolveDynamicComponent","EditIcon","_hoisted_4","_renderSlot","_ctx","_createVNode","_unref","PlNotificationAlert","$event","_cache","_hoisted_5","PlDropdown","PlAutocomplete","str","_normalizeClass","Loading","DendroTable","DendroTooltip","$emit","_hoisted_6","Zoom","LassoControls","PlBtnGhost"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Chart.vue.js","sources":["../../src/components/Chart.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ChartInterface } from '@milaboratories/miplots4';\nimport type { SelectorStateFilter } from '@milaboratories/pf-plots';\nimport type { ListOption } from '@platforma-sdk/ui-vue';\nimport { PlAutocomplete, PlBtnGhost, PlDropdown, PlNotificationAlert } from '@platforma-sdk/ui-vue';\nimport { computed, ref, watch } from 'vue';\nimport DendroTable from '../components/DendroTable.vue';\nimport DendroTooltip from '../components/DendroTooltip.vue';\nimport LassoControls from '../components/LassoControls/index.vue';\nimport Loading from '../components/Loading.vue';\nimport Zoom from '../components/Zoom/index.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../constantsCommon.ts';\nimport EditIcon from '../icons/EditIcon.vue';\nimport { useStore } from '../store.ts';\nimport type { GraphStatus } from '../types.ts';\n\nconst emit = defineEmits(['graph-title-update', 'dendro-node-select', 'dendro-tooltip-btn-click']);\n\nconst store = useStore();\n\nconst props = defineProps<{\n graphStatus: GraphStatus;\n graphTitle: string;\n dendroTooltipButton?: string;\n chartData: Record<string, unknown> | null;\n chartRef: ChartInterface | null;\n}>();\n\nconst title = ref(props.graphTitle);\n// title can be updated from graph-maker settings\nwatch(() => props.graphTitle, (graphTitle) => {\n title.value = graphTitle;\n});\n\nconst tabByState = computed(() => store.value.reactive.optionsState.components.tabBy?.selectorStates[0] as SelectorStateFilter | undefined);\nconst tabBySource = computed(() => tabByState.value?.selectedSource);\nconst tabByFilterValue = computed(() => tabByState.value?.selectedFilterValues?.[0]);\n\nconst tabByLocalValue = ref(tabByFilterValue.value);\nwatch(() => tabBySource.value, (value, prevValue) => { // tabBy column changed, needs to update selected value\n if (value !== prevValue) {\n tabByLocalValue.value = tabByFilterValue.value;\n }\n}, { immediate: true });\n\nasync function loadOptions(sourceId: string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n const response = await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH);\n return response.overflow ? null : response.values;\n}\nconst preloadedOptions = ref<ListOption[] | null | undefined>();\nwatch([\n () => tabBySource.value,\n () => store.value.loading.inputGuide,\n], async ([v, loading]) => {\n if (v === undefined || loading || !store.value.columnsDataStore) {\n return undefined;\n }\n preloadedOptions.value = await loadOptions(v);\n}, { immediate: true });\n\nwatch(() => preloadedOptions.value, async (opts) => {\n if (\n tabBySource.value === undefined // no tabBy selected\n || tabByLocalValue.value !== undefined // tabBy selected and has selected value\n || opts === undefined // options not loaded yet\n ) {\n return;\n }\n let availableOptions = opts;\n if (opts === null) { // options loaded but too many unique values\n availableOptions = await searchFilterOptions(tabBySource.value, '');\n }\n if (availableOptions?.length) {\n const nextFilterValue = availableOptions[0].value as string;\n tabByLocalValue.value = nextFilterValue;\n onFilterValueUpdate(nextFilterValue);\n }\n}, { immediate: true });\n\nfunction onFilterValueUpdate(value: string) {\n const prevSelectorStates = store.value.reactive.optionsState.components.tabBy.selectorStates;\n if (prevSelectorStates.length) {\n store.value.reactive.optionsState.components.tabBy.selectorStates = [{\n ...prevSelectorStates[0],\n type: 'equals',\n selectedFilterValues: [value],\n }];\n }\n}\n\nfunction onTitleChange(e: Event) {\n const target = e.currentTarget as HTMLInputElement;\n title.value = target.value;\n emit('graph-title-update', target.value);\n}\n\nfunction onTableRowSelect(id: number) {\n emit('dendro-node-select', id);\n}\n\nasync function searchFilterOptions(sourceId: string, searchStr: string): Promise<ListOption[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchStr || undefined)).values;\n}\n\nasync function searchSelectedFilterValueOptions(sourceId: string, selectedValue: string): Promise<ListOption> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve({ value: selectedValue, label: ' ' }); // don't show non-human-readable value\n }\n const value = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore, store.value.inputGuide.value,\n sourceId, 1, undefined, selectedValue).then((v) => v.values[0]);\n return value;\n}\n\nconst chartContainerRef = ref();\n\nconst hasPrimaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.primaryGrouping?.selectorStates.length) {\n const columnName = optionsState.primaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nconst hasSecondaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.secondaryGrouping?.selectorStates.length) {\n const columnName = optionsState.secondaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nfunction openAxesSettingsPrimary() {\n store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\nfunction openAxesSettingsSecondary() {\n store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\n\n</script>\n\n<template>\n <div class=\"chart_container\">\n <div class=\"chart_header\">\n <input\n class=\"chart_title\" :value=\"title\" @change=\"onTitleChange\"\n @keyup.enter=\"(e) => {(e.target as HTMLInputElement)?.blur()}\"\n />\n <component :is=\"EditIcon\" class=\"chart_titleEdit\" />\n <div class=\"chart_titleLineSlot\">\n <slot/>\n </div>\n </div>\n <PlNotificationAlert\n v-model=\"store.reactive.showTooltipHint\"\n type=\"success\"\n class=\"chart_tooltipHint\"\n width=\"170px\"\n >\n Hit enter to pin tooltip\n </PlNotificationAlert>\n <div v-if=\"tabBySource\" class=\"chart_tabBy\">\n <PlDropdown\n v-if=\"preloadedOptions || (preloadedOptions === undefined && store.loading.inputGuide)\"\n v-model=\"tabByLocalValue\"\n label=\"Show for\"\n :options=\"preloadedOptions\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n <PlAutocomplete\n v-else\n v-model=\"tabByLocalValue\"\n label=\"Show for\"\n :options-search=\"(str) => searchFilterOptions(tabBySource as string, str)\"\n :model-search=\"(v) => searchSelectedFilterValueOptions(tabBySource as string, v as string)\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n </div>\n <div\n ref=\"chartContainerRef\" class=\"chart_main-content\"\n :class=\"[{'chart_main-content__dendro': store.reactive.chartType === 'dendro'}, 'pl-scrollable']\"\n >\n <div\n id=\"chartSvgContainer\"\n :class=\"{\n 'chart_loading': graphStatus === 'loading',\n 'chart_noDataMapping': graphStatus === 'notReady',\n 'chart_emptyData': graphStatus === 'empty',\n 'chart_inconsistent': graphStatus === 'inconsistent',\n 'chart_error': graphStatus === 'error',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n >\n <Loading v-if=\"graphStatus === 'loading'\" :top=\"10\"/>\n </div>\n <DendroTable\n v-if=\"store.reactive.chartType === 'dendro' && chartData && store.reactive.layersSettings.dendro.showTable\"\n :chartData=\"chartData\"\n @row-select=\"onTableRowSelect\"\n />\n <DendroTooltip\n v-if=\"store.reactive.dendroInfoByClick\"\n :info=\"store.reactive.dendroInfoByClick\"\n :containerRef=\"chartContainerRef\"\n :tooltipBtn=\"dendroTooltipButton\"\n @tooltip-btn-click=\"(id:string) => $emit('dendro-tooltip-btn-click', id)\"\n @close=\"\n store.reactive.dendroInfoByClick = null;\n $emit('dendro-node-select', null);\n \"\n />\n </div>\n <div v-if=\"graphStatus !== 'empty'\" class=\"chart_controls\">\n <Zoom />\n <LassoControls v-if=\"store.reactive.chartType === 'scatterplot-umap'\" :chart-ref=\"chartRef\"/>\n <PlBtnGhost v-if=\"hasPrimaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsPrimary()\">\n Hidden (primary)\n </PlBtnGhost>\n <PlBtnGhost v-if=\"hasSecondaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsSecondary()\">\n Hidden (secondary)\n </PlBtnGhost>\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","store","useStore","props","__props","title","ref","watch","graphTitle","tabByState","computed","_a","tabBySource","tabByFilterValue","_b","tabByLocalValue","value","prevValue","loadOptions","sourceId","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","loading","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","prevSelectorStates","onTitleChange","e","target","onTableRowSelect","id","searchStr","searchSelectedFilterValueOptions","selectedValue","chartContainerRef","hasPrimaryHidden","optionsState","columnName","dataBindAes","hasSecondaryHidden","openAxesSettingsPrimary","openAxesSettingsSecondary","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createBlock","_resolveDynamicComponent","EditIcon","_hoisted_4","_renderSlot","_ctx","_createVNode","_unref","PlNotificationAlert","$event","_cache","_hoisted_5","PlDropdown","PlAutocomplete","str","_normalizeClass","Loading","DendroTable","DendroTooltip","$emit","_hoisted_6","Zoom","LassoControls","PlBtnGhost"],"mappings":"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"}
|
|
@@ -16,8 +16,8 @@ const S = { class: "collapsable-block-content" }, B = /* @__PURE__ */ u({
|
|
|
16
16
|
}, [
|
|
17
17
|
n("div", {
|
|
18
18
|
class: "collapsable-block-title",
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
style: l,
|
|
20
|
+
onClick: p[0] || (p[0] = (_) => t.value = !t.value)
|
|
21
21
|
}, [
|
|
22
22
|
e.icon ? (d(), h(y(!t.value && e.iconOpen ? e.iconOpen : e.icon), { key: 0 })) : b("", !0),
|
|
23
23
|
n("span", null, z(e.title), 1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsableBlock.vue.js","sources":["../../src/components/CollapsableBlock.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {Component} from
|
|
1
|
+
{"version":3,"file":"CollapsableBlock.vue.js","sources":["../../src/components/CollapsableBlock.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Component } from 'vue';\nimport { ref } from 'vue';\n\nconst props = defineProps<{\n iconOpen?: Component;\n icon?: Component;\n title: string;\n settings?: {\n defaultState?: 'open' | 'close';\n height?: number;\n horizontalPadding?: number;\n };\n}>();\n\nconst minimized = ref(props.settings?.defaultState !== 'open');\nconst titleStyle: Record<string, string> = {};\nconst containerStyle: Record<string, string> = {};\nif (props.settings?.height) {\n containerStyle['--title-height'] = `${props.settings?.height}px`;\n}\nif (props.settings?.horizontalPadding) {\n titleStyle['padding'] = `0 ${props.settings?.horizontalPadding}px`;\n}\n\n</script>\n\n<template>\n <div class=\"collapsable-block-container\" :class=\"{minimized: minimized, maximized: !minimized}\" :style=\"containerStyle\">\n <div class=\"collapsable-block-title\" :style=\"titleStyle\" @click=\"minimized = !minimized\">\n <component :is=\"!minimized && props.iconOpen ? props.iconOpen : props.icon\" v-if=\"props.icon\"/>\n <span>{{ props.title }}</span>\n </div>\n <div class=\"collapsable-block-content\">\n <slot/>\n </div>\n </div>\n</template>\n"],"names":["props","__props","minimized","ref","_a","titleStyle","containerStyle","_b","_c","_d","_e","_createElementBlock","_normalizeClass","_createElementVNode","_cache","$event","_openBlock","_createBlock","_resolveDynamicComponent","_toDisplayString","_hoisted_1","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;AAIA,UAAMA,IAAQC,GAWRC,IAAYC,IAAIC,IAAAJ,EAAM,aAAN,gBAAAI,EAAgB,kBAAiB,MAAM,GACvDC,IAAqC,CAAA,GACrCC,IAAyC,CAAA;AAC/C,YAAIC,IAAAP,EAAM,aAAN,QAAAO,EAAgB,WAClBD,EAAe,gBAAgB,IAAI,IAAGE,IAAAR,EAAM,aAAN,gBAAAQ,EAAgB,MAAM,QAE1DC,IAAAT,EAAM,aAAN,QAAAS,EAAgB,sBAClBJ,EAAW,UAAa,MAAKK,IAAAV,EAAM,aAAN,gBAAAU,EAAgB,iBAAiB,uBAM9DC,EAQM,OAAA;AAAA,MARD,OAAKC,EAAA,CAAC,+BAA6B,EAAA,WAAqBV,EAAA,mBAAuBA,EAAA,MAAA,CAAS,CAAA;AAAA,MAAI,OAAOI;AAAA,IAAA;MACtGO,EAGM,OAAA;AAAA,QAHD,OAAM;AAAA,QAA2B,OAAOR;AAAA,QAAa,SAAKS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEb,EAAA,QAAS,CAAIA,EAAA;AAAA,MAAA;QACMF,EAAM,QAAxFgB,EAAA,GAAAC,EAA+FC,EAAA,CAA9EhB,EAAA,SAAaF,EAAM,WAAWA,EAAM,WAAWA,EAAM,IAAI,GAAA,EAAA,KAAA,GAAA;QAC1Ea,EAA8B,QAAA,MAAAM,EAArBnB,EAAM,KAAK,GAAA,CAAA;AAAA,MAAA;MAEtBa,EAEM,OAFNO,GAEM;AAAA,QADJC,EAAOC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;"}
|
|
@@ -80,10 +80,10 @@ const q = /* @__PURE__ */ y({
|
|
|
80
80
|
columnDefs: s.value,
|
|
81
81
|
rowHeight: z.value,
|
|
82
82
|
autoSizeStrategy: { type: "fitCellContents" },
|
|
83
|
+
domLayout: "autoHeight",
|
|
83
84
|
onGridColumnsChanged: t[0] || (t[0] = () => {
|
|
84
85
|
d();
|
|
85
|
-
})
|
|
86
|
-
domLayout: "autoHeight"
|
|
86
|
+
})
|
|
87
87
|
}, null, 8, ["theme", "gridApi", "rowData", "columnDefs", "rowHeight"])
|
|
88
88
|
], 4));
|
|
89
89
|
}
|