contentoh-components-library 21.2.34 → 21.2.35

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 (29) hide show
  1. package/dist/components/atoms/VerticalSideMenuMainPage/styles.js +1 -1
  2. package/dist/components/molecules/CustomSelect/styles.js +1 -1
  3. package/dist/components/organisms/DashboardMetric/dashboardMetricUtils.js +147 -0
  4. package/dist/components/organisms/DashboardMetric/index.js +36 -10
  5. package/dist/components/organisms/DashboardMetric/styles.js +1 -1
  6. package/dist/components/pages/Dashboard/index.js +5 -3
  7. package/package.json +1 -1
  8. package/src/components/atoms/Graphic/index.js +0 -1
  9. package/src/components/atoms/VerticalSideMenuMainPage/styles.js +0 -2
  10. package/src/components/molecules/CustomSelect/styles.js +1 -0
  11. package/src/components/organisms/DashboardMetric/dashboardMetricUtils.js +105 -0
  12. package/src/components/organisms/DashboardMetric/index.js +32 -8
  13. package/src/components/organisms/DashboardMetric/styles.js +1 -1
  14. package/src/components/pages/Dashboard/index.js +3 -1
  15. package/dist/components/atoms/ListCommercialRetailers/ListCommercialRetailers.stories.js +0 -36
  16. package/dist/components/atoms/ListCommercialRetailers/index.js +0 -64
  17. package/dist/components/atoms/ListCommercialRetailers/styles.js +0 -20
  18. package/dist/components/atoms/MenuCommercialRetailers/MenuCommercialRetailers.stories.js +0 -37
  19. package/dist/components/atoms/MenuCommercialRetailers/index.js +0 -25
  20. package/dist/components/atoms/MenuCommercialRetailers/styles.js +0 -20
  21. package/dist/components/atoms/MenuProductImage/MenuProductImage.stories.js +0 -28
  22. package/dist/components/atoms/MenuProductImage/index.js +0 -88
  23. package/dist/components/atoms/MenuProductImage/styles.js +0 -20
  24. package/dist/components/molecules/ApproveRejetPanel/ApproveRejetPanel.stories.js +0 -25
  25. package/dist/components/molecules/ApproveRejetPanel/index.js +0 -49
  26. package/dist/components/molecules/ApproveRejetPanel/styles.js +0 -18
  27. package/dist/components/molecules/SignInLoginCreationApp/SignInLogin.stories.js +0 -28
  28. package/dist/components/molecules/SignInLoginCreationApp/index.js +0 -270
  29. package/dist/components/molecules/SignInLoginCreationApp/styles.js +0 -20
@@ -35,7 +35,7 @@ var Container = _styledComponents.default.div(_templateObject || (_templateObjec
35
35
  });
36
36
 
37
37
  exports.Container = Container;
