@milaboratories/graph-maker 1.1.191 → 1.1.193

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/constantsAesthetic.d.ts +0 -1
  2. package/dist/constantsAesthetic.js +16 -17
  3. package/dist/constantsAesthetic.js.map +1 -1
  4. package/dist/dataBindAes.d.ts +5 -5
  5. package/dist/dataBindAes.js +110 -110
  6. package/dist/dataBindAes.js.map +1 -1
  7. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +35 -35
  8. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  9. package/dist/forms/LayersForm/AesSelector.vue.js +59 -59
  10. package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
  11. package/dist/forms/LayersForm/Layer/Bubble.vue.js +41 -41
  12. package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
  13. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +35 -35
  14. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
  15. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js +31 -31
  16. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js.map +1 -1
  17. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +35 -35
  18. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
  19. package/dist/icons/StackedAreaIcon.vue.js +1 -0
  20. package/dist/icons/StackedAreaIcon.vue.js.map +1 -1
  21. package/dist/index.vue.js +94 -90
  22. package/dist/index.vue.js.map +1 -1
  23. package/dist/store.d.ts +8 -3
  24. package/dist/store.js +129 -123
  25. package/dist/store.js.map +1 -1
  26. package/dist/types.d.ts +9 -0
  27. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +2 -2
  28. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js +11 -11
  29. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  30. package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +2 -2
  31. package/dist/utils/createChartSettingsForRender/composeChartSettings.js +28 -28
  32. package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  33. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js +23 -20
  34. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
  35. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +2 -2
  36. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +20 -18
  37. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
  38. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +2 -2
  39. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js +28 -28
  40. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  41. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +2 -2
  42. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js +11 -10
  43. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
  44. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +3 -3
  45. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +71 -68
  46. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  47. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +2 -2
  48. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +19 -18
  49. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  50. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.d.ts +1 -1
  51. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js +37 -37
  52. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
  53. package/package.json +1 -1
@@ -21,7 +21,6 @@ export declare const DIVERGING_MAP: Record<DivergingPalette, PaletteInfo>;
21
21
  export declare const PALETTE_MAP: Record<Palette, PaletteInfo>;
22
22
  export declare const DEFAULT_CATEGORICAL_PALETTE: CategoricalPalette;
23
23
  export declare const DEFAULT_CONTINUOUS_PALETTE: ContinuousPalette;
24
- export declare const DEFAULT_PALETTE: Palette;
25
24
  export declare const FIXES_DOT_SHAPES: DotShape[];
26
25
  export declare const UNKNOWN_COLOR = "#F0F0F0";
27
26
  export declare const DEFAULT_DOT_SHAPE = "21";
@@ -34,7 +34,7 @@ l.reduce(
34
34
  (o, e) => (o[e.color] = e, o),
35
35
  {}
36
36
  );
