sag_components 1.0.259 → 1.0.260

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.
Files changed (83) hide show
  1. package/.history/.env_20231001120549 +0 -0
  2. package/.history/.env_20231001120613 +1 -0
  3. package/.history/.env_20231003143620 +1 -0
  4. package/.history/.eslintrc_20230928112617.js +26 -0
  5. package/.history/.eslintrc_20230928130534.js +27 -0
  6. package/.history/.eslintrc_20230928133400.js +28 -0
  7. package/.history/.eslintrc_20230928133404.js +28 -0
  8. package/.history/.eslintrc_20230928133416.js +28 -0
  9. package/.history/.eslintrc_20230928133419.js +28 -0
  10. package/.history/.eslintrc_20230928133432.js +28 -0
  11. package/.history/.eslintrc_20230928133439.js +28 -0
  12. package/.history/.eslintrc_20230928133458.js +29 -0
  13. package/.history/.eslintrc_20230928133500.js +28 -0
  14. package/.history/.eslintrc_20230928134009.js +28 -0
  15. package/.history/.eslintrc_20230928135318.js +34 -0
  16. package/.history/.eslintrc_20230928135321.js +34 -0
  17. package/.history/.eslintrc_20230928135323.js +34 -0
  18. package/.history/.eslintrc_20230928135332.js +34 -0
  19. package/.history/.eslintrc_20230928135333.js +34 -0
  20. package/.history/.eslintrc_20230928135352.js +29 -0
  21. package/.history/.eslintrc_20230928135353.js +29 -0
  22. package/.history/.eslintrc_20230928135355.js +29 -0
  23. package/.history/.eslintrc_20230928135408.js +29 -0
  24. package/.history/.eslintrc_20230928135538.js +30 -0
  25. package/.history/.eslintrc_20230928135539.js +30 -0
  26. package/.history/.eslintrc_20230928135543.js +30 -0
  27. package/.history/.gitignore_20230921093332 +119 -0
  28. package/.history/.gitignore_20230921111638 +120 -0
  29. package/.history/.gitignore_20230921111650 +120 -0
  30. package/.history/.gitignore_20230921111810 +121 -0
  31. package/.history/package_20230928095230.json +74 -0
  32. package/.history/package_20230928112303.json +75 -0
  33. package/.history/package_20230928131946.json +80 -0
  34. package/.history/package_20230928131950.json +81 -0
  35. package/.history/package_20230928131953.json +80 -0
  36. package/.history/package_20230928131956.json +81 -0
  37. package/.history/package_20230928131959.json +80 -0
  38. package/.history/package_20230928132003.json +81 -0
  39. package/.history/package_20230928132004.json +81 -0
  40. package/.history/package_20230928134639.json +80 -0
  41. package/.history/package_20230928134643.json +81 -0
  42. package/.history/package_20230928134645.json +81 -0
  43. package/.history/package_20230928134650.json +81 -0
  44. package/.history/package_20230928134912.json +81 -0
  45. package/.history/package_20230928174159.json +81 -0
  46. package/.history/package_20230928174200.json +81 -0
  47. package/.history/package_20230928174202.json +81 -0
  48. package/.history/package_20230928174226.json +81 -0
  49. package/.history/package_20230928174227.json +81 -0
  50. package/.history/package_20230928174228.json +81 -0
  51. package/.history/package_20230928174318.json +81 -0
  52. package/.history/package_20230928174320.json +81 -0
  53. package/.history/package_20231001121933.json +82 -0
  54. package/.history/package_20231001131144.json +82 -0
  55. package/.history/package_20231001134252.json +81 -0
  56. package/.history/package_20231004111340.json +82 -0
  57. package/.history/package_20231004111550.json +82 -0
  58. package/.history/package_20231004135419.json +82 -0
  59. package/.history/package_20231004150338.json +82 -0
  60. package/.history/package_20231004150347.json +82 -0
  61. package/.history/package_20231004154152.json +82 -0
  62. package/.history/package_20231004155924.json +82 -0
  63. package/.history/package_20231015134436.json +82 -0
  64. package/.history/package_20231016165235.json +82 -0
  65. package/.history/package_20231024150333.json +82 -0
  66. package/.history/package_20231024154550.json +82 -0
  67. package/dist/stories/components/PerformanceAnalytics.js +237 -120
  68. package/dist/stories/components/PerformanceAnalytics.style.js +7 -21
  69. package/dist/stories/components/PerformanceAnalyticsLegend.js +53 -0
  70. package/dist/stories/components/PerformanceAnalyticsLegend.style.js +26 -0
  71. package/dist/stories/components/PerformanceAnalyticsOneColumn.js +312 -0
  72. package/dist/stories/components/PerformanceAnalyticsOneColumn.style.js +31 -0
  73. package/dist/stories/components/PerformanceAnalyticsTotals.js +13 -14
  74. package/dist/stories/components/PerformanceAnalyticsTotals.style.js +4 -4
  75. package/dist/stories/components/icons/ClockIcon.js +2 -4
  76. package/dist/stories/components/icons/LegendUnionIcon.js +30 -0
  77. package/dist/stories/components/icons/ShoppingCartIcon.js +8 -10
  78. package/package.json +1 -1
  79. package/dist/stories/components/CodeEditor.js +0 -40
  80. package/dist/stories/components/CodeEditor.style.js +0 -12
  81. package/dist/stories/components/Modal.js +0 -19
  82. package/dist/stories/components/Modal.style.js +0 -17
  83. package/dist/stories/components/TotalCostModal.js +0 -143
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "sag_components",
3
+ "version": "1.0.258",
4
+ "description": "",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "start": "react-scripts start",
8
+ "lint": "eslint .",
9
+ "build": "cross-env BABEL_ENV=production babel src -d dist ",
10
+ "storybook": "storybook dev -p 6006",
11
+ "build-storybook": "storybook build"
12
+ },
13
+ "keywords": [],
14
+ "author": "SAG",
15
+ "license": "ISC",
16
+ "devDependencies": {
17
+ "@babel/cli": "^7.23.0",
18
+ "@babel/preset-env": "^7.23.2",
19
+ "@babel/preset-react": "^7.22.15",
20
+ "@babel/preset-typescript": "^7.23.2",
21
+ "@storybook/addon-a11y": "^7.4.6",
22
+ "@storybook/addon-essentials": "^7.4.6",
23
+ "@storybook/addon-interactions": "^7.4.6",
24
+ "@storybook/addon-links": "^7.4.6",
25
+ "@storybook/addon-storysource": "^7.4.6",
26
+ "@storybook/blocks": "^7.4.6",
27
+ "@storybook/preset-scss": "^1.0.3",
28
+ "@storybook/react": "^7.4.6",
29
+ "@storybook/react-webpack5": "^7.4.6",
30
+ "@storybook/testing-library": "^0.2.2",
31
+ "cross-env": "^7.0.3",
32
+ "css-loader": "^5.2.7",
33
+ "eslint": "^8.50.0",
34
+ "eslint-config-airbnb": "^19.0.4",
35
+ "eslint-plugin-import": "^2.28.1",
36
+ "eslint-plugin-jsx-a11y": "^6.7.1",
37
+ "eslint-plugin-react": "^7.33.2",
38
+ "eslint-plugin-react-hooks": "^4.6.0",
39
+ "react-dom": "^18.2.0",
40
+ "sass": "^1.68.0",
41
+ "sass-loader": "^13.3.2",
42
+ "style-loader": "^3.3.3"
43
+ },
44
+ "dependencies": {
45
+ "@dnd-kit/core": "^6.0.8",
46
+ "@emotion/react": "^11.11.1",
47
+ "@emotion/styled": "^11.11.0",
48
+ "@fontsource/roboto": "^5.0.8",
49
+ "@fortawesome/fontawesome-svg-core": "^6.4.2",
50
+ "@fortawesome/free-solid-svg-icons": "^6.4.2",
51
+ "@fortawesome/react-fontawesome": "^0.2.0",
52
+ "@mui/icons-material": "^5.14.13",
53
+ "@mui/material": "^5.14.13",
54
+ "@mui/styled-engine-sc": "^5.14.12",
55
+ "@mui/x-date-pickers": "^6.16.2",
56
+ "@storybook/addon-designs": "^7.0.5",
57
+ "babel-plugin-react-css-modules": "^5.2.6",
58
+ "classnames": "^2.3.2",
59
+ "dayjs": "^1.11.10",
60
+ "hoopy": "^0.1.4",
61
+ "prop-types": "^15.8.1",
62
+ "react": "^18.2.0",
63
+ "react-css-modules": "^4.7.11",
64
+ "react-loading-skeleton": "^3.3.1",
65
+ "react-scripts": "5.0.1",
66
+ "recharts": "^2.6.2",
67
+ "storybook": "^7.4.6",
68
+ "styled-components": "^5.3.11"
69
+ },
70
+ "browserslist": {
71
+ "production": [
72
+ ">0.2%",
73
+ "not dead",
74
+ "not op_mini all"
75
+ ],
76
+ "development": [
77
+ "last 1 chrome version",
78
+ "last 1 firefox version",
79
+ "last 1 safari version"
80
+ ]
81
+ }
82
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "sag_components",
3
+ "version": "1.0.260",
4
+ "description": "",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "start": "react-scripts start",
8
+ "lint": "eslint .",
9
+ "build": "cross-env BABEL_ENV=production babel src -d dist ",
10
+ "storybook": "storybook dev -p 6006",
11
+ "build-storybook": "storybook build"
12
+ },
13
+ "keywords": [],
14
+ "author": "SAG",
15
+ "license": "ISC",
16
+ "devDependencies": {
17
+ "@babel/cli": "^7.23.0",
18
+ "@babel/preset-env": "^7.23.2",
19
+ "@babel/preset-react": "^7.22.15",
20
+ "@babel/preset-typescript": "^7.23.2",
21
+ "@storybook/addon-a11y": "^7.4.6",
22
+ "@storybook/addon-essentials": "^7.4.6",
23
+ "@storybook/addon-interactions": "^7.4.6",
24
+ "@storybook/addon-links": "^7.4.6",
25
+ "@storybook/addon-storysource": "^7.4.6",
26
+ "@storybook/blocks": "^7.4.6",
27
+ "@storybook/preset-scss": "^1.0.3",
28
+ "@storybook/react": "^7.4.6",
29
+ "@storybook/react-webpack5": "^7.4.6",
30
+ "@storybook/testing-library": "^0.2.2",
31
+ "cross-env": "^7.0.3",
32
+ "css-loader": "^5.2.7",
33
+ "eslint": "^8.50.0",
34
+ "eslint-config-airbnb": "^19.0.4",
35
+ "eslint-plugin-import": "^2.28.1",
36
+ "eslint-plugin-jsx-a11y": "^6.7.1",
37
+ "eslint-plugin-react": "^7.33.2",
38
+ "eslint-plugin-react-hooks": "^4.6.0",
39
+ "react-dom": "^18.2.0",
40
+ "sass": "^1.68.0",
41
+ "sass-loader": "^13.3.2",
42
+ "style-loader": "^3.3.3"
43
+ },
44
+ "dependencies": {
45
+ "@dnd-kit/core": "^6.0.8",
46
+ "@emotion/react": "^11.11.1",
47
+ "@emotion/styled": "^11.11.0",
48
+ "@fontsource/roboto": "^5.0.8",
49
+ "@fortawesome/fontawesome-svg-core": "^6.4.2",
50
+ "@fortawesome/free-solid-svg-icons": "^6.4.2",
51
+ "@fortawesome/react-fontawesome": "^0.2.0",
52
+ "@mui/icons-material": "^5.14.13",
53
+ "@mui/material": "^5.14.13",
54
+ "@mui/styled-engine-sc": "^5.14.12",
55
+ "@mui/x-date-pickers": "^6.16.2",
56
+ "@storybook/addon-designs": "^7.0.5",
57
+ "babel-plugin-react-css-modules": "^5.2.6",
58
+ "classnames": "^2.3.2",
59
+ "dayjs": "^1.11.10",
60
+ "hoopy": "^0.1.4",
61
+ "prop-types": "^15.8.1",
62
+ "react": "^18.2.0",
63
+ "react-css-modules": "^4.7.11",
64
+ "react-loading-skeleton": "^3.3.1",
65
+ "react-scripts": "5.0.1",
66
+ "recharts": "^2.6.2",
67
+ "storybook": "^7.4.6",
68
+ "styled-components": "^5.3.11"
69
+ },
70
+ "browserslist": {
71
+ "production": [
72
+ ">0.2%",
73
+ "not dead",
74
+ "not op_mini all"
75
+ ],
76
+ "development": [
77
+ "last 1 chrome version",
78
+ "last 1 firefox version",
79
+ "last 1 safari version"
80
+ ]
81
+ }
82
+ }
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = exports.PerformanceAnalytics = void 0;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
11
12
  var _react = _interopRequireWildcard(require("react"));
