contentoh-components-library 21.2.106 → 21.3.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.
Files changed (61) hide show
  1. package/dist/assets/fonts/{roboto → Roboto}/LICENSE.txt +0 -0
  2. package/dist/assets/fonts/{roboto → Roboto}/Roboto-Black.ttf +0 -0
  3. package/dist/assets/fonts/{roboto → Roboto}/Roboto-BlackItalic.ttf +0 -0
  4. package/dist/assets/fonts/{roboto → Roboto}/Roboto-Bold.ttf +0 -0
  5. package/dist/assets/fonts/{roboto → Roboto}/Roboto-BoldItalic.ttf +0 -0
  6. package/dist/assets/fonts/{roboto → Roboto}/Roboto-Italic.ttf +0 -0
  7. package/dist/assets/fonts/{roboto → Roboto}/Roboto-Light.ttf +0 -0
  8. package/dist/assets/fonts/{roboto → Roboto}/Roboto-LightItalic.ttf +0 -0
  9. package/dist/assets/fonts/{roboto → Roboto}/Roboto-Medium.ttf +0 -0
  10. package/dist/assets/fonts/{roboto → Roboto}/Roboto-MediumItalic.ttf +0 -0
  11. package/dist/assets/fonts/{roboto → Roboto}/Roboto-Regular.ttf +0 -0
  12. package/dist/assets/fonts/{roboto → Roboto}/Roboto-Thin.ttf +0 -0
  13. package/dist/assets/fonts/{roboto → Roboto}/Roboto-ThinItalic.ttf +0 -0
  14. package/dist/assets/images/chatPopup/Spinner.gif +0 -0
  15. package/dist/assets/images/chatPopup/close.svg +3 -0
  16. package/dist/assets/images/chatPopup/defaultImage.png +0 -0
  17. package/dist/assets/images/chatPopup/defaultProfile.png +0 -0
  18. package/dist/assets/images/chatPopup/doc.svg +1 -0
  19. package/dist/assets/images/chatPopup/document.svg +1 -0
  20. package/dist/assets/images/chatPopup/iconChat.svg +19 -0
  21. package/dist/assets/images/chatPopup/iconPlus.svg +3 -0
  22. package/dist/assets/images/chatPopup/pdf.svg +75 -0
  23. package/dist/assets/images/chatPopup/remove.svg +4 -0
  24. package/dist/assets/images/chatPopup/send.svg +3 -0
  25. package/dist/assets/images/chatPopup/svgIcon.svg +109 -0
  26. package/dist/assets/images/chatPopup/upload_file.svg +3 -0
  27. package/dist/assets/images/chatPopup/xls.svg +53 -0
  28. package/dist/components/atoms/ChatPopUp/ChatPopUp.stories.js +28 -0
  29. package/dist/components/atoms/ChatPopUp/index.js +841 -0
  30. package/dist/components/atoms/ChatPopUp/styles.js +27 -0
  31. package/dist/components/atoms/ChatPopUp/utils/handlersChat.js +182 -0
  32. package/dist/components/atoms/StatusTag/StatusTag.stories.js +48 -0
  33. package/dist/components/atoms/StatusTag/index.js +58 -0
  34. package/dist/components/atoms/StatusTag/styles.js +20 -0
  35. package/dist/components/organisms/RangeCalendar/RangeCalendar.stories.js +28 -0
  36. package/dist/components/organisms/RangeCalendar/index.js +140 -0
  37. package/dist/components/organisms/RangeCalendar/styles.js +27 -0
  38. package/dist/components/pages/RegistrationLoginFirstStep/RegistrationLoginFirstStep.stories.js +37 -0
  39. package/dist/components/pages/RegistrationLoginFirstStep/index.js +269 -0
  40. package/dist/components/pages/RegistrationLoginFirstStep/styles.js +20 -0
  41. package/dist/global-files/fonts.css +4 -4
  42. package/dist/index.js +13 -0
  43. package/package.json +1 -1
  44. package/src/assets/fonts/{roboto → Roboto}/LICENSE.txt +0 -0
  45. package/src/assets/fonts/{roboto → Roboto}/Roboto-Black.ttf +0 -0
  46. package/src/assets/fonts/{roboto → Roboto}/Roboto-BlackItalic.ttf +0 -0
  47. package/src/assets/fonts/{roboto → Roboto}/Roboto-Bold.ttf +0 -0
  48. package/src/assets/fonts/{roboto → Roboto}/Roboto-BoldItalic.ttf +0 -0
  49. package/src/assets/fonts/{roboto → Roboto}/Roboto-Italic.ttf +0 -0
  50. package/src/assets/fonts/{roboto → Roboto}/Roboto-Light.ttf +0 -0
  51. package/src/assets/fonts/{roboto → Roboto}/Roboto-LightItalic.ttf +0 -0
  52. package/src/assets/fonts/{roboto → Roboto}/Roboto-Medium.ttf +0 -0
  53. package/src/assets/fonts/{roboto → Roboto}/Roboto-MediumItalic.ttf +0 -0
  54. package/src/assets/fonts/{roboto → Roboto}/Roboto-Regular.ttf +0 -0
  55. package/src/assets/fonts/{roboto → Roboto}/Roboto-Thin.ttf +0 -0
  56. package/src/assets/fonts/{roboto → Roboto}/Roboto-ThinItalic.ttf +0 -0
  57. package/src/components/organisms/RangeCalendar/RangeCalendar.stories.js +11 -0
  58. package/src/components/organisms/RangeCalendar/index.js +117 -0
  59. package/src/components/organisms/RangeCalendar/styles.js +883 -0
  60. package/src/global-files/fonts.css +4 -4
  61. package/src/index.js +1 -0
