@milaboratories/miplots4 1.0.147 → 1.0.149
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/common/Legend.js +3 -3
- package/dist/common/Legend.js.map +1 -1
- package/dist/discrete/DiscreteSettingsImpl.d.ts +1 -0
- package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -1
- package/dist/discrete/DiscreteSettingsImpl.js +28 -27
- package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
- package/dist/discrete/layers/lines.d.ts.map +1 -1
- package/dist/discrete/layers/lines.js +32 -41
- package/dist/discrete/layers/lines.js.map +1 -1
- package/dist/heatmap/ChartRenderer.js +1 -1
- package/dist/heatmap/ChartRenderer.js.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.d.ts +6 -1
- package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.js +9 -3
- package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
- package/dist/heatmap/components/Annotations/index.js +58 -58
- package/dist/heatmap/components/Annotations/index.js.map +1 -1
- package/dist/heatmap/getCells.d.ts +1 -1
- package/dist/heatmap/getCells.d.ts.map +1 -1
- package/dist/heatmap/getCells.js +204 -110
- package/dist/heatmap/getCells.js.map +1 -1
- package/dist/heatmap/index.d.ts.map +1 -1
- package/dist/heatmap/index.js +88 -85
- package/dist/heatmap/index.js.map +1 -1
- package/dist/node_modules/react/index.js +1 -1
- package/dist/node_modules/react-dom/index.js +1 -1
- package/dist/types/discrete.d.ts +11 -0
- package/dist/types/discrete.d.ts.map +1 -1
- package/dist/types/discrete.js +3 -2
- package/dist/types/discrete.js.map +1 -1
- package/dist/types/heatmap.d.ts +24 -0
- package/dist/types/heatmap.d.ts.map +1 -1
- package/dist/types/heatmap.js +7 -2
- package/dist/types/heatmap.js.map +1 -1
- package/package.json +1 -1
package/dist/common/Legend.js
CHANGED
|
@@ -77,7 +77,7 @@ function b({ legendData: e }) {
|
|
|
77
77
|
}) }, t.id)) }),
|
|
78
78
|
e.items.map((t) => {
|
|
79
79
|
if (t.type === "continuous")
|
|
80
|
-
return /* @__PURE__ */ n.jsxs("g", { transform: `translate(${t.left},${t.top})`, children: [
|
|
80
|
+
return /* @__PURE__ */ n.jsxs("g", { transform: `translate(${t.left},${t.top})`, fontSize: "14px", children: [
|
|
81
81
|
/* @__PURE__ */ n.jsx("text", { fontWeight: 500, fontSize: "14px", y: d, children: t.title }),
|
|
82
82
|
/* @__PURE__ */ n.jsx(
|
|
83
83
|
"rect",
|
|
@@ -100,8 +100,8 @@ function b({ legendData: e }) {
|
|
|
100
100
|
!1
|
|
101
101
|
] }, t.id);
|
|
102
102
|
if (t.type === "discreteColor")
|
|
103
|
-
return /* @__PURE__ */ n.jsxs("g", { transform: `translate(${t.left},${t.top})`, children: [
|
|
104
|
-
/* @__PURE__ */ n.jsx("text", { fontWeight: 500,
|
|
103
|
+
return /* @__PURE__ */ n.jsxs("g", { transform: `translate(${t.left},${t.top})`, fontSize: "14px", children: [
|
|
104
|
+
/* @__PURE__ */ n.jsx("text", { fontWeight: 500, y: d, children: t.title }),
|
|
105
105
|
t.values.map((r, s) => /* @__PURE__ */ n.jsxs("g", { transform: `translate(0, ${s * (o + 4)})`, children: [
|
|
106
106
|
/* @__PURE__ */ n.jsx(
|
|
107
107
|
"rect",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.js","sources":["../../src/common/Legend.tsx"],"sourcesContent":["import { color } from 'd3-color';\nimport { BLACK } from '../constants';\nimport type { AesItem, LineShape } from '../types';\nimport { getPointShape } from '../utils/getPointShape';\nimport type { DotAesItem, LegendData, LegendItemDiscreteMultiAes, LegendItemGradient } from './types';\n\nconst LEGEND_ITEM_SIZE = 12;\nconst TITLE_POSITION = -12;\nconst COLOR_ITEM_WIDTH_C = 14;\n\ninterface LegendProps {\n legendData: LegendData;\n}\n\nfunction getLineShapePath(lineShape:LineShape|null = null):string {\n if (lineShape === 'dashed') {\n return 'M1 11.25H6V12.75H1V11.25ZM9.5 11.25H14.5V12.75H9.5V11.25ZM18 11.25H23V12.75H18V11.25Z';\n }\n if (lineShape === 'dotted') {\n return 'M2.75 11.25H1.25V12.75H2.75V11.25Z M11.25 11.25H12.75V12.75H11.25V11.25Z M22.75 11.25H21.25V12.75H22.75V11.25Z M7.75 11.25H6.25V12.75H7.75V11.25Z M16.25 11.25H17.75V12.75H16.25V11.25Z';\n }\n if (lineShape === 'longdash') {\n return 'M1 11.25H10V12.75H1V11.25ZM14 11.25H23V12.75H14V11.25Z';\n }\n if (lineShape === 'dotdash') {\n return 'M1 11.25H2.5V12.75H1V11.25ZM17 12.75H7V11.25H17V12.75ZM21.5 12.75V11.25H23V12.75H21.5Z';\n }\n if (lineShape === 'twodash') {\n return 'M1 11.25H4V12.75H1V11.25ZM17.0261 12.75H7V11.25H17.0261V12.75ZM20 12.75V11.25H23V12.75H20Z';\n }\n return 'M1 11.25H23V12.75H1V11.25Z';\n}\n\nconst POINT_SIZE = 3;\nconst LINE_WIDTH = 24;\n\nfunction getAesItemStroke(fillColor?:string, lineColor?:string) {\n if (fillColor === 'transparent') {\n return BLACK;\n }\n // black border for white square if fill color is white\n const fill = color(fillColor ?? lineColor ?? '');\n if (fill && fill.formatHex() === '#ffffff') {\n return BLACK;\n }\n return fillColor ?? lineColor;\n}\nfunction AesLegendItem({ aes, label, usedAes }: { aes: AesItem; label: string, usedAes: LegendItemDiscreteMultiAes['usedAes'] }) {\n const needRenderLine = usedAes.lineShape;\n const needRenderDot = usedAes.dotShape;\n const needRenderRect = usedAes.fillColor ||\n (usedAes.lineColor && !usedAes.lineShape) ||\n (usedAes.dotFill && !usedAes.dotShape);\n\n const shape = needRenderDot ? getPointShape(\n aes.dotShape ?? '21',\n POINT_SIZE,\n needRenderRect ? BLACK : aes.dotFill ?? BLACK\n ) : null;\n\n const lineOffset = (needRenderDot && needRenderLine ? 2 * LEGEND_ITEM_SIZE : 0 ) - 6;\n const textOffset = needRenderLine ? lineOffset + LINE_WIDTH + 8 : LEGEND_ITEM_SIZE + 8;\n return (\n <g>\n {needRenderRect && (\n <rect\n width={LEGEND_ITEM_SIZE}\n height={LEGEND_ITEM_SIZE}\n stroke={getAesItemStroke(aes.fillColor, aes.lineColor)}\n fill={aes.fillColor ?? aes.lineColor}\n rx=\"1\"\n ry=\"1\"\n />\n )}\n {needRenderDot && <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>\n {shape}\n </g>}\n {needRenderLine && (\n <path\n transform={`translate(${lineOffset},-5)`}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d={getLineShapePath(aes.lineShape)}\n fill={aes.lineColor}\n />\n )}\n <text\n x={textOffset}\n y={LEGEND_ITEM_SIZE / 2}\n dominantBaseline=\"central\"\n fontWeight={500}\n >\n {label}\n </text>\n </g>\n );\n}\n\nfunction DotAesItemElement({aes, label}: {aes: DotAesItem; label: string}) {\n const shape = getPointShape(aes.shape, aes.size, aes.color);\n\n return (\n <g>\n <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>{shape}</g>\n <text x={LEGEND_ITEM_SIZE + 8} y={LEGEND_ITEM_SIZE / 2} dominantBaseline=\"central\" fontWeight={500}>\n {label}\n </text>\n </g>\n );\n}\n\nexport function Legend({legendData}: LegendProps) {\n const debug = false;\n const continuousItems= legendData.items.filter((item) => item.type === 'continuous') as LegendItemGradient[];\n return (\n <g>\n <defs>\n {continuousItems.map(item => (\n <linearGradient key={item.id} id={item.id} gradientTransform=\"rotate(90)\">\n {item.scale.domain().reverse().map(value => {\n const domain = item.scale.domain();\n const range = domain[domain.length - 1] - domain[0];\n const percent = range > 0 ? 100 - (value - domain[0]) / range * 100 : 0;\n return (\n <stop\n key={value}\n offset={`${percent}%`}\n stopColor={item.scale(value)}\n />\n );\n })}\n </linearGradient>\n ))}\n </defs>\n {legendData.items.map(item => {\n if (item.type === 'continuous') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n <rect\n x=\"0\"\n y=\"0\"\n width={COLOR_ITEM_WIDTH_C}\n height={item.height}\n stroke={BLACK}\n fill={`url(#${item.id})`}\n />\n <g transform={`translate(${COLOR_ITEM_WIDTH_C},0)`}>\n {item.values.map(value => {\n const y = item.tickPositionScale(value) ?? 0;\n return (\n <g key={value} transform={`translate(0,${y})`}>\n <line x1=\"0\" x2={-4} stroke={BLACK} />\n <text x={8} y={4}>{value}</text>\n </g>\n );\n })}\n </g>\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discreteColor') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n {item.values.map((value, idx) => {\n return <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <rect\n x=\"0\"\n y=\"0\"\n width={LEGEND_ITEM_SIZE}\n height={LEGEND_ITEM_SIZE}\n fill={item.scale(value)}\n rx=\"1\"\n ry=\"1\"\n stroke={BLACK}\n />\n <text x={LEGEND_ITEM_SIZE + 8} y={10}>{item.labels[value] ?? value}</text>\n </g>;\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discreteMulti') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={600} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <AesLegendItem\n aes={item.scale(value)}\n label={item.labels[value]}\n usedAes={item.usedAes}\n />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'dots') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <DotAesItemElement aes={item.scale(value)} label={item.labels[value]} />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'size') {\n const size = item.height / item.values.length;\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n const r = item.scale(value);\n return (\n <g key={value} transform={`translate(0, ${idx * size})`}>\n <circle r={r} cx={size / 2} cy={size / 2} fill={BLACK}/>\n <text x={size + 4} y={size / 2} alignmentBaseline=\"central\">{item.labels[value]}</text>\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n })}\n </g>\n );\n}\n"],"names":["LEGEND_ITEM_SIZE","TITLE_POSITION","COLOR_ITEM_WIDTH_C","getLineShapePath","lineShape","POINT_SIZE","LINE_WIDTH","getAesItemStroke","fillColor","lineColor","BLACK","fill","color","AesLegendItem","aes","label","usedAes","needRenderLine","needRenderDot","needRenderRect","shape","getPointShape","lineOffset","textOffset","jsx","DotAesItemElement","Legend","legendData","continuousItems","item","value","domain","range","percent","jsxs","y","idx","size","r"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Legend.js","sources":["../../src/common/Legend.tsx"],"sourcesContent":["import { color } from 'd3-color';\nimport { BLACK } from '../constants';\nimport type { AesItem, LineShape } from '../types';\nimport { getPointShape } from '../utils/getPointShape';\nimport type { DotAesItem, LegendData, LegendItemDiscreteMultiAes, LegendItemGradient } from './types';\n\nconst LEGEND_ITEM_SIZE = 12;\nconst TITLE_POSITION = -12;\nconst COLOR_ITEM_WIDTH_C = 14;\n\ninterface LegendProps {\n legendData: LegendData;\n}\n\nfunction getLineShapePath(lineShape:LineShape|null = null):string {\n if (lineShape === 'dashed') {\n return 'M1 11.25H6V12.75H1V11.25ZM9.5 11.25H14.5V12.75H9.5V11.25ZM18 11.25H23V12.75H18V11.25Z';\n }\n if (lineShape === 'dotted') {\n return 'M2.75 11.25H1.25V12.75H2.75V11.25Z M11.25 11.25H12.75V12.75H11.25V11.25Z M22.75 11.25H21.25V12.75H22.75V11.25Z M7.75 11.25H6.25V12.75H7.75V11.25Z M16.25 11.25H17.75V12.75H16.25V11.25Z';\n }\n if (lineShape === 'longdash') {\n return 'M1 11.25H10V12.75H1V11.25ZM14 11.25H23V12.75H14V11.25Z';\n }\n if (lineShape === 'dotdash') {\n return 'M1 11.25H2.5V12.75H1V11.25ZM17 12.75H7V11.25H17V12.75ZM21.5 12.75V11.25H23V12.75H21.5Z';\n }\n if (lineShape === 'twodash') {\n return 'M1 11.25H4V12.75H1V11.25ZM17.0261 12.75H7V11.25H17.0261V12.75ZM20 12.75V11.25H23V12.75H20Z';\n }\n return 'M1 11.25H23V12.75H1V11.25Z';\n}\n\nconst POINT_SIZE = 3;\nconst LINE_WIDTH = 24;\n\nfunction getAesItemStroke(fillColor?:string, lineColor?:string) {\n if (fillColor === 'transparent') {\n return BLACK;\n }\n // black border for white square if fill color is white\n const fill = color(fillColor ?? lineColor ?? '');\n if (fill && fill.formatHex() === '#ffffff') {\n return BLACK;\n }\n return fillColor ?? lineColor;\n}\nfunction AesLegendItem({ aes, label, usedAes }: { aes: AesItem; label: string, usedAes: LegendItemDiscreteMultiAes['usedAes'] }) {\n const needRenderLine = usedAes.lineShape;\n const needRenderDot = usedAes.dotShape;\n const needRenderRect = usedAes.fillColor ||\n (usedAes.lineColor && !usedAes.lineShape) ||\n (usedAes.dotFill && !usedAes.dotShape);\n\n const shape = needRenderDot ? getPointShape(\n aes.dotShape ?? '21',\n POINT_SIZE,\n needRenderRect ? BLACK : aes.dotFill ?? BLACK\n ) : null;\n\n const lineOffset = (needRenderDot && needRenderLine ? 2 * LEGEND_ITEM_SIZE : 0 ) - 6;\n const textOffset = needRenderLine ? lineOffset + LINE_WIDTH + 8 : LEGEND_ITEM_SIZE + 8;\n return (\n <g>\n {needRenderRect && (\n <rect\n width={LEGEND_ITEM_SIZE}\n height={LEGEND_ITEM_SIZE}\n stroke={getAesItemStroke(aes.fillColor, aes.lineColor)}\n fill={aes.fillColor ?? aes.lineColor}\n rx=\"1\"\n ry=\"1\"\n />\n )}\n {needRenderDot && <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>\n {shape}\n </g>}\n {needRenderLine && (\n <path\n transform={`translate(${lineOffset},-5)`}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d={getLineShapePath(aes.lineShape)}\n fill={aes.lineColor}\n />\n )}\n <text\n x={textOffset}\n y={LEGEND_ITEM_SIZE / 2}\n dominantBaseline=\"central\"\n fontWeight={500}\n >\n {label}\n </text>\n </g>\n );\n}\n\nfunction DotAesItemElement({aes, label}: {aes: DotAesItem; label: string}) {\n const shape = getPointShape(aes.shape, aes.size, aes.color);\n\n return (\n <g>\n <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>{shape}</g>\n <text x={LEGEND_ITEM_SIZE + 8} y={LEGEND_ITEM_SIZE / 2} dominantBaseline=\"central\" fontWeight={500}>\n {label}\n </text>\n </g>\n );\n}\n\nexport function Legend({legendData}: LegendProps) {\n const debug = false;\n const continuousItems= legendData.items.filter((item) => item.type === 'continuous') as LegendItemGradient[];\n return (\n <g>\n <defs>\n {continuousItems.map(item => (\n <linearGradient key={item.id} id={item.id} gradientTransform=\"rotate(90)\">\n {item.scale.domain().reverse().map(value => {\n const domain = item.scale.domain();\n const range = domain[domain.length - 1] - domain[0];\n const percent = range > 0 ? 100 - (value - domain[0]) / range * 100 : 0;\n return (\n <stop\n key={value}\n offset={`${percent}%`}\n stopColor={item.scale(value)}\n />\n );\n })}\n </linearGradient>\n ))}\n </defs>\n {legendData.items.map(item => {\n if (item.type === 'continuous') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\">\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n <rect\n x=\"0\"\n y=\"0\"\n width={COLOR_ITEM_WIDTH_C}\n height={item.height}\n stroke={BLACK}\n fill={`url(#${item.id})`}\n />\n <g transform={`translate(${COLOR_ITEM_WIDTH_C},0)`}>\n {item.values.map(value => {\n const y = item.tickPositionScale(value) ?? 0;\n return (\n <g key={value} transform={`translate(0,${y})`}>\n <line x1=\"0\" x2={-4} stroke={BLACK} />\n <text x={8} y={4}>{value}</text>\n </g>\n );\n })}\n </g>\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discreteColor') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\">\n <text fontWeight={500} y={TITLE_POSITION}>{item.title}</text>\n {item.values.map((value, idx) => {\n return <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <rect\n x=\"0\"\n y=\"0\"\n width={LEGEND_ITEM_SIZE}\n height={LEGEND_ITEM_SIZE}\n fill={item.scale(value)}\n rx=\"1\"\n ry=\"1\"\n stroke={BLACK}\n />\n <text x={LEGEND_ITEM_SIZE + 8} y={10}>{item.labels[value] ?? value}</text>\n </g>;\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discreteMulti') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={600} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <AesLegendItem\n aes={item.scale(value)}\n label={item.labels[value]}\n usedAes={item.usedAes}\n />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'dots') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <DotAesItemElement aes={item.scale(value)} label={item.labels[value]} />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'size') {\n const size = item.height / item.values.length;\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n const r = item.scale(value);\n return (\n <g key={value} transform={`translate(0, ${idx * size})`}>\n <circle r={r} cx={size / 2} cy={size / 2} fill={BLACK}/>\n <text x={size + 4} y={size / 2} alignmentBaseline=\"central\">{item.labels[value]}</text>\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n })}\n </g>\n );\n}\n"],"names":["LEGEND_ITEM_SIZE","TITLE_POSITION","COLOR_ITEM_WIDTH_C","getLineShapePath","lineShape","POINT_SIZE","LINE_WIDTH","getAesItemStroke","fillColor","lineColor","BLACK","fill","color","AesLegendItem","aes","label","usedAes","needRenderLine","needRenderDot","needRenderRect","shape","getPointShape","lineOffset","textOffset","jsx","DotAesItemElement","Legend","legendData","continuousItems","item","value","domain","range","percent","jsxs","y","idx","size","r"],"mappings":"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"}
|
|
@@ -64,6 +64,7 @@ export declare class DotLayer extends BaseDiscreteLayer {
|
|
|
64
64
|
export declare class LineLayer extends BaseDiscreteLayer {
|
|
65
65
|
readonly type = "line";
|
|
66
66
|
readonly pointsValues: SummaryGroupValue;
|
|
67
|
+
readonly emptyGroupValue: number;
|
|
67
68
|
readonly aes: {
|
|
68
69
|
showOutliers: boolean;
|
|
69
70
|
lineWidth: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscreteSettingsImpl.d.ts","sourceRoot":"","sources":["../../src/discrete/DiscreteSettingsImpl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DiscreteSettingsImpl.d.ts","sourceRoot":"","sources":["../../src/discrete/DiscreteSettingsImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,12 @@ import "../types/dendro.js";
|
|
|
10
10
|
import "../types/histogram.js";
|
|
11
11
|
import "../types/bubble.js";
|
|
12
12
|
import { PADDINGS as v, MIN_MARGIN as B } from "./constants.js";
|
|
13
|
-
import
|
|
14
|
-
import { exhaustive as
|
|
13
|
+
import G from "../node_modules/lodash/lodash.js";
|
|
14
|
+
import { exhaustive as O } from "../utils/index.js";
|
|
15
15
|
const u = "#3e9838", h = "21", p = 3;
|
|
16
16
|
class r {
|
|
17
17
|
}
|
|
18
|
-
class
|
|
18
|
+
class D extends r {
|
|
19
19
|
constructor(t) {
|
|
20
20
|
super();
|
|
21
21
|
e(this, "type", "box");
|
|
@@ -49,7 +49,7 @@ class T extends r {
|
|
|
49
49
|
return t.type === "box" && Object.keys(this.stat).every((a) => this.stat[a] === t.stat[a]);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
class
|
|
52
|
+
class T extends r {
|
|
53
53
|
constructor(t) {
|
|
54
54
|
super();
|
|
55
55
|
e(this, "type", "violin");
|
|
@@ -81,7 +81,7 @@ class A extends r {
|
|
|
81
81
|
return t.type === "violin" && (this.stat.bandwidth !== t.stat.bandwidth || this.stat.trim !== t.stat.trim || this.stat.stepsCount !== t.stat.stepsCount);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
class
|
|
84
|
+
class A extends r {
|
|
85
85
|
constructor(t) {
|
|
86
86
|
super();
|
|
87
87
|
e(this, "type", "dot");
|
|
@@ -108,6 +108,7 @@ class L extends r {
|
|
|
108
108
|
super();
|
|
109
109
|
e(this, "type", "line");
|
|
110
110
|
e(this, "pointsValues");
|
|
111
|
+
e(this, "emptyGroupValue");
|
|
111
112
|
e(this, "aes", {
|
|
112
113
|
showOutliers: !0,
|
|
113
114
|
lineWidth: 1,
|
|
@@ -118,16 +119,16 @@ class L extends r {
|
|
|
118
119
|
dotSize: p,
|
|
119
120
|
opacity: 1
|
|
120
121
|
});
|
|
121
|
-
this.pointsValues = t.pointsValues, this.aes = {
|
|
122
|
+
this.pointsValues = t.pointsValues, this.emptyGroupValue = t.emptyGroupValue ?? 0, this.aes = {
|
|
122
123
|
...this.aes,
|
|
123
124
|
...t.aes
|
|
124
125
|
};
|
|
125
126
|
}
|
|
126
127
|
isEqualForCalculation(t) {
|
|
127
|
-
return t.type === "line" && this.pointsValues === t.pointsValues;
|
|
128
|
+
return t.type === "line" && this.pointsValues === t.pointsValues && this.emptyGroupValue === t.emptyGroupValue;
|
|
128
129
|
}
|
|
129
130
|
}
|
|
130
|
-
class
|
|
131
|
+
class V extends r {
|
|
131
132
|
constructor(t) {
|
|
132
133
|
super();
|
|
133
134
|
e(this, "type", "errorbar");
|
|
@@ -152,7 +153,7 @@ class q extends r {
|
|
|
152
153
|
return t.type === "errorbar" && this.pointsValues === t.pointsValues && this.interval === t.interval;
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
|
-
class
|
|
156
|
+
class q extends r {
|
|
156
157
|
constructor(t) {
|
|
157
158
|
super();
|
|
158
159
|
e(this, "type", "bar");
|
|
@@ -173,7 +174,7 @@ class W extends r {
|
|
|
173
174
|
return t.type === "bar" && this.height === t.height;
|
|
174
175
|
}
|
|
175
176
|
}
|
|
176
|
-
class
|
|
177
|
+
class W extends r {
|
|
177
178
|
constructor(t) {
|
|
178
179
|
super();
|
|
179
180
|
e(this, "type", "stackedBar");
|
|
@@ -194,7 +195,7 @@ class P extends r {
|
|
|
194
195
|
return t.type === "stackedBar" && t.normalize === this.normalize;
|
|
195
196
|
}
|
|
196
197
|
}
|
|
197
|
-
class
|
|
198
|
+
class P extends r {
|
|
198
199
|
constructor(t) {
|
|
199
200
|
super();
|
|
200
201
|
e(this, "type", "stackedArea");
|
|
@@ -343,7 +344,7 @@ class et {
|
|
|
343
344
|
e(this, "chartSettings");
|
|
344
345
|
e(this, "layers");
|
|
345
346
|
var t, a, l, c, d, m, f, w, C, y;
|
|
346
|
-
F.parse(i), this.id =
|
|
347
|
+
F.parse(i), this.id = G.uniqueId("settings"), this.y = i.y, this.keyColumn = i.keyColumn ?? null, this.primaryGrouping = i.primaryGrouping ?? null, this.secondaryGrouping = i.secondaryGrouping ?? null, this.facetSettings = {
|
|
347
348
|
sharedX: !0,
|
|
348
349
|
sharedY: !0,
|
|
349
350
|
titlePosition: "left",
|
|
@@ -400,21 +401,21 @@ class et {
|
|
|
400
401
|
}
|
|
401
402
|
}, this.layers = i.layers.map((s) => {
|
|
402
403
|
if (s.type === "box")
|
|
403
|
-
return new
|
|
404
|
+
return new D(s);
|
|
404
405
|
if (s.type === "violin")
|
|
405
|
-
return new
|
|
406
|
+
return new T(s);
|
|
406
407
|
if (s.type === "dot")
|
|
407
|
-
return new
|
|
408
|
+
return new A(s);
|
|
408
409
|
if (s.type === "line")
|
|
409
410
|
return new L(s);
|
|
410
411
|
if (s.type === "errorbar")
|
|
411
|
-
return new
|
|
412
|
+
return new V(s);
|
|
412
413
|
if (s.type === "bar")
|
|
413
|
-
return new
|
|
414
|
+
return new q(s);
|
|
414
415
|
if (s.type === "stackedBar")
|
|
415
|
-
return new
|
|
416
|
+
return new W(s);
|
|
416
417
|
if (s.type === "stackedArea")
|
|
417
|
-
return new
|
|
418
|
+
return new P(s);
|
|
418
419
|
if (s.type === "stat")
|
|
419
420
|
return new H(s);
|
|
420
421
|
if (s.type === "binnedDots")
|
|
@@ -425,24 +426,24 @@ class et {
|
|
|
425
426
|
return new U(s);
|
|
426
427
|
if (s.type === "logo")
|
|
427
428
|
return new _(s);
|
|
428
|
-
|
|
429
|
+
O(s, "Unknown layer type");
|
|
429
430
|
}).filter(Boolean);
|
|
430
431
|
}
|
|
431
432
|
}
|
|
432
433
|
export {
|
|
433
|
-
|
|
434
|
+
q as BarLayer,
|
|
434
435
|
I as BinnedDotsLayer,
|
|
435
|
-
|
|
436
|
+
D as BoxLayer,
|
|
436
437
|
et as DiscreteSettingsImpl,
|
|
437
|
-
|
|
438
|
-
|
|
438
|
+
A as DotLayer,
|
|
439
|
+
V as ErrorBarLayer,
|
|
439
440
|
L as LineLayer,
|
|
440
441
|
_ as LogoPlotLayer,
|
|
441
442
|
M as PairedPointsLayer,
|
|
442
443
|
U as SinaLayer,
|
|
443
|
-
|
|
444
|
-
|
|
444
|
+
P as StackedAreaLayer,
|
|
445
|
+
W as StackedBarLayer,
|
|
445
446
|
H as StatLayer,
|
|
446
|
-
|
|
447
|
+
T as ViolinLayer
|
|
447
448
|
};
|
|
448
449
|
//# sourceMappingURL=DiscreteSettingsImpl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscreteSettingsImpl.js","sources":["../../src/discrete/DiscreteSettingsImpl.ts"],"sourcesContent":["import { BLACK, DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL } from '../constants';\nimport type {\n AesRecord,\n Color,\n ColumnName,\n DataValue,\n DiscreteSettings,\n FrameType,\n InheritAesDiscrete,\n LegendPosition,\n LineShape,\n Orientation,\n BarLayer as OuterBarLayer,\n BinnedDotsLayer as OuterBinnedDotsLayer,\n BoxLayer as OuterBoxLayer,\n DotLayer as OuterDotLayer,\n ErrorBarLayer as OuterErrorBarLayer,\n LineLayer as OuterLineLayer,\n LogoPlotLayer as OuterLogoPlotLayer,\n PairedPointsLayer as OuterPairedPointsLayer,\n SinaLayer as OuterSinaLayer,\n StackedAreaLayer as OuterStackedAreaLayer,\n StackedBarLayer as OuterStackedBarLayer,\n StatLayer as OuterStatLayer,\n ViolinLayer as OuterViolinLayer,\n PointShape,\n PValueCorrectionMethod,\n SettingsInterface,\n SignificanceLevels,\n StatTestMethod,\n SummaryErrorValue,\n SummaryGroupValue,\n TitlePosition,\n} from '../types';\nimport { DiscreteSettingsSchema } from '../types';\nimport { MIN_MARGIN, PADDINGS } from './constants';\n\nimport lodash from 'lodash';\nimport { exhaustive } from '../utils';\n\nconst DEFAULT_FILL = '#3e9838';\nconst DEFAULT_DOT_SHAPE = '21';\nconst DEFAULT_DOT_SIZE = 3;\n\nabstract class BaseDiscreteLayer {\n abstract type: string;\n abstract isEqualForCalculation(otherLayer: DiscreteLayer): boolean;\n}\n\nexport class BoxLayer extends BaseDiscreteLayer {\n readonly type = 'box';\n readonly stat: {\n upper: number;\n medium: number;\n lower: number;\n k: number;\n } = {\n upper: 0.75,\n medium: 0.5,\n lower: 0.25,\n k: 1.5,\n };\n readonly aes: {\n showOutliers: boolean;\n boxWidth: 'auto' | number;\n dotShape: InheritAesDiscrete | PointShape;\n dotSize: InheritAesDiscrete | number;\n dotFill: InheritAesDiscrete | string;\n lineColor: InheritAesDiscrete | string;\n fillColor: InheritAesDiscrete | string;\n lineWidth: number;\n lineShape: LineShape;\n opacity: number;\n } = {\n showOutliers: true,\n boxWidth: 'auto',\n dotShape: DEFAULT_DOT_SHAPE,\n dotFill: BLACK,\n dotSize: DEFAULT_DOT_SIZE,\n lineColor: BLACK,\n fillColor: DEFAULT_FILL,\n lineWidth: 1,\n lineShape: 'solid',\n opacity: 1,\n };\n\n constructor(layer: OuterBoxLayer) {\n super();\n this.stat = {\n ...this.stat,\n ...layer.stat,\n };\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'box' &&\n (Object.keys(this.stat) as (keyof BoxLayer['stat'])[]).every(key => this.stat[key] === otherLayer.stat[key])\n );\n }\n}\n\nexport class ViolinLayer extends BaseDiscreteLayer {\n readonly type = 'violin';\n readonly stat: {\n bandwidth: 'auto' | number;\n stepsCount: 'auto' | number;\n trim: boolean;\n } = {\n bandwidth: 'auto',\n stepsCount: 40,\n trim: true,\n };\n readonly aes: {\n width: 'auto' | number;\n lineColor: InheritAesDiscrete | string;\n fillColor: InheritAesDiscrete | string;\n lineWidth: number;\n lineShape: LineShape;\n opacity: number;\n showQuartiles: boolean;\n medianLineStyle: LineShape;\n quartilesLineStyle: LineShape;\n } = {\n width: 'auto',\n lineColor: BLACK,\n fillColor: DEFAULT_FILL,\n lineWidth: 1,\n lineShape: 'solid',\n opacity: 1,\n showQuartiles: true,\n medianLineStyle: 'solid',\n quartilesLineStyle: 'dashed'\n };\n\n constructor(layer: OuterViolinLayer) {\n super();\n this.stat = {\n ...this.stat,\n ...layer.stat,\n };\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'violin' && (\n this.stat.bandwidth !== otherLayer.stat.bandwidth ||\n this.stat.trim !== otherLayer.stat.trim ||\n this.stat.stepsCount !== otherLayer.stat.stepsCount\n )\n );\n }\n}\n\nexport class DotLayer extends BaseDiscreteLayer {\n readonly type = 'dot';\n readonly aes: {\n showOutliers: boolean;\n jitter: number;\n dotFill: InheritAesDiscrete | string;\n lineColor: InheritAesDiscrete | string;\n dotShape: InheritAesDiscrete | PointShape;\n dotSize: number;\n opacity: number;\n } = {\n showOutliers: true,\n jitter: 0.8,\n lineColor: 'none',\n dotFill: BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n opacity: 1,\n };\n\n constructor(layer: OuterDotLayer) {\n super();\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'dot' && this.aes.showOutliers === otherLayer.aes.showOutliers;\n }\n}\n\nexport class LineLayer extends BaseDiscreteLayer {\n readonly type = 'line';\n readonly pointsValues: SummaryGroupValue;\n readonly aes: {\n showOutliers: boolean;\n lineWidth: number;\n lineColor: InheritAesDiscrete | string;\n fillColor: InheritAesDiscrete | string;\n lineShape: InheritAesDiscrete | LineShape;\n dotShape: InheritAesDiscrete | PointShape;\n dotSize: number;\n opacity: number;\n } = {\n showOutliers: true,\n lineWidth: 1,\n lineShape: 'solid',\n fillColor: 'none',\n lineColor: BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n opacity: 1,\n };\n\n constructor(layer: OuterLineLayer) {\n super();\n this.pointsValues = layer.pointsValues;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'line' && this.pointsValues === otherLayer.pointsValues;\n }\n}\n\nexport class ErrorBarLayer extends BaseDiscreteLayer {\n readonly type = 'errorbar';\n readonly pointsValues: SummaryGroupValue;\n readonly interval: SummaryErrorValue;\n readonly aes: {\n showDots: boolean;\n width: number | 'auto';\n lineWidth: number;\n lineColor: InheritAesDiscrete | string;\n fillColor: InheritAesDiscrete | string;\n dotShape: InheritAesDiscrete | PointShape;\n dotSize: number;\n opacity: number;\n } = {\n showDots: true,\n width: 'auto',\n lineWidth: 1,\n fillColor: 'none',\n lineColor: BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n opacity: 1,\n };\n\n constructor(layer: OuterErrorBarLayer) {\n super();\n this.pointsValues = layer.pointsValues;\n this.interval = layer.interval;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'errorbar' &&\n this.pointsValues === otherLayer.pointsValues &&\n this.interval === otherLayer.interval\n );\n }\n}\n\nexport class BarLayer extends BaseDiscreteLayer {\n readonly type = 'bar';\n readonly height: 'min' | 'max' | 'median' | 'mean';\n readonly aes: {\n width: number | 'auto';\n lineColor: InheritAesDiscrete | Color;\n fillColor: InheritAesDiscrete | Color;\n lineWidth: number;\n opacity: number;\n } = {\n width: 'auto',\n lineWidth: 1,\n fillColor: 'none',\n lineColor: BLACK,\n opacity: 1,\n };\n\n constructor(layer: OuterBarLayer) {\n super();\n this.height = layer.height ?? 'max';\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'bar' && this.height === otherLayer.height;\n }\n}\n\nexport class StackedBarLayer extends BaseDiscreteLayer {\n readonly type = 'stackedBar';\n readonly normalize: boolean = false;\n readonly aes: {\n width: number | 'auto';\n lineColor: InheritAesDiscrete | Color;\n fillColor: InheritAesDiscrete | Color;\n lineWidth: number;\n opacity: number;\n } = {\n width: 'auto',\n lineWidth: 1,\n fillColor: DEFAULT_FILL,\n lineColor: 'none',\n opacity: 1,\n };\n\n constructor(layer: OuterStackedBarLayer) {\n super();\n this.normalize = layer.normalize ?? false;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'stackedBar' && otherLayer.normalize === this.normalize;\n }\n}\n\nexport class StackedAreaLayer extends BaseDiscreteLayer {\n readonly type = 'stackedArea';\n readonly normalize: boolean = false;\n readonly showBars: boolean = true;\n readonly aes: {\n barWidth: number | 'auto';\n lineColor: InheritAesDiscrete | Color;\n fillColor: InheritAesDiscrete | Color;\n lineWidth: number;\n barsOpacity: number;\n areaOpacity: number;\n } = {\n barWidth: 'auto',\n lineWidth: 1,\n fillColor: DEFAULT_FILL,\n lineColor: 'none',\n barsOpacity: 1,\n areaOpacity: 0.7,\n };\n\n constructor(layer: OuterStackedAreaLayer) {\n super();\n this.normalize = layer.normalize ?? false;\n this.showBars = layer.showBars ?? true;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'stackedArea' && otherLayer.normalize === this.normalize && otherLayer.showBars === this.showBars;\n }\n}\n\nexport class LogoPlotLayer extends BaseDiscreteLayer {\n readonly type = 'logo';\n readonly normalize: boolean = false;\n readonly aes: {\n width: number | 'auto';\n fillColor: Record<string, string> | Color;\n lineColor: Color;\n opacity: number;\n } = {\n width: 'auto',\n fillColor: DEFAULT_FILL,\n lineColor: 'none',\n opacity: 1,\n };\n\n constructor(layer: OuterLogoPlotLayer) {\n super();\n this.normalize = layer.normalize ?? false;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'logo' && otherLayer.normalize === this.normalize;\n }\n}\n\nexport class BinnedDotsLayer extends BaseDiscreteLayer {\n readonly type = 'binnedDots';\n readonly method: 'dotdensity' | 'histodot';\n readonly position: 'stack' | 'jitter';\n readonly keyColumn: ColumnName | null;\n readonly aes: {\n showOutliers: boolean;\n width: number | 'auto';\n lineColor: InheritAesDiscrete | Color;\n fillColor: InheritAesDiscrete | Color;\n dotSize?: number;\n lineWidth: number;\n opacity: number;\n } = {\n showOutliers: true,\n width: 'auto',\n lineWidth: 1,\n fillColor: 'none',\n lineColor: BLACK,\n opacity: 1,\n };\n\n constructor(layer: OuterBinnedDotsLayer) {\n super();\n this.method = layer.method ?? 'dotdensity';\n this.position = layer.position ?? 'stack';\n this.keyColumn = layer.keyColumn ?? null;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'binnedDots' &&\n this.method === otherLayer.method &&\n this.position === otherLayer.position &&\n this.keyColumn?.value === otherLayer.keyColumn?.value\n );\n }\n}\n\nexport class PairedPointsLayer extends BaseDiscreteLayer {\n readonly type = 'pairedPoints';\n readonly linkColumn: ColumnName;\n readonly aes: {\n showOutliers: boolean;\n lineColor: InheritAesDiscrete | Color;\n lineWidth: number;\n lineShape: LineShape;\n dotFill: InheritAesDiscrete | Color;\n dotSize: number;\n dotShape: PointShape;\n opacity: number;\n } = {\n showOutliers: true,\n lineWidth: 1,\n lineColor: BLACK,\n lineShape: 'solid',\n dotFill: BLACK,\n dotSize: DEFAULT_DOT_SIZE,\n dotShape: DEFAULT_DOT_SHAPE,\n opacity: 1,\n };\n\n constructor(layer: OuterPairedPointsLayer) {\n super();\n this.linkColumn = layer.linkColumn;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'pairedPoints' &&\n this.aes.showOutliers === otherLayer.aes.showOutliers &&\n this.linkColumn.value === otherLayer.linkColumn.value\n );\n }\n}\n\nexport class SinaLayer extends BaseDiscreteLayer {\n readonly type = 'sina';\n readonly aes: {\n showOutliers: boolean;\n width: number | 'auto';\n dotFill: InheritAesDiscrete | Color;\n dotSize: number;\n dotShape: InheritAesDiscrete | PointShape;\n opacity: number;\n } = {\n showOutliers: true,\n width: 'auto',\n dotFill: DEFAULT_FILL,\n dotSize: DEFAULT_DOT_SIZE,\n dotShape: DEFAULT_DOT_SHAPE,\n opacity: 1,\n };\n\n constructor(layer: OuterSinaLayer) {\n super();\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'sina' && this.aes.showOutliers === otherLayer.aes.showOutliers;\n }\n}\n\nexport class StatLayer extends BaseDiscreteLayer {\n readonly type = 'stat';\n readonly statType: 'overall' | 'referenceGroup' | 'pairwise';\n readonly testMethod: StatTestMethod;\n readonly paired: boolean;\n readonly ns: boolean;\n readonly format: 'significance' | 'pValue';\n readonly referenceGroup: DataValue | null = null;\n readonly correctionMethod: PValueCorrectionMethod | null = null;\n readonly significanceLevels: SignificanceLevels;\n\n constructor(layer: OuterStatLayer) {\n super();\n this.statType = layer.statType;\n this.testMethod = layer.testMethod;\n this.paired = layer.paired ?? false;\n this.ns = layer.ns ?? true;\n this.format = layer.format ?? 'pValue';\n if (this.statType === 'referenceGroup') {\n this.referenceGroup = layer.referenceGroup ?? null;\n }\n if (this.statType === 'referenceGroup' || this.statType === 'pairwise') {\n this.correctionMethod = layer.correctionMethod ?? null;\n }\n this.significanceLevels = {\n one: layer.significanceLevels?.one ?? 0.05,\n two: layer.significanceLevels?.two ?? 0.01,\n three: layer.significanceLevels?.three ?? 0.001,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'stat' && (Object.keys(this) as (keyof StatLayer)[]).every(key => this[key] === otherLayer[key]);\n }\n}\n\nexport type DiscreteLayer =\n | StackedAreaLayer\n | BoxLayer\n | ViolinLayer\n | DotLayer\n | LineLayer\n | ErrorBarLayer\n | BarLayer\n | StackedBarLayer\n | BinnedDotsLayer\n | PairedPointsLayer\n | SinaLayer\n | StatLayer\n | LogoPlotLayer;\n\nexport class DiscreteSettingsImpl implements SettingsInterface {\n readonly id: string;\n readonly type = 'discrete';\n readonly y: ColumnName;\n readonly keyColumn: ColumnName | null;\n readonly primaryGrouping: {\n columnName: ColumnName;\n order?: DataValue[];\n inheritedAes?: AesRecord;\n allowNullGroup?: boolean;\n } | null;\n readonly secondaryGrouping: {\n columnName: ColumnName;\n order?: DataValue[];\n inheritedAes?: AesRecord;\n allowNullGroup?: boolean;\n } | null;\n readonly facetSettings: {\n sharedX: boolean;\n sharedY: boolean;\n order?: Record<string, DataValue[]>; // map with ordered values of columns in \"facetBy\"\n nRows?: number;\n nCols?: number;\n titlePosition?: 'left' | 'right' | 'center';\n } | null;\n readonly facetBy: ColumnName[];\n readonly chartSettings: {\n readonly size: {width: number; height: number, outerOffset: number, innerOffset: number};\n readonly title: {name: string; show: boolean; position: TitlePosition};\n readonly orientation: Orientation;\n readonly yAxis: {\n title: string | ColumnName;\n scale: 'linear' | 'log';\n showGrid: boolean;\n showTicks: boolean;\n hiddenLabels: boolean;\n };\n readonly xAxis: {\n title: string | ColumnName;\n showGrid: boolean;\n linesBetweenCategories: boolean;\n showTicks: boolean;\n labelsPosition: 'center' | '45deg' | '90deg';\n hiddenLabels: boolean;\n };\n readonly frame: {type: FrameType};\n readonly legend: {show: boolean; position: LegendPosition};\n readonly tooltips: {\n box: {show: boolean};\n violin: {show: boolean};\n boxOutliers: {show: boolean};\n line: {show: boolean};\n dot: {show: boolean};\n errorBar: {show: boolean};\n binnedDots: {show: boolean};\n pairedPoints: {show: boolean};\n stackedBar: {show: boolean};\n logo: {show: boolean};\n };\n };\n\n readonly layers: DiscreteLayer[];\n\n constructor(settings: DiscreteSettings) {\n DiscreteSettingsSchema.parse(settings);\n this.id = lodash.uniqueId('settings');\n this.y = settings.y; // throw error if empty or if y.name doesn't exist in input table\n this.keyColumn = settings.keyColumn ?? null;\n this.primaryGrouping = settings.primaryGrouping ?? null; // check columnName\n this.secondaryGrouping = settings.secondaryGrouping ?? null; // check columnName\n this.facetSettings = {\n sharedX: true,\n sharedY: true,\n titlePosition: 'left',\n ...settings.facetSettings,\n };\n this.facetBy = settings.facetBy ?? [];\n this.chartSettings = {\n size: {\n width: settings?.size?.width ?? (this.facetBy.length ? DEFAULT_WIDTH_SMALL : DEFAULT_WIDTH),\n height: settings?.size?.height ?? (this.facetBy.length ? DEFAULT_HEIGHT_SMALL : DEFAULT_HEIGHT),\n outerOffset: settings?.size?.outerOffset ?? MIN_MARGIN,\n innerOffset: settings?.size?.innerOffset ?? PADDINGS.TOP\n },\n title: {\n position: 'center',\n show: true,\n ...settings.title,\n name: settings.title?.name ?? 'Chart',\n },\n orientation: settings.orientation ?? 'vertical',\n yAxis: {\n title: settings.y?.label ?? settings.y.value ?? '',\n scale: 'linear',\n showGrid: true,\n showTicks: true,\n hiddenLabels: false,\n ...settings.yAxis,\n },\n xAxis: {\n title: settings.primaryGrouping?.columnName?.label ?? settings.primaryGrouping?.columnName.value ?? '',\n showGrid: true,\n showTicks: true,\n linesBetweenCategories: true,\n labelsPosition: 'center',\n hiddenLabels: false,\n ...settings.xAxis,\n },\n frame: {type: settings.frame?.type ?? 'full'},\n legend: {\n show: true,\n position: 'right',\n ...settings.legend,\n },\n tooltips: {\n box: {show: true},\n violin: {show: true},\n boxOutliers: {show: true},\n line: {show: true},\n errorBar: {show: true},\n dot: {show: true},\n binnedDots: {show: true},\n pairedPoints: {show: true},\n stackedBar: {show: true},\n logo: {show: false},\n ...settings.tooltips,\n },\n };\n this.layers = settings.layers\n .map(layer => {\n if (layer.type === 'box') {\n return new BoxLayer(layer);\n }\n if (layer.type === 'violin') {\n return new ViolinLayer(layer);\n }\n if (layer.type === 'dot') {\n return new DotLayer(layer);\n }\n if (layer.type === 'line') {\n return new LineLayer(layer);\n }\n if (layer.type === 'errorbar') {\n return new ErrorBarLayer(layer);\n }\n if (layer.type === 'bar') {\n return new BarLayer(layer);\n }\n if (layer.type === 'stackedBar') {\n return new StackedBarLayer(layer);\n }\n if (layer.type === 'stackedArea') {\n return new StackedAreaLayer(layer);\n }\n if (layer.type === 'stat') {\n return new StatLayer(layer);\n }\n if (layer.type === 'binnedDots') {\n return new BinnedDotsLayer(layer);\n }\n if (layer.type === 'pairedPoints') {\n return new PairedPointsLayer(layer);\n }\n if (layer.type === 'sina') {\n return new SinaLayer(layer);\n }\n if (layer.type === 'logo') {\n return new LogoPlotLayer(layer);\n }\n exhaustive(layer, 'Unknown layer type');\n })\n .filter(Boolean) as DiscreteLayer[];\n }\n}\n"],"names":["DEFAULT_FILL","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","BaseDiscreteLayer","BoxLayer","layer","__publicField","BLACK","otherLayer","key","ViolinLayer","DotLayer","LineLayer","ErrorBarLayer","BarLayer","StackedBarLayer","StackedAreaLayer","LogoPlotLayer","BinnedDotsLayer","_a","_b","PairedPointsLayer","SinaLayer","StatLayer","_c","DiscreteSettingsImpl","settings","DiscreteSettingsSchema","lodash","DEFAULT_WIDTH_SMALL","DEFAULT_WIDTH","DEFAULT_HEIGHT_SMALL","DEFAULT_HEIGHT","MIN_MARGIN","_d","PADDINGS","_e","_f","_h","_g","_i","_j","exhaustive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DiscreteSettingsImpl.js","sources":["../../src/discrete/DiscreteSettingsImpl.ts"],"sourcesContent":["import { BLACK, DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL } from '../constants';\nimport type {\n AesRecord,\n Color,\n ColumnName,\n DataValue,\n DiscreteSettings,\n FrameType,\n InheritAesDiscrete,\n LegendPosition,\n LineShape,\n Orientation,\n BarLayer as OuterBarLayer,\n BinnedDotsLayer as OuterBinnedDotsLayer,\n BoxLayer as OuterBoxLayer,\n DotLayer as OuterDotLayer,\n ErrorBarLayer as OuterErrorBarLayer,\n LineLayer as OuterLineLayer,\n LogoPlotLayer as OuterLogoPlotLayer,\n PairedPointsLayer as OuterPairedPointsLayer,\n SinaLayer as OuterSinaLayer,\n StackedAreaLayer as OuterStackedAreaLayer,\n StackedBarLayer as OuterStackedBarLayer,\n StatLayer as OuterStatLayer,\n ViolinLayer as OuterViolinLayer,\n PointShape,\n PValueCorrectionMethod,\n SettingsInterface,\n SignificanceLevels,\n StatTestMethod,\n SummaryErrorValue,\n SummaryGroupValue,\n TitlePosition,\n} from '../types';\nimport { DiscreteSettingsSchema } from '../types';\nimport { MIN_MARGIN, PADDINGS } from './constants';\n\nimport lodash from 'lodash';\nimport { exhaustive } from '../utils';\n\nconst DEFAULT_FILL = '#3e9838';\nconst DEFAULT_DOT_SHAPE = '21';\nconst DEFAULT_DOT_SIZE = 3;\n\nabstract class BaseDiscreteLayer {\n abstract type: string;\n abstract isEqualForCalculation(otherLayer: DiscreteLayer): boolean;\n}\n\nexport class BoxLayer extends BaseDiscreteLayer {\n readonly type = 'box';\n readonly stat: {\n upper: number;\n medium: number;\n lower: number;\n k: number;\n } = {\n upper: 0.75,\n medium: 0.5,\n lower: 0.25,\n k: 1.5,\n };\n readonly aes: {\n showOutliers: boolean;\n boxWidth: 'auto' | number;\n dotShape: InheritAesDiscrete | PointShape;\n dotSize: InheritAesDiscrete | number;\n dotFill: InheritAesDiscrete | string;\n lineColor: InheritAesDiscrete | string;\n fillColor: InheritAesDiscrete | string;\n lineWidth: number;\n lineShape: LineShape;\n opacity: number;\n } = {\n showOutliers: true,\n boxWidth: 'auto',\n dotShape: DEFAULT_DOT_SHAPE,\n dotFill: BLACK,\n dotSize: DEFAULT_DOT_SIZE,\n lineColor: BLACK,\n fillColor: DEFAULT_FILL,\n lineWidth: 1,\n lineShape: 'solid',\n opacity: 1,\n };\n\n constructor(layer: OuterBoxLayer) {\n super();\n this.stat = {\n ...this.stat,\n ...layer.stat,\n };\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'box' &&\n (Object.keys(this.stat) as (keyof BoxLayer['stat'])[]).every(key => this.stat[key] === otherLayer.stat[key])\n );\n }\n}\n\nexport class ViolinLayer extends BaseDiscreteLayer {\n readonly type = 'violin';\n readonly stat: {\n bandwidth: 'auto' | number;\n stepsCount: 'auto' | number;\n trim: boolean;\n } = {\n bandwidth: 'auto',\n stepsCount: 40,\n trim: true,\n };\n readonly aes: {\n width: 'auto' | number;\n lineColor: InheritAesDiscrete | string;\n fillColor: InheritAesDiscrete | string;\n lineWidth: number;\n lineShape: LineShape;\n opacity: number;\n showQuartiles: boolean;\n medianLineStyle: LineShape;\n quartilesLineStyle: LineShape;\n } = {\n width: 'auto',\n lineColor: BLACK,\n fillColor: DEFAULT_FILL,\n lineWidth: 1,\n lineShape: 'solid',\n opacity: 1,\n showQuartiles: true,\n medianLineStyle: 'solid',\n quartilesLineStyle: 'dashed'\n };\n\n constructor(layer: OuterViolinLayer) {\n super();\n this.stat = {\n ...this.stat,\n ...layer.stat,\n };\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'violin' && (\n this.stat.bandwidth !== otherLayer.stat.bandwidth ||\n this.stat.trim !== otherLayer.stat.trim ||\n this.stat.stepsCount !== otherLayer.stat.stepsCount\n )\n );\n }\n}\n\nexport class DotLayer extends BaseDiscreteLayer {\n readonly type = 'dot';\n readonly aes: {\n showOutliers: boolean;\n jitter: number;\n dotFill: InheritAesDiscrete | string;\n lineColor: InheritAesDiscrete | string;\n dotShape: InheritAesDiscrete | PointShape;\n dotSize: number;\n opacity: number;\n } = {\n showOutliers: true,\n jitter: 0.8,\n lineColor: 'none',\n dotFill: BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n opacity: 1,\n };\n\n constructor(layer: OuterDotLayer) {\n super();\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'dot' && this.aes.showOutliers === otherLayer.aes.showOutliers;\n }\n}\n\nexport class LineLayer extends BaseDiscreteLayer {\n readonly type = 'line';\n readonly pointsValues: SummaryGroupValue;\n readonly emptyGroupValue: number;\n readonly aes: {\n showOutliers: boolean;\n lineWidth: number;\n lineColor: InheritAesDiscrete | string;\n fillColor: InheritAesDiscrete | string;\n lineShape: InheritAesDiscrete | LineShape;\n dotShape: InheritAesDiscrete | PointShape;\n dotSize: number;\n opacity: number;\n } = {\n showOutliers: true,\n lineWidth: 1,\n lineShape: 'solid',\n fillColor: 'none',\n lineColor: BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n opacity: 1,\n };\n\n constructor(layer: OuterLineLayer) {\n super();\n this.pointsValues = layer.pointsValues;\n this.emptyGroupValue = layer.emptyGroupValue ?? 0;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'line' && this.pointsValues === otherLayer.pointsValues && this.emptyGroupValue === otherLayer.emptyGroupValue;\n }\n}\n\nexport class ErrorBarLayer extends BaseDiscreteLayer {\n readonly type = 'errorbar';\n readonly pointsValues: SummaryGroupValue;\n readonly interval: SummaryErrorValue;\n readonly aes: {\n showDots: boolean;\n width: number | 'auto';\n lineWidth: number;\n lineColor: InheritAesDiscrete | string;\n fillColor: InheritAesDiscrete | string;\n dotShape: InheritAesDiscrete | PointShape;\n dotSize: number;\n opacity: number;\n } = {\n showDots: true,\n width: 'auto',\n lineWidth: 1,\n fillColor: 'none',\n lineColor: BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n opacity: 1,\n };\n\n constructor(layer: OuterErrorBarLayer) {\n super();\n this.pointsValues = layer.pointsValues;\n this.interval = layer.interval;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'errorbar' &&\n this.pointsValues === otherLayer.pointsValues &&\n this.interval === otherLayer.interval\n );\n }\n}\n\nexport class BarLayer extends BaseDiscreteLayer {\n readonly type = 'bar';\n readonly height: 'min' | 'max' | 'median' | 'mean';\n readonly aes: {\n width: number | 'auto';\n lineColor: InheritAesDiscrete | Color;\n fillColor: InheritAesDiscrete | Color;\n lineWidth: number;\n opacity: number;\n } = {\n width: 'auto',\n lineWidth: 1,\n fillColor: 'none',\n lineColor: BLACK,\n opacity: 1,\n };\n\n constructor(layer: OuterBarLayer) {\n super();\n this.height = layer.height ?? 'max';\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'bar' && this.height === otherLayer.height;\n }\n}\n\nexport class StackedBarLayer extends BaseDiscreteLayer {\n readonly type = 'stackedBar';\n readonly normalize: boolean = false;\n readonly aes: {\n width: number | 'auto';\n lineColor: InheritAesDiscrete | Color;\n fillColor: InheritAesDiscrete | Color;\n lineWidth: number;\n opacity: number;\n } = {\n width: 'auto',\n lineWidth: 1,\n fillColor: DEFAULT_FILL,\n lineColor: 'none',\n opacity: 1,\n };\n\n constructor(layer: OuterStackedBarLayer) {\n super();\n this.normalize = layer.normalize ?? false;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'stackedBar' && otherLayer.normalize === this.normalize;\n }\n}\n\nexport class StackedAreaLayer extends BaseDiscreteLayer {\n readonly type = 'stackedArea';\n readonly normalize: boolean = false;\n readonly showBars: boolean = true;\n readonly aes: {\n barWidth: number | 'auto';\n lineColor: InheritAesDiscrete | Color;\n fillColor: InheritAesDiscrete | Color;\n lineWidth: number;\n barsOpacity: number;\n areaOpacity: number;\n } = {\n barWidth: 'auto',\n lineWidth: 1,\n fillColor: DEFAULT_FILL,\n lineColor: 'none',\n barsOpacity: 1,\n areaOpacity: 0.7,\n };\n\n constructor(layer: OuterStackedAreaLayer) {\n super();\n this.normalize = layer.normalize ?? false;\n this.showBars = layer.showBars ?? true;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'stackedArea' && otherLayer.normalize === this.normalize && otherLayer.showBars === this.showBars;\n }\n}\n\nexport class LogoPlotLayer extends BaseDiscreteLayer {\n readonly type = 'logo';\n readonly normalize: boolean = false;\n readonly aes: {\n width: number | 'auto';\n fillColor: Record<string, string> | Color;\n lineColor: Color;\n opacity: number;\n } = {\n width: 'auto',\n fillColor: DEFAULT_FILL,\n lineColor: 'none',\n opacity: 1,\n };\n\n constructor(layer: OuterLogoPlotLayer) {\n super();\n this.normalize = layer.normalize ?? false;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'logo' && otherLayer.normalize === this.normalize;\n }\n}\n\nexport class BinnedDotsLayer extends BaseDiscreteLayer {\n readonly type = 'binnedDots';\n readonly method: 'dotdensity' | 'histodot';\n readonly position: 'stack' | 'jitter';\n readonly keyColumn: ColumnName | null;\n readonly aes: {\n showOutliers: boolean;\n width: number | 'auto';\n lineColor: InheritAesDiscrete | Color;\n fillColor: InheritAesDiscrete | Color;\n dotSize?: number;\n lineWidth: number;\n opacity: number;\n } = {\n showOutliers: true,\n width: 'auto',\n lineWidth: 1,\n fillColor: 'none',\n lineColor: BLACK,\n opacity: 1,\n };\n\n constructor(layer: OuterBinnedDotsLayer) {\n super();\n this.method = layer.method ?? 'dotdensity';\n this.position = layer.position ?? 'stack';\n this.keyColumn = layer.keyColumn ?? null;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'binnedDots' &&\n this.method === otherLayer.method &&\n this.position === otherLayer.position &&\n this.keyColumn?.value === otherLayer.keyColumn?.value\n );\n }\n}\n\nexport class PairedPointsLayer extends BaseDiscreteLayer {\n readonly type = 'pairedPoints';\n readonly linkColumn: ColumnName;\n readonly aes: {\n showOutliers: boolean;\n lineColor: InheritAesDiscrete | Color;\n lineWidth: number;\n lineShape: LineShape;\n dotFill: InheritAesDiscrete | Color;\n dotSize: number;\n dotShape: PointShape;\n opacity: number;\n } = {\n showOutliers: true,\n lineWidth: 1,\n lineColor: BLACK,\n lineShape: 'solid',\n dotFill: BLACK,\n dotSize: DEFAULT_DOT_SIZE,\n dotShape: DEFAULT_DOT_SHAPE,\n opacity: 1,\n };\n\n constructor(layer: OuterPairedPointsLayer) {\n super();\n this.linkColumn = layer.linkColumn;\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return (\n otherLayer.type === 'pairedPoints' &&\n this.aes.showOutliers === otherLayer.aes.showOutliers &&\n this.linkColumn.value === otherLayer.linkColumn.value\n );\n }\n}\n\nexport class SinaLayer extends BaseDiscreteLayer {\n readonly type = 'sina';\n readonly aes: {\n showOutliers: boolean;\n width: number | 'auto';\n dotFill: InheritAesDiscrete | Color;\n dotSize: number;\n dotShape: InheritAesDiscrete | PointShape;\n opacity: number;\n } = {\n showOutliers: true,\n width: 'auto',\n dotFill: DEFAULT_FILL,\n dotSize: DEFAULT_DOT_SIZE,\n dotShape: DEFAULT_DOT_SHAPE,\n opacity: 1,\n };\n\n constructor(layer: OuterSinaLayer) {\n super();\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'sina' && this.aes.showOutliers === otherLayer.aes.showOutliers;\n }\n}\n\nexport class StatLayer extends BaseDiscreteLayer {\n readonly type = 'stat';\n readonly statType: 'overall' | 'referenceGroup' | 'pairwise';\n readonly testMethod: StatTestMethod;\n readonly paired: boolean;\n readonly ns: boolean;\n readonly format: 'significance' | 'pValue';\n readonly referenceGroup: DataValue | null = null;\n readonly correctionMethod: PValueCorrectionMethod | null = null;\n readonly significanceLevels: SignificanceLevels;\n\n constructor(layer: OuterStatLayer) {\n super();\n this.statType = layer.statType;\n this.testMethod = layer.testMethod;\n this.paired = layer.paired ?? false;\n this.ns = layer.ns ?? true;\n this.format = layer.format ?? 'pValue';\n if (this.statType === 'referenceGroup') {\n this.referenceGroup = layer.referenceGroup ?? null;\n }\n if (this.statType === 'referenceGroup' || this.statType === 'pairwise') {\n this.correctionMethod = layer.correctionMethod ?? null;\n }\n this.significanceLevels = {\n one: layer.significanceLevels?.one ?? 0.05,\n two: layer.significanceLevels?.two ?? 0.01,\n three: layer.significanceLevels?.three ?? 0.001,\n };\n }\n\n isEqualForCalculation(otherLayer: DiscreteLayer) {\n return otherLayer.type === 'stat' && (Object.keys(this) as (keyof StatLayer)[]).every(key => this[key] === otherLayer[key]);\n }\n}\n\nexport type DiscreteLayer =\n | StackedAreaLayer\n | BoxLayer\n | ViolinLayer\n | DotLayer\n | LineLayer\n | ErrorBarLayer\n | BarLayer\n | StackedBarLayer\n | BinnedDotsLayer\n | PairedPointsLayer\n | SinaLayer\n | StatLayer\n | LogoPlotLayer;\n\nexport class DiscreteSettingsImpl implements SettingsInterface {\n readonly id: string;\n readonly type = 'discrete';\n readonly y: ColumnName;\n readonly keyColumn: ColumnName | null;\n readonly primaryGrouping: {\n columnName: ColumnName;\n order?: DataValue[];\n inheritedAes?: AesRecord;\n allowNullGroup?: boolean;\n } | null;\n readonly secondaryGrouping: {\n columnName: ColumnName;\n order?: DataValue[];\n inheritedAes?: AesRecord;\n allowNullGroup?: boolean;\n } | null;\n readonly facetSettings: {\n sharedX: boolean;\n sharedY: boolean;\n order?: Record<string, DataValue[]>; // map with ordered values of columns in \"facetBy\"\n nRows?: number;\n nCols?: number;\n titlePosition?: 'left' | 'right' | 'center';\n } | null;\n readonly facetBy: ColumnName[];\n readonly chartSettings: {\n readonly size: {width: number; height: number, outerOffset: number, innerOffset: number};\n readonly title: {name: string; show: boolean; position: TitlePosition};\n readonly orientation: Orientation;\n readonly yAxis: {\n title: string | ColumnName;\n scale: 'linear' | 'log';\n showGrid: boolean;\n showTicks: boolean;\n hiddenLabels: boolean;\n };\n readonly xAxis: {\n title: string | ColumnName;\n showGrid: boolean;\n linesBetweenCategories: boolean;\n showTicks: boolean;\n labelsPosition: 'center' | '45deg' | '90deg';\n hiddenLabels: boolean;\n };\n readonly frame: {type: FrameType};\n readonly legend: {show: boolean; position: LegendPosition};\n readonly tooltips: {\n box: {show: boolean};\n violin: {show: boolean};\n boxOutliers: {show: boolean};\n line: {show: boolean};\n dot: {show: boolean};\n errorBar: {show: boolean};\n binnedDots: {show: boolean};\n pairedPoints: {show: boolean};\n stackedBar: {show: boolean};\n logo: {show: boolean};\n };\n };\n\n readonly layers: DiscreteLayer[];\n\n constructor(settings: DiscreteSettings) {\n DiscreteSettingsSchema.parse(settings);\n this.id = lodash.uniqueId('settings');\n this.y = settings.y; // throw error if empty or if y.name doesn't exist in input table\n this.keyColumn = settings.keyColumn ?? null;\n this.primaryGrouping = settings.primaryGrouping ?? null; // check columnName\n this.secondaryGrouping = settings.secondaryGrouping ?? null; // check columnName\n this.facetSettings = {\n sharedX: true,\n sharedY: true,\n titlePosition: 'left',\n ...settings.facetSettings,\n };\n this.facetBy = settings.facetBy ?? [];\n this.chartSettings = {\n size: {\n width: settings?.size?.width ?? (this.facetBy.length ? DEFAULT_WIDTH_SMALL : DEFAULT_WIDTH),\n height: settings?.size?.height ?? (this.facetBy.length ? DEFAULT_HEIGHT_SMALL : DEFAULT_HEIGHT),\n outerOffset: settings?.size?.outerOffset ?? MIN_MARGIN,\n innerOffset: settings?.size?.innerOffset ?? PADDINGS.TOP\n },\n title: {\n position: 'center',\n show: true,\n ...settings.title,\n name: settings.title?.name ?? 'Chart',\n },\n orientation: settings.orientation ?? 'vertical',\n yAxis: {\n title: settings.y?.label ?? settings.y.value ?? '',\n scale: 'linear',\n showGrid: true,\n showTicks: true,\n hiddenLabels: false,\n ...settings.yAxis,\n },\n xAxis: {\n title: settings.primaryGrouping?.columnName?.label ?? settings.primaryGrouping?.columnName.value ?? '',\n showGrid: true,\n showTicks: true,\n linesBetweenCategories: true,\n labelsPosition: 'center',\n hiddenLabels: false,\n ...settings.xAxis,\n },\n frame: {type: settings.frame?.type ?? 'full'},\n legend: {\n show: true,\n position: 'right',\n ...settings.legend,\n },\n tooltips: {\n box: {show: true},\n violin: {show: true},\n boxOutliers: {show: true},\n line: {show: true},\n errorBar: {show: true},\n dot: {show: true},\n binnedDots: {show: true},\n pairedPoints: {show: true},\n stackedBar: {show: true},\n logo: {show: false},\n ...settings.tooltips,\n },\n };\n this.layers = settings.layers\n .map(layer => {\n if (layer.type === 'box') {\n return new BoxLayer(layer);\n }\n if (layer.type === 'violin') {\n return new ViolinLayer(layer);\n }\n if (layer.type === 'dot') {\n return new DotLayer(layer);\n }\n if (layer.type === 'line') {\n return new LineLayer(layer);\n }\n if (layer.type === 'errorbar') {\n return new ErrorBarLayer(layer);\n }\n if (layer.type === 'bar') {\n return new BarLayer(layer);\n }\n if (layer.type === 'stackedBar') {\n return new StackedBarLayer(layer);\n }\n if (layer.type === 'stackedArea') {\n return new StackedAreaLayer(layer);\n }\n if (layer.type === 'stat') {\n return new StatLayer(layer);\n }\n if (layer.type === 'binnedDots') {\n return new BinnedDotsLayer(layer);\n }\n if (layer.type === 'pairedPoints') {\n return new PairedPointsLayer(layer);\n }\n if (layer.type === 'sina') {\n return new SinaLayer(layer);\n }\n if (layer.type === 'logo') {\n return new LogoPlotLayer(layer);\n }\n exhaustive(layer, 'Unknown layer type');\n })\n .filter(Boolean) as DiscreteLayer[];\n }\n}\n"],"names":["DEFAULT_FILL","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","BaseDiscreteLayer","BoxLayer","layer","__publicField","BLACK","otherLayer","key","ViolinLayer","DotLayer","LineLayer","ErrorBarLayer","BarLayer","StackedBarLayer","StackedAreaLayer","LogoPlotLayer","BinnedDotsLayer","_a","_b","PairedPointsLayer","SinaLayer","StatLayer","_c","DiscreteSettingsImpl","settings","DiscreteSettingsSchema","lodash","DEFAULT_WIDTH_SMALL","DEFAULT_WIDTH","DEFAULT_HEIGHT_SMALL","DEFAULT_HEIGHT","MIN_MARGIN","_d","PADDINGS","_e","_f","_h","_g","_i","_j","exhaustive"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/lines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAC,oBAAoB,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAMvC,MAAM,WAAW,IAAI;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACf;AAYD,wBAAgB,YAAY,CACxB,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACxB,EACD,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAC5B,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GACtD,SAAS,
|
|
1
|
+
{"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/lines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAC,oBAAoB,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAMvC,MAAM,WAAW,IAAI;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACf;AAYD,wBAAgB,YAAY,CACxB,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACxB,EACD,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAC5B,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GACtD,SAAS,CA0DX"}
|
|
@@ -1,56 +1,47 @@
|
|
|
1
|
-
import { getOutliersBounds as
|
|
1
|
+
import { getOutliersBounds as S } from "../utils/getOutliersBounds.js";
|
|
2
2
|
import "../../utils/TextMeasurer/TextMeasurer.js";
|
|
3
|
-
import { getFacetStringKey as
|
|
4
|
-
import { exhaustive as
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
function
|
|
8
|
-
if (
|
|
9
|
-
return
|
|
10
|
-
if (
|
|
11
|
-
return
|
|
12
|
-
|
|
3
|
+
import { getFacetStringKey as w } from "../utils/getFacetStringKey.js";
|
|
4
|
+
import { exhaustive as F } from "../../utils/index.js";
|
|
5
|
+
import M from "../../node_modules/d3-array/src/quantile.js";
|
|
6
|
+
import v from "../../node_modules/d3-array/src/mean.js";
|
|
7
|
+
function B(n, o) {
|
|
8
|
+
if (o === "median")
|
|
9
|
+
return M(n, 0.5);
|
|
10
|
+
if (o === "mean")
|
|
11
|
+
return v(n);
|
|
12
|
+
F(o, `Unknown line points calculation for dot layer: ${o}`);
|
|
13
13
|
}
|
|
14
|
-
function
|
|
15
|
-
let
|
|
14
|
+
function $(n, o, c, s, r) {
|
|
15
|
+
let a = 1 / 0, m = -1 / 0;
|
|
16
16
|
return {
|
|
17
17
|
type: "line",
|
|
18
|
-
geoms:
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
let p = -1 / 0,
|
|
22
|
-
return
|
|
23
|
-
const
|
|
24
|
-
key: `${String(
|
|
18
|
+
geoms: o.facet.reduce((l, u) => {
|
|
19
|
+
const d = w(u);
|
|
20
|
+
l[d] = [];
|
|
21
|
+
let p = -1 / 0, g = 1 / 0;
|
|
22
|
+
return n.aes.showOutliers || ([p, g] = S(c.getColumnByGrouping([...u], s.value), r.scale)), o.secondary.forEach((h) => {
|
|
23
|
+
const e = {
|
|
24
|
+
key: `${String(h)}`,
|
|
25
25
|
boundsY: {
|
|
26
26
|
min: 1 / 0,
|
|
27
27
|
max: -1 / 0
|
|
28
28
|
},
|
|
29
29
|
dots: {}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
let c = s;
|
|
40
|
-
if (i.aes.showOutliers || (c = s.filter((I) => I >= p && I <= b)), !c.length) {
|
|
41
|
-
f = !0;
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const t = S(O(c.map(x), i.pointsValues));
|
|
45
|
-
o.dots[String(e)] = t, t < l && (l = t), t > a && (a = t), t < o.boundsY.min && (o.boundsY.min = t), t > o.boundsY.max && (o.boundsY.max = t);
|
|
46
|
-
}), f || u[h].push(o);
|
|
47
|
-
}), u;
|
|
30
|
+
}, I = (i) => r.scale === "log" ? Math.log10(i) : i, x = (i) => r.scale === "log" ? Math.pow(10, i) : i;
|
|
31
|
+
o.primary.forEach((i) => {
|
|
32
|
+
const b = c.getColumnByGrouping([...u, i, h], s.value);
|
|
33
|
+
let f = b;
|
|
34
|
+
n.aes.showOutliers || (f = b.filter((Y) => Y >= p && Y <= g));
|
|
35
|
+
const t = f.length ? x(B(f.map(I), n.pointsValues)) : n.emptyGroupValue;
|
|
36
|
+
e.dots[String(i)] = t, t < a && (a = t), t > m && (m = t), t < e.boundsY.min && (e.boundsY.min = t), t > e.boundsY.max && (e.boundsY.max = t);
|
|
37
|
+
}), l[d].push(e);
|
|
38
|
+
}), l;
|
|
48
39
|
}, {}),
|
|
49
|
-
meta: { minY:
|
|
50
|
-
aes:
|
|
40
|
+
meta: { minY: a, maxY: m },
|
|
41
|
+
aes: n.aes
|
|
51
42
|
};
|
|
52
43
|
}
|
|
53
44
|
export {
|
|
54
|
-
|
|
45
|
+
$ as getLinesData
|
|
55
46
|
};
|
|
56
47
|
//# sourceMappingURL=lines.js.map
|