@milaboratories/miplots4 1.0.153 → 1.0.155
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.
|
@@ -80,9 +80,9 @@ function ot({
|
|
|
80
80
|
title: m,
|
|
81
81
|
show: w.show,
|
|
82
82
|
position: w.position,
|
|
83
|
-
leftPadding: e.left,
|
|
83
|
+
leftPadding: -e.left,
|
|
84
84
|
rightPadding: e.right,
|
|
85
|
-
chartsWidth: t.
|
|
85
|
+
chartsWidth: t.totalWidth
|
|
86
86
|
}
|
|
87
87
|
),
|
|
88
88
|
/* @__PURE__ */ o.jsxs("g", { dominantBaseline: "central", textAnchor: "middle", fontWeight: "500", fontSize: "14px", fill: q, children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LowerSVG.js","sources":["../../../src/scatterplot-umap/components/LowerSVG.tsx"],"sourcesContent":["import {format} from 'd3-format';\nimport { curveBasis, line } from 'd3-shape';\nimport React, { useEffect, useState } from 'react';\nimport { ChartsTitle } from '../../common/ChartsTitle';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport fonts from '../../common/fonts';\nimport { Legend } from '../../common/Legend';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport type { LegendData } from '../../common/types';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport { BLACK } from '../../constants';\nimport type { DataFrame } from '../../DataFrame';\nimport { ContinuousAxis } from '../../common/ContinuousAxis';\nimport {formatColumnValue} from '../../scatterplot/utils/formatColumnValue';\nimport type { ColumnName } from '../../types';\nimport type { CurveUmapLayer } from '../../types/scatterplot-umap';\nimport { DEFAULT_TICKS_SIZE, LEGEND_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotUmapSettingsImpl } from '../SettingsImpl';\nimport type { CaptionsSizes, ChartScales, ChartSizes, Dot, DotInfo, Margins, SVGLayerProps } from '../types';\n\nfunction getTooltipContent(dataFrame: DataFrame, dot: DotInfo, columnsList: ColumnName[] = [], ) {\n const lines: string[] = [];\n for (const column of columnsList) {\n const columnFormatter = column?.format ? format(column.format) : undefined;\n lines.push(`${column.label}: ${formatColumnValue(dataFrame, dot.idx, column, columnFormatter)}`);\n }\n return lines;\n}\n\nfunction getTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.label ?? title.value;\n}\n\nconst lineGenerator = line<Dot>().curve(curveBasis);\n\nfunction LowerSvg({\n scales,\n chartSettings,\n mainTitle,\n keyColumn,\n margins,\n chartSizes,\n container,\n zoomStateKey,\n legendData,\n dotsByGrouping,\n layers,\n aesGetters,\n tooltipData\n}: {\n aesGetters: SVGLayerProps['aesGetters'];\n scales: ChartScales;\n chartSettings: ScatterplotUmapSettingsImpl['chartSettings'];\n mainTitle: string[];\n keyColumn: ColumnName | null;\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n selectedDot?: DotInfo | null;\n container: SVGElement | null;\n zoomStateKey: string;\n legendData: LegendData;\n dotsByGrouping: Record<string, Dot[]>;\n layers: ScatterplotUmapSettingsImpl['layers'];\n tooltipData: TooltipsData<DotInfo>;\n}) {\n const dataFrame = useDataFrame();\n const {title, xAxis, yAxis, frame, legend} = chartSettings;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const xTitle = xAxis.title;\n const yTitle = yAxis.title;\n const needLeftAxis = true;\n const needBottomAxis = true;\n\n const sideDistances = {\n left: 0,\n right: chartSizes.chartWidth,\n top: 0,\n bottom: chartSizes.chartHeight,\n };\n\n if (!container) {\n return null;\n }\n\n const curveLayer = layers.find(layer => layer.type === 'curve') as CurveUmapLayer | undefined;\n const [lines, setLines] = useState<{key: string, d:string, dot: Dot}[]>([]);\n\n function updateLines() {\n const data = Object.entries(dotsByGrouping);\n const nextLines = data.map(([key, dots]) => ({\n key,\n d: curveLayer?.smoothing ? lineGenerator(dots) ?? '' : dots.map(d => `${scales.x(d.x)},${scales.y(d.y)}`).join(' '),\n dot: dots[0]\n }));\n setLines(nextLines);\n }\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n lineGenerator\n .x((d: Dot) => scales.x(d.x))\n .y((d: Dot) => scales.y(d.y));\n updateLines();\n }, [zoomStateKey, chartSizes.chartWidth, chartSizes.chartHeight]);\n\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n updateLines();\n }, [curveLayer?.smoothing]);\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${chartSizes.totalWidth} ${chartSizes.totalHeight}`}\n width={chartSizes.totalWidth}\n height={chartSizes.totalHeight}\n style={{pointerEvents: 'none'}}\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`} fontFamily=\"Manrope\">\n <clipPath id=\"viewportClipPath\">\n <rect x=\"0\" y=\"0\" width={chartSizes.chartWidth} height={chartSizes.chartHeight}/>\n </clipPath>\n <ChartsTitle\n title={mainTitle}\n show={title.show}\n position={title.position}\n leftPadding={margins.left}\n rightPadding={margins.right}\n chartsWidth={chartSizes.chartWidth}\n />\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {xTitle && (\n <text\n x={chartSizes.chartWidth / 2}\n y={chartSizes.chartHeight + margins.bottom - TITLE_LINE / 2}\n >\n {getTitle(xTitle)}\n </text>\n )}\n {yTitle && (\n <text\n x={-margins.left + TITLE_LINE / 2}\n y={chartSizes.chartHeight / 2}\n transform={`rotate(-90,${-margins.left + TITLE_LINE / 2},${\n chartSizes.chartHeight / 2\n })`}\n >\n {getTitle(yTitle)}\n </text>\n )}\n </g>\n <ContinuousGrid\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n updatingKey={zoomStateKey}\n frameType={frame.type}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${chartSizes.chartHeight})`}>\n <ContinuousAxis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} />\n </g>\n )}\n {needLeftAxis && (\n <g>\n <ContinuousAxis scale={scales.y} orient=\"left\" tickSize={tickSizeY} />\n </g>\n )}\n {curveLayer && curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <path\n key={key}\n d={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {curveLayer && !curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <polyline\n key={key}\n points={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {chartSettings.tooltips.show && tooltipData.selectedData && (\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipData.selectedData, chartSettings.tooltips?.content)}\n x={scales.x(tooltipData.selectedData.x)}\n y={scales.y(tooltipData.selectedData.y)}\n active={true}\n fixed={tooltipData.fixed}\n sideDistances={sideDistances}\n container={container}\n onClose={tooltipData.onClose}\n />\n )}\n {legend.show && (\n <g transform={`translate(${chartSizes.chartWidth + LEGEND_OFFSET},0)`}>\n <Legend legendData={legendData} />\n </g>\n )}\n </g>\n </svg>\n );\n}\n\nexport default React.memo(LowerSvg);\n"],"names":["getTooltipContent","dataFrame","dot","columnsList","lines","column","columnFormatter","format","formatColumnValue","getTitle","title","lineGenerator","line","curveBasis","LowerSvg","scales","chartSettings","mainTitle","keyColumn","margins","chartSizes","container","zoomStateKey","legendData","dotsByGrouping","layers","aesGetters","tooltipData","useDataFrame","xAxis","yAxis","frame","legend","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","xTitle","yTitle","sideDistances","curveLayer","layer","setLines","useState","updateLines","nextLines","key","dots","d","useEffect","jsxs","jsx","fonts","ChartsTitle","BLACK","TITLE_LINE","ContinuousGrid","ContinuousAxis","_a","Tooltip","LEGEND_OFFSET","Legend","LowerSvg$1","React"],"mappings":";;;;;;;;;;;;;;;AAqBA,SAASA,GAAkBC,GAAsBC,GAAcC,IAA4B,CAAA,GAAM;AAC7F,QAAMC,IAAkB,CAAA;AACxB,aAAWC,KAAUF,GAAa;AAC9B,UAAMG,IAAkBD,KAAA,QAAAA,EAAQ,SAASE,EAAOF,EAAO,MAAM,IAAI;AACjE,IAAAD,EAAM,KAAK,GAAGC,EAAO,KAAK,KAAKG,EAAkBP,GAAWC,EAAI,KAAKG,GAAQC,CAAe,CAAC,EAAE;AAAA,EACnG;AACA,SAAOF;AACX;AAEA,SAASK,EAASC,GAAoC;AAClD,SAAI,OAAOA,KAAU,WACVA,IAEJA,EAAM,SAASA,EAAM;AAChC;AAEA,MAAMC,IAAgBC,EAAA,EAAY,MAAMC,CAAU;AAElD,SAASC,GAAS;AAAA,EACd,QAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AACJ,GAgBG;;AACC,QAAM1B,IAAY2B,EAAA,GACZ,EAAC,OAAAlB,GAAO,OAAAmB,GAAO,OAAAC,GAAO,OAAAC,GAAO,QAAAC,MAAUhB,GACvCiB,IAAYJ,EAAM,YAAYK,IAAqB,GACnDC,IAAYL,EAAM,YAAYI,IAAqB,GACnDE,IAASP,EAAM,OACfQ,IAASP,EAAM,OAIfQ,IAAgB;AAAA,IAClB,MAAM;AAAA,IACN,OAAOlB,EAAW;AAAA,IAClB,KAAK;AAAA,IACL,QAAQA,EAAW;AAAA,EAAA;AAGvB,MAAI,CAACC;AACD,WAAO;AAGX,QAAMkB,IAAad,EAAO,KAAK,CAAAe,MAASA,EAAM,SAAS,OAAO,GACxD,CAACpC,GAAOqC,CAAQ,IAAIC,EAAAA,SAA8C,CAAA,CAAE;AAE1E,WAASC,IAAc;AAEnB,UAAMC,IADO,OAAO,QAAQpB,CAAc,EACnB,IAAI,CAAC,CAACqB,GAAKC,CAAI,OAAO;AAAA,MACzC,KAAAD;AAAA,MACA,GAAGN,KAAA,QAAAA,EAAY,YAAY5B,EAAcmC,CAAI,KAAK,KAAKA,EAAK,IAAI,CAAAC,MAAK,GAAGhC,EAAO,EAAEgC,EAAE,CAAC,CAAC,IAAIhC,EAAO,EAAEgC,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG;AAAA,MAClH,KAAKD,EAAK,CAAC;AAAA,IAAA,EACb;AACF,IAAAL,EAASG,CAAS;AAAA,EACtB;AACAI,SAAAA,EAAAA,UAAU,MAAM;AACZ,IAAKT,MAGL5B,EACK,EAAE,CAACoC,MAAWhC,EAAO,EAAEgC,EAAE,CAAC,CAAC,EAC3B,EAAE,CAACA,MAAWhC,EAAO,EAAEgC,EAAE,CAAC,CAAC,GAChCJ,EAAA;AAAA,EACJ,GAAG,CAACrB,GAAcF,EAAW,YAAYA,EAAW,WAAW,CAAC,GAEhE4B,EAAAA,UAAU,MAAM;AACZ,IAAKT,KAGLI,EAAA;AAAA,EACJ,GAAG,CAACJ,KAAA,gBAAAA,EAAY,SAAS,CAAC,GAGtBU,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACG,OAAM;AAAA,MACN,SAAS,OAAO7B,EAAW,UAAU,IAAIA,EAAW,WAAW;AAAA,MAC/D,OAAOA,EAAW;AAAA,MAClB,QAAQA,EAAW;AAAA,MACnB,OAAO,EAAC,eAAe,OAAA;AAAA,MAEvB,UAAA;AAAA,QAAA8B,gBAAAA,EAAAA,IAAC,UAAM,UAAAC,EAAA,CAAM;AAAA,QACbF,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAa9B,EAAQ,IAAI,IAAIA,EAAQ,GAAG,KAAK,YAAW,WAClE,UAAA;AAAA,UAAA+B,gBAAAA,MAAC,YAAA,EAAS,IAAG,oBACT,UAAAA,gBAAAA,EAAAA,IAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAO9B,EAAW,YAAY,QAAQA,EAAW,aAAY,GACnF;AAAA,UACA8B,gBAAAA,EAAAA;AAAAA,YAACE;AAAA,YAAA;AAAA,cACG,OAAOnC;AAAA,cACP,MAAMP,EAAM;AAAA,cACZ,UAAUA,EAAM;AAAA,cAChB,aAAaS,EAAQ;AAAA,cACrB,cAAcA,EAAQ;AAAA,cACtB,aAAaC,EAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAE5B6B,gBAAAA,EAAAA,KAAC,KAAA,EAAE,kBAAiB,WAAU,YAAW,UAAS,YAAW,OAAM,UAAS,QAAO,MAAMI,GACpF,UAAA;AAAA,YAAAjB,KACGc,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACG,GAAG9B,EAAW,aAAa;AAAA,gBAC3B,GAAGA,EAAW,cAAcD,EAAQ,SAASmC,IAAa;AAAA,gBAEzD,YAASlB,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,YAGvBC,KACGa,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACG,GAAG,CAAC/B,EAAQ,OAAOmC,IAAa;AAAA,gBAChC,GAAGlC,EAAW,cAAc;AAAA,gBAC5B,WAAW,cAAc,CAACD,EAAQ,OAAOmC,IAAa,CAAC,IACnDlC,EAAW,cAAc,CAC7B;AAAA,gBAEC,YAASiB,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,UACpB,GAER;AAAA,UACAa,gBAAAA,EAAAA;AAAAA,YAACK;AAAA,YAAA;AAAA,cACG,OAAOnC,EAAW;AAAA,cAClB,QAAQA,EAAW;AAAA,cACnB,QAAQL,EAAO;AAAA,cACf,QAAQA,EAAO;AAAA,cACf,OAAOc;AAAA,cACP,OAAOC;AAAA,cACP,aAAaR;AAAA,cACb,WAAWS,EAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAGjBmB,gBAAAA,EAAAA,IAAC,KAAA,EAAE,WAAW,eAAe9B,EAAW,WAAW,KAC/C,UAAA8B,gBAAAA,EAAAA,IAACM,GAAA,EAAe,OAAOzC,EAAO,GAAG,QAAO,UAAS,UAAUkB,GAAW,GAC1E;AAAA,UAGAiB,gBAAAA,EAAAA,IAAC,KAAA,EACG,UAAAA,gBAAAA,EAAAA,IAACM,GAAA,EAAe,OAAOzC,EAAO,GAAG,QAAO,QAAO,UAAUoB,EAAA,CAAW,GACxE;AAAA,UAEHI,KAAcA,EAAW,aACtBW,gBAAAA,EAAAA,IAAC,OAAE,UAAS,0BACP,UAAA9C,EAAM,IAAI,CAAC,EAAC,KAAAyC,GAAK,GAAAE,GAAG,KAAA7C;;AACjBgD,mCAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBAEG,GAAAH;AAAA,gBACA,MAAK;AAAA,gBACL,QAAQrB,EAAW,QAAQxB,EAAI,GAAG;AAAA,gBAClC,cAAauD,IAAAlB,EAAW,QAAX,gBAAAkB,EAAgB;AAAA,gBAC7B,iBAAiB/B,EAAW,SAASxB,EAAI,GAAG;AAAA,cAAA;AAAA,cALvC2C;AAAA,YAAA;AAAA,WAOZ,GACL;AAAA,UAEHN,KAAc,CAACA,EAAW,mCACtB,KAAA,EAAE,UAAS,0BACP,UAAAnC,EAAM,IAAI,CAAC,EAAC,KAAAyC,GAAK,GAAAE,GAAG,KAAA7C;;AACjBgD,mCAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBAEG,QAAQH;AAAA,gBACR,MAAK;AAAA,gBACL,QAAQrB,EAAW,QAAQxB,EAAI,GAAG;AAAA,gBAClC,cAAauD,IAAAlB,EAAW,QAAX,gBAAAkB,EAAgB;AAAA,gBAC7B,iBAAiB/B,EAAW,SAASxB,EAAI,GAAG;AAAA,cAAA;AAAA,cALvC2C;AAAA,YAAA;AAAA,WAOZ,GACL;AAAA,UAEH7B,EAAc,SAAS,QAAQW,EAAY,gBACxCuB,gBAAAA,EAAAA;AAAAA,YAACQ;AAAA,YAAA;AAAA,cACG,SAAS1D,GAAkBC,GAAW0B,EAAY,eAAc8B,IAAAzC,EAAc,aAAd,gBAAAyC,EAAwB,OAAO;AAAA,cAC/F,GAAG1C,EAAO,EAAEY,EAAY,aAAa,CAAC;AAAA,cACtC,GAAGZ,EAAO,EAAEY,EAAY,aAAa,CAAC;AAAA,cACtC,QAAQ;AAAA,cACR,OAAOA,EAAY;AAAA,cACnB,eAAAW;AAAA,cACA,WAAAjB;AAAA,cACA,SAASM,EAAY;AAAA,YAAA;AAAA,UAAA;AAAA,UAG5BK,EAAO,QACJkB,gBAAAA,MAAC,KAAA,EAAE,WAAW,aAAa9B,EAAW,aAAauC,CAAa,OAC5D,UAAAT,gBAAAA,EAAAA,IAACU,GAAA,EAAO,YAAArC,GAAwB,EAAA,CACpC;AAAA,QAAA,EAAA,CAER;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGZ;AAEA,MAAAsC,KAAeC,EAAM,KAAKhD,EAAQ;"}
|
|
1
|
+
{"version":3,"file":"LowerSVG.js","sources":["../../../src/scatterplot-umap/components/LowerSVG.tsx"],"sourcesContent":["import {format} from 'd3-format';\nimport { curveBasis, line } from 'd3-shape';\nimport React, { useEffect, useState } from 'react';\nimport { ChartsTitle } from '../../common/ChartsTitle';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport fonts from '../../common/fonts';\nimport { Legend } from '../../common/Legend';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport type { LegendData } from '../../common/types';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport { BLACK } from '../../constants';\nimport type { DataFrame } from '../../DataFrame';\nimport { ContinuousAxis } from '../../common/ContinuousAxis';\nimport {formatColumnValue} from '../../scatterplot/utils/formatColumnValue';\nimport type { ColumnName } from '../../types';\nimport type { CurveUmapLayer } from '../../types/scatterplot-umap';\nimport { DEFAULT_TICKS_SIZE, LEGEND_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotUmapSettingsImpl } from '../SettingsImpl';\nimport type { CaptionsSizes, ChartScales, ChartSizes, Dot, DotInfo, Margins, SVGLayerProps } from '../types';\n\nfunction getTooltipContent(dataFrame: DataFrame, dot: DotInfo, columnsList: ColumnName[] = [], ) {\n const lines: string[] = [];\n for (const column of columnsList) {\n const columnFormatter = column?.format ? format(column.format) : undefined;\n lines.push(`${column.label}: ${formatColumnValue(dataFrame, dot.idx, column, columnFormatter)}`);\n }\n return lines;\n}\n\nfunction getTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.label ?? title.value;\n}\n\nconst lineGenerator = line<Dot>().curve(curveBasis);\n\nfunction LowerSvg({\n scales,\n chartSettings,\n mainTitle,\n keyColumn,\n margins,\n chartSizes,\n container,\n zoomStateKey,\n legendData,\n dotsByGrouping,\n layers,\n aesGetters,\n tooltipData\n}: {\n aesGetters: SVGLayerProps['aesGetters'];\n scales: ChartScales;\n chartSettings: ScatterplotUmapSettingsImpl['chartSettings'];\n mainTitle: string[];\n keyColumn: ColumnName | null;\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n selectedDot?: DotInfo | null;\n container: SVGElement | null;\n zoomStateKey: string;\n legendData: LegendData;\n dotsByGrouping: Record<string, Dot[]>;\n layers: ScatterplotUmapSettingsImpl['layers'];\n tooltipData: TooltipsData<DotInfo>;\n}) {\n const dataFrame = useDataFrame();\n const {title, xAxis, yAxis, frame, legend} = chartSettings;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const xTitle = xAxis.title;\n const yTitle = yAxis.title;\n const needLeftAxis = true;\n const needBottomAxis = true;\n\n const sideDistances = {\n left: 0,\n right: chartSizes.chartWidth,\n top: 0,\n bottom: chartSizes.chartHeight,\n };\n\n if (!container) {\n return null;\n }\n\n const curveLayer = layers.find(layer => layer.type === 'curve') as CurveUmapLayer | undefined;\n const [lines, setLines] = useState<{key: string, d:string, dot: Dot}[]>([]);\n\n function updateLines() {\n const data = Object.entries(dotsByGrouping);\n const nextLines = data.map(([key, dots]) => ({\n key,\n d: curveLayer?.smoothing ? lineGenerator(dots) ?? '' : dots.map(d => `${scales.x(d.x)},${scales.y(d.y)}`).join(' '),\n dot: dots[0]\n }));\n setLines(nextLines);\n }\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n lineGenerator\n .x((d: Dot) => scales.x(d.x))\n .y((d: Dot) => scales.y(d.y));\n updateLines();\n }, [zoomStateKey, chartSizes.chartWidth, chartSizes.chartHeight]);\n\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n updateLines();\n }, [curveLayer?.smoothing]);\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${chartSizes.totalWidth} ${chartSizes.totalHeight}`}\n width={chartSizes.totalWidth}\n height={chartSizes.totalHeight}\n style={{pointerEvents: 'none'}}\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`} fontFamily=\"Manrope\">\n <clipPath id=\"viewportClipPath\">\n <rect x=\"0\" y=\"0\" width={chartSizes.chartWidth} height={chartSizes.chartHeight}/>\n </clipPath>\n <ChartsTitle\n title={mainTitle}\n show={title.show}\n position={title.position}\n leftPadding={-margins.left}\n rightPadding={margins.right}\n chartsWidth={chartSizes.totalWidth}\n />\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {xTitle && (\n <text\n x={chartSizes.chartWidth / 2}\n y={chartSizes.chartHeight + margins.bottom - TITLE_LINE / 2}\n >\n {getTitle(xTitle)}\n </text>\n )}\n {yTitle && (\n <text\n x={-margins.left + TITLE_LINE / 2}\n y={chartSizes.chartHeight / 2}\n transform={`rotate(-90,${-margins.left + TITLE_LINE / 2},${\n chartSizes.chartHeight / 2\n })`}\n >\n {getTitle(yTitle)}\n </text>\n )}\n </g>\n <ContinuousGrid\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n updatingKey={zoomStateKey}\n frameType={frame.type}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${chartSizes.chartHeight})`}>\n <ContinuousAxis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} />\n </g>\n )}\n {needLeftAxis && (\n <g>\n <ContinuousAxis scale={scales.y} orient=\"left\" tickSize={tickSizeY} />\n </g>\n )}\n {curveLayer && curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <path\n key={key}\n d={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {curveLayer && !curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <polyline\n key={key}\n points={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {chartSettings.tooltips.show && tooltipData.selectedData && (\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipData.selectedData, chartSettings.tooltips?.content)}\n x={scales.x(tooltipData.selectedData.x)}\n y={scales.y(tooltipData.selectedData.y)}\n active={true}\n fixed={tooltipData.fixed}\n sideDistances={sideDistances}\n container={container}\n onClose={tooltipData.onClose}\n />\n )}\n {legend.show && (\n <g transform={`translate(${chartSizes.chartWidth + LEGEND_OFFSET},0)`}>\n <Legend legendData={legendData} />\n </g>\n )}\n </g>\n </svg>\n );\n}\n\nexport default React.memo(LowerSvg);\n"],"names":["getTooltipContent","dataFrame","dot","columnsList","lines","column","columnFormatter","format","formatColumnValue","getTitle","title","lineGenerator","line","curveBasis","LowerSvg","scales","chartSettings","mainTitle","keyColumn","margins","chartSizes","container","zoomStateKey","legendData","dotsByGrouping","layers","aesGetters","tooltipData","useDataFrame","xAxis","yAxis","frame","legend","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","xTitle","yTitle","sideDistances","curveLayer","layer","setLines","useState","updateLines","nextLines","key","dots","d","useEffect","jsxs","jsx","fonts","ChartsTitle","BLACK","TITLE_LINE","ContinuousGrid","ContinuousAxis","_a","Tooltip","LEGEND_OFFSET","Legend","LowerSvg$1","React"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPointShape.d.ts","sourceRoot":"","sources":["../../src/utils/getPointShape.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"getPointShape.d.ts","sourceRoot":"","sources":["../../src/utils/getPointShape.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,SAAI,EAAE,SAAS,SAAQ,EAAE,WAAW,GAAE,MAAM,GAAG,IAAW,gDA+OrH"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { j as n } from "../node_modules/react/jsx-runtime.js";
|
|
2
|
-
import { BLACK as
|
|
3
|
-
import { exhaustive as
|
|
4
|
-
import
|
|
5
|
-
function r
|
|
6
|
-
return
|
|
2
|
+
import { BLACK as p } from "../constants.js";
|
|
3
|
+
import { exhaustive as L } from "./index.js";
|
|
4
|
+
import x from "../node_modules/d3-scale/src/linear.js";
|
|
5
|
+
function h(r) {
|
|
6
|
+
return x().domain([0, 1]).range([r, p])(0.25);
|
|
7
7
|
}
|
|
8
|
-
const
|
|
9
|
-
function I(
|
|
10
|
-
switch (
|
|
8
|
+
const c = 1.4;
|
|
9
|
+
function I(r, $ = 6, a = p, M = null) {
|
|
10
|
+
switch (r) {
|
|
11
11
|
case null:
|
|
12
12
|
return "";
|
|
13
13
|
case "0":
|
|
@@ -15,7 +15,7 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
15
15
|
"path",
|
|
16
16
|
{
|
|
17
17
|
d: `M -${$},-${$} l ${$ * 2},0 l 0,${$ * 2} l -${$ * 2},0 l 0,-${$ * 2}z`,
|
|
18
|
-
fill: "
|
|
18
|
+
fill: "transparent",
|
|
19
19
|
stroke: a
|
|
20
20
|
}
|
|
21
21
|
);
|
|
@@ -24,7 +24,7 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
24
24
|
"path",
|
|
25
25
|
{
|
|
26
26
|
d: `M -${$},0 a ${$},${$} 0 1,0 ${$ * 2},0 a ${$},${$} 0 1,0 -${$ * 2},0z`,
|
|
27
|
-
fill: "
|
|
27
|
+
fill: "transparent",
|
|
28
28
|
stroke: a
|
|
29
29
|
}
|
|
30
30
|
);
|
|
@@ -33,31 +33,37 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
33
33
|
"path",
|
|
34
34
|
{
|
|
35
35
|
d: `M0,-${$}L ${2 * $ * Math.tan(Math.PI / 6)},${$}L ${-2 * $ * Math.tan(Math.PI / 6)},${$}z`,
|
|
36
|
-
fill: "
|
|
36
|
+
fill: "transparent",
|
|
37
37
|
stroke: a
|
|
38
38
|
}
|
|
39
39
|
);
|
|
40
40
|
case "3":
|
|
41
|
-
return /* @__PURE__ */ n.
|
|
41
|
+
return /* @__PURE__ */ n.jsxs("g", { children: [
|
|
42
|
+
/* @__PURE__ */ n.jsx("circle", { r: $, fill: "transparent", stroke: "none" }),
|
|
43
|
+
/* @__PURE__ */ n.jsx("path", { d: `M0,-${$}L 0,${$} M -${$},0 L ${$},0`, fill: "none", stroke: a })
|
|
44
|
+
] });
|
|
42
45
|
case "4":
|
|
43
|
-
return /* @__PURE__ */ n.
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
return /* @__PURE__ */ n.jsxs("g", { children: [
|
|
47
|
+
/* @__PURE__ */ n.jsx("circle", { r: $, fill: "transparent", stroke: "none" }),
|
|
48
|
+
/* @__PURE__ */ n.jsx(
|
|
49
|
+
"path",
|
|
50
|
+
{
|
|
51
|
+
d: `M-${$},-${$}L ${$},${$} M ${$},-${$} L -${$},${$}`,
|
|
52
|
+
fill: "transparent",
|
|
53
|
+
stroke: a
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
] });
|
|
51
57
|
case "5": {
|
|
52
|
-
const t = $ *
|
|
53
|
-
return /* @__PURE__ */ n.jsx("path", { d: `M0,-${t}L ${t},0 L 0,${t} L -${t},0z`, fill: "
|
|
58
|
+
const t = $ * c;
|
|
59
|
+
return /* @__PURE__ */ n.jsx("path", { d: `M0,-${t}L ${t},0 L 0,${t} L -${t},0z`, fill: "transparent", stroke: a });
|
|
54
60
|
}
|
|
55
61
|
case "6":
|
|
56
62
|
return /* @__PURE__ */ n.jsx(
|
|
57
63
|
"path",
|
|
58
64
|
{
|
|
59
65
|
d: `M${-2 * $ * Math.tan(Math.PI / 6)},-${$}L ${2 * $ * Math.tan(Math.PI / 6)},-${$}L0,${$}z`,
|
|
60
|
-
fill: "
|
|
66
|
+
fill: "transparent",
|
|
61
67
|
stroke: a
|
|
62
68
|
}
|
|
63
69
|
);
|
|
@@ -66,28 +72,31 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
66
72
|
"path",
|
|
67
73
|
{
|
|
68
74
|
d: `M -${$},-${$} l ${$ * 2},0 l 0,${$ * 2} l -${$ * 2},0 l 0,-${$ * 2}z M-${$},-${$}L ${$},${$} M ${$},-${$} L -${$},${$}`,
|
|
69
|
-
fill: "
|
|
75
|
+
fill: "transparent",
|
|
70
76
|
stroke: a
|
|
71
77
|
}
|
|
72
78
|
);
|
|
73
79
|
case "8": {
|
|
74
80
|
const t = $ * 2 * Math.cos(Math.PI / 4);
|
|
75
|
-
return /* @__PURE__ */ n.
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
return /* @__PURE__ */ n.jsxs("g", { children: [
|
|
82
|
+
/* @__PURE__ */ n.jsx("circle", { r: $, fill: "transparent", stroke: "none" }),
|
|
83
|
+
/* @__PURE__ */ n.jsx(
|
|
84
|
+
"path",
|
|
85
|
+
{
|
|
86
|
+
d: `M0,-${t}L 0,${t} M -${t},0 L ${t},0 M-${$},-${$}L ${$},${$} M ${$},-${$} L -${$},${$}`,
|
|
87
|
+
fill: "transparent",
|
|
88
|
+
stroke: a
|
|
89
|
+
}
|
|
90
|
+
)
|
|
91
|
+
] });
|
|
83
92
|
}
|
|
84
93
|
case "9": {
|
|
85
|
-
const t = $ *
|
|
94
|
+
const t = $ * c;
|
|
86
95
|
return /* @__PURE__ */ n.jsx(
|
|
87
96
|
"path",
|
|
88
97
|
{
|
|
89
98
|
d: `M0,-${t}L ${t},0 L 0,${t} L -${t},0z M0,-${t}L 0,${t} M -${t},0 L ${t},0`,
|
|
90
|
-
fill: "
|
|
99
|
+
fill: "transparent",
|
|
91
100
|
stroke: a
|
|
92
101
|
}
|
|
93
102
|
);
|
|
@@ -97,7 +106,7 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
97
106
|
"path",
|
|
98
107
|
{
|
|
99
108
|
d: `M -${$},0 a ${$},${$} 0 1,0 ${$ * 2},0 a ${$},${$} 0 1,0 -${$ * 2},0z M0,-${$}L 0,${$} M -${$},0 L ${$},0`,
|
|
100
|
-
fill: "
|
|
109
|
+
fill: "transparent",
|
|
101
110
|
stroke: a
|
|
102
111
|
}
|
|
103
112
|
);
|
|
@@ -108,7 +117,7 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
108
117
|
{
|
|
109
118
|
d: `M-${t},-${$}L${t},-${$}L0,${-$ + 2 * t}z
|
|
110
119
|
M-${t},${$}L0,${$ - 2 * t}L${t},${$}z`,
|
|
111
|
-
fill: "
|
|
120
|
+
fill: "transparent",
|
|
112
121
|
stroke: a
|
|
113
122
|
}
|
|
114
123
|
);
|
|
@@ -118,7 +127,7 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
118
127
|
"path",
|
|
119
128
|
{
|
|
120
129
|
d: `M -${$},-${$} l ${$ * 2},0 l 0,${$ * 2} l -${$ * 2},0 l 0,-${$ * 2}z M0,-${$}L 0,${$} M -${$},0 L ${$},0`,
|
|
121
|
-
fill: "
|
|
130
|
+
fill: "transparent",
|
|
122
131
|
stroke: a
|
|
123
132
|
}
|
|
124
133
|
);
|
|
@@ -136,7 +145,7 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
136
145
|
"path",
|
|
137
146
|
{
|
|
138
147
|
d: `M -${$},-${$} l ${$ * 2},0 l 0,${$ * 2} l -${$ * 2},0 l 0,-${$ * 2}z M-${$},${$}L0,${-$}L${$},${$}`,
|
|
139
|
-
fill: "
|
|
148
|
+
fill: "transparent",
|
|
140
149
|
stroke: a
|
|
141
150
|
}
|
|
142
151
|
);
|
|
@@ -168,7 +177,7 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
168
177
|
}
|
|
169
178
|
);
|
|
170
179
|
case "18": {
|
|
171
|
-
const t = $ *
|
|
180
|
+
const t = $ * c;
|
|
172
181
|
return /* @__PURE__ */ n.jsx("path", { d: `M0,-${t}L ${t},0 L 0,${t} L -${t},0z`, fill: a, stroke: a });
|
|
173
182
|
}
|
|
174
183
|
case "20": {
|
|
@@ -188,7 +197,7 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
188
197
|
{
|
|
189
198
|
d: `M -${$},-${$} l ${$ * 2},0 l 0,${$ * 2} l -${$ * 2},0 l 0,-${$ * 2}z`,
|
|
190
199
|
fill: a,
|
|
191
|
-
stroke:
|
|
200
|
+
stroke: M ?? h(a)
|
|
192
201
|
}
|
|
193
202
|
);
|
|
194
203
|
case "21":
|
|
@@ -197,7 +206,7 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
197
206
|
{
|
|
198
207
|
d: `M -${$},0 a ${$},${$} 0 1,0 ${$ * 2},0 a ${$},${$} 0 1,0 -${$ * 2},0z`,
|
|
199
208
|
fill: a,
|
|
200
|
-
stroke:
|
|
209
|
+
stroke: M ?? h(a)
|
|
201
210
|
}
|
|
202
211
|
);
|
|
203
212
|
case "24":
|
|
@@ -206,12 +215,12 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
206
215
|
{
|
|
207
216
|
d: `M0,-${$}L ${2 * $ * Math.tan(Math.PI / 6)},${$}L ${-2 * $ * Math.tan(Math.PI / 6)},${$}z`,
|
|
208
217
|
fill: a,
|
|
209
|
-
stroke:
|
|
218
|
+
stroke: M ?? h(a)
|
|
210
219
|
}
|
|
211
220
|
);
|
|
212
221
|
case "23": {
|
|
213
|
-
const t = $ *
|
|
214
|
-
return /* @__PURE__ */ n.jsx("path", { d: `M0,-${t}L ${t},0 L 0,${t} L -${t},0z`, fill: a, stroke:
|
|
222
|
+
const t = $ * c;
|
|
223
|
+
return /* @__PURE__ */ n.jsx("path", { d: `M0,-${t}L ${t},0 L 0,${t} L -${t},0z`, fill: a, stroke: M ?? h(a) });
|
|
215
224
|
}
|
|
216
225
|
case "25":
|
|
217
226
|
return /* @__PURE__ */ n.jsx(
|
|
@@ -219,11 +228,11 @@ function I(M, $ = 6, a = c, h = null) {
|
|
|
219
228
|
{
|
|
220
229
|
d: `M${-2 * $ * Math.tan(Math.PI / 6)},-${$}L ${2 * $ * Math.tan(Math.PI / 6)},-${$}L0,${$}z`,
|
|
221
230
|
fill: a,
|
|
222
|
-
stroke:
|
|
231
|
+
stroke: M ?? h(a)
|
|
223
232
|
}
|
|
224
233
|
);
|
|
225
234
|
default:
|
|
226
|
-
|
|
235
|
+
L(r, `Unknown point shape ${r}`);
|
|
227
236
|
}
|
|
228
237
|
}
|
|
229
238
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPointShape.js","sources":["../../src/utils/getPointShape.tsx"],"sourcesContent":["import {BLACK} from '../constants';\nimport {exhaustive} from './index';\nimport {scaleLinear} from 'd3-scale';\nimport React from 'react';\nimport type {PointShape} from '../types';\n\nfunction darker (color:string) {\n const scale = scaleLinear<string>().domain([0,1]).range([color, BLACK]);\n return scale(0.25);\n}\n\nconst DIAMOND_COEF = 1.4;\nexport function getPointShape(shape: PointShape | null, size = 6, fillColor = BLACK, strokeColor:string|null = null) {\n switch (shape) {\n case null:\n return '';\n // empty square\n case '0':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${size * 2}z`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // empty circle\n case '1':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${size * 2},0z`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // empty triangle up\n case '2':\n return (\n <path\n d={`M0,-${size}L ${2 * size * Math.tan(Math.PI / 6)},${size}L ${-2 * size * Math.tan((Math.PI) / 6)},${size}z`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // 'plus' cross\n case '3':\n return <path d={`M0,-${size}L 0,${size} M -${size},0 L ${size},0`} fill=\"none\" stroke={fillColor} />;\n // 'close' cross\n case '4':\n return (\n <path\n d={`M-${size},-${size}L ${size},${size} M ${size},-${size} L -${size},${size}`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // empty diamond\n case '5': {\n const a = size * DIAMOND_COEF;\n return <path d={`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`} fill=\"none\" stroke={fillColor} />;\n }\n // empty triangle down\n case '6':\n return (\n <path\n d={`M${-2 * size * Math.tan(Math.PI / 6)},-${size}L ${2 * size * Math.tan(Math.PI / 6)},-${size}L0,${size}z`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // empty square and 'close' cross\n case '7':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${\n size * 2\n }z M-${size},-${size}L ${size},${size} M ${size},-${size} L -${size},${size}`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // snowflake\n case '8': {\n const a = size * 2 * Math.cos(Math.PI / 4);\n return (\n <path\n d={`M0,-${a}L 0,${a} M -${a},0 L ${a},0 M-${size},-${size}L ${size},${size} M ${size},-${size} L -${size},${size}`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n }\n // empty diamond and 'plus' cross\n case '9': {\n const a = size * DIAMOND_COEF;\n return (\n <path\n d={`M0,-${a}L ${a},0 L 0,${a} L -${a},0z M0,-${a}L 0,${a} M -${a},0 L ${a},0`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n }\n // empty circle and 'plus' cross\n case '10':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${\n size * 2\n },0z M0,-${size}L 0,${size} M -${size},0 L ${size},0`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // two empty triangles up and down\n case '11': {\n const a = 2 * size * Math.tan(Math.PI / 6);\n return (\n <path\n d={`M-${a},-${size}L${a},-${size}L0,${-size + 2 * a}z\n M-${a},${size}L0,${size - 2 * a}L${a},${size}z`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n }\n // empty square and 'plus' cross\n case '12':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${\n size * 2\n }z M0,-${size}L 0,${size} M -${size},0 L ${size},0`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // empty circle and 'close' cross\n case '13':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${\n size * 2\n },0z M-${size},-${size}L ${size},${size} M ${size},-${size} L -${size},${size}`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // empty square and empty triangle up\n case '14':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${\n size * 2\n }z M-${size},${size}L0,${-size}L${size},${size}`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // black square\n case '15':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${size * 2}z`}\n fill={fillColor}\n stroke={fillColor}\n />\n );\n // black circle\n case '16':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${size * 2},0z`}\n fill={fillColor}\n stroke={fillColor}\n />\n );\n // black triangle\n case '17':\n return (\n <path\n d={`M0,-${size}L ${2 * size * Math.tan(Math.PI / 6)},${size}L ${-2 * size * Math.tan((Math.PI) / 6)},${size}z`}\n fill={fillColor}\n stroke={fillColor}\n />\n );\n // black diamond\n case '18': {\n const a = size * DIAMOND_COEF;\n return <path d={`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`} fill={fillColor} stroke={fillColor} />;\n }\n // small black circle\n case '20': {\n const a = (size * 2) / 3;\n return (\n <path\n d={`M -${a},0 a ${a},${a} 0 1,0 ${a * 2},0 a ${a},${a} 0 1,0 -${a * 2},0z`}\n fill={fillColor}\n stroke={fillColor}\n />\n );\n }\n // colored square\n case '22':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${size * 2}z`}\n fill={fillColor}\n stroke={strokeColor ?? darker(fillColor)}\n />\n );\n // colored circle\n case '21':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${size * 2},0z`}\n fill={fillColor}\n stroke={strokeColor ?? darker(fillColor)}\n />\n );\n // colored triangle up\n case '24':\n return (\n <path\n d={`M0,-${size}L ${2 * size * Math.tan(Math.PI / 6)},${size}L ${-2 * size * Math.tan((Math.PI) / 6)},${size}z`}\n fill={fillColor}\n stroke={strokeColor ?? darker(fillColor)}\n />\n );\n // colored diamond\n case '23': {\n const a = size * DIAMOND_COEF;\n return <path d={`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`} fill={fillColor} stroke={strokeColor ?? darker(fillColor)} />;\n }\n // colored triangle down\n case '25':\n return (\n <path\n d={`M${-2 * size * Math.tan(Math.PI / 6)},-${size}L ${2 * size * Math.tan(Math.PI / 6)},-${size}L0,${size}z`}\n fill={fillColor}\n stroke={strokeColor ?? darker(fillColor)}\n />\n );\n default:\n exhaustive(shape, `Unknown point shape ${shape}`);\n }\n}\n"],"names":["darker","color","scaleLinear","BLACK","DIAMOND_COEF","getPointShape","shape","size","fillColor","strokeColor","jsx","a","exhaustive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getPointShape.js","sources":["../../src/utils/getPointShape.tsx"],"sourcesContent":["import { BLACK } from '../constants';\nimport { exhaustive } from './index';\nimport { scaleLinear } from 'd3-scale';\nimport React from 'react';\nimport type { PointShape } from '../types';\n\nfunction darker(color: string) {\n const scale = scaleLinear<string>().domain([0, 1]).range([color, BLACK]);\n return scale(0.25);\n}\n\nconst DIAMOND_COEF = 1.4;\nexport function getPointShape(shape: PointShape | null, size = 6, fillColor = BLACK, strokeColor: string | null = null) {\n switch (shape) {\n case null:\n return '';\n // empty square\n case '0':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${size * 2}z`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n // empty circle\n case '1':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${size * 2},0z`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n // empty triangle up\n case '2':\n return (\n <path\n d={`M0,-${size}L ${2 * size * Math.tan(Math.PI / 6)},${size}L ${-2 * size * Math.tan((Math.PI) / 6)},${size}z`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n // 'plus' cross\n case '3':\n return (\n <g>\n <circle r={size} fill=\"transparent\" stroke=\"none\" />\n <path d={`M0,-${size}L 0,${size} M -${size},0 L ${size},0`} fill=\"none\" stroke={fillColor} />\n </g>);\n // 'close' cross\n case '4':\n return (\n <g>\n <circle r={size} fill=\"transparent\" stroke=\"none\" />\n <path\n d={`M-${size},-${size}L ${size},${size} M ${size},-${size} L -${size},${size}`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n </g>\n );\n // empty diamond\n case '5': {\n const a = size * DIAMOND_COEF;\n return <path d={`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`} fill=\"transparent\" stroke={fillColor} />;\n }\n // empty triangle down\n case '6':\n return (\n <path\n d={`M${-2 * size * Math.tan(Math.PI / 6)},-${size}L ${2 * size * Math.tan(Math.PI / 6)},-${size}L0,${size}z`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n // empty square and 'close' cross\n case '7':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${size * 2\n }z M-${size},-${size}L ${size},${size} M ${size},-${size} L -${size},${size}`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n // snowflake\n case '8': {\n const a = size * 2 * Math.cos(Math.PI / 4);\n return (\n <g>\n <circle r={size} fill=\"transparent\" stroke=\"none\" />\n <path\n d={`M0,-${a}L 0,${a} M -${a},0 L ${a},0 M-${size},-${size}L ${size},${size} M ${size},-${size} L -${size},${size}`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n </g>\n );\n }\n // empty diamond and 'plus' cross\n case '9': {\n const a = size * DIAMOND_COEF;\n return (\n <path\n d={`M0,-${a}L ${a},0 L 0,${a} L -${a},0z M0,-${a}L 0,${a} M -${a},0 L ${a},0`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n }\n // empty circle and 'plus' cross\n case '10':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${size * 2\n },0z M0,-${size}L 0,${size} M -${size},0 L ${size},0`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n // two empty triangles up and down\n case '11': {\n const a = 2 * size * Math.tan(Math.PI / 6);\n return (\n <path\n d={`M-${a},-${size}L${a},-${size}L0,${-size + 2 * a}z\n M-${a},${size}L0,${size - 2 * a}L${a},${size}z`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n }\n // empty square and 'plus' cross\n case '12':\n return (\n\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${size * 2\n }z M0,-${size}L 0,${size} M -${size},0 L ${size},0`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n // empty circle and 'close' cross\n case '13':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${size * 2\n },0z M-${size},-${size}L ${size},${size} M ${size},-${size} L -${size},${size}`}\n fill=\"none\"\n stroke={fillColor}\n />\n );\n // empty square and empty triangle up\n case '14':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${size * 2\n }z M-${size},${size}L0,${-size}L${size},${size}`}\n fill=\"transparent\"\n stroke={fillColor}\n />\n );\n // black square\n case '15':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${size * 2}z`}\n fill={fillColor}\n stroke={fillColor}\n />\n );\n // black circle\n case '16':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${size * 2},0z`}\n fill={fillColor}\n stroke={fillColor}\n />\n );\n // black triangle\n case '17':\n return (\n <path\n d={`M0,-${size}L ${2 * size * Math.tan(Math.PI / 6)},${size}L ${-2 * size * Math.tan((Math.PI) / 6)},${size}z`}\n fill={fillColor}\n stroke={fillColor}\n />\n );\n // black diamond\n case '18': {\n const a = size * DIAMOND_COEF;\n return <path d={`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`} fill={fillColor} stroke={fillColor} />;\n }\n // small black circle\n case '20': {\n const a = (size * 2) / 3;\n return (\n <path\n d={`M -${a},0 a ${a},${a} 0 1,0 ${a * 2},0 a ${a},${a} 0 1,0 -${a * 2},0z`}\n fill={fillColor}\n stroke={fillColor}\n />\n );\n }\n // colored square\n case '22':\n return (\n <path\n d={`M -${size},-${size} l ${size * 2},0 l 0,${size * 2} l -${size * 2},0 l 0,-${size * 2}z`}\n fill={fillColor}\n stroke={strokeColor ?? darker(fillColor)}\n />\n );\n // colored circle\n case '21':\n return (\n <path\n d={`M -${size},0 a ${size},${size} 0 1,0 ${size * 2},0 a ${size},${size} 0 1,0 -${size * 2},0z`}\n fill={fillColor}\n stroke={strokeColor ?? darker(fillColor)}\n />\n );\n // colored triangle up\n case '24':\n return (\n <path\n d={`M0,-${size}L ${2 * size * Math.tan(Math.PI / 6)},${size}L ${-2 * size * Math.tan((Math.PI) / 6)},${size}z`}\n fill={fillColor}\n stroke={strokeColor ?? darker(fillColor)}\n />\n );\n // colored diamond\n case '23': {\n const a = size * DIAMOND_COEF;\n return <path d={`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`} fill={fillColor} stroke={strokeColor ?? darker(fillColor)} />;\n }\n // colored triangle down\n case '25':\n return (\n <path\n d={`M${-2 * size * Math.tan(Math.PI / 6)},-${size}L ${2 * size * Math.tan(Math.PI / 6)},-${size}L0,${size}z`}\n fill={fillColor}\n stroke={strokeColor ?? darker(fillColor)}\n />\n );\n default:\n exhaustive(shape, `Unknown point shape ${shape}`);\n }\n}\n"],"names":["darker","color","scaleLinear","BLACK","DIAMOND_COEF","getPointShape","shape","size","fillColor","strokeColor","jsx","a","exhaustive"],"mappings":"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"}
|