37
- const t = l.slice(0, -3).map((o) => o.color), r = t.filter((o, e) => e % 3 === 0), a = t.filter((o, e) => e % 3 === 1), c = t.filter((o, e) => e % 3 === 2), i = t.filter((o, e) => e % 3 !== 2), n = t, s = ["#FFF680", "#53D788", "#36739D", "#4A005C"], F = ["#FFF680", "#F77E5B", "#902B83", "#2B125C"], A = ["#DFFADC", "#74CFD1", "#635AC1", "#611347"], E = ["#FAFAB4", "#8DDA7F", "#337E90", "#1C0F5C"], C = ["#FFEA80", "#F07A76", "#7535A4", "#003752"], D = ["#FFF780", "#6CEA90", "#6C90F0", "#942AAE"], L = ["#43317B", "#7ACFAC", "#F5F5B7", "#F07B75", "#5C1243"], _ = ["#122B5C", "#41B5A8", "#F0F0F0", "#F07C80", "#5C1243"], d = ["#0E0E8F", "#7E93FB", "#F0F0F0", "#ED7883", "#5C1243"], T = ["#2E5C00", "#9ED26A", "#F0F0F0", "#EB8BDB", "#701260"], m = [
37
+ const t = l.slice(0, -3).map((o) => o.color), r = t.filter((o, e) => e % 3 === 0), a = t.filter((o, e) => e % 3 === 1), c = t.filter((o, e) => e % 3 === 2), i = t.filter((o, e) => e % 3 !== 2), n = t, s = ["#FFF680", "#53D788", "#36739D", "#4A005C"], F = ["#FFF680", "#F77E5B", "#902B83", "#2B125C"], A = ["#DFFADC", "#74CFD1", "#635AC1", "#611347"], E = ["#FAFAB4", "#8DDA7F", "#337E90", "#1C0F5C"], C = ["#FFEA80", "#F07A76", "#7535A4", "#003752"], D = ["#FFF780", "#6CEA90", "#6C90F0", "#942AAE"], _ = ["#43317B", "#7ACFAC", "#F5F5B7", "#F07B75", "#5C1243"], L = ["#122B5C", "#41B5A8", "#F0F0F0", "#F07C80", "#5C1243"], d = ["#0E0E8F", "#7E93FB", "#F0F0F0", "#ED7883", "#5C1243"], m = ["#2E5C00", "#9ED26A", "#F0F0F0", "#EB8BDB", "#701260"], T = [
38
38
  "#4A005C",
39
39
  "#36749D",
40
40
  "#56D688",
@@ -79,16 +79,16 @@ const f = {
79
79
  sunset: { title: "Sunset", colors: C },
80
80
  perceptual_rainbow: { title: "Rainbow", colors: D }
81
81
  }, g = {
82
- spectrum: { title: "Spectrum", colors: L },
83
- teal_red: { title: "Teal-Red", colors: _ },
82
+ spectrum: { title: "Spectrum", colors: _ },
83
+ teal_red: { title: "Teal-Red", colors: L },
84
84
  blue_red: { title: "Blue-Red", colors: d },
85
- lime_rose: { title: "Lime-Rose", colors: T },
86
- viridis_magma: { title: "Vir-Mag", colors: m }
85
+ lime_rose: { title: "Lime-Rose", colors: m },
86
+ viridis_magma: { title: "Vir-Mag", colors: T }
87
87
  }, G = {
88
88
  ...f,
89
89
  ...R,
90
90
  ...g
91
- }, N = "light", u = "salinity", U = "salinity", M = [
91
+ }, N = "light", u = "salinity", M = [
92
92
  "0",
93
93
  "5",
94
94
  "1",
@@ -109,20 +109,20 @@ const f = {
109
109
  "21",
110
110
  "24",
111
111
  "25"
112
- ], k = "#F0F0F0", b = "21", p = ["solid", "dashed", "dotted", "dotdash", "longdash", "twodash"], y = "solid", V = {
112
+ ], U = "#F0F0F0", k = "21", b = ["solid", "dashed", "dotted", "dotdash", "longdash", "twodash"], p = "solid", y = {
113
113
  solid: { title: "Solid" },
114
114
  dashed: { title: "Dashed" },
115
115
  dotted: { title: "Dotted" },
116
116
  dotdash: { title: "Dotdash" },
117
117
  longdash: { title: "Longdash" },
118
118
  twodash: { title: "Twodash" }
119
- }, v = {
119
+ }, V = {
120
120
  A: "#cc0100",
121
121
  C: "#0000cc",
122
122
  G: "#ffb300",
123
123
  T: "#027f00",
124
124
  U: "#027f00"
125
- }, w = {
125
+ }, v = {
126
126
  A: "#7fa0f0",
127
127
  R: "#ef1405",
128
128
  N: "#01ff00",
@@ -148,27 +148,26 @@ const f = {
148
148
  Z: "#eeeeee"
149
149
  };
150
150
  export {
151
- w as AMINOACID_COLOR_MAPPING,
151
+ v as AMINOACID_COLOR_MAPPING,
152
152
  I as CATEGORICAL_LIST,
153
153
  f as CATEGORICAL_MAP,
154
154
  h as DEFAULT_BLACK,
155
155
  N as DEFAULT_CATEGORICAL_PALETTE,
156
156
  u as DEFAULT_CONTINUOUS_PALETTE,
157
- b as DEFAULT_DOT_SHAPE,
158
- y as DEFAULT_LINE_TYPE,
159
- U as DEFAULT_PALETTE,
157
+ k as DEFAULT_DOT_SHAPE,
158
+ p as DEFAULT_LINE_TYPE,
160
159
  B as DEFAULT_WHITE,
161
160
  S as DIVERGING_LIST,
162
161
  g as DIVERGING_MAP,
163
162
  l as FIXED_COLORS,
164
- p as FIXED_LINE_TYPES,
163
+ b as FIXED_LINE_TYPES,
165
164
  M as FIXES_DOT_SHAPES,
166
- V as LINE_TYPES_MAP,
167
- v as NUCLEOTIDE_COLOR_MAPPING,
165
+ y as LINE_TYPES_MAP,
166
+ V as NUCLEOTIDE_COLOR_MAPPING,
168
167
  G as PALETTE_MAP,
169
168
  O as SEQUENTIAL_LIST,
170
169
  R as SEQUENTIAL_MAP,
171
- k as UNKNOWN_COLOR,
170
+ U as UNKNOWN_COLOR,
172
171
  P as isCategorical
173
172
  };
174
173
  //# sourceMappingURL=constantsAesthetic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constantsAesthetic.js","sources":["../src/constantsAesthetic.ts"],"sourcesContent":["import type {\n CategoricalPalette, ContinuousPalette,\n DivergingPalette, DotShape, LineType, LineTypeInfo,\n Palette,\n PaletteInfo,\n SequentialPalette,\n} from './components/AesSettings/types';\n\nexport const FIXED_COLORS: { name: string; color: string }[] = [\n { name: 'Light green', color: '#99E099' },\n { name: 'Green', color: '#42B842' },\n { name: 'Dark green', color: '#198020' },\n { name: 'Light violet', color: '#C1ADFF' },\n { name: 'Violet', color: '#845CFF' },\n { name: 'Dark violet', color: '#5F31CC' },\n { name: 'Light orange', color: '#FFCB8F' },\n { name: 'Orange', color: '#FF9429' },\n { name: 'Dark orange', color: '#C26A27' },\n { name: 'Light teal', color: '#90E0E0' },\n { name: 'Teal', color: '#27C2C2' },\n { name: 'Dark teal', color: '#068A94' },\n { name: 'Light rose', color: '#FAAAFA' },\n { name: 'Rose', color: '#E553E5' },\n { name: 'Dark rose', color: '#A324B2' },\n { name: 'Light lime', color: '#CBEB67' },\n { name: 'Lime', color: '#95C700' },\n { name: 'Dark lime', color: '#659406' },\n { name: 'Light blue', color: '#99CCFF' },\n { name: 'Blue', color: '#2D93FA' },\n { name: 'Dark blue', color: '#105BCC' },\n { name: 'Light red', color: '#FFADBA' },\n { name: 'Red', color: '#F05670' },\n { name: 'Dark red', color: '#AD3757' },\n { name: 'Light grey', color: '#D3D7E0' },\n { name: 'Grey', color: '#929BAD' },\n { name: 'Dark grey', color: '#5E5E70' },\n { name: 'Black', color: '#110529' },\n { name: 'White', color: '#FFFFFF' },\n { name: 'None', color: 'transparent' },\n];\n\nexport const DEFAULT_WHITE = '#FFFFFF';\nexport const DEFAULT_BLACK = '#110529';\n\nexport const FIXED_COLORS_MAP = FIXED_COLORS.reduce(\n (res: Record<string, { name: string; color: string }>, item) => {\n res[item.color] = item;\n return res;\n },\n {},\n);\n\n// fixed colors without black, white, transparent - base for categorical palettes\nconst COLORS = FIXED_COLORS.slice(0, -3).map((el) => el.color);\n\nconst CATEGORICAL_LIGHT = COLORS.filter((_el, idx) => idx % 3 === 0);\nconst CATEGORICAL_BRIGHT = COLORS.filter((_el, idx) => idx % 3 === 1);\nconst CATEGORICAL_DARK = COLORS.filter((_el, idx) => idx % 3 === 2);\nconst CATEGORICAL_PAIRED = COLORS.filter((_el, idx) => idx % 3 !== 2);\nconst CATEGORICAL_TRIADIC = COLORS;\n\nconst VIRIDIS = ['#FFF680', '#53D788', '#36739D', '#4A005C'];\nconst MAGMA = ['#FFF680', '#F77E5B', '#902B83', '#2B125C'];\nconst DENSITY = ['#DFFADC', '#74CFD1', '#635AC1', '#611347'];\nconst SALINITY = ['#FAFAB4', '#8DDA7F', '#337E90', '#1C0F5C'];\nconst SUNSET = ['#FFEA80', '#F07A76', '#7535A4', '#003752'];\nconst PERCEPTUAL_RAINBOW = ['#FFF780', '#6CEA90', '#6C90F0', '#942AAE'];\n\nconst SPECTRUM = ['#43317B', '#7ACFAC', '#F5F5B7', '#F07B75', '#5C1243'];\nconst TEAL_RED = ['#122B5C', '#41B5A8', '#F0F0F0', '#F07C80', '#5C1243'];\nconst BLUE_RED = ['#0E0E8F', '#7E93FB', '#F0F0F0', '#ED7883', '#5C1243'];\nconst LIME_ROSE = ['#2E5C00', '#9ED26A', '#F0F0F0', '#EB8BDB', '#701260'];\nconst VIRIDIS_MAGMA = [\n '#4A005C',\n '#36749D',\n '#56D688',\n '#FFF680',\n '#F77E5E',\n '#902B82',\n '#2B125C',\n];\n\nexport const CATEGORICAL_LIST: CategoricalPalette[] = [\n 'light',\n 'bright',\n 'dark',\n 'paired',\n 'triadic',\n];\nexport const SEQUENTIAL_LIST: SequentialPalette[] = [\n 'viridis',\n 'magma',\n 'density',\n 'salinity',\n 'sunset',\n 'perceptual_rainbow',\n];\nexport const DIVERGING_LIST: DivergingPalette[] = [\n 'spectrum',\n 'teal_red',\n 'blue_red',\n 'lime_rose',\n 'viridis_magma',\n];\n\nexport function isCategorical(value: Palette): value is CategoricalPalette {\n return CATEGORICAL_LIST.includes(value as CategoricalPalette);\n}\n\nexport function isSequential(value: Palette): value is SequentialPalette {\n return SEQUENTIAL_LIST.includes(value as SequentialPalette);\n}\n\nexport function isDiverging(value: Palette): value is DivergingPalette {\n return DIVERGING_LIST.includes(value as DivergingPalette);\n}\n\nexport const CATEGORICAL_MAP: Record<CategoricalPalette, PaletteInfo> = {\n light: { title: 'Light', colors: CATEGORICAL_LIGHT },\n bright: { title: 'Bright', colors: CATEGORICAL_BRIGHT },\n dark: { title: 'Dark', colors: CATEGORICAL_DARK },\n paired: { title: 'Paired', colors: CATEGORICAL_PAIRED },\n triadic: { title: 'Triadic', colors: CATEGORICAL_TRIADIC },\n};\nexport const SEQUENTIAL_MAP: Record<SequentialPalette, PaletteInfo> = {\n viridis: { title: 'Viridis', colors: VIRIDIS },\n magma: { title: 'Magma', colors: MAGMA },\n density: { title: 'Density', colors: DENSITY },\n salinity: { title: 'Salinity', colors: SALINITY },\n sunset: { title: 'Sunset', colors: SUNSET },\n perceptual_rainbow: { title: 'Rainbow', colors: PERCEPTUAL_RAINBOW },\n};\n\nexport const DIVERGING_MAP: Record<DivergingPalette, PaletteInfo> = {\n spectrum: { title: 'Spectrum', colors: SPECTRUM },\n teal_red: { title: 'Teal-Red', colors: TEAL_RED },\n blue_red: { title: 'Blue-Red', colors: BLUE_RED },\n lime_rose: { title: 'Lime-Rose', colors: LIME_ROSE },\n viridis_magma: { title: 'Vir-Mag', colors: VIRIDIS_MAGMA },\n};\n\nexport const PALETTE_MAP: Record<Palette, PaletteInfo> = {\n ...CATEGORICAL_MAP,\n ...SEQUENTIAL_MAP,\n ...DIVERGING_MAP,\n};\n\nexport const DEFAULT_CATEGORICAL_PALETTE: CategoricalPalette = 'light';\nexport const DEFAULT_CONTINUOUS_PALETTE: ContinuousPalette = 'salinity';\nexport const DEFAULT_PALETTE: Palette = 'salinity';\nexport const FIXES_DOT_SHAPES: DotShape[] = [\n '0', '5', '1', '2', '6',\n '7', '9', '3', '4', '8',\n '12', '10', '13', '14', '11',\n '22', '23', '21', '24', '25',\n];\n\nexport const UNKNOWN_COLOR = '#F0F0F0';\n\nexport const DEFAULT_DOT_SHAPE = '21'; // filled circle\n\nexport const FIXED_LINE_TYPES: LineType[] = ['solid', 'dashed', 'dotted', 'dotdash', 'longdash', 'twodash'];\n\nexport const DEFAULT_LINE_TYPE: LineType = 'solid';\nexport const LINE_TYPES_MAP: Record<LineType, LineTypeInfo> = {\n solid: { title: 'Solid' },\n dashed: { title: 'Dashed' },\n dotted: { title: 'Dotted' },\n dotdash: { title: 'Dotdash' },\n longdash: { title: 'Longdash' },\n twodash: { title: 'Twodash' },\n};\n\nexport const NUCLEOTIDE_COLOR_MAPPING = {\n A: '#cc0100',\n C: '#0000cc',\n G: '#ffb300',\n T: '#027f00',\n U: '#027f00',\n};\n\nexport const AMINOACID_COLOR_MAPPING = {\n A: '#7fa0f0',\n R: '#ef1405',\n N: '#01ff00',\n D: '#c048bf',\n C: '#ef8080',\n Q: '#01ff00',\n E: '#c048bf',\n G: '#f09047',\n H: '#14a4a4',\n I: '#7fa0f0',\n L: '#7fa0f0',\n K: '#ef1405',\n M: '#7fa0f0',\n F: '#7fa0f0',\n P: '#ffff00',\n S: '#01ff00',\n T: '#01ff00',\n W: '#7fa0f0',\n Y: '#14a4a4',\n V: '#7fa0f0',\n B: '#eeeeee',\n X: '#eeeeee',\n Z: '#eeeeee',\n};\n"],"names":["FIXED_COLORS","DEFAULT_WHITE","DEFAULT_BLACK","res","item","COLORS","el","CATEGORICAL_LIGHT","_el","idx","CATEGORICAL_BRIGHT","CATEGORICAL_DARK","CATEGORICAL_PAIRED","CATEGORICAL_TRIADIC","VIRIDIS","MAGMA","DENSITY","SALINITY","SUNSET","PERCEPTUAL_RAINBOW","SPECTRUM","TEAL_RED","BLUE_RED","LIME_ROSE","VIRIDIS_MAGMA","CATEGORICAL_LIST","SEQUENTIAL_LIST","DIVERGING_LIST","isCategorical","value","CATEGORICAL_MAP","SEQUENTIAL_MAP","DIVERGING_MAP","PALETTE_MAP","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","DEFAULT_PALETTE","FIXES_DOT_SHAPES","UNKNOWN_COLOR","DEFAULT_DOT_SHAPE","FIXED_LINE_TYPES","DEFAULT_LINE_TYPE","LINE_TYPES_MAP","NUCLEOTIDE_COLOR_MAPPING","AMINOACID_COLOR_MAPPING"],"mappings":"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"}
1
+ {"version":3,"file":"constantsAesthetic.js","sources":["../src/constantsAesthetic.ts"],"sourcesContent":["import type {\n CategoricalPalette, ContinuousPalette,\n DivergingPalette, DotShape, LineType, LineTypeInfo,\n Palette,\n PaletteInfo,\n SequentialPalette,\n} from './components/AesSettings/types';\n\nexport const FIXED_COLORS: { name: string; color: string }[] = [\n { name: 'Light green', color: '#99E099' },\n { name: 'Green', color: '#42B842' },\n { name: 'Dark green', color: '#198020' },\n { name: 'Light violet', color: '#C1ADFF' },\n { name: 'Violet', color: '#845CFF' },\n { name: 'Dark violet', color: '#5F31CC' },\n { name: 'Light orange', color: '#FFCB8F' },\n { name: 'Orange', color: '#FF9429' },\n { name: 'Dark orange', color: '#C26A27' },\n { name: 'Light teal', color: '#90E0E0' },\n { name: 'Teal', color: '#27C2C2' },\n { name: 'Dark teal', color: '#068A94' },\n { name: 'Light rose', color: '#FAAAFA' },\n { name: 'Rose', color: '#E553E5' },\n { name: 'Dark rose', color: '#A324B2' },\n { name: 'Light lime', color: '#CBEB67' },\n { name: 'Lime', color: '#95C700' },\n { name: 'Dark lime', color: '#659406' },\n { name: 'Light blue', color: '#99CCFF' },\n { name: 'Blue', color: '#2D93FA' },\n { name: 'Dark blue', color: '#105BCC' },\n { name: 'Light red', color: '#FFADBA' },\n { name: 'Red', color: '#F05670' },\n { name: 'Dark red', color: '#AD3757' },\n { name: 'Light grey', color: '#D3D7E0' },\n { name: 'Grey', color: '#929BAD' },\n { name: 'Dark grey', color: '#5E5E70' },\n { name: 'Black', color: '#110529' },\n { name: 'White', color: '#FFFFFF' },\n { name: 'None', color: 'transparent' },\n];\n\nexport const DEFAULT_WHITE = '#FFFFFF';\nexport const DEFAULT_BLACK = '#110529';\n\nexport const FIXED_COLORS_MAP = FIXED_COLORS.reduce(\n (res: Record<string, { name: string; color: string }>, item) => {\n res[item.color] = item;\n return res;\n },\n {},\n);\n\n// fixed colors without black, white, transparent - base for categorical palettes\nconst COLORS = FIXED_COLORS.slice(0, -3).map((el) => el.color);\n\nconst CATEGORICAL_LIGHT = COLORS.filter((_el, idx) => idx % 3 === 0);\nconst CATEGORICAL_BRIGHT = COLORS.filter((_el, idx) => idx % 3 === 1);\nconst CATEGORICAL_DARK = COLORS.filter((_el, idx) => idx % 3 === 2);\nconst CATEGORICAL_PAIRED = COLORS.filter((_el, idx) => idx % 3 !== 2);\nconst CATEGORICAL_TRIADIC = COLORS;\n\nconst VIRIDIS = ['#FFF680', '#53D788', '#36739D', '#4A005C'];\nconst MAGMA = ['#FFF680', '#F77E5B', '#902B83', '#2B125C'];\nconst DENSITY = ['#DFFADC', '#74CFD1', '#635AC1', '#611347'];\nconst SALINITY = ['#FAFAB4', '#8DDA7F', '#337E90', '#1C0F5C'];\nconst SUNSET = ['#FFEA80', '#F07A76', '#7535A4', '#003752'];\nconst PERCEPTUAL_RAINBOW = ['#FFF780', '#6CEA90', '#6C90F0', '#942AAE'];\n\nconst SPECTRUM = ['#43317B', '#7ACFAC', '#F5F5B7', '#F07B75', '#5C1243'];\nconst TEAL_RED = ['#122B5C', '#41B5A8', '#F0F0F0', '#F07C80', '#5C1243'];\nconst BLUE_RED = ['#0E0E8F', '#7E93FB', '#F0F0F0', '#ED7883', '#5C1243'];\nconst LIME_ROSE = ['#2E5C00', '#9ED26A', '#F0F0F0', '#EB8BDB', '#701260'];\nconst VIRIDIS_MAGMA = [\n '#4A005C',\n '#36749D',\n '#56D688',\n '#FFF680',\n '#F77E5E',\n '#902B82',\n '#2B125C',\n];\n\nexport const CATEGORICAL_LIST: CategoricalPalette[] = [\n 'light',\n 'bright',\n 'dark',\n 'paired',\n 'triadic',\n];\nexport const SEQUENTIAL_LIST: SequentialPalette[] = [\n 'viridis',\n 'magma',\n 'density',\n 'salinity',\n 'sunset',\n 'perceptual_rainbow',\n];\nexport const DIVERGING_LIST: DivergingPalette[] = [\n 'spectrum',\n 'teal_red',\n 'blue_red',\n 'lime_rose',\n 'viridis_magma',\n];\n\nexport function isCategorical(value: Palette): value is CategoricalPalette {\n return CATEGORICAL_LIST.includes(value as CategoricalPalette);\n}\n\nexport function isSequential(value: Palette): value is SequentialPalette {\n return SEQUENTIAL_LIST.includes(value as SequentialPalette);\n}\n\nexport function isDiverging(value: Palette): value is DivergingPalette {\n return DIVERGING_LIST.includes(value as DivergingPalette);\n}\n\nexport const CATEGORICAL_MAP: Record<CategoricalPalette, PaletteInfo> = {\n light: { title: 'Light', colors: CATEGORICAL_LIGHT },\n bright: { title: 'Bright', colors: CATEGORICAL_BRIGHT },\n dark: { title: 'Dark', colors: CATEGORICAL_DARK },\n paired: { title: 'Paired', colors: CATEGORICAL_PAIRED },\n triadic: { title: 'Triadic', colors: CATEGORICAL_TRIADIC },\n};\nexport const SEQUENTIAL_MAP: Record<SequentialPalette, PaletteInfo> = {\n viridis: { title: 'Viridis', colors: VIRIDIS },\n magma: { title: 'Magma', colors: MAGMA },\n density: { title: 'Density', colors: DENSITY },\n salinity: { title: 'Salinity', colors: SALINITY },\n sunset: { title: 'Sunset', colors: SUNSET },\n perceptual_rainbow: { title: 'Rainbow', colors: PERCEPTUAL_RAINBOW },\n};\n\nexport const DIVERGING_MAP: Record<DivergingPalette, PaletteInfo> = {\n spectrum: { title: 'Spectrum', colors: SPECTRUM },\n teal_red: { title: 'Teal-Red', colors: TEAL_RED },\n blue_red: { title: 'Blue-Red', colors: BLUE_RED },\n lime_rose: { title: 'Lime-Rose', colors: LIME_ROSE },\n viridis_magma: { title: 'Vir-Mag', colors: VIRIDIS_MAGMA },\n};\n\nexport const PALETTE_MAP: Record<Palette, PaletteInfo> = {\n ...CATEGORICAL_MAP,\n ...SEQUENTIAL_MAP,\n ...DIVERGING_MAP,\n};\n\nexport const DEFAULT_CATEGORICAL_PALETTE: CategoricalPalette = 'light';\nexport const DEFAULT_CONTINUOUS_PALETTE: ContinuousPalette = 'salinity';\nexport const FIXES_DOT_SHAPES: DotShape[] = [\n '0', '5', '1', '2', '6',\n '7', '9', '3', '4', '8',\n '12', '10', '13', '14', '11',\n '22', '23', '21', '24', '25',\n];\n\nexport const UNKNOWN_COLOR = '#F0F0F0';\n\nexport const DEFAULT_DOT_SHAPE = '21'; // filled circle\n\nexport const FIXED_LINE_TYPES: LineType[] = ['solid', 'dashed', 'dotted', 'dotdash', 'longdash', 'twodash'];\n\nexport const DEFAULT_LINE_TYPE: LineType = 'solid';\nexport const LINE_TYPES_MAP: Record<LineType, LineTypeInfo> = {\n solid: { title: 'Solid' },\n dashed: { title: 'Dashed' },\n dotted: { title: 'Dotted' },\n dotdash: { title: 'Dotdash' },\n longdash: { title: 'Longdash' },\n twodash: { title: 'Twodash' },\n};\n\nexport const NUCLEOTIDE_COLOR_MAPPING = {\n A: '#cc0100',\n C: '#0000cc',\n G: '#ffb300',\n T: '#027f00',\n U: '#027f00',\n};\n\nexport const AMINOACID_COLOR_MAPPING = {\n A: '#7fa0f0',\n R: '#ef1405',\n N: '#01ff00',\n D: '#c048bf',\n C: '#ef8080',\n Q: '#01ff00',\n E: '#c048bf',\n G: '#f09047',\n H: '#14a4a4',\n I: '#7fa0f0',\n L: '#7fa0f0',\n K: '#ef1405',\n M: '#7fa0f0',\n F: '#7fa0f0',\n P: '#ffff00',\n S: '#01ff00',\n T: '#01ff00',\n W: '#7fa0f0',\n Y: '#14a4a4',\n V: '#7fa0f0',\n B: '#eeeeee',\n X: '#eeeeee',\n Z: '#eeeeee',\n};\n"],"names":["FIXED_COLORS","DEFAULT_WHITE","DEFAULT_BLACK","res","item","COLORS","el","CATEGORICAL_LIGHT","_el","idx","CATEGORICAL_BRIGHT","CATEGORICAL_DARK","CATEGORICAL_PAIRED","CATEGORICAL_TRIADIC","VIRIDIS","MAGMA","DENSITY","SALINITY","SUNSET","PERCEPTUAL_RAINBOW","SPECTRUM","TEAL_RED","BLUE_RED","LIME_ROSE","VIRIDIS_MAGMA","CATEGORICAL_LIST","SEQUENTIAL_LIST","DIVERGING_LIST","isCategorical","value","CATEGORICAL_MAP","SEQUENTIAL_MAP","DIVERGING_MAP","PALETTE_MAP","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","FIXES_DOT_SHAPES","UNKNOWN_COLOR","DEFAULT_DOT_SHAPE","FIXED_LINE_TYPES","DEFAULT_LINE_TYPE","LINE_TYPES_MAP","NUCLEOTIDE_COLOR_MAPPING","AMINOACID_COLOR_MAPPING"],"mappings":"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"}
@@ -55,25 +55,25 @@ export declare function createCategoricalMappingFromPalette(palette: Palette, va
55
55
  export declare function updateDataBindAes(optionsState: InputState, dataBindAes: Record<string, AestheticMapping>, uniqueValuesMap: UniqueValuesBySourceMap): void;
56
56
  export declare function updateCategoricalMapping(newUniqueValues: string[], currentMapping: AestheticMappingCategorical): AestheticMappingCategorical;
57
57
  export declare function createContinuousMappingFromPalette(palette: ContinuousPalette): AestheticMappingContinuous;
58
- export declare function createDefaultMapping(values: string[]): AestheticMappingCategorical;
58
+ export declare function createDefaultMapping(values: string[], palette: Palette): AestheticMappingCategorical;
59
59
  export declare function createDefaultContinuousMapping(columnId: string): ContinuousDataMappingSize;
60
- export declare function getChartSettingsInheritedAes(uniqueValuesData: UniqueValuesBySourceMap, savedMapping: AestheticMapping | undefined, sourceId: string | null, usedAesInMapping: Record<AesType, boolean>): {
60
+ export declare function getChartSettingsInheritedAes(uniqueValuesData: UniqueValuesBySourceMap, savedMapping: AestheticMapping | undefined, sourceId: string | null, usedAesInMapping: Record<AesType, boolean>, palette: Palette): {
61
61
  inheritedAes: {};
62
62
  order?: undefined;
63
63
  } | {
64
64
  order: string[];
65
65
  inheritedAes: Record<string, any>;
66
66
  };
67
- export declare function getScatterplotAes(selectedSource: string, uniqueValuesData: UniqueValuesBySourceMap, dataBindAes: AestheticMappingState): {
67
+ export declare function getScatterplotAes(selectedSource: string, uniqueValuesData: UniqueValuesBySourceMap, dataBindAes: AestheticMappingState, palette: Palette): {
68
68
  order: string[];
69
69
  inheritedAes: Record<string, any>;
70
70
  };
71
- export declare function getHistogramAes(selectedSource: string, uniqueValuesData: UniqueValuesBySourceMap, dataBindAes: AestheticMappingState): {
71
+ export declare function getHistogramAes(selectedSource: string, uniqueValuesData: UniqueValuesBySourceMap, dataBindAes: AestheticMappingState, palette: Palette): {
72
72
  order?: undefined;
73
73
  inheritedAes?: undefined;
74
74
  } | {
75
75
  order: string[];
76
76
  inheritedAes: Record<string, any>;
77
77
  };
78
- export declare function getDendroAes(selectedSource: string, uniqueValuesData: UniqueValuesBySourceMap, dataBindAes: AestheticMappingState, field: keyof AestheticValues): Record<string, AestheticValues[keyof AestheticValues]>;
78
+ export declare function getDendroAes(selectedSource: string, uniqueValuesData: UniqueValuesBySourceMap, dataBindAes: AestheticMappingState, field: keyof AestheticValues, palette: Palette): Record<string, AestheticValues[keyof AestheticValues]>;
79
79
  export {};
@@ -1,42 +1,42 @@
1
1
  import { scaleLinear as F } from "d3-scale";
2
- import { PALETTE_MAP as _, FIXES_DOT_SHAPES as u, FIXED_LINE_TYPES as g, isCategorical as P, DEFAULT_BLACK as E } from "./constantsAesthetic.js";
3
- function y(t) {
2
+ import { PALETTE_MAP as m, FIXES_DOT_SHAPES as u, FIXED_LINE_TYPES as g, isCategorical as y, DEFAULT_BLACK as E } from "./constantsAesthetic.js";
3
+ function I(t) {
4
4
  return t !== null && typeof t == "object" && "palette" in t && "type" in t && t.type === "continuous";
5
5
  }
6
6
  function f(t) {
7
7
  return t !== null && typeof t == "object" && "palette" in t && "type" in t && t.type === "categorical";
8
8
  }
9
- function W(t) {
10
- return f(t) || y(t);
9
+ function G(t) {
10
+ return f(t) || I(t);
11
11
  }
12
- const M = "#110529", I = "solid", m = 1, T = "21", D = 3, b = 2, j = { min: 3, max: 10 }, C = {
12
+ const W = "#110529", P = "solid", _ = 1, T = "21", C = 3, M = 2, b = { min: 3, max: 10 }, D = {
13
13
  color: "#ccc",
14
- lineShape: I,
14
+ lineShape: P,
15
15
  dotShape: T
16
- }, N = "light";
17
- function U(t) {
18
- const c = 1 / (t.length - 1);
19
- return F().domain(t.map((a, e) => e * c)).range(t);
16
+ };
17
+ function N(t) {
18
+ const e = 1 / (t.length - 1);
19
+ return F().domain(t.map((s, i) => i * e)).range(t);
20
20
  }
21
- function O(t, c) {
22
- const a = _[t].colors, e = c.length > 1 ? 1 / (c.length - 1) : 0, s = U(a), r = P(t), l = c.reduce((o, n, i) => (o[n] = {
23
- colorIdx: r ? i : i * e,
21
+ function O(t, e) {
22
+ const s = m[t].colors, i = e.length > 1 ? 1 / (e.length - 1) : 0, l = N(s), p = y(t), r = e.reduce((c, n, o) => (c[n] = {
23
+ colorIdx: p ? o : o * i,
24
24
  aes: {
25
- color: r ? a[i % a.length] : s(i * e),
26
- lineShape: g[i % g.length],
27
- dotShape: u[i % u.length]
25
+ color: p ? s[o % s.length] : l(o * i),
26
+ lineShape: g[o % g.length],
27
+ dotShape: u[o % u.length]
28
28
  }
29
- }, o), {});
29
+ }, c), {});
30
30
  return {
31
31
  type: "categorical",
32
32
  palette: t,
33
- naAes: C,
34
- order: c,
33
+ naAes: D,
34
+ order: e,
35
35
  hidden: {},
36
- mapping: l
36
+ mapping: r
37
37
  };
38
38
  }
39
- const V = [
39
+ const U = [
40
40
  "primaryGrouping",
41
41
  "secondaryGrouping",
42
42
  // discrete charts
@@ -49,144 +49,144 @@ const V = [
49
49
  "heatmapAnnotation"
50
50
  // dendro
51
51
  ];
52
- function w(t, c, a) {
53
- V.forEach((e) => {
54
- var r;
55
- const s = (r = t.components[e]) == null ? void 0 : r.selectorStates;
56
- s == null || s.forEach(({ selectedSource: l }) => {
57
- var i;
58
- const o = c[l], n = (i = a[l]) == null ? void 0 : i.list;
59
- o && n && f(o) && (c[l] = H(n, o));
52
+ function j(t, e, s) {
53
+ U.forEach((i) => {
54
+ var p;
55
+ const l = (p = t.components[i]) == null ? void 0 : p.selectorStates;
56
+ l == null || l.forEach(({ selectedSource: r }) => {
57
+ var o;
58
+ const c = e[r], n = (o = s[r]) == null ? void 0 : o.list;
59
+ c && n && f(c) && (e[r] = V(n, c));
60
60
  });
61
61
  });
62
62
  }
63
- function H(t, c) {
64
- const { palette: a, order: e, mapping: s } = c, r = new Set(t), l = new Set(e), o = t.filter((p) => !l.has(p)), n = e.filter((p) => !r.has(p));
65
- if (!o.length && !n.length)
66
- return c;
67
- const i = [...t], h = { ...s }, S = _[a].colors;
68
- return o.forEach((p, L) => {
69
- const d = L + (e.length ? s[e[e.length - 1]].colorIdx + 1 : 0);
70
- h[p] = {
71
- colorIdx: d,
63
+ function V(t, e) {
64
+ const { palette: s, order: i, mapping: l } = e, p = new Set(t), r = new Set(i), c = t.filter((d) => !r.has(d)), n = i.filter((d) => !p.has(d));
65
+ if (!c.length && !n.length)
66
+ return e;
67
+ const o = [...t], a = { ...l }, S = m[s].colors;
68
+ return c.forEach((d, L) => {
69
+ const h = L + (i.length ? l[i[i.length - 1]].colorIdx + 1 : 0);
70
+ a[d] = {
71
+ colorIdx: h,
72
72
  aes: {
73
- color: S[d % S.length],
74
- lineShape: g[d % g.length],
75
- dotShape: u[d % u.length]
73
+ color: S[h % S.length],
74
+ lineShape: g[h % g.length],
75
+ dotShape: u[h % u.length]
76
76
  }
77
77
  };
78
- }), n.forEach((p) => {
79
- h[p] && delete h[p];
80
- }), { ...c, order: i, mapping: h };
78
+ }), n.forEach((d) => {
79
+ a[d] && delete a[d];
80
+ }), { ...e, order: o, mapping: a };
81
81
  }
82
- function z(t) {
82
+ function w(t) {
83
83
  return {
84
84
  type: "continuous",
85
85
  palette: t,
86
- naAes: C,
86
+ naAes: D,
87
87
  range: null,
88
88
  midPoint: null,
89
89
  log: !1
90
90
  };
91
91
  }
92
- function A(t) {
93
- return O(N, t);
92
+ function A(t, e) {
93
+ return O(e, t);
94
94
  }
95
- function R(t, c, a, e) {
96
- var l;
97
- if ((c == null ? void 0 : c.type) === "continuous")
95
+ function z(t, e, s, i, l) {
96
+ var c;
97
+ if ((e == null ? void 0 : e.type) === "continuous")
98
98
  return { inheritedAes: {} };
99
- const s = a ? ((l = t[a]) == null ? void 0 : l.list) ?? [] : [], r = c ?? A(s);
99
+ const p = s ? ((c = t[s]) == null ? void 0 : c.list) ?? [] : [], r = e ?? A(p, l);
100
100
  return r.order.length ? {
101
- order: r.order.filter((o) => {
102
- var n;
103
- return !((n = r.hidden) != null && n[o]);
101
+ order: r.order.filter((n) => {
102
+ var o;
103
+ return !((o = r.hidden) != null && o[n]);
104
104
  }),
105
105
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
- inheritedAes: r.order.reduce((o, n) => {
107
- const i = r.mapping[n].aes;
108
- return o[n] = {}, e.fill && (o[n].fillColor = i.color, o[n].dotFill = i.color), e.stroke && (o[n].lineColor = i.color), e.dotShape && (o[n].dotShape = i.dotShape), e.lineType && (o[n].lineShape = i.lineShape), o;
106
+ inheritedAes: r.order.reduce((n, o) => {
107
+ const a = r.mapping[o].aes;
108
+ return n[o] = {}, i.fill && (n[o].fillColor = a.color, n[o].dotFill = a.color), i.stroke && (n[o].lineColor = a.color), i.dotShape && (n[o].dotShape = a.dotShape), i.lineType && (n[o].lineShape = a.lineShape), n;
109
109
  }, {})
110
110
  } : { inheritedAes: {} };
111
111
  }
112
- function X(t, c, a) {
113
- var l;
114
- const e = a[t];
115
- if (e && !f(e))
112
+ function R(t, e, s, i) {
113
+ var c;
114
+ const l = s[t];
115
+ if (l && !f(l))
116
116
  return { order: [], inheritedAes: {} };
117
- const s = ((l = c[t]) == null ? void 0 : l.list) ?? [], r = e ?? A(s);
117
+ const p = ((c = e[t]) == null ? void 0 : c.list) ?? [], r = l ?? A(p, i);
118
118
  return {
119
119
  order: r.order,
120
120
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
121
- inheritedAes: r.order.reduce((o, n) => {
122
- const i = r.mapping[n].aes;
123
- return o[n] = {
124
- fillColor: i.color,
125
- lineColor: i.color,
126
- dotFill: i.color,
127
- dotShape: i.dotShape,
128
- dotSize: D,
129
- lineWidth: m
130
- }, o;
121
+ inheritedAes: r.order.reduce((n, o) => {
122
+ const a = r.mapping[o].aes;
123
+ return n[o] = {
124
+ fillColor: a.color,
125
+ lineColor: a.color,
126
+ dotFill: a.color,
127
+ dotShape: a.dotShape,
128
+ dotSize: C,
129
+ lineWidth: _
130
+ }, n;
131
131
  }, {})
132
132
  };
133
133
  }
134
- function Z(t, c, a) {
135
- var l;
136
- const e = a[t];
137
- if (e && !f(e))
134
+ function X(t, e, s, i) {
135
+ var c;
136
+ const l = s[t];
137
+ if (l && !f(l))
138
138
  return {};
139
- const s = ((l = c[t]) == null ? void 0 : l.list) ?? [], r = e ?? A(s);
139
+ const p = ((c = e[t]) == null ? void 0 : c.list) ?? [], r = l ?? A(p, i);
140
140
  return r.order.length ? {
141
- order: r.order.filter((o) => {
142
- var n;
143
- return !((n = r.hidden) != null && n[o]);
141
+ order: r.order.filter((n) => {
142
+ var o;
143
+ return !((o = r.hidden) != null && o[n]);
144
144
  }),
145
145
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
146
- inheritedAes: r.order.reduce((o, n) => {
147
- const i = r.mapping[n].aes;
148
- return o[n] = {
149
- fillColor: i.color,
146
+ inheritedAes: r.order.reduce((n, o) => {
147
+ const a = r.mapping[o].aes;
148
+ return n[o] = {
149
+ fillColor: a.color,
150
150
  lineColor: E,
151
151
  dotFill: E,
152
152
  dotShape: T,
153
- dotSize: D,
154
- lineWidth: m
155
- }, o;
153
+ dotSize: C,
154
+ lineWidth: _
155
+ }, n;
156
156
  }, {})
157
157
  } : { order: [], inheritedAes: {} };
158
158
  }
159
- function k(t, c, a, e) {
160
- var l;
161
- const s = ((l = c[t]) == null ? void 0 : l.list) ?? [], r = a[t] ?? A(s);
159
+ function Z(t, e, s, i, l) {
160
+ var c;
161
+ const p = ((c = e[t]) == null ? void 0 : c.list) ?? [], r = s[t] ?? A(p, l);
162
162
  return r.order.reduce(
163
- (o, n) => {
164
- const i = r.mapping[n].aes;
165
- return o[n] = i[e], o;
163
+ (n, o) => {
164
+ const a = r.mapping[o].aes;
165
+ return n[o] = a[i], n;
166
166
  },
167
167
  {}
168
168
  );
169
169
  }
170
170
  export {
171
- j as DEFAULT_DOT_RANGE,
171
+ b as DEFAULT_DOT_RANGE,
172
172
  T as DEFAULT_DOT_SHAPE,
173
- D as DEFAULT_DOT_SIZE,
174
- b as DEFAULT_DOT_SIZE_CANVAS,
175
- M as DEFAULT_LINE_COLOR,
176
- I as DEFAULT_LINE_SHAPE,
177
- m as DEFAULT_LINE_WIDTH,
178
- C as DEFAULT_NA_AES,
173
+ C as DEFAULT_DOT_SIZE,
174
+ M as DEFAULT_DOT_SIZE_CANVAS,
175
+ W as DEFAULT_LINE_COLOR,
176
+ P as DEFAULT_LINE_SHAPE,
177
+ _ as DEFAULT_LINE_WIDTH,
178
+ D as DEFAULT_NA_AES,
179
179
  O as createCategoricalMappingFromPalette,
180
- z as createContinuousMappingFromPalette,
180
+ w as createContinuousMappingFromPalette,
181
181
  A as createDefaultMapping,
182
- R as getChartSettingsInheritedAes,
183
- k as getDendroAes,
184
- Z as getHistogramAes,
185
- X as getScatterplotAes,
186
- W as isAestheticMapping,
182
+ z as getChartSettingsInheritedAes,
183
+ Z as getDendroAes,
184
+ X as getHistogramAes,
185
+ R as getScatterplotAes,
186
+ G as isAestheticMapping,
187
187
  f as isAestheticMappingCategorical,
188
- y as isAestheticMappingContinuous,
189
- H as updateCategoricalMapping,
190
- w as updateDataBindAes
188
+ I as isAestheticMappingContinuous,
189
+ V as updateCategoricalMapping,
190
+ j as updateDataBindAes
191
191
  };
192
192
  //# sourceMappingURL=dataBindAes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataBindAes.js","sources":["../src/dataBindAes.ts"],"sourcesContent":["import type { InputState } from '@milaboratories/pf-plots';\nimport { scaleLinear } from 'd3-scale';\nimport type {\n ContinuousPalette,\n DotShape,\n LineType,\n Palette,\n} from './components/AesSettings/types';\nimport {\n DEFAULT_BLACK,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES,\n isCategorical,\n PALETTE_MAP,\n} from './constantsAesthetic';\nimport type { AesType, ContinuousDataMappingSize, NumberRange } from './constantsCommon';\nimport type { UniqueValuesBySourceMap } from './types';\n\nexport type AestheticMappingState = Record<string, AestheticMapping>;\nexport type AestheticMapping =\n | AestheticMappingContinuous\n | AestheticMappingCategorical;\n\ninterface MappingRange {\n maxValue: number | null;\n minValue: number | null;\n}\n\n/** Mapping for continuous axes (numerical axes) */\nexport interface AestheticMappingContinuous {\n type: 'continuous';\n palette: ContinuousPalette;\n range: MappingRange | null;\n midPoint: number | null;\n log: boolean;\n naAes: AestheticValues;\n}\n\nexport function isAestheticMappingContinuous(v: unknown | AestheticMappingContinuous): v is AestheticMappingContinuous {\n return v !== null && typeof v === 'object' && 'palette' in v && 'type' in v && v.type === 'continuous';\n}\n\n/** Mapping for categorical axes (string axes) */\nexport interface AestheticMappingCategorical {\n type: 'categorical';\n palette: Palette;\n naAes: AestheticValues;\n order: string[];\n hidden?: Record<string, boolean>;\n mapping: AestheticMappingRecord;\n}\n\nexport function isAestheticMappingCategorical(v: unknown | AestheticMappingCategorical): v is AestheticMappingCategorical {\n return v !== null && typeof v === 'object' && 'palette' in v && 'type' in v && v.type === 'categorical';\n}\n\nexport function isAestheticMapping(v: unknown | AestheticMappingContinuous | AestheticMappingCategorical): v is AestheticMapping {\n return isAestheticMappingCategorical(v) || isAestheticMappingContinuous(v);\n}\n\n// key - column value, colorIdx - idx of color (if palette is categorical) of percent value of colors gradient (if palette is continuous)\ntype AestheticMappingRecord = Record<\n string | number,\n {\n aes: Partial<AestheticValues>;\n colorIdx: number;\n }\n>;\n\ninterface AestheticValues {\n /** Number to retrieve the color from pallet, string to represent specific color as hex */\n color: string;\n lineShape: LineType;\n dotShape: DotShape;\n}\n\nexport const DEFAULT_LINE_COLOR = '#110529';\nexport const DEFAULT_LINE_SHAPE: LineType = 'solid';\nexport const DEFAULT_LINE_WIDTH = 1;\nexport const DEFAULT_DOT_SHAPE: DotShape = '21'; // colored circle, shape number as in R\nexport const DEFAULT_DOT_SIZE = 3; // radius;\nexport const DEFAULT_DOT_SIZE_CANVAS = 2;\nexport const DEFAULT_DOT_RANGE: NumberRange = { min: 3, max: 10 }; // radius;\n\nexport const DEFAULT_NA_AES = {\n color: '#ccc',\n lineShape: DEFAULT_LINE_SHAPE as LineType,\n dotShape: DEFAULT_DOT_SHAPE as DotShape,\n};\nconst DEFAULT_PALETTE: Palette = 'light';\n\nfunction getColorScale(colors: string[]) {\n const colorStep = 1 / (colors.length - 1);\n return scaleLinear<string, string>()\n .domain(colors.map((_c, idx) => idx * colorStep))\n .range(colors);\n}\n\nexport function createCategoricalMappingFromPalette(\n palette: Palette,\n values: string[],\n): AestheticMappingCategorical {\n const colors = PALETTE_MAP[palette].colors;\n const step = values.length > 1 ? 1 / (values.length - 1) : 0;\n const colorScale = getColorScale(colors);\n\n const categorical = isCategorical(palette);\n const mapping = values.reduce((res: AestheticMappingRecord, value, idx) => {\n res[value] = {\n colorIdx: categorical ? idx : idx * step,\n aes: {\n color: categorical\n ? colors[idx % colors.length]\n : colorScale(idx * step),\n lineShape: FIXED_LINE_TYPES[idx % FIXED_LINE_TYPES.length],\n dotShape: FIXES_DOT_SHAPES[idx % FIXES_DOT_SHAPES.length],\n },\n };\n return res;\n }, {});\n return {\n type: 'categorical',\n palette: palette,\n naAes: DEFAULT_NA_AES,\n order: values,\n hidden: {},\n mapping,\n };\n}\n\nconst INPUTS_WITH_AES_MAPPINGS = [\n 'primaryGrouping', 'secondaryGrouping', // discrete charts\n 'grouping', 'shape', // scatterplot\n 'nodeColor', 'nodeShape', 'lineColor', 'heatmapAnnotation', // dendro\n];\nexport function updateDataBindAes(\n optionsState: InputState,\n dataBindAes: Record<string, AestheticMapping>,\n uniqueValuesMap: UniqueValuesBySourceMap,\n) {\n INPUTS_WITH_AES_MAPPINGS.forEach((inputName) => {\n const selectorStates = optionsState.components[inputName as keyof InputState]?.selectorStates;\n selectorStates?.forEach(({ selectedSource }) => {\n const savedMapping = dataBindAes[selectedSource];\n const uniqueValues = uniqueValuesMap[selectedSource]?.list;\n if (savedMapping && uniqueValues && isAestheticMappingCategorical(savedMapping)) {\n dataBindAes[selectedSource] = updateCategoricalMapping(uniqueValues, savedMapping);\n }\n });\n });\n}\n\nexport function updateCategoricalMapping(\n newUniqueValues: string[],\n currentMapping: AestheticMappingCategorical,\n): AestheticMappingCategorical {\n const { palette, order, mapping } = currentMapping;\n const uniqueValuesSet = new Set(newUniqueValues);\n const orderValuesSet = new Set(order);\n const addedValues: string[] = newUniqueValues.filter((v) => !orderValuesSet.has(v));\n const removedValues: string[] = order.filter((v) => !uniqueValuesSet.has(v as string));\n if (!addedValues.length && !removedValues.length) {\n return currentMapping;\n }\n const newOrder = [...newUniqueValues];\n const newMapping = { ...mapping };\n const colors = PALETTE_MAP[palette].colors;\n addedValues.forEach((v, idx) => {\n const index = idx + (order.length ? mapping[order[order.length - 1]].colorIdx + 1 : 0);\n newMapping[v] = {\n colorIdx: index,\n aes: {\n color: colors[index % colors.length],\n lineShape: FIXED_LINE_TYPES[index % FIXED_LINE_TYPES.length],\n dotShape: FIXES_DOT_SHAPES[index % FIXES_DOT_SHAPES.length],\n },\n };\n });\n removedValues.forEach((v) => {\n if (newMapping[v]) {\n delete newMapping[v];\n }\n });\n\n return { ...currentMapping, order: newOrder, mapping: newMapping } as AestheticMappingCategorical;\n}\nexport function createContinuousMappingFromPalette(palette: ContinuousPalette): AestheticMappingContinuous {\n return {\n type: 'continuous',\n palette: palette,\n naAes: DEFAULT_NA_AES,\n range: null,\n midPoint: null,\n log: false,\n };\n}\n\nexport function createDefaultMapping(\n values: string[],\n): AestheticMappingCategorical {\n return createCategoricalMappingFromPalette(DEFAULT_PALETTE, values);\n}\n\nexport function createDefaultContinuousMapping(columnId: string): ContinuousDataMappingSize {\n return {\n column: columnId,\n range: DEFAULT_DOT_RANGE,\n };\n}\n\nexport function getChartSettingsInheritedAes(\n uniqueValuesData: UniqueValuesBySourceMap,\n savedMapping: AestheticMapping | undefined,\n sourceId: string | null,\n usedAesInMapping: Record<AesType, boolean>,\n) {\n if (savedMapping?.type === 'continuous') {\n return { inheritedAes: {} };\n }\n const uniqueValues = sourceId ? uniqueValuesData[sourceId]?.list ?? [] : [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues);\n if (!mapping.order.length) {\n return { inheritedAes: {} };\n }\n return {\n order: mapping.order.filter((v) => !mapping.hidden?.[v]),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => { // TODO: remove any\n const aes = mapping.mapping[value].aes;\n res[value] = {};\n if (usedAesInMapping.fill) {\n res[value].fillColor = aes.color;\n res[value].dotFill = aes.color;\n }\n if (usedAesInMapping.stroke) {\n res[value].lineColor = aes.color;\n }\n if (usedAesInMapping.dotShape) {\n res[value].dotShape = aes.dotShape;\n }\n if (usedAesInMapping.lineType) {\n res[value].lineShape = aes.lineShape;\n }\n return res;\n }, {}),\n };\n}\n\nexport function getScatterplotAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n) {\n const savedMapping = dataBindAes[selectedSource];\n if (savedMapping && !isAestheticMappingCategorical(savedMapping)) {\n return { order: [], inheritedAes: {} };\n }\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues);\n return {\n order: mapping.order,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => { // TODO: remove any\n const aes = mapping.mapping[value].aes;\n res[value] = {\n fillColor: aes.color,\n lineColor: aes.color,\n dotFill: aes.color,\n dotShape: aes.dotShape,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {}),\n };\n}\n\nexport function getHistogramAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n) {\n const savedMapping = dataBindAes[selectedSource];\n if (savedMapping && !isAestheticMappingCategorical(savedMapping)) {\n return {};\n }\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues);\n if (!mapping.order.length) {\n return { order: [], inheritedAes: {} };\n }\n return {\n order: mapping.order.filter((v) => !mapping.hidden?.[v]),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => { // TODO: remove any\n const aes = mapping.mapping[value].aes;\n res[value] = {\n fillColor: aes.color,\n lineColor: DEFAULT_BLACK,\n dotFill: DEFAULT_BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {}),\n };\n}\n\nexport function getDendroAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n field: keyof AestheticValues,\n): Record<string, AestheticValues[keyof AestheticValues]> {\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping\n = dataBindAes[selectedSource] as AestheticMappingCategorical\n ?? createDefaultMapping(uniqueValues);\n return mapping.order.reduce(\n (res: Record<string, AestheticValues[keyof AestheticValues]>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = aes[field] as string;\n return res;\n },\n {},\n );\n}\n"],"names":["isAestheticMappingContinuous","v","isAestheticMappingCategorical","isAestheticMapping","DEFAULT_LINE_COLOR","DEFAULT_LINE_SHAPE","DEFAULT_LINE_WIDTH","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_DOT_SIZE_CANVAS","DEFAULT_DOT_RANGE","DEFAULT_NA_AES","DEFAULT_PALETTE","getColorScale","colors","colorStep","scaleLinear","_c","idx","createCategoricalMappingFromPalette","palette","values","PALETTE_MAP","step","colorScale","categorical","isCategorical","mapping","res","value","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","INPUTS_WITH_AES_MAPPINGS","updateDataBindAes","optionsState","dataBindAes","uniqueValuesMap","inputName","selectorStates","_a","selectedSource","savedMapping","uniqueValues","updateCategoricalMapping","newUniqueValues","currentMapping","order","uniqueValuesSet","orderValuesSet","addedValues","removedValues","newOrder","newMapping","index","createContinuousMappingFromPalette","createDefaultMapping","getChartSettingsInheritedAes","uniqueValuesData","sourceId","usedAesInMapping","aes","getScatterplotAes","getHistogramAes","DEFAULT_BLACK","getDendroAes","field"],"mappings":"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"}
1
+ {"version":3,"file":"dataBindAes.js","sources":["../src/dataBindAes.ts"],"sourcesContent":["import type { InputState } from '@milaboratories/pf-plots';\nimport { scaleLinear } from 'd3-scale';\nimport type {\n ContinuousPalette,\n DotShape,\n LineType,\n Palette,\n} from './components/AesSettings/types';\nimport {\n DEFAULT_BLACK,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES,\n isCategorical,\n PALETTE_MAP,\n} from './constantsAesthetic';\nimport type { AesType, ContinuousDataMappingSize, NumberRange } from './constantsCommon';\nimport type { UniqueValuesBySourceMap } from './types';\n\nexport type AestheticMappingState = Record<string, AestheticMapping>;\nexport type AestheticMapping =\n | AestheticMappingContinuous\n | AestheticMappingCategorical;\n\ninterface MappingRange {\n maxValue: number | null;\n minValue: number | null;\n}\n\n/** Mapping for continuous axes (numerical axes) */\nexport interface AestheticMappingContinuous {\n type: 'continuous';\n palette: ContinuousPalette;\n range: MappingRange | null;\n midPoint: number | null;\n log: boolean;\n naAes: AestheticValues;\n}\n\nexport function isAestheticMappingContinuous(v: unknown | AestheticMappingContinuous): v is AestheticMappingContinuous {\n return v !== null && typeof v === 'object' && 'palette' in v && 'type' in v && v.type === 'continuous';\n}\n\n/** Mapping for categorical axes (string axes) */\nexport interface AestheticMappingCategorical {\n type: 'categorical';\n palette: Palette;\n naAes: AestheticValues;\n order: string[];\n hidden?: Record<string, boolean>;\n mapping: AestheticMappingRecord;\n}\n\nexport function isAestheticMappingCategorical(v: unknown | AestheticMappingCategorical): v is AestheticMappingCategorical {\n return v !== null && typeof v === 'object' && 'palette' in v && 'type' in v && v.type === 'categorical';\n}\n\nexport function isAestheticMapping(v: unknown | AestheticMappingContinuous | AestheticMappingCategorical): v is AestheticMapping {\n return isAestheticMappingCategorical(v) || isAestheticMappingContinuous(v);\n}\n\n// key - column value, colorIdx - idx of color (if palette is categorical) of percent value of colors gradient (if palette is continuous)\ntype AestheticMappingRecord = Record<\n string | number,\n {\n aes: Partial<AestheticValues>;\n colorIdx: number;\n }\n>;\n\ninterface AestheticValues {\n /** Number to retrieve the color from pallet, string to represent specific color as hex */\n color: string;\n lineShape: LineType;\n dotShape: DotShape;\n}\n\nexport const DEFAULT_LINE_COLOR = '#110529';\nexport const DEFAULT_LINE_SHAPE: LineType = 'solid';\nexport const DEFAULT_LINE_WIDTH = 1;\nexport const DEFAULT_DOT_SHAPE: DotShape = '21'; // colored circle, shape number as in R\nexport const DEFAULT_DOT_SIZE = 3; // radius;\nexport const DEFAULT_DOT_SIZE_CANVAS = 2;\nexport const DEFAULT_DOT_RANGE: NumberRange = { min: 3, max: 10 }; // radius;\n\nexport const DEFAULT_NA_AES = {\n color: '#ccc',\n lineShape: DEFAULT_LINE_SHAPE as LineType,\n dotShape: DEFAULT_DOT_SHAPE as DotShape,\n};\n\nfunction getColorScale(colors: string[]) {\n const colorStep = 1 / (colors.length - 1);\n return scaleLinear<string, string>()\n .domain(colors.map((_c, idx) => idx * colorStep))\n .range(colors);\n}\n\nexport function createCategoricalMappingFromPalette(\n palette: Palette,\n values: string[],\n): AestheticMappingCategorical {\n const colors = PALETTE_MAP[palette].colors;\n const step = values.length > 1 ? 1 / (values.length - 1) : 0;\n const colorScale = getColorScale(colors);\n\n const categorical = isCategorical(palette);\n const mapping = values.reduce((res: AestheticMappingRecord, value, idx) => {\n res[value] = {\n colorIdx: categorical ? idx : idx * step,\n aes: {\n color: categorical\n ? colors[idx % colors.length]\n : colorScale(idx * step),\n lineShape: FIXED_LINE_TYPES[idx % FIXED_LINE_TYPES.length],\n dotShape: FIXES_DOT_SHAPES[idx % FIXES_DOT_SHAPES.length],\n },\n };\n return res;\n }, {});\n return {\n type: 'categorical',\n palette: palette,\n naAes: DEFAULT_NA_AES,\n order: values,\n hidden: {},\n mapping,\n };\n}\n\nconst INPUTS_WITH_AES_MAPPINGS = [\n 'primaryGrouping', 'secondaryGrouping', // discrete charts\n 'grouping', 'shape', // scatterplot\n 'nodeColor', 'nodeShape', 'lineColor', 'heatmapAnnotation', // dendro\n];\nexport function updateDataBindAes(\n optionsState: InputState,\n dataBindAes: Record<string, AestheticMapping>,\n uniqueValuesMap: UniqueValuesBySourceMap,\n) {\n INPUTS_WITH_AES_MAPPINGS.forEach((inputName) => {\n const selectorStates = optionsState.components[inputName as keyof InputState]?.selectorStates;\n selectorStates?.forEach(({ selectedSource }) => {\n const savedMapping = dataBindAes[selectedSource];\n const uniqueValues = uniqueValuesMap[selectedSource]?.list;\n if (savedMapping && uniqueValues && isAestheticMappingCategorical(savedMapping)) {\n dataBindAes[selectedSource] = updateCategoricalMapping(uniqueValues, savedMapping);\n }\n });\n });\n}\n\nexport function updateCategoricalMapping(\n newUniqueValues: string[],\n currentMapping: AestheticMappingCategorical,\n): AestheticMappingCategorical {\n const { palette, order, mapping } = currentMapping;\n const uniqueValuesSet = new Set(newUniqueValues);\n const orderValuesSet = new Set(order);\n const addedValues: string[] = newUniqueValues.filter((v) => !orderValuesSet.has(v));\n const removedValues: string[] = order.filter((v) => !uniqueValuesSet.has(v as string));\n if (!addedValues.length && !removedValues.length) {\n return currentMapping;\n }\n const newOrder = [...newUniqueValues];\n const newMapping = { ...mapping };\n const colors = PALETTE_MAP[palette].colors;\n addedValues.forEach((v, idx) => {\n const index = idx + (order.length ? mapping[order[order.length - 1]].colorIdx + 1 : 0);\n newMapping[v] = {\n colorIdx: index,\n aes: {\n color: colors[index % colors.length],\n lineShape: FIXED_LINE_TYPES[index % FIXED_LINE_TYPES.length],\n dotShape: FIXES_DOT_SHAPES[index % FIXES_DOT_SHAPES.length],\n },\n };\n });\n removedValues.forEach((v) => {\n if (newMapping[v]) {\n delete newMapping[v];\n }\n });\n\n return { ...currentMapping, order: newOrder, mapping: newMapping } as AestheticMappingCategorical;\n}\nexport function createContinuousMappingFromPalette(palette: ContinuousPalette): AestheticMappingContinuous {\n return {\n type: 'continuous',\n palette: palette,\n naAes: DEFAULT_NA_AES,\n range: null,\n midPoint: null,\n log: false,\n };\n}\n\nexport function createDefaultMapping(\n values: string[],\n palette: Palette,\n): AestheticMappingCategorical {\n return createCategoricalMappingFromPalette(palette, values);\n}\n\nexport function createDefaultContinuousMapping(columnId: string): ContinuousDataMappingSize {\n return {\n column: columnId,\n range: DEFAULT_DOT_RANGE,\n };\n}\n\nexport function getChartSettingsInheritedAes(\n uniqueValuesData: UniqueValuesBySourceMap,\n savedMapping: AestheticMapping | undefined,\n sourceId: string | null,\n usedAesInMapping: Record<AesType, boolean>,\n palette: Palette,\n) {\n if (savedMapping?.type === 'continuous') {\n return { inheritedAes: {} };\n }\n const uniqueValues = sourceId ? uniqueValuesData[sourceId]?.list ?? [] : [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues, palette);\n if (!mapping.order.length) {\n return { inheritedAes: {} };\n }\n return {\n order: mapping.order.filter((v) => !mapping.hidden?.[v]),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => { // TODO: remove any\n const aes = mapping.mapping[value].aes;\n res[value] = {};\n if (usedAesInMapping.fill) {\n res[value].fillColor = aes.color;\n res[value].dotFill = aes.color;\n }\n if (usedAesInMapping.stroke) {\n res[value].lineColor = aes.color;\n }\n if (usedAesInMapping.dotShape) {\n res[value].dotShape = aes.dotShape;\n }\n if (usedAesInMapping.lineType) {\n res[value].lineShape = aes.lineShape;\n }\n return res;\n }, {}),\n };\n}\n\nexport function getScatterplotAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n palette: Palette,\n) {\n const savedMapping = dataBindAes[selectedSource];\n if (savedMapping && !isAestheticMappingCategorical(savedMapping)) {\n return { order: [], inheritedAes: {} };\n }\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues, palette);\n return {\n order: mapping.order,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => { // TODO: remove any\n const aes = mapping.mapping[value].aes;\n res[value] = {\n fillColor: aes.color,\n lineColor: aes.color,\n dotFill: aes.color,\n dotShape: aes.dotShape,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {}),\n };\n}\n\nexport function getHistogramAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n palette: Palette,\n) {\n const savedMapping = dataBindAes[selectedSource];\n if (savedMapping && !isAestheticMappingCategorical(savedMapping)) {\n return {};\n }\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues, palette);\n if (!mapping.order.length) {\n return { order: [], inheritedAes: {} };\n }\n return {\n order: mapping.order.filter((v) => !mapping.hidden?.[v]),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => { // TODO: remove any\n const aes = mapping.mapping[value].aes;\n res[value] = {\n fillColor: aes.color,\n lineColor: DEFAULT_BLACK,\n dotFill: DEFAULT_BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {}),\n };\n}\n\nexport function getDendroAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n field: keyof AestheticValues,\n palette: Palette,\n): Record<string, AestheticValues[keyof AestheticValues]> {\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping\n = dataBindAes[selectedSource] as AestheticMappingCategorical\n ?? createDefaultMapping(uniqueValues, palette);\n return mapping.order.reduce(\n (res: Record<string, AestheticValues[keyof AestheticValues]>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = aes[field] as string;\n return res;\n },\n {},\n );\n}\n"],"names":["isAestheticMappingContinuous","v","isAestheticMappingCategorical","isAestheticMapping","DEFAULT_LINE_COLOR","DEFAULT_LINE_SHAPE","DEFAULT_LINE_WIDTH","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_DOT_SIZE_CANVAS","DEFAULT_DOT_RANGE","DEFAULT_NA_AES","getColorScale","colors","colorStep","scaleLinear","_c","idx","createCategoricalMappingFromPalette","palette","values","PALETTE_MAP","step","colorScale","categorical","isCategorical","mapping","res","value","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","INPUTS_WITH_AES_MAPPINGS","updateDataBindAes","optionsState","dataBindAes","uniqueValuesMap","inputName","selectorStates","_a","selectedSource","savedMapping","uniqueValues","updateCategoricalMapping","newUniqueValues","currentMapping","order","uniqueValuesSet","orderValuesSet","addedValues","removedValues","newOrder","newMapping","index","createContinuousMappingFromPalette","createDefaultMapping","getChartSettingsInheritedAes","uniqueValuesData","sourceId","usedAesInMapping","aes","getScatterplotAes","getHistogramAes","DEFAULT_BLACK","getDendroAes","field"],"mappings":"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"}