@@ -13,10 +14,15 @@ var _propTypes = _interopRequireWildcard(require("prop-types"));
13
14
  var _recharts = require("recharts");
14
15
  var _NoDataFoundMessage = require("./NoDataFoundMessage");
15
16
  var _SegmentedButton = require("./SegmentedButton");
17
+ var _PerformanceAnalyticsTotals = require("./PerformanceAnalyticsTotals");
18
+ var _PerformanceAnalyticsLegend = require("./PerformanceAnalyticsLegend");
16
19
  var _CommonFunctions = require("./CommonFunctions");
17
20
  var _PerformanceAnalytics = require("./PerformanceAnalytics.style");
18
- var _Benchmark = require("./Benchmark");
19
- var _excluded = ["totalsData", "data", "displayType", "colorGraphROI", "colorBarchart1", "colorBarchart2", "textColor", "width", "height", "noDataText"];
21
+ var _excluded = ["totalsData", "data", "currencyType", "colorGraphROI", "colorBarchart1", "colorBarchart2", "textColor", "width", "height", "noDataText"];
22
+ var INDIVIDUAL_PERFORMANCE_STR = 'Individual Performance';
23
+ var PERCENT_INCREMENTAL_GROWTH_STR = '% Incremental Growth';
24
+ var PERCENT_CONTRIBUTION_OF_TOTAL_STR = '% Contribution of Total';
25
+
20
26
  /* PerformanceAnalytics */
