@apia/charts 2.0.0 → 2.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"WaterfallBars.js","sources":["../../../src/charts/waterfallBars/WaterfallBars.tsx"],"sourcesContent":["import { Box, Heading } from '@apia/theme';\nimport { TChartRendererProps } from '../types';\nimport { arrayOrArray, getLabel, usePanAndZoom } from '@apia/util';\nimport React, { useMemo, useLayoutEffect, useState } from 'react';\nimport { scaleBand, scaleLinear } from '@visx/scale';\nimport { extent } from 'd3-array';\nimport { parseMargin } from '../util/parseMargin';\nimport { Group } from '@visx/group';\nimport { GridRows } from '@visx/grid';\nimport { AxisBottom, AxisLeft } from '@visx/axis';\nimport uniqueId from 'lodash-es/uniqueId';\nimport ChartSelector from '../util/ChartSelector';\nimport { WaterfallBar } from './WaterfallBar';\n// import { LegendContainer } from '../util/LegendContainer';\n\nexport interface IParsedColumn {\n columnName: string;\n [key: string]: string;\n}\n\ntype TDatum = { key: string; value: string };\n\nconst calculateWaterfallSteps = ({\n data,\n xAccessor,\n yAccessor,\n showFinal,\n colors,\n}: {\n data: TDatum[];\n xAccessor: (d: TDatum) => string;\n yAccessor: (d: TDatum) => string;\n showFinal: boolean;\n colors: {\n positive: string;\n negative: string;\n total: string;\n stepConnector: string;\n };\n}) => {\n // Holds cumulative value\n let cumulativeTotal = 0;\n\n // Calculate bars for each data point\n const steps = data.map((datum) => {\n const xValue = xAccessor(datum);\n const yValue = yAccessor(datum);\n\n const prevTotal = cumulativeTotal;\n cumulativeTotal += Number(yValue);\n\n return {\n x: xValue,\n y: yValue,\n start: prevTotal,\n end: cumulativeTotal,\n color: Number(yValue) > 0 ? colors.positive : colors.negative,\n };\n });\n\n // Add final Total bar\n if (showFinal) {\n steps.push({\n x: 'Total',\n y: cumulativeTotal as unknown as string,\n start: 0,\n end: cumulativeTotal,\n color: colors.total,\n });\n }\n\n return steps;\n};\nfunction adjustDimensions({\n width,\n height,\n maxWidth,\n}: {\n width: number;\n height: number;\n maxWidth: number;\n}) {\n if (width <= maxWidth) {\n return { width, height };\n }\n\n const ratio = width / height;\n const newWidth = maxWidth;\n const newHeight = Math.floor(newWidth / ratio);\n\n return { width: newWidth, height: newHeight };\n}\nexport const WaterfallBars = ({\n margin = { top: 20, left: 100, bottom: 150, right: 70 },\n chart: {\n waterfallColors = {\n positive: '#49b86f',\n negative: '#c92e5b',\n total: '#434857',\n stepConnector: '#888d94',\n },\n ...chart\n },\n className,\n chartId,\n allowZoom,\n}: TChartRendererProps) => {\n console.log({ margin });\n\n const effectiveMargin = parseMargin(margin);\n\n if (!chart.showAxisYTitle && effectiveMargin.left > 50) {\n effectiveMargin.left = 50;\n }\n let innerWidth =\n chart.ratio.width + (-effectiveMargin.left - effectiveMargin.right) / 2;\n let innerHeight =\n chart.ratio.height + (-effectiveMargin.top - effectiveMargin.bottom) / 2;\n if (innerWidth > chart.ratio.maxWidth) {\n const newValues = adjustDimensions({\n height: innerHeight,\n width: innerWidth,\n maxWidth: chart.ratio.maxWidth,\n });\n innerWidth = newValues.width;\n innerHeight = newValues.height;\n }\n\n const getXValue = (d: TDatum) => d.key;\n const getYValue = (d: TDatum) => d.value;\n\n const charts = arrayOrArray(chart.dataSets?.data)\n .filter((piece) => !!piece.sets)\n .map((piece) => {\n return {\n ...piece,\n coordinate: piece.sets,\n };\n });\n const [currentPie, setCurrentPie] = useState('0');\n const chartNames = charts.map((piece) => {\n return piece.name;\n });\n const steps = useMemo(\n () =>\n calculateWaterfallSteps({\n data: arrayOrArray(chart.dataSets.data)[currentPie as unknown as number]\n .sets as TDatum[],\n xAccessor: getXValue,\n yAccessor: getYValue,\n showFinal: chart.showTotal ?? true,\n colors: waterfallColors,\n }),\n [chart.dataSets.data, chart.showTotal, currentPie, waterfallColors],\n );\n\n // Build scales\n const padding = 0.2;\n\n const xScale = scaleBand({\n domain: steps.map((step) => step.x),\n padding,\n range: [0, innerWidth],\n });\n\n const yDomain = useMemo(() => {\n const values = steps.flatMap((step) => [step.start, step.end]);\n const [min, max] = extent<number>(values);\n return min != null && max != null ? [min, max + 3] : undefined;\n }, [steps]);\n\n const yScale = scaleLinear({\n domain: yDomain,\n nice: true,\n range: [innerHeight, 0],\n });\n\n const id = useMemo(() => `WaterfallBars${uniqueId()}`, []);\n useLayoutEffect(() => {\n document\n .querySelectorAll<HTMLElement>(`#${id} .tickLabel`)\n .forEach((current) => {\n const width = current.getBoundingClientRect().width;\n // eslint-disable-next-line no-param-reassign\n current.style.transformOrigin =\n (current.getAttribute('x') as string) + 'px 14px';\n // eslint-disable-next-line no-param-reassign\n current.style.transform = `rotate(25deg) translateX(${width / 2}px)`;\n });\n });\n\n const { boxRef, elementRef } = usePanAndZoom<HTMLElement, SVGSVGElement>(\n undefined,\n !allowZoom ?? true,\n );\n return (\n <>\n <Box\n id={id}\n className={`${className ? className : ''} chartBox chartContainer`}\n ref={boxRef}\n >\n <svg\n height={chart.ratio.height}\n width={chart.ratio.width}\n ref={elementRef}\n >\n <Group left={effectiveMargin.left} top={effectiveMargin.top}>\n {chart.showGrid && (\n <GridRows scale={yScale} width={innerWidth} strokeDasharray=\"5\" />\n )}\n {steps.map((step, index) => {\n const x = xScale(step.x);\n const y = yScale(Math.max(step.start, step.end));\n\n if (x == null || y == null) {\n return null;\n }\n\n const barHeight = Math.abs(yScale(step.start) - yScale(step.end));\n\n const isLast = index === steps.length - 1;\n const linePadding = 2;\n const x1 = x + xScale.bandwidth() + linePadding;\n const x2 = x + xScale.bandwidth() / (1 - padding) - linePadding;\n const lineY = step.end < step.start ? y + barHeight : y;\n\n const labelOffset = 10;\n const labelY =\n yScale(step.end) +\n ((step.y as unknown as number) < 0\n ? labelOffset\n : -labelOffset);\n\n let currentYValue = 0;\n steps\n .filter((_, i) => {\n if ((chart.showTotal ?? true) && !steps[i + 1]) {\n return false;\n }\n return i <= index;\n })\n .forEach((step) => {\n currentYValue += Number(step.y);\n });\n\n return (\n <WaterfallBar\n chart={chart}\n columnName={chartNames[currentPie as unknown as number]}\n fill={step.color}\n height={barHeight}\n isLast={isLast}\n key={index}\n lineY={lineY}\n step={step}\n stroke={waterfallColors.stepConnector}\n strokeDashArray={2}\n textContent={\n chart.showTotal ?? true\n ? step.y\n : (currentYValue as unknown as string)\n }\n textX={x + xScale.bandwidth() / 2}\n textY={labelY + 5}\n width={xScale.bandwidth()}\n x={x}\n y={y}\n x1={x1}\n x2={x2}\n />\n );\n })}\n <AxisLeft\n label={\n chart.chartType !== 'pie2D' && chart.showAxisYTitle\n ? chart.axisYTitle\n : ''\n }\n scale={yScale}\n hideTicks\n tickLabelProps={() => ({\n textAnchor: 'end',\n verticalAnchor: 'middle',\n display: chart.showAxisYTitle ? 'auto' : 'none',\n })}\n tickComponent={(props) => {\n let value = Number(props.formattedValue?.replace(',', ''));\n let counter = -1;\n const units = [\n 'k',\n 'M',\n 'G',\n 'T',\n 'P',\n 'E',\n 'Z',\n 'Y',\n 'R',\n 'Q',\n ];\n while (value >= 1000) {\n value = value / 1000;\n counter++;\n }\n let stringValue = `${value}`;\n if (stringValue.length > 3) {\n stringValue = stringValue.slice(0, 3);\n }\n if (stringValue.endsWith('.')) {\n stringValue = stringValue.replace('.', '');\n }\n const newValue = `${stringValue}${\n counter >= 0 ? units[counter] : ''\n }`;\n\n return (\n <>\n {chart.showAxisYTitle && (\n <text\n dx={props.dx}\n dy={props.dy}\n fill={props.fill}\n fontSize={props.fontSize}\n textAnchor={props.textAnchor}\n x={props.x}\n y={props.y}\n >\n {newValue}\n </text>\n )}\n </>\n );\n }}\n />\n <AxisBottom\n scale={xScale}\n top={innerHeight}\n tickLabelProps={{ display: 'none' }}\n tickLineProps={{ display: 'none' }}\n label={\n chart.chartType !== 'pie2D' && chart.showAxisXTitle\n ? chart.axisXTitle\n : ''\n }\n />\n </Group>\n </svg>\n </Box>\n <Box className=\"chartLegend__Wrapper\">\n {!chart.hideSelector && charts.length > 1 && (\n <Box className=\"chart__combo__wrapper\">\n {/* TODO LABEL */}\n <Heading as={'h6'}>{getLabel('lblChartSel').text}</Heading>\n <ChartSelector\n chartId={chartId}\n pieces={chartNames}\n className=\"chartSelectorCombo\"\n current={currentPie}\n setCurrent={setCurrentPie}\n />\n </Box>\n )}\n {/* {chart.showLegend && (\n <Box className=\"chart__legend__wrapper\"> */}\n {/* TODO LABEL */}\n {/* <Heading as={'h6'}>Legend</Heading>\n <LegendContainer\n id={chartId}\n avoidEvent\n references={[\n {\n title: arrayOrArray(chart.dataSets.data)[\n currentPie as unknown as number\n ].name,\n color: 'transparent',\n },\n ]}\n />\n </Box>\n )} */}\n </Box>\n </>\n );\n};\n"],"names":["step"],"mappings":"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"}
1
+ {"version":3,"file":"WaterfallBars.js","sources":["../../../src/charts/waterfallBars/WaterfallBars.tsx"],"sourcesContent":["import { Box, Heading } from '@apia/theme';\nimport { TChartRendererProps } from '../types';\nimport { arrayOrArray, getLabel, usePanAndZoom } from '@apia/util';\nimport React, { useMemo, useLayoutEffect, useState } from 'react';\nimport { scaleBand, scaleLinear } from '@visx/scale';\nimport { extent } from 'd3-array';\nimport { parseMargin } from '../util/parseMargin';\nimport { Group } from '@visx/group';\nimport { GridRows } from '@visx/grid';\nimport { AxisBottom, AxisLeft } from '@visx/axis';\nimport uniqueId from 'lodash-es/uniqueId';\nimport ChartSelector from '../util/ChartSelector';\nimport { WaterfallBar } from './WaterfallBar';\n// import { LegendContainer } from '../util/LegendContainer';\n\nexport interface IParsedColumn {\n columnName: string;\n [key: string]: string;\n}\n\ntype TDatum = { key: string; value: string };\n\nconst calculateWaterfallSteps = ({\n data,\n xAccessor,\n yAccessor,\n showFinal,\n colors,\n}: {\n data: TDatum[];\n xAccessor: (d: TDatum) => string;\n yAccessor: (d: TDatum) => string;\n showFinal: boolean;\n colors: {\n positive: string;\n negative: string;\n total: string;\n stepConnector: string;\n };\n}) => {\n // Holds cumulative value\n let cumulativeTotal = 0;\n\n // Calculate bars for each data point\n const steps = data.map((datum) => {\n const xValue = xAccessor(datum);\n const yValue = yAccessor(datum);\n\n const prevTotal = cumulativeTotal;\n cumulativeTotal += Number(yValue);\n\n return {\n x: xValue,\n y: yValue,\n start: prevTotal,\n end: cumulativeTotal,\n color: Number(yValue) > 0 ? colors.positive : colors.negative,\n };\n });\n\n // Add final Total bar\n if (showFinal) {\n steps.push({\n x: 'Total',\n y: cumulativeTotal as unknown as string,\n start: 0,\n end: cumulativeTotal,\n color: colors.total,\n });\n }\n\n return steps;\n};\nfunction adjustDimensions({\n width,\n height,\n maxWidth,\n}: {\n width: number;\n height: number;\n maxWidth: number;\n}) {\n if (width <= maxWidth) {\n return { width, height };\n }\n\n const ratio = width / height;\n const newWidth = maxWidth;\n const newHeight = Math.floor(newWidth / ratio);\n\n return { width: newWidth, height: newHeight };\n}\nexport const WaterfallBars = ({\n margin = { top: 20, left: 100, bottom: 150, right: 70 },\n chart: {\n waterfallColors = {\n positive: '#49b86f',\n negative: '#c92e5b',\n total: '#434857',\n stepConnector: '#888d94',\n },\n ...chart\n },\n className,\n chartId,\n allowZoom,\n}: TChartRendererProps) => {\n console.log({ margin });\n\n const effectiveMargin = parseMargin(margin);\n\n if (!chart.showAxisYTitle && effectiveMargin.left > 50) {\n effectiveMargin.left = 50;\n }\n let innerWidth =\n chart.ratio.width + (-effectiveMargin.left - effectiveMargin.right) / 2;\n let innerHeight =\n chart.ratio.height + (-effectiveMargin.top - effectiveMargin.bottom) / 2;\n if (innerWidth > chart.ratio.maxWidth) {\n const newValues = adjustDimensions({\n height: innerHeight,\n width: innerWidth,\n maxWidth: chart.ratio.maxWidth,\n });\n innerWidth = newValues.width;\n innerHeight = newValues.height;\n }\n\n const getXValue = (d: TDatum) => d.key;\n const getYValue = (d: TDatum) => d.value;\n\n const charts = arrayOrArray(chart.dataSets?.data)\n .filter((piece) => !!piece.sets)\n .map((piece) => {\n return {\n ...piece,\n coordinate: piece.sets,\n };\n });\n const [currentPie, setCurrentPie] = useState('0');\n const chartNames = charts.map((piece) => {\n return piece.name;\n });\n const steps = useMemo(\n () =>\n calculateWaterfallSteps({\n data: arrayOrArray(chart.dataSets.data)[currentPie as unknown as number]\n .sets as TDatum[],\n xAccessor: getXValue,\n yAccessor: getYValue,\n showFinal: chart.showTotal ?? true,\n colors: waterfallColors,\n }),\n [chart.dataSets.data, chart.showTotal, currentPie, waterfallColors],\n );\n\n // Build scales\n const padding = 0.2;\n\n const xScale = scaleBand({\n domain: steps.map((step) => step.x),\n padding,\n range: [0, innerWidth],\n });\n\n const yDomain = useMemo(() => {\n const values = steps.flatMap((step) => [step.start, step.end]);\n const [min, max] = extent<number>(values);\n return min != null && max != null ? [min - 5, max + 5] : undefined;\n }, [steps]);\n\n const yScale = scaleLinear({\n domain: yDomain,\n nice: true,\n range: [innerHeight, 0],\n });\n\n const id = useMemo(() => `WaterfallBars${uniqueId()}`, []);\n useLayoutEffect(() => {\n document\n .querySelectorAll<HTMLElement>(`#${id} .tickLabel`)\n .forEach((current) => {\n const width = current.getBoundingClientRect().width;\n // eslint-disable-next-line no-param-reassign\n current.style.transformOrigin =\n (current.getAttribute('x') as string) + 'px 14px';\n // eslint-disable-next-line no-param-reassign\n current.style.transform = `rotate(25deg) translateX(${width / 2}px)`;\n });\n });\n\n const { boxRef, elementRef } = usePanAndZoom<HTMLElement, SVGSVGElement>(\n undefined,\n !allowZoom ?? true,\n );\n return (\n <>\n <Box\n id={id}\n className={`${className ? className : ''} chartBox chartContainer`}\n ref={boxRef}\n >\n <svg\n height={chart.ratio.height}\n width={chart.ratio.width}\n ref={elementRef}\n >\n <Group left={effectiveMargin.left} top={effectiveMargin.top}>\n <GridRows scale={yScale} width={innerWidth} strokeDasharray=\"5\" />\n {steps.map((step, index) => {\n const x = xScale(step.x);\n const y = yScale(Math.max(step.start, step.end));\n\n if (x == null || y == null) {\n return null;\n }\n\n const barHeight = Math.abs(yScale(step.start) - yScale(step.end));\n\n const isLast = index === steps.length - 1;\n const linePadding = 2;\n const x1 = x + xScale.bandwidth() + linePadding;\n const x2 = x + xScale.bandwidth() / (1 - padding) - linePadding;\n const lineY = step.end < step.start ? y + barHeight : y;\n\n const labelOffset = 10;\n const labelY =\n yScale(step.end) +\n ((step.y as unknown as number) < 0\n ? labelOffset\n : -labelOffset);\n\n let currentYValue = 0;\n steps\n .filter((_, i) => {\n if ((chart.showTotal ?? true) && !steps[i + 1]) {\n return false;\n }\n return i <= index;\n })\n .forEach((step) => {\n currentYValue += Number(step.y);\n });\n\n return (\n <WaterfallBar\n chart={chart}\n columnName={chartNames[currentPie as unknown as number]}\n fill={step.color}\n height={barHeight}\n isLast={isLast}\n key={index}\n lineY={lineY}\n step={step}\n stroke={waterfallColors.stepConnector}\n strokeDashArray={2}\n textContent={\n chart.showTotal ?? true\n ? step.y\n : (currentYValue as unknown as string)\n }\n textX={x + xScale.bandwidth() / 2}\n textY={labelY + 5}\n width={xScale.bandwidth()}\n x={x}\n y={y}\n x1={x1}\n x2={x2}\n />\n );\n })}\n <AxisLeft\n label={''}\n scale={yScale}\n hideTicks\n tickLabelProps={() => ({\n textAnchor: 'end',\n verticalAnchor: 'middle',\n display: chart.showAxisYTitle ? 'auto' : 'none',\n })}\n />\n <AxisBottom\n scale={xScale}\n top={innerHeight}\n tickLabelProps={{ display: 'none' }}\n tickLineProps={{ display: 'none' }}\n />\n </Group>\n </svg>\n </Box>\n <Box className=\"chartLegend__Wrapper\">\n {!chart.hideSelector && charts.length > 1 && (\n <Box className=\"chart__combo__wrapper\">\n {/* TODO LABEL */}\n <Heading as={'h6'}>{getLabel('lblChartSel').text}</Heading>\n <ChartSelector\n chartId={chartId}\n pieces={chartNames}\n className=\"chartSelectorCombo\"\n current={currentPie}\n setCurrent={setCurrentPie}\n />\n </Box>\n )}\n {/* {chart.showLegend && (\n <Box className=\"chart__legend__wrapper\"> */}\n {/* TODO LABEL */}\n {/* <Heading as={'h6'}>Legend</Heading>\n <LegendContainer\n id={chartId}\n avoidEvent\n references={[\n {\n title: arrayOrArray(chart.dataSets.data)[\n currentPie as unknown as number\n ].name,\n color: 'transparent',\n },\n ]}\n />\n </Box>\n )} */}\n </Box>\n </>\n );\n};\n"],"names":["step"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apia/charts",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "sideEffects": false,
5
5
  "author": "Felipe Arzuaga <felipearax.2012@gmail.com>",
6
6
  "main": "dist/index.js",
@@ -13,10 +13,10 @@
13
13
  "libWatch": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true"
14
14
  },
15
15
  "dependencies": {
16
- "@apia/components": "^2.0.0",
17
- "@apia/icons": "^2.0.0",
18
- "@apia/theme": "^2.0.0",
19
- "@apia/util": "^2.0.0",
16
+ "@apia/components": "^2.0.2",
17
+ "@apia/icons": "^2.0.2",
18
+ "@apia/theme": "^2.0.2",
19
+ "@apia/util": "^2.0.2",
20
20
  "@types/d3-array": "^3.0.5",
21
21
  "@visx/axis": "^3.1.0",
22
22
  "@visx/curve": "^3.0.0",
@@ -50,5 +50,5 @@
50
50
  "access": "public",
51
51
  "registry": "https://registry.npmjs.org/"
52
52
  },
53
- "gitHead": "755c990cc9875e99922cc0f7194d9f0a479bdc71"
53
+ "gitHead": "d0b9a7a259e964d415e4f64f562532de3c54b4f8"
54
54
  }