@@ -0,0 +1,269 @@
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.RegistrationLoginFirstStep = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
15
+
16
+ var _styles = require("./styles");
17
+
18
+ var _GradientPanel = require("../../atoms/GradientPanel");
19
+
20
+ var _CarouselImagesLogin = require("../../molecules/CarouselImagesLogin");
21
+
22
+ var _react = require("react");
23
+
24
+ var _LogoImage = require("../../atoms/LogoImage");
25
+
26
+ var _ScreenHeader = require("../../atoms/ScreenHeader");
27
+
28
+ var _variables = require("../../../global-files/variables");
29
+
30
+ var _TagAndInput = require("../../molecules/TagAndInput");
31
+
32
+ var _GeneralButton = require("../../atoms/GeneralButton");
33
+
34
+ var _GeneralInput = require("../../atoms/GeneralInput");
35
+
36
+ var _jsxRuntime = require("react/jsx-runtime");
37
+
38
+ var RegistrationLoginFirstStep = function RegistrationLoginFirstStep(_ref) {
39
+ var _ref$imageArrayCarous = _ref.imageArrayCarousel,
40
+ imageArrayCarousel = _ref$imageArrayCarous === void 0 ? [] : _ref$imageArrayCarous,
41
+ textCarousel = _ref.textCarousel,
42
+ backogroundColorCarousel = _ref.backogroundColorCarousel;
43
+
44
+ var _useState = (0, _react.useState)(false),
45
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
46
+ emptyName = _useState2[0],
47
+ setEmptyName = _useState2[1];
48
+
49
+ var _useState3 = (0, _react.useState)(false),
50
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
51
+ emptyLastName = _useState4[0],
52
+ setEmptyLastName = _useState4[1];
53
+
54
+ var _useState5 = (0, _react.useState)(false),
55
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
56
+ emptyEmail = _useState6[0],
57
+ setEmptyEmail = _useState6[1];
58
+
59
+ var _useState7 = (0, _react.useState)(false),
60
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
61
+ emptyJob = _useState8[0],
62
+ setEmptyJob = _useState8[1];
63
+
64
+ var _useState9 = (0, _react.useState)(false),
65
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
66
+ emptyPhone = _useState10[0],
67
+ setEmptyPhone = _useState10[1];
68
+
69
+ var _useState11 = (0, _react.useState)(false),
70
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
71
+ invalidEmail = _useState12[0],
72
+ setInvalidEmail = _useState12[1];
73
+
74
+ var validate = /*#__PURE__*/function () {
75
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(e) {
76
+ var name, lastName, email, job, phone;
77
+ return _regenerator.default.wrap(function _callee$(_context) {
78
+ while (1) {
79
+ switch (_context.prev = _context.next) {
80
+ case 0:
81
+ e.preventDefault();
82
+ name = document.querySelector("#nameInput").value;
83
+ lastName = document.querySelector("#lastNameInput").value;
84
+ email = document.querySelector("#emailInput").value;
85
+ job = document.querySelector("#jobInput").value;
86
+ phone = document.querySelector("#phoneInput").value;
87
+ name === "" ? setEmptyName(true) : setEmptyName(false);
88
+ lastName === "" ? setEmptyLastName(true) : setEmptyLastName(false);
89
+ email === "" ? setEmptyEmail(true) : setEmptyEmail(false);
90
+ job === "" ? setEmptyJob(true) : setEmptyJob(false);
91
+ phone === "" ? setEmptyPhone(true) : setEmptyPhone(false);
92
+ !/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(email) ? setInvalidEmail(true) : setInvalidEmail(false);
93
+
94
+ case 12:
95
+ case "end":
96
+ return _context.stop();
97
+ }
98
+ }
99
+ }, _callee);
100
+ }));
101
+
102
+ return function validate(_x) {
103
+ return _ref2.apply(this, arguments);
104
+ };
105
+ }();
106
+
107
+ var loginRight = [/*#__PURE__*/(0, _jsxRuntime.jsx)(_LogoImage.LogoImage, {}, "1"), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
108
+ className: "credenciales",
109
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
110
+ fontFamily: _variables.FontFamily.AvenirNext,
111
+ color: _variables.GlobalColors.s5,
112
+ text: "Ingresa tus credenciales"
113
+ })
114
+ }, "2"), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
115
+ className: "user",
116
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
117
+ className: "name-registration-user",
118
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TagAndInput.TagAndInput, {
119
+ inputType: "text",
120
+ inputId: "nameInput",
121
+ label: "Nombre",
122
+ inputPlaceHolder: "Nombre"
123
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TagAndInput.TagAndInput, {
124
+ inputType: "text",
125
+ inputId: "lastNameInput",
126
+ label: "Apellido",
127
+ inputPlaceHolder: "Apellido"
128
+ })]
129
+ }), emptyName && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
130
+ children: "Ingrese su nombre"
131
+ }), emptyLastName && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
132
+ children: "Ingrese sus apellidos"
133
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TagAndInput.TagAndInput, {
134
+ inputType: "text",
135
+ inputId: "emailInput",
136
+ label: "Correo electrónico",
137
+ inputPlaceHolder: "username@contentoh.com"
138
+ }), emptyEmail && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
139
+ children: "Ingrese su correo"
140
+ }), invalidEmail && !emptyEmail && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
141
+ children: "Ingrese un correo v\xE1lido"
142
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TagAndInput.TagAndInput, {
143
+ inputType: "text",
144
+ inputId: "jobInput",
145
+ label: "Puesto laboral",
146
+ inputPlaceHolder: "Puesto dentro de la empresa"
147
+ }), emptyJob && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
148
+ children: "Ingrese su puesto"
149
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
150
+ text: "Teléfono",
151
+ headerType: "input-name-header"
152
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
153
+ className: "phone-registration-user",
154
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("select", {
155
+ name: "select",
156
+ className: "phone-options",
157
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
158
+ children: "+52"
159
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
160
+ children: "+54"
161
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
162
+ children: "+57"
163
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
164
+ children: "+506"
165
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
166
+ children: "+593"
167
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
168
+ children: "+503"
169
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
170
+ children: "+504"
171
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
172
+ children: "+507"
173
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
174
+ children: "+51"
175
+ })]
176
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GeneralInput.GeneralInput, {
177
+ inputId: "phoneInput",
178
+ inputType: "text",
179
+ inputPlaceholder: "Teléfono"
180
+ })]
181
+ }), emptyPhone && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
182
+ children: "Ingrese su n\xFAmero de tel\xE9fono"
183
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
184
+ text: "País",
185
+ headerType: "input-name-header"
186
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("select", {
187
+ name: "select",
188
+ className: "country-options",
189
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
190
+ value: "value1",
191
+ selected: true,
192
+ children: "Selecciona tu pa\xEDs"
193
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
194
+ value: "value2",
195
+ children: "Argentina"
196
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
197
+ value: "value3",
198
+ children: "Colombia"
199
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
200
+ value: "value2",
201
+ children: "Ecuador"
202
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
203
+ value: "value3",
204
+ children: "El Salvador"
205
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
206
+ value: "value2",
207
+ children: "Honduras"
208
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
209
+ value: "value3",
210
+ children: "M\xE9xico"
211
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
212
+ value: "value2",
213
+ children: "Panam\xE1"
214
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
215
+ value: "value3",
216
+ children: "Per\xFA"
217
+ })]
218
+ }), emptyEmail && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
219
+ children: "Seleccione su pa\xEDs"
220
+ })]
221
+ }, "3"), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
222
+ className: "button-end",
223
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GeneralButton.Button, {
224
+ buttonType: "general-default-button",
225
+ label: "Enviar",
226
+ onClick: function onClick(e) {
227
+ return validate(e);
228
+ }
229
+ })
230
+ }, "4"), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
231
+ className: "progress-bar",
232
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
233
+ className: "progress-bar-first-step"
234
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
235
+ className: "progress-bar-registration"
236
+ })]
237
+ }, "5"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
238
+ text: "Paso 1",
239
+ headerType: "date-header",
240
+ color: _variables.GlobalColors.s4
241
+ }, "6"), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
242
+ className: "new-login",
243
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
244
+ className: "pre-registro",
245
+ children: ["\xBFYa tienes una cuenta?", /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
246
+ children: " Inicia Sesi\xF3n"
247
+ })]
248
+ })
249
+ }, "7")];
250
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styles.Container, {
251
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
252
+ className: "home-retailer",
253
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CarouselImagesLogin.CarouselImagesLogin, {
254
+ panelImg: imageArrayCarousel,
255
+ panelText: textCarousel,
256
+ panelColor: backogroundColorCarousel
257
+ })
258
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
259
+ className: "home-login-retailer",
260
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GradientPanel.GradientPanel, {
261
+ componentsArray: loginRight,
262
+ panelType: "home-login",
263
+ panelColor: _variables.GlobalColors.white
264
+ })
265
+ })]
266
+ });
267
+ };
268
+
269
+ exports.RegistrationLoginFirstStep = RegistrationLoginFirstStep;
@@ -0,0 +1,20 @@
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.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n width: 100%;\n height: 100vh;\n .user {\n .name-registration-user {\n display: flex;\n justify-content: space-between;\n input {\n width: 160px;\n }\n }\n .input-name-header {\n margin-bottom: 4px;\n margin-top: 12px;\n }\n .phone-registration-user {\n display: flex;\n justify-content: space-between;\n .phone-options {\n width: 80px;\n }\n input {\n width: 100%;\n }\n & + * {\n margin-top: 10px;\n }\n }\n .country-options,\n .phone-options {\n width: 100%;\n border: 1px solid ", ";\n font-family: ", ";\n color: ", ";\n font-weight: normal;\n font-size: 12px;\n line-height: 15px;\n padding: 10px;\n outline: none;\n border-radius: 2px;\n resize: none;\n &:focus {\n border: 1px solid ", ";\n }\n }\n }\n .button-end {\n text-align: end;\n .general-default-button {\n width: 160px;\n }\n & + * {\n margin-top: 10px;\n }\n }\n .progress-bar {\n width: 100%;\n height: 8px;\n display: flex;\n justify-content: space-between;\n .progress-bar-first-step {\n width: 33.33%;\n background-color: rgb(196, 196, 196);\n }\n .progress-bar-registration {\n background-color: rgb(226, 226, 226);\n width: 66.66%;\n }\n }\n .date-header {\n .new-login {\n & + * {\n margin-top: 20px;\n }\n }\n }\n .home-login-retailer,\n .home-retailer {\n width: 50%;\n }\n"])), _variables.GlobalColors.s2, _variables.FontFamily.AvenirNext, _variables.GlobalColors.s4, _variables.GlobalColors.magenta_s2);
19
+
20
+ exports.Container = Container;
@@ -46,25 +46,25 @@
46
46
 