21
27
  var PerformanceAnalytics = exports.PerformanceAnalytics = function PerformanceAnalytics(_ref) {
22
28
  var _ref$totalsData = _ref.totalsData,
@@ -26,7 +32,8 @@ var PerformanceAnalytics = exports.PerformanceAnalytics = function PerformanceAn
26
32
  dotCut: _propTypes.bool,
27
33
  currency: _propTypes.bool,
28
34
  currencyType: string | null,
29
- growthPercent: _propTypes.number | null
35
+ growthPercent: _propTypes.number | null,
36
+ showGrowthPercentSign: _propTypes.bool
30
37
  }] : _ref$totalsData,
31
38
  _ref$data = _ref.data,
32
39
  data = _ref$data === void 0 ? [{
@@ -50,77 +57,43 @@ var PerformanceAnalytics = exports.PerformanceAnalytics = function PerformanceAn
50
57
  existingShoppersValue: _propTypes.number | null,
51
58
  existingShoppersPercentValue: _propTypes.number | null
52
59
  }] : _ref$data,
53
- _ref$displayType = _ref.displayType,
54
- displayType = _ref$displayType === void 0 ? "TotalCost" : _ref$displayType,
60
+ _ref$currencyType = _ref.currencyType,
61
+ currencyType = _ref$currencyType === void 0 ? 'USD' : _ref$currencyType,
55
62
  _ref$colorGraphROI = _ref.colorGraphROI,
