@milaboratories/graph-maker 1.1.189 → 1.1.190

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.
@@ -262,6 +262,7 @@ export type AxesState = {
262
262
  }[];
263
263
  } | null;
264
264
  cellSize: number | null;
265
+ annotationTitlePosition: 'left' | 'right' | 'hidden';
265
266
  };
266
267
  axisY: {
267
268
  labelsRotation: LabelsRotation | null;
@@ -282,6 +283,7 @@ export type AxesState = {
282
283
  }[];
283
284
  } | null;
284
285
  cellSize: number | null;
286
+ annotationTitlePosition: 'top' | 'bottom' | 'hidden';
285
287
  };
286
288
  legend: {
287
289
  show?: boolean;
@@ -22,7 +22,7 @@ import ae from "./icons/StackedAreaIcon.vue.js";
22
22
  import le from "./icons/ViolinAndBinnedIcon.vue.js";
23
23
  import ie from "./icons/ViolinAndJitterIcon.vue.js";
24
24
  import se from "./icons/ViolinIcon.vue.js";
25
- function Pe(o, t) {
25
+ function je(o, t) {
26
26
  return t === "discrete" ? o && de[o] ? o : "box" : t === "scatterplot" || t === "scatterplot-umap" ? o && ue[o] ? o : "dots" : t === "dendro" ? "dendro" : o ?? "heatmap";
27
27
  }
28
28
  const de = {
@@ -79,7 +79,7 @@ const de = {
79
79
  bubble: "Bubble plot"
80
80
  };
81
81
  function Ye(o, t) {
82
- var l, a, n, c, m, p, f, b, g, h, A, _, D, T, L, S, E, M, v, y, x, I, B, C, H, O, k, w, j, P, F;
82
+ var l, a, n, c, m, p, f, b, g, h, A, _, D, T, L, S, E, M, v, y, x, I, B, C, H, O, k, P, w, j, F;
83
83
  if (o === "discrete") {
84
84
  const e = t;
85
85
  return {
@@ -107,15 +107,15 @@ function Ye(o, t) {
107
107
  format: ((C = (B = e == null ? void 0 : e.pairwise) == null ? void 0 : B.data) == null ? void 0 : C.format) ?? "significance",
108
108
  ns: ((O = (H = e == null ? void 0 : e.pairwise) == null ? void 0 : H.data) == null ? void 0 : O.ns) ?? !1
109
109
  },
110
- validity: { testMethod: ((w = (k = e == null ? void 0 : e.pairwise) == null ? void 0 : k.validity) == null ? void 0 : w.testMethod) ?? !0 }
110
+ validity: { testMethod: ((P = (k = e == null ? void 0 : e.pairwise) == null ? void 0 : k.validity) == null ? void 0 : P.testMethod) ?? !0 }
111
111
  }
112
112
  };
113
113
  }
114
114
  const r = t;
115
115
  return {
116
116
  trend: {
117
- on: ((j = r == null ? void 0 : r.trend) == null ? void 0 : j.on) ?? !1,
118
- trim: ((P = r == null ? void 0 : r.trend) == null ? void 0 : P.trim) ?? !1,
117
+ on: ((w = r == null ? void 0 : r.trend) == null ? void 0 : w.on) ?? !1,
118
+ trim: ((j = r == null ? void 0 : r.trend) == null ? void 0 : j.trim) ?? !1,
119
119
  showLegend: ((F = r == null ? void 0 : r.trend) == null ? void 0 : F.showLegend) ?? !0
120
120
  }
121
121
  };
@@ -305,7 +305,8 @@ const me = () => ({
305
305
  allowNullPrimaryGroups: !1,
306
306
  allowNullSecondaryGroups: !1,
307
307
  order: null,
308
- cellSize: null
308
+ cellSize: null,
309
+ annotationTitlePosition: "right"
309
310
  },
310
311
  axisY: {
311
312
  labelsRotation: null,
@@ -319,7 +320,8 @@ const me = () => ({
319
320
  significantLinesStyle: "dashed",
320
321
  sorting: "asc",
321
322
  order: null,
322
- cellSize: null
323
+ cellSize: null,
324
+ annotationTitlePosition: "top"
323
325
  },
324
326
  legend: {},
325
327
  other: {
@@ -434,7 +436,7 @@ export {
434
436
  We as getInitialAxesSettings,
435
437
  Xe as getInitialLayersSettings,
436
438
  Ye as getInitialStatisticsState,
437
- Pe as getInitialTemplate,
439
+ je as getInitialTemplate,
438
440
  Ve as isContinuousDataMapping,
439
441
  Ue as isMappedAes,
440
442
  ze as isNumberRange
@@ -1 +1 @@
1
- {"version":3,"file":"constantsCommon.js","sources":["../src/constantsCommon.ts"],"sourcesContent":["import type { ChartType } from '@milaboratories/pf-plots';\nimport type { Component } from 'vue';\nimport type {\n DotShape,\n LineType,\n} from './components/AesSettings/types';\nimport {\n DEFAULT_BLACK,\n DEFAULT_DOT_SHAPE,\n DEFAULT_LINE_TYPE,\n} from './constantsAesthetic';\nimport { DEFAULT_DOT_SIZE, DEFAULT_LINE_COLOR } from './dataBindAes';\nimport BarAndErrorIcon from './icons/BarAndErrorIcon.vue';\nimport BarAndLineIcon from './icons/BarAndLineIcon.vue';\nimport BarIcon from './icons/BarIcon.vue';\nimport BinnedDotsIcon from './icons/BinnedDotsIcon.vue';\nimport BoxplotAndBinnedIcon from './icons/BoxplotAndBinnedIcon.vue';\nimport BoxplotAndJitterIcon from './icons/BoxplotAndJitterIcon.vue';\nimport BoxplotIcon from './icons/BoxplotIcon.vue';\nimport DendroIcon from './icons/DendroIcon.vue';\nimport HeatmapIcon from './icons/HeatmapIcon.vue';\nimport JitteredDotsIcon from './icons/JitteredDotsIcon.vue';\nimport LineAndBinnedIcon from './icons/LineAndBinnedIcon.vue';\nimport LineAndErrorbarIcon from './icons/LineAndErrorbarIcon.vue';\nimport LineAndJitterIcon from './icons/LineAndJitterIcon.vue';\nimport LineIcon from './icons/LineIcon.vue';\nimport LogoIcon from './icons/LogoIcon.vue';\nimport ScatterplotIcon from './icons/ScatterplotIcon.vue';\nimport SinaIcon from './icons/SinaIcon.vue';\nimport StackedBarIcon from './icons/StackedBarIcon.vue';\nimport StackedAreaIcon from './icons/StackedAreaIcon.vue';\nimport ViolinAndBinnedIcon from './icons/ViolinAndBinnedIcon.vue';\nimport ViolinAndJitterIcon from './icons/ViolinAndJitterIcon.vue';\nimport ViolinIcon from './icons/ViolinIcon.vue';\nimport type {\n AxisTitleMode,\n DeepPartial,\n DiscreteLayer,\n DiscreteLayersTemplate,\n Frame,\n HeatmapFrame, HeatmapLayer, HeatmapLayerTemplate, HistogramLayer, HistogramLayerTemplate,\n LabelsPosition,\n LabelsRotation,\n Layer,\n LayersTemplate,\n Scale,\n ScatterplotLayer,\n ScatterplotLayersTemplate,\n TitlePosition,\n} from './types';\n\nexport const DEFAULT_CHART_TYPE: ChartType = 'discrete';\n\nexport function getInitialTemplate(\n restoredTemplate: LayersTemplate | null,\n chartType: ChartType,\n) {\n if (chartType === 'discrete') {\n return restoredTemplate\n && DISCRETE_TEMPLATES_MAP[restoredTemplate as DiscreteLayersTemplate]\n ? restoredTemplate\n : 'box';\n }\n if (chartType === 'scatterplot' || chartType === 'scatterplot-umap') {\n return restoredTemplate\n && SCATTERPLOT_TEMPLATES_MAP[restoredTemplate as ScatterplotLayersTemplate]\n ? restoredTemplate\n : 'dots';\n }\n if (chartType === 'dendro') {\n return 'dendro';\n }\n return restoredTemplate ?? 'heatmap';\n}\n\nexport const DISCRETE_TEMPLATES_MAP: Record<\n DiscreteLayersTemplate,\n DiscreteLayer[]\n> = {\n box: ['box'],\n box_binnedDots: ['box', 'binnedDots'],\n box_jitteredDots: ['box', 'jitteredDots'],\n violin: ['violin'],\n violin_binnedDots: ['violin', 'binnedDots'],\n violin_jitteredDots: ['violin', 'jitteredDots'],\n binnedDots: ['binnedDots'],\n jitteredDots: ['jitteredDots'],\n bar: ['bar'],\n bar_line: ['bar', 'line'],\n bar_errorbar: ['bar', 'errorbar'],\n stackedBar: ['stackedBar'],\n stackedArea: ['stackedArea'],\n line: ['line'],\n line_jitteredDots: ['line', 'jitteredDots'],\n line_binnedDots: ['line', 'binnedDots'],\n line_errorbar: ['line', 'errorbar'],\n errorbar: ['errorbar'],\n sina: ['sina'],\n logo: ['logo'],\n};\n\nexport const SCATTERPLOT_TEMPLATES_MAP: Record<\n ScatterplotLayersTemplate,\n ScatterplotLayer[]\n> = {\n dots: ['dots'],\n curve: ['curve'],\n curve_dots: ['curve', 'dots'],\n};\n\nexport const SCATTERPLOT_UMAP_TEMPLATES_MAP: Partial<Record<\n ScatterplotLayersTemplate,\n ScatterplotLayer[]\n>> = {\n dots: ['dots'],\n curve_dots: ['curve', 'dots'],\n};\n\nexport const HEATMAP_TEMPLATES_MAP: Record<HeatmapLayerTemplate, HeatmapLayer[]> = {\n heatmap: ['heatmap'],\n heatmapClustered: ['heatmapClustered'],\n};\nexport const HISTOGRAM_TEMPLATES_MAP: Record<HistogramLayerTemplate, HistogramLayer[]> = {\n bins: ['bins'],\n};\nexport const LAYER_TITLES: Record<Layer, string> = {\n box: 'Boxplot',\n binnedDots: 'Binned Dots',\n jitteredDots: 'Jittered Dots',\n violin: 'Violins',\n bar: 'Bar',\n stackedBar: 'Stacked Bar',\n stackedArea: 'Stacked Bar + Stream Area',\n line: 'Line',\n errorbar: 'Error Bar',\n sina: 'Sina',\n logo: 'Logo Plot',\n dots: 'Scatter Plot',\n curve: 'Curve',\n heatmap: 'Heatmap',\n heatmapClustered: 'Heatmap + Dendro',\n dendro: 'Dendrogram',\n bins: 'Histogram',\n bubble: 'Bubble plot',\n};\n\nexport type DiscreteStatisticsState = {\n overall: {\n data: { testMethod: null | string };\n validity: { testMethod: boolean };\n };\n referenceGroup: {\n data: {\n testMethod: null | string;\n referenceGroup: null | string;\n correctionMethod: string;\n format: 'significance' | 'pValue';\n ns: boolean;\n };\n validity: {\n testMethod: boolean;\n referenceGroup: boolean;\n };\n };\n pairwise: {\n data: {\n testMethod: null | string;\n correctionMethod: string;\n format: 'significance' | 'pValue';\n ns: boolean;\n };\n validity: { testMethod: boolean };\n };\n};\n\nexport type ScatterplotStatisticsState = {\n trend: {\n on: boolean;\n trim: boolean;\n showLegend: boolean;\n };\n};\n\nexport type StatisticsState = DiscreteStatisticsState | ScatterplotStatisticsState;\n\nexport function getInitialStatisticsState(chartType: ChartType, initialData?: DeepPartial<StatisticsState>): StatisticsState {\n if (chartType === 'discrete') {\n const initial = initialData as DiscreteStatisticsState;\n return {\n overall: {\n data: { testMethod: initial?.overall?.data?.testMethod ?? null },\n validity: { testMethod: initial?.overall?.validity?.testMethod ?? true },\n },\n referenceGroup: {\n data: {\n testMethod: initial?.referenceGroup?.data?.testMethod ?? null,\n referenceGroup: initial?.referenceGroup?.data?.referenceGroup ?? null,\n correctionMethod: initial?.referenceGroup?.data?.correctionMethod ?? 'Bonferroni',\n format: initial?.referenceGroup?.data?.format ?? 'significance',\n ns: initial?.referenceGroup?.data?.ns ?? false,\n },\n validity: {\n testMethod: initial?.referenceGroup?.validity?.testMethod ?? true,\n referenceGroup: initial?.referenceGroup?.validity?.referenceGroup ?? true,\n },\n },\n pairwise: {\n data: {\n testMethod: initial?.pairwise?.data?.testMethod ?? null,\n correctionMethod: initial?.pairwise?.data?.correctionMethod ?? 'Bonferroni',\n format: initial?.pairwise?.data?.format ?? 'significance',\n ns: initial?.pairwise?.data?.ns ?? false,\n },\n validity: { testMethod: initial?.pairwise?.validity?.testMethod ?? true },\n },\n } as DiscreteStatisticsState;\n }\n const initial = initialData as ScatterplotStatisticsState;\n return {\n trend: {\n on: initial?.trend?.on ?? false,\n trim: initial?.trend?.trim ?? false,\n showLegend: initial?.trend?.showLegend ?? true,\n },\n };\n}\n\nexport type NumberRange = { min: number; max: number };\nexport type MappingLink = { type: string; value?: string }; // {type: 'primaryGrouping'} for example\nexport type ColorAes = string | MappingLink;\nexport type DotShapeAes = DotShape | MappingLink;\nexport type DotSizeAes = number | NumberRange;\nexport type LineTypeAes = LineType | MappingLink;\nexport type FixedOrMappedAes = ColorAes | DotShapeAes | LineTypeAes;\n\nexport type ContinuousDataMappingSize = {\n column: string;\n range: NumberRange;\n};\n\nexport type ContinuousDataMappingForGraph<T extends string | number> = { columnName: ColumnNameSchema; domain: number[]; range: T[]; type: 'linear' | 'log' };\n\nexport type ColumnNameSchema = {\n type: 'column';\n value: string;\n label?: string;\n valueLabels?: string;\n};\n\nexport function isNumberRange(v: number | NumberRange | null | undefined): v is NumberRange {\n return typeof v !== 'undefined' && v !== null && typeof v === 'object' && 'min' in v && 'max' in v;\n}\n\nexport function isMappedAes(\n item: FixedOrMappedAes | null | string | number | boolean | unknown,\n): item is MappingLink {\n return typeof item === 'object' && item !== null && 'type' in item;\n}\n\nexport function isContinuousDataMapping(v: ContinuousDataMappingSize | MappingLink | number | string | null | undefined): v is ContinuousDataMappingSize {\n return typeof v !== 'undefined' && v !== null && typeof v === 'object' && 'range' in v;\n}\n\nexport type LayersSettings = {\n // bubble\n bubble: {\n NAValueAs: number | null;\n minRadius: number;\n maxRadius: number;\n normalizationDirection: 'row' | 'column' | null;\n normalizationMethod: 'standardScaling' | 'meanNormalization';\n aggregateByX: boolean;\n aggregateByY: boolean;\n aggregationMethod: 'mean' | 'median' | 'min' | 'max';\n strokeColor: null | string;\n };\n // histogram\n bins: {\n fillColor: ColorAes | null;\n opacity: number;\n };\n // dendrogram\n dendro: {\n dotFill: ColorAes;\n dotShape: DotShapeAes;\n dotSize: DotSizeAes;\n lineColor: ColorAes;\n mode: 'normal' | 'useAllNodesAsLeaves';\n leavesMode: 'normal' | 'alignLeavesToLine';\n showTable: boolean;\n showLegend: boolean;\n };\n // heatmap\n heatmap: {\n NAValueAs: number | null;\n normalizationDirection: 'row' | 'column' | null;\n normalizationMethod: 'standardScaling' | 'meanNormalization';\n aggregateByX: boolean;\n aggregateByY: boolean;\n aggregationMethod: 'mean' | 'median' | 'min' | 'max';\n };\n heatmapClustered: {\n NAValueAs: number | null;\n normalizationDirection: 'row' | 'column' | null;\n normalizationMethod: 'standardScaling' | 'meanNormalization';\n dendrogramX: boolean;\n dendrogramY: boolean;\n disableClusteringX: boolean;\n disableClusteringY: boolean;\n aggregateByX: boolean;\n aggregateByY: boolean;\n aggregationMethod: 'mean' | 'median' | 'min' | 'max';\n };\n // scatterplot\n dots: {\n dotFill: ColorAes | null;\n dotShape: DotShapeAes | null;\n dotSize: ContinuousDataMappingSize | number | null;\n };\n curve: {\n smoothing: boolean;\n lineColor: ColorAes;\n };\n // discrete\n box: {\n showOutliers: boolean;\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n dotShape: DotShapeAes;\n lineType: LineTypeAes;\n gapWidth: number;\n opacity: number;\n stat: {\n low: number;\n middle: number;\n upper: number;\n k: number;\n };\n };\n binnedDots: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n opacity: number;\n showOutliers: boolean;\n };\n jitteredDots: {\n dotFill: ColorAes | null;\n dotShape: DotShapeAes;\n lineColor: ColorAes;\n opacity: number;\n showOutliers: boolean;\n };\n violin: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n lineType: LineTypeAes;\n opacity: number;\n trim: boolean;\n showQuartiles: boolean;\n quartilesLineStyle: LineType;\n medianLineStyle: LineType;\n };\n bar: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n opacity: number;\n height: 'max' | 'mean' | 'median';\n };\n stackedBar: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n opacity: number;\n normalize: boolean;\n height: 'sum' | 'max' | 'mean' | 'median';\n };\n stackedArea: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n barsOpacity: number;\n areaOpacity: number;\n normalize: boolean;\n height: 'sum' | 'max' | 'mean' | 'median';\n showBars: boolean;\n };\n line: {\n pointsValues: 'mean' | 'median';\n emptyGroupValue: number;\n lineColor: ColorAes | null;\n dotShape: DotShapeAes;\n lineType: LineTypeAes;\n dotFill: ColorAes | null;\n opacity: number;\n };\n errorbar: {\n pointsValues: 'mean' | 'median';\n interval: 'sd' | 'se' | '';\n lineColor: ColorAes | null;\n dotShape: DotShapeAes;\n dotFill: ColorAes | null;\n opacity: number;\n };\n sina: {\n dotFill: ColorAes | null;\n dotShape: DotShapeAes;\n opacity: number;\n showOutliers: boolean;\n };\n logo: {\n normalize: boolean;\n opacity: number;\n };\n};\nexport const DEFAULT_LAYERS_SETTINGS: () => LayersSettings = () => ({\n // bubble\n bubble: {\n NAValueAs: 0,\n strokeColor: null,\n minRadius: 3,\n maxRadius: 38,\n normalizationDirection: 'row',\n normalizationMethod: 'standardScaling',\n aggregateByX: false,\n aggregateByY: false,\n aggregationMethod: 'mean',\n },\n // histogram\n bins: {\n fillColor: null,\n opacity: 1,\n },\n // dendro\n dendro: {\n dotFill: DEFAULT_BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineColor: DEFAULT_BLACK,\n mode: 'normal',\n leavesMode: 'normal',\n showTable: false,\n showLegend: true,\n },\n // heatmap\n heatmap: {\n NAValueAs: 0,\n normalizationDirection: 'row',\n normalizationMethod: 'standardScaling',\n aggregateByX: false,\n aggregateByY: false,\n aggregationMethod: 'mean',\n },\n heatmapClustered: {\n NAValueAs: 0,\n normalizationDirection: 'row',\n normalizationMethod: 'standardScaling',\n dendrogramX: true,\n dendrogramY: true,\n disableClusteringX: false,\n disableClusteringY: false,\n aggregateByX: false,\n aggregateByY: false,\n aggregationMethod: 'mean',\n },\n // scatterplot\n dots: {\n dotFill: null as ColorAes | null,\n dotShape: null as DotShapeAes | null,\n dotSize: null as ContinuousDataMappingSize | number | null,\n },\n curve: { lineColor: DEFAULT_BLACK, smoothing: true },\n // discrete\n box: {\n showOutliers: true,\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n lineType: DEFAULT_LINE_TYPE as LineTypeAes,\n gapWidth: 0.2,\n opacity: 1,\n stat: {\n low: 0.25,\n middle: 0.5,\n upper: 0.75,\n k: 1.5,\n },\n },\n binnedDots: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n opacity: 1,\n showOutliers: true,\n },\n jitteredDots: {\n dotFill: null as ColorAes | null,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n opacity: 1,\n showOutliers: true,\n },\n violin: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n lineType: DEFAULT_LINE_TYPE as LineTypeAes,\n opacity: 1,\n trim: false,\n showQuartiles: false,\n quartilesLineStyle: 'dashed',\n medianLineStyle: 'solid',\n },\n bar: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n opacity: 1,\n height: 'max',\n },\n stackedBar: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n opacity: 1,\n normalize: false,\n height: 'sum',\n },\n stackedArea: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n barsOpacity: 1,\n areaOpacity: 0.7,\n normalize: false,\n showBars: true,\n height: 'sum',\n },\n line: {\n pointsValues: 'mean',\n emptyGroupValue: 0,\n lineColor: null as ColorAes | null,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n lineType: DEFAULT_LINE_TYPE as LineTypeAes,\n dotFill: null as ColorAes | null,\n opacity: 1,\n },\n errorbar: {\n pointsValues: 'mean',\n interval: 'sd',\n lineColor: null as ColorAes | null,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n dotFill: null as ColorAes | null,\n opacity: 1,\n },\n sina: {\n dotFill: null as ColorAes | null,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n opacity: 1,\n showOutliers: true,\n },\n logo: {\n normalize: false,\n opacity: 1,\n },\n});\n\nexport function getDefaultLayersSettings() {\n return DEFAULT_LAYERS_SETTINGS();\n}\n\nconst DISCRETE_LAYERS: Layer[] = [\n 'box',\n 'binnedDots',\n 'jitteredDots',\n 'violin',\n 'bar',\n 'stackedBar',\n 'line',\n 'errorbar',\n 'sina',\n 'logo',\n];\nconst SCATTERPLOT_LAYERS: Layer[] = ['dots', 'curve'];\nconst SCATTERPLOT_UMAP_LAYERS: Layer[] = ['dots'];\nconst HEATMAP_LAYERS: Layer[] = ['heatmap', 'heatmapClustered'];\nconst DENDRO_LAYERS: Layer[] = ['dendro'];\nconst HISTOGRAM_LAYERS: Layer[] = ['bins'];\nconst BUBBLE_LAYERS: Layer[] = ['bubble'];\nconst _LAYERS_BY_CHART_TYPE: Record<ChartType, Layer[]> = {\n 'discrete': DISCRETE_LAYERS,\n 'scatterplot': SCATTERPLOT_LAYERS,\n 'scatterplot-umap': SCATTERPLOT_UMAP_LAYERS,\n 'heatmap': HEATMAP_LAYERS,\n 'dendro': DENDRO_LAYERS,\n 'histogram': HISTOGRAM_LAYERS,\n 'bubble': BUBBLE_LAYERS,\n};\n\nexport function getInitialLayersSettings(\n initialSettings?: DeepPartial<LayersSettings>,\n): LayersSettings {\n const defaultSettings = DEFAULT_LAYERS_SETTINGS();\n const layers: Layer[] = Object.keys(defaultSettings) as Layer[];\n return layers.reduce((res, layer) => {\n Object.assign(\n res[layer],\n initialSettings?.[layer] ?? {},\n );\n return res;\n }, defaultSettings);\n}\n\nexport type Sorting = 'asc' | 'desc';\nexport type AxesState = {\n title: { value: string; position: TitlePosition; mode: AxisTitleMode; facetTitleFrame: Frame };\n axisX: {\n labelsPosition: LabelsPosition; // for heatmap - top/bottom/left/right/hidden\n labelsRotation: LabelsRotation | null; // only for discrete X axis - 'center'/'90deg'/'45deg'; null for auto mode before user chose\n axisLabelsAngle: 0 | 45 | 90; // for heatmap\n groupLabelsAngle: 0 | 45 | 90; // for heatmap\n titleMode: AxisTitleMode; // 'auto' - from column or 'custom' - from 'customTitle' field or 'hidden'\n customTitle: string; // user axis title, not default from column\n gridlines: boolean;\n linesBetweenCategories: boolean; // for discrete - position for vertical gridlines\n ticks: boolean;\n scale: Scale; // linear or log\n significantLinesStyle: LineType;\n sorting: Sorting;\n allowNullPrimaryGroups: boolean; // for discrete - allow group with null grouping value\n allowNullSecondaryGroups: boolean;\n order: {\n source: string;\n options: { value: string; label: string }[];\n } | null;\n cellSize: number | null;\n };\n axisY: {\n labelsRotation: LabelsRotation | null; // only for discrete X axis - 'center'/'90deg'/'45deg'; null for auto mode before user chose\n titleMode: AxisTitleMode;\n customTitle: string;\n axisLabelsAngle: 0 | 45 | 90; // for heatmap\n groupLabelsAngle: 0 | 45 | 90; // for heatmap\n gridlines: boolean;\n ticks: boolean;\n scale: Scale;\n significantLinesStyle: LineType;\n sorting: Sorting;\n order: {\n source: string;\n options: { value: string; label: string }[];\n } | null;\n cellSize: number | null;\n };\n legend: { show?: boolean };\n other: {\n frame: Frame | HeatmapFrame;\n reverse: boolean;\n facetSharedBy: 'x' | 'y' | 'xy' | 'none';\n facetColumns: number;\n binsCount: number;\n groupingDirection: 'straight' | 'reverse';\n groupingStack: 'vertical' | 'horizontal';\n canvasRenderMode: boolean;\n };\n};\n\nconst DEFAULT_AXES: () => AxesState = () => ({\n title: {\n value: 'Graph 1',\n position: 'center',\n mode: 'auto',\n facetTitleFrame: 'full',\n },\n axisX: {\n labelsPosition: 'bottom',\n labelsRotation: null,\n axisLabelsAngle: 90,\n groupLabelsAngle: 45,\n titleMode: 'auto',\n customTitle: '',\n gridlines: true,\n linesBetweenCategories: true,\n ticks: true,\n scale: 'linear',\n significantLinesStyle: 'dashed',\n sorting: 'asc',\n allowNullPrimaryGroups: false,\n allowNullSecondaryGroups: false,\n order: null,\n cellSize: null,\n },\n axisY: {\n labelsRotation: null,\n titleMode: 'auto',\n customTitle: '',\n axisLabelsAngle: 90,\n groupLabelsAngle: 45,\n gridlines: true,\n ticks: true,\n scale: 'linear',\n significantLinesStyle: 'dashed',\n sorting: 'asc',\n order: null,\n cellSize: null,\n },\n legend: {},\n other: {\n frame: 'full',\n reverse: false,\n canvasRenderMode: false,\n facetSharedBy: 'xy',\n facetColumns: 3,\n binsCount: 10,\n groupingDirection: 'straight',\n groupingStack: 'vertical',\n },\n});\n\nfunction isHeatmapFrame(frame: Frame | HeatmapFrame): frame is HeatmapFrame {\n return frame === 'full' || frame === 'none';\n}\n\nexport function getInitialAxesSettings(\n chartType: ChartType,\n initialAxesSettings?: DeepPartial<AxesState>,\n): AxesState {\n const defaultAxes = DEFAULT_AXES();\n if (!initialAxesSettings) {\n return defaultAxes;\n }\n\n // TODO: divide into separated settings for chart types\n function getFrame(frame?: Frame | HeatmapFrame): Frame | HeatmapFrame {\n if (!frame) {\n return 'full';\n }\n if (chartType === 'heatmap' && !isHeatmapFrame(frame)) {\n return 'full' as HeatmapFrame;\n }\n if (chartType !== 'heatmap' && isHeatmapFrame(frame)) {\n return frame === 'none' ? 'empty' : (frame as Frame);\n }\n return frame;\n }\n\n return {\n title: {\n ...defaultAxes.title,\n ...initialAxesSettings.title,\n },\n axisX: {\n ...defaultAxes.axisX,\n ...initialAxesSettings.axisX,\n },\n axisY: {\n ...defaultAxes.axisY,\n ...initialAxesSettings.axisY,\n },\n legend: {\n ...defaultAxes.legend,\n ...initialAxesSettings.legend,\n },\n other: {\n ...defaultAxes.other,\n ...initialAxesSettings.other,\n frame: getFrame(initialAxesSettings.other?.frame),\n },\n };\n}\n\nexport const LAYER_ICONS: Record<LayersTemplate, Component> = {\n box: BoxplotIcon,\n box_binnedDots: BoxplotAndBinnedIcon,\n box_jitteredDots: BoxplotAndJitterIcon,\n binnedDots: BinnedDotsIcon,\n jitteredDots: JitteredDotsIcon,\n violin: ViolinIcon,\n violin_binnedDots: ViolinAndBinnedIcon,\n violin_jitteredDots: ViolinAndJitterIcon,\n bar: BarIcon,\n bar_line: BarAndLineIcon,\n bar_errorbar: BarAndErrorIcon,\n stackedBar: StackedBarIcon,\n stackedArea: StackedAreaIcon,\n line: LineIcon,\n line_binnedDots: LineAndBinnedIcon,\n line_jitteredDots: LineAndJitterIcon,\n line_errorbar: LineAndErrorbarIcon,\n errorbar: BarAndLineIcon,\n sina: SinaIcon,\n logo: LogoIcon,\n dots: ScatterplotIcon,\n curve: LineIcon,\n curve_dots: LineAndJitterIcon,\n heatmap: HeatmapIcon,\n heatmapClustered: DendroIcon,\n dendro: DendroIcon,\n bins: BarIcon,\n bubble: HeatmapIcon,\n};\n\ntype Option = { value: string; text: string };\nexport const STAT_TEST_METHOD: Option[] = [\n { value: 'ttest', text: 'TTest' },\n { value: 'anova', text: 'ANOVA' },\n { value: 'wilcoxon', text: 'Wilcoxon' },\n { value: 'kruskalWallis', text: 'Kruskal-Wallis' },\n];\n\nexport const STAT_CORRECTION_METHOD: Option[] = [\n { value: 'BenjaminiHochberg', text: 'Benjamini-Hochberg' },\n { value: 'BenjaminiYekutieli', text: 'Benjamini-Yekutieli' },\n { value: 'Bonferroni', text: 'Bonferroni' },\n { value: 'Hochberg', text: 'Hochberg' },\n { value: 'Holm', text: 'Holm' },\n { value: 'Hommel', text: 'Hommel' },\n { value: 'none', text: 'None' },\n];\n\nexport const FORMAT_P_VALUE_OPTIONS: Option[] = [\n { value: 'pValue', text: 'p-value' },\n { value: 'significance', text: 'significance' },\n];\n\nexport type AesType = 'fill' | 'stroke' | 'dotShape' | 'lineType' | 'size';\n\nexport const DEFAULT_WIDTH = 600;\nexport const DEFAULT_HEIGHT = 350;\nexport const DEFAULT_WIDTH_SMALL = 400;\nexport const DEFAULT_HEIGHT_SMALL = 250;\n\nexport const MAX_SEARCH_OPTIONS_LIST_LENGTH = 100;\n"],"names":["getInitialTemplate","restoredTemplate","chartType","DISCRETE_TEMPLATES_MAP","SCATTERPLOT_TEMPLATES_MAP","SCATTERPLOT_UMAP_TEMPLATES_MAP","HEATMAP_TEMPLATES_MAP","HISTOGRAM_TEMPLATES_MAP","LAYER_TITLES","getInitialStatisticsState","initialData","initial","_C","_D","_E","isNumberRange","v","isMappedAes","item","isContinuousDataMapping","DEFAULT_LAYERS_SETTINGS","DEFAULT_BLACK","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_LINE_COLOR","DEFAULT_LINE_TYPE","getInitialLayersSettings","initialSettings","defaultSettings","res","layer","DEFAULT_AXES","isHeatmapFrame","frame","getInitialAxesSettings","initialAxesSettings","defaultAxes","getFrame","_a","LAYER_ICONS","BoxplotIcon","BoxplotAndBinnedIcon","BoxplotAndJitterIcon","BinnedDotsIcon","JitteredDotsIcon","ViolinIcon","ViolinAndBinnedIcon","ViolinAndJitterIcon","BarIcon","BarAndLineIcon","BarAndErrorIcon","StackedBarIcon","StackedAreaIcon","LineIcon","LineAndBinnedIcon","LineAndJitterIcon","LineAndErrorbarIcon","SinaIcon","LogoIcon","ScatterplotIcon","HeatmapIcon","DendroIcon","STAT_TEST_METHOD","STAT_CORRECTION_METHOD","FORMAT_P_VALUE_OPTIONS","DEFAULT_WIDTH","DEFAULT_HEIGHT","DEFAULT_WIDTH_SMALL","DEFAULT_HEIGHT_SMALL","MAX_SEARCH_OPTIONS_LIST_LENGTH"],"mappings":"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"}
1
+ {"version":3,"file":"constantsCommon.js","sources":["../src/constantsCommon.ts"],"sourcesContent":["import type { ChartType } from '@milaboratories/pf-plots';\nimport type { Component } from 'vue';\nimport type {\n DotShape,\n LineType,\n} from './components/AesSettings/types';\nimport {\n DEFAULT_BLACK,\n DEFAULT_DOT_SHAPE,\n DEFAULT_LINE_TYPE,\n} from './constantsAesthetic';\nimport { DEFAULT_DOT_SIZE, DEFAULT_LINE_COLOR } from './dataBindAes';\nimport BarAndErrorIcon from './icons/BarAndErrorIcon.vue';\nimport BarAndLineIcon from './icons/BarAndLineIcon.vue';\nimport BarIcon from './icons/BarIcon.vue';\nimport BinnedDotsIcon from './icons/BinnedDotsIcon.vue';\nimport BoxplotAndBinnedIcon from './icons/BoxplotAndBinnedIcon.vue';\nimport BoxplotAndJitterIcon from './icons/BoxplotAndJitterIcon.vue';\nimport BoxplotIcon from './icons/BoxplotIcon.vue';\nimport DendroIcon from './icons/DendroIcon.vue';\nimport HeatmapIcon from './icons/HeatmapIcon.vue';\nimport JitteredDotsIcon from './icons/JitteredDotsIcon.vue';\nimport LineAndBinnedIcon from './icons/LineAndBinnedIcon.vue';\nimport LineAndErrorbarIcon from './icons/LineAndErrorbarIcon.vue';\nimport LineAndJitterIcon from './icons/LineAndJitterIcon.vue';\nimport LineIcon from './icons/LineIcon.vue';\nimport LogoIcon from './icons/LogoIcon.vue';\nimport ScatterplotIcon from './icons/ScatterplotIcon.vue';\nimport SinaIcon from './icons/SinaIcon.vue';\nimport StackedBarIcon from './icons/StackedBarIcon.vue';\nimport StackedAreaIcon from './icons/StackedAreaIcon.vue';\nimport ViolinAndBinnedIcon from './icons/ViolinAndBinnedIcon.vue';\nimport ViolinAndJitterIcon from './icons/ViolinAndJitterIcon.vue';\nimport ViolinIcon from './icons/ViolinIcon.vue';\nimport type {\n AxisTitleMode,\n DeepPartial,\n DiscreteLayer,\n DiscreteLayersTemplate,\n Frame,\n HeatmapFrame, HeatmapLayer, HeatmapLayerTemplate, HistogramLayer, HistogramLayerTemplate,\n LabelsPosition,\n LabelsRotation,\n Layer,\n LayersTemplate,\n Scale,\n ScatterplotLayer,\n ScatterplotLayersTemplate,\n TitlePosition,\n} from './types';\n\nexport const DEFAULT_CHART_TYPE: ChartType = 'discrete';\n\nexport function getInitialTemplate(\n restoredTemplate: LayersTemplate | null,\n chartType: ChartType,\n) {\n if (chartType === 'discrete') {\n return restoredTemplate\n && DISCRETE_TEMPLATES_MAP[restoredTemplate as DiscreteLayersTemplate]\n ? restoredTemplate\n : 'box';\n }\n if (chartType === 'scatterplot' || chartType === 'scatterplot-umap') {\n return restoredTemplate\n && SCATTERPLOT_TEMPLATES_MAP[restoredTemplate as ScatterplotLayersTemplate]\n ? restoredTemplate\n : 'dots';\n }\n if (chartType === 'dendro') {\n return 'dendro';\n }\n return restoredTemplate ?? 'heatmap';\n}\n\nexport const DISCRETE_TEMPLATES_MAP: Record<\n DiscreteLayersTemplate,\n DiscreteLayer[]\n> = {\n box: ['box'],\n box_binnedDots: ['box', 'binnedDots'],\n box_jitteredDots: ['box', 'jitteredDots'],\n violin: ['violin'],\n violin_binnedDots: ['violin', 'binnedDots'],\n violin_jitteredDots: ['violin', 'jitteredDots'],\n binnedDots: ['binnedDots'],\n jitteredDots: ['jitteredDots'],\n bar: ['bar'],\n bar_line: ['bar', 'line'],\n bar_errorbar: ['bar', 'errorbar'],\n stackedBar: ['stackedBar'],\n stackedArea: ['stackedArea'],\n line: ['line'],\n line_jitteredDots: ['line', 'jitteredDots'],\n line_binnedDots: ['line', 'binnedDots'],\n line_errorbar: ['line', 'errorbar'],\n errorbar: ['errorbar'],\n sina: ['sina'],\n logo: ['logo'],\n};\n\nexport const SCATTERPLOT_TEMPLATES_MAP: Record<\n ScatterplotLayersTemplate,\n ScatterplotLayer[]\n> = {\n dots: ['dots'],\n curve: ['curve'],\n curve_dots: ['curve', 'dots'],\n};\n\nexport const SCATTERPLOT_UMAP_TEMPLATES_MAP: Partial<Record<\n ScatterplotLayersTemplate,\n ScatterplotLayer[]\n>> = {\n dots: ['dots'],\n curve_dots: ['curve', 'dots'],\n};\n\nexport const HEATMAP_TEMPLATES_MAP: Record<HeatmapLayerTemplate, HeatmapLayer[]> = {\n heatmap: ['heatmap'],\n heatmapClustered: ['heatmapClustered'],\n};\nexport const HISTOGRAM_TEMPLATES_MAP: Record<HistogramLayerTemplate, HistogramLayer[]> = {\n bins: ['bins'],\n};\nexport const LAYER_TITLES: Record<Layer, string> = {\n box: 'Boxplot',\n binnedDots: 'Binned Dots',\n jitteredDots: 'Jittered Dots',\n violin: 'Violins',\n bar: 'Bar',\n stackedBar: 'Stacked Bar',\n stackedArea: 'Stacked Bar + Stream Area',\n line: 'Line',\n errorbar: 'Error Bar',\n sina: 'Sina',\n logo: 'Logo Plot',\n dots: 'Scatter Plot',\n curve: 'Curve',\n heatmap: 'Heatmap',\n heatmapClustered: 'Heatmap + Dendro',\n dendro: 'Dendrogram',\n bins: 'Histogram',\n bubble: 'Bubble plot',\n};\n\nexport type DiscreteStatisticsState = {\n overall: {\n data: { testMethod: null | string };\n validity: { testMethod: boolean };\n };\n referenceGroup: {\n data: {\n testMethod: null | string;\n referenceGroup: null | string;\n correctionMethod: string;\n format: 'significance' | 'pValue';\n ns: boolean;\n };\n validity: {\n testMethod: boolean;\n referenceGroup: boolean;\n };\n };\n pairwise: {\n data: {\n testMethod: null | string;\n correctionMethod: string;\n format: 'significance' | 'pValue';\n ns: boolean;\n };\n validity: { testMethod: boolean };\n };\n};\n\nexport type ScatterplotStatisticsState = {\n trend: {\n on: boolean;\n trim: boolean;\n showLegend: boolean;\n };\n};\n\nexport type StatisticsState = DiscreteStatisticsState | ScatterplotStatisticsState;\n\nexport function getInitialStatisticsState(chartType: ChartType, initialData?: DeepPartial<StatisticsState>): StatisticsState {\n if (chartType === 'discrete') {\n const initial = initialData as DiscreteStatisticsState;\n return {\n overall: {\n data: { testMethod: initial?.overall?.data?.testMethod ?? null },\n validity: { testMethod: initial?.overall?.validity?.testMethod ?? true },\n },\n referenceGroup: {\n data: {\n testMethod: initial?.referenceGroup?.data?.testMethod ?? null,\n referenceGroup: initial?.referenceGroup?.data?.referenceGroup ?? null,\n correctionMethod: initial?.referenceGroup?.data?.correctionMethod ?? 'Bonferroni',\n format: initial?.referenceGroup?.data?.format ?? 'significance',\n ns: initial?.referenceGroup?.data?.ns ?? false,\n },\n validity: {\n testMethod: initial?.referenceGroup?.validity?.testMethod ?? true,\n referenceGroup: initial?.referenceGroup?.validity?.referenceGroup ?? true,\n },\n },\n pairwise: {\n data: {\n testMethod: initial?.pairwise?.data?.testMethod ?? null,\n correctionMethod: initial?.pairwise?.data?.correctionMethod ?? 'Bonferroni',\n format: initial?.pairwise?.data?.format ?? 'significance',\n ns: initial?.pairwise?.data?.ns ?? false,\n },\n validity: { testMethod: initial?.pairwise?.validity?.testMethod ?? true },\n },\n } as DiscreteStatisticsState;\n }\n const initial = initialData as ScatterplotStatisticsState;\n return {\n trend: {\n on: initial?.trend?.on ?? false,\n trim: initial?.trend?.trim ?? false,\n showLegend: initial?.trend?.showLegend ?? true,\n },\n };\n}\n\nexport type NumberRange = { min: number; max: number };\nexport type MappingLink = { type: string; value?: string }; // {type: 'primaryGrouping'} for example\nexport type ColorAes = string | MappingLink;\nexport type DotShapeAes = DotShape | MappingLink;\nexport type DotSizeAes = number | NumberRange;\nexport type LineTypeAes = LineType | MappingLink;\nexport type FixedOrMappedAes = ColorAes | DotShapeAes | LineTypeAes;\n\nexport type ContinuousDataMappingSize = {\n column: string;\n range: NumberRange;\n};\n\nexport type ContinuousDataMappingForGraph<T extends string | number> = { columnName: ColumnNameSchema; domain: number[]; range: T[]; type: 'linear' | 'log' };\n\nexport type ColumnNameSchema = {\n type: 'column';\n value: string;\n label?: string;\n valueLabels?: string;\n};\n\nexport function isNumberRange(v: number | NumberRange | null | undefined): v is NumberRange {\n return typeof v !== 'undefined' && v !== null && typeof v === 'object' && 'min' in v && 'max' in v;\n}\n\nexport function isMappedAes(\n item: FixedOrMappedAes | null | string | number | boolean | unknown,\n): item is MappingLink {\n return typeof item === 'object' && item !== null && 'type' in item;\n}\n\nexport function isContinuousDataMapping(v: ContinuousDataMappingSize | MappingLink | number | string | null | undefined): v is ContinuousDataMappingSize {\n return typeof v !== 'undefined' && v !== null && typeof v === 'object' && 'range' in v;\n}\n\nexport type LayersSettings = {\n // bubble\n bubble: {\n NAValueAs: number | null;\n minRadius: number;\n maxRadius: number;\n normalizationDirection: 'row' | 'column' | null;\n normalizationMethod: 'standardScaling' | 'meanNormalization';\n aggregateByX: boolean;\n aggregateByY: boolean;\n aggregationMethod: 'mean' | 'median' | 'min' | 'max';\n strokeColor: null | string;\n };\n // histogram\n bins: {\n fillColor: ColorAes | null;\n opacity: number;\n };\n // dendrogram\n dendro: {\n dotFill: ColorAes;\n dotShape: DotShapeAes;\n dotSize: DotSizeAes;\n lineColor: ColorAes;\n mode: 'normal' | 'useAllNodesAsLeaves';\n leavesMode: 'normal' | 'alignLeavesToLine';\n showTable: boolean;\n showLegend: boolean;\n };\n // heatmap\n heatmap: {\n NAValueAs: number | null;\n normalizationDirection: 'row' | 'column' | null;\n normalizationMethod: 'standardScaling' | 'meanNormalization';\n aggregateByX: boolean;\n aggregateByY: boolean;\n aggregationMethod: 'mean' | 'median' | 'min' | 'max';\n };\n heatmapClustered: {\n NAValueAs: number | null;\n normalizationDirection: 'row' | 'column' | null;\n normalizationMethod: 'standardScaling' | 'meanNormalization';\n dendrogramX: boolean;\n dendrogramY: boolean;\n disableClusteringX: boolean;\n disableClusteringY: boolean;\n aggregateByX: boolean;\n aggregateByY: boolean;\n aggregationMethod: 'mean' | 'median' | 'min' | 'max';\n };\n // scatterplot\n dots: {\n dotFill: ColorAes | null;\n dotShape: DotShapeAes | null;\n dotSize: ContinuousDataMappingSize | number | null;\n };\n curve: {\n smoothing: boolean;\n lineColor: ColorAes;\n };\n // discrete\n box: {\n showOutliers: boolean;\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n dotShape: DotShapeAes;\n lineType: LineTypeAes;\n gapWidth: number;\n opacity: number;\n stat: {\n low: number;\n middle: number;\n upper: number;\n k: number;\n };\n };\n binnedDots: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n opacity: number;\n showOutliers: boolean;\n };\n jitteredDots: {\n dotFill: ColorAes | null;\n dotShape: DotShapeAes;\n lineColor: ColorAes;\n opacity: number;\n showOutliers: boolean;\n };\n violin: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n lineType: LineTypeAes;\n opacity: number;\n trim: boolean;\n showQuartiles: boolean;\n quartilesLineStyle: LineType;\n medianLineStyle: LineType;\n };\n bar: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n opacity: number;\n height: 'max' | 'mean' | 'median';\n };\n stackedBar: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n opacity: number;\n normalize: boolean;\n height: 'sum' | 'max' | 'mean' | 'median';\n };\n stackedArea: {\n fillColor: ColorAes | null;\n lineColor: ColorAes;\n barsOpacity: number;\n areaOpacity: number;\n normalize: boolean;\n height: 'sum' | 'max' | 'mean' | 'median';\n showBars: boolean;\n };\n line: {\n pointsValues: 'mean' | 'median';\n emptyGroupValue: number;\n lineColor: ColorAes | null;\n dotShape: DotShapeAes;\n lineType: LineTypeAes;\n dotFill: ColorAes | null;\n opacity: number;\n };\n errorbar: {\n pointsValues: 'mean' | 'median';\n interval: 'sd' | 'se' | '';\n lineColor: ColorAes | null;\n dotShape: DotShapeAes;\n dotFill: ColorAes | null;\n opacity: number;\n };\n sina: {\n dotFill: ColorAes | null;\n dotShape: DotShapeAes;\n opacity: number;\n showOutliers: boolean;\n };\n logo: {\n normalize: boolean;\n opacity: number;\n };\n};\nexport const DEFAULT_LAYERS_SETTINGS: () => LayersSettings = () => ({\n // bubble\n bubble: {\n NAValueAs: 0,\n strokeColor: null,\n minRadius: 3,\n maxRadius: 38,\n normalizationDirection: 'row',\n normalizationMethod: 'standardScaling',\n aggregateByX: false,\n aggregateByY: false,\n aggregationMethod: 'mean',\n },\n // histogram\n bins: {\n fillColor: null,\n opacity: 1,\n },\n // dendro\n dendro: {\n dotFill: DEFAULT_BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineColor: DEFAULT_BLACK,\n mode: 'normal',\n leavesMode: 'normal',\n showTable: false,\n showLegend: true,\n },\n // heatmap\n heatmap: {\n NAValueAs: 0,\n normalizationDirection: 'row',\n normalizationMethod: 'standardScaling',\n aggregateByX: false,\n aggregateByY: false,\n aggregationMethod: 'mean',\n },\n heatmapClustered: {\n NAValueAs: 0,\n normalizationDirection: 'row',\n normalizationMethod: 'standardScaling',\n dendrogramX: true,\n dendrogramY: true,\n disableClusteringX: false,\n disableClusteringY: false,\n aggregateByX: false,\n aggregateByY: false,\n aggregationMethod: 'mean',\n },\n // scatterplot\n dots: {\n dotFill: null as ColorAes | null,\n dotShape: null as DotShapeAes | null,\n dotSize: null as ContinuousDataMappingSize | number | null,\n },\n curve: { lineColor: DEFAULT_BLACK, smoothing: true },\n // discrete\n box: {\n showOutliers: true,\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n lineType: DEFAULT_LINE_TYPE as LineTypeAes,\n gapWidth: 0.2,\n opacity: 1,\n stat: {\n low: 0.25,\n middle: 0.5,\n upper: 0.75,\n k: 1.5,\n },\n },\n binnedDots: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n opacity: 1,\n showOutliers: true,\n },\n jitteredDots: {\n dotFill: null as ColorAes | null,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n opacity: 1,\n showOutliers: true,\n },\n violin: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n lineType: DEFAULT_LINE_TYPE as LineTypeAes,\n opacity: 1,\n trim: false,\n showQuartiles: false,\n quartilesLineStyle: 'dashed',\n medianLineStyle: 'solid',\n },\n bar: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n opacity: 1,\n height: 'max',\n },\n stackedBar: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n opacity: 1,\n normalize: false,\n height: 'sum',\n },\n stackedArea: {\n fillColor: null as ColorAes | null,\n lineColor: DEFAULT_LINE_COLOR as ColorAes,\n barsOpacity: 1,\n areaOpacity: 0.7,\n normalize: false,\n showBars: true,\n height: 'sum',\n },\n line: {\n pointsValues: 'mean',\n emptyGroupValue: 0,\n lineColor: null as ColorAes | null,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n lineType: DEFAULT_LINE_TYPE as LineTypeAes,\n dotFill: null as ColorAes | null,\n opacity: 1,\n },\n errorbar: {\n pointsValues: 'mean',\n interval: 'sd',\n lineColor: null as ColorAes | null,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n dotFill: null as ColorAes | null,\n opacity: 1,\n },\n sina: {\n dotFill: null as ColorAes | null,\n dotShape: DEFAULT_DOT_SHAPE as DotShapeAes,\n opacity: 1,\n showOutliers: true,\n },\n logo: {\n normalize: false,\n opacity: 1,\n },\n});\n\nexport function getDefaultLayersSettings() {\n return DEFAULT_LAYERS_SETTINGS();\n}\n\nconst DISCRETE_LAYERS: Layer[] = [\n 'box',\n 'binnedDots',\n 'jitteredDots',\n 'violin',\n 'bar',\n 'stackedBar',\n 'line',\n 'errorbar',\n 'sina',\n 'logo',\n];\nconst SCATTERPLOT_LAYERS: Layer[] = ['dots', 'curve'];\nconst SCATTERPLOT_UMAP_LAYERS: Layer[] = ['dots'];\nconst HEATMAP_LAYERS: Layer[] = ['heatmap', 'heatmapClustered'];\nconst DENDRO_LAYERS: Layer[] = ['dendro'];\nconst HISTOGRAM_LAYERS: Layer[] = ['bins'];\nconst BUBBLE_LAYERS: Layer[] = ['bubble'];\nconst _LAYERS_BY_CHART_TYPE: Record<ChartType, Layer[]> = {\n 'discrete': DISCRETE_LAYERS,\n 'scatterplot': SCATTERPLOT_LAYERS,\n 'scatterplot-umap': SCATTERPLOT_UMAP_LAYERS,\n 'heatmap': HEATMAP_LAYERS,\n 'dendro': DENDRO_LAYERS,\n 'histogram': HISTOGRAM_LAYERS,\n 'bubble': BUBBLE_LAYERS,\n};\n\nexport function getInitialLayersSettings(\n initialSettings?: DeepPartial<LayersSettings>,\n): LayersSettings {\n const defaultSettings = DEFAULT_LAYERS_SETTINGS();\n const layers: Layer[] = Object.keys(defaultSettings) as Layer[];\n return layers.reduce((res, layer) => {\n Object.assign(\n res[layer],\n initialSettings?.[layer] ?? {},\n );\n return res;\n }, defaultSettings);\n}\n\nexport type Sorting = 'asc' | 'desc';\nexport type AxesState = {\n title: { value: string; position: TitlePosition; mode: AxisTitleMode; facetTitleFrame: Frame };\n axisX: {\n labelsPosition: LabelsPosition; // for heatmap - top/bottom/left/right/hidden\n labelsRotation: LabelsRotation | null; // only for discrete X axis - 'center'/'90deg'/'45deg'; null for auto mode before user chose\n axisLabelsAngle: 0 | 45 | 90; // for heatmap\n groupLabelsAngle: 0 | 45 | 90; // for heatmap\n titleMode: AxisTitleMode; // 'auto' - from column or 'custom' - from 'customTitle' field or 'hidden'\n customTitle: string; // user axis title, not default from column\n gridlines: boolean;\n linesBetweenCategories: boolean; // for discrete - position for vertical gridlines\n ticks: boolean;\n scale: Scale; // linear or log\n significantLinesStyle: LineType;\n sorting: Sorting;\n allowNullPrimaryGroups: boolean; // for discrete - allow group with null grouping value\n allowNullSecondaryGroups: boolean;\n order: {\n source: string;\n options: { value: string; label: string }[];\n } | null;\n cellSize: number | null;\n annotationTitlePosition: 'left' | 'right' | 'hidden';\n };\n axisY: {\n labelsRotation: LabelsRotation | null; // only for discrete X axis - 'center'/'90deg'/'45deg'; null for auto mode before user chose\n titleMode: AxisTitleMode;\n customTitle: string;\n axisLabelsAngle: 0 | 45 | 90; // for heatmap\n groupLabelsAngle: 0 | 45 | 90; // for heatmap\n gridlines: boolean;\n ticks: boolean;\n scale: Scale;\n significantLinesStyle: LineType;\n sorting: Sorting;\n order: {\n source: string;\n options: { value: string; label: string }[];\n } | null;\n cellSize: number | null;\n annotationTitlePosition: 'top' | 'bottom' | 'hidden';\n };\n legend: { show?: boolean };\n other: {\n frame: Frame | HeatmapFrame;\n reverse: boolean;\n facetSharedBy: 'x' | 'y' | 'xy' | 'none';\n facetColumns: number;\n binsCount: number;\n groupingDirection: 'straight' | 'reverse';\n groupingStack: 'vertical' | 'horizontal';\n canvasRenderMode: boolean;\n };\n};\n\nconst DEFAULT_AXES: () => AxesState = () => ({\n title: {\n value: 'Graph 1',\n position: 'center',\n mode: 'auto',\n facetTitleFrame: 'full',\n },\n axisX: {\n labelsPosition: 'bottom',\n labelsRotation: null,\n axisLabelsAngle: 90,\n groupLabelsAngle: 45,\n titleMode: 'auto',\n customTitle: '',\n gridlines: true,\n linesBetweenCategories: true,\n ticks: true,\n scale: 'linear',\n significantLinesStyle: 'dashed',\n sorting: 'asc',\n allowNullPrimaryGroups: false,\n allowNullSecondaryGroups: false,\n order: null,\n cellSize: null,\n annotationTitlePosition: 'right',\n },\n axisY: {\n labelsRotation: null,\n titleMode: 'auto',\n customTitle: '',\n axisLabelsAngle: 90,\n groupLabelsAngle: 45,\n gridlines: true,\n ticks: true,\n scale: 'linear',\n significantLinesStyle: 'dashed',\n sorting: 'asc',\n order: null,\n cellSize: null,\n annotationTitlePosition: 'top',\n },\n legend: {},\n other: {\n frame: 'full',\n reverse: false,\n canvasRenderMode: false,\n facetSharedBy: 'xy',\n facetColumns: 3,\n binsCount: 10,\n groupingDirection: 'straight',\n groupingStack: 'vertical',\n },\n});\n\nfunction isHeatmapFrame(frame: Frame | HeatmapFrame): frame is HeatmapFrame {\n return frame === 'full' || frame === 'none';\n}\n\nexport function getInitialAxesSettings(\n chartType: ChartType,\n initialAxesSettings?: DeepPartial<AxesState>,\n): AxesState {\n const defaultAxes = DEFAULT_AXES();\n if (!initialAxesSettings) {\n return defaultAxes;\n }\n\n // TODO: divide into separated settings for chart types\n function getFrame(frame?: Frame | HeatmapFrame): Frame | HeatmapFrame {\n if (!frame) {\n return 'full';\n }\n if (chartType === 'heatmap' && !isHeatmapFrame(frame)) {\n return 'full' as HeatmapFrame;\n }\n if (chartType !== 'heatmap' && isHeatmapFrame(frame)) {\n return frame === 'none' ? 'empty' : (frame as Frame);\n }\n return frame;\n }\n\n return {\n title: {\n ...defaultAxes.title,\n ...initialAxesSettings.title,\n },\n axisX: {\n ...defaultAxes.axisX,\n ...initialAxesSettings.axisX,\n },\n axisY: {\n ...defaultAxes.axisY,\n ...initialAxesSettings.axisY,\n },\n legend: {\n ...defaultAxes.legend,\n ...initialAxesSettings.legend,\n },\n other: {\n ...defaultAxes.other,\n ...initialAxesSettings.other,\n frame: getFrame(initialAxesSettings.other?.frame),\n },\n };\n}\n\nexport const LAYER_ICONS: Record<LayersTemplate, Component> = {\n box: BoxplotIcon,\n box_binnedDots: BoxplotAndBinnedIcon,\n box_jitteredDots: BoxplotAndJitterIcon,\n binnedDots: BinnedDotsIcon,\n jitteredDots: JitteredDotsIcon,\n violin: ViolinIcon,\n violin_binnedDots: ViolinAndBinnedIcon,\n violin_jitteredDots: ViolinAndJitterIcon,\n bar: BarIcon,\n bar_line: BarAndLineIcon,\n bar_errorbar: BarAndErrorIcon,\n stackedBar: StackedBarIcon,\n stackedArea: StackedAreaIcon,\n line: LineIcon,\n line_binnedDots: LineAndBinnedIcon,\n line_jitteredDots: LineAndJitterIcon,\n line_errorbar: LineAndErrorbarIcon,\n errorbar: BarAndLineIcon,\n sina: SinaIcon,\n logo: LogoIcon,\n dots: ScatterplotIcon,\n curve: LineIcon,\n curve_dots: LineAndJitterIcon,\n heatmap: HeatmapIcon,\n heatmapClustered: DendroIcon,\n dendro: DendroIcon,\n bins: BarIcon,\n bubble: HeatmapIcon,\n};\n\ntype Option = { value: string; text: string };\nexport const STAT_TEST_METHOD: Option[] = [\n { value: 'ttest', text: 'TTest' },\n { value: 'anova', text: 'ANOVA' },\n { value: 'wilcoxon', text: 'Wilcoxon' },\n { value: 'kruskalWallis', text: 'Kruskal-Wallis' },\n];\n\nexport const STAT_CORRECTION_METHOD: Option[] = [\n { value: 'BenjaminiHochberg', text: 'Benjamini-Hochberg' },\n { value: 'BenjaminiYekutieli', text: 'Benjamini-Yekutieli' },\n { value: 'Bonferroni', text: 'Bonferroni' },\n { value: 'Hochberg', text: 'Hochberg' },\n { value: 'Holm', text: 'Holm' },\n { value: 'Hommel', text: 'Hommel' },\n { value: 'none', text: 'None' },\n];\n\nexport const FORMAT_P_VALUE_OPTIONS: Option[] = [\n { value: 'pValue', text: 'p-value' },\n { value: 'significance', text: 'significance' },\n];\n\nexport type AesType = 'fill' | 'stroke' | 'dotShape' | 'lineType' | 'size';\n\nexport const DEFAULT_WIDTH = 600;\nexport const DEFAULT_HEIGHT = 350;\nexport const DEFAULT_WIDTH_SMALL = 400;\nexport const DEFAULT_HEIGHT_SMALL = 250;\n\nexport const MAX_SEARCH_OPTIONS_LIST_LENGTH = 100;\n"],"names":["getInitialTemplate","restoredTemplate","chartType","DISCRETE_TEMPLATES_MAP","SCATTERPLOT_TEMPLATES_MAP","SCATTERPLOT_UMAP_TEMPLATES_MAP","HEATMAP_TEMPLATES_MAP","HISTOGRAM_TEMPLATES_MAP","LAYER_TITLES","getInitialStatisticsState","initialData","initial","_C","_D","_E","isNumberRange","v","isMappedAes","item","isContinuousDataMapping","DEFAULT_LAYERS_SETTINGS","DEFAULT_BLACK","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_LINE_COLOR","DEFAULT_LINE_TYPE","getInitialLayersSettings","initialSettings","defaultSettings","res","layer","DEFAULT_AXES","isHeatmapFrame","frame","getInitialAxesSettings","initialAxesSettings","defaultAxes","getFrame","_a","LAYER_ICONS","BoxplotIcon","BoxplotAndBinnedIcon","BoxplotAndJitterIcon","BinnedDotsIcon","JitteredDotsIcon","ViolinIcon","ViolinAndBinnedIcon","ViolinAndJitterIcon","BarIcon","BarAndLineIcon","BarAndErrorIcon","StackedBarIcon","StackedAreaIcon","LineIcon","LineAndBinnedIcon","LineAndJitterIcon","LineAndErrorbarIcon","SinaIcon","LogoIcon","ScatterplotIcon","HeatmapIcon","DendroIcon","STAT_TEST_METHOD","STAT_CORRECTION_METHOD","FORMAT_P_VALUE_OPTIONS","DEFAULT_WIDTH","DEFAULT_HEIGHT","DEFAULT_WIDTH_SMALL","DEFAULT_HEIGHT_SMALL","MAX_SEARCH_OPTIONS_LIST_LENGTH"],"mappings":"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"}
@@ -34,7 +34,7 @@ const P = { class: "axes-settings-list" }, Y = { class: "axes-settings-options-r
34
34
  ], r = [
35
35
  { value: "auto", text: "Auto" },
36
36
  { value: "custom", text: "Custom" },
37
- { value: "hidden", text: "Hide" }
37
+ { value: "hidden", text: "Hidden" }
38
38
  ], c = [
39
39
  { value: "none", icon: L },
40
40
  { value: "full", icon: C }
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleAxesSettingsForm.vue.js","sources":["../../../src/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { Slider } from '@platforma-sdk/ui-vue';\nimport { useStore } from '../../store';\nimport CollapsableBlock from '../../components/CollapsableBlock.vue';\nimport Right from '../../icons/Right.vue';\nimport Down from '../../icons/Down.vue';\nimport { PlTextField, PlBtnGroup } from '@platforma-sdk/ui-vue';\nimport BtnIconGroup from '../../components/BtnIconGroup.vue';\nimport AlignLeft from '../../icons/AlignLeft.vue';\nimport AlignCenter from '../../icons/AlignCenter.vue';\nimport AlignRight from '../../icons/AlignRight.vue';\nimport FrameFull from '../../icons/FrameFull.vue';\nimport FrameEmpty from '../../icons/FrameEmpty.vue';\nimport Rotation0 from '../../icons/Rotation0.vue';\nimport Rotation45 from '../../icons/Rotation45.vue';\nimport Rotation90 from '../../icons/Rotation90.vue';\n\nconst store = useStore();\nconst settings = store.value.reactive.axesSettings;\nconst blockSettings = {\n height: 40,\n horizontalPadding: 12,\n defaultState: 'open' as 'open' | 'close',\n};\nconst OPTIONS_TITLE_ALIGN = [\n { value: 'left', icon: AlignLeft },\n { value: 'center', icon: AlignCenter },\n { value: 'right', icon: AlignRight },\n];\nconst OPTIONS_HEATMAP_ROTATION = [\n { value: 0, icon: Rotation0 },\n { value: 45, icon: Rotation45 },\n { value: 90, icon: Rotation90 },\n];\nconst OPTIONS_AXIS_LABEL_MODE = [\n { value: 'auto', text: 'Auto' },\n { value: 'custom', text: 'Custom' },\n { value: 'hidden', text: 'Hide' },\n];\nconst OPTIONS_CHART_FRAME = [\n { value: 'none', icon: FrameEmpty },\n { value: 'full', icon: FrameFull },\n];\nconst OPTIONS_SORTING = [\n { text: 'ascending', value: 'asc' },\n { text: 'descending', value: 'desc' },\n];\n\n</script>\n\n<template>\n <div class=\"axes-form\" @click=\"(e) => e.stopPropagation()\">\n <h3 class=\"axes-title\">\n Axes\n </h3>\n <div class=\"axes-settings-list\">\n <!-- Chart title -->\n <CollapsableBlock title=\"Title\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.title.mode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.title.mode === 'custom'\" class=\"axes-settings-input\">\n <PlTextField\n v-model=\"settings.title.value\"\n label=\"Chart title\"\n placeholder=\"Chart title\"\n />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Alignment</span>\n <BtnIconGroup v-model=\"settings.title.position\" :options=\"OPTIONS_TITLE_ALIGN\"/>\n </div>\n </CollapsableBlock>\n <!-- X axis settings-->\n <CollapsableBlock title=\"X-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row\">\n <span>Labels rotation</span>\n <BtnIconGroup v-model=\"settings.axisX.axisLabelsAngle\" :options=\"OPTIONS_HEATMAP_ROTATION\" />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisX.titleMode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.axisX.titleMode === 'custom'\">\n <PlTextField\n v-model=\"settings.axisX.customTitle\"\n label=\"Text\"\n placeholder=\"Type\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisX.sorting\"\n label=\"Sorting\"\n :options=\"OPTIONS_SORTING\"\n />\n </div>\n </CollapsableBlock>\n <!-- Y axis settings-->\n <CollapsableBlock title=\"Y-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row\">\n <span>Labels rotation</span>\n <BtnIconGroup v-model=\"settings.axisY.axisLabelsAngle\" :options=\"OPTIONS_HEATMAP_ROTATION\" />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisY.titleMode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.axisY.titleMode === 'custom'\">\n <PlTextField\n v-model=\"settings.axisY.customTitle\"\n label=\"Text\"\n placeholder=\"Type\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisY.sorting\"\n label=\"Sorting\"\n :options=\"OPTIONS_SORTING\"\n />\n </div>\n </CollapsableBlock>\n\n <div class=\"other\">\n <div class=\"axes-settings-options-row\">\n <span>Frame</span>\n <BtnIconGroup v-model=\"settings.other.frame\" :options=\"OPTIONS_CHART_FRAME\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <Slider\n v-model=\"settings.other.facetColumns\"\n :style=\"{width: '100%'}\"\n label=\"Facet column count\"\n :min=\"1\"\n :max=\"6\"\n :step=\"1\"\n :breakpoints=\"true\"\n mode=\"input\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["settings","useStore","blockSettings","OPTIONS_TITLE_ALIGN","AlignLeft","AlignCenter","AlignRight","OPTIONS_HEATMAP_ROTATION","Rotation0","Rotation45","Rotation90","OPTIONS_AXIS_LABEL_MODE","OPTIONS_CHART_FRAME","FrameEmpty","FrameFull","OPTIONS_SORTING","_createElementBlock","_cache","e","_createElementVNode","_hoisted_1","_createVNode","CollapsableBlock","Right","Down","_hoisted_2","_unref","PlBtnGroup","$event","_openBlock","_hoisted_3","PlTextField","_hoisted_4","BtnIconGroup","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","Slider"],"mappings":"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"}
1
+ {"version":3,"file":"BubbleAxesSettingsForm.vue.js","sources":["../../../src/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { Slider } from '@platforma-sdk/ui-vue';\nimport { useStore } from '../../store';\nimport CollapsableBlock from '../../components/CollapsableBlock.vue';\nimport Right from '../../icons/Right.vue';\nimport Down from '../../icons/Down.vue';\nimport { PlTextField, PlBtnGroup } from '@platforma-sdk/ui-vue';\nimport BtnIconGroup from '../../components/BtnIconGroup.vue';\nimport AlignLeft from '../../icons/AlignLeft.vue';\nimport AlignCenter from '../../icons/AlignCenter.vue';\nimport AlignRight from '../../icons/AlignRight.vue';\nimport FrameFull from '../../icons/FrameFull.vue';\nimport FrameEmpty from '../../icons/FrameEmpty.vue';\nimport Rotation0 from '../../icons/Rotation0.vue';\nimport Rotation45 from '../../icons/Rotation45.vue';\nimport Rotation90 from '../../icons/Rotation90.vue';\n\nconst store = useStore();\nconst settings = store.value.reactive.axesSettings;\nconst blockSettings = {\n height: 40,\n horizontalPadding: 12,\n defaultState: 'open' as 'open' | 'close',\n};\nconst OPTIONS_TITLE_ALIGN = [\n { value: 'left', icon: AlignLeft },\n { value: 'center', icon: AlignCenter },\n { value: 'right', icon: AlignRight },\n];\nconst OPTIONS_HEATMAP_ROTATION = [\n { value: 0, icon: Rotation0 },\n { value: 45, icon: Rotation45 },\n { value: 90, icon: Rotation90 },\n];\nconst OPTIONS_AXIS_LABEL_MODE = [\n { value: 'auto', text: 'Auto' },\n { value: 'custom', text: 'Custom' },\n { value: 'hidden', text: 'Hidden' },\n];\nconst OPTIONS_CHART_FRAME = [\n { value: 'none', icon: FrameEmpty },\n { value: 'full', icon: FrameFull },\n];\nconst OPTIONS_SORTING = [\n { text: 'ascending', value: 'asc' },\n { text: 'descending', value: 'desc' },\n];\n\n</script>\n\n<template>\n <div class=\"axes-form\" @click=\"(e) => e.stopPropagation()\">\n <h3 class=\"axes-title\">\n Axes\n </h3>\n <div class=\"axes-settings-list\">\n <!-- Chart title -->\n <CollapsableBlock title=\"Title\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.title.mode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.title.mode === 'custom'\" class=\"axes-settings-input\">\n <PlTextField\n v-model=\"settings.title.value\"\n label=\"Chart title\"\n placeholder=\"Chart title\"\n />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Alignment</span>\n <BtnIconGroup v-model=\"settings.title.position\" :options=\"OPTIONS_TITLE_ALIGN\"/>\n </div>\n </CollapsableBlock>\n <!-- X axis settings-->\n <CollapsableBlock title=\"X-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row\">\n <span>Labels rotation</span>\n <BtnIconGroup v-model=\"settings.axisX.axisLabelsAngle\" :options=\"OPTIONS_HEATMAP_ROTATION\" />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisX.titleMode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.axisX.titleMode === 'custom'\">\n <PlTextField\n v-model=\"settings.axisX.customTitle\"\n label=\"Text\"\n placeholder=\"Type\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisX.sorting\"\n label=\"Sorting\"\n :options=\"OPTIONS_SORTING\"\n />\n </div>\n </CollapsableBlock>\n <!-- Y axis settings-->\n <CollapsableBlock title=\"Y-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row\">\n <span>Labels rotation</span>\n <BtnIconGroup v-model=\"settings.axisY.axisLabelsAngle\" :options=\"OPTIONS_HEATMAP_ROTATION\" />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisY.titleMode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.axisY.titleMode === 'custom'\">\n <PlTextField\n v-model=\"settings.axisY.customTitle\"\n label=\"Text\"\n placeholder=\"Type\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisY.sorting\"\n label=\"Sorting\"\n :options=\"OPTIONS_SORTING\"\n />\n </div>\n </CollapsableBlock>\n\n <div class=\"other\">\n <div class=\"axes-settings-options-row\">\n <span>Frame</span>\n <BtnIconGroup v-model=\"settings.other.frame\" :options=\"OPTIONS_CHART_FRAME\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <Slider\n v-model=\"settings.other.facetColumns\"\n :style=\"{width: '100%'}\"\n label=\"Facet column count\"\n :min=\"1\"\n :max=\"6\"\n :step=\"1\"\n :breakpoints=\"true\"\n mode=\"input\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["settings","useStore","blockSettings","OPTIONS_TITLE_ALIGN","AlignLeft","AlignCenter","AlignRight","OPTIONS_HEATMAP_ROTATION","Rotation0","Rotation45","Rotation90","OPTIONS_AXIS_LABEL_MODE","OPTIONS_CHART_FRAME","FrameEmpty","FrameFull","OPTIONS_SORTING","_createElementBlock","_cache","e","_createElementVNode","_hoisted_1","_createVNode","CollapsableBlock","Right","Down","_hoisted_2","_unref","PlBtnGroup","$event","_openBlock","_hoisted_3","PlTextField","_hoisted_4","BtnIconGroup","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","Slider"],"mappings":"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"}
@@ -60,7 +60,7 @@ const fe = { class: "axes-settings-list" }, Ve = { class: "axes-settings-options
60
60
  ], A = [
61
61
  { value: "auto", text: "Auto" },
62
62
  { value: "custom", text: "Custom" },
63
- { value: "hidden", text: "Hide" }
63
+ { value: "hidden", text: "Hidden" }
64
64
  ], W = [
65
65
  { value: "linear", text: "Linear" },
66
66
  { value: "log", text: "Log" }
@@ -1 +1 @@
1
- {"version":3,"file":"DiscreteAxesSettingsForm.vue.js","sources":["../../../src/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { Slider, PlToggleSwitch } from '@platforma-sdk/ui-vue';\nimport { useStore } from '../../store';\nimport CollapsableBlock from '../../components/CollapsableBlock.vue';\nimport Right from '../../icons/Right.vue';\nimport Down from '../../icons/Down.vue';\nimport { PlTextField, PlBtnGroup } from '@platforma-sdk/ui-vue';\nimport BtnIconGroup from '../../components/BtnIconGroup.vue';\nimport AlignLeft from '../../icons/AlignLeft.vue';\nimport AlignCenter from '../../icons/AlignCenter.vue';\nimport AlignRight from '../../icons/AlignRight.vue';\nimport FrameFull from '../../icons/FrameFull.vue';\nimport FrameEmpty from '../../icons/FrameEmpty.vue';\nimport Rotation0 from '../../icons/Rotation0.vue';\nimport Rotation45 from '../../icons/Rotation45.vue';\nimport Rotation90 from '../../icons/Rotation90.vue';\nimport FrameLeft from '../../icons/FrameLeft.vue';\nimport FrameBottom from '../../icons/FrameBottom.vue';\nimport FrameLeftBottom from '../../icons/FrameLeftBottom.vue';\nimport AesButton from '../../components/AesButton.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport { computed, onMounted, ref } from 'vue';\nimport AesDataMapping from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport type { AestheticMappingCategorical } from '../../dataBindAes';\nimport { createDefaultMapping } from '../../dataBindAes';\nimport type { LabelsRotation } from '../../types';\nimport { getDiscreteLabelsRotation } from '../../utils';\nimport { watch } from 'vue';\n\nconst store = useStore();\nconst settings = store.value.reactive.axesSettings;\nconst blockSettings = {\n height: 40,\n horizontalPadding: 12,\n defaultState: 'open' as 'open' | 'close',\n};\n\nconst OPTIONS_TITLE_ALIGN = [\n { value: 'left', icon: AlignLeft },\n { value: 'center', icon: AlignCenter },\n { value: 'right', icon: AlignRight },\n];\n// const OPTIONS_FACET_FRAME = [\n// {value: 'empty', icon: FrameEmpty},\n// {value: 'full', icon: FrameFull},\n// ]\nconst OPTIONS_LABELS_ROTATION = [\n { value: 'center', icon: Rotation0 },\n { value: '45deg', icon: Rotation45 },\n { value: '90deg', icon: Rotation90 },\n];\nconst OPTIONS_AXIS_LABEL_MODE = [\n { value: 'auto', text: 'Auto' },\n { value: 'custom', text: 'Custom' },\n { value: 'hidden', text: 'Hide' },\n];\nconst OPTIONS_SCALE = [\n { value: 'linear', text: 'Linear' },\n { value: 'log', text: 'Log' },\n];\nconst OPTIONS_CHART_FRAME = [\n { value: 'empty', icon: FrameEmpty },\n { value: 'left', icon: FrameLeft },\n { value: 'bottom', icon: FrameBottom },\n { value: 'left-bottom', icon: FrameLeftBottom },\n { value: 'full', icon: FrameFull },\n];\n\nconst inputGuide = computed(() => store.value.inputGuide.value);\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\nconst reorderPrimaryOpen = ref(false);\nconst reorderSecondaryOpen = ref(false);\n\nconst defaultReorderPrimaryOpen = computed(() => store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen);\nconst defaultReorderSecondaryOpen = computed(() => store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen);\nonMounted(() => {\n if (defaultReorderPrimaryOpen.value) {\n reorderPrimaryOpen.value = true;\n }\n if (defaultReorderSecondaryOpen.value) {\n reorderSecondaryOpen.value = true;\n }\n});\nwatch(() => defaultReorderPrimaryOpen.value, (v) => {\n if (v) {\n reorderSecondaryOpen.value = false;\n reorderPrimaryOpen.value = true;\n }\n});\nwatch(() => defaultReorderSecondaryOpen.value, (v) => {\n if (v) {\n reorderPrimaryOpen.value = false;\n reorderSecondaryOpen.value = true;\n }\n});\n\nconst primaryGrouping = computed(() => store.value.reactive.optionsState.components.primaryGrouping?.selectorStates[0]?.selectedSource);\nconst secondaryGrouping = computed(() => store.value.reactive.optionsState.components.secondaryGrouping?.selectorStates[0]?.selectedSource);\n\nconst primaryGroups = computed(() => store.value.commonHelpersData.primaryGroups.value);\nconst secondaryGroups = computed(() => store.value.commonHelpersData.secondaryGroups.value);\n\nconst usedAesInMapping = computed(() => store.value.commonHelpersData.usedAesInMapping.value);\n\nconst mappingPrimary = ref(store.value.reactive.dataBindAes[primaryGrouping.value] as AestheticMappingCategorical ?? createDefaultMapping(primaryGroups.value));\nconst mappingSecondary = ref(store.value.reactive.dataBindAes[secondaryGrouping.value] as AestheticMappingCategorical ?? createDefaultMapping(secondaryGroups.value));\n\nconst primaryInfo = computed(() => {\n if (primaryGrouping.value) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(primaryGrouping.value) ?? null;\n const valueLabels = labelsInfo.value[primaryGrouping.value]?.labels ?? null;\n return {\n selectedSourceInfo,\n labels: primaryGroups.value.reduce((res: Record<string, string>, v) => {\n res[v] = valueLabels?.[v] ?? String(v);\n return res;\n }, {}),\n };\n }\n return null;\n});\nconst secondaryInfo = computed(() => {\n if (secondaryGrouping.value) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(secondaryGrouping.value) ?? null;\n const valueLabels = labelsInfo.value[secondaryGrouping.value]?.labels ?? null;\n return {\n selectedSourceInfo,\n labels: secondaryGroups.value.reduce((res: Record<string, string>, v) => {\n res[v] = valueLabels?.[v] ?? String(v);\n return res;\n }, {}),\n };\n }\n return null;\n});\n\nfunction updateOrder(value: AestheticMappingCategorical, sourceId: string) {\n store.value.reactive.dataBindAes[sourceId] = value;\n}\n\nconst OPTIONS_FACET_SHARED = [\n { text: 'X', value: 'x' },\n { text: 'Y', value: 'y' },\n { text: 'XY', value: 'xy' },\n { text: 'None', value: 'none' },\n];\n\nconst primaryOptions = computed(() => labelsInfo.value[primaryGrouping.value]);\nconst xLabelsRotation = computed({\n get() {\n return getDiscreteLabelsRotation(settings.axisX.labelsRotation, primaryOptions.value?.options);\n },\n set(value: LabelsRotation) {\n settings.axisX.labelsRotation = value;\n },\n});\n</script>\n\n<template>\n <div class=\"axes-form\" @click=\"(e) => e.stopPropagation()\">\n <h3 class=\"axes-title\">\n Axes\n </h3>\n <div class=\"axes-settings-list\">\n <!-- Chart title -->\n <CollapsableBlock title=\"Title\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.title.mode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.title.mode === 'custom'\" class=\"axes-settings-input\">\n <PlTextField\n v-model=\"settings.title.value\"\n label=\"Chart title\"\n placeholder=\"Chart title\"\n />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Alignment</span>\n <BtnIconGroup v-model=\"settings.title.position\" :options=\"OPTIONS_TITLE_ALIGN\"/>\n </div>\n <!-- <div class=\"axes-settings-options-row\">-->\n <!-- <span>Facet frame style</span>-->\n <!-- <btn-icon-group :options=\"OPTIONS_FACET_FRAME\" v-model=\"settings.title.facetTitleFrame\"/>-->\n <!-- </div>-->\n </CollapsableBlock>\n <!-- X axis settings-->\n <CollapsableBlock title=\"X-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div v-if=\"primaryGroups.length > 1\" class=\"axes-settings-options-row\">\n <span>Primary groups order: </span>\n <AesButton :data=\"{type: 'data', value: null}\" @click=\"reorderPrimaryOpen = true\" />\n <template v-if=\"reorderPrimaryOpen && primaryInfo\">\n <FormWrapper\n title=\"Reorder primary groups\"\n back-title=\"Axes Settings\"\n @form:open=\"store.reactive.tabDefaultState['axes'].reorderPrimaryOpen = false\"\n @form:close=\"reorderPrimaryOpen = false\"\n >\n <AesDataMapping\n v-model=\"mappingPrimary\"\n :column-value-labels=\"primaryInfo.labels\"\n :data-column-label=\"primaryInfo.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[primaryGrouping]\"\n allow-reordering\n allow-hiding\n :allow-null-option=\"settings.axisX.allowNullPrimaryGroups\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => updateOrder(value, primaryGrouping)\"\n />\n </FormWrapper>\n </template>\n </div>\n <div v-if=\"primaryGroups.length > 1\" class=\"axes-settings-options-row\">\n <span>Allow null primary group</span>\n <PlToggleSwitch v-model=\"settings.axisX.allowNullPrimaryGroups\" />\n </div>\n <div v-if=\"secondaryGroups.length > 1\" class=\"axes-settings-options-row\">\n <span>Secondary groups order: </span>\n <AesButton :data=\"{type: 'data', value: null}\" @click=\"reorderSecondaryOpen = true\" />\n <template v-if=\"reorderSecondaryOpen && secondaryInfo\">\n <FormWrapper\n title=\"Reorder secondary groups\"\n back-title=\"Axes Settings\"\n @form:open=\"store.reactive.tabDefaultState['axes'].reorderSecondaryOpen = false\"\n @form:close=\"reorderSecondaryOpen = false\"\n >\n <AesDataMapping\n v-model=\"mappingSecondary\"\n :column-value-labels=\"secondaryInfo.labels\"\n :data-column-label=\"secondaryInfo.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[secondaryGrouping]\"\n allow-reordering\n allow-hiding\n :allow-null-option=\"settings.axisX.allowNullSecondaryGroups\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => updateOrder(value, secondaryGrouping)\"\n />\n </FormWrapper>\n </template>\n </div>\n <div v-if=\"secondaryGroups.length > 1\" class=\"axes-settings-options-row\">\n <span>Allow null secondary group</span>\n <PlToggleSwitch v-model=\"settings.axisX.allowNullSecondaryGroups\" />\n </div>\n <div v-if=\"store.reactive.chartType === 'discrete'\" class=\"axes-settings-options-row\">\n <span>Labels rotation</span>\n <BtnIconGroup v-model=\"xLabelsRotation\" :options=\"OPTIONS_LABELS_ROTATION\" />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisX.titleMode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.axisX.titleMode === 'custom'\">\n <PlTextField\n v-model=\"settings.axisX.customTitle\"\n label=\"Text\"\n placeholder=\"Type\"\n />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Gridlines</span>\n <PlToggleSwitch v-model=\"settings.axisX.gridlines\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Lines between categories</span>\n <PlToggleSwitch v-model=\"settings.axisX.linesBetweenCategories\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Ticks</span>\n <PlToggleSwitch v-model=\"settings.axisX.ticks\" />\n </div>\n </CollapsableBlock>\n <!-- Y axis settings-->\n <CollapsableBlock title=\"Y-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisY.titleMode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.axisY.titleMode === 'custom'\">\n <PlTextField\n v-model=\"settings.axisY.customTitle\"\n label=\"Text\"\n placeholder=\"Type\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisY.scale\"\n label=\"Scale\"\n :options=\"OPTIONS_SCALE\"\n />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Gridlines</span>\n <PlToggleSwitch v-model=\"settings.axisY.gridlines\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Ticks</span>\n <PlToggleSwitch v-model=\"settings.axisY.ticks\" />\n </div>\n </CollapsableBlock>\n <!-- Facet settings-->\n <div class=\"other\">\n <div class=\"axes-settings-options-row\">\n <span>Frame</span>\n <BtnIconGroup v-model=\"settings.other.frame\" :options=\"OPTIONS_CHART_FRAME\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Reverse axes</span>\n <PlToggleSwitch v-model=\"settings.other.reverse\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <Slider\n v-model=\"settings.other.facetColumns\"\n :style=\"{width: '100%'}\"\n label=\"Facet column count\"\n :min=\"1\"\n :max=\"6\"\n :step=\"1\"\n :breakpoints=\"true\"\n mode=\"input\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.other.facetSharedBy\"\n label=\"Facet shared by\"\n :options=\"OPTIONS_FACET_SHARED\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["store","useStore","settings","blockSettings","OPTIONS_TITLE_ALIGN","AlignLeft","AlignCenter","AlignRight","OPTIONS_LABELS_ROTATION","Rotation0","Rotation45","Rotation90","OPTIONS_AXIS_LABEL_MODE","OPTIONS_SCALE","OPTIONS_CHART_FRAME","FrameEmpty","FrameLeft","FrameBottom","FrameLeftBottom","FrameFull","inputGuide","computed","labelsInfo","reorderPrimaryOpen","ref","reorderSecondaryOpen","defaultReorderPrimaryOpen","defaultReorderSecondaryOpen","onMounted","watch","v","primaryGrouping","_b","_a","secondaryGrouping","primaryGroups","secondaryGroups","usedAesInMapping","mappingPrimary","createDefaultMapping","mappingSecondary","primaryInfo","selectedSourceInfo","valueLabels","res","secondaryInfo","updateOrder","value","sourceId","OPTIONS_FACET_SHARED","primaryOptions","xLabelsRotation","getDiscreteLabelsRotation","_createElementBlock","_cache","e","_createElementVNode","_hoisted_1","_createVNode","CollapsableBlock","Right","Down","_hoisted_2","_unref","PlBtnGroup","$event","_openBlock","_hoisted_3","PlTextField","_hoisted_4","BtnIconGroup","_hoisted_5","AesButton","_createBlock","FormWrapper","AesDataMapping","_hoisted_6","PlToggleSwitch","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","Slider","_hoisted_24"],"mappings":"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"}
1
+ {"version":3,"file":"DiscreteAxesSettingsForm.vue.js","sources":["../../../src/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { Slider, PlToggleSwitch } from '@platforma-sdk/ui-vue';\nimport { useStore } from '../../store';\nimport CollapsableBlock from '../../components/CollapsableBlock.vue';\nimport Right from '../../icons/Right.vue';\nimport Down from '../../icons/Down.vue';\nimport { PlTextField, PlBtnGroup } from '@platforma-sdk/ui-vue';\nimport BtnIconGroup from '../../components/BtnIconGroup.vue';\nimport AlignLeft from '../../icons/AlignLeft.vue';\nimport AlignCenter from '../../icons/AlignCenter.vue';\nimport AlignRight from '../../icons/AlignRight.vue';\nimport FrameFull from '../../icons/FrameFull.vue';\nimport FrameEmpty from '../../icons/FrameEmpty.vue';\nimport Rotation0 from '../../icons/Rotation0.vue';\nimport Rotation45 from '../../icons/Rotation45.vue';\nimport Rotation90 from '../../icons/Rotation90.vue';\nimport FrameLeft from '../../icons/FrameLeft.vue';\nimport FrameBottom from '../../icons/FrameBottom.vue';\nimport FrameLeftBottom from '../../icons/FrameLeftBottom.vue';\nimport AesButton from '../../components/AesButton.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport { computed, onMounted, ref } from 'vue';\nimport AesDataMapping from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport type { AestheticMappingCategorical } from '../../dataBindAes';\nimport { createDefaultMapping } from '../../dataBindAes';\nimport type { LabelsRotation } from '../../types';\nimport { getDiscreteLabelsRotation } from '../../utils';\nimport { watch } from 'vue';\n\nconst store = useStore();\nconst settings = store.value.reactive.axesSettings;\nconst blockSettings = {\n height: 40,\n horizontalPadding: 12,\n defaultState: 'open' as 'open' | 'close',\n};\n\nconst OPTIONS_TITLE_ALIGN = [\n { value: 'left', icon: AlignLeft },\n { value: 'center', icon: AlignCenter },\n { value: 'right', icon: AlignRight },\n];\n// const OPTIONS_FACET_FRAME = [\n// {value: 'empty', icon: FrameEmpty},\n// {value: 'full', icon: FrameFull},\n// ]\nconst OPTIONS_LABELS_ROTATION = [\n { value: 'center', icon: Rotation0 },\n { value: '45deg', icon: Rotation45 },\n { value: '90deg', icon: Rotation90 },\n];\nconst OPTIONS_AXIS_LABEL_MODE = [\n { value: 'auto', text: 'Auto' },\n { value: 'custom', text: 'Custom' },\n { value: 'hidden', text: 'Hidden' },\n];\nconst OPTIONS_SCALE = [\n { value: 'linear', text: 'Linear' },\n { value: 'log', text: 'Log' },\n];\nconst OPTIONS_CHART_FRAME = [\n { value: 'empty', icon: FrameEmpty },\n { value: 'left', icon: FrameLeft },\n { value: 'bottom', icon: FrameBottom },\n { value: 'left-bottom', icon: FrameLeftBottom },\n { value: 'full', icon: FrameFull },\n];\n\nconst inputGuide = computed(() => store.value.inputGuide.value);\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\nconst reorderPrimaryOpen = ref(false);\nconst reorderSecondaryOpen = ref(false);\n\nconst defaultReorderPrimaryOpen = computed(() => store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen);\nconst defaultReorderSecondaryOpen = computed(() => store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen);\nonMounted(() => {\n if (defaultReorderPrimaryOpen.value) {\n reorderPrimaryOpen.value = true;\n }\n if (defaultReorderSecondaryOpen.value) {\n reorderSecondaryOpen.value = true;\n }\n});\nwatch(() => defaultReorderPrimaryOpen.value, (v) => {\n if (v) {\n reorderSecondaryOpen.value = false;\n reorderPrimaryOpen.value = true;\n }\n});\nwatch(() => defaultReorderSecondaryOpen.value, (v) => {\n if (v) {\n reorderPrimaryOpen.value = false;\n reorderSecondaryOpen.value = true;\n }\n});\n\nconst primaryGrouping = computed(() => store.value.reactive.optionsState.components.primaryGrouping?.selectorStates[0]?.selectedSource);\nconst secondaryGrouping = computed(() => store.value.reactive.optionsState.components.secondaryGrouping?.selectorStates[0]?.selectedSource);\n\nconst primaryGroups = computed(() => store.value.commonHelpersData.primaryGroups.value);\nconst secondaryGroups = computed(() => store.value.commonHelpersData.secondaryGroups.value);\n\nconst usedAesInMapping = computed(() => store.value.commonHelpersData.usedAesInMapping.value);\n\nconst mappingPrimary = ref(store.value.reactive.dataBindAes[primaryGrouping.value] as AestheticMappingCategorical ?? createDefaultMapping(primaryGroups.value));\nconst mappingSecondary = ref(store.value.reactive.dataBindAes[secondaryGrouping.value] as AestheticMappingCategorical ?? createDefaultMapping(secondaryGroups.value));\n\nconst primaryInfo = computed(() => {\n if (primaryGrouping.value) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(primaryGrouping.value) ?? null;\n const valueLabels = labelsInfo.value[primaryGrouping.value]?.labels ?? null;\n return {\n selectedSourceInfo,\n labels: primaryGroups.value.reduce((res: Record<string, string>, v) => {\n res[v] = valueLabels?.[v] ?? String(v);\n return res;\n }, {}),\n };\n }\n return null;\n});\nconst secondaryInfo = computed(() => {\n if (secondaryGrouping.value) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(secondaryGrouping.value) ?? null;\n const valueLabels = labelsInfo.value[secondaryGrouping.value]?.labels ?? null;\n return {\n selectedSourceInfo,\n labels: secondaryGroups.value.reduce((res: Record<string, string>, v) => {\n res[v] = valueLabels?.[v] ?? String(v);\n return res;\n }, {}),\n };\n }\n return null;\n});\n\nfunction updateOrder(value: AestheticMappingCategorical, sourceId: string) {\n store.value.reactive.dataBindAes[sourceId] = value;\n}\n\nconst OPTIONS_FACET_SHARED = [\n { text: 'X', value: 'x' },\n { text: 'Y', value: 'y' },\n { text: 'XY', value: 'xy' },\n { text: 'None', value: 'none' },\n];\n\nconst primaryOptions = computed(() => labelsInfo.value[primaryGrouping.value]);\nconst xLabelsRotation = computed({\n get() {\n return getDiscreteLabelsRotation(settings.axisX.labelsRotation, primaryOptions.value?.options);\n },\n set(value: LabelsRotation) {\n settings.axisX.labelsRotation = value;\n },\n});\n</script>\n\n<template>\n <div class=\"axes-form\" @click=\"(e) => e.stopPropagation()\">\n <h3 class=\"axes-title\">\n Axes\n </h3>\n <div class=\"axes-settings-list\">\n <!-- Chart title -->\n <CollapsableBlock title=\"Title\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.title.mode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.title.mode === 'custom'\" class=\"axes-settings-input\">\n <PlTextField\n v-model=\"settings.title.value\"\n label=\"Chart title\"\n placeholder=\"Chart title\"\n />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Alignment</span>\n <BtnIconGroup v-model=\"settings.title.position\" :options=\"OPTIONS_TITLE_ALIGN\"/>\n </div>\n <!-- <div class=\"axes-settings-options-row\">-->\n <!-- <span>Facet frame style</span>-->\n <!-- <btn-icon-group :options=\"OPTIONS_FACET_FRAME\" v-model=\"settings.title.facetTitleFrame\"/>-->\n <!-- </div>-->\n </CollapsableBlock>\n <!-- X axis settings-->\n <CollapsableBlock title=\"X-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div v-if=\"primaryGroups.length > 1\" class=\"axes-settings-options-row\">\n <span>Primary groups order: </span>\n <AesButton :data=\"{type: 'data', value: null}\" @click=\"reorderPrimaryOpen = true\" />\n <template v-if=\"reorderPrimaryOpen && primaryInfo\">\n <FormWrapper\n title=\"Reorder primary groups\"\n back-title=\"Axes Settings\"\n @form:open=\"store.reactive.tabDefaultState['axes'].reorderPrimaryOpen = false\"\n @form:close=\"reorderPrimaryOpen = false\"\n >\n <AesDataMapping\n v-model=\"mappingPrimary\"\n :column-value-labels=\"primaryInfo.labels\"\n :data-column-label=\"primaryInfo.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[primaryGrouping]\"\n allow-reordering\n allow-hiding\n :allow-null-option=\"settings.axisX.allowNullPrimaryGroups\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => updateOrder(value, primaryGrouping)\"\n />\n </FormWrapper>\n </template>\n </div>\n <div v-if=\"primaryGroups.length > 1\" class=\"axes-settings-options-row\">\n <span>Allow null primary group</span>\n <PlToggleSwitch v-model=\"settings.axisX.allowNullPrimaryGroups\" />\n </div>\n <div v-if=\"secondaryGroups.length > 1\" class=\"axes-settings-options-row\">\n <span>Secondary groups order: </span>\n <AesButton :data=\"{type: 'data', value: null}\" @click=\"reorderSecondaryOpen = true\" />\n <template v-if=\"reorderSecondaryOpen && secondaryInfo\">\n <FormWrapper\n title=\"Reorder secondary groups\"\n back-title=\"Axes Settings\"\n @form:open=\"store.reactive.tabDefaultState['axes'].reorderSecondaryOpen = false\"\n @form:close=\"reorderSecondaryOpen = false\"\n >\n <AesDataMapping\n v-model=\"mappingSecondary\"\n :column-value-labels=\"secondaryInfo.labels\"\n :data-column-label=\"secondaryInfo.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[secondaryGrouping]\"\n allow-reordering\n allow-hiding\n :allow-null-option=\"settings.axisX.allowNullSecondaryGroups\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => updateOrder(value, secondaryGrouping)\"\n />\n </FormWrapper>\n </template>\n </div>\n <div v-if=\"secondaryGroups.length > 1\" class=\"axes-settings-options-row\">\n <span>Allow null secondary group</span>\n <PlToggleSwitch v-model=\"settings.axisX.allowNullSecondaryGroups\" />\n </div>\n <div v-if=\"store.reactive.chartType === 'discrete'\" class=\"axes-settings-options-row\">\n <span>Labels rotation</span>\n <BtnIconGroup v-model=\"xLabelsRotation\" :options=\"OPTIONS_LABELS_ROTATION\" />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisX.titleMode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.axisX.titleMode === 'custom'\">\n <PlTextField\n v-model=\"settings.axisX.customTitle\"\n label=\"Text\"\n placeholder=\"Type\"\n />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Gridlines</span>\n <PlToggleSwitch v-model=\"settings.axisX.gridlines\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Lines between categories</span>\n <PlToggleSwitch v-model=\"settings.axisX.linesBetweenCategories\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Ticks</span>\n <PlToggleSwitch v-model=\"settings.axisX.ticks\" />\n </div>\n </CollapsableBlock>\n <!-- Y axis settings-->\n <CollapsableBlock title=\"Y-axis\" :settings=\"blockSettings\" :icon=\"Right\" :icon-open=\"Down\">\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisY.titleMode\"\n label=\"Title\"\n :options=\"OPTIONS_AXIS_LABEL_MODE\"\n />\n </div>\n <div v-if=\"settings.axisY.titleMode === 'custom'\">\n <PlTextField\n v-model=\"settings.axisY.customTitle\"\n label=\"Text\"\n placeholder=\"Type\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.axisY.scale\"\n label=\"Scale\"\n :options=\"OPTIONS_SCALE\"\n />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Gridlines</span>\n <PlToggleSwitch v-model=\"settings.axisY.gridlines\" />\n </div>\n <div class=\"axes-settings-options-row table\">\n <span>Ticks</span>\n <PlToggleSwitch v-model=\"settings.axisY.ticks\" />\n </div>\n </CollapsableBlock>\n <!-- Facet settings-->\n <div class=\"other\">\n <div class=\"axes-settings-options-row\">\n <span>Frame</span>\n <BtnIconGroup v-model=\"settings.other.frame\" :options=\"OPTIONS_CHART_FRAME\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <span>Reverse axes</span>\n <PlToggleSwitch v-model=\"settings.other.reverse\" />\n </div>\n <div class=\"axes-settings-options-row\">\n <Slider\n v-model=\"settings.other.facetColumns\"\n :style=\"{width: '100%'}\"\n label=\"Facet column count\"\n :min=\"1\"\n :max=\"6\"\n :step=\"1\"\n :breakpoints=\"true\"\n mode=\"input\"\n />\n </div>\n <div class=\"axes-settings-options-row block\">\n <PlBtnGroup\n v-model=\"settings.other.facetSharedBy\"\n label=\"Facet shared by\"\n :options=\"OPTIONS_FACET_SHARED\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["store","useStore","settings","blockSettings","OPTIONS_TITLE_ALIGN","AlignLeft","AlignCenter","AlignRight","OPTIONS_LABELS_ROTATION","Rotation0","Rotation45","Rotation90","OPTIONS_AXIS_LABEL_MODE","OPTIONS_SCALE","OPTIONS_CHART_FRAME","FrameEmpty","FrameLeft","FrameBottom","FrameLeftBottom","FrameFull","inputGuide","computed","labelsInfo","reorderPrimaryOpen","ref","reorderSecondaryOpen","defaultReorderPrimaryOpen","defaultReorderSecondaryOpen","onMounted","watch","v","primaryGrouping","_b","_a","secondaryGrouping","primaryGroups","secondaryGroups","usedAesInMapping","mappingPrimary","createDefaultMapping","mappingSecondary","primaryInfo","selectedSourceInfo","valueLabels","res","secondaryInfo","updateOrder","value","sourceId","OPTIONS_FACET_SHARED","primaryOptions","xLabelsRotation","getDiscreteLabelsRotation","_createElementBlock","_cache","e","_createElementVNode","_hoisted_1","_createVNode","CollapsableBlock","Right","Down","_hoisted_2","_unref","PlBtnGroup","$event","_openBlock","_hoisted_3","PlTextField","_hoisted_4","BtnIconGroup","_hoisted_5","AesButton","_createBlock","FormWrapper","AesDataMapping","_hoisted_6","PlToggleSwitch","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","Slider","_hoisted_24"],"mappings":"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"}