@milaboratories/graph-maker 1.1.224 → 1.1.225
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/AesSettings/AesDataMappingDiscrete.vue.d.ts.map +1 -1
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js +7 -3
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js.map +1 -1
- package/dist/components/AesSettings/DiscreteRow.vue.d.ts.map +1 -1
- package/dist/components/AesSettings/DiscreteRow.vue2.js +10 -9
- package/dist/components/AesSettings/DiscreteRow.vue2.js.map +1 -1
- package/dist/forms/LayersForm/AesSelector.vue.d.ts.map +1 -1
- package/dist/forms/LayersForm/AesSelector.vue.js +140 -131
- package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AesDataMappingDiscrete.vue.d.ts","sourceRoot":"","sources":["../../../src/components/AesSettings/AesDataMappingDiscrete.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AesDataMappingDiscrete.vue.d.ts","sourceRoot":"","sources":["../../../src/components/AesSettings/AesDataMappingDiscrete.vue"],"names":[],"mappings":"AAyRA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EACV,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAW3B,KAAK,WAAW,GAAG;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,UAAU,EAAE,2BAA2B,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;;;;;;AAsZF,wBAQG"}
|
|
@@ -118,9 +118,13 @@ const oe = { class: "aes-mapping-block" }, te = { style: { margin: "0 24px" } },
|
|
|
118
118
|
return a ? o : o.filter((t) => t.value !== "null");
|
|
119
119
|
}
|
|
120
120
|
const A = c(S(l.modelValue, l.allowNullOption)), b = p(() => A.value);
|
|
121
|
-
return x(
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
return x(
|
|
122
|
+
[() => i.value, () => l.allowNullOption],
|
|
123
|
+
() => {
|
|
124
|
+
A.value = S(l.modelValue, l.allowNullOption);
|
|
125
|
+
},
|
|
126
|
+
{ deep: !0 }
|
|
127
|
+
), x(() => b.value, (e) => {
|
|
124
128
|
m("update:modelValue", {
|
|
125
129
|
...l.modelValue,
|
|
126
130
|
order: e.map((a) => a.value)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AesDataMappingDiscrete.vue2.js","sources":["../../../src/components/AesSettings/AesDataMappingDiscrete.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { scaleLinear } from 'd3-scale';\nimport { computed, ref, watch } from 'vue';\nimport type {\n DotShape,\n LineType,\n Palette,\n} from './types';\nimport {\n isCategorical,\n PALETTE_MAP, UNKNOWN_COLOR,\n} from '../../constantsAesthetic';\nimport type { AesType } from '../../constantsCommon';\nimport type {\n AestheticMappingCategorical,\n} from '../../dataBindAes';\nimport {\n createCategoricalMappingFromPalette,\n} from '../../dataBindAes';\nimport FormWrapper from './FormWrapper.vue';\nimport PalettesForm from './PalettesForm.vue';\nimport MultiselectButton from '../MultiselectButton.vue';\nimport PlColorSlider from '../PlColorSlider.vue';\nimport DiscreteRow from './DiscreteRow.vue';\nimport { PlElementList } from '@platforma-sdk/ui-vue';\n\nconst props = defineProps<{\n dataColumnLabel: string;\n columnValueLabels: Record<string, string>;\n usedAesInMapping: Record<AesType, boolean>;\n modelValue: AestheticMappingCategorical;\n allowReordering?: boolean;\n allowHiding?: boolean;\n allowNullOption?: boolean;\n}>();\n\nconst emit = defineEmits(['update:modelValue']);\n\nconst palettesOpen = ref(false);\nconst palette = ref<Palette>(props.modelValue.palette);\nconst categorical = computed(() => isCategorical(palette.value));\n\ntype EditableAesType = 'color' | 'dotShape' | 'lineType';\n\nconst activeValue = ref<string | null>(null);\nconst activeValueIndex = computed(() => {\n if (activeValue.value === null) {\n return null;\n }\n return props.modelValue.order.indexOf(activeValue.value);\n});\nconst activeAesType = ref<EditableAesType | null>(null);\n\nfunction onPaletteSelect(value: Palette) {\n palette.value = value;\n palettesOpen.value = false;\n emit(\n 'update:modelValue',\n createCategoricalMappingFromPalette(value, props.modelValue.order),\n );\n}\n\nfunction onAesValueUpdate(\n value: string | number,\n aesField: string,\n aesValue: string | DotShape | LineType,\n) {\n emit('update:modelValue', {\n ...props.modelValue,\n mapping: {\n ...props.modelValue.mapping,\n [value]: {\n ...props.modelValue.mapping[value],\n aes: {\n ...props.modelValue.mapping[value].aes,\n [aesField]: aesValue,\n },\n },\n },\n });\n}\n\nfunction closeForm() {\n activeValue.value = null;\n activeAesType.value = null;\n}\n\nfunction switchVisibility(option: { value: string }) {\n emit('update:modelValue', {\n ...props.modelValue,\n hidden: {\n ...props.modelValue.hidden,\n [option.value]: props.modelValue.hidden?.[option.value] ? false : true,\n },\n });\n}\n\nfunction getColorScale(colors: string[], unknownColor: string, from = 0, to = 1) {\n const colorStep = 1 / (colors.length - 1);\n const scale = scaleLinear<string, string>()\n .domain(colors.map((_c, idx) => from + idx * colorStep * (to - from)))\n .range(colors);\n return (v: number) => {\n if (v > to || v < from) {\n return unknownColor;\n }\n return scale(v);\n };\n}\n\nconst continuousColorScale = computed(() =>\n getColorScale(PALETTE_MAP[palette.value].colors, UNKNOWN_COLOR),\n);\n\nconst colorForPercent = computed(() =>\n getColorScale(PALETTE_MAP[palette.value].colors, UNKNOWN_COLOR, 0, 100),\n);\nconst continuousMappingItems = ref(\n props.modelValue.order.map(\n (item) => props.modelValue.mapping[item].colorIdx * 100,\n ),\n);\nwatch(\n () => props.modelValue,\n (v) => {\n continuousMappingItems.value = v.order.map(\n (item) => v.mapping[item].colorIdx * 100,\n );\n },\n);\nfunction updateContinuousColors(v: number[]) {\n v.forEach((value, idx) => {\n const item = props.modelValue.order[idx];\n const newColorIdx = value / 100;\n if (props.modelValue.mapping[item].colorIdx !== newColorIdx) {\n emit('update:modelValue', {\n ...props.modelValue,\n mapping: {\n ...props.modelValue.mapping,\n [item]: {\n colorIdx: newColorIdx,\n aes: {\n ...props.modelValue.mapping[item].aes,\n color: continuousColorScale.value(newColorIdx),\n },\n },\n },\n });\n }\n });\n}\n\nfunction setActiveElementFromColorSlider(e: { index: number; status: boolean }) {\n activeAesType.value = 'color';\n activeValue.value = e.status ? props.modelValue.order[e.index] : null;\n}\n\nfunction getOptionsList(data: AestheticMappingCategorical, allowNullOption: boolean) {\n const options = data.order.map((value: string) => {\n return {\n text: props.columnValueLabels[value],\n value,\n dotShape: data.mapping[value]?.aes?.dotShape,\n color: data.mapping[value]?.aes?.color,\n lineType: data.mapping[value]?.aes?.lineShape,\n };\n });\n return allowNullOption ? options : options.filter((op) => op.value !== 'null');\n}\n\nconst optionsList = ref(getOptionsList(props.modelValue, props.allowNullOption));\nconst reordarableItems = computed(() => optionsList.value);\n\nwatch([() => palette.value, () => props.allowNullOption], () => {\n optionsList.value = getOptionsList(props.modelValue, props.allowNullOption);\n}, { deep: true });\nwatch(() => reordarableItems.value, (v) => {\n emit('update:modelValue', {\n ...props.modelValue,\n order: v.map((item) => item.value),\n });\n}, { deep: true });\n</script>\n\n<template>\n <div class=\"aes-mapping-block\">\n <div style=\"margin: 0 24px\">\n <div class=\"section-title\">\n <span>{{ dataColumnLabel }}</span>\n </div>\n <div style=\"margin: 24px 0\">\n <MultiselectButton\n label=\"Color Palette \" icon=\"chevron-right\" :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\" @button-click=\"\n palettesOpen = true;\n closeForm();\n \"\n />\n </div>\n <div v-if=\"!categorical\" style=\"margin: 24px 0\">\n <PlColorSlider\n v-model=\"continuousMappingItems\" :colors=\"PALETTE_MAP[palette].colors\"\n :get-color-for-percent=\"colorForPercent\" :active=\"activeValueIndex\" @active=\"setActiveElementFromColorSlider\"\n @update:model-value=\"updateContinuousColors\"\n />\n </div>\n <FormWrapper\n v-if=\"palettesOpen\" title=\"Color Palette\" back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <PalettesForm :selected=\"palette\" @select=\"onPaletteSelect\" />\n </FormWrapper>\n </div>\n <div v-if=\"allowReordering\" class=\"aes-settings-hint\">\n Drag the rows to reorder\n </div>\n <div class=\"column-values-list\">\n <PlElementList\n v-model:items=\"reordarableItems\"\n :get-item-key=\"(item) => item.value\"\n :item-class=\"$style.discreteRow\"\n :item-class-title=\"$style.discreteRowTitle\"\n :disableDragging=\"!allowReordering\"\n :disableRemoving=\"true\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n >\n <template #item-title=\"{ item }\">\n <DiscreteRow\n :item=\"item\"\n :active-value=\"activeValue\"\n :active-aes-type=\"activeAesType\"\n :used-aes-in-mapping=\"props.usedAesInMapping\"\n :allow-hiding=\"allowHiding ?? false\"\n :allow-reordering=\"allowReordering ?? false\"\n :hidden=\"props.modelValue.hidden?.[item.value] ?? false\"\n :palette=\"palette\"\n :is-categorical=\"categorical\"\n :on-aes-value-update=\"(field: string, value: string | DotShape | LineType) => onAesValueUpdate(item.value, field, value)\"\n :on-switch-visibility=\"() => switchVisibility(item)\" :on-active-value-change=\"(v) => activeValue = v\"\n :on-active-aes-type-change=\"(v) => activeAesType = v\" :on-close-form=\"closeForm\"\n />\n </template>\n </PlElementList>\n </div>\n </div>\n</template>\n<style module>\n.discreteRow {\n background-color: var(--color-ic-00);\n border-color: var(--color-div-grey);\n}\n.discreteRow:hover {\n --head-background: var(--color-ic-00);\n}\n.discreteRowTitle {\n padding-top: 0;\n padding-bottom: 0;\n background-color: var(--color-ic-00);\n}\n.discreteRow:hover .discreteRowTitle {\n background-color: var(--color-ic-00);\n}\n</style>\n"],"names":["props","__props","emit","__emit","palettesOpen","ref","palette","categorical","computed","isCategorical","activeValue","activeValueIndex","activeAesType","onPaletteSelect","value","createCategoricalMappingFromPalette","onAesValueUpdate","aesField","aesValue","closeForm","switchVisibility","option","_a","getColorScale","colors","unknownColor","from","to","colorStep","scale","scaleLinear","_c","idx","v","continuousColorScale","PALETTE_MAP","UNKNOWN_COLOR","colorForPercent","continuousMappingItems","item","watch","updateContinuousColors","newColorIdx","setActiveElementFromColorSlider","getOptionsList","data","allowNullOption","options","_b","_d","_f","_e","op","optionsList","reordarableItems","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_createVNode","MultiselectButton","_unref","_cache","$event","_hoisted_5","PlColorSlider","_createBlock","FormWrapper","PalettesForm","_hoisted_6","_hoisted_7","PlElementList","$style","_withCtx","DiscreteRow","field"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AesDataMappingDiscrete.vue2.js","sources":["../../../src/components/AesSettings/AesDataMappingDiscrete.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { scaleLinear } from 'd3-scale';\nimport { computed, ref, watch } from 'vue';\nimport type {\n DotShape,\n LineType,\n Palette,\n} from './types';\nimport {\n isCategorical,\n PALETTE_MAP, UNKNOWN_COLOR,\n} from '../../constantsAesthetic';\nimport type { AesType } from '../../constantsCommon';\nimport type {\n AestheticMappingCategorical,\n} from '../../dataBindAes';\nimport {\n createCategoricalMappingFromPalette,\n} from '../../dataBindAes';\nimport FormWrapper from './FormWrapper.vue';\nimport PalettesForm from './PalettesForm.vue';\nimport MultiselectButton from '../MultiselectButton.vue';\nimport PlColorSlider from '../PlColorSlider.vue';\nimport DiscreteRow from './DiscreteRow.vue';\nimport { PlElementList } from '@platforma-sdk/ui-vue';\n\nconst props = defineProps<{\n dataColumnLabel: string;\n columnValueLabels: Record<string, string>;\n usedAesInMapping: Record<AesType, boolean>;\n modelValue: AestheticMappingCategorical;\n allowReordering?: boolean;\n allowHiding?: boolean;\n allowNullOption?: boolean;\n}>();\n\nconst emit = defineEmits(['update:modelValue']);\n\nconst palettesOpen = ref(false);\nconst palette = ref<Palette>(props.modelValue.palette);\nconst categorical = computed(() => isCategorical(palette.value));\n\ntype EditableAesType = 'color' | 'dotShape' | 'lineType';\n\nconst activeValue = ref<string | null>(null);\nconst activeValueIndex = computed(() => {\n if (activeValue.value === null) {\n return null;\n }\n return props.modelValue.order.indexOf(activeValue.value);\n});\nconst activeAesType = ref<EditableAesType | null>(null);\n\nfunction onPaletteSelect(value: Palette) {\n palette.value = value;\n palettesOpen.value = false;\n emit(\n 'update:modelValue',\n createCategoricalMappingFromPalette(value, props.modelValue.order),\n );\n}\n\nfunction onAesValueUpdate(\n value: string | number,\n aesField: string,\n aesValue: string | DotShape | LineType,\n) {\n emit('update:modelValue', {\n ...props.modelValue,\n mapping: {\n ...props.modelValue.mapping,\n [value]: {\n ...props.modelValue.mapping[value],\n aes: {\n ...props.modelValue.mapping[value].aes,\n [aesField]: aesValue,\n },\n },\n },\n });\n}\n\nfunction closeForm() {\n activeValue.value = null;\n activeAesType.value = null;\n}\n\nfunction switchVisibility(option: { value: string }) {\n emit('update:modelValue', {\n ...props.modelValue,\n hidden: {\n ...props.modelValue.hidden,\n [option.value]: props.modelValue.hidden?.[option.value] ? false : true,\n },\n });\n}\n\nfunction getColorScale(colors: string[], unknownColor: string, from = 0, to = 1) {\n const colorStep = 1 / (colors.length - 1);\n const scale = scaleLinear<string, string>()\n .domain(colors.map((_c, idx) => from + idx * colorStep * (to - from)))\n .range(colors);\n return (v: number) => {\n if (v > to || v < from) {\n return unknownColor;\n }\n return scale(v);\n };\n}\n\nconst continuousColorScale = computed(() =>\n getColorScale(PALETTE_MAP[palette.value].colors, UNKNOWN_COLOR),\n);\n\nconst colorForPercent = computed(() =>\n getColorScale(PALETTE_MAP[palette.value].colors, UNKNOWN_COLOR, 0, 100),\n);\nconst continuousMappingItems = ref(\n props.modelValue.order.map(\n (item) => props.modelValue.mapping[item].colorIdx * 100,\n ),\n);\nwatch(\n () => props.modelValue,\n (v) => {\n continuousMappingItems.value = v.order.map(\n (item) => v.mapping[item].colorIdx * 100,\n );\n },\n);\nfunction updateContinuousColors(v: number[]) {\n v.forEach((value, idx) => {\n const item = props.modelValue.order[idx];\n const newColorIdx = value / 100;\n if (props.modelValue.mapping[item].colorIdx !== newColorIdx) {\n emit('update:modelValue', {\n ...props.modelValue,\n mapping: {\n ...props.modelValue.mapping,\n [item]: {\n colorIdx: newColorIdx,\n aes: {\n ...props.modelValue.mapping[item].aes,\n color: continuousColorScale.value(newColorIdx),\n },\n },\n },\n });\n }\n });\n}\n\nfunction setActiveElementFromColorSlider(e: { index: number; status: boolean }) {\n activeAesType.value = 'color';\n activeValue.value = e.status ? props.modelValue.order[e.index] : null;\n}\n\nfunction getOptionsList(data: AestheticMappingCategorical, allowNullOption: boolean) {\n const options = data.order.map((value: string) => {\n return {\n text: props.columnValueLabels[value],\n value,\n dotShape: data.mapping[value]?.aes?.dotShape,\n color: data.mapping[value]?.aes?.color,\n lineType: data.mapping[value]?.aes?.lineShape,\n };\n });\n return allowNullOption ? options : options.filter((op) => op.value !== 'null');\n}\n\nconst optionsList = ref(getOptionsList(props.modelValue, props.allowNullOption));\nconst reordarableItems = computed(() => optionsList.value);\n\nwatch(\n [() => palette.value, () => props.allowNullOption],\n () => {\n optionsList.value = getOptionsList(props.modelValue, props.allowNullOption);\n },\n { deep: true },\n);\nwatch(() => reordarableItems.value, (v) => {\n emit('update:modelValue', {\n ...props.modelValue,\n order: v.map((item) => item.value),\n });\n}, { deep: true });\n</script>\n\n<template>\n <div class=\"aes-mapping-block\">\n <div style=\"margin: 0 24px\">\n <div class=\"section-title\">\n <span>{{ dataColumnLabel }}</span>\n </div>\n <div style=\"margin: 24px 0\">\n <MultiselectButton\n label=\"Color Palette \" icon=\"chevron-right\" :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\" @button-click=\"\n palettesOpen = true;\n closeForm();\n \"\n />\n </div>\n <div v-if=\"!categorical\" style=\"margin: 24px 0\">\n <PlColorSlider\n v-model=\"continuousMappingItems\" :colors=\"PALETTE_MAP[palette].colors\"\n :get-color-for-percent=\"colorForPercent\" :active=\"activeValueIndex\" @active=\"setActiveElementFromColorSlider\"\n @update:model-value=\"updateContinuousColors\"\n />\n </div>\n <FormWrapper\n v-if=\"palettesOpen\" title=\"Color Palette\" back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <PalettesForm :selected=\"palette\" @select=\"onPaletteSelect\" />\n </FormWrapper>\n </div>\n <div v-if=\"allowReordering\" class=\"aes-settings-hint\">\n Drag the rows to reorder\n </div>\n <div class=\"column-values-list\">\n <PlElementList\n v-model:items=\"reordarableItems\"\n :get-item-key=\"(item) => item.value\"\n :item-class=\"$style.discreteRow\"\n :item-class-title=\"$style.discreteRowTitle\"\n :disableDragging=\"!allowReordering\"\n :disableRemoving=\"true\"\n :disableToggling=\"true\"\n :disablePinning=\"true\"\n >\n <template #item-title=\"{ item }\">\n <DiscreteRow\n :item=\"item\"\n :active-value=\"activeValue\"\n :active-aes-type=\"activeAesType\"\n :used-aes-in-mapping=\"props.usedAesInMapping\"\n :allow-hiding=\"allowHiding ?? false\"\n :allow-reordering=\"allowReordering ?? false\"\n :hidden=\"props.modelValue.hidden?.[item.value] ?? false\"\n :palette=\"palette\"\n :is-categorical=\"categorical\"\n :on-aes-value-update=\"(field: string, value: string | DotShape | LineType) => onAesValueUpdate(item.value, field, value)\"\n :on-switch-visibility=\"() => switchVisibility(item)\" :on-active-value-change=\"(v) => activeValue = v\"\n :on-active-aes-type-change=\"(v) => activeAesType = v\" :on-close-form=\"closeForm\"\n />\n </template>\n </PlElementList>\n </div>\n </div>\n</template>\n<style module>\n.discreteRow {\n background-color: var(--color-ic-00);\n border-color: var(--color-div-grey);\n}\n.discreteRow:hover {\n --head-background: var(--color-ic-00);\n}\n.discreteRowTitle {\n padding-top: 0;\n padding-bottom: 0;\n background-color: var(--color-ic-00);\n}\n.discreteRow:hover .discreteRowTitle {\n background-color: var(--color-ic-00);\n}\n</style>\n"],"names":["props","__props","emit","__emit","palettesOpen","ref","palette","categorical","computed","isCategorical","activeValue","activeValueIndex","activeAesType","onPaletteSelect","value","createCategoricalMappingFromPalette","onAesValueUpdate","aesField","aesValue","closeForm","switchVisibility","option","_a","getColorScale","colors","unknownColor","from","to","colorStep","scale","scaleLinear","_c","idx","v","continuousColorScale","PALETTE_MAP","UNKNOWN_COLOR","colorForPercent","continuousMappingItems","item","watch","updateContinuousColors","newColorIdx","setActiveElementFromColorSlider","getOptionsList","data","allowNullOption","options","_b","_d","_f","_e","op","optionsList","reordarableItems","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_createVNode","MultiselectButton","_unref","_cache","$event","_hoisted_5","PlColorSlider","_createBlock","FormWrapper","PalettesForm","_hoisted_6","_hoisted_7","PlElementList","$style","_withCtx","DiscreteRow","field"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscreteRow.vue.d.ts","sourceRoot":"","sources":["../../../src/components/AesSettings/DiscreteRow.vue"],"names":[],"mappings":"AA4MA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAOrD,KAAK,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzD,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACrB,CAAC;IACF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC/E,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,qBAAqB,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/D,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;;
|
|
1
|
+
{"version":3,"file":"DiscreteRow.vue.d.ts","sourceRoot":"","sources":["../../../src/components/AesSettings/DiscreteRow.vue"],"names":[],"mappings":"AA4MA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAOrD,KAAK,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzD,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;KACrB,CAAC;IACF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC/E,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,qBAAqB,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/D,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;;AAgSF,wBAOG"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { defineComponent as $, computed as T, reactive as S, createElementBlock as m, openBlock as o, normalizeClass as a, createElementVNode as s, toDisplayString as
|
|
2
|
-
import { PALETTE_MAP as w, FIXED_LINE_TYPES as
|
|
1
|
+
import { defineComponent as $, computed as T, reactive as S, createElementBlock as m, openBlock as o, normalizeClass as a, createElementVNode as s, toDisplayString as h, createBlock as d, createCommentVNode as u, unref as g, withCtx as r, withModifiers as y, createVNode as k, normalizeStyle as C } from "vue";
|
|
2
|
+
import { PALETTE_MAP as w, FIXED_LINE_TYPES as F, FIXES_DOT_SHAPES as p } from "../../constantsAesthetic.js";
|
|
3
3
|
import { getPopupHeightForFixedAesList as E } from "../../utils/getPopupHeightForFixedAesList.js";
|
|
4
4
|
import { PlTooltip as I, PlIcon24 as P } from "@platforma-sdk/ui-vue";
|
|
5
5
|
import R from "../Popup.vue.js";
|
|
6
6
|
import B from "./FixedLineTypeList.vue.js";
|
|
7
7
|
import M from "./FixedDotShapeList.vue.js";
|
|
8
8
|
import U from "./FixedColorsList.vue.js";
|
|
9
|
-
const
|
|
9
|
+
const H = ["title"], Y = /* @__PURE__ */ $({
|
|
10
10
|
__name: "DiscreteRow",
|
|
11
11
|
props: {
|
|
12
12
|
item: {},
|
|
@@ -33,7 +33,7 @@ const G = /* @__PURE__ */ $({
|
|
|
33
33
|
const A = T(
|
|
34
34
|
() => w[n.palette].colors.map((i) => ({ color: i, name: i }))
|
|
35
35
|
), V = T(() => n.activeAesType ? E(
|
|
36
|
-
n.activeAesType === "lineType" ?
|
|
36
|
+
n.activeAesType === "lineType" ? F.length : n.activeAesType === "dotShape" ? p.length : A.value.length,
|
|
37
37
|
n.activeAesType
|
|
38
38
|
) : 0), f = S({
|
|
39
39
|
color: {},
|
|
@@ -47,8 +47,9 @@ const G = /* @__PURE__ */ $({
|
|
|
47
47
|
class: a([i.$style.columnValue, { [i.$style.withReorering]: e.allowReordering }])
|
|
48
48
|
}, [
|
|
49
49
|
s("div", {
|
|
50
|
-
class: a(i.$style.title)
|
|
51
|
-
|
|
50
|
+
class: a(i.$style.title),
|
|
51
|
+
title: e.item.text
|
|
52
|
+
}, h(e.item.text), 11, H),
|
|
52
53
|
s("div", {
|
|
53
54
|
class: a(i.$style.aesGroup)
|
|
54
55
|
}, [
|
|
@@ -66,7 +67,7 @@ const G = /* @__PURE__ */ $({
|
|
|
66
67
|
class: a(i.$style.aes),
|
|
67
68
|
onClick: t[0] || (t[0] = y((l) => e.onSwitchVisibility(), ["stop"]))
|
|
68
69
|
}, [
|
|
69
|
-
|
|
70
|
+
k(g(P), {
|
|
70
71
|
name: e.hidden ? "view-hide" : "view-show"
|
|
71
72
|
}, null, 8, ["name"])
|
|
72
73
|
], 2)
|
|
@@ -107,7 +108,7 @@ const G = /* @__PURE__ */ $({
|
|
|
107
108
|
}, [
|
|
108
109
|
s("div", {
|
|
109
110
|
class: a(i.$style.color),
|
|
110
|
-
style:
|
|
111
|
+
style: C({ background: e.item.color })
|
|
111
112
|
}, null, 6)
|
|
112
113
|
], 2)) : u("", !0),
|
|
113
114
|
(e.activeAesType !== "color" || e.isCategorical) && e.activeAesType !== null && e.activeValue === e.item.value ? (o(), d(R, {
|
|
@@ -154,6 +155,6 @@ const G = /* @__PURE__ */ $({
|
|
|
154
155
|
}
|
|
155
156
|
});
|
|
156
157
|
export {
|
|
157
|
-
|
|
158
|
+
Y as default
|
|
158
159
|
};
|
|
159
160
|
//# sourceMappingURL=DiscreteRow.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscreteRow.vue2.js","sources":["../../../src/components/AesSettings/DiscreteRow.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { type ComponentPublicInstance, computed, reactive } from 'vue';\nimport { FIXED_LINE_TYPES, FIXES_DOT_SHAPES, PALETTE_MAP } from '../../constantsAesthetic';\nimport { getPopupHeightForFixedAesList } from '../../utils/getPopupHeightForFixedAesList';\nimport type { Palette, DotShape, LineType } from './types';\nimport type { AesType } from '../../constantsCommon';\nimport { PlIcon24, PlTooltip } from '@platforma-sdk/ui-vue';\nimport Popup from '../Popup.vue';\nimport FixedLineTypeList from './FixedLineTypeList.vue';\nimport FixedDotShapeList from './FixedDotShapeList.vue';\nimport FixedColorsList from './FixedColorsList.vue';\n\ntype EditableAesType = 'color' | 'dotShape' | 'lineType';\n\nconst props = defineProps<{\n item: {\n text: string;\n value: string;\n dotShape?: DotShape;\n color?: string;\n lineType?: LineType;\n };\n activeValue: string | null;\n activeAesType: EditableAesType | null;\n usedAesInMapping: Record<AesType, boolean>;\n palette: Palette;\n allowReordering: boolean;\n allowHiding: boolean;\n hidden: boolean;\n isCategorical: boolean;\n onAesValueUpdate: (field: string, value: string | DotShape | LineType) => void;\n onSwitchVisibility: () => void;\n onActiveValueChange: (value: string | null) => void;\n onActiveAesTypeChange: (value: EditableAesType | null) => void;\n onCloseForm: () => void;\n}>();\n\nfunction toggleForm(\n item: typeof props.item,\n valueType: EditableAesType,\n) {\n const isThisFormOpen = props.activeValue === item.value && props.activeAesType === valueType;\n props.onActiveValueChange(isThisFormOpen ? null : item.value);\n props.onActiveAesTypeChange(isThisFormOpen ? null : valueType);\n}\n\nconst selectedColorsList = computed(() =>\n PALETTE_MAP[props.palette].colors.map((color: string) => ({ color, name: color })),\n);\nconst popupHeight = computed(() => {\n if (!props.activeAesType) {\n return 0;\n }\n return getPopupHeightForFixedAesList(\n props.activeAesType === 'lineType' ? FIXED_LINE_TYPES.length : props.activeAesType === 'dotShape' ? FIXES_DOT_SHAPES.length : selectedColorsList.value.length,\n props.activeAesType,\n );\n});\n\nconst itemRefs = reactive<\n Record<EditableAesType, Record<string, ComponentPublicInstance | Element>>\n>({\n color: {},\n dotShape: {},\n lineType: {},\n});\nfunction setRef(\n type: EditableAesType,\n item: typeof props.item,\n el: ComponentPublicInstance | null | Element,\n) {\n if (el) {\n itemRefs[type][item.value] = el;\n }\n}\n</script>\n<template>\n <div :class=\"[$style.columnValue, { [$style.withReorering]: allowReordering }]\">\n <div :class=\"$style.title\">{{ item.text }}</div>\n <div :class=\"$style.aesGroup\">\n <PlTooltip v-if=\"allowHiding\" :open-delay=\"100\" :close-delay=\"100\">\n <div :style=\"{ cursor: 'pointer' }\" :class=\"$style.aes\" @click.stop=\"onSwitchVisibility()\">\n <PlIcon24 :name=\"hidden ? 'view-hide' : 'view-show'\" />\n </div>\n <template #tooltip>\n <span> Show / hide </span>\n </template>\n </PlTooltip>\n <div\n v-if=\"usedAesInMapping.lineType\" :ref=\"(v) => setRef('lineType', item, v)\" :class=\"[$style.aes, {\n [$style.selected]:\n activeValue === item.value &&\n activeAesType === 'lineType'\n }]\" @click.stop=\"toggleForm(item, 'lineType')\"\n >\n <div class=\"icon__line line\" :class=\"{ [`line__${item.lineType}`]: true }\" />\n </div>\n <div\n v-if=\"usedAesInMapping.dotShape\" :ref=\"(v) => setRef('dotShape', item, v)\" :class=\"[$style.aes, {\n [$style.selected]: activeValue === item.value && activeAesType === 'dotShape'\n }]\" @click.stop=\"toggleForm(item, 'dotShape')\"\n >\n <div class=\"dot\" :class=\"{ [`dot__${item.dotShape}`]: true }\" />\n </div>\n <div\n v-if=\"usedAesInMapping.fill || usedAesInMapping.stroke\" :ref=\"(v) => setRef('color', item, v)\"\n :class=\"[$style.aes, {\n [$style.selected]: activeValue === item.value && activeAesType === 'color'\n }]\" @click.stop=\"toggleForm(item, 'color')\"\n >\n <div :class=\"$style.color\" :style=\"{ background: item.color }\" />\n </div>\n <Popup\n v-if=\"\n (activeAesType !== 'color' || isCategorical) &&\n activeAesType !== null &&\n activeValue === item.value\n \" :key=\"`${activeAesType}_${activeValue}`\" :targetRef=\"itemRefs[activeAesType][activeValue] as HTMLElement\"\n :height=\"popupHeight\" @popup:close=\"onCloseForm\"\n >\n <div class=\"fixed-aes-list\" :class=\"{ 'fixed-aes-list__rows': false }\">\n <FixedLineTypeList\n v-if=\"activeAesType === 'lineType'\" v-model=\"item.lineType as LineType\" @update:modelValue=\"\n (v: LineType) => props.onAesValueUpdate('lineShape', v)\n \"\n />\n <FixedDotShapeList\n v-if=\"activeAesType === 'dotShape'\" v-model=\"item.dotShape as DotShape\" @update:modelValue=\"\n (v: DotShape) => props.onAesValueUpdate('dotShape', v)\n \"\n />\n <FixedColorsList\n v-if=\"activeAesType === 'color'\" v-model=\"item.color as string\"\n :colors-list=\"selectedColorsList\" @update:modelValue=\"\n (v: string) => props.onAesValueUpdate('color', v)\n \"\n />\n </div>\n </Popup>\n </div>\n </div>\n</template>\n\n<style module>\n.columnValue {\n display: flex;\n align-items: center;\n padding-left: 12px;\n padding-right: 2px;\n margin-bottom: 6px;\n background-color: var(--color-ic-00);\n width: 100%;\n}\n\n.columnValue.withReorering {\n padding-left: 4px;\n}\n\n.columnValue:last-child {\n margin-bottom: 0;\n}\n\n.title {\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: 8px;\n line-height: 24px;\n}\n\n.color {\n width: 18px;\n height: 18px;\n border-radius: 3px;\n}\n\n.aesGroup {\n margin-left: auto;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n}\n\n.aes {\n width: 40px;\n height: 40px;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n background: var(--color-ic-00);\n border-radius: var(--border-radius-control);\n}\n\n.aes.selected {\n border: var(--contour-border-width) solid var(--contour-color);\n box-shadow: var(--contour-box-shadow);\n z-index: 1;\n}\n</style>\n"],"names":["props","__props","toggleForm","item","valueType","isThisFormOpen","selectedColorsList","computed","PALETTE_MAP","color","popupHeight","getPopupHeightForFixedAesList","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","itemRefs","reactive","setRef","type","el","_createElementBlock","_normalizeClass","$style","_createElementVNode","_toDisplayString","_createBlock","_unref","PlTooltip","_cache","_createVNode","PlIcon24","v","_withModifiers","$event","_normalizeStyle","Popup","FixedLineTypeList","FixedDotShapeList","FixedColorsList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DiscreteRow.vue2.js","sources":["../../../src/components/AesSettings/DiscreteRow.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { type ComponentPublicInstance, computed, reactive } from 'vue';\nimport { FIXED_LINE_TYPES, FIXES_DOT_SHAPES, PALETTE_MAP } from '../../constantsAesthetic';\nimport { getPopupHeightForFixedAesList } from '../../utils/getPopupHeightForFixedAesList';\nimport type { Palette, DotShape, LineType } from './types';\nimport type { AesType } from '../../constantsCommon';\nimport { PlIcon24, PlTooltip } from '@platforma-sdk/ui-vue';\nimport Popup from '../Popup.vue';\nimport FixedLineTypeList from './FixedLineTypeList.vue';\nimport FixedDotShapeList from './FixedDotShapeList.vue';\nimport FixedColorsList from './FixedColorsList.vue';\n\ntype EditableAesType = 'color' | 'dotShape' | 'lineType';\n\nconst props = defineProps<{\n item: {\n text: string;\n value: string;\n dotShape?: DotShape;\n color?: string;\n lineType?: LineType;\n };\n activeValue: string | null;\n activeAesType: EditableAesType | null;\n usedAesInMapping: Record<AesType, boolean>;\n palette: Palette;\n allowReordering: boolean;\n allowHiding: boolean;\n hidden: boolean;\n isCategorical: boolean;\n onAesValueUpdate: (field: string, value: string | DotShape | LineType) => void;\n onSwitchVisibility: () => void;\n onActiveValueChange: (value: string | null) => void;\n onActiveAesTypeChange: (value: EditableAesType | null) => void;\n onCloseForm: () => void;\n}>();\n\nfunction toggleForm(\n item: typeof props.item,\n valueType: EditableAesType,\n) {\n const isThisFormOpen = props.activeValue === item.value && props.activeAesType === valueType;\n props.onActiveValueChange(isThisFormOpen ? null : item.value);\n props.onActiveAesTypeChange(isThisFormOpen ? null : valueType);\n}\n\nconst selectedColorsList = computed(() =>\n PALETTE_MAP[props.palette].colors.map((color: string) => ({ color, name: color })),\n);\nconst popupHeight = computed(() => {\n if (!props.activeAesType) {\n return 0;\n }\n return getPopupHeightForFixedAesList(\n props.activeAesType === 'lineType' ? FIXED_LINE_TYPES.length : props.activeAesType === 'dotShape' ? FIXES_DOT_SHAPES.length : selectedColorsList.value.length,\n props.activeAesType,\n );\n});\n\nconst itemRefs = reactive<\n Record<EditableAesType, Record<string, ComponentPublicInstance | Element>>\n>({\n color: {},\n dotShape: {},\n lineType: {},\n});\nfunction setRef(\n type: EditableAesType,\n item: typeof props.item,\n el: ComponentPublicInstance | null | Element,\n) {\n if (el) {\n itemRefs[type][item.value] = el;\n }\n}\n</script>\n<template>\n <div :class=\"[$style.columnValue, { [$style.withReorering]: allowReordering }]\">\n <div :class=\"$style.title\" :title=\"item.text\">{{ item.text }}</div>\n <div :class=\"$style.aesGroup\">\n <PlTooltip v-if=\"allowHiding\" :open-delay=\"100\" :close-delay=\"100\">\n <div :style=\"{ cursor: 'pointer' }\" :class=\"$style.aes\" @click.stop=\"onSwitchVisibility()\">\n <PlIcon24 :name=\"hidden ? 'view-hide' : 'view-show'\" />\n </div>\n <template #tooltip>\n <span> Show / hide </span>\n </template>\n </PlTooltip>\n <div\n v-if=\"usedAesInMapping.lineType\" :ref=\"(v) => setRef('lineType', item, v)\" :class=\"[$style.aes, {\n [$style.selected]:\n activeValue === item.value &&\n activeAesType === 'lineType'\n }]\" @click.stop=\"toggleForm(item, 'lineType')\"\n >\n <div class=\"icon__line line\" :class=\"{ [`line__${item.lineType}`]: true }\" />\n </div>\n <div\n v-if=\"usedAesInMapping.dotShape\" :ref=\"(v) => setRef('dotShape', item, v)\" :class=\"[$style.aes, {\n [$style.selected]: activeValue === item.value && activeAesType === 'dotShape'\n }]\" @click.stop=\"toggleForm(item, 'dotShape')\"\n >\n <div class=\"dot\" :class=\"{ [`dot__${item.dotShape}`]: true }\" />\n </div>\n <div\n v-if=\"usedAesInMapping.fill || usedAesInMapping.stroke\" :ref=\"(v) => setRef('color', item, v)\"\n :class=\"[$style.aes, {\n [$style.selected]: activeValue === item.value && activeAesType === 'color'\n }]\" @click.stop=\"toggleForm(item, 'color')\"\n >\n <div :class=\"$style.color\" :style=\"{ background: item.color }\" />\n </div>\n <Popup\n v-if=\"\n (activeAesType !== 'color' || isCategorical) &&\n activeAesType !== null &&\n activeValue === item.value\n \" :key=\"`${activeAesType}_${activeValue}`\" :targetRef=\"itemRefs[activeAesType][activeValue] as HTMLElement\"\n :height=\"popupHeight\" @popup:close=\"onCloseForm\"\n >\n <div class=\"fixed-aes-list\" :class=\"{ 'fixed-aes-list__rows': false }\">\n <FixedLineTypeList\n v-if=\"activeAesType === 'lineType'\" v-model=\"item.lineType as LineType\" @update:modelValue=\"\n (v: LineType) => props.onAesValueUpdate('lineShape', v)\n \"\n />\n <FixedDotShapeList\n v-if=\"activeAesType === 'dotShape'\" v-model=\"item.dotShape as DotShape\" @update:modelValue=\"\n (v: DotShape) => props.onAesValueUpdate('dotShape', v)\n \"\n />\n <FixedColorsList\n v-if=\"activeAesType === 'color'\" v-model=\"item.color as string\"\n :colors-list=\"selectedColorsList\" @update:modelValue=\"\n (v: string) => props.onAesValueUpdate('color', v)\n \"\n />\n </div>\n </Popup>\n </div>\n </div>\n</template>\n\n<style module>\n.columnValue {\n display: flex;\n align-items: center;\n padding-left: 12px;\n padding-right: 2px;\n margin-bottom: 6px;\n background-color: var(--color-ic-00);\n width: 100%;\n}\n\n.columnValue.withReorering {\n padding-left: 4px;\n}\n\n.columnValue:last-child {\n margin-bottom: 0;\n}\n\n.title {\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: 8px;\n line-height: 24px;\n}\n\n.color {\n width: 18px;\n height: 18px;\n border-radius: 3px;\n}\n\n.aesGroup {\n margin-left: auto;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n}\n\n.aes {\n width: 40px;\n height: 40px;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n background: var(--color-ic-00);\n border-radius: var(--border-radius-control);\n}\n\n.aes.selected {\n border: var(--contour-border-width) solid var(--contour-color);\n box-shadow: var(--contour-box-shadow);\n z-index: 1;\n}\n</style>\n"],"names":["props","__props","toggleForm","item","valueType","isThisFormOpen","selectedColorsList","computed","PALETTE_MAP","color","popupHeight","getPopupHeightForFixedAesList","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","itemRefs","reactive","setRef","type","el","_createElementBlock","_normalizeClass","$style","_createElementVNode","_toDisplayString","_hoisted_1","_createBlock","_unref","PlTooltip","_cache","_createVNode","PlIcon24","v","_withModifiers","$event","_normalizeStyle","Popup","FixedLineTypeList","FixedDotShapeList","FixedColorsList"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AesSelector.vue.d.ts","sourceRoot":"","sources":["../../../src/forms/LayersForm/AesSelector.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AesSelector.vue.d.ts","sourceRoot":"","sources":["../../../src/forms/LayersForm/AesSelector.vue"],"names":[],"mappings":"AAuZA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAWlE,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,WAAW,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;;;AAiiBF,wBAOG"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as q, computed as y, ref as x, watch as U, createElementBlock as _, openBlock as S, Fragment as ee, createElementVNode as w, createBlock as T, createCommentVNode as b, createVNode as M, withModifiers as te, unref as O, withCtx as L, normalizeClass as le } from "vue";
|
|
2
2
|
import { PlDropdown as ae } from "@platforma-sdk/ui-vue";
|
|
3
|
-
import { createDefaultMapping as
|
|
4
|
-
import { FIXED_COLORS as A, DEFAULT_LINE_TYPE as ie, DEFAULT_DOT_SHAPE as ne, FIXED_LINE_TYPES as
|
|
5
|
-
import
|
|
6
|
-
import { useStore as
|
|
7
|
-
import { isMappedAes as
|
|
3
|
+
import { createDefaultMapping as ue, createContinuousMappingFromPalette as oe } from "../../dataBindAes.js";
|
|
4
|
+
import { FIXED_COLORS as A, DEFAULT_LINE_TYPE as ie, DEFAULT_DOT_SHAPE as ne, FIXED_LINE_TYPES as re, FIXES_DOT_SHAPES as se } from "../../constantsAesthetic.js";
|
|
5
|
+
import de from "../../components/AesButton.vue.js";
|
|
6
|
+
import { useStore as pe } from "../../store.js";
|
|
7
|
+
import { isMappedAes as W } from "../../constantsCommon.js";
|
|
8
8
|
import ve from "../../components/Popup.vue.js";
|
|
9
9
|
import ce from "../../components/AesSettings/FixedColorsList.vue.js";
|
|
10
10
|
import fe from "../../components/AesSettings/FixedDotShapeList.vue.js";
|
|
@@ -12,7 +12,7 @@ import me from "../../components/AesSettings/FixedLineTypeList.vue.js";
|
|
|
12
12
|
import ge from "../../components/AesSettings/FormWrapper.vue.js";
|
|
13
13
|
import ye from "../../components/AesSettings/AesDataMappingDiscrete.vue.js";
|
|
14
14
|
import Se from "../../components/AesSettings/AesDataMappingContinuous.vue.js";
|
|
15
|
-
const Te = { class: "aes-input-row" }, He = /* @__PURE__ */
|
|
15
|
+
const Te = { class: "aes-input-row" }, He = /* @__PURE__ */ q({
|
|
16
16
|
__name: "AesSelector",
|
|
17
17
|
props: {
|
|
18
18
|
label: {},
|
|
@@ -25,9 +25,9 @@ const Te = { class: "aes-input-row" }, He = /* @__PURE__ */ Z({
|
|
|
25
25
|
disabled: { type: Boolean }
|
|
26
26
|
},
|
|
27
27
|
emits: ["aes-update", "aes-selector-close"],
|
|
28
|
-
setup(
|
|
28
|
+
setup(n, { emit: X }) {
|
|
29
29
|
var N, B;
|
|
30
|
-
const
|
|
30
|
+
const s = n, d = pe(), u = y(() => d.value.reactive.chartType), $ = X, Y = {
|
|
31
31
|
discrete: ["primaryGrouping", "secondaryGrouping"],
|
|
32
32
|
scatterplot: ["grouping"],
|
|
33
33
|
"scatterplot-umap": ["grouping"],
|
|
@@ -35,212 +35,221 @@ const Te = { class: "aes-input-row" }, He = /* @__PURE__ */ Z({
|
|
|
35
35
|
heatmap: [],
|
|
36
36
|
histogram: ["grouping"],
|
|
37
37
|
bubble: []
|
|
38
|
-
}, G =
|
|
39
|
-
() =>
|
|
38
|
+
}, G = s.possibleAesSourceInputs ?? Y[u.value], z = y(
|
|
39
|
+
() => d.value.commonHelpersData.usedAesInMapping.value
|
|
40
40
|
);
|
|
41
|
-
function V(
|
|
42
|
-
return typeof
|
|
41
|
+
function V(t) {
|
|
42
|
+
return typeof t == "string" ? t : u.value === "scatterplot" ? `grouping_${t.value}` : u.value === "dendro" ? `${t.type}_${t.value}` : t.type;
|
|
43
43
|
}
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
),
|
|
44
|
+
const r = x(
|
|
45
|
+
W(s.selected) ? V(s.selected) : "fix"
|
|
46
|
+
), K = {
|
|
47
47
|
fill: A[0].color,
|
|
48
48
|
stroke: A[0].color,
|
|
49
49
|
dotShape: ne,
|
|
50
50
|
lineType: ie,
|
|
51
51
|
size: ""
|
|
52
52
|
// temporary
|
|
53
|
-
},
|
|
53
|
+
}, j = y(() => d.value.inputGuide.value), J = y(() => d.value.uniqueValuesData.value), H = /* @__PURE__ */ new Set([
|
|
54
54
|
"scatterplot",
|
|
55
55
|
"scatterplot-umap",
|
|
56
56
|
"heatmap"
|
|
57
|
-
]),
|
|
58
|
-
const
|
|
59
|
-
function v(a,
|
|
60
|
-
const
|
|
61
|
-
if (H.has(
|
|
62
|
-
const
|
|
63
|
-
|
|
57
|
+
]), p = y(() => {
|
|
58
|
+
const t = {}, e = d.value.reactive.optionsState.components;
|
|
59
|
+
function v(a, l) {
|
|
60
|
+
const o = j.value.getSourceInfo(l), c = J.value[l], F = (c == null ? void 0 : c.list) ?? [], f = (c == null ? void 0 : c.labels) ?? {}, I = V({ type: a, value: l });
|
|
61
|
+
if (H.has(u.value) && o.type === "String" || !H.has(u.value)) {
|
|
62
|
+
const C = d.value.reactive.dataBindAes[l] ?? ue(F, d.value.defaultPalette.categorical);
|
|
63
|
+
t[I] = {
|
|
64
64
|
type: "dataCategorical",
|
|
65
|
-
value:
|
|
66
|
-
initialData:
|
|
65
|
+
value: I,
|
|
66
|
+
initialData: C,
|
|
67
67
|
inputName: a,
|
|
68
|
-
selectedSource:
|
|
69
|
-
selectedSourceInfo:
|
|
70
|
-
selectedSourceValues:
|
|
71
|
-
labels:
|
|
68
|
+
selectedSource: l,
|
|
69
|
+
selectedSourceInfo: o,
|
|
70
|
+
selectedSourceValues: F,
|
|
71
|
+
labels: C.order.reduce(
|
|
72
72
|
(R, k) => (R[k] = f[k] ?? String(k), R),
|
|
73
73
|
{}
|
|
74
74
|
)
|
|
75
75
|
};
|
|
76
76
|
} else {
|
|
77
|
-
const
|
|
78
|
-
|
|
77
|
+
const C = d.value.reactive.dataBindAes[l] ?? oe(d.value.defaultPalette.continuous);
|
|
78
|
+
t[I] = {
|
|
79
79
|
type: "dataContinuous",
|
|
80
|
-
value:
|
|
81
|
-
initialData:
|
|
80
|
+
value: I,
|
|
81
|
+
initialData: C,
|
|
82
82
|
inputName: a,
|
|
83
|
-
selectedSource:
|
|
84
|
-
selectedSourceInfo:
|
|
85
|
-
selectedSourceValues:
|
|
83
|
+
selectedSource: l,
|
|
84
|
+
selectedSourceInfo: o,
|
|
85
|
+
selectedSourceValues: F
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
return G.forEach((a) => {
|
|
90
|
-
var
|
|
91
|
-
(
|
|
92
|
-
v(a,
|
|
90
|
+
var l;
|
|
91
|
+
(l = e == null ? void 0 : e[a]) != null && l.selectorStates.length && e[a].selectorStates.forEach(({ selectedSource: o }) => {
|
|
92
|
+
v(a, o);
|
|
93
93
|
});
|
|
94
|
-
}),
|
|
94
|
+
}), s.withoutFixed || (t.fix = {
|
|
95
95
|
type: "fix",
|
|
96
96
|
value: "fix",
|
|
97
|
-
initialData:
|
|
98
|
-
}),
|
|
99
|
-
}),
|
|
100
|
-
() =>
|
|
97
|
+
initialData: W(s.selected) ? K[s.type] : s.selected
|
|
98
|
+
}), t;
|
|
99
|
+
}), i = y(
|
|
100
|
+
() => p.value[r.value] ?? null
|
|
101
101
|
);
|
|
102
|
-
function
|
|
103
|
-
var v, a,
|
|
104
|
-
return
|
|
102
|
+
function Q(t, e) {
|
|
103
|
+
var v, a, l, o;
|
|
104
|
+
return t.type === "fix" ? "Fixed" : e === t.value ? `${(v = t.selectedSourceInfo) == null ? void 0 : v.label}` : u.value === "discrete" ? `${t.value === "primaryGrouping" ? "Primary" : "Secondary"} grouping: ${(a = t.selectedSourceInfo) == null ? void 0 : a.label}` : u.value === "scatterplot" || u.value === "dendro" ? `Grouping: ${(l = t.selectedSourceInfo) == null ? void 0 : l.label}` : ((o = t.selectedSourceInfo) == null ? void 0 : o.label) ?? "";
|
|
105
105
|
}
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
function v(a,
|
|
109
|
-
const
|
|
106
|
+
const h = y(() => {
|
|
107
|
+
const t = [], e = d.value.reactive.optionsState.components;
|
|
108
|
+
function v(a, l) {
|
|
109
|
+
const o = V({
|
|
110
110
|
type: a === "shape" ? "grouping" : a,
|
|
111
|
-
value:
|
|
111
|
+
value: l
|
|
112
112
|
});
|
|
113
|
-
|
|
114
|
-
text:
|
|
115
|
-
value:
|
|
113
|
+
p.value[o] && t.push({
|
|
114
|
+
text: Q(p.value[o], r.value),
|
|
115
|
+
value: o
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
118
|
if (G.forEach((a) => {
|
|
119
|
-
var
|
|
120
|
-
(
|
|
121
|
-
v(a,
|
|
119
|
+
var l;
|
|
120
|
+
(l = e == null ? void 0 : e[a]) != null && l.selectorStates.length && e[a].selectorStates.forEach(({ selectedSource: o }) => {
|
|
121
|
+
v(a, o);
|
|
122
122
|
});
|
|
123
|
-
}), !
|
|
123
|
+
}), !p.value[r.value]) {
|
|
124
124
|
let a = "Not consistent (grouping)";
|
|
125
|
-
|
|
125
|
+
u.value === "discrete" && (a = `${r.value === "primaryGrouping" ? "Primary" : "Secondary"} grouping (not selected)`), t.push({ text: a, value: r.value });
|
|
126
126
|
}
|
|
127
|
-
return
|
|
128
|
-
}),
|
|
129
|
-
|
|
130
|
-
),
|
|
131
|
-
((N =
|
|
132
|
-
),
|
|
133
|
-
((B =
|
|
127
|
+
return s.withoutFixed || t.push({ text: "Fixed", value: "fix" }), t;
|
|
128
|
+
}), E = x(!1), m = x(
|
|
129
|
+
p.value.fix ? p.value.fix.initialData : null
|
|
130
|
+
), g = x(
|
|
131
|
+
((N = i.value) == null ? void 0 : N.type) === "dataCategorical" ? i.value.initialData : null
|
|
132
|
+
), D = x(
|
|
133
|
+
((B = i.value) == null ? void 0 : B.type) === "dataContinuous" ? i.value.initialData : null
|
|
134
134
|
);
|
|
135
|
-
|
|
136
|
-
() =>
|
|
137
|
-
(
|
|
138
|
-
const e =
|
|
139
|
-
e.type === "fix" ?
|
|
135
|
+
U(
|
|
136
|
+
() => r.value,
|
|
137
|
+
(t) => {
|
|
138
|
+
const e = p.value[t];
|
|
139
|
+
(e == null ? void 0 : e.type) === "fix" ? $("aes-update", m.value, e) : (e == null ? void 0 : e.type) === "dataCategorical" ? (g.value = e.initialData, $("aes-update", e.initialData, e)) : (e == null ? void 0 : e.type) === "dataContinuous" && (D.value = e.initialData, $("aes-update", e.initialData, e));
|
|
140
140
|
}
|
|
141
|
+
), U(
|
|
142
|
+
() => {
|
|
143
|
+
var t, e;
|
|
144
|
+
return ((t = i.value) == null ? void 0 : t.type) === "dataCategorical" ? (e = i.value) == null ? void 0 : e.initialData : null;
|
|
145
|
+
},
|
|
146
|
+
(t) => {
|
|
147
|
+
t && r.value !== "fix" && (!g.value || g.value.order.length === 0) && t.order.length > 0 && (g.value = t);
|
|
148
|
+
},
|
|
149
|
+
{ deep: !0 }
|
|
141
150
|
);
|
|
142
|
-
const
|
|
143
|
-
return (
|
|
151
|
+
const P = x(), Z = y(() => s.type === "lineType" ? re.length * 32 + 32 : s.type === "dotShape" ? Math.ceil(se.length / 6) * 36 + 40 : s.type === "fill" || s.type === "stroke" ? Math.ceil(A.length / 6) * 36 + 40 : 0);
|
|
152
|
+
return (t, e) => {
|
|
144
153
|
var v, a;
|
|
145
|
-
return
|
|
154
|
+
return S(), _(ee, null, [
|
|
146
155
|
w("div", Te, [
|
|
147
156
|
w("div", {
|
|
148
157
|
class: "aes-input-select",
|
|
149
158
|
onClick: e[1] || (e[1] = te(() => {
|
|
150
159
|
}, ["stop"]))
|
|
151
160
|
}, [
|
|
152
|
-
|
|
153
|
-
modelValue:
|
|
154
|
-
"onUpdate:modelValue": e[0] || (e[0] = (
|
|
155
|
-
disabled:
|
|
156
|
-
label:
|
|
157
|
-
options:
|
|
161
|
+
M(O(ae), {
|
|
162
|
+
modelValue: r.value,
|
|
163
|
+
"onUpdate:modelValue": e[0] || (e[0] = (l) => r.value = l),
|
|
164
|
+
disabled: n.disabled || h.value.length < 2,
|
|
165
|
+
label: n.label,
|
|
166
|
+
options: h.value
|
|
158
167
|
}, null, 8, ["modelValue", "disabled", "label", "options"])
|
|
159
168
|
]),
|
|
160
|
-
|
|
169
|
+
M(de, {
|
|
161
170
|
data: {
|
|
162
|
-
type:
|
|
163
|
-
value:
|
|
171
|
+
type: r.value === "fix" ? n.type : "data",
|
|
172
|
+
value: r.value === "fix" ? n.type === "size" ? Number(n.selected) : n.selected : null
|
|
164
173
|
},
|
|
165
|
-
onClick: e[2] || (e[2] = (
|
|
166
|
-
onRef: e[3] || (e[3] = (
|
|
174
|
+
onClick: e[2] || (e[2] = (l) => E.value = !E.value),
|
|
175
|
+
onRef: e[3] || (e[3] = (l) => P.value = l)
|
|
167
176
|
}, null, 8, ["data"]),
|
|
168
|
-
|
|
177
|
+
r.value === "fix" && E.value && m.value ? (S(), T(ve, {
|
|
169
178
|
key: 0,
|
|
170
|
-
height:
|
|
171
|
-
targetRef:
|
|
172
|
-
"onPopup:close": e[10] || (e[10] = (
|
|
179
|
+
height: Z.value,
|
|
180
|
+
targetRef: P.value,
|
|
181
|
+
"onPopup:close": e[10] || (e[10] = (l) => E.value = !1)
|
|
173
182
|
}, {
|
|
174
|
-
default:
|
|
183
|
+
default: L(() => [
|
|
175
184
|
w("div", {
|
|
176
|
-
class: le(["fixed-aes-list", { "fixed-aes-list__rows":
|
|
185
|
+
class: le(["fixed-aes-list", { "fixed-aes-list__rows": n.type === "lineType" }])
|
|
177
186
|
}, [
|
|
178
|
-
|
|
187
|
+
n.type === "fill" || n.type === "stroke" ? (S(), T(ce, {
|
|
179
188
|
key: 0,
|
|
180
189
|
modelValue: m.value,
|
|
181
190
|
"onUpdate:modelValue": [
|
|
182
|
-
e[4] || (e[4] = (
|
|
183
|
-
e[5] || (e[5] = (
|
|
191
|
+
e[4] || (e[4] = (l) => m.value = l),
|
|
192
|
+
e[5] || (e[5] = (l) => t.$emit("aes-update", l, p.value.fix))
|
|
184
193
|
],
|
|
185
|
-
"color-using":
|
|
186
|
-
}, null, 8, ["modelValue", "color-using"])) :
|
|
187
|
-
|
|
194
|
+
"color-using": n.type
|
|
195
|
+
}, null, 8, ["modelValue", "color-using"])) : b("", !0),
|
|
196
|
+
n.type === "dotShape" ? (S(), T(fe, {
|
|
188
197
|
key: 1,
|
|
189
198
|
modelValue: m.value,
|
|
190
199
|
"onUpdate:modelValue": [
|
|
191
|
-
e[6] || (e[6] = (
|
|
192
|
-
e[7] || (e[7] = (
|
|
200
|
+
e[6] || (e[6] = (l) => m.value = l),
|
|
201
|
+
e[7] || (e[7] = (l) => t.$emit("aes-update", l, p.value.fix))
|
|
193
202
|
]
|
|
194
|
-
}, null, 8, ["modelValue"])) :
|
|
195
|
-
|
|
203
|
+
}, null, 8, ["modelValue"])) : b("", !0),
|
|
204
|
+
n.type === "lineType" ? (S(), T(me, {
|
|
196
205
|
key: 2,
|
|
197
206
|
modelValue: m.value,
|
|
198
207
|
"onUpdate:modelValue": [
|
|
199
|
-
e[8] || (e[8] = (
|
|
200
|
-
e[9] || (e[9] = (
|
|
208
|
+
e[8] || (e[8] = (l) => m.value = l),
|
|
209
|
+
e[9] || (e[9] = (l) => t.$emit("aes-update", l, p.value.fix))
|
|
201
210
|
]
|
|
202
|
-
}, null, 8, ["modelValue"])) :
|
|
211
|
+
}, null, 8, ["modelValue"])) : b("", !0)
|
|
203
212
|
], 2)
|
|
204
213
|
]),
|
|
205
214
|
_: 1
|
|
206
|
-
}, 8, ["height", "targetRef"])) :
|
|
215
|
+
}, 8, ["height", "targetRef"])) : b("", !0)
|
|
207
216
|
]),
|
|
208
|
-
(((v =
|
|
217
|
+
(((v = i.value) == null ? void 0 : v.type) === "dataCategorical" && g.value || ((a = i.value) == null ? void 0 : a.type) === "dataContinuous" && D.value) && E.value ? (S(), T(ge, {
|
|
209
218
|
key: 0,
|
|
210
|
-
title:
|
|
211
|
-
"back-title":
|
|
212
|
-
"onForm:close": e[15] || (e[15] = (
|
|
219
|
+
title: n.formTitle,
|
|
220
|
+
"back-title": n.formBackTitle,
|
|
221
|
+
"onForm:close": e[15] || (e[15] = (l) => E.value = !1)
|
|
213
222
|
}, {
|
|
214
|
-
default:
|
|
215
|
-
var
|
|
223
|
+
default: L(() => {
|
|
224
|
+
var l, o, c, F;
|
|
216
225
|
return [
|
|
217
|
-
((
|
|
226
|
+
((l = i.value) == null ? void 0 : l.type) === "dataCategorical" && g.value ? (S(), T(ye, {
|
|
218
227
|
key: 0,
|
|
219
|
-
modelValue:
|
|
228
|
+
modelValue: g.value,
|
|
220
229
|
"onUpdate:modelValue": [
|
|
221
|
-
e[11] || (e[11] = (f) =>
|
|
222
|
-
e[12] || (e[12] = (f) =>
|
|
230
|
+
e[11] || (e[11] = (f) => g.value = f),
|
|
231
|
+
e[12] || (e[12] = (f) => t.$emit("aes-update", f, i.value))
|
|
223
232
|
],
|
|
224
|
-
"column-value-labels":
|
|
225
|
-
"data-column-label": ((
|
|
226
|
-
"used-aes-in-mapping":
|
|
227
|
-
"allow-hiding":
|
|
228
|
-
"allow-reordering":
|
|
229
|
-
"allow-null-option":
|
|
230
|
-
}, null, 8, ["modelValue", "column-value-labels", "data-column-label", "used-aes-in-mapping", "allow-hiding", "allow-reordering", "allow-null-option"])) :
|
|
231
|
-
((c =
|
|
233
|
+
"column-value-labels": i.value.labels,
|
|
234
|
+
"data-column-label": ((o = i.value.selectedSourceInfo) == null ? void 0 : o.label) ?? "",
|
|
235
|
+
"used-aes-in-mapping": z.value[i.value.selectedSource],
|
|
236
|
+
"allow-hiding": u.value === "discrete",
|
|
237
|
+
"allow-reordering": u.value === "discrete" || u.value === "histogram" || u.value === "scatterplot" || u.value === "scatterplot-umap",
|
|
238
|
+
"allow-null-option": u.value === "discrete" && (r.value === "primaryGrouping" && O(d).reactive.axesSettings.axisX.allowNullPrimaryGroups || r.value === "secondaryGrouping" && O(d).reactive.axesSettings.axisX.allowNullSecondaryGroups) || u.value === "scatterplot" || u.value === "scatterplot-umap"
|
|
239
|
+
}, null, 8, ["modelValue", "column-value-labels", "data-column-label", "used-aes-in-mapping", "allow-hiding", "allow-reordering", "allow-null-option"])) : b("", !0),
|
|
240
|
+
((c = i.value) == null ? void 0 : c.type) === "dataContinuous" && D.value ? (S(), T(Se, {
|
|
232
241
|
key: 1,
|
|
233
|
-
modelValue:
|
|
242
|
+
modelValue: D.value,
|
|
234
243
|
"onUpdate:modelValue": [
|
|
235
|
-
e[13] || (e[13] = (f) =>
|
|
236
|
-
e[14] || (e[14] = (f) =>
|
|
244
|
+
e[13] || (e[13] = (f) => D.value = f),
|
|
245
|
+
e[14] || (e[14] = (f) => t.$emit("aes-update", f, i.value))
|
|
237
246
|
],
|
|
238
|
-
"data-column-label": ((
|
|
239
|
-
}, null, 8, ["modelValue", "data-column-label"])) :
|
|
247
|
+
"data-column-label": ((F = i.value.selectedSourceInfo) == null ? void 0 : F.label) ?? ""
|
|
248
|
+
}, null, 8, ["modelValue", "data-column-label"])) : b("", !0)
|
|
240
249
|
];
|
|
241
250
|
}),
|
|
242
251
|
_: 1
|
|
243
|
-
}, 8, ["title", "back-title"])) :
|
|
252
|
+
}, 8, ["title", "back-title"])) : b("", !0)
|
|
244
253
|
], 64);
|
|
245
254
|
};
|
|
246
255
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AesSelector.vue.js","sources":["../../../src/forms/LayersForm/AesSelector.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue';\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport type {\n AestheticMappingCategorical, AestheticMappingContinuous } from '../../dataBindAes';\nimport { createContinuousMappingFromPalette,\n createDefaultMapping,\n} from '../../dataBindAes';\nimport type {\n AesOption,\n DotShape,\n LineType,\n} from '../../components/AesSettings/types';\nimport {\n DEFAULT_DOT_SHAPE,\n DEFAULT_LINE_TYPE,\n FIXED_COLORS,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES,\n} from '../../constantsAesthetic';\nimport AesButton, { type AesButtonProps } from '../../components/AesButton.vue';\nimport { useStore } from '../../store';\nimport type { AesType, MappingLink } from '../../constantsCommon';\nimport { isMappedAes } from '../../constantsCommon';\nimport Popup from '../../components/Popup.vue';\nimport FixedColorsList from '../../components/AesSettings/FixedColorsList.vue';\nimport FixedDotShapeList from '../../components/AesSettings/FixedDotShapeList.vue';\nimport FixedLineTypeList from '../../components/AesSettings/FixedLineTypeList.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport AesDataMappingDiscrete from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport AesDataMappingContinuous from '../../components/AesSettings/AesDataMappingContinuous.vue';\nimport type { ChartType } from '@milaboratories/pf-plots';\n\nconst props = defineProps<{\n label: string;\n type: AesType;\n selected: string | MappingLink;\n formTitle: string;\n formBackTitle: string;\n possibleAesSourceInputs?: string[];\n withoutFixed?: boolean;\n disabled?: boolean;\n}>();\n\nconst store = useStore();\nconst chartType = computed(() => store.value.reactive.chartType);\nconst emit = defineEmits(['aes-update', 'aes-selector-close']);\n\nconst DEFAULT_AES_INPUTS: Record<ChartType, string[]> = {\n 'discrete': ['primaryGrouping', 'secondaryGrouping'],\n 'scatterplot': ['grouping'],\n 'scatterplot-umap': ['grouping'],\n 'dendro': [],\n 'heatmap': [],\n 'histogram': ['grouping'],\n 'bubble': [],\n};\nconst possibleAesSourceInputs = props.possibleAesSourceInputs ?? DEFAULT_AES_INPUTS[chartType.value];\nconst usedAesInMapping = computed(\n () => {\n const v = store.value.commonHelpersData.usedAesInMapping.value;\n return v;\n },\n);\n\nfunction getKeyFromSelectedType(value: MappingLink | string) {\n if (typeof value === 'string') {\n return value;\n }\n if (chartType.value === 'scatterplot') {\n return `grouping_${value.value}`;\n }\n if (chartType.value === 'dendro') {\n return `${value.type}_${value.value}`;\n }\n return value.type;\n}\n\nconst selectedType = ref(\n isMappedAes(props.selected) ? getKeyFromSelectedType(props.selected) : 'fix',\n);\nconst DEFAULT_BY_TYPES: Record<AesType, string | DotShape | LineType> = {\n fill: FIXED_COLORS[0].color,\n stroke: FIXED_COLORS[0].color,\n dotShape: DEFAULT_DOT_SHAPE,\n lineType: DEFAULT_LINE_TYPE,\n size: '', // temporary\n};\n\nconst inputGuide = computed(() => store.value.inputGuide.value);\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\nconst chartTypesWithContinuousColors = new Set<ChartType>([\n 'scatterplot', 'scatterplot-umap', 'heatmap',\n]);\n\nconst optionsInfo = computed(() => {\n const res: Record<string, AesOption> = {};\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addInfo(name: string, source: string) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(source);\n const uniqueValuesItem = labelsInfo.value[source];\n const uniqueValues = uniqueValuesItem?.list ?? [];\n const valueLabels = uniqueValuesItem?.labels ?? {};\n const key = getKeyFromSelectedType({ type: name, value: source });\n if (\n (chartTypesWithContinuousColors.has(chartType.value) && selectedSourceInfo.type === 'String')\n || !chartTypesWithContinuousColors.has(chartType.value)\n ) {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createDefaultMapping(uniqueValues, store.value.defaultPalette.categorical)) as AestheticMappingCategorical;\n res[key] = {\n type: 'dataCategorical',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues,\n labels: mapping.order.reduce(\n (res: Record<string, string>, v: string | number) => {\n res[v] = valueLabels[v] ?? String(v);\n return res;\n },\n {},\n ),\n };\n } else {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createContinuousMappingFromPalette(store.value.defaultPalette.continuous)) as AestheticMappingContinuous;\n res[key] = {\n type: 'dataContinuous',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues,\n };\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addInfo(name, selectedSource);\n });\n }\n });\n\n if (!props.withoutFixed) {\n res['fix'] = {\n type: 'fix',\n value: 'fix',\n initialData: isMappedAes(props.selected)\n ? DEFAULT_BY_TYPES[props.type]\n : props.selected,\n };\n }\n return res;\n});\n\nconst option = computed<AesOption | null>(\n () => optionsInfo.value[selectedType.value] ?? null,\n);\n\nfunction getTitle(option: AesOption, selected: string) {\n if (option.type === 'fix') {\n return 'Fixed';\n }\n if (selected === option.value) {\n return `${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'discrete') {\n return `${\n option.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping: ${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'scatterplot' || chartType.value === 'dendro') {\n return `Grouping: ${option.selectedSourceInfo?.label}`;\n }\n return option.selectedSourceInfo?.label ?? '';\n}\n\nconst typeOptions = computed(() => {\n const options = [];\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addOption(name: string, source: string) {\n const key = getKeyFromSelectedType({\n type: name === 'shape' ? 'grouping' : name,\n value: source,\n });\n if (optionsInfo.value[key]) {\n options.push({\n text: getTitle(optionsInfo.value[key], selectedType.value),\n value: key,\n });\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addOption(name, selectedSource);\n });\n }\n });\n if (!optionsInfo.value[selectedType.value]) {\n let text = 'Not consistent (grouping)';\n if (chartType.value === 'discrete') {\n text = `${\n selectedType.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping (not selected)`;\n }\n options.push({ text, value: selectedType.value });\n }\n if (!props.withoutFixed) {\n options.push({ text: 'Fixed', value: 'fix' });\n }\n return options;\n});\n\nconst openForm = ref(false);\n\nconst defaultFixed = ref(\n optionsInfo.value['fix']\n ? (optionsInfo.value['fix'].initialData as string)\n : null,\n);\nconst defaultMappingCategorical = ref(\n option.value?.type === 'dataCategorical'\n ? (option.value.initialData as AestheticMappingCategorical)\n : null,\n);\n\nconst defaultMappingContinuous = ref(\n option.value?.type === 'dataContinuous'\n ? (option.value.initialData as AestheticMappingContinuous)\n : null,\n);\nwatch(\n () => selectedType.value,\n (value) => {\n const option = optionsInfo.value[value];\n if (option.type === 'fix') {\n emit('aes-update', defaultFixed.value, option);\n } else if (option.type === 'dataCategorical') {\n defaultMappingCategorical.value = option.initialData;\n emit('aes-update', option.initialData, option);\n } else if (option.type === 'dataContinuous') {\n defaultMappingContinuous.value = option.initialData;\n emit('aes-update', option.initialData, option);\n }\n },\n);\n\nconst aesButtonRef = ref();\n\n// TODO: move to utils\nconst popupHeight = computed(() => {\n if (props.type === 'lineType') {\n const ROW_HEIGHT = 32;\n const OFFSET = 16;\n return FIXED_LINE_TYPES.length * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'dotShape') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXES_DOT_SHAPES.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'fill' || props.type === 'stroke') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXED_COLORS.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n return 0;\n});\n\n</script>\n\n<template>\n <div class=\"aes-input-row\">\n <div class=\"aes-input-select\" @click.stop>\n <PlDropdown\n v-model=\"selectedType\"\n :disabled=\"disabled || typeOptions.length < 2\"\n :label=\"label\"\n :options=\"typeOptions\"\n />\n </div>\n <AesButton\n :data=\"{\n type: selectedType === 'fix' ? type : 'data',\n value: selectedType === 'fix' ? type === 'size' ? Number(selected) : selected as string : null\n } as AesButtonProps['data']\"\n @click=\"openForm = !openForm\"\n @ref=\"(el:Element) => (aesButtonRef = el)\"\n />\n <Popup\n v-if=\"selectedType === 'fix' && openForm && defaultFixed\"\n :height=\"popupHeight\"\n :targetRef=\"aesButtonRef\"\n @popup:close=\"openForm = false\"\n >\n <div\n class=\"fixed-aes-list\"\n :class=\"{ 'fixed-aes-list__rows': type === 'lineType' }\"\n >\n <FixedColorsList\n v-if=\"type === 'fill' || type === 'stroke'\"\n v-model=\"defaultFixed\"\n :color-using=\"type\"\n @update:modelValue=\"\n (value:string) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <FixedDotShapeList\n v-if=\"type === 'dotShape'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:DotShape) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <FixedLineTypeList\n v-if=\"type === 'lineType'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:LineType) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n </div>\n </Popup>\n </div>\n <template\n v-if=\"(\n (option?.type === 'dataCategorical' && defaultMappingCategorical) ||\n (option?.type === 'dataContinuous' && defaultMappingContinuous)) && openForm\"\n >\n <FormWrapper\n :title=\"formTitle\"\n :back-title=\"formBackTitle\"\n @form:close=\"openForm = false\"\n >\n <AesDataMappingDiscrete\n v-if=\"option?.type === 'dataCategorical' && defaultMappingCategorical\"\n v-model=\"defaultMappingCategorical\"\n :column-value-labels=\"option.labels\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[option.selectedSource]\"\n :allow-hiding=\"chartType === 'discrete'\"\n :allow-reordering=\"chartType === 'discrete' || chartType === 'histogram' || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n :allow-null-option=\"chartType === 'discrete' && (\n selectedType === 'primaryGrouping' && store.reactive.axesSettings.axisX.allowNullPrimaryGroups ||\n selectedType === 'secondaryGrouping' && store.reactive.axesSettings.axisX.allowNullSecondaryGroups\n ) || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => $emit('aes-update', value, option)\"\n />\n <AesDataMappingContinuous\n v-if=\"option?.type === 'dataContinuous' && defaultMappingContinuous\"\n v-model=\"defaultMappingContinuous\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n @update:modelValue=\"(value:AestheticMappingContinuous) => $emit('aes-update', value, option)\"\n />\n </FormWrapper>\n </template>\n</template>\n"],"names":["props","__props","store","useStore","chartType","computed","emit","__emit","DEFAULT_AES_INPUTS","possibleAesSourceInputs","usedAesInMapping","getKeyFromSelectedType","value","selectedType","ref","isMappedAes","DEFAULT_BY_TYPES","FIXED_COLORS","DEFAULT_DOT_SHAPE","DEFAULT_LINE_TYPE","inputGuide","labelsInfo","chartTypesWithContinuousColors","optionsInfo","res","inputStateMap","addInfo","name","source","selectedSourceInfo","uniqueValuesItem","uniqueValues","valueLabels","key","mapping","createDefaultMapping","v","createContinuousMappingFromPalette","_a","selectedSource","option","getTitle","selected","typeOptions","options","addOption","text","openForm","defaultFixed","defaultMappingCategorical","defaultMappingContinuous","_b","watch","aesButtonRef","popupHeight","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","_createElementVNode","_hoisted_1","_createVNode","_unref","PlDropdown","$event","AesButton","_cache","el","_createBlock","Popup","_normalizeClass","FixedColorsList","$emit","FixedDotShapeList","FixedLineTypeList","FormWrapper","AesDataMappingDiscrete","_c","AesDataMappingContinuous","_d"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AesSelector.vue.js","sources":["../../../src/forms/LayersForm/AesSelector.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue';\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport type {\n AestheticMappingCategorical, AestheticMappingContinuous } from '../../dataBindAes';\nimport { createContinuousMappingFromPalette,\n createDefaultMapping,\n} from '../../dataBindAes';\nimport type {\n AesOption,\n DotShape,\n LineType,\n} from '../../components/AesSettings/types';\nimport {\n DEFAULT_DOT_SHAPE,\n DEFAULT_LINE_TYPE,\n FIXED_COLORS,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES,\n} from '../../constantsAesthetic';\nimport AesButton, { type AesButtonProps } from '../../components/AesButton.vue';\nimport { useStore } from '../../store';\nimport type { AesType, MappingLink } from '../../constantsCommon';\nimport { isMappedAes } from '../../constantsCommon';\nimport Popup from '../../components/Popup.vue';\nimport FixedColorsList from '../../components/AesSettings/FixedColorsList.vue';\nimport FixedDotShapeList from '../../components/AesSettings/FixedDotShapeList.vue';\nimport FixedLineTypeList from '../../components/AesSettings/FixedLineTypeList.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport AesDataMappingDiscrete from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport AesDataMappingContinuous from '../../components/AesSettings/AesDataMappingContinuous.vue';\nimport type { ChartType } from '@milaboratories/pf-plots';\n\nconst props = defineProps<{\n label: string;\n type: AesType;\n selected: string | MappingLink;\n formTitle: string;\n formBackTitle: string;\n possibleAesSourceInputs?: string[];\n withoutFixed?: boolean;\n disabled?: boolean;\n}>();\n\nconst store = useStore();\nconst chartType = computed(() => store.value.reactive.chartType);\nconst emit = defineEmits(['aes-update', 'aes-selector-close']);\n\nconst DEFAULT_AES_INPUTS: Record<ChartType, string[]> = {\n 'discrete': ['primaryGrouping', 'secondaryGrouping'],\n 'scatterplot': ['grouping'],\n 'scatterplot-umap': ['grouping'],\n 'dendro': [],\n 'heatmap': [],\n 'histogram': ['grouping'],\n 'bubble': [],\n};\nconst possibleAesSourceInputs = props.possibleAesSourceInputs ?? DEFAULT_AES_INPUTS[chartType.value];\nconst usedAesInMapping = computed(\n () => {\n const v = store.value.commonHelpersData.usedAesInMapping.value;\n return v;\n },\n);\n\nfunction getKeyFromSelectedType(value: MappingLink | string) {\n if (typeof value === 'string') {\n return value;\n }\n if (chartType.value === 'scatterplot') {\n return `grouping_${value.value}`;\n }\n if (chartType.value === 'dendro') {\n return `${value.type}_${value.value}`;\n }\n return value.type;\n}\n\nconst selectedType = ref(\n isMappedAes(props.selected) ? getKeyFromSelectedType(props.selected) : 'fix',\n);\nconst DEFAULT_BY_TYPES: Record<AesType, string | DotShape | LineType> = {\n fill: FIXED_COLORS[0].color,\n stroke: FIXED_COLORS[0].color,\n dotShape: DEFAULT_DOT_SHAPE,\n lineType: DEFAULT_LINE_TYPE,\n size: '', // temporary\n};\n\nconst inputGuide = computed(() => store.value.inputGuide.value);\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\nconst chartTypesWithContinuousColors = new Set<ChartType>([\n 'scatterplot', 'scatterplot-umap', 'heatmap',\n]);\n\nconst optionsInfo = computed(() => {\n const res: Record<string, AesOption> = {};\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addInfo(name: string, source: string) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(source);\n const uniqueValuesItem = labelsInfo.value[source];\n const uniqueValues = uniqueValuesItem?.list ?? [];\n const valueLabels = uniqueValuesItem?.labels ?? {};\n const key = getKeyFromSelectedType({ type: name, value: source });\n if (\n (chartTypesWithContinuousColors.has(chartType.value) && selectedSourceInfo.type === 'String')\n || !chartTypesWithContinuousColors.has(chartType.value)\n ) {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createDefaultMapping(uniqueValues, store.value.defaultPalette.categorical)) as AestheticMappingCategorical;\n res[key] = {\n type: 'dataCategorical',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues,\n labels: mapping.order.reduce(\n (res: Record<string, string>, v: string | number) => {\n res[v] = valueLabels[v] ?? String(v);\n return res;\n },\n {},\n ),\n };\n } else {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createContinuousMappingFromPalette(store.value.defaultPalette.continuous)) as AestheticMappingContinuous;\n res[key] = {\n type: 'dataContinuous',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues,\n };\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addInfo(name, selectedSource);\n });\n }\n });\n\n if (!props.withoutFixed) {\n res['fix'] = {\n type: 'fix',\n value: 'fix',\n initialData: isMappedAes(props.selected)\n ? DEFAULT_BY_TYPES[props.type]\n : props.selected,\n };\n }\n return res;\n});\n\nconst option = computed<AesOption | null>(\n () => optionsInfo.value[selectedType.value] ?? null,\n);\n\nfunction getTitle(option: AesOption, selected: string) {\n if (option.type === 'fix') {\n return 'Fixed';\n }\n if (selected === option.value) {\n return `${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'discrete') {\n return `${\n option.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping: ${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'scatterplot' || chartType.value === 'dendro') {\n return `Grouping: ${option.selectedSourceInfo?.label}`;\n }\n return option.selectedSourceInfo?.label ?? '';\n}\n\nconst typeOptions = computed(() => {\n const options = [];\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addOption(name: string, source: string) {\n const key = getKeyFromSelectedType({\n type: name === 'shape' ? 'grouping' : name,\n value: source,\n });\n if (optionsInfo.value[key]) {\n options.push({\n text: getTitle(optionsInfo.value[key], selectedType.value),\n value: key,\n });\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addOption(name, selectedSource);\n });\n }\n });\n if (!optionsInfo.value[selectedType.value]) {\n let text = 'Not consistent (grouping)';\n if (chartType.value === 'discrete') {\n text = `${\n selectedType.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping (not selected)`;\n }\n options.push({ text, value: selectedType.value });\n }\n if (!props.withoutFixed) {\n options.push({ text: 'Fixed', value: 'fix' });\n }\n return options;\n});\n\nconst openForm = ref(false);\n\nconst defaultFixed = ref(\n optionsInfo.value['fix']\n ? (optionsInfo.value['fix'].initialData as string)\n : null,\n);\nconst defaultMappingCategorical = ref(\n option.value?.type === 'dataCategorical'\n ? (option.value.initialData as AestheticMappingCategorical)\n : null,\n);\n\nconst defaultMappingContinuous = ref(\n option.value?.type === 'dataContinuous'\n ? (option.value.initialData as AestheticMappingContinuous)\n : null,\n);\nwatch(\n () => selectedType.value,\n (value) => {\n const option = optionsInfo.value[value];\n if (option?.type === 'fix') {\n emit('aes-update', defaultFixed.value, option);\n } else if (option?.type === 'dataCategorical') {\n defaultMappingCategorical.value = option.initialData;\n emit('aes-update', option.initialData, option);\n } else if (option?.type === 'dataContinuous') {\n defaultMappingContinuous.value = option.initialData;\n emit('aes-update', option.initialData, option);\n }\n },\n);\n\n// Sync default mapping refs when option.initialData gets populated after load (e.g.\n// uniqueValuesData and dataBindAes arrived). Only sync when current ref is empty\n// so we don't overwrite user changes (e.g. palette).\nwatch(\n () => option.value?.type === 'dataCategorical' ? option.value?.initialData : null,\n (mapping) => {\n if (\n mapping\n && selectedType.value !== 'fix'\n && (!defaultMappingCategorical.value || (defaultMappingCategorical.value as AestheticMappingCategorical).order.length === 0)\n && (mapping as AestheticMappingCategorical).order.length > 0\n ) {\n defaultMappingCategorical.value = mapping as AestheticMappingCategorical;\n }\n },\n { deep: true },\n);\n\nconst aesButtonRef = ref();\n\n// TODO: move to utils\nconst popupHeight = computed(() => {\n if (props.type === 'lineType') {\n const ROW_HEIGHT = 32;\n const OFFSET = 16;\n return FIXED_LINE_TYPES.length * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'dotShape') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXES_DOT_SHAPES.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'fill' || props.type === 'stroke') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXED_COLORS.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n return 0;\n});\n\n</script>\n\n<template>\n <div class=\"aes-input-row\">\n <div class=\"aes-input-select\" @click.stop>\n <PlDropdown\n v-model=\"selectedType\"\n :disabled=\"disabled || typeOptions.length < 2\"\n :label=\"label\"\n :options=\"typeOptions\"\n />\n </div>\n <AesButton\n :data=\"{\n type: selectedType === 'fix' ? type : 'data',\n value: selectedType === 'fix' ? type === 'size' ? Number(selected) : selected as string : null\n } as AesButtonProps['data']\"\n @click=\"openForm = !openForm\"\n @ref=\"(el:Element) => (aesButtonRef = el)\"\n />\n <Popup\n v-if=\"selectedType === 'fix' && openForm && defaultFixed\"\n :height=\"popupHeight\"\n :targetRef=\"aesButtonRef\"\n @popup:close=\"openForm = false\"\n >\n <div\n class=\"fixed-aes-list\"\n :class=\"{ 'fixed-aes-list__rows': type === 'lineType' }\"\n >\n <FixedColorsList\n v-if=\"type === 'fill' || type === 'stroke'\"\n v-model=\"defaultFixed\"\n :color-using=\"type\"\n @update:modelValue=\"\n (value:string) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <FixedDotShapeList\n v-if=\"type === 'dotShape'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:DotShape) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <FixedLineTypeList\n v-if=\"type === 'lineType'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:LineType) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n </div>\n </Popup>\n </div>\n <template\n v-if=\"(\n (option?.type === 'dataCategorical' && defaultMappingCategorical) ||\n (option?.type === 'dataContinuous' && defaultMappingContinuous)) && openForm\"\n >\n <FormWrapper\n :title=\"formTitle\"\n :back-title=\"formBackTitle\"\n @form:close=\"openForm = false\"\n >\n <AesDataMappingDiscrete\n v-if=\"option?.type === 'dataCategorical' && defaultMappingCategorical\"\n v-model=\"defaultMappingCategorical\"\n :column-value-labels=\"option.labels\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[option.selectedSource]\"\n :allow-hiding=\"chartType === 'discrete'\"\n :allow-reordering=\"chartType === 'discrete' || chartType === 'histogram' || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n :allow-null-option=\"chartType === 'discrete' && (\n selectedType === 'primaryGrouping' && store.reactive.axesSettings.axisX.allowNullPrimaryGroups ||\n selectedType === 'secondaryGrouping' && store.reactive.axesSettings.axisX.allowNullSecondaryGroups\n ) || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => $emit('aes-update', value, option)\"\n />\n <AesDataMappingContinuous\n v-if=\"option?.type === 'dataContinuous' && defaultMappingContinuous\"\n v-model=\"defaultMappingContinuous\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n @update:modelValue=\"(value:AestheticMappingContinuous) => $emit('aes-update', value, option)\"\n />\n </FormWrapper>\n </template>\n</template>\n"],"names":["props","__props","store","useStore","chartType","computed","emit","__emit","DEFAULT_AES_INPUTS","possibleAesSourceInputs","usedAesInMapping","getKeyFromSelectedType","value","selectedType","ref","isMappedAes","DEFAULT_BY_TYPES","FIXED_COLORS","DEFAULT_DOT_SHAPE","DEFAULT_LINE_TYPE","inputGuide","labelsInfo","chartTypesWithContinuousColors","optionsInfo","res","inputStateMap","addInfo","name","source","selectedSourceInfo","uniqueValuesItem","uniqueValues","valueLabels","key","mapping","createDefaultMapping","v","createContinuousMappingFromPalette","_a","selectedSource","option","getTitle","selected","typeOptions","options","addOption","text","openForm","defaultFixed","defaultMappingCategorical","defaultMappingContinuous","_b","watch","aesButtonRef","popupHeight","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","_createElementVNode","_hoisted_1","_createVNode","_unref","PlDropdown","$event","AesButton","_cache","el","_createBlock","Popup","_normalizeClass","FixedColorsList","$emit","FixedDotShapeList","FixedLineTypeList","FormWrapper","AesDataMappingDiscrete","_c","AesDataMappingContinuous","_d"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/graph-maker",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.225",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"d3-hierarchy": "^3.1.2",
|
|
37
37
|
"d3-scale": "^4.0.2",
|
|
38
38
|
"vue": "^3.5.24",
|
|
39
|
-
"@milaboratories/miplots4": "1.0.
|
|
40
|
-
"@milaboratories/pf-plots": "1.1.
|
|
39
|
+
"@milaboratories/miplots4": "1.0.173",
|
|
40
|
+
"@milaboratories/pf-plots": "1.1.63"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@milaboratories/build-configs": "^1.0.5",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"@platforma-sdk/model": "^1.53.0",
|
|
56
|
-
"@platforma-sdk/ui-vue": "^1.
|
|
56
|
+
"@platforma-sdk/ui-vue": "^1.55.1"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"dev": "vite",
|