56
- colorGraphROI = _ref$colorGraphROI === void 0 ? "#9CCB3B" : _ref$colorGraphROI,
63
+ colorGraphROI = _ref$colorGraphROI === void 0 ? '#9CCB3B' : _ref$colorGraphROI,
57
64
  _ref$colorBarchart = _ref.colorBarchart1,
58
- colorBarchart1 = _ref$colorBarchart === void 0 ? "#1F7677" : _ref$colorBarchart,
65
+ colorBarchart1 = _ref$colorBarchart === void 0 ? '#1F7677' : _ref$colorBarchart,
59
66
  _ref$colorBarchart2 = _ref.colorBarchart2,
60
- colorBarchart2 = _ref$colorBarchart2 === void 0 ? "#90CE9C" : _ref$colorBarchart2,
67
+ colorBarchart2 = _ref$colorBarchart2 === void 0 ? '#90CE9C' : _ref$colorBarchart2,
61
68
  _ref$textColor = _ref.textColor,
62
- textColor = _ref$textColor === void 0 ? "#212121" : _ref$textColor,
69
+ textColor = _ref$textColor === void 0 ? '#212121' : _ref$textColor,
63
70
  width = _ref.width,
64
71
  height = _ref.height,
65
72
  noDataText = _ref.noDataText,
66
73
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
67
- var DEFAULT_ROOT_FONT = 18;
68
- var DEFAULT_COMPONENT_WIDTH = 250;
69
- var _useState = (0, _react.useState)(""),
74
+ var _useState = (0, _react.useState)(INDIVIDUAL_PERFORMANCE_STR),
70
75
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
71
76
  segmentedButtonsFilter = _useState2[0],
72
77
  setSegmentedButtonsFilter = _useState2[1];
73
- var _useState3 = (0, _react.useState)(""),
74
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
75
- activeLabelROI = _useState4[0],
76
- setActiveLabelROI = _useState4[1];
77
- var _useState5 = (0, _react.useState)(DEFAULT_ROOT_FONT.toString().concat("", "px")),
78
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
79
- rootFont = _useState6[0],
80
- setRootFont = _useState6[1];
81
- var controlsContainerRef = (0, _react.useRef)();
82
- var getRootFont = function getRootFont(scopeWidth) {
83
- var relation = scopeWidth.toString().replace("px", "").replace("%", "") / DEFAULT_COMPONENT_WIDTH;
84
- var fontRoot = (DEFAULT_ROOT_FONT * relation).toString().concat("", "px");
85
- return fontRoot;
86
- };
87
- var dotCutTrenty = function dotCutTrenty(row) {
88
- return dotCut ? (0, _CommonFunctions.getFormattedValue)(row.value) : (0, _CommonFunctions.getNumberWithCommas)(row.value);
89
- };
90
- (0, _react.useEffect)(function () {
91
- var offsetWidth = controlsContainerRef.current.offsetWidth;
92
- setRootFont(getRootFont(offsetWidth));
93
- }, [width]);
94
- var getTotalsData = function getTotalsData() {
78
+ var displayTotalsData = function displayTotalsData() {
95
79
  return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TotalsDataContainer, {
96
80
  id: "TotalsDataContainer"
97
- }, totalsData === null || totalsData === void 0 ? void 0 : totalsData.map(function (item) {
98
- return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TitleAndValueContainer, {
99
- id: "TitleAndValueContainer"
100
- }, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.Title, {
101
- id: "Title",
102
- width: width
103
- }, item.title), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.CurrencySignAndFormattedValueContainer, {
104
- id: "CurrencySignAndFormattedValueContainer"
105
- }, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.FormattedValue, {
106
- id: "FormattedValue",
107
- width: width
108
- }, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.CurrencySign, {
109
- id: "CurrencySign"
110
- }, item.currency ? (0, _CommonFunctions.getCurrencySign)(item.currencyType, item.value) : ""), item.dotCut ? (0, _CommonFunctions.getFormattedValue)(item.value) : (0, _CommonFunctions.getNumberWithCommas)(item.value), item.dotCut ? (0, _CommonFunctions.getFormattedUnits)(item.value) : "")));
81
+ }, /*#__PURE__*/_react.default.createElement(_PerformanceAnalyticsTotals.PerformanceAnalyticsTotals, {
82
+ totalsData: totalsData,
83
+ width: width
111
84
  }));
112
85
  };