47
47
  @font-face {
48
48
  font-family: "RobotoMedium";
49
- src: url("../assets/fonts/roboto/Roboto-Medium.ttf");
49
+ src: url("../assets/fonts/Roboto/Roboto-Medium.ttf");
50
50
  font-weight: 500;
51
51
  }
52
52
 
53
53
  @font-face {
54
54
  font-family: "RobotoRegular";
55
- src: url("../assets/fonts/roboto/Roboto-Regular.ttf");
55
+ src: url("../assets/fonts/Roboto/Roboto-Regular.ttf");
56
56
  font-weight: 400;
57
57
  }
58
58
 
59
59
  @font-face {
60
60
  font-family: "Roboto";
61
- src: url("../assets/fonts/roboto/Roboto-Regular.ttf");
61
+ src: url("../assets/fonts/Roboto/Roboto-Regular.ttf");
62
62
  font-weight: 400;
63
63
  }
64
64
 
65
65
  @font-face {
66
66
  font-family: "Roboto";
67
- src: url("../assets/fonts/roboto/Roboto-Regular.ttf");
67
+ src: url("../assets/fonts/Roboto/Roboto-Regular.ttf");
68
68
  font-weight: 400;
69
69
  }
70
70
 
package/dist/index.js CHANGED
@@ -966,6 +966,19 @@ Object.keys(_index73).forEach(function (key) {
966
966
  });
