@razorpay/blade 12.63.0 → 12.65.0
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/build/lib/native/components/Badge/Badge.js +1 -1
- package/build/lib/native/components/Badge/Badge.js.map +1 -1
- package/build/lib/native/components/Badge/badgeTokens.js +1 -1
- package/build/lib/native/components/Badge/badgeTokens.js.map +1 -1
- package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponentsContext.js +6 -0
- package/build/lib/native/components/Charts/CommonChartComponents/CommonChartComponentsContext.js.map +1 -0
- package/build/lib/native/components/Charts/CommonChartComponents/tokens.js +4 -0
- package/build/lib/native/components/Charts/CommonChartComponents/tokens.js.map +1 -0
- package/build/lib/native/components/Form/CharacterCounter/CharacterCounter.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js +1 -1
- package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
- package/build/lib/native/components/Input/BaseInput/baseInputTokens.js +1 -1
- package/build/lib/native/components/Input/BaseInput/baseInputTokens.js.map +1 -1
- package/build/lib/native/components/QuickFilters/QuickFilter.js +1 -1
- package/build/lib/native/components/QuickFilters/QuickFilter.js.map +1 -1
- package/build/lib/native/components/Radio/Radio.js +1 -1
- package/build/lib/native/components/Radio/Radio.js.map +1 -1
- package/build/lib/native/components/Table/TableContext.js +1 -1
- package/build/lib/native/components/Table/TableContext.js.map +1 -1
- package/build/lib/native/components/Table/tokens.js +1 -1
- package/build/lib/native/components/Table/tokens.js.map +1 -1
- package/build/lib/native/components/index.js +2 -0
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/native/tokens/global/colors.js +1 -1
- package/build/lib/native/tokens/global/colors.js.map +1 -1
- package/build/lib/native/tokens/global/size.js +1 -1
- package/build/lib/native/tokens/global/size.js.map +1 -1
- package/build/lib/native/tokens/theme/bladeTheme.js +1 -1
- package/build/lib/native/tokens/theme/bladeTheme.js.map +1 -1
- package/build/lib/native/tokens/theme/theme.js.map +1 -1
- package/build/lib/web/development/components/Badge/Badge.js +4 -0
- package/build/lib/web/development/components/Badge/Badge.js.map +1 -1
- package/build/lib/web/development/components/Badge/badgeTokens.js +4 -0
- package/build/lib/web/development/components/Badge/badgeTokens.js.map +1 -1
- package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js +140 -38
- package/build/lib/web/development/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
- package/build/lib/web/development/components/Charts/BarChart/BarChart.web.js +121 -57
- package/build/lib/web/development/components/Charts/BarChart/BarChart.web.js.map +1 -1
- package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js +145 -92
- package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
- package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponentsContext.js +15 -0
- package/build/lib/web/development/components/Charts/CommonChartComponents/CommonChartComponentsContext.js.map +1 -0
- package/build/lib/web/development/components/Charts/CommonChartComponents/index.js +2 -0
- package/build/lib/web/development/components/Charts/CommonChartComponents/index.js.map +1 -1
- package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js +2 -1
- package/build/lib/web/development/components/Charts/CommonChartComponents/tokens.js.map +1 -1
- package/build/lib/web/development/components/Charts/DonutChart/DonutChart.web.js +202 -69
- package/build/lib/web/development/components/Charts/DonutChart/DonutChart.web.js.map +1 -1
- package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js +84 -32
- package/build/lib/web/development/components/Charts/LineChart/LineChart.web.js.map +1 -1
- package/build/lib/web/development/components/Charts/utils/assignDataColorMapping/assignDataColorMapping.js +33 -0
- package/build/lib/web/development/components/Charts/utils/assignDataColorMapping/assignDataColorMapping.js.map +1 -0
- package/build/lib/web/development/components/Charts/utils/assignDataColorMapping/index.js +2 -0
- package/build/lib/web/development/components/Charts/utils/assignDataColorMapping/index.js.map +1 -0
- package/build/lib/web/development/components/Charts/utils/getHighestColorInRange.js +53 -0
- package/build/lib/web/development/components/Charts/utils/getHighestColorInRange.js.map +1 -0
- package/build/lib/web/development/components/Charts/utils/index.js +5 -0
- package/build/lib/web/development/components/Charts/utils/index.js.map +1 -1
- package/build/lib/web/development/components/Charts/utils/isSequentialColor.js +35 -0
- package/build/lib/web/development/components/Charts/utils/isSequentialColor.js.map +1 -0
- package/build/lib/web/development/components/Charts/utils/sanitizeString/index.js +2 -0
- package/build/lib/web/development/components/Charts/utils/sanitizeString/index.js.map +1 -0
- package/build/lib/web/development/components/Charts/utils/sanitizeString/sanitizeString.js +30 -0
- package/build/lib/web/development/components/Charts/utils/sanitizeString/sanitizeString.js.map +1 -0
- package/build/lib/web/development/components/Charts/utils/tokens.js +7 -0
- package/build/lib/web/development/components/Charts/utils/tokens.js.map +1 -0
- package/build/lib/web/development/components/Charts/utils/useColorTheme.js +32 -11
- package/build/lib/web/development/components/Charts/utils/useColorTheme.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js +3 -1
- package/build/lib/web/development/components/Dropdown/FilterChipGroup.web.js.map +1 -1
- package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js +8 -9
- package/build/lib/web/development/components/FilterChip/BaseFilterChip.web.js.map +1 -1
- package/build/lib/web/development/components/FilterChip/tokens.js +1 -1
- package/build/lib/web/development/components/FilterChip/tokens.js.map +1 -1
- package/build/lib/web/development/components/Form/CharacterCounter/CharacterCounter.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js +2 -0
- package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
- package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js +11 -0
- package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js.map +1 -1
- package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js +1 -0
- package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
- package/build/lib/web/development/components/ListView/ListViewFilters.web.js +13 -102
- package/build/lib/web/development/components/ListView/ListViewFilters.web.js.map +1 -1
- package/build/lib/web/development/components/QuickFilters/QuickFilter.js +2 -1
- package/build/lib/web/development/components/QuickFilters/QuickFilter.js.map +1 -1
- package/build/lib/web/development/components/Radio/Radio.js +4 -2
- package/build/lib/web/development/components/Radio/Radio.js.map +1 -1
- package/build/lib/web/development/components/Table/Table.web.js +3 -1
- package/build/lib/web/development/components/Table/Table.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableBody.web.js +2 -1
- package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableContext.js +2 -1
- package/build/lib/web/development/components/Table/TableContext.js.map +1 -1
- package/build/lib/web/development/components/Table/TableFooter.web.js +2 -1
- package/build/lib/web/development/components/Table/TableFooter.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableHeader.web.js +78 -68
- package/build/lib/web/development/components/Table/TableHeader.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TablePagination.web.js +5 -2
- package/build/lib/web/development/components/Table/TablePagination.web.js.map +1 -1
- package/build/lib/web/development/components/Table/TableToolbar.web.js +15 -13
- package/build/lib/web/development/components/Table/TableToolbar.web.js.map +1 -1
- package/build/lib/web/development/components/Table/tokens.js +11 -8
- package/build/lib/web/development/components/Table/tokens.js.map +1 -1
- package/build/lib/web/development/components/index.js +2 -0
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/tokens/global/colors.js +48 -48
- package/build/lib/web/development/tokens/global/colors.js.map +1 -1
- package/build/lib/web/development/tokens/global/size.js +2 -0
- package/build/lib/web/development/tokens/global/size.js.map +1 -1
- package/build/lib/web/development/tokens/theme/bladeTheme.js +139 -111
- package/build/lib/web/development/tokens/theme/bladeTheme.js.map +1 -1
- package/build/lib/web/development/tokens/theme/theme.js.map +1 -1
- package/build/lib/web/production/components/Badge/Badge.js +4 -0
- package/build/lib/web/production/components/Badge/Badge.js.map +1 -1
- package/build/lib/web/production/components/Badge/badgeTokens.js +4 -0
- package/build/lib/web/production/components/Badge/badgeTokens.js.map +1 -1
- package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js +140 -38
- package/build/lib/web/production/components/Charts/AreaChart/AreaChart.web.js.map +1 -1
- package/build/lib/web/production/components/Charts/BarChart/BarChart.web.js +121 -57
- package/build/lib/web/production/components/Charts/BarChart/BarChart.web.js.map +1 -1
- package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js +145 -92
- package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponents.web.js.map +1 -1
- package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponentsContext.js +15 -0
- package/build/lib/web/production/components/Charts/CommonChartComponents/CommonChartComponentsContext.js.map +1 -0
- package/build/lib/web/production/components/Charts/CommonChartComponents/index.js +2 -0
- package/build/lib/web/production/components/Charts/CommonChartComponents/index.js.map +1 -1
- package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js +2 -1
- package/build/lib/web/production/components/Charts/CommonChartComponents/tokens.js.map +1 -1
- package/build/lib/web/production/components/Charts/DonutChart/DonutChart.web.js +202 -69
- package/build/lib/web/production/components/Charts/DonutChart/DonutChart.web.js.map +1 -1
- package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js +84 -32
- package/build/lib/web/production/components/Charts/LineChart/LineChart.web.js.map +1 -1
- package/build/lib/web/production/components/Charts/utils/assignDataColorMapping/assignDataColorMapping.js +33 -0
- package/build/lib/web/production/components/Charts/utils/assignDataColorMapping/assignDataColorMapping.js.map +1 -0
- package/build/lib/web/production/components/Charts/utils/assignDataColorMapping/index.js +2 -0
- package/build/lib/web/production/components/Charts/utils/assignDataColorMapping/index.js.map +1 -0
- package/build/lib/web/production/components/Charts/utils/getHighestColorInRange.js +53 -0
- package/build/lib/web/production/components/Charts/utils/getHighestColorInRange.js.map +1 -0
- package/build/lib/web/production/components/Charts/utils/index.js +5 -0
- package/build/lib/web/production/components/Charts/utils/index.js.map +1 -1
- package/build/lib/web/production/components/Charts/utils/isSequentialColor.js +35 -0
- package/build/lib/web/production/components/Charts/utils/isSequentialColor.js.map +1 -0
- package/build/lib/web/production/components/Charts/utils/sanitizeString/index.js +2 -0
- package/build/lib/web/production/components/Charts/utils/sanitizeString/index.js.map +1 -0
- package/build/lib/web/production/components/Charts/utils/sanitizeString/sanitizeString.js +30 -0
- package/build/lib/web/production/components/Charts/utils/sanitizeString/sanitizeString.js.map +1 -0
- package/build/lib/web/production/components/Charts/utils/tokens.js +7 -0
- package/build/lib/web/production/components/Charts/utils/tokens.js.map +1 -0
- package/build/lib/web/production/components/Charts/utils/useColorTheme.js +32 -11
- package/build/lib/web/production/components/Charts/utils/useColorTheme.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js +3 -1
- package/build/lib/web/production/components/Dropdown/FilterChipGroup.web.js.map +1 -1
- package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js +8 -9
- package/build/lib/web/production/components/FilterChip/BaseFilterChip.web.js.map +1 -1
- package/build/lib/web/production/components/FilterChip/tokens.js +1 -1
- package/build/lib/web/production/components/FilterChip/tokens.js.map +1 -1
- package/build/lib/web/production/components/Form/CharacterCounter/CharacterCounter.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js +2 -0
- package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
- package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js +11 -0
- package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js.map +1 -1
- package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js +1 -0
- package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
- package/build/lib/web/production/components/ListView/ListViewFilters.web.js +13 -102
- package/build/lib/web/production/components/ListView/ListViewFilters.web.js.map +1 -1
- package/build/lib/web/production/components/QuickFilters/QuickFilter.js +2 -1
- package/build/lib/web/production/components/QuickFilters/QuickFilter.js.map +1 -1
- package/build/lib/web/production/components/Radio/Radio.js +4 -2
- package/build/lib/web/production/components/Radio/Radio.js.map +1 -1
- package/build/lib/web/production/components/Table/Table.web.js +3 -1
- package/build/lib/web/production/components/Table/Table.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableBody.web.js +2 -1
- package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableContext.js +2 -1
- package/build/lib/web/production/components/Table/TableContext.js.map +1 -1
- package/build/lib/web/production/components/Table/TableFooter.web.js +2 -1
- package/build/lib/web/production/components/Table/TableFooter.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableHeader.web.js +78 -68
- package/build/lib/web/production/components/Table/TableHeader.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TablePagination.web.js +5 -2
- package/build/lib/web/production/components/Table/TablePagination.web.js.map +1 -1
- package/build/lib/web/production/components/Table/TableToolbar.web.js +15 -13
- package/build/lib/web/production/components/Table/TableToolbar.web.js.map +1 -1
- package/build/lib/web/production/components/Table/tokens.js +11 -8
- package/build/lib/web/production/components/Table/tokens.js.map +1 -1
- package/build/lib/web/production/components/index.js +2 -0
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/tokens/global/colors.js +48 -48
- package/build/lib/web/production/tokens/global/colors.js.map +1 -1
- package/build/lib/web/production/tokens/global/size.js +2 -0
- package/build/lib/web/production/tokens/global/size.js.map +1 -1
- package/build/lib/web/production/tokens/theme/bladeTheme.js +139 -111
- package/build/lib/web/production/tokens/theme/bladeTheme.js.map +1 -1
- package/build/lib/web/production/tokens/theme/theme.js.map +1 -1
- package/build/types/components/index.d.ts +109 -23
- package/build/types/components/index.native.d.ts +106 -20
- package/build/types/tokens/index.d.ts +8 -6
- package/build/types/tokens/index.native.d.ts +8 -6
- package/build/types/utils/index.d.ts +29 -6
- package/build/types/utils/index.native.d.ts +29 -6
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
3
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
|
-
import React__default, { useState } from 'react';
|
|
4
|
+
import React__default, { createElement, useState } from 'react';
|
|
5
5
|
import { Bar, ResponsiveContainer, BarChart } from 'recharts';
|
|
6
6
|
import '../utils/index.js';
|
|
7
|
+
import '../CommonChartComponents/index.js';
|
|
7
8
|
import { useBarChartContext, BarChartContext } from './BarChartContext.js';
|
|
8
|
-
import { DISTANCE_BETWEEN_STACKED_BARS,
|
|
9
|
+
import { DISTANCE_BETWEEN_STACKED_BARS, componentIds, BAR_SIZE, DISTANCE_BETWEEN_BARS, DISTANCE_BETWEEN_CATEGORY_BARS } from './tokens.js';
|
|
9
10
|
import '../../BladeProvider/index.js';
|
|
10
11
|
import '../../Box/BaseBox/index.js';
|
|
11
12
|
import '../../../utils/metaAttribute/index.js';
|
|
@@ -14,11 +15,14 @@ import isNumber from '../../../utils/lodashButBetter/isNumber.js';
|
|
|
14
15
|
import '../../../utils/assignWithoutSideEffects/index.js';
|
|
15
16
|
import '../../../utils/isValidAllowedChildren/index.js';
|
|
16
17
|
import '../../../utils/makeAnalyticsAttribute/index.js';
|
|
17
|
-
import { jsx } from 'react/jsx-runtime';
|
|
18
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
18
19
|
import useTheme from '../../BladeProvider/useTheme.js';
|
|
19
20
|
import useChartsColorTheme from '../utils/useColorTheme.js';
|
|
21
|
+
import { getHighestColorInRange } from '../utils/getHighestColorInRange.js';
|
|
20
22
|
import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
21
23
|
import { getComponentId } from '../../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
|
|
24
|
+
import { assignDataColorMapping } from '../utils/assignDataColorMapping/assignDataColorMapping.js';
|
|
25
|
+
import { CommonChartComponentsContext } from '../CommonChartComponents/CommonChartComponentsContext.js';
|
|
22
26
|
import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
|
|
23
27
|
import { metaAttribute } from '../../../utils/metaAttribute/metaAttribute.web.js';
|
|
24
28
|
import { makeAnalyticsAttribute } from '../../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
|
|
@@ -28,7 +32,7 @@ var _excluded = ["color", "name", "dataKey", "activeBar", "label", "showLegend",
|
|
|
28
32
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
29
33
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
30
34
|
// Bar component - resolves Blade color tokens to actual colors
|
|
31
|
-
var _ChartBar = function
|
|
35
|
+
var _ChartBar = /*#__PURE__*/React__default.memo(function (_ref) {
|
|
32
36
|
var color = _ref.color,
|
|
33
37
|
name = _ref.name,
|
|
34
38
|
dataKey = _ref.dataKey,
|
|
@@ -49,13 +53,19 @@ var _ChartBar = function _ChartBar(_ref) {
|
|
|
49
53
|
_colorTheme = _useBarChartContext.colorTheme,
|
|
50
54
|
totalBars = _useBarChartContext.totalBars;
|
|
51
55
|
var defaultColorArray = useChartsColorTheme({
|
|
52
|
-
colorTheme: _colorTheme
|
|
56
|
+
colorTheme: _colorTheme,
|
|
57
|
+
chartName: 'bar',
|
|
58
|
+
chartDataIndicators: totalBars
|
|
53
59
|
});
|
|
54
|
-
var fill =
|
|
60
|
+
var fill = getIn(theme.colors, color !== null && color !== void 0 ? color : defaultColorArray[_index]);
|
|
61
|
+
var strokeFill = getIn(theme.colors, getHighestColorInRange({
|
|
62
|
+
colorToken: color !== null && color !== void 0 ? color : defaultColorArray[_index],
|
|
63
|
+
followIntensityMapping: Boolean(color)
|
|
64
|
+
}));
|
|
55
65
|
var isStacked = rest.stackId !== undefined;
|
|
56
66
|
var animationBegin = isStacked ? theme.motion.duration.gentle / totalBars * _index : theme.motion.duration.gentle;
|
|
57
67
|
var animationDuration = isStacked ? theme.motion.duration.gentle / totalBars : theme.motion.duration.gentle;
|
|
58
|
-
return /*#__PURE__*/
|
|
68
|
+
return /*#__PURE__*/createElement(Bar, _objectSpread(_objectSpread({}, rest), {}, {
|
|
59
69
|
fill: fill,
|
|
60
70
|
legendType: showLegend ? 'rect' : 'none',
|
|
61
71
|
activeBar: activeBar,
|
|
@@ -65,6 +75,7 @@ var _ChartBar = function _ChartBar(_ref) {
|
|
|
65
75
|
animationEasing: "linear",
|
|
66
76
|
dataKey: dataKey,
|
|
67
77
|
name: name,
|
|
78
|
+
key: "".concat(dataKey, "-").concat(_index, "-").concat(name),
|
|
68
79
|
shape: function shape(props) {
|
|
69
80
|
var _ref2 = props,
|
|
70
81
|
fill = _ref2.fill,
|
|
@@ -77,30 +88,45 @@ var _ChartBar = function _ChartBar(_ref) {
|
|
|
77
88
|
var gap = DISTANCE_BETWEEN_STACKED_BARS;
|
|
78
89
|
var isVertical = layout === 'vertical';
|
|
79
90
|
if (isVertical) {
|
|
80
|
-
return /*#__PURE__*/
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
91
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
92
|
+
children: [/*#__PURE__*/jsx("rect", {
|
|
93
|
+
fill: fill,
|
|
94
|
+
x: x + gap / 1.5,
|
|
95
|
+
y: y,
|
|
96
|
+
width: width - gap,
|
|
97
|
+
height: height,
|
|
98
|
+
fillOpacity: fillOpacity
|
|
99
|
+
}), /*#__PURE__*/jsx("rect", {
|
|
100
|
+
fill: strokeFill,
|
|
101
|
+
x: x + gap / 1.5 + (width - gap) - 1.5 // Position at the right end
|
|
102
|
+
,
|
|
103
|
+
y: y,
|
|
104
|
+
width: width > gap ? 1.5 : 0,
|
|
105
|
+
height: height,
|
|
106
|
+
fillOpacity: fillOpacity
|
|
107
|
+
})]
|
|
89
108
|
});
|
|
90
109
|
}
|
|
91
|
-
return /*#__PURE__*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
110
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
111
|
+
children: [/*#__PURE__*/jsx("rect", {
|
|
112
|
+
fill: fill,
|
|
113
|
+
x: x,
|
|
114
|
+
y: y + gap / 1.5,
|
|
115
|
+
width: width,
|
|
116
|
+
height: height > gap ? height - gap : 0,
|
|
117
|
+
fillOpacity: fillOpacity
|
|
118
|
+
}), /*#__PURE__*/jsx("rect", {
|
|
119
|
+
fill: strokeFill,
|
|
120
|
+
x: x,
|
|
121
|
+
y: y + gap / 1.5,
|
|
122
|
+
width: width,
|
|
123
|
+
height: height > gap ? 1.5 : 0,
|
|
124
|
+
fillOpacity: fillOpacity
|
|
125
|
+
})]
|
|
100
126
|
});
|
|
101
127
|
}
|
|
102
128
|
}));
|
|
103
|
-
};
|
|
129
|
+
});
|
|
104
130
|
var ChartBar = /*#__PURE__*/assignWithoutSideEffects(_ChartBar, {
|
|
105
131
|
componentId: componentIds.chartBar
|
|
106
132
|
});
|
|
@@ -120,54 +146,92 @@ var ChartBarWrapper = function ChartBarWrapper(_ref3) {
|
|
|
120
146
|
_useState2 = _slicedToArray(_useState, 2),
|
|
121
147
|
activeIndex = _useState2[0],
|
|
122
148
|
setActiveIndex = _useState2[1];
|
|
149
|
+
var themeColors = useChartsColorTheme({
|
|
150
|
+
colorTheme: colorTheme,
|
|
151
|
+
chartName: 'bar'
|
|
152
|
+
});
|
|
123
153
|
var _React$useMemo = React__default.useMemo(function () {
|
|
154
|
+
var childrenArray = React__default.Children.toArray(children);
|
|
155
|
+
var dataColorMapping = {};
|
|
156
|
+
|
|
157
|
+
// Count ChartBar components
|
|
158
|
+
var totalBars = childrenArray.filter(function (child) {
|
|
159
|
+
return /*#__PURE__*/React__default.isValidElement(child) && getComponentId(child) === componentIds.chartBar;
|
|
160
|
+
}).length;
|
|
124
161
|
var BarChartIndex = 0;
|
|
162
|
+
/**
|
|
163
|
+
* We check to check child of ChartBarWrapper. if they have any custom color we store that.
|
|
164
|
+
* We need these mapping because colors of tooltip & legend is determine based on this
|
|
165
|
+
* recharts do provide a color but it is hex code and we need blade color token .
|
|
166
|
+
*/
|
|
125
167
|
var modifiedChildren = React__default.Children.map(children, function (child) {
|
|
126
168
|
if (/*#__PURE__*/React__default.isValidElement(child) && getComponentId(child) === componentIds.chartBar) {
|
|
169
|
+
var _child$props, _child$props2;
|
|
170
|
+
var childColor = child === null || child === void 0 || (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.color;
|
|
171
|
+
var dataKey = child === null || child === void 0 || (_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.dataKey;
|
|
172
|
+
if (dataKey) {
|
|
173
|
+
// assign colors to the dataColorMapping, if no color is assigned we assign color in `assignDataColorMapping`
|
|
174
|
+
dataColorMapping[dataKey] = {
|
|
175
|
+
colorToken: childColor,
|
|
176
|
+
isCustomColor: Boolean(childColor)
|
|
177
|
+
};
|
|
178
|
+
}
|
|
127
179
|
return /*#__PURE__*/React__default.cloneElement(child, {
|
|
128
180
|
_index: BarChartIndex++
|
|
129
181
|
});
|
|
130
182
|
}
|
|
131
183
|
return child;
|
|
132
184
|
});
|
|
185
|
+
assignDataColorMapping(dataColorMapping, themeColors);
|
|
133
186
|
return {
|
|
134
187
|
barChartModifiedChildrens: modifiedChildren,
|
|
135
|
-
totalBars:
|
|
188
|
+
totalBars: totalBars,
|
|
189
|
+
dataColorMapping: dataColorMapping
|
|
136
190
|
};
|
|
137
|
-
}, [children]),
|
|
191
|
+
}, [children, themeColors]),
|
|
138
192
|
barChartModifiedChildrens = _React$useMemo.barChartModifiedChildrens,
|
|
139
|
-
totalBars = _React$useMemo.totalBars
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
width: "100%",
|
|
156
|
-
height: "100%",
|
|
157
|
-
children: /*#__PURE__*/jsx(BarChart, {
|
|
158
|
-
barSize: BAR_SIZE,
|
|
159
|
-
barGap: DISTANCE_BETWEEN_BARS,
|
|
160
|
-
barCategoryGap: DISTANCE_BETWEEN_CATEGORY_BARS,
|
|
161
|
-
onMouseMove: function onMouseMove(state) {
|
|
162
|
-
setActiveIndex(state !== null && state !== void 0 && state.activeIndex ? Number(state === null || state === void 0 ? void 0 : state.activeIndex) : undefined);
|
|
163
|
-
},
|
|
193
|
+
totalBars = _React$useMemo.totalBars,
|
|
194
|
+
dataColorMapping = _React$useMemo.dataColorMapping;
|
|
195
|
+
return /*#__PURE__*/jsx(CommonChartComponentsContext.Provider, {
|
|
196
|
+
value: {
|
|
197
|
+
chartName: 'bar',
|
|
198
|
+
dataColorMapping: dataColorMapping
|
|
199
|
+
},
|
|
200
|
+
children: /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, metaAttribute({
|
|
201
|
+
name: 'bar-chart',
|
|
202
|
+
testID: testID
|
|
203
|
+
})), makeAnalyticsAttribute(restProps)), {}, {
|
|
204
|
+
width: "100%",
|
|
205
|
+
height: "100%"
|
|
206
|
+
}, restProps), {}, {
|
|
207
|
+
children: /*#__PURE__*/jsx(BarChartContext.Provider, {
|
|
208
|
+
value: {
|
|
164
209
|
layout: layout,
|
|
165
|
-
|
|
166
|
-
|
|
210
|
+
activeIndex: activeIndex,
|
|
211
|
+
colorTheme: colorTheme,
|
|
212
|
+
totalBars: totalBars
|
|
213
|
+
},
|
|
214
|
+
children: /*#__PURE__*/jsx(ResponsiveContainer, {
|
|
215
|
+
width: "100%",
|
|
216
|
+
height: "100%",
|
|
217
|
+
children: /*#__PURE__*/jsx(BarChart, {
|
|
218
|
+
barSize: BAR_SIZE,
|
|
219
|
+
barGap: DISTANCE_BETWEEN_BARS,
|
|
220
|
+
barCategoryGap: DISTANCE_BETWEEN_CATEGORY_BARS,
|
|
221
|
+
onMouseMove: function onMouseMove(state) {
|
|
222
|
+
setActiveIndex(state !== null && state !== void 0 && state.activeIndex ? Number(state === null || state === void 0 ? void 0 : state.activeIndex) : undefined);
|
|
223
|
+
},
|
|
224
|
+
onMouseLeave: function onMouseLeave() {
|
|
225
|
+
setActiveIndex(undefined);
|
|
226
|
+
},
|
|
227
|
+
layout: layout,
|
|
228
|
+
data: data,
|
|
229
|
+
children: barChartModifiedChildrens
|
|
230
|
+
})
|
|
167
231
|
})
|
|
168
232
|
})
|
|
169
|
-
})
|
|
170
|
-
})
|
|
233
|
+
}))
|
|
234
|
+
});
|
|
171
235
|
};
|
|
172
236
|
|
|
173
237
|
export { ChartBar, ChartBarWrapper };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.web.js","sources":["../../../../../../../src/components/Charts/BarChart/BarChart.web.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n BarChart as RechartsBarChart,\n Bar as RechartsBar,\n ResponsiveContainer as RechartsResponsiveContainer,\n} from 'recharts';\nimport { useChartsColorTheme } from '../utils';\nimport { BarChartContext, useBarChartContext } from './BarChartContext';\nimport type { ChartBarProps, ChartBarWrapperProps } from './types';\nimport {\n BAR_CHART_CORNER_RADIUS,\n DISTANCE_BETWEEN_STACKED_BARS,\n componentIds,\n BAR_SIZE,\n DISTANCE_BETWEEN_BARS,\n DISTANCE_BETWEEN_CATEGORY_BARS,\n} from './tokens';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport getIn from '~utils/lodashButBetter/get';\nimport isNumber from '~utils/lodashButBetter/isNumber';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport type { DataAnalyticsAttribute, TestID } from '~utils/types';\n\nexport type RechartsShapeProps = {\n x: number;\n y: number;\n width: number;\n height: number;\n fill: string;\n index: number;\n};\n\n// Bar component - resolves Blade color tokens to actual colors\nconst _ChartBar: React.FC<ChartBarProps> = ({\n color,\n name,\n dataKey,\n activeBar = false,\n label = false,\n showLegend = true,\n _index = 0,\n ...rest\n}) => {\n const { theme } = useTheme();\n const { layout, activeIndex, colorTheme: _colorTheme, totalBars } = useBarChartContext();\n const defaultColorArray = useChartsColorTheme({ colorTheme: _colorTheme });\n const fill = color ? getIn(theme.colors, color) : defaultColorArray[_index];\n const isStacked = rest.stackId !== undefined;\n const animationBegin = isStacked\n ? (theme.motion.duration.gentle / totalBars) * _index\n : theme.motion.duration.gentle;\n const animationDuration = isStacked\n ? theme.motion.duration.gentle / totalBars\n : theme.motion.duration.gentle;\n\n return (\n <RechartsBar\n {...rest}\n fill={fill}\n legendType={showLegend ? 'rect' : 'none'}\n activeBar={activeBar}\n label={label}\n animationBegin={animationBegin}\n animationDuration={animationDuration}\n animationEasing=\"linear\"\n dataKey={dataKey}\n name={name}\n shape={(props: unknown) => {\n const { fill, x, y, width, height, index: barIndex } = props as RechartsShapeProps;\n const fillOpacity = isNumber(activeIndex) ? (barIndex === activeIndex ? 1 : 0.2) : 1;\n const gap = DISTANCE_BETWEEN_STACKED_BARS;\n const isVertical = layout === 'vertical';\n\n if (isVertical) {\n return (\n <rect\n fill={fill}\n x={x + gap / 2}\n y={y}\n width={width - gap}\n height={height}\n rx={BAR_CHART_CORNER_RADIUS}\n ry={BAR_CHART_CORNER_RADIUS}\n fillOpacity={fillOpacity}\n />\n );\n }\n return (\n <rect\n fill={fill}\n x={x}\n y={y + gap / 2}\n width={width}\n height={height > gap ? height - gap : 0}\n rx={BAR_CHART_CORNER_RADIUS}\n ry={BAR_CHART_CORNER_RADIUS}\n fillOpacity={fillOpacity}\n />\n );\n }}\n />\n );\n};\n\nconst ChartBar = assignWithoutSideEffects(_ChartBar, {\n componentId: componentIds.chartBar,\n});\n\n// BarChart wrapper with default margin, auto-color assignment, and max bars guard\nconst ChartBarWrapper: React.FC<ChartBarWrapperProps & TestID & DataAnalyticsAttribute> = ({\n children,\n colorTheme = 'categorical',\n layout = 'horizontal',\n testID,\n data = [],\n ...restProps\n}) => {\n const [activeIndex, setActiveIndex] = useState<number | undefined>(undefined);\n\n const { barChartModifiedChildrens, totalBars } = React.useMemo(() => {\n let BarChartIndex = 0;\n const modifiedChildren = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && getComponentId(child) === componentIds.chartBar) {\n return React.cloneElement(child, {\n _index: BarChartIndex++,\n } as Partial<ChartBarProps>);\n }\n return child;\n });\n\n return {\n barChartModifiedChildrens: modifiedChildren,\n totalBars: BarChartIndex,\n };\n }, [children]);\n\n return (\n <BaseBox\n {...metaAttribute({ name: 'bar-chart', testID })}\n {...makeAnalyticsAttribute(restProps)}\n width=\"100%\"\n height=\"100%\"\n {...restProps}\n >\n <BarChartContext.Provider\n value={{\n layout,\n activeIndex,\n colorTheme,\n totalBars,\n }}\n >\n <RechartsResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n barSize={BAR_SIZE}\n barGap={DISTANCE_BETWEEN_BARS}\n barCategoryGap={DISTANCE_BETWEEN_CATEGORY_BARS}\n onMouseMove={(state) => {\n setActiveIndex(state?.activeIndex ? Number(state?.activeIndex) : undefined);\n }}\n layout={layout}\n data={data}\n >\n {barChartModifiedChildrens}\n </RechartsBarChart>\n </RechartsResponsiveContainer>\n </BarChartContext.Provider>\n </BaseBox>\n );\n};\n\nexport { ChartBarWrapper, ChartBar };\nexport type { ChartBarProps, ChartBarWrapperProps };\n"],"names":["_ChartBar","_ref","color","name","dataKey","_ref$activeBar","activeBar","_ref$label","label","_ref$showLegend","showLegend","_ref$_index","_index","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","_useBarChartContext","useBarChartContext","layout","activeIndex","_colorTheme","colorTheme","totalBars","defaultColorArray","useChartsColorTheme","fill","getIn","colors","isStacked","stackId","undefined","animationBegin","motion","duration","gentle","animationDuration","_jsx","RechartsBar","_objectSpread","legendType","animationEasing","shape","props","_ref2","x","y","width","height","barIndex","index","fillOpacity","isNumber","gap","DISTANCE_BETWEEN_STACKED_BARS","isVertical","rx","BAR_CHART_CORNER_RADIUS","ry","ChartBar","assignWithoutSideEffects","componentId","componentIds","chartBar","ChartBarWrapper","_ref3","children","_ref3$colorTheme","_ref3$layout","testID","_ref3$data","data","restProps","_excluded2","_useState","useState","_useState2","_slicedToArray","setActiveIndex","_React$useMemo","React","useMemo","BarChartIndex","modifiedChildren","Children","map","child","isValidElement","getComponentId","cloneElement","barChartModifiedChildrens","BaseBox","metaAttribute","makeAnalyticsAttribute","BarChartContext","Provider","value","RechartsResponsiveContainer","RechartsBarChart","barSize","BAR_SIZE","barGap","DISTANCE_BETWEEN_BARS","barCategoryGap","DISTANCE_BETWEEN_CATEGORY_BARS","onMouseMove","state","Number"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BarChart.web.js","sources":["../../../../../../../src/components/Charts/BarChart/BarChart.web.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n BarChart as RechartsBarChart,\n Bar as RechartsBar,\n ResponsiveContainer as RechartsResponsiveContainer,\n} from 'recharts';\nimport { useChartsColorTheme, getHighestColorInRange, assignDataColorMapping } from '../utils';\nimport { CommonChartComponentsContext } from '../CommonChartComponents';\nimport type { DataColorMapping } from '../CommonChartComponents';\nimport { BarChartContext, useBarChartContext } from './BarChartContext';\nimport type { ChartBarProps, ChartBarWrapperProps } from './types';\nimport {\n DISTANCE_BETWEEN_STACKED_BARS,\n componentIds,\n BAR_SIZE,\n DISTANCE_BETWEEN_BARS,\n DISTANCE_BETWEEN_CATEGORY_BARS,\n} from './tokens';\nimport { useTheme } from '~components/BladeProvider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { metaAttribute } from '~utils/metaAttribute';\nimport getIn from '~utils/lodashButBetter/get';\nimport isNumber from '~utils/lodashButBetter/isNumber';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId } from '~utils/isValidAllowedChildren';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport type { DataAnalyticsAttribute, TestID } from '~utils/types';\n\nexport type RechartsShapeProps = {\n x: number;\n y: number;\n width: number;\n height: number;\n fill: string;\n index: number;\n};\n\n// Bar component - resolves Blade color tokens to actual colors\nconst _ChartBar: React.FC<ChartBarProps> = React.memo(\n ({\n color,\n name,\n dataKey,\n activeBar = false,\n label = false,\n showLegend = true,\n _index = 0,\n ...rest\n }) => {\n const { theme } = useTheme();\n const { layout, activeIndex, colorTheme: _colorTheme, totalBars } = useBarChartContext();\n const defaultColorArray = useChartsColorTheme({\n colorTheme: _colorTheme,\n chartName: 'bar',\n chartDataIndicators: totalBars,\n });\n const fill = getIn(theme.colors, color ?? defaultColorArray[_index]);\n const strokeFill = getIn(\n theme.colors,\n getHighestColorInRange({\n colorToken: color ?? defaultColorArray[_index],\n followIntensityMapping: Boolean(color),\n }),\n );\n\n const isStacked = rest.stackId !== undefined;\n const animationBegin = isStacked\n ? (theme.motion.duration.gentle / totalBars) * _index\n : theme.motion.duration.gentle;\n const animationDuration = isStacked\n ? theme.motion.duration.gentle / totalBars\n : theme.motion.duration.gentle;\n\n return (\n <RechartsBar\n {...rest}\n fill={fill}\n legendType={showLegend ? 'rect' : 'none'}\n activeBar={activeBar}\n label={label}\n animationBegin={animationBegin}\n animationDuration={animationDuration}\n animationEasing=\"linear\"\n dataKey={dataKey}\n name={name}\n key={`${dataKey}-${_index}-${name}`}\n shape={(props: unknown) => {\n const { fill, x, y, width, height, index: barIndex } = props as RechartsShapeProps;\n const fillOpacity = isNumber(activeIndex) ? (barIndex === activeIndex ? 1 : 0.2) : 1;\n const gap = DISTANCE_BETWEEN_STACKED_BARS;\n const isVertical = layout === 'vertical';\n\n if (isVertical) {\n return (\n <>\n <rect\n fill={fill}\n x={x + gap / 1.5}\n y={y}\n width={width - gap}\n height={height}\n fillOpacity={fillOpacity}\n />\n <rect\n fill={strokeFill}\n x={x + gap / 1.5 + (width - gap) - 1.5} // Position at the right end\n y={y}\n width={width > gap ? 1.5 : 0}\n height={height}\n fillOpacity={fillOpacity}\n />\n </>\n );\n }\n return (\n <>\n <rect\n fill={fill}\n x={x}\n y={y + gap / 1.5}\n width={width}\n height={height > gap ? height - gap : 0}\n fillOpacity={fillOpacity}\n />\n <rect\n fill={strokeFill}\n x={x}\n y={y + gap / 1.5}\n width={width}\n height={height > gap ? 1.5 : 0}\n fillOpacity={fillOpacity}\n />\n </>\n );\n }}\n />\n );\n },\n);\n\nconst ChartBar = assignWithoutSideEffects(_ChartBar, {\n componentId: componentIds.chartBar,\n});\n\n// BarChart wrapper with default margin, auto-color assignment, and max bars guard\nconst ChartBarWrapper: React.FC<ChartBarWrapperProps & TestID & DataAnalyticsAttribute> = ({\n children,\n colorTheme = 'categorical',\n layout = 'horizontal',\n testID,\n data = [],\n ...restProps\n}) => {\n const [activeIndex, setActiveIndex] = useState<number | undefined>(undefined);\n\n const themeColors = useChartsColorTheme({\n colorTheme,\n chartName: 'bar',\n });\n\n const { barChartModifiedChildrens, totalBars, dataColorMapping } = React.useMemo(() => {\n const childrenArray = React.Children.toArray(children);\n const dataColorMapping: DataColorMapping = {};\n\n // Count ChartBar components\n const totalBars = childrenArray.filter(\n (child): child is React.ReactElement =>\n React.isValidElement(child) && getComponentId(child) === componentIds.chartBar,\n ).length;\n\n let BarChartIndex = 0;\n /**\n * We check to check child of ChartBarWrapper. if they have any custom color we store that.\n * We need these mapping because colors of tooltip & legend is determine based on this\n * recharts do provide a color but it is hex code and we need blade color token .\n */\n const modifiedChildren = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && getComponentId(child) === componentIds.chartBar) {\n const childColor = child?.props?.color;\n const dataKey = (child?.props as ChartBarProps)?.dataKey as string;\n if (dataKey) {\n // assign colors to the dataColorMapping, if no color is assigned we assign color in `assignDataColorMapping`\n dataColorMapping[dataKey] = {\n colorToken: childColor,\n isCustomColor: Boolean(childColor),\n };\n }\n return React.cloneElement(child, {\n _index: BarChartIndex++,\n } as Partial<ChartBarProps>);\n }\n return child;\n });\n assignDataColorMapping(dataColorMapping, themeColors);\n\n return {\n barChartModifiedChildrens: modifiedChildren,\n totalBars,\n dataColorMapping,\n };\n }, [children, themeColors]);\n\n return (\n <CommonChartComponentsContext.Provider value={{ chartName: 'bar', dataColorMapping }}>\n <BaseBox\n {...metaAttribute({ name: 'bar-chart', testID })}\n {...makeAnalyticsAttribute(restProps)}\n width=\"100%\"\n height=\"100%\"\n {...restProps}\n >\n <BarChartContext.Provider\n value={{\n layout,\n activeIndex,\n colorTheme,\n totalBars,\n }}\n >\n <RechartsResponsiveContainer width=\"100%\" height=\"100%\">\n <RechartsBarChart\n barSize={BAR_SIZE}\n barGap={DISTANCE_BETWEEN_BARS}\n barCategoryGap={DISTANCE_BETWEEN_CATEGORY_BARS}\n onMouseMove={(state) => {\n setActiveIndex(state?.activeIndex ? Number(state?.activeIndex) : undefined);\n }}\n onMouseLeave={() => {\n setActiveIndex(undefined);\n }}\n layout={layout}\n data={data}\n >\n {barChartModifiedChildrens}\n </RechartsBarChart>\n </RechartsResponsiveContainer>\n </BarChartContext.Provider>\n </BaseBox>\n </CommonChartComponentsContext.Provider>\n );\n};\n\nexport { ChartBarWrapper, ChartBar };\nexport type { ChartBarProps, ChartBarWrapperProps };\n"],"names":["_ChartBar","React","memo","_ref","color","name","dataKey","_ref$activeBar","activeBar","_ref$label","label","_ref$showLegend","showLegend","_ref$_index","_index","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","theme","_useBarChartContext","useBarChartContext","layout","activeIndex","_colorTheme","colorTheme","totalBars","defaultColorArray","useChartsColorTheme","chartName","chartDataIndicators","fill","getIn","colors","strokeFill","getHighestColorInRange","colorToken","followIntensityMapping","Boolean","isStacked","stackId","undefined","animationBegin","motion","duration","gentle","animationDuration","_createElement","RechartsBar","_objectSpread","legendType","animationEasing","key","concat","shape","props","_ref2","x","y","width","height","barIndex","index","fillOpacity","isNumber","gap","DISTANCE_BETWEEN_STACKED_BARS","isVertical","_jsxs","_Fragment","children","_jsx","ChartBar","assignWithoutSideEffects","componentId","componentIds","chartBar","ChartBarWrapper","_ref3","_ref3$colorTheme","_ref3$layout","testID","_ref3$data","data","restProps","_excluded2","_useState","useState","_useState2","_slicedToArray","setActiveIndex","themeColors","_React$useMemo","useMemo","childrenArray","Children","toArray","dataColorMapping","filter","child","isValidElement","getComponentId","length","BarChartIndex","modifiedChildren","map","_child$props","_child$props2","childColor","isCustomColor","cloneElement","assignDataColorMapping","barChartModifiedChildrens","CommonChartComponentsContext","Provider","value","BaseBox","metaAttribute","makeAnalyticsAttribute","BarChartContext","RechartsResponsiveContainer","RechartsBarChart","barSize","BAR_SIZE","barGap","DISTANCE_BETWEEN_BARS","barCategoryGap","DISTANCE_BETWEEN_CATEGORY_BARS","onMouseMove","state","Number","onMouseLeave"],"mappings":"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"}
|