113
- var getSegmentedButtons = function getSegmentedButtons() {
86
+ var displaySegmentedButtons = function displaySegmentedButtons() {
114
87
  return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.SegmentedButtonContainer, {
115
88
  id: "SegmentedButtonContainer"
116
89
  }, /*#__PURE__*/_react.default.createElement(_SegmentedButton.SegmentedButton, {
117
90
  id: "SegmentedButton BaselineSTLY",
118
91
  options: [{
119
- value: "Individual Performance"
92
+ value: INDIVIDUAL_PERFORMANCE_STR
120
93
  }, {
121
- value: "% Incremental Growth"
94
+ value: PERCENT_INCREMENTAL_GROWTH_STR
122
95
  }, {
123
- value: "% Contribution of Total"
96
+ value: PERCENT_CONTRIBUTION_OF_TOTAL_STR
124
97
  }],
125
98
  backgroundColor: "#F2F2F2",
126
99
  controlRadius: 8,
@@ -146,28 +119,51 @@ var PerformanceAnalytics = exports.PerformanceAnalytics = function PerformanceAn
146
119
  return /*#__PURE__*/_react.default.createElement("text", {
147
120
  x: x,
148
121
  y: y,
149
- dy: -4,
122
+ dy: -8,
150
123
  fill: stroke,
151
- fontSize: 10,
124
+ fontSize: 14,
152
125
  textAnchor: "middle"
153
126
  }, value);
154
127
  };
155
128
  var CustomTooltipROI = function CustomTooltipROI(_ref2) {
156
129
  var active = _ref2.active,
157
- payload = _ref2.payload,
158
- label = _ref2.label,
159
- name = _ref2.name;
160
- if (active && payload && payload.length) {
161
- console.log("CustomTooltipROI", active, payload, label, name);
162
- setActiveLabelROI(label);
163
- return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipDivROI, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipTitleROI, null, "".concat(label)), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabelROI, null, "ROI: ".concat((0, _CommonFunctions.getFormattedValue)(payload[0].value)).concat((0, _CommonFunctions.getFormattedUnits)(payload[0].value))));
130
+ payload = _ref2.payload;
131
+ if (active && payload && payload.length > 0) {
132
+ var _payload$0$payload, _payload$0$payload2;
133
+ console.log('CustomTooltipROI', (_payload$0$payload = payload[0].payload) === null || _payload$0$payload === void 0 ? void 0 : _payload$0$payload.retailer);
134
+ return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipTitle, null, "".concat((_payload$0$payload2 = payload[0].payload) === null || _payload$0$payload2 === void 0 ? void 0 : _payload$0$payload2.retailer)), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.ToolTipLabelAndValueContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabel, null, "Incremental Sales ROI:"), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipValue, null, "".concat((0, _CommonFunctions.getFormattedValue)(payload[0].value)).concat((0, _CommonFunctions.getFormattedUnits)(payload[0].value)))));
164
135
  }
165
136
  return null;
166
137
  };