967
967
  });
968
968
 
969
+ var _RangeCalendar = require("./components/organisms/RangeCalendar");
970
+
971
+ Object.keys(_RangeCalendar).forEach(function (key) {
972
+ if (key === "default" || key === "__esModule") return;
973
+ if (key in exports && exports[key] === _RangeCalendar[key]) return;
974
+ Object.defineProperty(exports, key, {
975
+ enumerable: true,
976
+ get: function get() {
977
+ return _RangeCalendar[key];
978
+ }
979
+ });
980
+ });
981
+
969
982
  var _ChangePasswordLogin = require("./components/pages/ChangePasswordLogin");
970
983
 
971
984
  Object.keys(_ChangePasswordLogin).forEach(function (key) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "contentoh-components-library",
3
- "version": "21.2.106",
3
+ "version": "21.3.0",
4
4
  "dependencies": {
5
5
  "@aws-amplify/auth": "^4.5.3",
6
6
  "@aws-amplify/datastore": "^3.11.0",
File without changes
@@ -0,0 +1,11 @@
1
+ import { RangeCalendar } from ".";
2
+
3
+ export default {
4
+ title: "Components/organisms/RangeCalendar",
5
+ component: RangeCalendar,
6
+ };
7
+
8
+ const Template = (args) => <RangeCalendar {...args} />;
9
+
10
+ export const DefaultRangeCalendar = Template.bind({});
11
+ DefaultRangeCalendar.args = {};
@@ -0,0 +1,117 @@
1
+ import { Container, CalendarContainer } from "./styles";
2
+ import { useState } from "react";
3
+ import DatePicker, { registerLocale, setDefaultLocale } from "react-datepicker";
4
+ import es from "date-fns/locale/es";
5
+ import { useCloseModal } from "../../../global-files/customHooks";
6
+ registerLocale("es", es);
7
+
8
+ export const RangeCalendar = ({
9
+ setParameterArray,
10
+ minDate = new Date(),
11
+ currentDates,
12
+ label = "Elige las fechas",
13
+ calendarId = "calendar-id",
14
+ }) => {
15
+ const [startDate, setStartDate] = useState(
16
+ currentDates?.start ? currentDates.start : new Date()
17
+ );
18
+ const [endDate, setEndDate] = useState(
19
+ currentDates?.end ? currentDates.end : new Date()
20
+ );
21
+ const [showCalendar, setShowCalendar] = useCloseModal(calendarId);
22
+ const onChange = (dates) => {
23
+ const [start, end] = dates;
24
+ setStartDate(start);
25
+ setEndDate(end);
26
+ if (end) {
27
+ setParameterArray &&
28
+ setParameterArray((current) => {
29
+ return {
30
+ ...current,
31
+ estimatedStartDate: start.toISOString().substring(0, 10),
32
+ estimatedDate: end.toISOString().substring(0, 10),
33
+ };
34
+ });
35
+ }
36
+ };
37
+ return (
38
+ <Container>
39
+ <div
40
+ className="calendar-dropdown"
41
+ onClick={(e) => {
42
+ e.stopPropagation();
43
+ setShowCalendar(true);
44
+ }}
45
+ >
46
+ <p>{label}</p>
47
+ <div className="arrow-item">&#9664;</div>
48
+ </div>
49
+ {showCalendar && (
50
+ <CalendarContainer id={calendarId}>
51
+ <DatePicker
52
+ selected={startDate}
53
+ onChange={onChange}
54
+ startDate={startDate}
55
+ endDate={endDate}
56
+ renderCustomHeader={({
57
+ monthDate,
58
+ customHeaderCount,
59
+ decreaseMonth,
60
+ increaseMonth,
61
+ }) => (
62
+ <div>
63
+ <button
64
+ aria-label="Previous Month"
65
+ className={
66
+ "react-datepicker__navigation react-datepicker__navigation--previous"
67
+ }
68
+ style={
69
+ customHeaderCount === 1 ? { visibility: "hidden" } : null
70
+ }
71
+ onClick={decreaseMonth}
72
+ >
73
+ <span
74
+ className={
75
+ "react-datepicker__navigation-icon react-datepicker__navigation-icon--previous"
76
+ }
77
+ >
78
+ {"<"}
79
+ </span>
80
+ </button>
81
+ <span className="react-datepicker__current-month">
82
+ {monthDate.toLocaleString("es-Es", {
83
+ month: "long",
84
+ year: "numeric",
85
+ })}
86
+ </span>
87
+ <button
88
+ aria-label="Next Month"
89
+ className={
90
+ "react-datepicker__navigation react-datepicker__navigation--next"
91
+ }
92
+ style={
93
+ customHeaderCount === 0 ? { visibility: "hidden" } : null
94
+ }
95
+ onClick={increaseMonth}
96
+ >
97
+ <span
98
+ className={
99
+ "react-datepicker__navigation-icon react-datepicker__navigation-icon--next"
100
+ }
101
+ >
102
+ {">"}
103
+ </span>
104
+ </button>
105
+ </div>
106
+ )}
107
+ monthsShown={2}
108
+ selectsRange
109
+ inline
110
+ minDate={minDate}
111
+ locale="es"
112
+ />
113
+ </CalendarContainer>
114
+ )}
115
+ </Container>
116
+ );
117
+ };