38
- var NavLinkOption = (0, _styledComponents.default)(_reactRouterDom.NavLink)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n height: ", "px;\n display: flex;\n justify-content: ", ";\n border-radius: ", "px;\n align-items: center;\n font-family: sans-serif;\n font-style: normal;\n font-weight: 400;\n font-size: 18px;\n line-height: 21px;\n //margin: 5px 0;\n letter-spacing: -0.015em;\n color: #fafafa;\n text-decoration: none;\n cursor: pointer;\n width: ", "px;\n padding: 0 17px;\n &:hover {\n background: #e33aa9;\n color: #fafafa;\n text-decoration: none;\n }\n p {\n cursor: pointer;\n margin: 0%;\n pointer-events: none;\n }\n img {\n width: 22px;\n & + * {\n margin-left: 12px;\n }\n }\n &.sub-option-link {\n display: flex;\n justify-content: flex-start;\n text-decoration: none;\n position: relative;\n font-size: 13px;\n border-left: 1px solid #f0eef2;\n border-radius: 0;\n color: #f0eef2;\n padding-top: 14px;\n height: 25px;\n margin: 0;\n padding-left: 12px;\n &::before {\n border-left: 1px solid #e33aa9;\n width: 10px;\n content: \"\";\n border-radius: 50%;\n height: 10px;\n background-color: white;\n position: absolute;\n bottom: 0;\n left: ", "%;\n }\n &.active {\n background: none !important;\n color: #fafafa;\n text-decoration: none;\n transition: all 0.3s linear;\n &::before {\n background-color: #e33aa9;\n }\n }\n &:hover {\n background: none;\n }\n }\n"])), function (_ref6) {
38
+ var NavLinkOption = (0, _styledComponents.default)(_reactRouterDom.NavLink)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n height: ", "px;\n display: flex;\n justify-content: ", ";\n border-radius: ", "px;\n align-items: center;\n font-family: sans-serif;\n font-style: normal;\n font-weight: 400;\n font-size: 18px;\n line-height: 21px;\n //margin: 5px 0;\n letter-spacing: -0.015em;\n color: #fafafa;\n text-decoration: none;\n cursor: pointer;\n width: ", "px;\n padding: 0 17px;\n &:hover {\n background: #e33aa9;\n }\n p {\n cursor: pointer;\n margin: 0%;\n pointer-events: none;\n }\n img {\n width: 22px;\n & + * {\n margin-left: 12px;\n }\n }\n &.sub-option-link {\n display: flex;\n justify-content: flex-start;\n text-decoration: none;\n position: relative;\n font-size: 13px;\n border-left: 1px solid #f0eef2;\n border-radius: 0;\n color: #f0eef2;\n padding-top: 14px;\n height: 25px;\n margin: 0;\n padding-left: 12px;\n &::before {\n border-left: 1px solid #e33aa9;\n width: 10px;\n content: \"\";\n border-radius: 50%;\n height: 10px;\n background-color: white;\n position: absolute;\n bottom: 0;\n left: ", "%;\n }\n &.active {\n background: none !important;\n color: #fafafa;\n text-decoration: none;\n transition: all 0.3s linear;\n &::before {\n background-color: #e33aa9;\n }\n }\n &:hover {\n background: none;\n }\n }\n"])), function (_ref6) {
39
39
  var bar = _ref6.bar;
40
40
  return bar ? 32 : 38;