167
- var getLineChartROI = function getLineChartROI() {
168
- return /*#__PURE__*/_react.default.createElement(_recharts.LineChart, {
169
- width: 700,
138
+ var CustomTooltipBarChart = function CustomTooltipBarChart(_ref3) {
139
+ var _payload$0$payload$In, _payload$0$payload$co, _payload$0$payload$co2, _payload$0$payload$co3;
140
+ var active = _ref3.active,
141
+ payload = _ref3.payload;
142
+ if (active && payload && payload.length > 0) {
143
+ var _payload$0$payload3, _payload$0$payload4, _payload$0$payload5, _payload$0$payload6;
144
+ console.log('CustomTooltipBarChart', payload[0].payload);
145
+ var totalCostValue = ((_payload$0$payload3 = payload[0].payload) === null || _payload$0$payload3 === void 0 ? void 0 : _payload$0$payload3.packageCostValue) + ((_payload$0$payload4 = payload[0].payload) === null || _payload$0$payload4 === void 0 ? void 0 : _payload$0$payload4.redemptionCostValue);
146
+ var packageCostPercent = totalCostValue ? ((_payload$0$payload5 = payload[0].payload) === null || _payload$0$payload5 === void 0 ? void 0 : _payload$0$payload5.packageCostValue) / totalCostValue * 100 : 0;
147
+ var redemptionCostPercent = totalCostValue ? ((_payload$0$payload6 = payload[0].payload) === null || _payload$0$payload6 === void 0 ? void 0 : _payload$0$payload6.redemptionCostValue) / totalCostValue * 100 : 0;
148
+ switch (segmentedButtonsFilter) {
149
+ case INDIVIDUAL_PERFORMANCE_STR:
150
+ return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipTitle, null, "".concat(payload[0].payload.retailer)), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.ToolTipLabelAndValueContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabel, null, "Package Cost:"), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipValue, null, "".concat((0, _CommonFunctions.getCurrencySign)(currencyType)).concat((0, _CommonFunctions.getFormattedValue)(payload[0].payload.packageCostValue), "\n ").concat((0, _CommonFunctions.getFormattedUnits)(payload[0].payload.packageCostValue), " (").concat(packageCostPercent.toFixed(2), "%) "))), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.ToolTipLabelAndValueContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabel, null, "Redemption Cost:"), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipValue, null, "".concat((0, _CommonFunctions.getCurrencySign)(currencyType)).concat((0, _CommonFunctions.getFormattedValue)(payload[0].payload.redemptionCostValue), " \n ").concat((0, _CommonFunctions.getFormattedUnits)(payload[0].payload.redemptionCostValue), " (").concat(redemptionCostPercent.toFixed(2), "%) "))), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.ToolTipLabelAndValueContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabel, null, "Incremental Sales:"), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipValue, null, "".concat((0, _CommonFunctions.getCurrencySign)(currencyType)).concat((0, _CommonFunctions.getFormattedValue)(payload[0].payload.incrementalSalesValue), " \n ").concat((0, _CommonFunctions.getFormattedUnits)(payload[0].payload.incrementalSalesValue), " "))));
151
+ case PERCENT_INCREMENTAL_GROWTH_STR:
152
+ return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipTitle, null, "".concat(payload[0].payload.retailer)), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.ToolTipLabelAndValueContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabel, null, "Incremental Growth Value:"), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipValue, null, "".concat((_payload$0$payload$In = payload[0].payload.IncrementalGrowthValue) === null || _payload$0$payload$In === void 0 ? void 0 : _payload$0$payload$In.toFixed(2), "% "))));
153
+ case PERCENT_CONTRIBUTION_OF_TOTAL_STR:
154
+ return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipTitle, null, "".concat(payload[0].payload.retailer)), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.ToolTipLabelAndValueContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabel, null, "Contribution of Total Package Cost:"), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipValue, null, "".concat((_payload$0$payload$co = payload[0].payload.contributionPackageCostValue) === null || _payload$0$payload$co === void 0 ? void 0 : _payload$0$payload$co.toFixed(2), "%"))), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.ToolTipLabelAndValueContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabel, null, "Contribution of Total Redemption Cost:"), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipValue, null, "".concat((_payload$0$payload$co2 = payload[0].payload.contributionRedemptionCostValue) === null || _payload$0$payload$co2 === void 0 ? void 0 : _payload$0$payload$co2.toFixed(2), "%"))), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.ToolTipLabelAndValueContainer, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabel, null, "Contribution of Total Incremental Sales:"), /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipValue, null, "".concat((_payload$0$payload$co3 = payload[0].payload.contributionIncrementalSalesValue) === null || _payload$0$payload$co3 === void 0 ? void 0 : _payload$0$payload$co3.toFixed(2), "%"))));
155
+ default:
156
+ return null;
157
+ }
158
+ }
159
+ return null;
160
+ };
161
+ var displayLineChartROI = function displayLineChartROI() {
162
+ return /*#__PURE__*/_react.default.createElement(_recharts.ResponsiveContainer, {
163
+ id: "ResponsiveContainer",
170
164
  height: 150,
165
+ width: width
166
+ }, segmentedButtonsFilter != PERCENT_CONTRIBUTION_OF_TOTAL_STR ? /*#__PURE__*/_react.default.createElement(_recharts.LineChart, {
171
167
  data: data,
172
168
  margin: {
173
169
  top: 20,
@@ -180,75 +176,196 @@ var PerformanceAnalytics = exports.PerformanceAnalytics = function PerformanceAn
180
176
  }), /*#__PURE__*/_react.default.createElement(_recharts.Line, {
181
177
  type: "monotone",
182
178
  dataKey: "roiValue",
179
+ fill: colorGraphROI,
183
180
  name: "retailer",
184
181
  stroke: colorGraphROI
185
182
  }, /*#__PURE__*/_react.default.createElement(_recharts.LabelList, {
186
183
  content: /*#__PURE__*/_react.default.createElement(CustomizedLabelROI, null)
187
- })));
184
+ }))) : /*#__PURE__*/_react.default.createElement("div", null));
185
+ };
186
+ var CustomizedLabelBarchart = function CustomizedLabelBarchart(props) {
187
+ var x = props.x,
188
+ y = props.y,
189
+ width = props.width,
190
+ value = props.value,
191
+ payload = props.payload;
192
+ var radius = 10;
193
+ var plusSign = value > 0 ? '+' : '';
194
+ return /*#__PURE__*/_react.default.createElement("g", null, /*#__PURE__*/_react.default.createElement("text", {
195
+ x: x + width / 2,
196
+ y: y - radius,
197
+ fill: textColor,
198
+ fontWeight: 400,
199
+ fontSize: "16px",
200
+ textAnchor: "middle",
201
+ dominantBaseline: "middle"
202
+ }, segmentedButtonsFilter === INDIVIDUAL_PERFORMANCE_STR ? currencyType ? "".concat((0, _CommonFunctions.getCurrencySign)(currencyType).toString()).concat(value) : '' : segmentedButtonsFilter === PERCENT_INCREMENTAL_GROWTH_STR ? "".concat(plusSign).concat(value, "%") : segmentedButtonsFilter === PERCENT_CONTRIBUTION_OF_TOTAL_STR ? "".concat(value, "%") : ''));
203
+ };
204
+ function CustomizedTickBarChart(props) {
205
+ var x = props.x,
206
+ y = props.y,
207
+ stroke = props.stroke,
208
+ payload = props.payload;
209
+ if (data && data.length > 0 && payload) {
210
+ var retailerData = data.filter(function (item) {
211
+ return item.retailer === payload.value;
212
+ });
213
+ if (retailerData && retailerData.length > 0) {
214
+ return /*#__PURE__*/_react.default.createElement("g", {
215
+ transform: "translate(".concat(x, ",").concat(y, ")")
216
+ }, /*#__PURE__*/_react.default.createElement("text", {
217
+ x: 0,
218
+ y: 0,
219
+ dy: 16,
220
+ fill: "#212121"
221
+ }, /*#__PURE__*/_react.default.createElement("tspan", {
222
+ textAnchor: "middle",
223
+ x: "0",
224
+ dy: "50",
225
+ fontSize: 16,
226
+ fontWeight: 600
227
+ }, retailerData[0].retailer), /*#__PURE__*/_react.default.createElement("tspan", {
228
+ textAnchor: "middle",
229
+ x: "0",
230
+ dy: "30",
231
+ fontSize: 14,
232
+ fontWeight: 400
233
+ }, retailerData[0].offerType), /*#__PURE__*/_react.default.createElement("tspan", {
234
+ textAnchor: "middle",
235
+ x: "0",
236
+ dy: "30",
237
+ fontSize: 14,
238
+ fontWeight: 400
239
+ }, retailerData[0].period)));
240
+ }
241
+ return null;
242
+ }
243
+ return null;
244
+ }
245
+ var getDataKeyNameBar1 = function getDataKeyNameBar1() {
246
+ return segmentedButtonsFilter === INDIVIDUAL_PERFORMANCE_STR ? 'totalValue' : segmentedButtonsFilter === PERCENT_INCREMENTAL_GROWTH_STR ? '' : segmentedButtonsFilter === PERCENT_CONTRIBUTION_OF_TOTAL_STR ? 'contributionTotalCostValue' : '';
247
+ };
248
+ var getDataKeyNameBar2 = function getDataKeyNameBar2() {
249
+ return segmentedButtonsFilter === INDIVIDUAL_PERFORMANCE_STR ? 'incrementalSalesValue' : segmentedButtonsFilter === PERCENT_INCREMENTAL_GROWTH_STR ? 'IncrementalGrowthValue' : segmentedButtonsFilter === PERCENT_CONTRIBUTION_OF_TOTAL_STR ? 'contributionIncrementalSalesValue' : '';
250
+ };
251
+ var displayBarChart = function displayBarChart() {
252
+ if (data && data.length > 0) {
253
+ var formatedData = data.map(function (item) {
254
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
255
+ totalValue: item.packageCostValue + item.redemptionCostValue,
256
+ contributionTotalCostValue: item.contributionPackageCostValue + item.contributionRedemptionCostValue
257
+ });
258
+ });
259
+ return /*#__PURE__*/_react.default.createElement(_recharts.ResponsiveContainer, {
260
+ id: "ResponsiveContainer",
261
+ height: 350,
262
+ width: width
263
+ }, /*#__PURE__*/_react.default.createElement(_recharts.BarChart, {
264
+ data: formatedData,
265
+ margin: {
266
+ top: 30,
267
+ right: 30,
268
+ left: 20,
269
+ bottom: 5
270
+ }
271
+ }, /*#__PURE__*/_react.default.createElement(_recharts.XAxis, {
272
+ dataKey: "retailer",
273
+ tick: CustomizedTickBarChart,
274
+ height: 120,
275
+ stroke: isNegativeValueFound() === true ? '#FFF' : '#000'
276
+ }), /*#__PURE__*/_react.default.createElement(_recharts.Tooltip, {
277
+ content: CustomTooltipBarChart
278
+ }), /*#__PURE__*/_react.default.createElement(_recharts.ReferenceLine, {
279
+ y: 0,
280
+ stroke: "#000"
281
+ }), segmentedButtonsFilter != PERCENT_INCREMENTAL_GROWTH_STR ? /*#__PURE__*/_react.default.createElement(_recharts.Bar, {
282
+ dataKey: getDataKeyNameBar1(),
283
+ fill: colorBarchart1,
284
+ minPointSize: 5,
285
+ radius: [5, 5, 0, 0]
286
+ }, /*#__PURE__*/_react.default.createElement(_recharts.LabelList, {
287
+ dataKey: getDataKeyNameBar1(),
288
+ content: CustomizedLabelBarchart
289
+ })) : '', /*#__PURE__*/_react.default.createElement(_recharts.Bar, {
290
+ dataKey: getDataKeyNameBar2(),
291
+ fill: colorBarchart2,
292
+ minPointSize: 10,
293
+ radius: [5, 5, 0, 0]
294
+ }, /*#__PURE__*/_react.default.createElement(_recharts.LabelList, {
295
+ dataKey: getDataKeyNameBar2(),
296
+ content: CustomizedLabelBarchart
297
+ }))));
298
+ }
299
+ return null;
300
+ };
301
+ var isNegativeValueFound = function isNegativeValueFound() {
302
+ if (data && data.length > 0) {
303
+ var negativeData = data.filter(function (item) {
304
+ return item.IncrementalGrowthValue < 0;
305
+ });
306
+ console.log('negativeData', negativeData);
307
+ if (negativeData && negativeData.length > 0) return true;
308
+ return false;
309
+ }
310
+ return false;
311
+ };
312
+ var displayLegendData = function displayLegendData() {
313
+ switch (segmentedButtonsFilter) {
314
+ case INDIVIDUAL_PERFORMANCE_STR:
315
+ return /*#__PURE__*/_react.default.createElement(_PerformanceAnalyticsLegend.PerformanceAnalyticsLegend, {
316
+ legendData: [{
317
+ iconColor: '#1F7677',
318
+ iconType: 'Square',
319
+ title: 'Total Cost'
320
+ }, {
321
+ iconColor: '#90CE9C',
322
+ iconType: 'Square',
323
+ title: 'Incremental Sales'
324
+ }, {
325
+ iconColor: '#9CCB3B',
326
+ iconType: 'LegendUnionIcon',
327
+ title: 'Incremental Sales ROI'
328
+ }]
329
+ });
330
+ case PERCENT_INCREMENTAL_GROWTH_STR:
331
+ return /*#__PURE__*/_react.default.createElement(_PerformanceAnalyticsLegend.PerformanceAnalyticsLegend, {
332
+ legendData: [{
333
+ iconColor: '#90CE9C',
334
+ iconType: 'Square',
335
+ title: '% Incremental Growth'
336
+ }, {
337
+ iconColor: '#9CCB3B',
338
+ iconType: 'LegendUnionIcon',
339
+ title: 'Incremental Sales ROI'
340
+ }]
341
+ });
342
+ case PERCENT_CONTRIBUTION_OF_TOTAL_STR:
343
+ return /*#__PURE__*/_react.default.createElement(_PerformanceAnalyticsLegend.PerformanceAnalyticsLegend, {
344
+ legendData: [{
345
+ iconColor: '#1F7677',
346
+ iconType: 'Square',
347
+ title: '% Contribution to the Total Cost'
348
+ }, {
349
+ iconColor: '#90CE9C',
350
+ iconType: 'Square',
351
+ title: '% Contribution to the Inc. Sales'
352
+ }]
353
+ });
354
+ default:
355
+ return '';
356
+ }
188
357
  };
