@milaboratories/graph-maker 1.1.167 → 1.1.168
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GraphMaker/constantsCommon.d.ts +2 -0
- package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
- package/dist/GraphMaker/constantsCommon.js +4 -2
- package/dist/GraphMaker/constantsCommon.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.js +56 -38
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedBar.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedBar.vue.js +48 -30
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedBar.vue.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +2 -0
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js +7 -5
- package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +8 -8
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +8 -8
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js +54 -29
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js +12 -6
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +2 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +64 -64
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +30 -30
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stackedBar.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/discrete/layers/stackedBar.ts"],"sourcesContent":["import { sum } from 'd3-array';\nimport type { DataFrame, GroupKey } from '../../DataFrame';\nimport { NO_GROUPED } from '../../DataFrame';\nimport type { ColumnName } from '../../types';\nimport type { StackedBarLayer } from '../DiscreteSettingsImpl';\nimport { getFacetStringKey } from '../utils/getFacetStringKey';\nimport type { StackedBarsData } from './types';\n\ntype BarPart = {\n height: number;\n key: string;\n};\n\nexport type StackedBar = {\n key: string;\n valuesMap: Record<string, BarPart>;\n primaryGrouping: string;\n boundsY: {\n min: number;\n max: number;\n };\n};\n\nexport function getStackedBarsData(\n layer: StackedBarLayer,\n groupingKeys: {\n facet: GroupKey[][],\n primary: GroupKey[],\n secondary: GroupKey[]\n },\n data: DataFrame,\n y: ColumnName,\n): StackedBarsData {\n let maxY = -Infinity;\n let minY = Infinity;\n\n return {\n type: 'stackedBar',\n geoms: groupingKeys.facet.reduce((res: Record<string, StackedBar[]>, facetKey) => {\n const strFacetKey = getFacetStringKey(facetKey);\n res[strFacetKey] = [];\n groupingKeys.primary.forEach(primaryKey => {\n let currentHeight = 0;\n const barParts:Record<string, BarPart> = {};\n groupingKeys.secondary.forEach(secondaryKey => {\n const secondaryKeyStr = secondaryKey === NO_GROUPED ? 'null' : secondaryKey;\n const indexes = data.getRowsByGrouping([...facetKey, primaryKey, secondaryKey]);\n if (!indexes.length) {\n return;\n }\n const height =
|
|
1
|
+
{"version":3,"file":"stackedBar.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/discrete/layers/stackedBar.ts"],"sourcesContent":["import { max as d3Max, min as d3Min, mean, quantileSorted, sum } from 'd3-array';\nimport type { DataFrame, GroupKey } from '../../DataFrame';\nimport { NO_GROUPED } from '../../DataFrame';\nimport type { ColumnName } from '../../types';\nimport type { StackedBarLayer } from '../DiscreteSettingsImpl';\nimport { getFacetStringKey } from '../utils/getFacetStringKey';\nimport type { StackedBarsData } from './types';\nimport { exhaustive } from '../../utils';\n\ntype BarPart = {\n height: number;\n key: string;\n};\n\nexport type StackedBar = {\n key: string;\n valuesMap: Record<string, BarPart>;\n primaryGrouping: string;\n boundsY: {\n min: number;\n max: number;\n };\n};\n\nfunction calculateHeight(\n indexes: Uint16Array,\n getter: (idx: number) => number,\n heightFunc: 'sum' | 'min' | 'max' | 'median' | 'mean',\n):number {\n if (indexes.length === 0) {\n throw Error('Unable to create bar on empty data');\n }\n\n switch (heightFunc) {\n case 'sum':\n return sum(indexes, getter);\n case 'max':\n return d3Max(indexes, getter) ?? getter(0);\n case 'min':\n return d3Min(indexes, getter) ?? getter(0);\n case 'median': {\n const valuesSorted = [...indexes].map(getter).sort((a, b) => a - b);\n return quantileSorted(valuesSorted, 0.5) ?? getter(0);\n }\n case 'mean': {\n return mean(indexes, getter) ?? getter(0);\n }\n default: exhaustive(heightFunc, `Unknown bar height function ${heightFunc}`);\n }\n}\n\nexport function getStackedBarsData(\n layer: StackedBarLayer,\n groupingKeys: {\n facet: GroupKey[][],\n primary: GroupKey[],\n secondary: GroupKey[]\n },\n data: DataFrame,\n y: ColumnName,\n): StackedBarsData {\n let maxY = -Infinity;\n let minY = Infinity;\n\n return {\n type: 'stackedBar',\n geoms: groupingKeys.facet.reduce((res: Record<string, StackedBar[]>, facetKey) => {\n const strFacetKey = getFacetStringKey(facetKey);\n res[strFacetKey] = [];\n groupingKeys.primary.forEach(primaryKey => {\n let currentHeight = 0;\n const barParts:Record<string, BarPart> = {};\n groupingKeys.secondary.forEach(secondaryKey => {\n const secondaryKeyStr = secondaryKey === NO_GROUPED ? 'null' : secondaryKey;\n const indexes = data.getRowsByGrouping([...facetKey, primaryKey, secondaryKey]);\n if (!indexes.length) {\n return;\n }\n const height = calculateHeight(indexes, (i) => Number(data.getColumnValue(y.value, i)), layer.height);\n barParts[secondaryKeyStr] = {\n height,\n key: String(secondaryKeyStr),\n };\n currentHeight += height;\n });\n const maxStackHeight = currentHeight;\n if (layer.normalize) { // show in percents of every stack\n groupingKeys.secondary.forEach(secondaryKey => {\n const secondaryKeyStr = secondaryKey === NO_GROUPED ? 'null' : secondaryKey;\n if (!barParts[secondaryKeyStr]) {\n return;\n }\n barParts[secondaryKeyStr].height = barParts[secondaryKeyStr].height / maxStackHeight * 100;\n });\n }\n maxY = Math.max(maxY, 0, currentHeight);\n minY = Math.min(minY, 0, currentHeight);\n const bound = layer.normalize ? 100 : maxStackHeight;\n res[strFacetKey].push({\n key: `stackedBar_${String(primaryKey)}`,\n valuesMap: barParts,\n primaryGrouping: primaryKey,\n boundsY: {min: Math.min(bound, 0), max: Math.max(bound, 0)},\n } as StackedBar);\n });\n return res;\n }, {}),\n meta: {minY: layer.normalize ? 0 : minY, maxY: layer.normalize ? 100 : maxY, normalize: layer.normalize},\n aes: layer.aes,\n };\n}\n"],"names":["calculateHeight","indexes","getter","heightFunc","sum","d3Max","d3Min","valuesSorted","a","b","quantileSorted","mean","exhaustive","getStackedBarsData","layer","groupingKeys","data","y","maxY","minY","res","facetKey","strFacetKey","getFacetStringKey","primaryKey","currentHeight","barParts","secondaryKey","secondaryKeyStr","NO_GROUPED","height","i","maxStackHeight","bound"],"mappings":";;;;;;;;AAwBA,SAASA,EACLC,GACAC,GACAC,GACK;AACL,MAAIF,EAAQ,WAAW;AACnB,UAAM,MAAM,oCAAoC;AAGpD,UAAQE,GAAAA;AAAAA,IACJ,KAAK;AACD,aAAOC,EAAIH,GAASC,CAAM;AAAA,IAC9B,KAAK;AACD,aAAOG,EAAMJ,GAASC,CAAM,KAAKA,EAAO,CAAC;AAAA,IAC7C,KAAK;AACD,aAAOI,EAAML,GAASC,CAAM,KAAKA,EAAO,CAAC;AAAA,IAC7C,KAAK,UAAU;AACX,YAAMK,IAAe,CAAC,GAAGN,CAAO,EAAE,IAAIC,CAAM,EAAE,KAAK,CAACM,GAAGC,MAAMD,IAAIC,CAAC;AAClE,aAAOC,EAAeH,GAAc,GAAG,KAAKL,EAAO,CAAC;AAAA,IACxD;AAAA,IACA,KAAK;AACD,aAAOS,EAAKV,GAASC,CAAM,KAAKA,EAAO,CAAC;AAAA,IAE5C;AAASU,MAAAA,EAAWT,GAAY,+BAA+BA,CAAU,EAAE;AAAA,EAAA;AAEnF;AAEO,SAASU,EACZC,GACAC,GAKAC,GACAC,GACe;AACf,MAAIC,IAAO,QACPC,IAAO;AAEX,SAAO;AAAA,IACH,MAAM;AAAA,IACN,OAAOJ,EAAa,MAAM,OAAO,CAACK,GAAmCC,MAAa;AAC9E,YAAMC,IAAcC,EAAkBF,CAAQ;AAC9C,aAAAD,EAAIE,CAAW,IAAI,CAAA,GACnBP,EAAa,QAAQ,QAAQ,CAAAS,MAAc;AACvC,YAAIC,IAAgB;AACpB,cAAMC,IAAmC,CAAA;AACzCX,QAAAA,EAAa,UAAU,QAAQ,CAAAY,MAAgB;AAC3C,gBAAMC,IAAkBD,MAAiBE,IAAa,SAASF,GACzD1B,IAAUe,EAAK,kBAAkB,CAAC,GAAGK,GAAUG,GAAYG,CAAY,CAAC;AAC9E,cAAI,CAAC1B,EAAQ;AACT;AAEJ,gBAAM6B,IAAS9B,EAAgBC,GAAS,CAAC8B,MAAM,OAAOf,EAAK,eAAeC,EAAE,OAAOc,CAAC,CAAC,GAAGjB,EAAM,MAAM;AACpGY,UAAAA,EAASE,CAAe,IAAI;AAAA,YACxB,QAAAE;AAAAA,YACA,KAAK,OAAOF,CAAe;AAAA,UAAA,GAE/BH,KAAiBK;AAAAA,QACrB,CAAC;AACD,cAAME,IAAiBP;AACnBX,QAAAA,EAAM,aACNC,EAAa,UAAU,QAAQ,CAAAY,MAAgB;AAC3C,gBAAMC,IAAkBD,MAAiBE,IAAa,SAASF;AAC1DD,UAAAA,EAASE,CAAe,MAG7BF,EAASE,CAAe,EAAE,SAASF,EAASE,CAAe,EAAE,SAAUI,IAAiB;AAAA,QAC5F,CAAC,GAELd,IAAO,KAAK,IAAIA,GAAM,GAAGO,CAAa,GACtCN,IAAO,KAAK,IAAIA,GAAM,GAAGM,CAAa;AACtC,cAAMQ,IAAQnB,EAAM,YAAY,MAAMkB;AACtCZ,QAAAA,EAAIE,CAAW,EAAE,KAAK;AAAA,UAClB,KAAK,cAAc,OAAOE,CAAU,CAAC;AAAA,UACrC,WAAWE;AAAAA,UACX,iBAAiBF;AAAAA,UACjB,SAAS,EAAC,KAAK,KAAK,IAAIS,GAAO,CAAC,GAAG,KAAK,KAAK,IAAIA,GAAO,CAAC,EAAA;AAAA,QAAA,CAC9C;AAAA,MACnB,CAAC,GACMb;AAAAA,IACX,GAAG,CAAA,CAAE;AAAA,IACL,MAAM,EAAC,MAAMN,EAAM,YAAY,IAAIK,GAAM,MAAML,EAAM,YAAY,MAAMI,GAAM,WAAWJ,EAAM,UAAA;AAAA,IAC9F,KAAKA,EAAM;AAAA,EAAA;AAEnB;","x_google_ignoreList":[0]}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
function
|
|
2
|
-
let
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
function n(f, t) {
|
|
2
|
+
let e;
|
|
3
|
+
if (t === void 0)
|
|
4
|
+
for (const l of f)
|
|
5
|
+
l != null && (e > l || e === void 0 && l >= l) && (e = l);
|
|
6
|
+
else {
|
|
7
|
+
let l = -1;
|
|
8
|
+
for (let o of f)
|
|
9
|
+
(o = t(o, ++l, f)) != null && (e > o || e === void 0 && o >= o) && (e = o);
|
|
10
|
+
}
|
|
11
|
+
return e;
|
|
6
12
|
}
|
|
7
13
|
export {
|
|
8
|
-
|
|
14
|
+
n as default
|
|
9
15
|
};
|
|
10
16
|
//# sourceMappingURL=min.js.map
|
package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/node_modules/d3-array/src/min.js"],"sourcesContent":["export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n"],"names":["min","values","valueof","value"],"mappings":"AAAe,SAASA,EAAIC,GAAQC,GAAS;AAC3C,MAAIF;
|
|
1
|
+
{"version":3,"file":"min.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/node_modules/d3-array/src/min.js"],"sourcesContent":["export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n"],"names":["min","values","valueof","value","index"],"mappings":"AAAe,SAASA,EAAIC,GAAQC,GAAS;AAC3C,MAAIF;AACJ,MAAIE,MAAY;AACd,eAAWC,KAASF;AACdE,MAAAA,KAAS,SACLH,IAAMG,KAAUH,MAAQ,UAAaG,KAASA,OACpDH,IAAMG;AAAAA,OAGL;AACL,QAAIC,IAAQ;AACZ,aAASD,KAASF;AAChB,OAAKE,IAAQD,EAAQC,GAAO,EAAEC,GAAOH,CAAM,MAAM,SACzCD,IAAMG,KAAUH,MAAQ,UAAaG,KAASA,OACpDH,IAAMG;AAAAA,EAGZ;AACA,SAAOH;AACT;","x_google_ignoreList":[0]}
|
|
@@ -105,6 +105,7 @@ const n = o.object({ type: o.enum(["primaryGrouping", "secondaryGrouping"]) }),
|
|
|
105
105
|
}), C = o.object({
|
|
106
106
|
type: o.literal("stackedBar"),
|
|
107
107
|
normalize: o.optional(o.boolean()),
|
|
108
|
+
height: o.optional(o.enum(["sum", "min", "max", "median", "mean"])),
|
|
108
109
|
aes: o.optional(
|
|
109
110
|
o.object({
|
|
110
111
|
width: o.optional(o.number()),
|
|
@@ -170,6 +171,7 @@ const n = o.object({ type: o.enum(["primaryGrouping", "secondaryGrouping"]) }),
|
|
|
170
171
|
}), O = o.object({
|
|
171
172
|
type: o.literal("stackedArea"),
|
|
172
173
|
normalize: o.optional(o.boolean()),
|
|
174
|
+
height: o.optional(o.enum(["sum", "min", "max", "median", "mean"])),
|
|
173
175
|
showBars: o.optional(o.boolean()),
|
|
174
176
|
aes: o.optional(
|
|
175
177
|
o.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discrete.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/types/discrete.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n AesRecordSchema,\n AxisSettingsContinuousSchema,\n AxisSettingsDiscreteSchema,\n ColumnNameSchema,\n DataValueSchema,\n FrameTypeSchema,\n LegendPositionSchema,\n LineShapeSchema,\n PointShapeSchema,\n TitlePositionSchema\n} from './common';\n\nexport type InheritAesDiscrete = {type: 'primaryGrouping' | 'secondaryGrouping'};\nconst InheritAesSchema = z.object({type: z.enum(['primaryGrouping', 'secondaryGrouping'])});\n\nconst BoxLayerSchema = z.object({\n type: z.literal('box'),\n stat: z.optional(\n z.object({\n upper: z.optional(z.number().min(0).max(1)),\n middle: z.optional(z.number().min(0).max(1)),\n lower: z.optional(z.number().min(0).max(1)),\n k: z.optional(z.number()),\n })\n ),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n outliersShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n outliersSize: z.optional(z.union([InheritAesSchema, z.number()])),\n outliersColor: z.optional(z.union([InheritAesSchema, z.string()])),\n boxWidth: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n lineShape: z.optional(LineShapeSchema),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type BoxLayer = z.infer<typeof BoxLayerSchema>;\n\nconst ViolinLayerSchema = z.object({\n type: z.literal('violin'),\n stat: z.optional(\n z.object({\n bandwidth: z.optional(z.number()),\n trim: z.optional(z.boolean()),\n })\n ),\n aes: z.optional(\n z.object({\n boxWidth: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n lineShape: z.optional(LineShapeSchema),\n opacity: z.optional(z.number().min(0).max(1)),\n showQuartiles: z.optional(z.boolean()),\n medianLineStyle: z.optional(LineShapeSchema),\n quartilesLineStyle: z.optional(LineShapeSchema),\n })\n ),\n});\nexport type ViolinLayer = z.infer<typeof ViolinLayerSchema>;\n\nconst DotLayerSchema = z.object({\n type: z.literal('dot'),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n jitter: z.optional(z.number().min(0).max(1)),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type DotLayer = z.infer<typeof DotLayerSchema>;\n\nconst SUMMARY_GROUP_VALUE = ['mean', 'median'] as const;\nconst SUMMARY_ERROR_VALUE = ['sd', 'se', 'ci'] as const;\n\nconst SummaryGroupSchema = z.enum(SUMMARY_GROUP_VALUE);\nconst SummaryErrorSchema = z.enum(SUMMARY_ERROR_VALUE);\n\nexport type SummaryGroupValue = z.infer<typeof SummaryGroupSchema>;\nexport type SummaryErrorValue = z.infer<typeof SummaryErrorSchema>;\n\nconst LineLayerSchema = z.object({\n type: z.literal('line'),\n pointsValues: SummaryGroupSchema,\n emptyGroupValue: z.optional(z.number()),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n lineShape: z.optional(z.union([InheritAesSchema, LineShapeSchema])),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type LineLayer = z.infer<typeof LineLayerSchema>;\n\nconst ErrorBarLayerSchema = z.object({\n type: z.literal('errorbar'),\n pointsValues: SummaryGroupSchema,\n interval: SummaryErrorSchema,\n aes: z.optional(\n z.object({\n showDots: z.optional(z.boolean()),\n width: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type ErrorBarLayer = z.infer<typeof ErrorBarLayerSchema>;\n\nconst BarLayerSchema = z.object({\n type: z.literal('bar'),\n height: z.optional(z.enum(['min', 'max', 'median', 'mean'])),\n aes: z.optional(\n z.object({\n width: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type BarLayer = z.infer<typeof BarLayerSchema>;\n\nconst StackedBarLayerSchema = z.object({\n type: z.literal('stackedBar'),\n normalize: z.optional(z.boolean()),\n aes: z.optional(\n z.object({\n width: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type StackedBarLayer = z.infer<typeof StackedBarLayerSchema>;\n\nconst BinnedDotsLayerSchema = z.object({\n type: z.literal('binnedDots'),\n method: z.optional(z.enum(['dotdensity', 'histodot'])),\n position: z.optional(z.enum(['stack', 'jitter'])),\n keyColumn: z.optional(ColumnNameSchema),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n width: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type BinnedDotsLayer = z.infer<typeof BinnedDotsLayerSchema>;\n\nconst PairedPointsLayerSchema = z.object({\n type: z.literal('pairedPoints'),\n linkColumn: ColumnNameSchema,\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n lineShape: z.optional(LineShapeSchema),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(PointShapeSchema),\n dotFill: z.optional(z.union([InheritAesSchema, z.string()])),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type PairedPointsLayer = z.infer<typeof PairedPointsLayerSchema>;\n\n// geom_sina - jittered dots in violin shape\nconst SinaLayerSchema = z.object({\n type: z.literal('sina'),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n dotFill: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type SinaLayer = z.infer<typeof SinaLayerSchema>;\n\nconst LogoPlotLayerSchema = z.object({\n type: z.literal('logo'),\n normalize: z.optional(z.boolean()),\n aes: z.optional(\n z.object({\n width: z.optional(z.number()),\n lineColor: z.optional(z.string()),\n fillColor: z.optional(z.union([z.record(z.string()), z.string()])),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type LogoPlotLayer = z.infer<typeof LogoPlotLayerSchema>;\n\nconst StackedAreaLayerSchema = z.object({\n type: z.literal('stackedArea'),\n normalize: z.optional(z.boolean()),\n showBars: z.optional(z.boolean()),\n aes: z.optional(\n z.object({\n barWidth: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n barsOpacity: z.optional(z.number().min(0).max(1)),\n areaOpacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type StackedAreaLayer = z.infer<typeof StackedAreaLayerSchema>;\n\nconst STAT_TEST_METHOD = ['ttest', 'anova', 'wilcoxon', 'kruskalWallis'] as const;\nconst P_VALUE_CORRECTION_METHOD = [\n 'BenjaminiHochberg',\n 'BenjaminiYekutieli',\n 'Bonferroni',\n 'Hochberg',\n 'Holm',\n 'Hommel',\n] as const;\n\nconst StatTestMethodSchema = z.enum(STAT_TEST_METHOD);\nconst PValueCorrectionMethodSchema = z.enum(P_VALUE_CORRECTION_METHOD);\nconst SignificanceLevelsSchema = z.object({one: z.number(), two: z.number(), three: z.number()});\n\nexport type StatTestMethod = z.infer<typeof StatTestMethodSchema>;\nexport type PValueCorrectionMethod = z.infer<typeof PValueCorrectionMethodSchema>;\nexport type SignificanceLevels = z.infer<typeof SignificanceLevelsSchema>;\n\nconst StatLayerSchema = z.object({\n type: z.literal('stat'),\n statType: z.enum(['overall', 'referenceGroup', 'pairwise']),\n testMethod: StatTestMethodSchema,\n paired: z.optional(z.boolean()),\n ns: z.optional(z.boolean()),\n format: z.optional(z.enum(['significance', 'pValue'])),\n referenceGroup: z.optional(DataValueSchema),\n correctionMethod: z.optional(PValueCorrectionMethodSchema),\n significanceLevels: z.optional(SignificanceLevelsSchema)\n});\nexport type StatLayer = z.infer<typeof StatLayerSchema>;\n\nconst DiscreteLayerSchema = z.union([\n BoxLayerSchema,\n ViolinLayerSchema,\n DotLayerSchema,\n LineLayerSchema,\n ErrorBarLayerSchema,\n BarLayerSchema,\n StackedBarLayerSchema,\n BinnedDotsLayerSchema,\n PairedPointsLayerSchema,\n SinaLayerSchema,\n LogoPlotLayerSchema,\n StackedAreaLayerSchema,\n StatLayerSchema\n]);\nexport type DiscreteLayer = z.infer<typeof DiscreteLayerSchema>;\n\nconst ORIENTATION = ['horizontal', 'vertical'] as const;\nconst OrientationSchema = z.enum(ORIENTATION);\nexport type Orientation = z.infer<typeof OrientationSchema>;\n\nexport const DiscreteSettingsSchema = z.object({\n type: z.literal('discrete'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n y: ColumnNameSchema,\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n outerOffset: z.optional(z.number()),\n innerOffset: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n tooltips: z.optional(\n z.object({\n box: z.optional(z.object({show: z.boolean()})),\n violin: z.optional(z.object({show: z.boolean()})),\n boxOutliers: z.optional(z.object({show: z.boolean()})),\n line: z.optional(z.object({show: z.boolean()})),\n dot: z.optional(z.object({show: z.boolean()})),\n errorBar: z.optional(z.object({show: z.boolean()})),\n binnedDots: z.optional(z.object({show: z.boolean()})),\n pairedPoints: z.optional(z.object({show: z.boolean()})),\n stackedBar: z.optional(z.object({show: z.boolean()})),\n logo: z.optional(z.object({show: z.boolean()})),\n })\n ),\n frame: z.optional(z.object({type: z.optional(FrameTypeSchema)})),\n orientation: z.optional(OrientationSchema),\n keyColumn: z.optional(ColumnNameSchema),\n primaryGrouping: z.optional(\n z.object({\n columnName: ColumnNameSchema,\n order: z.optional(z.array(DataValueSchema)),\n inheritedAes: z.optional(AesRecordSchema),\n allowNullGroup: z.optional(z.boolean())\n })\n ),\n secondaryGrouping: z.optional(\n z.object({\n columnName: ColumnNameSchema,\n order: z.optional(z.array(DataValueSchema)),\n inheritedAes: z.optional(AesRecordSchema),\n allowNullGroup: z.optional(z.boolean())\n })\n ),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n facetSettings: z.optional(\n z.object({\n sharedX: z.optional(z.boolean()),\n sharedY: z.optional(z.boolean()),\n order: z.optional(z.record(z.array(DataValueSchema))),\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n titlePosition: z.optional(TitlePositionSchema),\n })\n ),\n xAxis: z.optional(AxisSettingsDiscreteSchema),\n yAxis: z.optional(AxisSettingsContinuousSchema),\n layers: z.array(DiscreteLayerSchema),\n});\n\nexport type DiscreteSettings = z.infer<typeof DiscreteSettingsSchema>;\n\nexport type GroupingData = {\n value: string | null,\n keys: string[],\n label: string,\n valueLabels: Record<string, string>,\n inheritedAes: z.infer<typeof AesRecordSchema> | null\n}\n"],"names":["InheritAesSchema","z","BoxLayerSchema","PointShapeSchema","LineShapeSchema","ViolinLayerSchema","DotLayerSchema","SUMMARY_GROUP_VALUE","SUMMARY_ERROR_VALUE","SummaryGroupSchema","SummaryErrorSchema","LineLayerSchema","ErrorBarLayerSchema","BarLayerSchema","StackedBarLayerSchema","BinnedDotsLayerSchema","ColumnNameSchema","PairedPointsLayerSchema","SinaLayerSchema","LogoPlotLayerSchema","StackedAreaLayerSchema","STAT_TEST_METHOD","P_VALUE_CORRECTION_METHOD","StatTestMethodSchema","PValueCorrectionMethodSchema","SignificanceLevelsSchema","StatLayerSchema","DataValueSchema","DiscreteLayerSchema","ORIENTATION","OrientationSchema","DiscreteSettingsSchema","TitlePositionSchema","LegendPositionSchema","FrameTypeSchema","AesRecordSchema","AxisSettingsDiscreteSchema","AxisSettingsContinuousSchema"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"discrete.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/types/discrete.ts"],"sourcesContent":["import { z } from 'zod';\nimport {\n AesRecordSchema,\n AxisSettingsContinuousSchema,\n AxisSettingsDiscreteSchema,\n ColumnNameSchema,\n DataValueSchema,\n FrameTypeSchema,\n LegendPositionSchema,\n LineShapeSchema,\n PointShapeSchema,\n TitlePositionSchema\n} from './common';\n\nexport type InheritAesDiscrete = {type: 'primaryGrouping' | 'secondaryGrouping'};\nconst InheritAesSchema = z.object({type: z.enum(['primaryGrouping', 'secondaryGrouping'])});\n\nconst BoxLayerSchema = z.object({\n type: z.literal('box'),\n stat: z.optional(\n z.object({\n upper: z.optional(z.number().min(0).max(1)),\n middle: z.optional(z.number().min(0).max(1)),\n lower: z.optional(z.number().min(0).max(1)),\n k: z.optional(z.number()),\n })\n ),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n outliersShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n outliersSize: z.optional(z.union([InheritAesSchema, z.number()])),\n outliersColor: z.optional(z.union([InheritAesSchema, z.string()])),\n boxWidth: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n lineShape: z.optional(LineShapeSchema),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type BoxLayer = z.infer<typeof BoxLayerSchema>;\n\nconst ViolinLayerSchema = z.object({\n type: z.literal('violin'),\n stat: z.optional(\n z.object({\n bandwidth: z.optional(z.number()),\n trim: z.optional(z.boolean()),\n })\n ),\n aes: z.optional(\n z.object({\n boxWidth: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n lineShape: z.optional(LineShapeSchema),\n opacity: z.optional(z.number().min(0).max(1)),\n showQuartiles: z.optional(z.boolean()),\n medianLineStyle: z.optional(LineShapeSchema),\n quartilesLineStyle: z.optional(LineShapeSchema),\n })\n ),\n});\nexport type ViolinLayer = z.infer<typeof ViolinLayerSchema>;\n\nconst DotLayerSchema = z.object({\n type: z.literal('dot'),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n jitter: z.optional(z.number().min(0).max(1)),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type DotLayer = z.infer<typeof DotLayerSchema>;\n\nconst SUMMARY_GROUP_VALUE = ['mean', 'median'] as const;\nconst SUMMARY_ERROR_VALUE = ['sd', 'se', 'ci'] as const;\n\nconst SummaryGroupSchema = z.enum(SUMMARY_GROUP_VALUE);\nconst SummaryErrorSchema = z.enum(SUMMARY_ERROR_VALUE);\n\nexport type SummaryGroupValue = z.infer<typeof SummaryGroupSchema>;\nexport type SummaryErrorValue = z.infer<typeof SummaryErrorSchema>;\n\nconst LineLayerSchema = z.object({\n type: z.literal('line'),\n pointsValues: SummaryGroupSchema,\n emptyGroupValue: z.optional(z.number()),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n lineShape: z.optional(z.union([InheritAesSchema, LineShapeSchema])),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type LineLayer = z.infer<typeof LineLayerSchema>;\n\nconst ErrorBarLayerSchema = z.object({\n type: z.literal('errorbar'),\n pointsValues: SummaryGroupSchema,\n interval: SummaryErrorSchema,\n aes: z.optional(\n z.object({\n showDots: z.optional(z.boolean()),\n width: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type ErrorBarLayer = z.infer<typeof ErrorBarLayerSchema>;\n\nconst BarLayerSchema = z.object({\n type: z.literal('bar'),\n height: z.optional(z.enum(['min', 'max', 'median', 'mean'])),\n aes: z.optional(\n z.object({\n width: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type BarLayer = z.infer<typeof BarLayerSchema>;\n\nconst StackedBarLayerSchema = z.object({\n type: z.literal('stackedBar'),\n normalize: z.optional(z.boolean()),\n height: z.optional(z.enum(['sum', 'min', 'max', 'median', 'mean'])),\n aes: z.optional(\n z.object({\n width: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type StackedBarLayer = z.infer<typeof StackedBarLayerSchema>;\n\nconst BinnedDotsLayerSchema = z.object({\n type: z.literal('binnedDots'),\n method: z.optional(z.enum(['dotdensity', 'histodot'])),\n position: z.optional(z.enum(['stack', 'jitter'])),\n keyColumn: z.optional(ColumnNameSchema),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n width: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n lineWidth: z.optional(z.number()),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type BinnedDotsLayer = z.infer<typeof BinnedDotsLayerSchema>;\n\nconst PairedPointsLayerSchema = z.object({\n type: z.literal('pairedPoints'),\n linkColumn: ColumnNameSchema,\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n lineShape: z.optional(LineShapeSchema),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(PointShapeSchema),\n dotFill: z.optional(z.union([InheritAesSchema, z.string()])),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type PairedPointsLayer = z.infer<typeof PairedPointsLayerSchema>;\n\n// geom_sina - jittered dots in violin shape\nconst SinaLayerSchema = z.object({\n type: z.literal('sina'),\n aes: z.optional(\n z.object({\n showOutliers: z.optional(z.boolean()),\n dotFill: z.optional(z.union([InheritAesSchema, z.string()])),\n dotSize: z.optional(z.number()),\n dotShape: z.optional(z.union([InheritAesSchema, PointShapeSchema])),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type SinaLayer = z.infer<typeof SinaLayerSchema>;\n\nconst LogoPlotLayerSchema = z.object({\n type: z.literal('logo'),\n normalize: z.optional(z.boolean()),\n aes: z.optional(\n z.object({\n width: z.optional(z.number()),\n lineColor: z.optional(z.string()),\n fillColor: z.optional(z.union([z.record(z.string()), z.string()])),\n opacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type LogoPlotLayer = z.infer<typeof LogoPlotLayerSchema>;\n\nconst StackedAreaLayerSchema = z.object({\n type: z.literal('stackedArea'),\n normalize: z.optional(z.boolean()),\n height: z.optional(z.enum(['sum', 'min', 'max', 'median', 'mean'])),\n showBars: z.optional(z.boolean()),\n aes: z.optional(\n z.object({\n barWidth: z.optional(z.number()),\n lineColor: z.optional(z.union([InheritAesSchema, z.string()])),\n fillColor: z.optional(z.union([InheritAesSchema, z.string()])),\n lineWidth: z.optional(z.number()),\n barsOpacity: z.optional(z.number().min(0).max(1)),\n areaOpacity: z.optional(z.number().min(0).max(1)),\n })\n ),\n});\nexport type StackedAreaLayer = z.infer<typeof StackedAreaLayerSchema>;\n\nconst STAT_TEST_METHOD = ['ttest', 'anova', 'wilcoxon', 'kruskalWallis'] as const;\nconst P_VALUE_CORRECTION_METHOD = [\n 'BenjaminiHochberg',\n 'BenjaminiYekutieli',\n 'Bonferroni',\n 'Hochberg',\n 'Holm',\n 'Hommel',\n] as const;\n\nconst StatTestMethodSchema = z.enum(STAT_TEST_METHOD);\nconst PValueCorrectionMethodSchema = z.enum(P_VALUE_CORRECTION_METHOD);\nconst SignificanceLevelsSchema = z.object({one: z.number(), two: z.number(), three: z.number()});\n\nexport type StatTestMethod = z.infer<typeof StatTestMethodSchema>;\nexport type PValueCorrectionMethod = z.infer<typeof PValueCorrectionMethodSchema>;\nexport type SignificanceLevels = z.infer<typeof SignificanceLevelsSchema>;\n\nconst StatLayerSchema = z.object({\n type: z.literal('stat'),\n statType: z.enum(['overall', 'referenceGroup', 'pairwise']),\n testMethod: StatTestMethodSchema,\n paired: z.optional(z.boolean()),\n ns: z.optional(z.boolean()),\n format: z.optional(z.enum(['significance', 'pValue'])),\n referenceGroup: z.optional(DataValueSchema),\n correctionMethod: z.optional(PValueCorrectionMethodSchema),\n significanceLevels: z.optional(SignificanceLevelsSchema)\n});\nexport type StatLayer = z.infer<typeof StatLayerSchema>;\n\nconst DiscreteLayerSchema = z.union([\n BoxLayerSchema,\n ViolinLayerSchema,\n DotLayerSchema,\n LineLayerSchema,\n ErrorBarLayerSchema,\n BarLayerSchema,\n StackedBarLayerSchema,\n BinnedDotsLayerSchema,\n PairedPointsLayerSchema,\n SinaLayerSchema,\n LogoPlotLayerSchema,\n StackedAreaLayerSchema,\n StatLayerSchema\n]);\nexport type DiscreteLayer = z.infer<typeof DiscreteLayerSchema>;\n\nconst ORIENTATION = ['horizontal', 'vertical'] as const;\nconst OrientationSchema = z.enum(ORIENTATION);\nexport type Orientation = z.infer<typeof OrientationSchema>;\n\nexport const DiscreteSettingsSchema = z.object({\n type: z.literal('discrete'),\n title: z.object({\n name: z.string(),\n show: z.optional(z.boolean()),\n position: z.optional(TitlePositionSchema),\n }),\n y: ColumnNameSchema,\n size: z.optional(\n z.object({\n width: z.optional(z.number()),\n height: z.optional(z.number()),\n outerOffset: z.optional(z.number()),\n innerOffset: z.optional(z.number())\n })\n ),\n legend: z.optional(\n z.object({\n show: z.optional(z.boolean()),\n position: z.optional(LegendPositionSchema),\n })\n ),\n tooltips: z.optional(\n z.object({\n box: z.optional(z.object({show: z.boolean()})),\n violin: z.optional(z.object({show: z.boolean()})),\n boxOutliers: z.optional(z.object({show: z.boolean()})),\n line: z.optional(z.object({show: z.boolean()})),\n dot: z.optional(z.object({show: z.boolean()})),\n errorBar: z.optional(z.object({show: z.boolean()})),\n binnedDots: z.optional(z.object({show: z.boolean()})),\n pairedPoints: z.optional(z.object({show: z.boolean()})),\n stackedBar: z.optional(z.object({show: z.boolean()})),\n logo: z.optional(z.object({show: z.boolean()})),\n })\n ),\n frame: z.optional(z.object({type: z.optional(FrameTypeSchema)})),\n orientation: z.optional(OrientationSchema),\n keyColumn: z.optional(ColumnNameSchema),\n primaryGrouping: z.optional(\n z.object({\n columnName: ColumnNameSchema,\n order: z.optional(z.array(DataValueSchema)),\n inheritedAes: z.optional(AesRecordSchema),\n allowNullGroup: z.optional(z.boolean())\n })\n ),\n secondaryGrouping: z.optional(\n z.object({\n columnName: ColumnNameSchema,\n order: z.optional(z.array(DataValueSchema)),\n inheritedAes: z.optional(AesRecordSchema),\n allowNullGroup: z.optional(z.boolean())\n })\n ),\n facetBy: z.optional(z.array(ColumnNameSchema)),\n facetSettings: z.optional(\n z.object({\n sharedX: z.optional(z.boolean()),\n sharedY: z.optional(z.boolean()),\n order: z.optional(z.record(z.array(DataValueSchema))),\n nRows: z.optional(z.number()),\n nCols: z.optional(z.number()),\n titlePosition: z.optional(TitlePositionSchema),\n })\n ),\n xAxis: z.optional(AxisSettingsDiscreteSchema),\n yAxis: z.optional(AxisSettingsContinuousSchema),\n layers: z.array(DiscreteLayerSchema),\n});\n\nexport type DiscreteSettings = z.infer<typeof DiscreteSettingsSchema>;\n\nexport type GroupingData = {\n value: string | null,\n keys: string[],\n label: string,\n valueLabels: Record<string, string>,\n inheritedAes: z.infer<typeof AesRecordSchema> | null\n}\n"],"names":["InheritAesSchema","z","BoxLayerSchema","PointShapeSchema","LineShapeSchema","ViolinLayerSchema","DotLayerSchema","SUMMARY_GROUP_VALUE","SUMMARY_ERROR_VALUE","SummaryGroupSchema","SummaryErrorSchema","LineLayerSchema","ErrorBarLayerSchema","BarLayerSchema","StackedBarLayerSchema","BinnedDotsLayerSchema","ColumnNameSchema","PairedPointsLayerSchema","SinaLayerSchema","LogoPlotLayerSchema","StackedAreaLayerSchema","STAT_TEST_METHOD","P_VALUE_CORRECTION_METHOD","StatTestMethodSchema","PValueCorrectionMethodSchema","SignificanceLevelsSchema","StatLayerSchema","DataValueSchema","DiscreteLayerSchema","ORIENTATION","OrientationSchema","DiscreteSettingsSchema","TitlePositionSchema","LegendPositionSchema","FrameTypeSchema","AesRecordSchema","AxisSettingsDiscreteSchema","AxisSettingsContinuousSchema"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { ControllerBase as
|
|
1
|
+
import z from "../../_virtual/canonicalize.js";
|
|
2
|
+
import E from "../../_virtual/lodash.js";
|
|
3
|
+
import { ControllerBase as Y } from "../ControllerBase.js";
|
|
4
4
|
import { ComponentController as u } from "../ComponentController.js";
|
|
5
5
|
import { AxisId as P, columnOrAxisIdFromString as f, isColumnId as C } from "../../spec.js";
|
|
6
|
-
import { createLinkerMap as
|
|
7
|
-
var J = Object.defineProperty, Z = (h,
|
|
6
|
+
import { createLinkerMap as q, createMultipliesByMap as M, getFiltersFromStates as U, getAxesSpecsFromSources as X, getLinkerColumnsForSource as F, getColumnOrAxisValueLabelsId as b, createHighlightColumn as H, getColumnOrAxisLabel as A, getColumnOrAxisSpec as T, getFormat as N } from "../../utils.js";
|
|
7
|
+
var J = Object.defineProperty, Z = (h, e, t) => e in h ? J(h, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : h[e] = t, k = (h, e, t) => Z(h, typeof e != "symbol" ? e + "" : e, t);
|
|
8
8
|
const W = {
|
|
9
9
|
type: "scatterplot-umap",
|
|
10
10
|
components: {
|
|
@@ -21,7 +21,7 @@ const W = {
|
|
|
21
21
|
},
|
|
22
22
|
dividedAxes: {}
|
|
23
23
|
};
|
|
24
|
-
class _ extends
|
|
24
|
+
class _ extends Y {
|
|
25
25
|
//allowHangingAxes = true;
|
|
26
26
|
constructor() {
|
|
27
27
|
super(
|
|
@@ -145,20 +145,20 @@ class _ extends E {
|
|
|
145
145
|
}
|
|
146
146
|
})
|
|
147
147
|
}
|
|
148
|
-
),
|
|
148
|
+
), k(this, "dataInputs", ["x", "y"]), k(this, "dontAllowUnfilteredHighCardinality", !0);
|
|
149
149
|
}
|
|
150
|
-
getMustBeConsumedAxes(
|
|
151
|
-
if (!
|
|
150
|
+
getMustBeConsumedAxes(e, t) {
|
|
151
|
+
if (!e.components.x.selectorStates.length || !e.components.y.selectorStates.length)
|
|
152
152
|
return /* @__PURE__ */ new Set();
|
|
153
|
-
const
|
|
153
|
+
const g = e.components.x.selectorStates[0].selectedSource, S = e.components.y.selectorStates[0].selectedSource, m = t.get(g), r = t.get(S);
|
|
154
154
|
if (!m || !r || m.kind !== "column" || r.kind !== "column")
|
|
155
155
|
return /* @__PURE__ */ new Set();
|
|
156
156
|
const a = m.spec.axesSpec.map((i) => P.fromAxisSpec(i).toCanonicalString()), c = r.spec.axesSpec.map((i) => P.fromAxisSpec(i).toCanonicalString()), p = a.filter((i) => !c.some((d) => d === i)), n = c.filter((i) => !a.some((d) => d === i));
|
|
157
157
|
return p.length && n.length ? /* @__PURE__ */ new Set([...p, ...n]) : /* @__PURE__ */ new Set();
|
|
158
158
|
}
|
|
159
|
-
async createDataByColumns(
|
|
160
|
-
var
|
|
161
|
-
const m = (
|
|
159
|
+
async createDataByColumns(e, t) {
|
|
160
|
+
var g, S;
|
|
161
|
+
const m = (g = t.components.x.selectorStates[0]) == null ? void 0 : g.selectedSource, r = (S = t.components.y.selectorStates[0]) == null ? void 0 : S.selectedSource;
|
|
162
162
|
if (!m || !r)
|
|
163
163
|
throw Error("X or Y column is not valid");
|
|
164
164
|
const a = f(m), c = f(r);
|
|
@@ -166,136 +166,136 @@ class _ extends E {
|
|
|
166
166
|
throw Error("X or Y column is not valid");
|
|
167
167
|
const p = {
|
|
168
168
|
type: "columns",
|
|
169
|
-
id:
|
|
169
|
+
id: z(t.components) ?? "",
|
|
170
170
|
values: {}
|
|
171
|
-
}, n = await
|
|
172
|
-
...
|
|
173
|
-
...
|
|
174
|
-
],
|
|
171
|
+
}, n = await q(e), i = await M(e), d = [
|
|
172
|
+
...t.components.filters.selectorStates,
|
|
173
|
+
...t.components.tabBy.selectorStates
|
|
174
|
+
], I = U(d), O = d.map((s) => f(s.selectedSource)).filter(C), v = [a, c].filter(C).map((s) => s.toCanonicalString());
|
|
175
175
|
if (v.length === 0)
|
|
176
176
|
throw Error("One of X and Y should be a column");
|
|
177
|
-
const D = await X(
|
|
177
|
+
const D = await X(e, v), L = [a, c, ...O], w = [], x = [];
|
|
178
178
|
for (const { selectedSource: s } of d)
|
|
179
179
|
x.push(...await F(
|
|
180
|
-
|
|
180
|
+
e,
|
|
181
181
|
n,
|
|
182
182
|
i,
|
|
183
183
|
D,
|
|
184
184
|
s
|
|
185
185
|
));
|
|
186
186
|
const o = [
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
187
|
+
t.components.grouping,
|
|
188
|
+
t.components.facetBy,
|
|
189
|
+
t.components.tooltipContent,
|
|
190
|
+
t.components.label,
|
|
191
|
+
t.components.highlight,
|
|
192
|
+
t.components.size
|
|
193
193
|
];
|
|
194
194
|
for (const s of o)
|
|
195
|
-
for (const { selectedSource:
|
|
196
|
-
w.push(f(
|
|
197
|
-
|
|
195
|
+
for (const { selectedSource: y } of s.selectorStates) {
|
|
196
|
+
w.push(f(y)), x.push(...await F(
|
|
197
|
+
e,
|
|
198
198
|
n,
|
|
199
199
|
i,
|
|
200
200
|
D,
|
|
201
|
-
|
|
201
|
+
y
|
|
202
202
|
));
|
|
203
|
-
const
|
|
204
|
-
|
|
203
|
+
const B = await b(e, y, v);
|
|
204
|
+
B && w.push(B);
|
|
205
205
|
}
|
|
206
|
-
const l = await
|
|
206
|
+
const l = await e.pFrameProvider.getTableOuterJoin(
|
|
207
207
|
[a, c, ...x, ...O],
|
|
208
208
|
w,
|
|
209
|
-
|
|
209
|
+
I,
|
|
210
210
|
!1
|
|
211
211
|
);
|
|
212
|
-
return [...
|
|
213
|
-
const
|
|
214
|
-
p.values[
|
|
215
|
-
}),
|
|
212
|
+
return [...L, ...w].forEach((s) => {
|
|
213
|
+
const y = s.toCanonicalString();
|
|
214
|
+
p.values[y] = C(s) ? l.columnsData[y] : l.axesData[y];
|
|
215
|
+
}), t.components.highlight.selectorStates.length && (p.values.highlight = H(t.components.highlight.selectorStates, l)), {
|
|
216
216
|
byColumns: p,
|
|
217
217
|
axesData: l.axesData
|
|
218
218
|
};
|
|
219
219
|
}
|
|
220
|
-
async createChartSettings(
|
|
221
|
-
var
|
|
222
|
-
const r = (
|
|
220
|
+
async createChartSettings(e, t) {
|
|
221
|
+
var g, S, m;
|
|
222
|
+
const r = (g = t.components.x.selectorStates[0]) == null ? void 0 : g.selectedSource, a = (S = t.components.y.selectorStates[0]) == null ? void 0 : S.selectedSource, c = r ? f(r) : null, p = a ? f(a) : null;
|
|
223
223
|
if (!r || !a || !c || !p || !C(c) && !C(p))
|
|
224
224
|
throw Error("Empty or invalid required data");
|
|
225
225
|
const n = [c, p].filter(C).map((o) => o.toCanonicalString()), i = {
|
|
226
226
|
type: "column",
|
|
227
227
|
value: r,
|
|
228
|
-
label: await A(
|
|
228
|
+
label: await A(e, r, n)
|
|
229
229
|
}, d = {
|
|
230
230
|
type: "column",
|
|
231
231
|
value: a,
|
|
232
|
-
label: await A(
|
|
233
|
-
},
|
|
232
|
+
label: await A(e, a, n)
|
|
233
|
+
}, I = {
|
|
234
234
|
type: "column",
|
|
235
235
|
value: "key"
|
|
236
236
|
}, O = await Promise.all(
|
|
237
|
-
|
|
237
|
+
t.components.facetBy.selectorStates.map(async (o) => {
|
|
238
238
|
var l;
|
|
239
239
|
return {
|
|
240
240
|
type: "column",
|
|
241
|
-
value: ((l = await b(
|
|
241
|
+
value: ((l = await b(e, o.selectedSource, n)) == null ? void 0 : l.toCanonicalString()) ?? o.selectedSource
|
|
242
242
|
};
|
|
243
243
|
})
|
|
244
|
-
), v =
|
|
245
|
-
...
|
|
246
|
-
...
|
|
244
|
+
), v = E.uniq([
|
|
245
|
+
...t.components.grouping.selectorStates.map((o) => o.selectedSource),
|
|
246
|
+
...t.components.size.selectorStates.map((o) => o.selectedSource)
|
|
247
247
|
]), D = await Promise.all(
|
|
248
248
|
v.map(async (o) => {
|
|
249
249
|
var l;
|
|
250
250
|
return {
|
|
251
251
|
columnName: {
|
|
252
252
|
type: "column",
|
|
253
|
-
label: await A(
|
|
253
|
+
label: await A(e, o, n) || o,
|
|
254
254
|
value: o,
|
|
255
|
-
valueLabels: ((l = await b(
|
|
255
|
+
valueLabels: ((l = await b(e, o, n)) == null ? void 0 : l.toCanonicalString()) ?? o
|
|
256
256
|
}
|
|
257
257
|
};
|
|
258
258
|
})
|
|
259
|
-
),
|
|
260
|
-
|
|
259
|
+
), L = await Promise.all(
|
|
260
|
+
t.components.tooltipContent.selectorStates.map(async (o) => {
|
|
261
261
|
var l;
|
|
262
|
-
const s = o.selectedSource,
|
|
262
|
+
const s = o.selectedSource, y = await T(e, s, n);
|
|
263
263
|
return {
|
|
264
264
|
type: "column",
|
|
265
|
-
label: await A(
|
|
265
|
+
label: await A(e, s, n) || s,
|
|
266
266
|
value: s,
|
|
267
|
-
valueLabels: ((l = await b(
|
|
268
|
-
format: N(
|
|
267
|
+
valueLabels: ((l = await b(e, s, n)) == null ? void 0 : l.toCanonicalString()) ?? s,
|
|
268
|
+
format: N(y)
|
|
269
269
|
};
|
|
270
270
|
})
|
|
271
271
|
);
|
|
272
272
|
let w;
|
|
273
|
-
if (
|
|
274
|
-
const o =
|
|
273
|
+
if (t.components.label.selectorStates.length) {
|
|
274
|
+
const o = t.components.label.selectorStates[0].selectedSource, l = await T(e, o, n);
|
|
275
275
|
w = {
|
|
276
276
|
type: "column",
|
|
277
277
|
value: o,
|
|
278
|
-
label: await A(
|
|
279
|
-
valueLabels: ((m = await b(
|
|
278
|
+
label: await A(e, o, n),
|
|
279
|
+
valueLabels: ((m = await b(e, o, n)) == null ? void 0 : m.toCanonicalString()) ?? o,
|
|
280
280
|
format: N(l)
|
|
281
281
|
};
|
|
282
282
|
}
|
|
283
283
|
let x;
|
|
284
|
-
return
|
|
284
|
+
return t.components.highlight.selectorStates.length && (x = {
|
|
285
285
|
type: "column",
|
|
286
286
|
value: "highlight"
|
|
287
287
|
}), {
|
|
288
288
|
type: "scatterplot-umap",
|
|
289
289
|
x: i,
|
|
290
290
|
y: d,
|
|
291
|
-
keyColumn:
|
|
291
|
+
keyColumn: I,
|
|
292
292
|
facetBy: O,
|
|
293
293
|
grouping: D,
|
|
294
294
|
label: w,
|
|
295
295
|
highlight: x,
|
|
296
296
|
tooltips: {
|
|
297
297
|
show: !0,
|
|
298
|
-
content:
|
|
298
|
+
content: L
|
|
299
299
|
}
|
|
300
300
|
};
|
|
301
301
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scatterplot-umap.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/scatterplot-umap.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport lodash from 'lodash';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n DataByColumns,\n InputStateParent,\n} from '../../common';\nimport { PValue } from '../../store';\nimport { ControllerBase, PlotDataAndSettings } from '../ControllerBase';\nimport { ComponentController } from '../ComponentController';\nimport { AxisId, ColumnId } from '../../spec';\nimport { columnOrAxisIdFromString, isColumnId } from '../../spec';\nimport type { DataStore } from '../../store';\nimport {\n createHighlightColumn,\n createLinkerMap,\n createMultipliesByMap,\n getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates,\n getFormat,\n getLinkerColumnsForSource,\n OptionsInfo,\n} from '../../utils';\n\nexport interface ScatterplotUmapUIState extends InputStateParent<'scatterplot-umap'> {\n type: 'scatterplot-umap';\n components: {\n x: ComponentStateSimple;\n y: ComponentStateSimple;\n filters: ComponentStateFilter;\n highlight: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n grouping: ComponentStateSimple;\n label: ComponentStateSimple;\n tooltipContent: ComponentStateSimple;\n size: ComponentStateSimple;\n };\n}\n\nexport const InitialScatterplotUmapState: ScatterplotUmapUIState = {\n type: 'scatterplot-umap',\n components: {\n x: { type: 'simple', selectorStates: [] },\n y: { type: 'simple', selectorStates: [] },\n filters: { type: 'filter', selectorStates: [] },\n highlight: { type: 'filter', selectorStates: [] },\n tabBy: { type: 'filter', selectorStates: [] },\n facetBy: { type: 'simple', selectorStates: [] },\n grouping: { type: 'simple', selectorStates: [] },\n label: { type: 'simple', selectorStates: [] },\n tooltipContent: { type: 'simple', selectorStates: [] },\n size: { type: 'simple', selectorStates: [] },\n },\n dividedAxes: {},\n};\n\nexport class ScatterplotUmapStateController extends ControllerBase<ScatterplotUmapUIState> {\n dataInputs = ['x', 'y'];\n //allowHangingAxes = true;\n\n constructor() {\n super(\n {\n x: new ComponentController<ScatterplotUmapUIState, 'x'>({\n componentName: 'x',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n parentComponents: ['y'],\n strictlyDependsOnParents: false,\n settings: {\n isDataComponent: true,\n required: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n y: new ComponentController<ScatterplotUmapUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n parentComponents: ['x'],\n strictlyDependsOnParents: false,\n settings: {\n isDataComponent: true,\n required: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n facetBy: new ComponentController<ScatterplotUmapUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n grouping: new ComponentController<ScatterplotUmapUIState, 'grouping'>({\n componentName: 'grouping',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n tooltipContent: new ComponentController<ScatterplotUmapUIState, 'tooltipContent'>({\n componentName: 'tooltipContent',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n label: new ComponentController<ScatterplotUmapUIState, 'label'>({\n componentName: 'label',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n multipleSelectors: false,\n },\n }),\n size: new ComponentController<ScatterplotUmapUIState, 'size'>({\n componentName: 'size',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n },\n }),\n },\n {\n filters: new ComponentController<ScatterplotUmapUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n }\n }),\n tabBy: new ComponentController<ScatterplotUmapUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n highlight: new ComponentController<ScatterplotUmapUIState, 'highlight'>({\n componentName: 'highlight',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n multipleSelectors: true,\n }\n }),\n }\n );\n }\n\n getMustBeConsumedAxes(state: ScatterplotUmapUIState, optionsInfo: OptionsInfo): Set<string> {\n if (!state.components.x.selectorStates.length || !state.components.y.selectorStates.length) {\n return new Set<string>();\n }\n const sourceIdX = state.components.x.selectorStates[0].selectedSource;\n const sourceIdY = state.components.y.selectorStates[0].selectedSource;\n const dataX = optionsInfo.get(sourceIdX);\n const dataY = optionsInfo.get(sourceIdY);\n if (!dataX || !dataY || dataX.kind !== 'column' || dataY.kind !== 'column') {\n return new Set<string>();\n }\n const axesX = dataX.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString());\n const axesY = dataY.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString());\n const hangingX = axesX.filter(axisKey => !axesY.some(id => id === axisKey));\n const hangingY = axesY.filter(axisKey => !axesX.some(id => id === axisKey));\n\n if (hangingX.length && hangingY.length) {\n return new Set<string>([...hangingX, ...hangingY])\n }\n return new Set<string>();\n }\n\n async createDataByColumns(store: DataStore, state: ScatterplotUmapUIState): Promise<PlotDataAndSettings['data']> {\n const xColumnIdString = state.components.x.selectorStates[0]?.selectedSource;\n const yColumnIdString = state.components.y.selectorStates[0]?.selectedSource;\n if (!xColumnIdString || !yColumnIdString) {\n throw Error('X or Y column is not valid');\n }\n const xId = columnOrAxisIdFromString(xColumnIdString);\n const yId = columnOrAxisIdFromString(yColumnIdString);\n if (!xId || !yId) {\n throw Error('X or Y column is not valid');\n }\n const dataByColumns: DataByColumns = {\n type: 'columns',\n id: canonicalize(state.components) ?? '',\n values: {},\n };\n\n const linkerMap = await createLinkerMap(store);\n const multipliesByMap = await createMultipliesByMap(store);\n\n const filterSelectedStates = [\n ...state.components.filters.selectorStates,\n ...state.components.tabBy.selectorStates\n ]\n // filters for column/axes data requests\n const filters = getFiltersFromStates(filterSelectedStates);\n const filterColumns = filterSelectedStates.map(s => columnOrAxisIdFromString(s.selectedSource)).filter(isColumnId);\n\n const parentSources = [xId, yId].filter(isColumnId).map(item => item.toCanonicalString());\n if (parentSources.length === 0) {\n throw Error('One of X and Y should be a column');\n }\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n\n const primarySources = [xId, yId, ...filterColumns];\n const secondarySources: (ColumnId | AxisId)[] = [];\n const linkerColumns: ColumnId[] = [];\n\n for (const { selectedSource } of filterSelectedStates) {\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource,\n ));\n }\n\n const inputs = [\n state.components.grouping,\n state.components.facetBy,\n state.components.tooltipContent,\n state.components.label,\n state.components.highlight,\n state.components.size,\n ];\n for (const input of inputs) {\n for (const { selectedSource } of input.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource)!);\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n const labelsColumnId = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n if (labelsColumnId) {\n secondarySources.push(labelsColumnId);\n }\n }\n }\n\n const data = await store.pFrameProvider.getTableOuterJoin(\n [xId, yId, ...linkerColumns, ...filterColumns],\n secondarySources,\n filters,\n false\n );\n\n [...primarySources, ...secondarySources].forEach(item => {\n const key = item.toCanonicalString();\n dataByColumns.values[key] = isColumnId(item) ? data.columnsData[key] : data.axesData[key];\n });\n\n if (state.components.highlight.selectorStates.length) {\n dataByColumns.values['highlight'] = createHighlightColumn(state.components.highlight.selectorStates, data) as PValue[];\n }\n\n return {\n byColumns: dataByColumns,\n axesData: data.axesData\n };\n }\n\n async createChartSettings(store: DataStore, state: ScatterplotUmapUIState): Promise<Record<string, unknown>> {\n const xIdString = state.components.x.selectorStates[0]?.selectedSource;\n const yIdString = state.components.y.selectorStates[0]?.selectedSource;\n const xIdWithQ = xIdString ? columnOrAxisIdFromString(xIdString) : null;\n const yIdWithQ = yIdString ? columnOrAxisIdFromString(yIdString) : null;\n if (!xIdString || !yIdString || !xIdWithQ || !yIdWithQ || (!isColumnId(xIdWithQ) && !isColumnId(yIdWithQ))) {\n throw Error('Empty or invalid required data');\n }\n\n const parentSources = [xIdWithQ, yIdWithQ].filter(isColumnId).map(item => item.toCanonicalString());\n const x = {\n type: 'column',\n value: xIdString,\n label: await getColumnOrAxisLabel(store, xIdString, parentSources),\n };\n const y = {\n type: 'column',\n value: yIdString,\n label: await getColumnOrAxisLabel(store, yIdString, parentSources),\n };\n const keyColumn = {\n type: 'column',\n value: 'key',\n };\n const facetBy = await Promise.all(\n state.components.facetBy.selectorStates.map(async selectorState => ({\n type: 'column',\n value:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n }))\n );\n const allGroupingIds = lodash.uniq([\n ...state.components.grouping.selectorStates.map(s => s.selectedSource),\n ...state.components.size.selectorStates.map(s => s.selectedSource),\n ]);\n const grouping = await Promise.all(\n allGroupingIds.map(async idString => {\n return {\n columnName: {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, idString, parentSources)) || idString,\n value: idString,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, idString, parentSources))?.toCanonicalString() ??\n idString,\n }\n }\n })\n );\n\n const tooltipContent = await Promise.all(\n state.components.tooltipContent.selectorStates.map(async selectorState => {\n const source = selectorState.selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n return {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, source, parentSources)) || source,\n value: source,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: getFormat(spec)\n };\n })\n );\n\n let label;\n if (state.components.label.selectorStates.length) {\n const source = state.components.label.selectorStates[0].selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n label = {\n type: 'column',\n value: source,\n label: await getColumnOrAxisLabel(store, source, parentSources),\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: getFormat(spec)\n };\n }\n\n let highlight;\n if (state.components.highlight.selectorStates.length) {\n highlight = {\n type: 'column',\n value: 'highlight'\n }\n }\n return {\n type: 'scatterplot-umap',\n x,\n y,\n keyColumn,\n facetBy,\n grouping,\n label,\n highlight,\n tooltips: {\n show: true,\n content: tooltipContent\n }\n };\n }\n}\n"],"names":["InitialScatterplotUmapState","ScatterplotUmapStateController","ControllerBase","ComponentController","__publicField","state","optionsInfo","sourceIdX","sourceIdY","dataX","dataY","axesX","s","AxisId","axesY","hangingX","axisKey","id","hangingY","store","xColumnIdString","_a","yColumnIdString","_b","xId","columnOrAxisIdFromString","yId","dataByColumns","canonicalize","linkerMap","createLinkerMap","multipliesByMap","createMultipliesByMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","isColumnId","parentSources","item","parentAxesList","getAxesSpecsFromSources","primarySources","secondarySources","linkerColumns","selectedSource","getLinkerColumnsForSource","inputs","input","labelsColumnId","getColumnOrAxisValueLabelsId","data","key","createHighlightColumn","xIdString","yIdString","xIdWithQ","yIdWithQ","x","getColumnOrAxisLabel","y","keyColumn","facetBy","selectorState","allGroupingIds","lodash","grouping","idString","tooltipContent","source","spec","getColumnOrAxisSpec","getFormat","label","_c","highlight"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"scatterplot-umap.js","sources":["../../../../../../../node_modules/@milaboratories/pf-plots/src/controllers/controllersByChartType/scatterplot-umap.ts"],"sourcesContent":["import canonicalize from 'canonicalize';\nimport lodash from 'lodash';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n DataByColumns,\n InputStateParent,\n} from '../../common';\nimport { PValue } from '../../store';\nimport { ControllerBase, PlotDataAndSettings } from '../ControllerBase';\nimport { ComponentController } from '../ComponentController';\nimport { AxisId, ColumnId } from '../../spec';\nimport { columnOrAxisIdFromString, isColumnId } from '../../spec';\nimport type { DataStore } from '../../store';\nimport {\n createHighlightColumn,\n createLinkerMap,\n createMultipliesByMap,\n getAxesSpecsFromSources,\n getColumnOrAxisLabel, getColumnOrAxisSpec,\n getColumnOrAxisValueLabelsId,\n getFiltersFromStates,\n getFormat,\n getLinkerColumnsForSource,\n OptionsInfo,\n} from '../../utils';\n\nexport interface ScatterplotUmapUIState extends InputStateParent<'scatterplot-umap'> {\n type: 'scatterplot-umap';\n components: {\n x: ComponentStateSimple;\n y: ComponentStateSimple;\n filters: ComponentStateFilter;\n highlight: ComponentStateFilter;\n tabBy: ComponentStateFilter;\n facetBy: ComponentStateSimple;\n grouping: ComponentStateSimple;\n label: ComponentStateSimple;\n tooltipContent: ComponentStateSimple;\n size: ComponentStateSimple;\n };\n}\n\nexport const InitialScatterplotUmapState: ScatterplotUmapUIState = {\n type: 'scatterplot-umap',\n components: {\n x: { type: 'simple', selectorStates: [] },\n y: { type: 'simple', selectorStates: [] },\n filters: { type: 'filter', selectorStates: [] },\n highlight: { type: 'filter', selectorStates: [] },\n tabBy: { type: 'filter', selectorStates: [] },\n facetBy: { type: 'simple', selectorStates: [] },\n grouping: { type: 'simple', selectorStates: [] },\n label: { type: 'simple', selectorStates: [] },\n tooltipContent: { type: 'simple', selectorStates: [] },\n size: { type: 'simple', selectorStates: [] },\n },\n dividedAxes: {},\n};\n\nexport class ScatterplotUmapStateController extends ControllerBase<ScatterplotUmapUIState> {\n dataInputs = ['x', 'y'];\n dontAllowUnfilteredHighCardinality = true;\n //allowHangingAxes = true;\n\n constructor() {\n super(\n {\n x: new ComponentController<ScatterplotUmapUIState, 'x'>({\n componentName: 'x',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n parentComponents: ['y'],\n strictlyDependsOnParents: false,\n settings: {\n isDataComponent: true,\n required: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n y: new ComponentController<ScatterplotUmapUIState, 'y'>({\n componentName: 'y',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n parentComponents: ['x'],\n strictlyDependsOnParents: false,\n settings: {\n isDataComponent: true,\n required: true,\n axesAllowed: true,\n columnsAllowed: true,\n },\n }),\n facetBy: new ComponentController<ScatterplotUmapUIState, 'facetBy'>({\n componentName: 'facetBy',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n },\n }),\n grouping: new ComponentController<ScatterplotUmapUIState, 'grouping'>({\n componentName: 'grouping',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n tooltipContent: new ComponentController<ScatterplotUmapUIState, 'tooltipContent'>({\n componentName: 'tooltipContent',\n allowedTypes: ['String', 'Int', 'Long', 'Float', 'Double'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n columnsAllowed: true,\n axesAllowed: true,\n multipleSelectors: true,\n },\n }),\n label: new ComponentController<ScatterplotUmapUIState, 'label'>({\n componentName: 'label',\n allowedTypes: ['String', 'Int', 'Long'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n multipleSelectors: false,\n },\n }),\n size: new ComponentController<ScatterplotUmapUIState, 'size'>({\n componentName: 'size',\n allowedTypes: ['Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n },\n }),\n },\n {\n filters: new ComponentController<ScatterplotUmapUIState, 'filters'>({\n componentName: 'filters',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n multipleSelectors: true,\n }\n }),\n tabBy: new ComponentController<ScatterplotUmapUIState, 'tabBy'>({\n componentName: 'tabBy',\n allowedTypes: ['String', 'Int'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n dimensionConsumer: true,\n },\n }),\n highlight: new ComponentController<ScatterplotUmapUIState, 'highlight'>({\n componentName: 'highlight',\n allowedTypes: ['String', 'Int', 'Long', 'Double', 'Float'],\n strictlyDependsOnParents: true,\n parentComponents: ['x', 'y'],\n dependsOn: ['x', 'y'],\n settings: {\n axesAllowed: true,\n columnsAllowed: true,\n multipleSelectors: true,\n }\n }),\n }\n );\n }\n\n getMustBeConsumedAxes(state: ScatterplotUmapUIState, optionsInfo: OptionsInfo): Set<string> {\n if (!state.components.x.selectorStates.length || !state.components.y.selectorStates.length) {\n return new Set<string>();\n }\n const sourceIdX = state.components.x.selectorStates[0].selectedSource;\n const sourceIdY = state.components.y.selectorStates[0].selectedSource;\n const dataX = optionsInfo.get(sourceIdX);\n const dataY = optionsInfo.get(sourceIdY);\n if (!dataX || !dataY || dataX.kind !== 'column' || dataY.kind !== 'column') {\n return new Set<string>();\n }\n const axesX = dataX.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString());\n const axesY = dataY.spec.axesSpec.map((s) => AxisId.fromAxisSpec(s).toCanonicalString());\n const hangingX = axesX.filter(axisKey => !axesY.some(id => id === axisKey));\n const hangingY = axesY.filter(axisKey => !axesX.some(id => id === axisKey));\n\n if (hangingX.length && hangingY.length) {\n return new Set<string>([...hangingX, ...hangingY])\n }\n return new Set<string>();\n }\n\n async createDataByColumns(store: DataStore, state: ScatterplotUmapUIState): Promise<PlotDataAndSettings['data']> {\n const xColumnIdString = state.components.x.selectorStates[0]?.selectedSource;\n const yColumnIdString = state.components.y.selectorStates[0]?.selectedSource;\n if (!xColumnIdString || !yColumnIdString) {\n throw Error('X or Y column is not valid');\n }\n const xId = columnOrAxisIdFromString(xColumnIdString);\n const yId = columnOrAxisIdFromString(yColumnIdString);\n if (!xId || !yId) {\n throw Error('X or Y column is not valid');\n }\n const dataByColumns: DataByColumns = {\n type: 'columns',\n id: canonicalize(state.components) ?? '',\n values: {},\n };\n\n const linkerMap = await createLinkerMap(store);\n const multipliesByMap = await createMultipliesByMap(store);\n\n const filterSelectedStates = [\n ...state.components.filters.selectorStates,\n ...state.components.tabBy.selectorStates\n ]\n // filters for column/axes data requests\n const filters = getFiltersFromStates(filterSelectedStates);\n const filterColumns = filterSelectedStates.map(s => columnOrAxisIdFromString(s.selectedSource)).filter(isColumnId);\n\n const parentSources = [xId, yId].filter(isColumnId).map(item => item.toCanonicalString());\n if (parentSources.length === 0) {\n throw Error('One of X and Y should be a column');\n }\n const parentAxesList = await getAxesSpecsFromSources(store, parentSources);\n\n const primarySources = [xId, yId, ...filterColumns];\n const secondarySources: (ColumnId | AxisId)[] = [];\n const linkerColumns: ColumnId[] = [];\n\n for (const { selectedSource } of filterSelectedStates) {\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource,\n ));\n }\n\n const inputs = [\n state.components.grouping,\n state.components.facetBy,\n state.components.tooltipContent,\n state.components.label,\n state.components.highlight,\n state.components.size,\n ];\n for (const input of inputs) {\n for (const { selectedSource } of input.selectorStates) {\n secondarySources.push(columnOrAxisIdFromString(selectedSource)!);\n linkerColumns.push(...await getLinkerColumnsForSource(\n store,\n linkerMap,\n multipliesByMap,\n parentAxesList,\n selectedSource\n ));\n const labelsColumnId = await getColumnOrAxisValueLabelsId(store, selectedSource, parentSources);\n if (labelsColumnId) {\n secondarySources.push(labelsColumnId);\n }\n }\n }\n\n const data = await store.pFrameProvider.getTableOuterJoin(\n [xId, yId, ...linkerColumns, ...filterColumns],\n secondarySources,\n filters,\n false\n );\n\n [...primarySources, ...secondarySources].forEach(item => {\n const key = item.toCanonicalString();\n dataByColumns.values[key] = isColumnId(item) ? data.columnsData[key] : data.axesData[key];\n });\n\n if (state.components.highlight.selectorStates.length) {\n dataByColumns.values['highlight'] = createHighlightColumn(state.components.highlight.selectorStates, data) as PValue[];\n }\n\n return {\n byColumns: dataByColumns,\n axesData: data.axesData\n };\n }\n\n async createChartSettings(store: DataStore, state: ScatterplotUmapUIState): Promise<Record<string, unknown>> {\n const xIdString = state.components.x.selectorStates[0]?.selectedSource;\n const yIdString = state.components.y.selectorStates[0]?.selectedSource;\n const xIdWithQ = xIdString ? columnOrAxisIdFromString(xIdString) : null;\n const yIdWithQ = yIdString ? columnOrAxisIdFromString(yIdString) : null;\n if (!xIdString || !yIdString || !xIdWithQ || !yIdWithQ || (!isColumnId(xIdWithQ) && !isColumnId(yIdWithQ))) {\n throw Error('Empty or invalid required data');\n }\n\n const parentSources = [xIdWithQ, yIdWithQ].filter(isColumnId).map(item => item.toCanonicalString());\n const x = {\n type: 'column',\n value: xIdString,\n label: await getColumnOrAxisLabel(store, xIdString, parentSources),\n };\n const y = {\n type: 'column',\n value: yIdString,\n label: await getColumnOrAxisLabel(store, yIdString, parentSources),\n };\n const keyColumn = {\n type: 'column',\n value: 'key',\n };\n const facetBy = await Promise.all(\n state.components.facetBy.selectorStates.map(async selectorState => ({\n type: 'column',\n value:\n (await getColumnOrAxisValueLabelsId(store, selectorState.selectedSource, parentSources))?.toCanonicalString() ??\n selectorState.selectedSource,\n }))\n );\n const allGroupingIds = lodash.uniq([\n ...state.components.grouping.selectorStates.map(s => s.selectedSource),\n ...state.components.size.selectorStates.map(s => s.selectedSource),\n ]);\n const grouping = await Promise.all(\n allGroupingIds.map(async idString => {\n return {\n columnName: {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, idString, parentSources)) || idString,\n value: idString,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, idString, parentSources))?.toCanonicalString() ??\n idString,\n }\n }\n })\n );\n\n const tooltipContent = await Promise.all(\n state.components.tooltipContent.selectorStates.map(async selectorState => {\n const source = selectorState.selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n return {\n type: 'column',\n label: (await getColumnOrAxisLabel(store, source, parentSources)) || source,\n value: source,\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: getFormat(spec)\n };\n })\n );\n\n let label;\n if (state.components.label.selectorStates.length) {\n const source = state.components.label.selectorStates[0].selectedSource;\n const spec = await getColumnOrAxisSpec(store, source, parentSources);\n label = {\n type: 'column',\n value: source,\n label: await getColumnOrAxisLabel(store, source, parentSources),\n valueLabels:\n (await getColumnOrAxisValueLabelsId(store, source, parentSources))?.toCanonicalString() ??\n source,\n format: getFormat(spec)\n };\n }\n\n let highlight;\n if (state.components.highlight.selectorStates.length) {\n highlight = {\n type: 'column',\n value: 'highlight'\n }\n }\n return {\n type: 'scatterplot-umap',\n x,\n y,\n keyColumn,\n facetBy,\n grouping,\n label,\n highlight,\n tooltips: {\n show: true,\n content: tooltipContent\n }\n };\n }\n}\n"],"names":["InitialScatterplotUmapState","ScatterplotUmapStateController","ControllerBase","ComponentController","__publicField","state","optionsInfo","sourceIdX","sourceIdY","dataX","dataY","axesX","s","AxisId","axesY","hangingX","axisKey","id","hangingY","store","xColumnIdString","_a","yColumnIdString","_b","xId","columnOrAxisIdFromString","yId","dataByColumns","canonicalize","linkerMap","createLinkerMap","multipliesByMap","createMultipliesByMap","filterSelectedStates","filters","getFiltersFromStates","filterColumns","isColumnId","parentSources","item","parentAxesList","getAxesSpecsFromSources","primarySources","secondarySources","linkerColumns","selectedSource","getLinkerColumnsForSource","inputs","input","labelsColumnId","getColumnOrAxisValueLabelsId","data","key","createHighlightColumn","xIdString","yIdString","xIdWithQ","yIdWithQ","x","getColumnOrAxisLabel","y","keyColumn","facetBy","selectorState","allGroupingIds","lodash","grouping","idString","tooltipContent","source","spec","getColumnOrAxisSpec","getFormat","label","_c","highlight"],"mappings":"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","x_google_ignoreList":[0]}
|