41
41
  }, function (_ref7) {
@@ -15,6 +15,6 @@ var _variables = require("../../../global-files/variables");
15
15
 
16
16
  var _templateObject;
17
17
 
18
- var Container = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: fit-content;\n position: relative;\n\n .button-list {\n font-family: ", ";\n font-size: 13px;\n display: flex;\n padding: 10px 15px;\n justify-content: space-between;\n border-radius: 50px;\n background-color: #fff;\n border: 1px solid #f0f0f0;\n cursor: pointer;\n\n .arrow-item {\n transform: rotate(-90deg);\n cursor: pointer;\n font-size: 10px;\n }\n & + * {\n margin-top: 10px;\n }\n }\n\n .select-container {\n box-shadow: 0px 2px 4px #00000040;\n border-radius: 5px;\n background-color: #fff;\n padding-bottom: 10px;\n position: absolute;\n z-index: 10;\n .search-bar-filter {\n display: flex;\n align-items: center;\n border: 1px solid #f0f0f0;\n padding-left: 10px;\n\n img {\n width: 15px;\n height: 15px;\n }\n\n input {\n background-color: transparent;\n padding: 10px 10px;\n outline: none;\n border: none;\n }\n }\n .default-option {\n padding-top: 5px;\n cursor: pointer;\n padding: 5px 10px;\n color: #817393;\n font-family: Avenir Next;\n font-weight: 500;\n font-size: 13px;\n line-height: 21px;\n &:hover {\n background-color: #f0f0f0;\n }\n }\n .filters-container {\n overflow: auto;\n max-height: 500px;\n .option-container,\n .default-option {\n cursor: pointer;\n padding: 5px 10px;\n .main-item {\n display: flex;\n justify-content: space-between;\n\n .arrow-item {\n transform: rotate(-90deg);\n cursor: pointer;\n font-size: 10px;\n }\n }\n .sub-menu {\n padding-left: 20px;\n .sub-filter {\n & + * {\n margin-top: 10px;\n }\n }\n }\n\n &:hover {\n background-color: #f0f0f0;\n }\n label {\n white-space: nowrap;\n }\n }\n\n .dates-select-item {\n cursor: pointer;\n padding: 5px 10px;\n color: #817393;\n font-family: Avenir Next;\n font-weight: 500;\n font-size: 13px;\n line-height: 21px;\n &:hover {\n background-color: #f0f0f0;\n }\n }\n }\n }\n"])), _variables.FontFamily.Raleway);
18
+ var Container = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: fit-content;\n position: relative;\n\n .button-list {\n font-family: ", ";\n font-size: 13px;\n display: flex;\n padding: 10px 15px;\n justify-content: space-between;\n border-radius: 50px;\n background-color: #fff;\n border: 1px solid #f0f0f0;\n cursor: pointer;\n\n .arrow-item {\n transform: rotate(-90deg);\n cursor: pointer;\n font-size: 10px;\n margin-left: 10px;\n }\n & + * {\n margin-top: 10px;\n }\n }\n\n .select-container {\n box-shadow: 0px 2px 4px #00000040;\n border-radius: 5px;\n background-color: #fff;\n padding-bottom: 10px;\n position: absolute;\n z-index: 10;\n .search-bar-filter {\n display: flex;\n align-items: center;\n border: 1px solid #f0f0f0;\n padding-left: 10px;\n\n img {\n width: 15px;\n height: 15px;\n }\n\n input {\n background-color: transparent;\n padding: 10px 10px;\n outline: none;\n border: none;\n }\n }\n .default-option {\n padding-top: 5px;\n cursor: pointer;\n padding: 5px 10px;\n color: #817393;\n font-family: Avenir Next;\n font-weight: 500;\n font-size: 13px;\n line-height: 21px;\n &:hover {\n background-color: #f0f0f0;\n }\n }\n .filters-container {\n overflow: auto;\n max-height: 500px;\n .option-container,\n .default-option {\n cursor: pointer;\n padding: 5px 10px;\n .main-item {\n display: flex;\n justify-content: space-between;\n\n .arrow-item {\n transform: rotate(-90deg);\n cursor: pointer;\n font-size: 10px;\n }\n }\n .sub-menu {\n padding-left: 20px;\n .sub-filter {\n & + * {\n margin-top: 10px;\n }\n }\n }\n\n &:hover {\n background-color: #f0f0f0;\n }\n label {\n white-space: nowrap;\n }\n }\n\n .dates-select-item {\n cursor: pointer;\n padding: 5px 10px;\n color: #817393;\n font-family: Avenir Next;\n font-weight: 500;\n font-size: 13px;\n line-height: 21px;\n &:hover {\n background-color: #f0f0f0;\n }\n }\n }\n }\n"])), _variables.FontFamily.Raleway);
19
19
 
20
20
  exports.Container = Container;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.removeOldStatus = exports.getStatusColor = exports.getFullStatus = void 0;
7
+
8
+ var getFullStatus = function getFullStatus(status) {
9
+ switch (status) {
10
+ case "PA":
11
+ return "Por Asignar";
12
+
13
+ case "AS":
14
+ case "Assigned":
15
+ return "Asignado";
16
+
17
+ case "CA":
18
+ case "IN_PROGRESS":
19
+ return "Capturando";
20
+
21
+ case "IE":
22
+ case "QF":
23
+ return "Información Enviada";
24
+
25
+ case "RC":
26
+ case "RF":
27
+ return "Rechazado Coordinador";
28
+
29
+ case "AC":
30
+ case "AF":
31
+ return "Aprobado Coordinador";
32
+
33
+ case "RA":
34
+ return "Rechazado Auditor";
35
+
36
+ case "AA":
37
+ return "Aprobado Auditor";
38
+
39
+ case "RP":
40
+ return "Rechazado Proveedor";
41
+
42
+ case "AP":
43
+ return "Aprovado Proveedor";
44
+
45
+ case "RCA":
46
+ return "Rechazado Cadena";
47
+
48
+ case "ACA":
49
+ return "Aprobado Cadena";
50
+
51
+ case "R":
52
+ return "Por Recibir/Recibido";
53
+ }
54
+ };
55
+
56
+ exports.getFullStatus = getFullStatus;
57
+
58
+ var getStatusColor = function getStatusColor(status) {
59
+ switch (status) {
60
+ case "PA":
61
+ return "#EC9C4C";
62
+
63
+ case "AS":
64
+ case "Assigned":
65
+ return "#4C7CEC";
66
+
67
+ case "CA":
68
+ case "IN_PROGRESS":
69
+ return "#EC4C4C";
70
+
71
+ case "IE":
72
+ case "QF":
73
+ return "#808080";
74
+
75
+ case "RC":
76
+ case "RF":
77
+ return "#DF2828";
78
+
79
+ case "AC":
80
+ case "AF":
81
+ return "#E6EC4C";
82
+
83
+ case "RA":
84
+ return "#4CECD6";
85
+
86
+ case "AA":
87
+ return "#E33AA9";
88
+
89
+ case "RP":
90
+ return "#3B1366";
91
+
92
+ case "AP":
93
+ return "#ED9A4D";
94
+
95
+ case "RCA":
96
+ return "#71DE56";
97
+
98
+ case "ACA":
99
+ return "#503D66";
100
+
101
+ case "R":
102
+ return "#281f33";
103
+
104
+ default:
105
+ return "white";
106
+ }
107
+ };
108
+
109
+ exports.getStatusColor = getStatusColor;
110
+
111
+ var removeOldStatus = function removeOldStatus(object) {
112
+ var keys = Object.keys(object || {}) || [];
113
+ keys === null || keys === void 0 ? void 0 : keys.forEach(function (status) {
114
+ switch (status) {
115
+ case "Assigned":
116
+ object["AS"] = object["AS"] + object["Assigned"];
117
+ delete object["Assigned"];
118
+ break;
119
+
120
+ case "IN_PROGRESS":
121
+ object["CA"] = object["CA"] + object["IN_PROGRESS"];
122
+ delete object["IN_PROGRESS"];
123
+ break;
124
+
125
+ case "QF":
126
+ object["IE"] = object["IE"] + object["QF"];
127
+ delete object["QF"];
128
+ break;
129
+
130
+ case "RF":
131
+ object["RC"] = object["RC"] + object["RF"];
132
+ delete object["RF"];
133
+ break;
134
+
135
+ case "AF":
136
+ object["AC"] = object["AC"] + object["AF"];
137
+ delete object["AF"];
138
+ break;
139
+
140
+ default:
141
+ break;
142
+ }
143
+ });
144
+ return object;
145
+ };
146
+
147
+ exports.removeOldStatus = removeOldStatus;
@@ -13,6 +13,8 @@ var _styles = require("./styles");
13
13
 
14
14
  var _Graphic = require("../../atoms/Graphic");
15
15
 
16
+ var _dashboardMetricUtils = require("./dashboardMetricUtils");
17
+
16
18
  var _jsxRuntime = require("react/jsx-runtime");
17
19
 
18
20
  var DashboardMetric = function DashboardMetric(_ref) {
@@ -31,17 +33,24 @@ var DashboardMetric = function DashboardMetric(_ref) {
31
33
  _ref$displayScale = _ref.displayScale,
32
34
  displayScale = _ref$displayScale === void 0 ? false : _ref$displayScale,
33
35
  _ref$displayLegend = _ref.displayLegend,
34
- displayLegend = _ref$displayLegend === void 0 ? false : _ref$displayLegend;
35
- var labels = Object.keys(dataObject);
36
- var values = Object.values(dataObject);
37
- var colorsArray = values.map(function () {
38
- return "#".concat(Math.floor(Math.random() * 16777215).toString(16));
36
+ displayLegend = _ref$displayLegend === void 0 ? false : _ref$displayLegend,
37
+ _ref$showPercent = _ref.showPercent,
38
+ showPercent = _ref$showPercent === void 0 ? false : _ref$showPercent,
39
+ borderColor = _ref.borderColor;
40
+ var labels = type === "doughnut" ? Object.keys(dataObject).map(function (key) {
41
+ return (0, _dashboardMetricUtils.getFullStatus)(key);
42
+ }) : Object.keys(dataObject);
43
+ var newObject = type === "doughnut" ? (0, _dashboardMetricUtils.removeOldStatus)(dataObject) : dataObject;
44
+ var values = Object.values(newObject);
45
+ var colorsArray = Object.keys(newObject).map(function (key) {
46
+ return (0, _dashboardMetricUtils.getStatusColor)(key);
39
47
  });
40
48
  var data = {
41
49
  labels: labels,
42
50
  datasets: [{
43
51
  data: values,
44
- backgroundColor: colorsArray
52
+ backgroundColor: colorsArray,
53
+ borderColor: borderColor
45
54
  }]
46
55
  };
47
56
  var options = {
@@ -55,12 +64,29 @@ var DashboardMetric = function DashboardMetric(_ref) {
55
64
  maintainAspectRatio: false,
56
65
  aspectRatio: 1,
57
66
  plugins: {
67
+ tooltip: {
68
+ callbacks: {
69
+ label: function label(_ref2) {
70
+ var _dataset$data;
71
+
72
+ var dataset = _ref2.dataset,
73
+ element = _ref2.element;
74
+ var sum = dataset === null || dataset === void 0 ? void 0 : (_dataset$data = dataset.data) === null || _dataset$data === void 0 ? void 0 : _dataset$data.reduce(function (accumulator, value) {
75
+ return accumulator + value;
76
+ }, 0);
77
+ var raw = element.$context.raw;
78
+ var percent = Math.round(100 * (raw / sum)) + "%";
79
+ return showPercent ? percent : raw;
80
+ }
81
+ }
82
+ },
58
83
  legend: {
59
84
  position: "right",
60
- display: displayLegend
61
- },
62
- title: {
63
- display: false
85
+ display: displayLegend,
86
+ labels: {
87
+ usePointStyle: true,
88
+ boxWidth: 8
89
+ }
64
90
  }
65
91
  },
66
92
  scales: (0, _defineProperty2.default)({}, scale, {
@@ -15,6 +15,6 @@ var _variables = require("../../../global-files/variables");
15
15
 
16
16
  var _templateObject;
17
17
 
18
- var Container = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border: 1px solid ", ";\n border-radius: 5px;\n padding: 24px;\n\n .text-container {\n p {\n font-family: ", ";\n color: ", ";\n font-size: 17px;\n\n &:last-of-type {\n font-size: 12px;\n color: ", ";\n }\n\n & + * {\n margin-top: 5px;\n }\n }\n\n & + * {\n margin-top: 15px;\n }\n }\n\n .select-container {\n display: flex;\n\n .select {\n flex: 0.1 1 30%;\n\n select {\n width: 100%;\n }\n\n & + * {\n margin-left: 10px;\n }\n }\n\n & + * {\n margin-top: 10px;\n }\n }\n\n .graphic-cotainer {\n height: 300px;\n border: 1px solid ", ";\n padding: 10px;\n border-radius: 5px;\n\n div {\n height: fill-available;\n }\n }\n"])), _variables.GlobalColors.s3, _variables.FontFamily.Raleway, _variables.GlobalColors.s5, _variables.GlobalColors.s4, _variables.GlobalColors.s3);
18
+ var Container = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border: 1px solid ", ";\n border-radius: 5px;\n padding: 24px;\n\n .text-container {\n p {\n font-family: ", ";\n color: ", ";\n font-size: 17px;\n\n &:last-of-type {\n font-size: 12px;\n color: ", ";\n }\n\n & + * {\n margin-top: 5px;\n }\n }\n\n & + * {\n margin-top: 15px;\n }\n }\n\n .select-container {\n display: flex;\n\n .select {\n flex: 0.1 1 30%;\n\n select {\n width: 100%;\n }\n\n & + * {\n margin-left: 10px;\n }\n }\n\n & + * {\n margin-top: 10px;\n }\n }\n\n .graphic-cotainer {\n height: 320px;\n border: 1px solid ", ";\n padding: 10px;\n border-radius: 5px;\n\n div {\n height: fill-available;\n }\n }\n"])), _variables.GlobalColors.s3, _variables.FontFamily.Raleway, _variables.GlobalColors.s5, _variables.GlobalColors.s4, _variables.GlobalColors.s3);
19
19
 
20
20
  exports.Container = Container;
@@ -350,7 +350,7 @@ var Dashboard = function Dashboard(_ref) {
350
350
  }
351
351
  }, {
352
352
  id: 7,
353
- name: "Este mes",
353
+ name: "El mes pasado",
354
354
  function: function _function() {
355
355
  return setDatesRange({
356
356
  startDate: new Date("".concat(today.getFullYear(), "-").concat(today.getMonth(), "-01")),
@@ -498,7 +498,8 @@ var Dashboard = function Dashboard(_ref) {
498
498
  setOrderByStatus(evt);
499
499
  },
500
500
  type: "doughnut",
501
- displayLegend: true
501
+ displayLegend: true,
502
+ showPercent: true
502
503
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DashboardMetric.DashboardMetric, {
503
504
  label: "Productos solicitados",
504
505
  description: "Filtra los productos solicitados por fecha y alcance para revisar rápidamente el flujo de trabajo.",
@@ -512,7 +513,8 @@ var Dashboard = function Dashboard(_ref) {
512
513
  setQueryObject: function setQueryObject(evt) {
513
514
  loadRequiredProducts(evt);
514
515
  setOrderByRequired(evt);
515
- }
516
+ },
517
+ borderColor: "#3B1366"
516
518
  })]
517
519
  })]
518
520
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "contentoh-components-library",
3
- "version": "21.2.34",
3
+ "version": "21.2.35",
4
4
  "dependencies": {
5
5
  "@aws-amplify/auth": "^4.5.3",
6
6
  "@aws-amplify/datastore": "^3.11.0",
@@ -3,7 +3,6 @@ import { Chart } from "react-chartjs-2";
3
3
  import "chart.js/auto";
4
4
 
5
5
  export const Graphic = ({ data, type, options }) => {
6
-
7
6
  return (
8
7
  <Container>
9
8
  <Chart type={type} data={data} options={options} />
@@ -70,8 +70,6 @@ export const NavLinkOption = styled(NavLink)`
70
70
  padding: 0 17px;
71
71
  &:hover {
72
72
  background: #e33aa9;
73
- color: #fafafa;
74
- text-decoration: none;
75
73
  }
76
74
  p {
77
75
  cursor: pointer;
@@ -20,6 +20,7 @@ export const Container = styled.div`
20
20
  transform: rotate(-90deg);
21
21
  cursor: pointer;
22
22
  font-size: 10px;
23
+ margin-left: 10px;
23
24
  }
24
25
  & + * {
25
26
  margin-top: 10px;
@@ -0,0 +1,105 @@
1
+ export const getFullStatus = (status) => {
2
+ switch (status) {
3
+ case "PA":
4
+ return "Por Asignar";
5
+ case "AS":
6
+ case "Assigned":
7
+ return "Asignado";
8
+ case "CA":
9
+ case "IN_PROGRESS":
10
+ return "Capturando";
11
+ case "IE":
12
+ case "QF":
13
+ return "Información Enviada";
14
+ case "RC":
15
+ case "RF":
16
+ return "Rechazado Coordinador";
17
+ case "AC":
18
+ case "AF":
19
+ return "Aprobado Coordinador";
20
+ case "RA":
21
+ return "Rechazado Auditor";
22
+ case "AA":
23
+ return "Aprobado Auditor";
24
+ case "RP":
25
+ return "Rechazado Proveedor";
26
+ case "AP":
27
+ return "Aprovado Proveedor";
28
+ case "RCA":
29
+ return "Rechazado Cadena";
30
+ case "ACA":
31
+ return "Aprobado Cadena";
32
+ case "R":
33
+ return "Por Recibir/Recibido";
34
+ }
35
+ };
36
+
37
+ export const getStatusColor = (status) => {
38
+ switch (status) {
39
+ case "PA":
40
+ return "#EC9C4C";
41
+ case "AS":
42
+ case "Assigned":
43
+ return "#4C7CEC";
44
+ case "CA":
45
+ case "IN_PROGRESS":
46
+ return "#EC4C4C";
47
+ case "IE":
48
+ case "QF":
49
+ return "#808080";
50
+ case "RC":
51
+ case "RF":
52
+ return "#DF2828";
53
+ case "AC":
54
+ case "AF":
55
+ return "#E6EC4C";
56
+ case "RA":
57
+ return "#4CECD6";
58
+ case "AA":
59
+ return "#E33AA9";
60
+ case "RP":
61
+ return "#3B1366";
62
+ case "AP":
63
+ return "#ED9A4D";
64
+ case "RCA":
65
+ return "#71DE56";
66
+ case "ACA":
67
+ return "#503D66";
68
+ case "R":
69
+ return "#281f33";
70
+ default:
71
+ return "white";
72
+ }
73
+ };
74
+
75
+ export const removeOldStatus = (object) => {
76
+ const keys = Object.keys(object || {}) || [];
77
+ keys?.forEach((status) => {
78
+ switch (status) {
79
+ case "Assigned":
80
+ object["AS"] = object["AS"] + object["Assigned"];
81
+ delete object["Assigned"];
82
+ break;
83
+ case "IN_PROGRESS":
84
+ object["CA"] = object["CA"] + object["IN_PROGRESS"];
85
+ delete object["IN_PROGRESS"];
86
+ break;
87
+ case "QF":
88
+ object["IE"] = object["IE"] + object["QF"];
89
+ delete object["QF"];
90
+ break;
91
+ case "RF":
92
+ object["RC"] = object["RC"] + object["RF"];
93
+ delete object["RF"];
94
+ break;
95
+ case "AF":
96
+ object["AC"] = object["AC"] + object["AF"];
97
+ delete object["AF"];
98
+ break;
99
+
100
+ default:
101
+ break;
102
+ }
103
+ });
104
+ return object;
105
+ };
@@ -1,5 +1,10 @@
1
1
  import { Container } from "./styles";
2
2
  import { Graphic } from "../../atoms/Graphic";
3
+ import {
4
+ getFullStatus,
5
+ removeOldStatus,
6
+ getStatusColor,
7
+ } from "./dashboardMetricUtils";
3
8
 
4
9
  export const DashboardMetric = ({
5
10
  label,
@@ -10,12 +15,17 @@ export const DashboardMetric = ({
10
15
  scale = "x",
11
16
  displayScale = false,
12
17
  displayLegend = false,
18
+ showPercent = false,
19
+ borderColor,
13
20
  }) => {
14
- const labels = Object.keys(dataObject);
15
- const values = Object.values(dataObject);
16
- const colorsArray = values.map(
17
- () => `#${Math.floor(Math.random() * 16777215).toString(16)}`
18
- );
21
+ const labels =
22
+ type === "doughnut"
23
+ ? Object.keys(dataObject).map((key) => getFullStatus(key))
24
+ : Object.keys(dataObject);
25
+ const newObject =
26
+ type === "doughnut" ? removeOldStatus(dataObject) : dataObject;
27
+ const values = Object.values(newObject);
28
+ const colorsArray = Object.keys(newObject).map((key) => getStatusColor(key));
19
29
 
20
30
  const data = {
21
31
  labels,
@@ -23,6 +33,7 @@ export const DashboardMetric = ({
23
33
  {
24
34
  data: values,
25
35
  backgroundColor: colorsArray,
36
+ borderColor: borderColor,
26
37
  },
27
38
  ],
28
39
  };
@@ -38,12 +49,25 @@ export const DashboardMetric = ({
38
49
  maintainAspectRatio: false,
39
50
  aspectRatio: 1,
40
51
  plugins: {
52
+ tooltip: {
53
+ callbacks: {
54
+ label: ({ dataset, element }) => {
55
+ const sum = dataset?.data?.reduce((accumulator, value) => {
56
+ return accumulator + value;
57
+ }, 0);
58
+ const { raw } = element.$context;
59
+ const percent = Math.round(100 * (raw / sum)) + "%";
60
+ return showPercent ? percent : raw;
61
+ },
62
+ },
63
+ },
41
64
  legend: {
42
65
  position: "right",
43
66
  display: displayLegend,
44
- },
45
- title: {
46
- display: false,
67
+ labels: {
68
+ usePointStyle: true,
69
+ boxWidth: 8,
70
+ },
47
71
  },
48
72
  },
49
73
  scales: {
@@ -48,7 +48,7 @@ export const Container = styled.div`
48
48
  }
49
49
 
50
50
  .graphic-cotainer {
51
- height: 300px;
51
+ height: 320px;
52
52
  border: 1px solid ${GlobalColors.s3};
53
53
  padding: 10px;
54
54
  border-radius: 5px;
@@ -166,7 +166,7 @@ export const Dashboard = ({ jwt, user }) => {
166
166
  },
167
167
  {
168
168
  id: 7,
169
- name: "Este mes",
169
+ name: "El mes pasado",
170
170
  function: () =>
171
171
  setDatesRange({
172
172
  startDate: new Date(
@@ -286,6 +286,7 @@ export const Dashboard = ({ jwt, user }) => {
286
286
  }}
287
287
  type="doughnut"
288
288
  displayLegend={true}
289
+ showPercent={true}
289
290
  />
290
291
  <DashboardMetric
291
292
  label={"Productos solicitados"}
@@ -303,6 +304,7 @@ export const Dashboard = ({ jwt, user }) => {
303
304
  loadRequiredProducts(evt);
304
305
  setOrderByRequired(evt);
305
306
  }}
307
+ borderColor={"#3B1366"}
306
308
  />
307
309
  </div>
308
310
  </Container>
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.ListCommercialRetailersDefault = void 0;
7
-
8
- var _index = require("./index");
9
-
10
- var _default = {
11
- title: "Components/atoms/ListCommercialRetailers",
12
- component: _index.ListCommercialRetailers
13
- };
14
- exports.default = _default;
15
-
16
- var Template = function Template(args) {
17
- return /*#__PURE__*/React.createElement(_index.ListCommercialRetailers, args);
18
- };
19
-
20
- var ListCommercialRetailersDefault = Template.bind({});
21
- exports.ListCommercialRetailersDefault = ListCommercialRetailersDefault;
22
- ListCommercialRetailersDefault.args = {
23
- retailersAvailable: [{
24
- id: 54,
25
- name: "Construrama",
26
- country: "México",
27
- id_region: 1,
28
- active: 1
29
- }, {
30
- id: 4,
31
- name: "Walmart Super y Superama"
32
- }, {
33
- id: 6,
34
- name: "HEB"
35
- }]
36
- };
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.ListCommercialRetailers = void 0;
9
-
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
11
-
12
- var _styles = require("./styles");
13
-
14
- var _listCommercialRetailers = _interopRequireDefault(require("../../../assets/images/listCommercialRetailers/listCommercialRetailers.svg"));
15
-
16
- var _react = require("react");
17
-
18
- var _index = require("../CheckBox/index");
19
-
20
- var ListCommercialRetailers = function ListCommercialRetailers(_ref) {
21
- var retailersAvailable = _ref.retailersAvailable;
22
-
23
- var _useState = (0, _react.useState)(false),
24
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
25
- showMenu = _useState2[0],
26
- setShowMenu = _useState2[1];
27
-
28
- var closeMenu = function closeMenu(e) {
29
- if (!e.target.closest(".menu-list-commercial-retailers") && showMenu) {
30
- document.removeEventListener("click", closeMenu, false);
31
- setShowMenu(false);
32
- }
33
- };
34
-
35
- (0, _react.useEffect)(function () {
36
- if (showMenu) {
37
- document.addEventListener("click", closeMenu, false);
38
- }
39
- }, [showMenu]);
40
- return /*#__PURE__*/React.createElement(_styles.Container, {
41
- onClick: function onClick(event) {
42
- if (!showMenu) {
43
- setShowMenu(true);
44
- } else if (showMenu && !event.target.closest(".menu-list-commercial-retailers")) {
45
- setShowMenu(false);
46
- document.removeEventListener("click", closeMenu, false);
47
- }
48
- },
49
- className: "list-commercial-retailers"
50
- }, /*#__PURE__*/React.createElement("img", {
51
- src: _listCommercialRetailers.default,
52
- alt: "button up icon"
53
- }), showMenu && /*#__PURE__*/React.createElement("div", {
54
- className: "menu-list-commercial-retailers"
55
- }, retailersAvailable === null || retailersAvailable === void 0 ? void 0 : retailersAvailable.map(function (component, index) {
56
- return /*#__PURE__*/React.createElement(_index.CheckBox, {
57
- id: component.id,
58
- label: component.name,
59
- key: index + "-" + component.id
60
- });
61
- })));
62
- };
63
-
64
- exports.ListCommercialRetailers = ListCommercialRetailers;
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Container = void 0;
9
-
10
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
11
-
12
- var _styledComponents = _interopRequireDefault(require("styled-components"));
13
-
14
- var _variables = require("../../../global-files/variables");
15
-
16
- var _templateObject;
17
-
18
- var Container = _styledComponents.default.button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: transparent;\n border: 1px solid ", ";\n border-radius: 2px;\n padding: 3px;\n display: flex;\n align-items: center;\n cursor: pointer;\n position: relative;\n height: 30px;\n .menu-list-commercial-retailers {\n width: 540px;\n height: auto;\n border-radius: 7px;\n background-color: ", ";\n padding: 14px 14px 8px 20px;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n position: absolute;\n top: calc(100% + 3px);\n right: calc(100% - 20px);\n display: flex;\n flex-wrap: wrap;\n z-index: 1;\n div {\n & + * {\n margin-left: 15px;\n }\n p {\n font-size: 11px;\n }\n }\n }\n"])), _variables.GlobalColors.magenta_s2, _variables.GlobalColors.s2);
19
-
20
- exports.Container = Container;