189
358
  return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.ControlsContainer, {
190
359
  id: "ControlsContainer",
191
360
  height: height,
192
361
  width: width,
193
- textColor: textColor,
194
- ref: controlsContainerRef,
195
- rootFont: rootFont
362
+ textColor: textColor
196
363
  }, (totalsData === null || totalsData === void 0 ? void 0 : totalsData.length) > 0 && (data === null || data === void 0 ? void 0 : data.length) > 0 ? /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.Controls, {
197
364
  id: "Controls",
198
365
  height: height,
199
366
  width: width
200
- }, getTotalsData(), getSegmentedButtons(), getLineChartROI()) : /*#__PURE__*/_react.default.createElement(_NoDataFoundMessage.NoDataFoundMessage, {
367
+ }, displayTotalsData(), displaySegmentedButtons(), displayLineChartROI(), displayBarChart(), displayLegendData()) : /*#__PURE__*/_react.default.createElement(_NoDataFoundMessage.NoDataFoundMessage, {
201
368
  noDataText: noDataText
202
369
  }));
203
370
  };
204
- var _default = exports.default = PerformanceAnalytics; // PerformanceAnalytics.propTypes = {
205
- // title: PropTypes.string,
206
- // value: PropTypes.number,
207
- // addingBenchmark: PropTypes.bool,
208
- // dotCut: PropTypes.bool,
209
- // currencySign: PropTypes.bool,
210
- // currencyType: PropTypes.string,
211
- // legendData: PropTypes.arrayOf(
212
- // PropTypes.shape({
213
- // name: PropTypes.string,
214
- // description: PropTypes.string,
215
- // })
216
- // ),
217
- // itemsPercentagesValueAside: PropTypes.bool,
218
- // itemsBoldedValues: PropTypes.bool,
219
- // itemsValuesSeparateLine: PropTypes.bool,
220
- // width: PropTypes.string,
221
- // height: PropTypes.string,
222
- // textColor: PropTypes.string,
223
- // noDataText: PropTypes.string,
224
- // };
225
- // PerformanceAnalytics.defaultProps = {
226
- // title: "Total Cost",
227
- // value: 0,
228
- // addingBenchmark: false,
229
- // dotCut: false,
230
- // currencySign: false,
231
- // currencyType: "USD",
232
- // legendData: [],
233
- // itemsPercentagesValueAside: false,
234
- // itemsBoldedValues: true,
235
- // itemsValuesSeparateLine: true,
236
- // width: "300px",
237
- // height: "280px",
238
- // textColor: "#212121",
239
- // noDataText: "",
240
- // };
241
- function CustomTooltip(_ref3) {
242
- var active = _ref3.active,
243
- payload = _ref3.payload,
244
- value = _ref3.value;
245
- if (active && payload && payload.length) {
246
- var percent = value && value !== 0 ? (payload[0].value / value * 100).toFixed(0) : 0;
247
- return /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipDivROI, null, /*#__PURE__*/_react.default.createElement(_PerformanceAnalytics.TooltipLabelROI, null, "".concat(payload[0].name, " ").concat(percent, "%")));
248
- }
249
- }
250
- CustomTooltip.defaultProps = {
251
- active: "",
252
- payload: "",
253
- value: ""
254
- };
371
+ var _default = exports.default = PerformanceAnalytics;