@fluentui/react-charts 9.1.1 → 9.1.3
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/CHANGELOG.md +38 -2
- package/dist/index.d.ts +89 -6
- package/lib/components/AreaChart/AreaChart.js +18 -8
- package/lib/components/AreaChart/AreaChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.js +17 -13
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +4 -4
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +25 -13
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +57 -36
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/DonutChart/useDonutChartStyles.styles.js +3 -3
- package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +4 -4
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +45 -19
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib/components/LineChart/LineChart.js +40 -36
- package/lib/components/LineChart/LineChart.js.map +1 -1
- package/lib/components/LineChart/eventAnnotation/LabelLink.js +2 -1
- package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js +51 -22
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib/components/ResponsiveContainer/index.js +2 -0
- package/lib/components/ResponsiveContainer/index.js.map +1 -1
- package/lib/components/ResponsiveContainer/withResponsiveContainer.js +19 -0
- package/lib/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -0
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +3 -3
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.js +1 -1
- package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.js +5 -5
- package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +62 -24
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib/types/DataPoint.js.map +1 -1
- package/lib/utilities/SVGTooltipText.js +3 -3
- package/lib/utilities/SVGTooltipText.js.map +1 -1
- package/lib/utilities/utilities.js +27 -36
- package/lib/utilities/utilities.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.js +16 -7
- package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +17 -13
- package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +5 -5
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +25 -13
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +57 -36
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +4 -4
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +6 -4
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +44 -18
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.js +40 -36
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js +2 -1
- package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js +47 -21
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/index.js +2 -0
- package/lib-commonjs/components/ResponsiveContainer/index.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js +27 -0
- package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -0
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +4 -4
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +5 -5
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +61 -23
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-commonjs/types/DataPoint.js.map +1 -1
- package/lib-commonjs/utilities/SVGTooltipText.js +3 -3
- package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
- package/lib-commonjs/utilities/utilities.js +27 -36
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/package.json +10 -10
- package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +0 -23
- package/lib/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +0 -1
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js +0 -47
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveContainerStyles.styles.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tokens","typographyStyles","__styles","mergeClasses","shorthands","gaugeChartClassNames","root","chart","limits","chartValue","sublabel","needle","chartTitle","segment","gradientSegment","calloutContentRoot","calloutDateTimeContainer","calloutContentX","calloutBlockContainer","shapeStyles","calloutlegendText","calloutContentY","descriptionMessage","calloutInfoContainer","legendsContainer","useStyles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","Bt984gj","a9b677","Bqenvij","Bkfmm31","Bvjb7m6","ojy3ng","Bw0xxkn","oeaueh","Bpd4iqm","Befb4lg","B68tc82","Bmxbyg5","Bpg54ce","z8tnut","z189sj","Byoj8tv","uwmqm3","De3pzq","jy2i9i","Brf1p80","abs64n","B6of3ja","sj55zd","t21cq0","g2u3we","icvyot","B4j52fo","i8vvqc","d","p","useGaugeChartStyles","props","_props_styles","_props_styles1","_props_styles2","_props_styles3","_props_styles4","_props_styles5","_props_styles6","_props_styles7","_props_styles8","_props_styles9","_props_styles10","_props_styles11","_props_styles12","_props_styles13","_props_styles14","_props_styles15","_props_styles16","baseStyles","styles"],"sources":["useGaugeChartStyles.styles.js"],"sourcesContent":["import { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nexport const gaugeChartClassNames = {\n root: 'fui-gc__root',\n chart: 'fui-gc__chart',\n limits: 'fui-gc__limits',\n chartValue: 'fui-gc__chartValue',\n sublabel: 'fui-gc__sublabel',\n needle: 'fui-gc__needle',\n chartTitle: 'fui-gc__chartTitle',\n segment: 'fui-gc__segment',\n gradientSegment: 'fui-gc__gradientSegment',\n calloutContentRoot: 'fui-gc__calloutContentRoot',\n calloutDateTimeContainer: 'fui-gc__calloutDateTimeContainer',\n calloutContentX: 'fui-gc__calloutContentX',\n calloutBlockContainer: 'fui-gc__calloutBlockContainer',\n shapeStyles: 'fui-gc__shapeStyles',\n calloutlegendText: 'fui-gc__calloutlegendText',\n calloutContentY: 'fui-gc__calloutContentY',\n descriptionMessage: 'fui-gc__descriptionMessage',\n calloutInfoContainer: '',\n legendsContainer: ''\n};\nconst useStyles = makeStyles({\n root: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100%',\n height: '100%'\n },\n chart: {\n display: 'block'\n },\n limits: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n },\n chartValue: {\n fontWeight: tokens.fontWeightSemibold,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n },\n sublabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1\n },\n needle: {\n fill: tokens.colorNeutralForeground1,\n stroke: tokens.colorNeutralBackground1\n },\n chartTitle: {\n ...typographyStyles.caption1,\n fill: tokens.colorNeutralForeground1\n },\n segment: {\n outline: 'none',\n stroke: tokens.colorNeutralStroke1\n },\n gradientSegment: {\n width: '100%',\n height: '100%'\n },\n calloutContentRoot: {\n display: 'grid',\n overflow: 'hidden',\n ...shorthands.padding('11px', '16px', '10px', '16px'),\n backgroundColor: tokens.colorNeutralBackground1,\n backgroundBlendMode: 'normal, luminosity'\n },\n calloutDateTimeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n calloutContentX: {\n ...typographyStyles.caption1,\n lineHeight: '16px',\n opacity: '0.85'\n },\n calloutBlockContainer: {\n ...typographyStyles.body1Strong,\n marginTop: '13px',\n color: tokens.colorNeutralForeground1,\n paddingLeft: '8px',\n display: 'block',\n forcedColorAdjust: 'none'\n },\n shapeStyles: {\n marginRight: '8px'\n },\n calloutlegendText: {\n ...typographyStyles.caption1,\n lineHeight: '16px',\n color: tokens.colorNeutralForeground2,\n forcedColorAdjust: 'auto'\n },\n calloutContentY: {\n ...typographyStyles.body1Strong,\n lineHeight: '22px',\n forcedColorAdjust: 'auto'\n },\n descriptionMessage: {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground1,\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: `1px solid ${tokens.colorNeutralStroke1}`\n }\n});\nexport const useGaugeChartStyles = (props)=>{\n var _props_styles, _props_styles1, _props_styles2, _props_styles3, _props_styles4, _props_styles5, _props_styles6, _props_styles7, _props_styles8, _props_styles9, _props_styles10, _props_styles11, _props_styles12, _props_styles13, _props_styles14, _props_styles15, _props_styles16;\n const baseStyles = useStyles();\n return {\n root: mergeClasses(gaugeChartClassNames.root, baseStyles.root, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),\n chart: mergeClasses(gaugeChartClassNames.chart, baseStyles.chart, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.chart),\n limits: mergeClasses(gaugeChartClassNames.limits, baseStyles.limits, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.limits),\n chartValue: mergeClasses(gaugeChartClassNames.chartValue, baseStyles.chartValue, (_props_styles3 = props.styles) === null || _props_styles3 === void 0 ? void 0 : _props_styles3.chartValue),\n sublabel: mergeClasses(gaugeChartClassNames.sublabel, baseStyles.sublabel, (_props_styles4 = props.styles) === null || _props_styles4 === void 0 ? void 0 : _props_styles4.sublabel),\n needle: mergeClasses(gaugeChartClassNames.needle, baseStyles.needle, (_props_styles5 = props.styles) === null || _props_styles5 === void 0 ? void 0 : _props_styles5.needle),\n chartTitle: mergeClasses(gaugeChartClassNames.chartTitle, baseStyles.chartTitle, (_props_styles6 = props.styles) === null || _props_styles6 === void 0 ? void 0 : _props_styles6.chartTitle),\n segment: mergeClasses(gaugeChartClassNames.segment, baseStyles.segment, (_props_styles7 = props.styles) === null || _props_styles7 === void 0 ? void 0 : _props_styles7.segment),\n gradientSegment: mergeClasses(gaugeChartClassNames.gradientSegment, baseStyles.gradientSegment, (_props_styles8 = props.styles) === null || _props_styles8 === void 0 ? void 0 : _props_styles8.gradientSegment),\n calloutContentRoot: mergeClasses(gaugeChartClassNames.calloutContentRoot, baseStyles.calloutContentRoot, (_props_styles9 = props.styles) === null || _props_styles9 === void 0 ? void 0 : _props_styles9.calloutContentRoot),\n calloutDateTimeContainer: mergeClasses(gaugeChartClassNames.calloutDateTimeContainer, baseStyles.calloutDateTimeContainer, (_props_styles10 = props.styles) === null || _props_styles10 === void 0 ? void 0 : _props_styles10.calloutDateTimeContainer),\n calloutContentX: mergeClasses(gaugeChartClassNames.calloutContentX, baseStyles.calloutContentX, (_props_styles11 = props.styles) === null || _props_styles11 === void 0 ? void 0 : _props_styles11.calloutContentX),\n calloutBlockContainer: mergeClasses(gaugeChartClassNames.calloutBlockContainer, baseStyles.calloutBlockContainer, (_props_styles12 = props.styles) === null || _props_styles12 === void 0 ? void 0 : _props_styles12.calloutBlockContainer),\n shapeStyles: mergeClasses(gaugeChartClassNames.shapeStyles, baseStyles.shapeStyles, (_props_styles13 = props.styles) === null || _props_styles13 === void 0 ? void 0 : _props_styles13.shapeStyles),\n calloutlegendText: mergeClasses(gaugeChartClassNames.calloutlegendText, baseStyles.calloutlegendText, (_props_styles14 = props.styles) === null || _props_styles14 === void 0 ? void 0 : _props_styles14.calloutlegendText),\n calloutContentY: mergeClasses(gaugeChartClassNames.calloutContentY, baseStyles.calloutContentY, (_props_styles15 = props.styles) === null || _props_styles15 === void 0 ? void 0 : _props_styles15.calloutContentY),\n descriptionMessage: mergeClasses(gaugeChartClassNames.descriptionMessage, baseStyles.descriptionMessage, (_props_styles16 = props.styles) === null || _props_styles16 === void 0 ? void 0 : _props_styles16.descriptionMessage)\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["tokens","typographyStyles","__styles","mergeClasses","shorthands","gaugeChartClassNames","root","chart","limits","chartValue","sublabel","needle","chartTitle","segment","gradientSegment","calloutContentRoot","calloutDateTimeContainer","calloutContentX","calloutBlockContainer","shapeStyles","calloutlegendText","calloutContentY","descriptionMessage","calloutInfoContainer","legendsContainer","useStyles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","Bt984gj","a9b677","Bqenvij","Bkfmm31","Bvjb7m6","ojy3ng","Bw0xxkn","oeaueh","Bpd4iqm","Befb4lg","B68tc82","Bmxbyg5","Bpg54ce","z8tnut","z189sj","Byoj8tv","uwmqm3","De3pzq","jy2i9i","Brf1p80","abs64n","B6of3ja","sj55zd","t21cq0","g2u3we","icvyot","B4j52fo","i8vvqc","d","p","useGaugeChartStyles","props","_props_styles","_props_styles1","_props_styles2","_props_styles3","_props_styles4","_props_styles5","_props_styles6","_props_styles7","_props_styles8","_props_styles9","_props_styles10","_props_styles11","_props_styles12","_props_styles13","_props_styles14","_props_styles15","_props_styles16","baseStyles","styles"],"sources":["useGaugeChartStyles.styles.js"],"sourcesContent":["import { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nexport const gaugeChartClassNames = {\n root: 'fui-gc__root',\n chart: 'fui-gc__chart',\n limits: 'fui-gc__limits',\n chartValue: 'fui-gc__chartValue',\n sublabel: 'fui-gc__sublabel',\n needle: 'fui-gc__needle',\n chartTitle: 'fui-gc__chartTitle',\n segment: 'fui-gc__segment',\n gradientSegment: 'fui-gc__gradientSegment',\n calloutContentRoot: 'fui-gc__calloutContentRoot',\n calloutDateTimeContainer: 'fui-gc__calloutDateTimeContainer',\n calloutContentX: 'fui-gc__calloutContentX',\n calloutBlockContainer: 'fui-gc__calloutBlockContainer',\n shapeStyles: 'fui-gc__shapeStyles',\n calloutlegendText: 'fui-gc__calloutlegendText',\n calloutContentY: 'fui-gc__calloutContentY',\n descriptionMessage: 'fui-gc__descriptionMessage',\n calloutInfoContainer: '',\n legendsContainer: ''\n};\nconst useStyles = makeStyles({\n root: {\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: 'var(--root-width, 100%)',\n height: 'var(--root-height, 100%)'\n },\n chart: {\n display: 'block'\n },\n limits: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n },\n chartValue: {\n fontWeight: tokens.fontWeightSemibold,\n fill: tokens.colorNeutralForeground1,\n forcedColorAdjust: 'auto'\n },\n sublabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1\n },\n needle: {\n fill: tokens.colorNeutralForeground1,\n stroke: tokens.colorNeutralBackground1\n },\n chartTitle: {\n ...typographyStyles.caption1,\n fill: tokens.colorNeutralForeground1\n },\n segment: {\n outline: 'none',\n stroke: tokens.colorNeutralStroke1\n },\n gradientSegment: {\n width: '100%',\n height: '100%'\n },\n calloutContentRoot: {\n display: 'grid',\n overflow: 'hidden',\n ...shorthands.padding('11px', '16px', '10px', '16px'),\n backgroundColor: tokens.colorNeutralBackground1,\n backgroundBlendMode: 'normal, luminosity'\n },\n calloutDateTimeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n calloutContentX: {\n ...typographyStyles.caption1,\n lineHeight: '16px',\n opacity: '0.85'\n },\n calloutBlockContainer: {\n ...typographyStyles.body1Strong,\n marginTop: '13px',\n color: tokens.colorNeutralForeground1,\n paddingLeft: '8px',\n display: 'block',\n forcedColorAdjust: 'none'\n },\n shapeStyles: {\n marginRight: '8px'\n },\n calloutlegendText: {\n ...typographyStyles.caption1,\n lineHeight: '16px',\n color: tokens.colorNeutralForeground2,\n forcedColorAdjust: 'auto'\n },\n calloutContentY: {\n ...typographyStyles.body1Strong,\n lineHeight: '22px',\n forcedColorAdjust: 'auto'\n },\n descriptionMessage: {\n ...typographyStyles.caption1,\n color: tokens.colorNeutralForeground1,\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: `1px solid ${tokens.colorNeutralStroke1}`\n }\n});\nexport const useGaugeChartStyles = (props)=>{\n var _props_styles, _props_styles1, _props_styles2, _props_styles3, _props_styles4, _props_styles5, _props_styles6, _props_styles7, _props_styles8, _props_styles9, _props_styles10, _props_styles11, _props_styles12, _props_styles13, _props_styles14, _props_styles15, _props_styles16;\n const baseStyles = useStyles();\n return {\n root: mergeClasses(gaugeChartClassNames.root, baseStyles.root, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),\n chart: mergeClasses(gaugeChartClassNames.chart, baseStyles.chart, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.chart),\n limits: mergeClasses(gaugeChartClassNames.limits, baseStyles.limits, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.limits),\n chartValue: mergeClasses(gaugeChartClassNames.chartValue, baseStyles.chartValue, (_props_styles3 = props.styles) === null || _props_styles3 === void 0 ? void 0 : _props_styles3.chartValue),\n sublabel: mergeClasses(gaugeChartClassNames.sublabel, baseStyles.sublabel, (_props_styles4 = props.styles) === null || _props_styles4 === void 0 ? void 0 : _props_styles4.sublabel),\n needle: mergeClasses(gaugeChartClassNames.needle, baseStyles.needle, (_props_styles5 = props.styles) === null || _props_styles5 === void 0 ? void 0 : _props_styles5.needle),\n chartTitle: mergeClasses(gaugeChartClassNames.chartTitle, baseStyles.chartTitle, (_props_styles6 = props.styles) === null || _props_styles6 === void 0 ? void 0 : _props_styles6.chartTitle),\n segment: mergeClasses(gaugeChartClassNames.segment, baseStyles.segment, (_props_styles7 = props.styles) === null || _props_styles7 === void 0 ? void 0 : _props_styles7.segment),\n gradientSegment: mergeClasses(gaugeChartClassNames.gradientSegment, baseStyles.gradientSegment, (_props_styles8 = props.styles) === null || _props_styles8 === void 0 ? void 0 : _props_styles8.gradientSegment),\n calloutContentRoot: mergeClasses(gaugeChartClassNames.calloutContentRoot, baseStyles.calloutContentRoot, (_props_styles9 = props.styles) === null || _props_styles9 === void 0 ? void 0 : _props_styles9.calloutContentRoot),\n calloutDateTimeContainer: mergeClasses(gaugeChartClassNames.calloutDateTimeContainer, baseStyles.calloutDateTimeContainer, (_props_styles10 = props.styles) === null || _props_styles10 === void 0 ? void 0 : _props_styles10.calloutDateTimeContainer),\n calloutContentX: mergeClasses(gaugeChartClassNames.calloutContentX, baseStyles.calloutContentX, (_props_styles11 = props.styles) === null || _props_styles11 === void 0 ? void 0 : _props_styles11.calloutContentX),\n calloutBlockContainer: mergeClasses(gaugeChartClassNames.calloutBlockContainer, baseStyles.calloutBlockContainer, (_props_styles12 = props.styles) === null || _props_styles12 === void 0 ? void 0 : _props_styles12.calloutBlockContainer),\n shapeStyles: mergeClasses(gaugeChartClassNames.shapeStyles, baseStyles.shapeStyles, (_props_styles13 = props.styles) === null || _props_styles13 === void 0 ? void 0 : _props_styles13.shapeStyles),\n calloutlegendText: mergeClasses(gaugeChartClassNames.calloutlegendText, baseStyles.calloutlegendText, (_props_styles14 = props.styles) === null || _props_styles14 === void 0 ? void 0 : _props_styles14.calloutlegendText),\n calloutContentY: mergeClasses(gaugeChartClassNames.calloutContentY, baseStyles.calloutContentY, (_props_styles15 = props.styles) === null || _props_styles15 === void 0 ? void 0 : _props_styles15.calloutContentY),\n descriptionMessage: mergeClasses(gaugeChartClassNames.descriptionMessage, baseStyles.descriptionMessage, (_props_styles16 = props.styles) === null || _props_styles16 === void 0 ? void 0 : _props_styles16.descriptionMessage)\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';
|
|
3
|
-
import { max as d3Max } from 'd3-array';
|
|
4
3
|
import { select as d3Select } from 'd3-selection';
|
|
5
|
-
import {
|
|
4
|
+
import { max as d3Max, min as d3Min } from 'd3-array';
|
|
5
|
+
import { scaleBand as d3ScaleBand } from 'd3-scale';
|
|
6
6
|
import { useId } from '@fluentui/react-utilities';
|
|
7
7
|
import { ChartTypes, getAccessibleDataObject, tooltipOfXAxislabels, XAxisTypes, getTypeOfAxis, formatScientificLimitWidth, getScalePadding, getBarWidth, isScalePaddingDefined, getNextColor, areArraysEqual, calculateLongestLabelWidth, useRtl } from '../../utilities/index';
|
|
8
8
|
import { CartesianChart, Legends, DataVizPalette, getColorFromToken } from '../../index';
|
|
@@ -11,6 +11,8 @@ const X1_INNER_PADDING = 0.1;
|
|
|
11
11
|
// x1_inner_padding = space_between_bars / (space_between_bars + bar_width)
|
|
12
12
|
// => space_between_bars = (x1_inner_padding / (1 - x1_inner_padding)) * bar_width
|
|
13
13
|
/** Rate at which the space between the bars in a group changes wrt the bar width */ const BAR_GAP_RATE = X1_INNER_PADDING / (1 - X1_INNER_PADDING);
|
|
14
|
+
const VERTICAL_BAR_GAP = 1;
|
|
15
|
+
const MIN_BAR_HEIGHT = 1;
|
|
14
16
|
export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
15
17
|
maxBarWidth: 24
|
|
16
18
|
}, forwardedRef)=>{
|
|
@@ -19,7 +21,6 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
19
21
|
const _emptyChartId = useId('_GVBC_empty');
|
|
20
22
|
const _useRtl = useRtl();
|
|
21
23
|
let _domainMargin = MIN_DOMAIN_MARGIN;
|
|
22
|
-
let _dataset = [];
|
|
23
24
|
let _keys = [];
|
|
24
25
|
let _xAxisLabels = [];
|
|
25
26
|
let _datasetForBars = [];
|
|
@@ -38,6 +39,7 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
38
39
|
let _xAxisInnerPadding = 0;
|
|
39
40
|
let _xAxisOuterPadding = 0;
|
|
40
41
|
const cartesianChartRef = React.useRef(null);
|
|
42
|
+
const Y_ORIGIN = 0;
|
|
41
43
|
const [color, setColor] = React.useState('');
|
|
42
44
|
const [dataForHoverCard, setDataForHoverCard] = React.useState(0);
|
|
43
45
|
const [selectedLegends, setSelectedLegends] = React.useState(((_props_legendProps = props.legendProps) === null || _props_legendProps === void 0 ? void 0 : _props_legendProps.selectedLegends) || []);
|
|
@@ -101,7 +103,6 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
101
103
|
datasetForBars.push(singleDatasetPointForBars);
|
|
102
104
|
dataset.push(singleDatasetPoint);
|
|
103
105
|
});
|
|
104
|
-
_dataset = dataset;
|
|
105
106
|
return datasetForBars;
|
|
106
107
|
};
|
|
107
108
|
const _createDataSetOfGVBC = (points)=>{
|
|
@@ -175,8 +176,26 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
175
176
|
const _xAxisType = getTypeOfAxis(points[0].name, true);
|
|
176
177
|
const legends = _getLegendData(points);
|
|
177
178
|
_adjustProps();
|
|
179
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-anyAdd commentMore actions
|
|
180
|
+
function _getMinMaxOfYAxis(datasetForBars, yAxisType, useSecondaryYScale) {
|
|
181
|
+
const values = [];
|
|
182
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
183
|
+
datasetForBars.forEach((data)=>{
|
|
184
|
+
data.groupSeries.forEach((point)=>{
|
|
185
|
+
if (!useSecondaryYScale === !point.useSecondaryYScale) {
|
|
186
|
+
values.push(point.data);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
return {
|
|
191
|
+
startValue: d3Min(values),
|
|
192
|
+
endValue: d3Max(values)
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// The maxOfYVal prop is only required for the primary y-axis, so yMax should be calculated
|
|
196
|
+
// using only the data points associated with the primary y-axis.
|
|
178
197
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
179
|
-
const yMax =
|
|
198
|
+
const yMax = _getMinMaxOfYAxis(_datasetForBars).endValue;
|
|
180
199
|
_yMax = Math.max(yMax, props.yMaxValue || 0);
|
|
181
200
|
var _props_culture;
|
|
182
201
|
const calloutProps = {
|
|
@@ -197,7 +216,7 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
197
216
|
tickValues: props.tickValues,
|
|
198
217
|
tickFormat: props.tickFormat
|
|
199
218
|
};
|
|
200
|
-
const _getGraphData = (xScale,
|
|
219
|
+
const _getGraphData = (xScale, yScalePrimary, containerHeight, containerWidth, xElement, yAxisElement, yScaleSecondary)=>{
|
|
201
220
|
const xScale0 = _createX0Scale(containerWidth);
|
|
202
221
|
// Setting the bar width here is safe because there are no dependencies earlier in the code
|
|
203
222
|
// that rely on the width of bars in vertical bar charts with string x-axis.
|
|
@@ -206,7 +225,7 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
206
225
|
const xScale1 = _createX1Scale();
|
|
207
226
|
const allGroupsBars = [];
|
|
208
227
|
_datasetForBars.forEach((singleSet)=>{
|
|
209
|
-
allGroupsBars.push(_buildGraph(singleSet, xScale0, xScale1, containerHeight, xElement));
|
|
228
|
+
allGroupsBars.push(_buildGraph(singleSet, xScale0, xScale1, yScalePrimary, yScaleSecondary, containerHeight, xElement));
|
|
210
229
|
});
|
|
211
230
|
_groupedVerticalBarGraph = allGroupsBars;
|
|
212
231
|
};
|
|
@@ -279,31 +298,37 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
279
298
|
const _buildGraph = (// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
280
299
|
singleSet, // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
281
300
|
xScale0, // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
282
|
-
xScale1, containerHeight, xElement)=>{
|
|
301
|
+
xScale1, yScalePrimary, yScaleSecondary, containerHeight, xElement)=>{
|
|
283
302
|
const singleGroup = [];
|
|
284
303
|
const barLabelsForGroup = [];
|
|
285
|
-
const yBarScale = d3ScaleLinear().domain([
|
|
286
|
-
0,
|
|
287
|
-
yMax
|
|
288
|
-
]).range([
|
|
289
|
-
0,
|
|
290
|
-
containerHeight - _margins.bottom - _margins.top
|
|
291
|
-
]);
|
|
292
304
|
const tempDataSet = Object.keys(datasetForBars[0]).splice(0, keys.length);
|
|
293
305
|
tempDataSet.forEach((datasetKey, index)=>{
|
|
294
306
|
const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;
|
|
295
307
|
const pointData = singleSet[datasetKey];
|
|
308
|
+
const yBarScale = pointData.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;
|
|
296
309
|
// To align the centers of the generated bandwidth and the calculated one when they differ,
|
|
297
310
|
// use the following addend.
|
|
298
311
|
const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;
|
|
299
|
-
const yPoint = Math.max(containerHeight - _margins.bottom - yBarScale(pointData.data), 0);
|
|
300
312
|
const startColor = pointData.color ? pointData.color : getNextColor(index, 0);
|
|
313
|
+
const yBaseline = yBarScale(Y_ORIGIN);
|
|
314
|
+
let yPositiveStart = yBaseline;
|
|
315
|
+
let yNegativeStart = yBaseline;
|
|
316
|
+
let yPoint = Y_ORIGIN;
|
|
317
|
+
const barGap = VERTICAL_BAR_GAP / 2 * (index > 0 ? 2 : 0);
|
|
318
|
+
const height = Math.max(yBarScale(Y_ORIGIN) - yBarScale(Math.abs(pointData.data)), MIN_BAR_HEIGHT);
|
|
319
|
+
if (pointData.data >= Y_ORIGIN) {
|
|
320
|
+
yPositiveStart -= height + barGap;
|
|
321
|
+
yPoint = yPositiveStart;
|
|
322
|
+
} else {
|
|
323
|
+
yPoint = yNegativeStart + barGap;
|
|
324
|
+
yNegativeStart = yPoint + height;
|
|
325
|
+
}
|
|
301
326
|
// Not rendering data with 0.
|
|
302
327
|
pointData.data && singleGroup.push(/*#__PURE__*/ React.createElement(React.Fragment, {
|
|
303
328
|
key: `${singleSet.indexNum}-${index}`
|
|
304
329
|
}, /*#__PURE__*/ React.createElement("rect", {
|
|
305
330
|
className: classes.opacityChangeOnHover,
|
|
306
|
-
height:
|
|
331
|
+
height: height,
|
|
307
332
|
width: _barWidth,
|
|
308
333
|
x: xPoint,
|
|
309
334
|
y: yPoint,
|
|
@@ -328,11 +353,11 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
328
353
|
barLabelsForGroup.push(/*#__PURE__*/ React.createElement("text", {
|
|
329
354
|
key: `${singleSet.indexNum}-${index}`,
|
|
330
355
|
x: xPoint + _barWidth / 2,
|
|
331
|
-
y:
|
|
356
|
+
y: pointData.data >= Y_ORIGIN ? yPositiveStart - 6 : yNegativeStart + 12,
|
|
332
357
|
textAnchor: "middle",
|
|
333
358
|
className: classes.barLabel,
|
|
334
359
|
"aria-hidden": true
|
|
335
|
-
}, formatScientificLimitWidth(pointData.data)));
|
|
360
|
+
}, typeof props.yAxisTickFormat === 'function' ? props.yAxisTickFormat(pointData.data) : formatScientificLimitWidth(pointData.data)));
|
|
336
361
|
}
|
|
337
362
|
});
|
|
338
363
|
// Used to display tooltip at x axis labels.
|
|
@@ -468,6 +493,7 @@ export const GroupedVerticalBarChart = /*#__PURE__*/ React.forwardRef((props = {
|
|
|
468
493
|
chartTitle: _getChartTitle(),
|
|
469
494
|
points: _datasetForBars,
|
|
470
495
|
chartType: ChartTypes.GroupedVerticalBarChart,
|
|
496
|
+
getMinMaxOfYAxis: _getMinMaxOfYAxis,
|
|
471
497
|
calloutProps: calloutProps,
|
|
472
498
|
legendBars: legends,
|
|
473
499
|
xAxisType: _xAxisType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GroupedVerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { max as d3Max } from 'd3-array';\nimport { select as d3Select } from 'd3-selection';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { scaleBand as d3ScaleBand, scaleLinear as d3ScaleLinear } from 'd3-scale';\n\nimport { useId } from '@fluentui/react-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n tooltipOfXAxislabels,\n XAxisTypes,\n getTypeOfAxis,\n formatScientificLimitWidth,\n getScalePadding,\n getBarWidth,\n isScalePaddingDefined,\n getNextColor,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n} from '../../utilities/index';\n\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n Legends,\n YValueHover,\n DataVizPalette,\n getColorFromToken,\n ChartPopoverProps,\n Chart,\n} from '../../index';\n\ntype StringAxis = D3Axis<string>;\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\n// x1_inner_padding = space_between_bars / (space_between_bars + bar_width)\n// => space_between_bars = (x1_inner_padding / (1 - x1_inner_padding)) * bar_width\n/** Rate at which the space between the bars in a group changes wrt the bar width */\nconst BAR_GAP_RATE = X1_INNER_PADDING / (1 - X1_INNER_PADDING);\n\n// This interface used for - While forming datapoints from given prop \"data\" in code\ninterface GVDataPoint {\n [key: string]: number | string;\n}\n\n// While forming datapoints from given prop \"data\" in code. These datapoints are used for to draw graph easily.\ninterface GVSingleDataPoint {\n [key: string]: GVDataPoint;\n}\n\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((props = { maxBarWidth: 24 }, forwardedRef) => {\n const _tooltipId: string = useId('GVBCTooltipId_');\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _dataset: GVDataPoint[] = [];\n let _keys: string[] = [];\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSX.Element[] = [];\n let _refArray: RefArrayData[] = [];\n let _yMax: number = 0;\n let _calloutAnchorPoint: GVBarChartSeriesPoint | null = null;\n let _barWidth: number = 0;\n let _groupWidth: number = 0;\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n const cartesianChartRef = React.useRef<Chart>(null);\n\n const [color, setColor] = React.useState<string>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string>('');\n const [YValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n const [hoverXValue, setHoverXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps | undefined>(\n undefined,\n );\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const classes = useGroupedVerticalBarChartStyles_unstable(props);\n\n React.useEffect(() => {\n if (!areArraysEqual(props.legendProps?.selectedLegends, selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n }, [props.legendProps?.selectedLegends]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\n );\n\n const _adjustProps = () => {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n // x0_inner_padding = space_between_groups / (space_between_groups + group_width)\n // space_between_groups = 2 * bar_width\n // group_width = keys.length * bar_width + (keys.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + keys.length + (keys.length - 1) * BAR_GAP_RATE),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (points: GroupedVerticalBarChartData[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n const dataset: GVDataPoint[] = [];\n\n points.forEach((point: GroupedVerticalBarChartData, index: number) => {\n const singleDatasetPoint: GVDataPoint = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const singleDataSeries: GVBarChartSeriesPoint[] = [];\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint, seriesIndex) => {\n singleDatasetPoint[seriesPoint.key] = seriesPoint.data;\n singleDatasetPointForBars[seriesPoint.key] = {\n ...seriesPoint,\n };\n singleDataSeries.push(seriesPoint);\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = singleDataSeries;\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n dataset.push(singleDatasetPoint);\n });\n _dataset = dataset;\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (points: GroupedVerticalBarChartData[]) => {\n const keys: string[] = [];\n const xAxisLabels: string[] = points.map(singlePoint => singlePoint.name);\n points[0].series.forEach((singleKey: GVBarChartSeriesPoint) => {\n keys.push(singleKey.key);\n });\n const datasetForBars = _createDataset(points);\n return {\n keys,\n xAxisLabels,\n datasetForBars,\n };\n };\n\n const onLegendSelectionChange = (\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(selectedLegends);\n } else {\n setSelectedLegends(selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n };\n\n const _getLegendData = (points: GroupedVerticalBarChartData[]): JSX.Element => {\n const data = points;\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n getColorFromToken(DataVizPalette.color4),\n getColorFromToken(DataVizPalette.color5),\n ];\n const actions: Legend[] = [];\n\n data.forEach((singleChartData: GroupedVerticalBarChartData) => {\n singleChartData.series.forEach((point: GVBarChartSeriesPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: Legend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n });\n return (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={onLegendSelectionChange}\n />\n );\n };\n\n const points = props.data;\n const { keys, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(points!);\n _keys = keys;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const _xAxisType: XAxisTypes = getTypeOfAxis(points![0].name, true) as XAxisTypes;\n const legends: JSX.Element = _getLegendData(points!);\n _adjustProps();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yMax = d3Max(_dataset, (point: any) => d3Max(_keys, (key: string) => point[key]));\n _yMax = Math.max(yMax, props.yMaxValue || 0);\n\n const calloutProps: ChartPopoverProps = {\n clickPosition,\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover,\n hoverXValue,\n culture: props.culture ?? 'en-us',\n isCartesian: true,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData, 'text', false),\n };\n const tickParams = {\n tickValues: props.tickValues!,\n tickFormat: props.tickFormat!,\n };\n\n const _getGraphData = (\n xScale: StringAxis | NumericAxis,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n ) => {\n const xScale0 = _createX0Scale(containerWidth);\n\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n xScale0.bandwidth() / (_keys.length + (_keys.length - 1) * BAR_GAP_RATE),\n );\n _groupWidth = (_keys.length + (_keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSX.Element[] = [];\n _datasetForBars.forEach((singleSet: GVSingleDataPoint) => {\n allGroupsBars.push(_buildGraph(singleSet, xScale0, xScale1, containerHeight, xElement!));\n });\n _groupedVerticalBarGraph = allGroupsBars;\n };\n\n const _getMargins = (margins: Margins) => {\n _margins = margins;\n };\n\n const _getOpacity = (legendTitle: string): string => {\n const opacity = _legendHighlighted(legendTitle) || _noLegendHighlighted() ? '' : '0.1';\n return opacity;\n };\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n const onBarHover = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n mouseEvent.persist();\n if (_calloutAnchorPoint !== pointData) {\n _calloutAnchorPoint = pointData;\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n };\n\n const _onBarLeave = (): void => {\n /**/\n };\n\n const _handleChartMouseLeave = (): void => {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n };\n\n const onBarFocus = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n refArrayIndexNumber: number,\n ): void => {\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === pointData.legend && refArrayIndexNumber === index) {\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n });\n };\n\n const _refCallback = (element: SVGRectElement, legendTitle: string, refIndexNumber: number): void => {\n _refArray[refIndexNumber] = { index: legendTitle, refElement: element };\n };\n\n const _buildGraph = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n singleSet: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale0: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale1: any,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element => {\n const singleGroup: JSX.Element[] = [];\n const barLabelsForGroup: JSX.Element[] = [];\n\n const yBarScale = d3ScaleLinear()\n .domain([0, yMax])\n .range([0, containerHeight! - _margins.bottom! - _margins.top!]);\n\n const tempDataSet = Object.keys(datasetForBars[0]).splice(0, keys.length);\n tempDataSet.forEach((datasetKey: string, index: number) => {\n const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;\n const pointData = singleSet[datasetKey];\n // To align the centers of the generated bandwidth and the calculated one when they differ,\n // use the following addend.\n const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;\n const yPoint = Math.max(containerHeight! - _margins.bottom! - yBarScale(pointData.data), 0);\n const startColor = pointData.color ? pointData.color : getNextColor(index, 0);\n\n // Not rendering data with 0.\n pointData.data &&\n singleGroup.push(\n <React.Fragment key={`${singleSet.indexNum}-${index}`}>\n <rect\n className={classes.opacityChangeOnHover}\n height={Math.max(yBarScale(pointData.data), 0)}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n data-is-focusable={!props.hideTooltip && (_legendHighlighted(pointData.legend) || _noLegendHighlighted())}\n opacity={_getOpacity(pointData.legend)}\n ref={(e: SVGRectElement | null) => {\n _refCallback(e!, pointData.legend, refIndexNumber);\n }}\n fill={startColor}\n rx={0}\n onMouseOver={onBarHover.bind(null, pointData, singleSet)}\n onMouseMove={onBarHover.bind(null, pointData, singleSet)}\n onMouseOut={_onBarLeave}\n onFocus={onBarFocus.bind(null, pointData, singleSet, refIndexNumber)}\n onBlur={_onBarLeave}\n onClick={pointData.onClick}\n aria-label={getAriaLabel(pointData, singleSet.xAxisPoint)}\n tabIndex={_legendHighlighted(pointData.legend) || _noLegendHighlighted() ? 0 : undefined}\n role=\"img\"\n />\n </React.Fragment>,\n );\n if (\n pointData.data &&\n !props.hideLabels &&\n _barWidth >= 16 &&\n (_legendHighlighted(pointData.legend) || _noLegendHighlighted())\n ) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${index}`}\n x={xPoint + _barWidth / 2}\n y={yPoint - 6}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {formatScientificLimitWidth(pointData.data)}\n </text>,\n );\n }\n });\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale0);\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classes.tooltip!,\n id: _tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - _groupWidth) / 2}, 0)`}\n >\n {singleGroup}\n {barLabelsForGroup}\n </g>\n );\n };\n\n // For grouped vertical bar chart, First need to define total scale (from start to end)\n // From that need to define scale for single group of bars - done by createX1Scale\n const _createX0Scale = (containerWidth: number) => {\n const x0Axis = d3ScaleBand()\n .domain(xAxisLabels)\n .range(\n _useRtl\n ? [containerWidth! - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth! - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n return x0Axis;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _createX1Scale = (): any => {\n return (\n d3ScaleBand()\n .domain(keys)\n // When there is only one group, xScale0 adds padding around it,\n // causing the bandwidth to become smaller than the actual group width.\n // So to render bars in the group correctly, use groupWidth instead of the generated scale bandwidth.\n .range(_useRtl ? [_groupWidth, 0] : [0, _groupWidth])\n .paddingInner(X1_INNER_PADDING)\n );\n };\n\n const _onLegendHover = (legendTitle: string): void => {\n setActiveLegend(legendTitle);\n };\n\n const _onLegendLeave = (): void => {\n setActiveLegend('');\n };\n\n const _getAxisData = React.useCallback(\n (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || 0);\n }\n },\n [props.yMaxValue],\n );\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n const _legendHighlighted = (legendTitle: string) => {\n return _getHighlightedLegend().includes(legendTitle!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = () => {\n return _getHighlightedLegend().length === 0;\n };\n\n const _getHighlightedLegend = () => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n };\n\n const getAriaLabel = (point: GVBarChartSeriesPoint, xAxisPoint: string): string => {\n const xValue = point.xAxisCalloutData || xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n const _getDomainMargins = (containerWidth: number): Margins => {\n /** Total width available to render the bars */\n const totalWidth = containerWidth - (_margins.left! + MIN_DOMAIN_MARGIN) - (_margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the groups changes wrt the group width */\n const groupGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first group and after the last group.\n _domainMargin = 0;\n } else if (props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n _domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (props.mode === 'plotly' && xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering groups at their maximum allowable width\n const groupBandwidth = totalWidth / (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate);\n const barBandwidth = groupBandwidth / (keys.length + (keys.length - 1) * BAR_GAP_RATE);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * barWidth;\n let reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n const margin1 = (totalWidth - reqWidth) / 2;\n\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(xAxisLabels) + 20;\n reqWidth = (xAxisLabels.length - _xAxisInnerPadding) * step;\n const margin2 = (totalWidth - reqWidth) / 2;\n\n _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n };\n\n const _isChartEmpty = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_xAxisLabels.length} groups of ${_keys.length} bars each. `\n );\n };\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_datasetForBars}\n chartType={ChartTypes.GroupedVerticalBarChart}\n calloutProps={calloutProps}\n legendBars={legends}\n xAxisType={_xAxisType}\n datasetForXAxisDomain={_xAxisLabels}\n tickParams={tickParams}\n tickPadding={props.tickPadding || 5}\n maxOfYVal={_yMax}\n getmargins={_getMargins}\n getGraphData={_getGraphData}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n barwidth={_barWidth}\n componentRef={cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n children={() => {\n return <g>{_groupedVerticalBarGraph}</g>;\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nGroupedVerticalBarChart.displayName = 'GroupedVerticalBarChart';\n"],"names":["React","useGroupedVerticalBarChartStyles_unstable","max","d3Max","select","d3Select","scaleBand","d3ScaleBand","scaleLinear","d3ScaleLinear","useId","ChartTypes","getAccessibleDataObject","tooltipOfXAxislabels","XAxisTypes","getTypeOfAxis","formatScientificLimitWidth","getScalePadding","getBarWidth","isScalePaddingDefined","getNextColor","areArraysEqual","calculateLongestLabelWidth","useRtl","CartesianChart","Legends","DataVizPalette","getColorFromToken","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","BAR_GAP_RATE","GroupedVerticalBarChart","forwardRef","props","maxBarWidth","forwardedRef","_tooltipId","_emptyChartId","_useRtl","_domainMargin","_dataset","_keys","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_refArray","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","YValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","classes","useEffect","useImperativeHandle","componentRef","chartContainer","current","_adjustProps","barWidth","xAxisInnerPadding","keys","length","xAxisOuterPadding","_createDataset","points","datasetForBars","dataset","forEach","point","index","singleDatasetPoint","singleDatasetPointForBars","singleDataSeries","series","seriesPoint","seriesIndex","key","data","push","xAxisPoint","name","indexNum","groupSeries","stackCallOutAccessibilityData","_createDataSetOfGVBC","xAxisLabels","map","singlePoint","singleKey","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","defaultPalette","color1","color2","color3","color4","color5","actions","singleChartData","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","_xAxisType","yMax","yMaxValue","calloutProps","XValue","YValue","culture","isCartesian","tickParams","tickValues","tickFormat","_getGraphData","xScale","yScale","containerHeight","containerWidth","xElement","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","margins","_getOpacity","legendTitle","opacity","_legendHighlighted","_noLegendHighlighted","updatePosition","newX","newY","threshold","distance","sqrt","pow","onBarHover","pointData","groupData","mouseEvent","persist","clientX","clientY","xAxisCalloutData","yAxisCalloutData","isCalloutForStack","_onBarLeave","onBarFocus","refArrayIndexNumber","obj","_refCallback","element","refIndexNumber","refElement","singleGroup","barLabelsForGroup","yBarScale","domain","range","tempDataSet","Object","splice","datasetKey","xPoint","yPoint","startColor","Fragment","rect","className","opacityChangeOnHover","height","width","data-is-focusable","hideTooltip","ref","e","fill","rx","onMouseOver","bind","onMouseMove","onMouseOut","onFocus","onBlur","onClick","aria-label","getAriaLabel","tabIndex","role","hideLabels","text","textAnchor","barLabel","aria-hidden","wrapXAxisLables","showXAxisLablesTooltip","xAxisElement","call","document","getElementById","remove","tooltipProps","tooltipCls","tooltip","id","xAxis","g","transform","x0Axis","paddingInner","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupGapRate","StringAxis","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","step","margin2","min","_isChartEmpty","item","_getChartTitle","chartTitle","chartType","legendBars","xAxisType","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","div","style","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["GroupedVerticalBarChart.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGroupedVerticalBarChartStyles_unstable } from './useGroupedVerticalBarChartStyles.styles';\nimport { select as d3Select } from 'd3-selection';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { ScaleLinear, scaleBand as d3ScaleBand } from 'd3-scale';\n\nimport { useId } from '@fluentui/react-utilities';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n tooltipOfXAxislabels,\n XAxisTypes,\n getTypeOfAxis,\n formatScientificLimitWidth,\n getScalePadding,\n getBarWidth,\n isScalePaddingDefined,\n getNextColor,\n areArraysEqual,\n calculateLongestLabelWidth,\n useRtl,\n YAxisType,\n} from '../../utilities/index';\n\nimport {\n AccessibilityProps,\n CartesianChart,\n Margins,\n Legend,\n RefArrayData,\n GroupedVerticalBarChartProps,\n GroupedVerticalBarChartData,\n GVBarChartSeriesPoint,\n Legends,\n YValueHover,\n DataVizPalette,\n getColorFromToken,\n ChartPopoverProps,\n Chart,\n} from '../../index';\n\ntype StringAxis = D3Axis<string>;\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\n\nconst MIN_DOMAIN_MARGIN = 8;\nconst X1_INNER_PADDING = 0.1;\n// x1_inner_padding = space_between_bars / (space_between_bars + bar_width)\n// => space_between_bars = (x1_inner_padding / (1 - x1_inner_padding)) * bar_width\n/** Rate at which the space between the bars in a group changes wrt the bar width */\nconst BAR_GAP_RATE = X1_INNER_PADDING / (1 - X1_INNER_PADDING);\nconst VERTICAL_BAR_GAP = 1;\nconst MIN_BAR_HEIGHT = 1;\n\n// This interface used for - While forming datapoints from given prop \"data\" in code\ninterface GVDataPoint {\n [key: string]: number | string;\n}\n\n// While forming datapoints from given prop \"data\" in code. These datapoints are used for to draw graph easily.\ninterface GVSingleDataPoint {\n [key: string]: GVDataPoint;\n}\n\nexport const GroupedVerticalBarChart: React.FC<GroupedVerticalBarChartProps> = React.forwardRef<\n HTMLDivElement,\n GroupedVerticalBarChartProps\n>((props = { maxBarWidth: 24 }, forwardedRef) => {\n const _tooltipId: string = useId('GVBCTooltipId_');\n const _emptyChartId: string = useId('_GVBC_empty');\n const _useRtl: boolean = useRtl();\n let _domainMargin: number = MIN_DOMAIN_MARGIN;\n let _keys: string[] = [];\n let _xAxisLabels: string[] = [];\n let _datasetForBars: any[] = [];\n let _margins: Margins = { top: 0, right: 0, bottom: 0, left: 0 };\n let _groupedVerticalBarGraph: JSX.Element[] = [];\n let _refArray: RefArrayData[] = [];\n let _yMax: number = 0;\n let _calloutAnchorPoint: GVBarChartSeriesPoint | null = null;\n let _barWidth: number = 0;\n let _groupWidth: number = 0;\n let _xAxisInnerPadding: number = 0;\n let _xAxisOuterPadding: number = 0;\n const cartesianChartRef = React.useRef<Chart>(null);\n const Y_ORIGIN: number = 0;\n\n const [color, setColor] = React.useState<string>('');\n const [dataForHoverCard, setDataForHoverCard] = React.useState<number>(0);\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string>('');\n const [YValueHover, setYValueHover] = React.useState<YValueHover[]>([]);\n const [hoverXValue, setHoverXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [activeLegend, setActiveLegend] = React.useState<string>('');\n const [callOutAccessibilityData, setCallOutAccessibilityData] = React.useState<AccessibilityProps | undefined>(\n undefined,\n );\n const [clickPosition, setClickPosition] = React.useState({ x: 0, y: 0 });\n const [isPopoverOpen, setPopoverOpen] = React.useState<boolean>(false);\n const classes = useGroupedVerticalBarChartStyles_unstable(props);\n\n React.useEffect(() => {\n if (!areArraysEqual(props.legendProps?.selectedLegends, selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n }, [props.legendProps?.selectedLegends]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: cartesianChartRef.current?.chartContainer ?? null,\n }),\n [],\n );\n\n const _adjustProps = () => {\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n // x0_inner_padding = space_between_groups / (space_between_groups + group_width)\n // space_between_groups = 2 * bar_width\n // group_width = keys.length * bar_width + (keys.length - 1) * space_between_bars\n _xAxisInnerPadding = getScalePadding(\n props.xAxisInnerPadding,\n undefined,\n 2 / (2 + keys.length + (keys.length - 1) * BAR_GAP_RATE),\n );\n _xAxisOuterPadding = getScalePadding(props.xAxisOuterPadding);\n };\n\n const _createDataset = (points: GroupedVerticalBarChartData[]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const datasetForBars: any = [];\n const dataset: GVDataPoint[] = [];\n\n points.forEach((point: GroupedVerticalBarChartData, index: number) => {\n const singleDatasetPoint: GVDataPoint = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDatasetPointForBars: any = {};\n const singleDataSeries: GVBarChartSeriesPoint[] = [];\n\n point.series.forEach((seriesPoint: GVBarChartSeriesPoint, seriesIndex) => {\n singleDatasetPoint[seriesPoint.key] = seriesPoint.data;\n singleDatasetPointForBars[seriesPoint.key] = {\n ...seriesPoint,\n };\n singleDataSeries.push(seriesPoint);\n });\n\n singleDatasetPointForBars.xAxisPoint = point.name;\n singleDatasetPointForBars.indexNum = index;\n singleDatasetPointForBars.groupSeries = singleDataSeries;\n singleDatasetPointForBars.stackCallOutAccessibilityData = point.stackCallOutAccessibilityData;\n datasetForBars.push(singleDatasetPointForBars);\n dataset.push(singleDatasetPoint);\n });\n return datasetForBars;\n };\n\n const _createDataSetOfGVBC = (points: GroupedVerticalBarChartData[]) => {\n const keys: string[] = [];\n const xAxisLabels: string[] = points.map(singlePoint => singlePoint.name);\n points[0].series.forEach((singleKey: GVBarChartSeriesPoint) => {\n keys.push(singleKey.key);\n });\n const datasetForBars = _createDataset(points);\n return {\n keys,\n xAxisLabels,\n datasetForBars,\n };\n };\n\n const onLegendSelectionChange = (\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: Legend,\n ): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(selectedLegends);\n } else {\n setSelectedLegends(selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n };\n\n const _getLegendData = (points: GroupedVerticalBarChartData[]): JSX.Element => {\n const data = points;\n const defaultPalette: string[] = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n getColorFromToken(DataVizPalette.color4),\n getColorFromToken(DataVizPalette.color5),\n ];\n const actions: Legend[] = [];\n\n data.forEach((singleChartData: GroupedVerticalBarChartData) => {\n singleChartData.series.forEach((point: GVBarChartSeriesPoint) => {\n let color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: Legend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: Legend = {\n title: point.legend,\n color,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(point.legend);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n });\n return (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowText={props.legendsOverflowText}\n {...props.legendProps}\n onChange={onLegendSelectionChange}\n />\n );\n };\n\n const points = props.data;\n const { keys, xAxisLabels, datasetForBars } = _createDataSetOfGVBC(points!);\n _keys = keys;\n _xAxisLabels = xAxisLabels;\n _datasetForBars = datasetForBars;\n const _xAxisType: XAxisTypes = getTypeOfAxis(points![0].name, true) as XAxisTypes;\n const legends: JSX.Element = _getLegendData(points!);\n _adjustProps();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-anyAdd commentMore actions\n function _getMinMaxOfYAxis(datasetForBars: any, yAxisType?: YAxisType, useSecondaryYScale?: boolean) {\n const values: number[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n datasetForBars.forEach((data: any) => {\n data.groupSeries.forEach((point: GVBarChartSeriesPoint) => {\n if (!useSecondaryYScale === !point.useSecondaryYScale) {\n values.push(point.data);\n }\n });\n });\n\n return { startValue: d3Min(values)!, endValue: d3Max(values)! };\n }\n\n // The maxOfYVal prop is only required for the primary y-axis, so yMax should be calculated\n // using only the data points associated with the primary y-axis.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const yMax = _getMinMaxOfYAxis(_datasetForBars).endValue;\n _yMax = Math.max(yMax, props.yMaxValue || 0);\n\n const calloutProps: ChartPopoverProps = {\n clickPosition,\n isPopoverOpen,\n color,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue ? yCalloutValue : dataForHoverCard,\n YValueHover,\n hoverXValue,\n culture: props.culture ?? 'en-us',\n isCartesian: true,\n ...props.calloutProps,\n ...getAccessibleDataObject(callOutAccessibilityData, 'text', false),\n };\n const tickParams = {\n tickValues: props.tickValues!,\n tickFormat: props.tickFormat!,\n };\n\n const _getGraphData = (\n xScale: StringAxis | NumericAxis,\n yScalePrimary: ScaleLinear<number, number>,\n containerHeight: number,\n containerWidth: number,\n xElement?: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n const xScale0 = _createX0Scale(containerWidth);\n\n // Setting the bar width here is safe because there are no dependencies earlier in the code\n // that rely on the width of bars in vertical bar charts with string x-axis.\n _barWidth = getBarWidth(\n props.barWidth,\n props.maxBarWidth,\n xScale0.bandwidth() / (_keys.length + (_keys.length - 1) * BAR_GAP_RATE),\n );\n _groupWidth = (_keys.length + (_keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n\n const xScale1 = _createX1Scale();\n const allGroupsBars: JSX.Element[] = [];\n _datasetForBars.forEach((singleSet: GVSingleDataPoint) => {\n allGroupsBars.push(\n _buildGraph(singleSet, xScale0, xScale1, yScalePrimary, yScaleSecondary, containerHeight, xElement!),\n );\n });\n _groupedVerticalBarGraph = allGroupsBars;\n };\n\n const _getMargins = (margins: Margins) => {\n _margins = margins;\n };\n\n const _getOpacity = (legendTitle: string): string => {\n const opacity = _legendHighlighted(legendTitle) || _noLegendHighlighted() ? '' : '0.1';\n return opacity;\n };\n\n function updatePosition(newX: number, newY: number) {\n const threshold = 1; // Set a threshold for movement\n const { x, y } = clickPosition;\n // Calculate the distance moved\n const distance = Math.sqrt(Math.pow(newX - x, 2) + Math.pow(newY - y, 2));\n // Update the position only if the distance moved is greater than the threshold\n if (distance > threshold) {\n setClickPosition({ x: newX, y: newY });\n setPopoverOpen(true);\n }\n }\n\n const onBarHover = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void => {\n mouseEvent.persist();\n if (_calloutAnchorPoint !== pointData) {\n _calloutAnchorPoint = pointData;\n updatePosition(mouseEvent.clientX, mouseEvent.clientY);\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n };\n\n const _onBarLeave = (): void => {\n /**/\n };\n\n const _handleChartMouseLeave = (): void => {\n _calloutAnchorPoint = null;\n setPopoverOpen(false);\n };\n\n const onBarFocus = (\n pointData: GVBarChartSeriesPoint,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupData: any,\n refArrayIndexNumber: number,\n ): void => {\n _refArray.forEach((obj: RefArrayData, index: number) => {\n if (obj.index === pointData.legend && refArrayIndexNumber === index) {\n setPopoverOpen(_noLegendHighlighted() || _legendHighlighted(pointData.legend));\n setCalloutLegend(pointData.legend);\n setDataForHoverCard(pointData.data);\n setColor(pointData.color);\n setXCalloutValue(pointData.xAxisCalloutData!);\n setYCalloutValue(pointData.yAxisCalloutData!);\n setCallOutAccessibilityData(\n props.isCalloutForStack ? groupData.stackCallOutAccessibilityData : pointData.callOutAccessibilityData,\n );\n setYValueHover(groupData.groupSeries);\n setHoverXValue(pointData.xAxisCalloutData!);\n }\n });\n };\n\n const _refCallback = (element: SVGRectElement, legendTitle: string, refIndexNumber: number): void => {\n _refArray[refIndexNumber] = { index: legendTitle, refElement: element };\n };\n\n const _buildGraph = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n singleSet: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale0: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale1: any,\n yScalePrimary: ScaleLinear<number, number>,\n yScaleSecondary: ScaleLinear<number, number> | undefined,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element => {\n const singleGroup: JSX.Element[] = [];\n const barLabelsForGroup: JSX.Element[] = [];\n\n const tempDataSet = Object.keys(datasetForBars[0]).splice(0, keys.length);\n tempDataSet.forEach((datasetKey: string, index: number) => {\n const refIndexNumber = singleSet.indexNum * tempDataSet.length + index;\n const pointData = singleSet[datasetKey];\n const yBarScale = pointData.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n // To align the centers of the generated bandwidth and the calculated one when they differ,\n // use the following addend.\n const xPoint = xScale1(datasetKey) + (xScale1.bandwidth() - _barWidth) / 2;\n const startColor = pointData.color ? pointData.color : getNextColor(index, 0);\n\n const yBaseline = yBarScale(Y_ORIGIN);\n let yPositiveStart = yBaseline;\n let yNegativeStart = yBaseline;\n let yPoint = Y_ORIGIN;\n\n const barGap = (VERTICAL_BAR_GAP / 2) * (index > 0 ? 2 : 0);\n const height = Math.max(yBarScale(Y_ORIGIN) - yBarScale(Math.abs(pointData.data)), MIN_BAR_HEIGHT);\n if (pointData.data >= Y_ORIGIN) {\n yPositiveStart -= height + barGap;\n yPoint = yPositiveStart;\n } else {\n yPoint = yNegativeStart + barGap;\n yNegativeStart = yPoint + height;\n }\n // Not rendering data with 0.\n pointData.data &&\n singleGroup.push(\n <React.Fragment key={`${singleSet.indexNum}-${index}`}>\n <rect\n className={classes.opacityChangeOnHover}\n height={height}\n width={_barWidth}\n x={xPoint}\n y={yPoint}\n data-is-focusable={!props.hideTooltip && (_legendHighlighted(pointData.legend) || _noLegendHighlighted())}\n opacity={_getOpacity(pointData.legend)}\n ref={(e: SVGRectElement | null) => {\n _refCallback(e!, pointData.legend, refIndexNumber);\n }}\n fill={startColor}\n rx={0}\n onMouseOver={onBarHover.bind(null, pointData, singleSet)}\n onMouseMove={onBarHover.bind(null, pointData, singleSet)}\n onMouseOut={_onBarLeave}\n onFocus={onBarFocus.bind(null, pointData, singleSet, refIndexNumber)}\n onBlur={_onBarLeave}\n onClick={pointData.onClick}\n aria-label={getAriaLabel(pointData, singleSet.xAxisPoint)}\n tabIndex={_legendHighlighted(pointData.legend) || _noLegendHighlighted() ? 0 : undefined}\n role=\"img\"\n />\n </React.Fragment>,\n );\n if (\n pointData.data &&\n !props.hideLabels &&\n _barWidth >= 16 &&\n (_legendHighlighted(pointData.legend) || _noLegendHighlighted())\n ) {\n barLabelsForGroup.push(\n <text\n key={`${singleSet.indexNum}-${index}`}\n x={xPoint + _barWidth / 2}\n y={pointData.data >= Y_ORIGIN ? yPositiveStart - 6 : yNegativeStart + 12}\n textAnchor=\"middle\"\n className={classes.barLabel}\n aria-hidden={true}\n >\n {typeof props.yAxisTickFormat === 'function'\n ? props.yAxisTickFormat(pointData.data)\n : formatScientificLimitWidth(pointData.data)}\n </text>,\n );\n }\n });\n // Used to display tooltip at x axis labels.\n if (!props.wrapXAxisLables && props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale0);\n try {\n document.getElementById(_tooltipId) && document.getElementById(_tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classes.tooltip!,\n id: _tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return (\n <g\n key={singleSet.indexNum}\n transform={`translate(${xScale0(singleSet.xAxisPoint) + (xScale0.bandwidth() - _groupWidth) / 2}, 0)`}\n >\n {singleGroup}\n {barLabelsForGroup}\n </g>\n );\n };\n\n // For grouped vertical bar chart, First need to define total scale (from start to end)\n // From that need to define scale for single group of bars - done by createX1Scale\n const _createX0Scale = (containerWidth: number) => {\n const x0Axis = d3ScaleBand()\n .domain(xAxisLabels)\n .range(\n _useRtl\n ? [containerWidth! - _margins.right! - _domainMargin, _margins.left! + _domainMargin]\n : [_margins.left! + _domainMargin, containerWidth! - _margins.right! - _domainMargin],\n )\n .paddingInner(_xAxisInnerPadding)\n .paddingOuter(_xAxisOuterPadding);\n return x0Axis;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _createX1Scale = (): any => {\n return (\n d3ScaleBand()\n .domain(keys)\n // When there is only one group, xScale0 adds padding around it,\n // causing the bandwidth to become smaller than the actual group width.\n // So to render bars in the group correctly, use groupWidth instead of the generated scale bandwidth.\n .range(_useRtl ? [_groupWidth, 0] : [0, _groupWidth])\n .paddingInner(X1_INNER_PADDING)\n );\n };\n\n const _onLegendHover = (legendTitle: string): void => {\n setActiveLegend(legendTitle);\n };\n\n const _onLegendLeave = (): void => {\n setActiveLegend('');\n };\n\n const _getAxisData = React.useCallback(\n (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n _yMax = Math.max(domainValue[domainValue.length - 1], props.yMaxValue || 0);\n }\n },\n [props.yMaxValue],\n );\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n const _legendHighlighted = (legendTitle: string) => {\n return _getHighlightedLegend().includes(legendTitle!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = () => {\n return _getHighlightedLegend().length === 0;\n };\n\n const _getHighlightedLegend = () => {\n return selectedLegends.length > 0 ? selectedLegends : activeLegend ? [activeLegend] : [];\n };\n\n const getAriaLabel = (point: GVBarChartSeriesPoint, xAxisPoint: string): string => {\n const xValue = point.xAxisCalloutData || xAxisPoint;\n const legend = point.legend;\n const yValue = point.yAxisCalloutData || point.data;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n };\n\n const _getDomainMargins = (containerWidth: number): Margins => {\n /** Total width available to render the bars */\n const totalWidth = containerWidth - (_margins.left! + MIN_DOMAIN_MARGIN) - (_margins.right! + MIN_DOMAIN_MARGIN);\n /** Rate at which the space between the groups changes wrt the group width */\n const groupGapRate = _xAxisInnerPadding / (1 - _xAxisInnerPadding);\n\n if (_xAxisType === XAxisTypes.StringAxis) {\n if (isScalePaddingDefined(props.xAxisOuterPadding)) {\n // Setting the domain margin for string x-axis to 0 because the xAxisOuterPadding prop is now available\n // to adjust the space before the first group and after the last group.\n _domainMargin = 0;\n } else if (props.barWidth !== 'auto') {\n // Update the bar width so that when CartesianChart rerenders,\n // the following calculations don't use the previous bar width.\n _barWidth = getBarWidth(props.barWidth, props.maxBarWidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * _barWidth;\n /** Total width required to render the groups. Directly proportional to group width */\n const reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n\n if (totalWidth >= reqWidth) {\n // Center align the chart by setting equal left and right margins for domain\n _domainMargin = MIN_DOMAIN_MARGIN + (totalWidth - reqWidth) / 2;\n }\n } else if (props.mode === 'plotly' && xAxisLabels.length > 1) {\n // Calculate the remaining width after rendering groups at their maximum allowable width\n const groupBandwidth = totalWidth / (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate);\n const barBandwidth = groupBandwidth / (keys.length + (keys.length - 1) * BAR_GAP_RATE);\n const barWidth = getBarWidth(props.barWidth, props.maxBarWidth, barBandwidth);\n const groupWidth = (keys.length + (keys.length - 1) * BAR_GAP_RATE) * barWidth;\n let reqWidth = (xAxisLabels.length + (xAxisLabels.length - 1) * groupGapRate) * groupWidth;\n const margin1 = (totalWidth - reqWidth) / 2;\n\n // Calculate the remaining width after accounting for the space required to render x-axis labels\n const step = calculateLongestLabelWidth(xAxisLabels) + 20;\n reqWidth = (xAxisLabels.length - _xAxisInnerPadding) * step;\n const margin2 = (totalWidth - reqWidth) / 2;\n\n _domainMargin = MIN_DOMAIN_MARGIN + Math.max(0, Math.min(margin1, margin2));\n }\n }\n\n return {\n ..._margins,\n left: _margins.left! + _domainMargin,\n right: _margins.right! + _domainMargin,\n };\n };\n\n const _isChartEmpty = (): boolean => {\n return !(\n props.data &&\n props.data.length > 0 &&\n props.data.filter((item: GroupedVerticalBarChartData) => item.series.length).length > 0\n );\n };\n\n const _getChartTitle = (): string => {\n return (\n (props.chartTitle ? `${props.chartTitle}. ` : '') +\n `Vertical bar chart with ${_xAxisLabels.length} groups of ${_keys.length} bars each. `\n );\n };\n\n return !_isChartEmpty() ? (\n <CartesianChart\n {...props}\n chartTitle={_getChartTitle()}\n points={_datasetForBars}\n chartType={ChartTypes.GroupedVerticalBarChart}\n getMinMaxOfYAxis={_getMinMaxOfYAxis}\n calloutProps={calloutProps}\n legendBars={legends}\n xAxisType={_xAxisType}\n datasetForXAxisDomain={_xAxisLabels}\n tickParams={tickParams}\n tickPadding={props.tickPadding || 5}\n maxOfYVal={_yMax}\n getmargins={_getMargins}\n getGraphData={_getGraphData}\n getAxisData={_getAxisData}\n onChartMouseLeave={_handleChartMouseLeave}\n getDomainMargins={_getDomainMargins}\n {...(_xAxisType === XAxisTypes.StringAxis && {\n xAxisInnerPadding: _xAxisInnerPadding,\n xAxisOuterPadding: _xAxisOuterPadding,\n })}\n barwidth={_barWidth}\n componentRef={cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n children={() => {\n return <g>{_groupedVerticalBarGraph}</g>;\n }}\n />\n ) : (\n <div id={_emptyChartId} role={'alert'} style={{ opacity: '0' }} aria-label={'Graph has no data to display'} />\n );\n});\nGroupedVerticalBarChart.displayName = 'GroupedVerticalBarChart';\n"],"names":["React","useGroupedVerticalBarChartStyles_unstable","select","d3Select","max","d3Max","min","d3Min","scaleBand","d3ScaleBand","useId","ChartTypes","getAccessibleDataObject","tooltipOfXAxislabels","XAxisTypes","getTypeOfAxis","formatScientificLimitWidth","getScalePadding","getBarWidth","isScalePaddingDefined","getNextColor","areArraysEqual","calculateLongestLabelWidth","useRtl","CartesianChart","Legends","DataVizPalette","getColorFromToken","MIN_DOMAIN_MARGIN","X1_INNER_PADDING","BAR_GAP_RATE","VERTICAL_BAR_GAP","MIN_BAR_HEIGHT","GroupedVerticalBarChart","forwardRef","props","maxBarWidth","forwardedRef","_tooltipId","_emptyChartId","_useRtl","_domainMargin","_keys","_xAxisLabels","_datasetForBars","_margins","top","right","bottom","left","_groupedVerticalBarGraph","_refArray","_yMax","_calloutAnchorPoint","_barWidth","_groupWidth","_xAxisInnerPadding","_xAxisOuterPadding","cartesianChartRef","useRef","Y_ORIGIN","color","setColor","useState","dataForHoverCard","setDataForHoverCard","selectedLegends","setSelectedLegends","legendProps","xCalloutValue","setXCalloutValue","yCalloutValue","setYCalloutValue","YValueHover","setYValueHover","hoverXValue","setHoverXValue","calloutLegend","setCalloutLegend","activeLegend","setActiveLegend","callOutAccessibilityData","setCallOutAccessibilityData","undefined","clickPosition","setClickPosition","x","y","isPopoverOpen","setPopoverOpen","classes","useEffect","useImperativeHandle","componentRef","chartContainer","current","_adjustProps","barWidth","xAxisInnerPadding","keys","length","xAxisOuterPadding","_createDataset","points","datasetForBars","dataset","forEach","point","index","singleDatasetPoint","singleDatasetPointForBars","singleDataSeries","series","seriesPoint","seriesIndex","key","data","push","xAxisPoint","name","indexNum","groupSeries","stackCallOutAccessibilityData","_createDataSetOfGVBC","xAxisLabels","map","singlePoint","singleKey","onLegendSelectionChange","event","currentLegend","canSelectMultipleLegends","slice","onChange","_getLegendData","defaultPalette","color1","color2","color3","color4","color5","actions","singleChartData","Math","floor","random","checkSimilarLegends","filter","leg","title","legend","hoverAction","_handleChartMouseLeave","_onLegendHover","onMouseOutAction","_onLegendLeave","legends","enabledWrapLines","enabledLegendsWrapLines","overflowText","legendsOverflowText","_xAxisType","_getMinMaxOfYAxis","yAxisType","useSecondaryYScale","values","startValue","endValue","yMax","yMaxValue","calloutProps","XValue","YValue","culture","isCartesian","tickParams","tickValues","tickFormat","_getGraphData","xScale","yScalePrimary","containerHeight","containerWidth","xElement","yAxisElement","yScaleSecondary","xScale0","_createX0Scale","bandwidth","xScale1","_createX1Scale","allGroupsBars","singleSet","_buildGraph","_getMargins","margins","_getOpacity","legendTitle","opacity","_legendHighlighted","_noLegendHighlighted","updatePosition","newX","newY","threshold","distance","sqrt","pow","onBarHover","pointData","groupData","mouseEvent","persist","clientX","clientY","xAxisCalloutData","yAxisCalloutData","isCalloutForStack","_onBarLeave","onBarFocus","refArrayIndexNumber","obj","_refCallback","element","refIndexNumber","refElement","singleGroup","barLabelsForGroup","tempDataSet","Object","splice","datasetKey","yBarScale","xPoint","startColor","yBaseline","yPositiveStart","yNegativeStart","yPoint","barGap","height","abs","Fragment","rect","className","opacityChangeOnHover","width","data-is-focusable","hideTooltip","ref","e","fill","rx","onMouseOver","bind","onMouseMove","onMouseOut","onFocus","onBlur","onClick","aria-label","getAriaLabel","tabIndex","role","hideLabels","text","textAnchor","barLabel","aria-hidden","yAxisTickFormat","wrapXAxisLables","showXAxisLablesTooltip","xAxisElement","call","document","getElementById","remove","tooltipProps","tooltipCls","tooltip","id","xAxis","g","transform","x0Axis","domain","range","paddingInner","paddingOuter","_getAxisData","useCallback","yAxisData","yAxisDomainValues","domainValue","_getHighlightedLegend","includes","xValue","yValue","ariaLabel","_getDomainMargins","totalWidth","groupGapRate","StringAxis","groupWidth","reqWidth","mode","groupBandwidth","barBandwidth","margin1","step","margin2","_isChartEmpty","item","_getChartTitle","chartTitle","chartType","getMinMaxOfYAxis","legendBars","xAxisType","datasetForXAxisDomain","tickPadding","maxOfYVal","getmargins","getGraphData","getAxisData","onChartMouseLeave","getDomainMargins","barwidth","children","div","style","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yCAAyC,QAAQ,4CAA4C;AACtG,SAASC,UAAUC,QAAQ,QAAQ,eAAe;AAElD,SAASC,OAAOC,KAAK,EAAEC,OAAOC,KAAK,QAAQ,WAAW;AACtD,SAAsBC,aAAaC,WAAW,QAAQ,WAAW;AAEjE,SAASC,KAAK,QAAQ,4BAA4B;AAClD,SACEC,UAAU,EAEVC,uBAAuB,EACvBC,oBAAoB,EACpBC,UAAU,EACVC,aAAa,EACbC,0BAA0B,EAC1BC,eAAe,EACfC,WAAW,EACXC,qBAAqB,EACrBC,YAAY,EACZC,cAAc,EACdC,0BAA0B,EAC1BC,MAAM,QAED,wBAAwB;AAE/B,SAEEC,cAAc,EAOdC,OAAO,EAEPC,cAAc,EACdC,iBAAiB,QAGZ,cAAc;AAKrB,MAAMC,oBAAoB;AAC1B,MAAMC,mBAAmB;AACzB,2EAA2E;AAC3E,kFAAkF;AAClF,kFAAkF,GAClF,MAAMC,eAAeD,mBAAoB,CAAA,IAAIA,gBAAe;AAC5D,MAAME,mBAAmB;AACzB,MAAMC,iBAAiB;AAYvB,OAAO,MAAMC,wCAAkEjC,MAAMkC,UAAU,CAG7F,CAACC,QAAQ;IAAEC,aAAa;AAAG,CAAC,EAAEC;QAsByCF,oBAkBnEA;IAvCJ,MAAMG,aAAqB5B,MAAM;IACjC,MAAM6B,gBAAwB7B,MAAM;IACpC,MAAM8B,UAAmBjB;IACzB,IAAIkB,gBAAwBb;IAC5B,IAAIc,QAAkB,EAAE;IACxB,IAAIC,eAAyB,EAAE;IAC/B,IAAIC,kBAAyB,EAAE;IAC/B,IAAIC,WAAoB;QAAEC,KAAK;QAAGC,OAAO;QAAGC,QAAQ;QAAGC,MAAM;IAAE;IAC/D,IAAIC,2BAA0C,EAAE;IAChD,IAAIC,YAA4B,EAAE;IAClC,IAAIC,QAAgB;IACpB,IAAIC,sBAAoD;IACxD,IAAIC,YAAoB;IACxB,IAAIC,cAAsB;IAC1B,IAAIC,qBAA6B;IACjC,IAAIC,qBAA6B;IACjC,MAAMC,oBAAoB1D,MAAM2D,MAAM,CAAQ;IAC9C,MAAMC,WAAmB;IAEzB,MAAM,CAACC,OAAOC,SAAS,GAAG9D,MAAM+D,QAAQ,CAAS;IACjD,MAAM,CAACC,kBAAkBC,oBAAoB,GAAGjE,MAAM+D,QAAQ,CAAS;IACvE,MAAM,CAACG,iBAAiBC,mBAAmB,GAAGnE,MAAM+D,QAAQ,CAAW5B,EAAAA,qBAAAA,MAAMiC,WAAW,cAAjBjC,yCAAAA,mBAAmB+B,eAAe,KAAI,EAAE;IAC/G,MAAM,CAACG,eAAeC,iBAAiB,GAAGtE,MAAM+D,QAAQ,CAAS;IACjE,MAAM,CAACQ,eAAeC,iBAAiB,GAAGxE,MAAM+D,QAAQ,CAAS;IACjE,MAAM,CAACU,aAAaC,eAAe,GAAG1E,MAAM+D,QAAQ,CAAgB,EAAE;IACtE,MAAM,CAACY,aAAaC,eAAe,GAAG5E,MAAM+D,QAAQ,CAAS;IAC7D,MAAM,CAACc,eAAeC,iBAAiB,GAAG9E,MAAM+D,QAAQ,CAAS;IACjE,MAAM,CAACgB,cAAcC,gBAAgB,GAAGhF,MAAM+D,QAAQ,CAAS;IAC/D,MAAM,CAACkB,0BAA0BC,4BAA4B,GAAGlF,MAAM+D,QAAQ,CAC5EoB;IAEF,MAAM,CAACC,eAAeC,iBAAiB,GAAGrF,MAAM+D,QAAQ,CAAC;QAAEuB,GAAG;QAAGC,GAAG;IAAE;IACtE,MAAM,CAACC,eAAeC,eAAe,GAAGzF,MAAM+D,QAAQ,CAAU;IAChE,MAAM2B,UAAUzF,0CAA0CkC;IAE1DnC,MAAM2F,SAAS,CAAC;YACMxD;QAApB,IAAI,CAACd,gBAAec,qBAAAA,MAAMiC,WAAW,cAAjBjC,yCAAAA,mBAAmB+B,eAAe,EAAEA,kBAAkB;gBACrD/B;YAAnBgC,mBAAmBhC,EAAAA,sBAAAA,MAAMiC,WAAW,cAAjBjC,0CAAAA,oBAAmB+B,eAAe,KAAI,EAAE;QAC7D;IACF,GAAG;SAAC/B,sBAAAA,MAAMiC,WAAW,cAAjBjC,0CAAAA,oBAAmB+B,eAAe;KAAC;IAEvClE,MAAM4F,mBAAmB,CACvBzD,MAAM0D,YAAY,EAClB;YACkBnC;YAAAA;eADX;YACLoC,gBAAgBpC,CAAAA,6CAAAA,6BAAAA,kBAAkBqC,OAAO,cAAzBrC,iDAAAA,2BAA2BoC,cAAc,cAAzCpC,uDAAAA,4CAA6C;QAC/D;IAAA,GACA,EAAE;IAGJ,MAAMsC,eAAe;QACnB1C,YAAYpC,YAAYiB,MAAM8D,QAAQ,EAAE9D,MAAMC,WAAW;QACzD,iFAAiF;QACjF,uCAAuC;QACvC,iFAAiF;QACjFoB,qBAAqBvC,gBACnBkB,MAAM+D,iBAAiB,EACvBf,WACA,IAAK,CAAA,IAAIgB,KAAKC,MAAM,GAAG,AAACD,CAAAA,KAAKC,MAAM,GAAG,CAAA,IAAKtE,YAAW;QAExD2B,qBAAqBxC,gBAAgBkB,MAAMkE,iBAAiB;IAC9D;IAEA,MAAMC,iBAAiB,CAACC;QACtB,8DAA8D;QAC9D,MAAMC,iBAAsB,EAAE;QAC9B,MAAMC,UAAyB,EAAE;QAEjCF,OAAOG,OAAO,CAAC,CAACC,OAAoCC;YAClD,MAAMC,qBAAkC,CAAC;YACzC,8DAA8D;YAC9D,MAAMC,4BAAiC,CAAC;YACxC,MAAMC,mBAA4C,EAAE;YAEpDJ,MAAMK,MAAM,CAACN,OAAO,CAAC,CAACO,aAAoCC;gBACxDL,kBAAkB,CAACI,YAAYE,GAAG,CAAC,GAAGF,YAAYG,IAAI;gBACtDN,yBAAyB,CAACG,YAAYE,GAAG,CAAC,GAAG;oBAC3C,GAAGF,WAAW;gBAChB;gBACAF,iBAAiBM,IAAI,CAACJ;YACxB;YAEAH,0BAA0BQ,UAAU,GAAGX,MAAMY,IAAI;YACjDT,0BAA0BU,QAAQ,GAAGZ;YACrCE,0BAA0BW,WAAW,GAAGV;YACxCD,0BAA0BY,6BAA6B,GAAGf,MAAMe,6BAA6B;YAC7FlB,eAAea,IAAI,CAACP;YACpBL,QAAQY,IAAI,CAACR;QACf;QACA,OAAOL;IACT;IAEA,MAAMmB,uBAAuB,CAACpB;QAC5B,MAAMJ,OAAiB,EAAE;QACzB,MAAMyB,cAAwBrB,OAAOsB,GAAG,CAACC,CAAAA,cAAeA,YAAYP,IAAI;QACxEhB,MAAM,CAAC,EAAE,CAACS,MAAM,CAACN,OAAO,CAAC,CAACqB;YACxB5B,KAAKkB,IAAI,CAACU,UAAUZ,GAAG;QACzB;QACA,MAAMX,iBAAiBF,eAAeC;QACtC,OAAO;YACLJ;YACAyB;YACApB;QACF;IACF;IAEA,MAAMwB,0BAA0B,CAC9B9D,iBACA+D,OACAC;YAEI/F,oBAKAA;QALJ,KAAIA,qBAAAA,MAAMiC,WAAW,cAAjBjC,yCAAAA,mBAAmBgG,wBAAwB,EAAE;YAC/ChE,mBAAmBD;QACrB,OAAO;YACLC,mBAAmBD,gBAAgBkE,KAAK,CAAC,CAAC;QAC5C;QACA,KAAIjG,sBAAAA,MAAMiC,WAAW,cAAjBjC,0CAAAA,oBAAmBkG,QAAQ,EAAE;YAC/BlG,MAAMiC,WAAW,CAACiE,QAAQ,CAACnE,iBAAiB+D,OAAOC;QACrD;IACF;IAEA,MAAMI,iBAAiB,CAAC/B;QACtB,MAAMa,OAAOb;QACb,MAAMgC,iBAA2B;YAC/B5G,kBAAkBD,eAAe8G,MAAM;YACvC7G,kBAAkBD,eAAe+G,MAAM;YACvC9G,kBAAkBD,eAAegH,MAAM;YACvC/G,kBAAkBD,eAAeiH,MAAM;YACvChH,kBAAkBD,eAAekH,MAAM;SACxC;QACD,MAAMC,UAAoB,EAAE;QAE5BzB,KAAKV,OAAO,CAAC,CAACoC;YACZA,gBAAgB9B,MAAM,CAACN,OAAO,CAAC,CAACC;gBAC9B,IAAI9C,QAAgB8C,MAAM9C,KAAK,GAAG8C,MAAM9C,KAAK,GAAG0E,cAAc,CAACQ,KAAKC,KAAK,CAACD,KAAKE,MAAM,KAAK,IAAI,GAAG;gBACjG,MAAMC,sBAAsBL,QAAQM,MAAM,CAAC,CAACC,MAAgBA,IAAIC,KAAK,KAAK1C,MAAM2C,MAAM,IAAIF,IAAIvF,KAAK,KAAKA;gBACxG,IAAIqF,oBAAqB9C,MAAM,GAAG,GAAG;oBACnC;gBACF;gBACA,MAAMkD,SAAiB;oBACrBD,OAAO1C,MAAM2C,MAAM;oBACnBzF;oBACA0F,aAAa;wBACXC;wBACAC,eAAe9C,MAAM2C,MAAM;oBAC7B;oBACAI,kBAAkB;wBAChBC;oBACF;gBACF;gBAEAd,QAAQxB,IAAI,CAACiC;YACf;QACF;QACA,qBACE,oBAAC7H;YACCmI,SAASf;YACTgB,kBAAkB1H,MAAM2H,uBAAuB;YAC/CC,cAAc5H,MAAM6H,mBAAmB;YACtC,GAAG7H,MAAMiC,WAAW;YACrBiE,UAAUL;;IAGhB;IAEA,MAAMzB,SAASpE,MAAMiF,IAAI;IACzB,MAAM,EAAEjB,IAAI,EAAEyB,WAAW,EAAEpB,cAAc,EAAE,GAAGmB,qBAAqBpB;IACnE7D,QAAQyD;IACRxD,eAAeiF;IACfhF,kBAAkB4D;IAClB,MAAMyD,aAAyBlJ,cAAcwF,MAAO,CAAC,EAAE,CAACgB,IAAI,EAAE;IAC9D,MAAMqC,UAAuBtB,eAAe/B;IAC5CP;IAEA,qFAAqF;IACrF,SAASkE,kBAAkB1D,cAAmB,EAAE2D,SAAqB,EAAEC,kBAA4B;QACjG,MAAMC,SAAmB,EAAE;QAC3B,8DAA8D;QAC9D7D,eAAeE,OAAO,CAAC,CAACU;YACtBA,KAAKK,WAAW,CAACf,OAAO,CAAC,CAACC;gBACxB,IAAI,CAACyD,uBAAuB,CAACzD,MAAMyD,kBAAkB,EAAE;oBACrDC,OAAOhD,IAAI,CAACV,MAAMS,IAAI;gBACxB;YACF;QACF;QAEA,OAAO;YAAEkD,YAAY/J,MAAM8J;YAAUE,UAAUlK,MAAMgK;QAAS;IAChE;IAEA,2FAA2F;IAC3F,iEAAiE;IACjE,8DAA8D;IAC9D,MAAMG,OAAON,kBAAkBtH,iBAAiB2H,QAAQ;IACxDnH,QAAQ2F,KAAK3I,GAAG,CAACoK,MAAMrI,MAAMsI,SAAS,IAAI;QAW/BtI;IATX,MAAMuI,eAAkC;QACtCtF;QACAI;QACA3B;QACAyF,QAAQzE;QACR8F,QAAQtG;QACRuG,QAAQrG,gBAAgBA,gBAAgBP;QACxCS;QACAE;QACAkG,SAAS1I,CAAAA,iBAAAA,MAAM0I,OAAO,cAAb1I,4BAAAA,iBAAiB;QAC1B2I,aAAa;QACb,GAAG3I,MAAMuI,YAAY;QACrB,GAAG9J,wBAAwBqE,0BAA0B,QAAQ,MAAM;IACrE;IACA,MAAM8F,aAAa;QACjBC,YAAY7I,MAAM6I,UAAU;QAC5BC,YAAY9I,MAAM8I,UAAU;IAC9B;IAEA,MAAMC,gBAAgB,CACpBC,QACAC,eACAC,iBACAC,gBACAC,UACAC,cACAC;QAEA,MAAMC,UAAUC,eAAeL;QAE/B,2FAA2F;QAC3F,4EAA4E;QAC5EhI,YAAYpC,YACViB,MAAM8D,QAAQ,EACd9D,MAAMC,WAAW,EACjBsJ,QAAQE,SAAS,KAAMlJ,CAAAA,MAAM0D,MAAM,GAAG,AAAC1D,CAAAA,MAAM0D,MAAM,GAAG,CAAA,IAAKtE,YAAW;QAExEyB,cAAc,AAACb,CAAAA,MAAM0D,MAAM,GAAG,AAAC1D,CAAAA,MAAM0D,MAAM,GAAG,CAAA,IAAKtE,YAAW,IAAKwB;QAEnE,MAAMuI,UAAUC;QAChB,MAAMC,gBAA+B,EAAE;QACvCnJ,gBAAgB8D,OAAO,CAAC,CAACsF;YACvBD,cAAc1E,IAAI,CAChB4E,YAAYD,WAAWN,SAASG,SAAST,eAAeK,iBAAiBJ,iBAAiBE;QAE9F;QACArI,2BAA2B6I;IAC7B;IAEA,MAAMG,cAAc,CAACC;QACnBtJ,WAAWsJ;IACb;IAEA,MAAMC,cAAc,CAACC;QACnB,MAAMC,UAAUC,mBAAmBF,gBAAgBG,yBAAyB,KAAK;QACjF,OAAOF;IACT;IAEA,SAASG,eAAeC,IAAY,EAAEC,IAAY;QAChD,MAAMC,YAAY,GAAG,+BAA+B;QACpD,MAAM,EAAEtH,CAAC,EAAEC,CAAC,EAAE,GAAGH;QACjB,+BAA+B;QAC/B,MAAMyH,WAAW9D,KAAK+D,IAAI,CAAC/D,KAAKgE,GAAG,CAACL,OAAOpH,GAAG,KAAKyD,KAAKgE,GAAG,CAACJ,OAAOpH,GAAG;QACtE,+EAA+E;QAC/E,IAAIsH,WAAWD,WAAW;YACxBvH,iBAAiB;gBAAEC,GAAGoH;gBAAMnH,GAAGoH;YAAK;YACpClH,eAAe;QACjB;IACF;IAEA,MAAMuH,aAAa,CACjBC,WACA,8DAA8D;IAC9DC,WACAC;QAEAA,WAAWC,OAAO;QAClB,IAAI/J,wBAAwB4J,WAAW;YACrC5J,sBAAsB4J;YACtBR,eAAeU,WAAWE,OAAO,EAAEF,WAAWG,OAAO;YACrD7H,eAAe+G,0BAA0BD,mBAAmBU,UAAU3D,MAAM;YAC5ExE,iBAAiBmI,UAAU3D,MAAM;YACjCrF,oBAAoBgJ,UAAU7F,IAAI;YAClCtD,SAASmJ,UAAUpJ,KAAK;YACxBS,iBAAiB2I,UAAUM,gBAAgB;YAC3C/I,iBAAiByI,UAAUO,gBAAgB;YAC3CtI,4BACE/C,MAAMsL,iBAAiB,GAAGP,UAAUxF,6BAA6B,GAAGuF,UAAUhI,wBAAwB;YAExGP,eAAewI,UAAUzF,WAAW;YACpC7C,eAAeqI,UAAUM,gBAAgB;QAC3C;IACF;IAEA,MAAMG,cAAc;IAClB,EAAE,GACJ;IAEA,MAAMlE,yBAAyB;QAC7BnG,sBAAsB;QACtBoC,eAAe;IACjB;IAEA,MAAMkI,aAAa,CACjBV,WACA,8DAA8D;IAC9DC,WACAU;QAEAzK,UAAUuD,OAAO,CAAC,CAACmH,KAAmBjH;YACpC,IAAIiH,IAAIjH,KAAK,KAAKqG,UAAU3D,MAAM,IAAIsE,wBAAwBhH,OAAO;gBACnEnB,eAAe+G,0BAA0BD,mBAAmBU,UAAU3D,MAAM;gBAC5ExE,iBAAiBmI,UAAU3D,MAAM;gBACjCrF,oBAAoBgJ,UAAU7F,IAAI;gBAClCtD,SAASmJ,UAAUpJ,KAAK;gBACxBS,iBAAiB2I,UAAUM,gBAAgB;gBAC3C/I,iBAAiByI,UAAUO,gBAAgB;gBAC3CtI,4BACE/C,MAAMsL,iBAAiB,GAAGP,UAAUxF,6BAA6B,GAAGuF,UAAUhI,wBAAwB;gBAExGP,eAAewI,UAAUzF,WAAW;gBACpC7C,eAAeqI,UAAUM,gBAAgB;YAC3C;QACF;IACF;IAEA,MAAMO,eAAe,CAACC,SAAyB1B,aAAqB2B;QAClE7K,SAAS,CAAC6K,eAAe,GAAG;YAAEpH,OAAOyF;YAAa4B,YAAYF;QAAQ;IACxE;IAEA,MAAM9B,cAAc,CAClB,8DAA8D;IAC9DD,WACA,8DAA8D;IAC9DN,SACA,8DAA8D;IAC9DG,SACAT,eACAK,iBACAJ,iBACAE;QAEA,MAAM2C,cAA6B,EAAE;QACrC,MAAMC,oBAAmC,EAAE;QAE3C,MAAMC,cAAcC,OAAOlI,IAAI,CAACK,cAAc,CAAC,EAAE,EAAE8H,MAAM,CAAC,GAAGnI,KAAKC,MAAM;QACxEgI,YAAY1H,OAAO,CAAC,CAAC6H,YAAoB3H;YACvC,MAAMoH,iBAAiBhC,UAAUxE,QAAQ,GAAG4G,YAAYhI,MAAM,GAAGQ;YACjE,MAAMqG,YAAYjB,SAAS,CAACuC,WAAW;YACvC,MAAMC,YAAYvB,UAAU7C,kBAAkB,IAAIqB,kBAAkBA,kBAAkBL;YACtF,2FAA2F;YAC3F,4BAA4B;YAC5B,MAAMqD,SAAS5C,QAAQ0C,cAAc,AAAC1C,CAAAA,QAAQD,SAAS,KAAKtI,SAAQ,IAAK;YACzE,MAAMoL,aAAazB,UAAUpJ,KAAK,GAAGoJ,UAAUpJ,KAAK,GAAGzC,aAAawF,OAAO;YAE3E,MAAM+H,YAAYH,UAAU5K;YAC5B,IAAIgL,iBAAiBD;YACrB,IAAIE,iBAAiBF;YACrB,IAAIG,SAASlL;YAEb,MAAMmL,SAAS,AAAChN,mBAAmB,IAAM6E,CAAAA,QAAQ,IAAI,IAAI,CAAA;YACzD,MAAMoI,SAASjG,KAAK3I,GAAG,CAACoO,UAAU5K,YAAY4K,UAAUzF,KAAKkG,GAAG,CAAChC,UAAU7F,IAAI,IAAIpF;YACnF,IAAIiL,UAAU7F,IAAI,IAAIxD,UAAU;gBAC9BgL,kBAAkBI,SAASD;gBAC3BD,SAASF;YACX,OAAO;gBACLE,SAASD,iBAAiBE;gBAC1BF,iBAAiBC,SAASE;YAC5B;YACA,6BAA6B;YAC7B/B,UAAU7F,IAAI,IACZ8G,YAAY7G,IAAI,eACd,oBAACrH,MAAMkP,QAAQ;gBAAC/H,KAAK,CAAC,EAAE6E,UAAUxE,QAAQ,CAAC,CAAC,EAAEZ,MAAM,CAAC;6BACnD,oBAACuI;gBACCC,WAAW1J,QAAQ2J,oBAAoB;gBACvCL,QAAQA;gBACRM,OAAOhM;gBACPgC,GAAGmJ;gBACHlJ,GAAGuJ;gBACHS,qBAAmB,CAACpN,MAAMqN,WAAW,IAAKjD,CAAAA,mBAAmBU,UAAU3D,MAAM,KAAKkD,sBAAqB;gBACvGF,SAASF,YAAYa,UAAU3D,MAAM;gBACrCmG,KAAK,CAACC;oBACJ5B,aAAa4B,GAAIzC,UAAU3D,MAAM,EAAE0E;gBACrC;gBACA2B,MAAMjB;gBACNkB,IAAI;gBACJC,aAAa7C,WAAW8C,IAAI,CAAC,MAAM7C,WAAWjB;gBAC9C+D,aAAa/C,WAAW8C,IAAI,CAAC,MAAM7C,WAAWjB;gBAC9CgE,YAAYtC;gBACZuC,SAAStC,WAAWmC,IAAI,CAAC,MAAM7C,WAAWjB,WAAWgC;gBACrDkC,QAAQxC;gBACRyC,SAASlD,UAAUkD,OAAO;gBAC1BC,cAAYC,aAAapD,WAAWjB,UAAU1E,UAAU;gBACxDgJ,UAAU/D,mBAAmBU,UAAU3D,MAAM,KAAKkD,yBAAyB,IAAIrH;gBAC/EoL,MAAK;;YAIb,IACEtD,UAAU7F,IAAI,IACd,CAACjF,MAAMqO,UAAU,IACjBlN,aAAa,MACZiJ,CAAAA,mBAAmBU,UAAU3D,MAAM,KAAKkD,sBAAqB,GAC9D;gBACA2B,kBAAkB9G,IAAI,eACpB,oBAACoJ;oBACCtJ,KAAK,CAAC,EAAE6E,UAAUxE,QAAQ,CAAC,CAAC,EAAEZ,MAAM,CAAC;oBACrCtB,GAAGmJ,SAASnL,YAAY;oBACxBiC,GAAG0H,UAAU7F,IAAI,IAAIxD,WAAWgL,iBAAiB,IAAIC,iBAAiB;oBACtE6B,YAAW;oBACXtB,WAAW1J,QAAQiL,QAAQ;oBAC3BC,eAAa;mBAEZ,OAAOzO,MAAM0O,eAAe,KAAK,aAC9B1O,MAAM0O,eAAe,CAAC5D,UAAU7F,IAAI,IACpCpG,2BAA2BiM,UAAU7F,IAAI;YAGnD;QACF;QACA,4CAA4C;QAC5C,IAAI,CAACjF,MAAM2O,eAAe,IAAI3O,MAAM4O,sBAAsB,EAAE;YAC1D,MAAMC,eAAe7Q,SAASoL,UAAU0F,IAAI,CAACvF;YAC7C,IAAI;gBACFwF,SAASC,cAAc,CAAC7O,eAAe4O,SAASC,cAAc,CAAC7O,YAAa8O,MAAM;YAClF,oCAAoC;YACtC,EAAE,OAAO1B,GAAG,CAAC;YACb,MAAM2B,eAAe;gBACnBC,YAAY5L,QAAQ6L,OAAO;gBAC3BC,IAAIlP;gBACJmP,OAAOT;YACT;YACAA,gBAAgBnQ,qBAAqBwQ;QACvC;QACA,qBACE,oBAACK;YACCvK,KAAK6E,UAAUxE,QAAQ;YACvBmK,WAAW,CAAC,UAAU,EAAEjG,QAAQM,UAAU1E,UAAU,IAAI,AAACoE,CAAAA,QAAQE,SAAS,KAAKrI,WAAU,IAAK,EAAE,IAAI,CAAC;WAEpG2K,aACAC;IAGP;IAEA,uFAAuF;IACvF,kFAAkF;IAClF,MAAMxC,iBAAiB,CAACL;QACtB,MAAMsG,SAASnR,cACZoR,MAAM,CAACjK,aACPkK,KAAK,CACJtP,UACI;YAAC8I,iBAAkBzI,SAASE,KAAK,GAAIN;YAAeI,SAASI,IAAI,GAAIR;SAAc,GACnF;YAACI,SAASI,IAAI,GAAIR;YAAe6I,iBAAkBzI,SAASE,KAAK,GAAIN;SAAc,EAExFsP,YAAY,CAACvO,oBACbwO,YAAY,CAACvO;QAChB,OAAOmO;IACT;IAEA,8DAA8D;IAC9D,MAAM9F,iBAAiB;QACrB,OACErL,cACGoR,MAAM,CAAC1L,KACR,gEAAgE;QAChE,uEAAuE;QACvE,qGAAqG;SACpG2L,KAAK,CAACtP,UAAU;YAACe;YAAa;SAAE,GAAG;YAAC;YAAGA;SAAY,EACnDwO,YAAY,CAAClQ;IAEpB;IAEA,MAAM4H,iBAAiB,CAAC4C;QACtBrH,gBAAgBqH;IAClB;IAEA,MAAM1C,iBAAiB;QACrB3E,gBAAgB;IAClB;IAEA,MAAMiN,eAAejS,MAAMkS,WAAW,CACpC,CAACC;QACC,IAAIA,aAAaA,UAAUC,iBAAiB,CAAChM,MAAM,EAAE;YACnD,MAAM,EAAEgM,mBAAmBC,WAAW,EAAE,GAAGF;YAC3C/O,QAAQ2F,KAAK3I,GAAG,CAACiS,WAAW,CAACA,YAAYjM,MAAM,GAAG,EAAE,EAAEjE,MAAMsI,SAAS,IAAI;QAC3E;IACF,GACA;QAACtI,MAAMsI,SAAS;KAAC;IAGnB;;;;;GAKC,GACD,MAAM8B,qBAAqB,CAACF;QAC1B,OAAOiG,wBAAwBC,QAAQ,CAAClG;IAC1C;IAEA;;GAEC,GACD,MAAMG,uBAAuB;QAC3B,OAAO8F,wBAAwBlM,MAAM,KAAK;IAC5C;IAEA,MAAMkM,wBAAwB;QAC5B,OAAOpO,gBAAgBkC,MAAM,GAAG,IAAIlC,kBAAkBa,eAAe;YAACA;SAAa,GAAG,EAAE;IAC1F;IAEA,MAAMsL,eAAe,CAAC1J,OAA8BW;YAI3CX;QAHP,MAAM6L,SAAS7L,MAAM4G,gBAAgB,IAAIjG;QACzC,MAAMgC,SAAS3C,MAAM2C,MAAM;QAC3B,MAAMmJ,SAAS9L,MAAM6G,gBAAgB,IAAI7G,MAAMS,IAAI;QACnD,OAAOT,EAAAA,kCAAAA,MAAM1B,wBAAwB,cAA9B0B,sDAAAA,gCAAgC+L,SAAS,KAAI,CAAC,EAAEF,OAAO,EAAE,EAAElJ,OAAO,EAAE,EAAEmJ,OAAO,CAAC,CAAC;IACxF;IAEA,MAAME,oBAAoB,CAACrH;QACzB,6CAA6C,GAC7C,MAAMsH,aAAatH,iBAAkBzI,CAAAA,SAASI,IAAI,GAAIrB,iBAAgB,IAAMiB,CAAAA,SAASE,KAAK,GAAInB,iBAAgB;QAC9G,2EAA2E,GAC3E,MAAMiR,eAAerP,qBAAsB,CAAA,IAAIA,kBAAiB;QAEhE,IAAIyG,eAAenJ,WAAWgS,UAAU,EAAE;YACxC,IAAI3R,sBAAsBgB,MAAMkE,iBAAiB,GAAG;gBAClD,uGAAuG;gBACvG,uEAAuE;gBACvE5D,gBAAgB;YAClB,OAAO,IAAIN,MAAM8D,QAAQ,KAAK,QAAQ;gBACpC,8DAA8D;gBAC9D,+DAA+D;gBAC/D3C,YAAYpC,YAAYiB,MAAM8D,QAAQ,EAAE9D,MAAMC,WAAW;gBACzD,MAAM2Q,aAAa,AAAC5M,CAAAA,KAAKC,MAAM,GAAG,AAACD,CAAAA,KAAKC,MAAM,GAAG,CAAA,IAAKtE,YAAW,IAAKwB;gBACtE,oFAAoF,GACpF,MAAM0P,WAAW,AAACpL,CAAAA,YAAYxB,MAAM,GAAG,AAACwB,CAAAA,YAAYxB,MAAM,GAAG,CAAA,IAAKyM,YAAW,IAAKE;gBAElF,IAAIH,cAAcI,UAAU;oBAC1B,4EAA4E;oBAC5EvQ,gBAAgBb,oBAAoB,AAACgR,CAAAA,aAAaI,QAAO,IAAK;gBAChE;YACF,OAAO,IAAI7Q,MAAM8Q,IAAI,KAAK,YAAYrL,YAAYxB,MAAM,GAAG,GAAG;gBAC5D,wFAAwF;gBACxF,MAAM8M,iBAAiBN,aAAchL,CAAAA,YAAYxB,MAAM,GAAG,AAACwB,CAAAA,YAAYxB,MAAM,GAAG,CAAA,IAAKyM,YAAW;gBAChG,MAAMM,eAAeD,iBAAkB/M,CAAAA,KAAKC,MAAM,GAAG,AAACD,CAAAA,KAAKC,MAAM,GAAG,CAAA,IAAKtE,YAAW;gBACpF,MAAMmE,WAAW/E,YAAYiB,MAAM8D,QAAQ,EAAE9D,MAAMC,WAAW,EAAE+Q;gBAChE,MAAMJ,aAAa,AAAC5M,CAAAA,KAAKC,MAAM,GAAG,AAACD,CAAAA,KAAKC,MAAM,GAAG,CAAA,IAAKtE,YAAW,IAAKmE;gBACtE,IAAI+M,WAAW,AAACpL,CAAAA,YAAYxB,MAAM,GAAG,AAACwB,CAAAA,YAAYxB,MAAM,GAAG,CAAA,IAAKyM,YAAW,IAAKE;gBAChF,MAAMK,UAAU,AAACR,CAAAA,aAAaI,QAAO,IAAK;gBAE1C,gGAAgG;gBAChG,MAAMK,OAAO/R,2BAA2BsG,eAAe;gBACvDoL,WAAW,AAACpL,CAAAA,YAAYxB,MAAM,GAAG5C,kBAAiB,IAAK6P;gBACvD,MAAMC,UAAU,AAACV,CAAAA,aAAaI,QAAO,IAAK;gBAE1CvQ,gBAAgBb,oBAAoBmH,KAAK3I,GAAG,CAAC,GAAG2I,KAAKzI,GAAG,CAAC8S,SAASE;YACpE;QACF;QAEA,OAAO;YACL,GAAGzQ,QAAQ;YACXI,MAAMJ,SAASI,IAAI,GAAIR;YACvBM,OAAOF,SAASE,KAAK,GAAIN;QAC3B;IACF;IAEA,MAAM8Q,gBAAgB;QACpB,OAAO,CACLpR,CAAAA,MAAMiF,IAAI,IACVjF,MAAMiF,IAAI,CAAChB,MAAM,GAAG,KACpBjE,MAAMiF,IAAI,CAAC+B,MAAM,CAAC,CAACqK,OAAsCA,KAAKxM,MAAM,CAACZ,MAAM,EAAEA,MAAM,GAAG,CAAA;IAE1F;IAEA,MAAMqN,iBAAiB;QACrB,OACE,AAACtR,CAAAA,MAAMuR,UAAU,GAAG,CAAC,EAAEvR,MAAMuR,UAAU,CAAC,EAAE,CAAC,GAAG,EAAC,IAC/C,CAAC,wBAAwB,EAAE/Q,aAAayD,MAAM,CAAC,WAAW,EAAE1D,MAAM0D,MAAM,CAAC,YAAY,CAAC;IAE1F;IAEA,OAAO,CAACmN,gCACN,oBAAC/R;QACE,GAAGW,KAAK;QACTuR,YAAYD;QACZlN,QAAQ3D;QACR+Q,WAAWhT,WAAWsB,uBAAuB;QAC7C2R,kBAAkB1J;QAClBQ,cAAcA;QACdmJ,YAAYjK;QACZkK,WAAW7J;QACX8J,uBAAuBpR;QACvBoI,YAAYA;QACZiJ,aAAa7R,MAAM6R,WAAW,IAAI;QAClCC,WAAW7Q;QACX8Q,YAAYhI;QACZiI,cAAcjJ;QACdkJ,aAAanC;QACboC,mBAAmB7K;QACnB8K,kBAAkB3B;QACjB,GAAI1I,eAAenJ,WAAWgS,UAAU,IAAI;YAC3C5M,mBAAmB1C;YACnB6C,mBAAmB5C;QACrB,CAAC;QACD8Q,UAAUjR;QACVuC,cAAcnC;QACd,oCAAoC,GACpC8Q,UAAU;YACR,qBAAO,oBAAC9C,WAAGxO;QACb;uBAGF,oBAACuR;QAAIjD,IAAIjP;QAAegO,MAAM;QAASmE,OAAO;YAAEpI,SAAS;QAAI;QAAG8D,cAAY;;AAEhF,GAAG;AACHnO,wBAAwB0S,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GroupedVerticalBarChart.types.ts"],"sourcesContent":["import {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n GroupedVerticalBarChartData,\n} from '../../index';\n\n/**\n * Vertical Bar Chart properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data?: GroupedVerticalBarChartData[];\n\n /**\n * Width of each bar in the chart. When set to `undefined` or `'default'`, the bar width defaults to 16px,\n * which may decrease to prevent overlap. When set to `'auto'`, the bar width is calculated from padding values.\n * @default 16\n */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Colors from which to select the color of each bar.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * This prop makes sure that all the bars are of same color.\n * it will take the first color from the array of colors in\n * prop `colors` or if `colors` prop is not given then default color is palette.blueLight\n * @default false\n */\n useSingleColor?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: GroupedVerticalBarChartStyles;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default false\n */\n isCalloutForStack?: boolean;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n}\n\n/**\n * Vertical Bar Chart style properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Vertical Bar Chart styles\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyles extends CartesianChartStyles {\n /**\n * Style for the bar labels\n */\n barLabel: string;\n}\n"],"names":[],"rangeMappings":";;;","mappings":"
|
|
1
|
+
{"version":3,"sources":["GroupedVerticalBarChart.types.ts"],"sourcesContent":["import {\n CartesianChartProps,\n CartesianChartStyleProps,\n CartesianChartStyles,\n GroupedVerticalBarChartData,\n} from '../../index';\n\n/**\n * Vertical Bar Chart properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartProps extends CartesianChartProps {\n /**\n * Data to render in the chart.\n */\n data?: GroupedVerticalBarChartData[];\n\n /**\n * Width of each bar in the chart. When set to `undefined` or `'default'`, the bar width defaults to 16px,\n * which may decrease to prevent overlap. When set to `'auto'`, the bar width is calculated from padding values.\n * @default 16\n */\n barWidth?: number | 'default' | 'auto';\n\n /**\n * Colors from which to select the color of each bar.\n */\n colors?: string[];\n\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n\n /**\n * This prop makes sure that all the bars are of same color.\n * it will take the first color from the array of colors in\n * prop `colors` or if `colors` prop is not given then default color is palette.blueLight\n * @default false\n */\n useSingleColor?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: GroupedVerticalBarChartStyles;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n * To display multi stack callout or single callout\n * @default false\n */\n isCalloutForStack?: boolean;\n\n /**\n * Prop to hide the bar labels\n * @default false\n */\n hideLabels?: boolean;\n\n /**\n * Maximum width of a bar, in pixels.\n * @default 24\n */\n maxBarWidth?: number;\n\n /**\n * Padding between bars as a fraction of the [step](https://d3js.org/d3-scale/band#band_step).\n * Takes a number in the range [0, 1]. Only applicable to string x-axis.\n * @default 2/3\n */\n xAxisInnerPadding?: number;\n\n /**\n * Padding before the first bar and after the last bar as a fraction of\n * the [step](https://d3js.org/d3-scale/band#band_step). Takes a number in the range [0, 1].\n * Only applicable to string x-axis.\n */\n xAxisOuterPadding?: number;\n\n /**\n * Specifies the mode of the chart.\n * @default 'default'\n */\n mode?: 'default' | 'plotly';\n\n /**\n * @default false\n * The prop used to enable rounded corners for the chart.\n */\n roundCorners?: boolean;\n}\n\n/**\n * Vertical Bar Chart style properties\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyleProps extends CartesianChartStyleProps {}\n\n/**\n * Vertical Bar Chart styles\n * {@docCategory VerticalBarChart}\n */\nexport interface GroupedVerticalBarChartStyles extends CartesianChartStyles {\n /**\n * Style for the bar labels\n */\n barLabel: string;\n}\n"],"names":[],"rangeMappings":";;;","mappings":"AAuGA;;;CAGC,GACD,WAKC"}
|
|
@@ -575,7 +575,7 @@ export const HeatMapChart = /*#__PURE__*/ React.forwardRef((props, forwardedRef)
|
|
|
575
575
|
tickParams: tickParams,
|
|
576
576
|
/* eslint-disable react/jsx-no-bind */ children: (p)=>{
|
|
577
577
|
_xAxisScale.current = p.xScale;
|
|
578
|
-
_yAxisScale.current = p.
|
|
578
|
+
_yAxisScale.current = p.yScalePrimary;
|
|
579
579
|
return _createRectangles();
|
|
580
580
|
}
|
|
581
581
|
}) : /*#__PURE__*/ React.createElement("div", {
|