@dxc-technology/halstack-react 0.0.0-c4ba791 → 0.0.0-c7ec4d1

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 (197) hide show
  1. package/README.md +1 -1
  2. package/babel.config.js +6 -2
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +218 -22
  5. package/dist/V3Select/V3Select.js +549 -0
  6. package/dist/V3Textarea/V3Textarea.js +264 -0
  7. package/dist/accordion/Accordion.js +134 -54
  8. package/dist/accordion-group/AccordionGroup.js +36 -9
  9. package/dist/alert/Alert.js +183 -84
  10. package/dist/alert/index.d.ts +51 -0
  11. package/dist/badge/Badge.js +23 -18
  12. package/dist/box/Box.js +31 -23
  13. package/dist/button/Button.js +63 -27
  14. package/dist/card/Card.js +72 -35
  15. package/dist/checkbox/Checkbox.js +98 -39
  16. package/dist/chip/Chip.js +97 -40
  17. package/dist/common/utils.js +2 -22
  18. package/dist/common/variables.js +1428 -282
  19. package/dist/date/Date.js +74 -52
  20. package/dist/date-input/DateInput.js +400 -0
  21. package/dist/date-input/index.d.ts +95 -0
  22. package/dist/dialog/Dialog.js +58 -37
  23. package/dist/dropdown/Dropdown.js +176 -81
  24. package/dist/file-input/FileInput.js +644 -0
  25. package/dist/file-input/FileItem.js +287 -0
  26. package/dist/file-input/index.d.ts +81 -0
  27. package/dist/footer/Footer.js +90 -40
  28. package/dist/footer/Icons.js +77 -0
  29. package/dist/header/Header.js +192 -95
  30. package/dist/header/Icons.js +59 -0
  31. package/dist/heading/Heading.js +93 -16
  32. package/dist/input-text/Icons.js +22 -0
  33. package/dist/input-text/InputText.js +251 -116
  34. package/dist/layout/ApplicationLayout.js +18 -26
  35. package/dist/layout/Icons.js +55 -0
  36. package/dist/link/Link.js +86 -41
  37. package/dist/main.d.ts +8 -0
  38. package/dist/main.js +74 -18
  39. package/dist/number-input/NumberInput.js +136 -0
  40. package/dist/number-input/NumberInputContext.js +16 -0
  41. package/dist/number-input/index.d.ts +113 -0
  42. package/dist/paginator/Icons.js +66 -0
  43. package/dist/paginator/Paginator.js +116 -65
  44. package/dist/password-input/PasswordInput.js +203 -0
  45. package/dist/password-input/index.d.ts +94 -0
  46. package/dist/progress-bar/ProgressBar.js +95 -38
  47. package/dist/radio/Radio.js +31 -17
  48. package/dist/resultsetTable/ResultsetTable.js +82 -65
  49. package/dist/select/Select.js +896 -284
  50. package/dist/select/index.d.ts +53 -0
  51. package/dist/sidenav/Sidenav.js +66 -15
  52. package/dist/slider/Slider.js +211 -73
  53. package/dist/spinner/Spinner.js +247 -59
  54. package/dist/switch/Switch.js +50 -27
  55. package/dist/table/Table.js +51 -24
  56. package/dist/tabs/Tabs.js +88 -37
  57. package/dist/tag/Tag.js +68 -35
  58. package/dist/text-input/TextInput.js +974 -0
  59. package/dist/text-input/index.d.ts +135 -0
  60. package/dist/textarea/Textarea.js +248 -106
  61. package/dist/textarea/index.d.ts +117 -0
  62. package/dist/toggle/Toggle.js +16 -19
  63. package/dist/toggle-group/ToggleGroup.js +142 -41
  64. package/dist/upload/Upload.js +16 -11
  65. package/dist/upload/buttons-upload/ButtonsUpload.js +32 -19
  66. package/dist/upload/buttons-upload/Icons.js +40 -0
  67. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -34
  68. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  69. package/dist/upload/file-upload/FileToUpload.js +64 -33
  70. package/dist/upload/file-upload/Icons.js +66 -0
  71. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  72. package/dist/upload/transaction/Icons.js +160 -0
  73. package/dist/upload/transaction/Transaction.js +42 -49
  74. package/dist/upload/transactions/Transactions.js +38 -20
  75. package/dist/wizard/Icons.js +65 -0
  76. package/dist/wizard/Wizard.js +126 -52
  77. package/package.json +10 -9
  78. package/test/AccordionGroup.test.js +16 -0
  79. package/test/Date.test.js +49 -45
  80. package/test/DateInput.test.js +242 -0
  81. package/test/Dropdown.test.js +15 -0
  82. package/test/FileInput.test.js +201 -0
  83. package/test/Footer.test.js +2 -7
  84. package/test/Header.test.js +5 -10
  85. package/test/Heading.test.js +60 -12
  86. package/test/InputText.test.js +25 -17
  87. package/test/Link.test.js +3 -2
  88. package/test/NumberInput.test.js +259 -0
  89. package/test/Paginator.test.js +40 -57
  90. package/test/PasswordInput.test.js +83 -0
  91. package/test/ResultsetTable.test.js +33 -8
  92. package/test/Slider.test.js +9 -17
  93. package/test/Spinner.test.js +5 -0
  94. package/test/TextInput.test.js +732 -0
  95. package/test/Textarea.test.js +193 -0
  96. package/test/ToggleGroup.test.js +5 -1
  97. package/test/Upload.test.js +5 -5
  98. package/test/{Select.test.js → V3Select.test.js} +56 -36
  99. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  100. package/dist/accordion/Accordion.stories.js +0 -207
  101. package/dist/accordion/readme.md +0 -96
  102. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  103. package/dist/accordion-group/readme.md +0 -70
  104. package/dist/alert/Alert.stories.js +0 -158
  105. package/dist/alert/close.svg +0 -4
  106. package/dist/alert/error.svg +0 -4
  107. package/dist/alert/info.svg +0 -4
  108. package/dist/alert/readme.md +0 -43
  109. package/dist/alert/success.svg +0 -4
  110. package/dist/alert/warning.svg +0 -4
  111. package/dist/button/Button.stories.js +0 -224
  112. package/dist/button/readme.md +0 -93
  113. package/dist/checkbox/Checkbox.stories.js +0 -144
  114. package/dist/checkbox/readme.md +0 -116
  115. package/dist/common/services/example-service.js +0 -10
  116. package/dist/common/services/example-service.test.js +0 -12
  117. package/dist/date/Date.stories.js +0 -205
  118. package/dist/date/calendar.svg +0 -1
  119. package/dist/date/calendar_dark.svg +0 -1
  120. package/dist/date/readme.md +0 -73
  121. package/dist/dialog/Dialog.stories.js +0 -217
  122. package/dist/dialog/readme.md +0 -32
  123. package/dist/dropdown/Dropdown.stories.js +0 -249
  124. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  125. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  126. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  127. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  128. package/dist/dropdown/readme.md +0 -69
  129. package/dist/footer/Footer.stories.js +0 -94
  130. package/dist/footer/dxc_logo_wht.png +0 -0
  131. package/dist/footer/readme.md +0 -41
  132. package/dist/header/Header.stories.js +0 -176
  133. package/dist/header/close_icon.svg +0 -1
  134. package/dist/header/dxc_logo_black.png +0 -0
  135. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  136. package/dist/header/dxc_logo_white.png +0 -0
  137. package/dist/header/hamb_menu_black.svg +0 -1
  138. package/dist/header/hamb_menu_white.svg +0 -1
  139. package/dist/header/readme.md +0 -33
  140. package/dist/input-text/InputText.stories.js +0 -209
  141. package/dist/input-text/error.svg +0 -1
  142. package/dist/input-text/readme.md +0 -91
  143. package/dist/layout/facebook.svg +0 -45
  144. package/dist/layout/linkedin.svg +0 -50
  145. package/dist/layout/twitter.svg +0 -53
  146. package/dist/link/readme.md +0 -51
  147. package/dist/paginator/images/next.svg +0 -3
  148. package/dist/paginator/images/nextPage.svg +0 -3
  149. package/dist/paginator/images/previous.svg +0 -3
  150. package/dist/paginator/images/previousPage.svg +0 -3
  151. package/dist/paginator/readme.md +0 -50
  152. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  153. package/dist/progress-bar/readme.md +0 -63
  154. package/dist/radio/Radio.stories.js +0 -166
  155. package/dist/radio/readme.md +0 -70
  156. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  157. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  158. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  159. package/dist/select/Select.stories.js +0 -235
  160. package/dist/select/readme.md +0 -72
  161. package/dist/slider/Slider.stories.js +0 -241
  162. package/dist/slider/readme.md +0 -64
  163. package/dist/spinner/Spinner.stories.js +0 -183
  164. package/dist/spinner/readme.md +0 -65
  165. package/dist/switch/Switch.stories.js +0 -134
  166. package/dist/switch/readme.md +0 -133
  167. package/dist/tabs/Tabs.stories.js +0 -130
  168. package/dist/tabs/readme.md +0 -78
  169. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  170. package/dist/tabs-for-sections/readme.md +0 -78
  171. package/dist/toggle/Toggle.stories.js +0 -297
  172. package/dist/toggle/readme.md +0 -80
  173. package/dist/toggle-group/readme.md +0 -82
  174. package/dist/upload/Upload.stories.js +0 -72
  175. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  176. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  177. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  178. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  179. package/dist/upload/file-upload/audio-icon.svg +0 -4
  180. package/dist/upload/file-upload/close.svg +0 -4
  181. package/dist/upload/file-upload/file-icon.svg +0 -4
  182. package/dist/upload/file-upload/video-icon.svg +0 -4
  183. package/dist/upload/readme.md +0 -37
  184. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  185. package/dist/upload/transaction/audio-icon.svg +0 -4
  186. package/dist/upload/transaction/error-icon.svg +0 -4
  187. package/dist/upload/transaction/file-icon-err.svg +0 -4
  188. package/dist/upload/transaction/file-icon.svg +0 -4
  189. package/dist/upload/transaction/image-icon-err.svg +0 -4
  190. package/dist/upload/transaction/image-icon.svg +0 -4
  191. package/dist/upload/transaction/success-icon.svg +0 -4
  192. package/dist/upload/transaction/video-icon-err.svg +0 -4
  193. package/dist/upload/transaction/video-icon.svg +0 -4
  194. package/dist/wizard/invalid_icon.svg +0 -6
  195. package/dist/wizard/valid_icon.svg +0 -6
  196. package/dist/wizard/validation-wrong.svg +0 -6
  197. package/test/TabsForSections.test.js +0 -34
package/dist/date/Date.js CHANGED
@@ -37,20 +37,14 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
37
37
 
38
38
  var _InputText = _interopRequireDefault(require("../input-text/InputText"));
39
39
 
40
- require("../common/OpenSans.css");
41
-
42
40
  var _variables = require("../common/variables.js");
43
41
 
44
- var _utils = require("../common/utils.js");
45
-
46
- var _calendar = _interopRequireDefault(require("./calendar.svg"));
42
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
47
43
 
48
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
49
-
50
- var _DxcDate$propTypes;
44
+ var _V3DxcDate$propTypes;
51
45
 
52
46
  function _templateObject() {
53
- var data = (0, _taggedTemplateLiteral2["default"])(["\n background-color: \"#FABADA\";\n"]);
47
+ var data = (0, _taggedTemplateLiteral2["default"])([""]);
54
48
 
55
49
  _templateObject = function _templateObject() {
56
50
  return data;
@@ -59,7 +53,7 @@ function _templateObject() {
59
53
  return data;
60
54
  }
61
55
 
62
- var DxcDate = function DxcDate(_ref) {
56
+ var V3DxcDate = function V3DxcDate(_ref) {
63
57
  var value = _ref.value,
64
58
  _ref$format = _ref.format,
65
59
  format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
@@ -81,7 +75,9 @@ var DxcDate = function DxcDate(_ref) {
81
75
  onBlur = _ref$onBlur === void 0 ? "" : _ref$onBlur,
82
76
  margin = _ref.margin,
83
77
  _ref$size = _ref.size,
84
- size = _ref$size === void 0 ? "medium" : _ref$size;
78
+ size = _ref$size === void 0 ? "medium" : _ref$size,
79
+ _ref$tabIndex = _ref.tabIndex,
80
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
85
81
 
86
82
  var _useState = (0, _react.useState)(""),
87
83
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -98,25 +94,16 @@ var DxcDate = function DxcDate(_ref) {
98
94
  anchorEl = _useState6[0],
99
95
  setAnchorEl = _useState6[1];
100
96
 
101
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
102
- var colorsTheme = (0, _react.useMemo)(function () {
103
- return (0, _utils.getCustomTheme)(_variables.componentTokens, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
104
- }, [customTheme]);
97
+ var colorsTheme = (0, _useTheme["default"])();
105
98
 
106
- function handleMenuItemClick(date) {
99
+ var handleMenuItemClick = function handleMenuItemClick(date) {
107
100
  var stringValue = (0, _moment["default"])(date).format(format.toUpperCase());
108
-
109
- if (value == null) {
110
- setInnerValue(stringValue);
111
- }
112
-
113
- if (typeof onChange === "function") {
114
- onChange({
115
- stringValue: stringValue,
116
- dateValue: date && date.toJSON() ? date : null
117
- });
118
- }
119
- }
101
+ if (value == null) setInnerValue(stringValue);
102
+ if (typeof onChange === "function") onChange({
103
+ stringValue: stringValue,
104
+ dateValue: date && date.toJSON() ? date : null
105
+ });
106
+ };
120
107
 
121
108
  var onChangeInput = function onChangeInput(string) {
122
109
  var momentDate = (0, _moment["default"])(string, format.toUpperCase(), true);
@@ -135,10 +122,7 @@ var DxcDate = function DxcDate(_ref) {
135
122
 
136
123
  var handlerInputBlur = function handlerInputBlur(inputString) {
137
124
  setInnerValue(inputString);
138
-
139
- if (onBlur) {
140
- onBlur(inputString);
141
- }
125
+ if (onBlur) onBlur(inputString);
142
126
  };
143
127
 
144
128
  var getValueForPicker = function getValueForPicker() {
@@ -157,19 +141,41 @@ var DxcDate = function DxcDate(_ref) {
157
141
  handlerInputBlur(value == null ? innerValue : value);
158
142
  };
159
143
 
144
+ var calendarSVG = function calendarSVG() {
145
+ return _react["default"].createElement("svg", {
146
+ xmlns: "http://www.w3.org/2000/svg",
147
+ height: "24",
148
+ viewBox: "0 0 24 24",
149
+ width: "24",
150
+ fill: "currentColor"
151
+ }, _react["default"].createElement("path", {
152
+ "data-testid": "calendarIcon",
153
+ d: "M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"
154
+ }), _react["default"].createElement("path", {
155
+ d: "M0 0h24v24H0z",
156
+ fill: "none"
157
+ }));
158
+ };
159
+
160
160
  var dateTheme = (0, _core.createMuiTheme)({
161
161
  overrides: {
162
+ MuiTypography: {
163
+ root: {
164
+ fontFamily: "".concat(colorsTheme.date.fontFamily, " !important")
165
+ }
166
+ },
162
167
  MuiPickersYearSelection: {
163
168
  container: {
169
+ color: colorsTheme.date.pickerYearColor,
164
170
  "&::-webkit-scrollbar": {
165
171
  width: "3px"
166
172
  },
167
173
  "&::-webkit-scrollbar-track": {
168
- backgroundColor: colorsTheme.date.scrollBarTrackColor,
174
+ backgroundColor: "#D9D9D9",
169
175
  borderRadius: "3px"
170
176
  },
171
177
  "&::-webkit-scrollbar-thumb": {
172
- backgroundColor: colorsTheme.date.scrollBarThumbColor,
178
+ backgroundColor: "#666666",
173
179
  borderRadius: "3px"
174
180
  }
175
181
  }
@@ -195,7 +201,7 @@ var DxcDate = function DxcDate(_ref) {
195
201
  MuiButtonBase: {
196
202
  root: {
197
203
  "&:focus": {
198
- outline: colorsTheme.date.focusColor + " 2px solid"
204
+ outline: colorsTheme.date.focusColor + " solid 2px"
199
205
  }
200
206
  }
201
207
  },
@@ -205,21 +211,39 @@ var DxcDate = function DxcDate(_ref) {
205
211
  maxWidth: "unset",
206
212
  minHeight: "unset",
207
213
  padding: "0px 10px",
208
- height: "316px"
214
+ height: colorsTheme.date.pickerHeight,
215
+ width: colorsTheme.date.pickerWidth,
216
+ backgroundColor: colorsTheme.date.pickerBackgroundColor,
217
+ fontFamily: colorsTheme.date.fontFamily
209
218
  }
210
219
  },
211
220
  MuiPickersToolbarText: {
212
221
  toolbarTxt: {
213
- color: colorsTheme.date.pickerFontColor
222
+ color: colorsTheme.date.pickerActualDateColor,
223
+ fontFamily: colorsTheme.date.fontFamily,
224
+ fontSize: "2rem"
214
225
  },
215
226
  toolbarBtnSelected: {
216
- color: colorsTheme.date.pickerFontColor
227
+ color: colorsTheme.date.pickerActualDateColor
217
228
  }
218
229
  },
219
230
  MuiPickersCalendarHeader: {
231
+ transitionContainer: {
232
+ color: colorsTheme.date.pickerMonthColor
233
+ },
234
+ dayLabel: {
235
+ color: colorsTheme.date.pickerWeekLabelColor,
236
+ fontFamily: colorsTheme.date.fontFamily
237
+ },
220
238
  switchHeader: {
221
239
  backgroundColor: colorsTheme.white,
222
240
  color: colorsTheme.date.pickerFontColor
241
+ },
242
+ iconButton: {
243
+ backgroundColor: colorsTheme.date.pickerBackgroundColorMonthArrows,
244
+ "&:hover": {
245
+ backgroundColor: colorsTheme.date.pickerBackgroundColorMonthArrows
246
+ }
223
247
  }
224
248
  },
225
249
  MuiPickersCalendar: {
@@ -229,13 +253,14 @@ var DxcDate = function DxcDate(_ref) {
229
253
  },
230
254
  MuiPickersDay: {
231
255
  current: {
232
- border: colorsTheme.date.pickerActualDate + " 2px solid",
256
+ border: colorsTheme.date.pickerActualDateColor + " 2px solid",
233
257
  color: colorsTheme.date.pickerFontColor
234
258
  },
235
259
  day: {
260
+ fontFamily: colorsTheme.date.fontFamily,
236
261
  color: colorsTheme.date.pickerFontColor,
237
262
  "&:hover": {
238
- backgroundColor: colorsTheme.date.pickerSelectedDateBackgroundColor + colorsTheme.date.pickerHoverDateBackgroundColor,
263
+ backgroundColor: colorsTheme.date.pickerHoverDateBackgroundColor,
239
264
  color: colorsTheme.date.pickerHoverDateFontColor
240
265
  }
241
266
  },
@@ -254,13 +279,12 @@ var DxcDate = function DxcDate(_ref) {
254
279
  color: colorsTheme.date.pickerSelectedDateColor,
255
280
  backgroundColor: colorsTheme.date.pickerSelectedDateBackgroundColor,
256
281
  margin: "0px 100px",
257
- borderRadius: "20px",
258
- fontSize: "16px"
282
+ borderRadius: "20px"
259
283
  },
260
284
  root: {
261
285
  "&:focus": {
262
286
  color: colorsTheme.date.pickerHoverDateFontColor,
263
- backgroundColor: colorsTheme.date.pickerSelectedDateBackgroundColor + colorsTheme.date.pickerHoverDateBackgroundColor
287
+ backgroundColor: colorsTheme.date.pickerHoverDateBackgroundColor
264
288
  }
265
289
  }
266
290
  },
@@ -269,9 +293,6 @@ var DxcDate = function DxcDate(_ref) {
269
293
  color: "pink"
270
294
  }
271
295
  }
272
- },
273
- typography: {
274
- fontFamily: '"Open Sans", sans-serif'
275
296
  }
276
297
  });
277
298
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
@@ -285,7 +306,7 @@ var DxcDate = function DxcDate(_ref) {
285
306
  }, _react["default"].createElement(_InputText["default"], {
286
307
  label: label,
287
308
  name: name,
288
- suffixIconSrc: _calendar["default"],
309
+ suffixIcon: calendarSVG,
289
310
  required: required,
290
311
  invalid: invalid,
291
312
  disabled: disabled,
@@ -296,7 +317,8 @@ var DxcDate = function DxcDate(_ref) {
296
317
  value: value == null ? innerValue : value,
297
318
  onClickSuffix: openCalendar,
298
319
  onChange: onChangeInput,
299
- onBlur: onBlur && handlerInputBlur || null
320
+ onBlur: onBlur && handlerInputBlur || null,
321
+ tabIndex: tabIndex
300
322
  }), _react["default"].createElement(_Popover["default"], {
301
323
  open: isOpen,
302
324
  anchorEl: anchorEl,
@@ -334,7 +356,7 @@ var sizes = {
334
356
 
335
357
  var StyledDPicker = _styledComponents["default"].div(_templateObject());
336
358
 
337
- DxcDate.propTypes = (_DxcDate$propTypes = {
359
+ V3DxcDate.propTypes = (_V3DxcDate$propTypes = {
338
360
  value: _propTypes["default"].string,
339
361
  format: _propTypes["default"].string,
340
362
  label: _propTypes["default"].string,
@@ -347,11 +369,11 @@ DxcDate.propTypes = (_DxcDate$propTypes = {
347
369
  invalid: _propTypes["default"].bool,
348
370
  onChange: _propTypes["default"].func,
349
371
  onBlur: _propTypes["default"].func
350
- }, (0, _defineProperty2["default"])(_DxcDate$propTypes, "onChange", _propTypes["default"].func), (0, _defineProperty2["default"])(_DxcDate$propTypes, "size", _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes)))), (0, _defineProperty2["default"])(_DxcDate$propTypes, "margin", _propTypes["default"].oneOfType([_propTypes["default"].shape({
372
+ }, (0, _defineProperty2["default"])(_V3DxcDate$propTypes, "onChange", _propTypes["default"].func), (0, _defineProperty2["default"])(_V3DxcDate$propTypes, "size", _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes)))), (0, _defineProperty2["default"])(_V3DxcDate$propTypes, "margin", _propTypes["default"].oneOfType([_propTypes["default"].shape({
351
373
  top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
352
374
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
353
375
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
354
376
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
355
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])), _DxcDate$propTypes);
356
- var _default = DxcDate;
377
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])), (0, _defineProperty2["default"])(_V3DxcDate$propTypes, "tabIndex", _propTypes["default"].number), _V3DxcDate$propTypes);
378
+ var _default = V3DxcDate;
357
379
  exports["default"] = _default;
@@ -0,0 +1,400 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _pickers = require("@material-ui/pickers");
21
+
22
+ var _core = require("@material-ui/core");
23
+
24
+ var _ClickAwayListener = _interopRequireDefault(require("@material-ui/core/ClickAwayListener"));
25
+
26
+ var _Popover = _interopRequireDefault(require("@material-ui/core/Popover"));
27
+
28
+ var _moment = _interopRequireDefault(require("moment"));
29
+
30
+ var _dateFns = _interopRequireDefault(require("@date-io/date-fns"));
31
+
32
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
33
+
34
+ var _propTypes = _interopRequireDefault(require("prop-types"));
35
+
36
+ var _variables = require("../common/variables.js");
37
+
38
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
39
+
40
+ var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
41
+
42
+ function _templateObject() {
43
+ var data = (0, _taggedTemplateLiteral2["default"])([""]);
44
+
45
+ _templateObject = function _templateObject() {
46
+ return data;
47
+ };
48
+
49
+ return data;
50
+ }
51
+
52
+ var DxcDateInput = _react["default"].forwardRef(function (_ref, ref) {
53
+ var _ref$label = _ref.label,
54
+ label = _ref$label === void 0 ? "" : _ref$label,
55
+ _ref$name = _ref.name,
56
+ name = _ref$name === void 0 ? "" : _ref$name,
57
+ value = _ref.value,
58
+ _ref$format = _ref.format,
59
+ format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
60
+ _ref$helperText = _ref.helperText,
61
+ helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
62
+ _ref$placeholder = _ref.placeholder,
63
+ placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
64
+ _ref$clearable = _ref.clearable,
65
+ clearable = _ref$clearable === void 0 ? false : _ref$clearable,
66
+ _ref$disabled = _ref.disabled,
67
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
68
+ _ref$optional = _ref.optional,
69
+ optional = _ref$optional === void 0 ? false : _ref$optional,
70
+ onChange = _ref.onChange,
71
+ onBlur = _ref.onBlur,
72
+ _ref$error = _ref.error,
73
+ error = _ref$error === void 0 ? "" : _ref$error,
74
+ _ref$autocomplete = _ref.autocomplete,
75
+ autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
76
+ margin = _ref.margin,
77
+ _ref$size = _ref.size,
78
+ size = _ref$size === void 0 ? "medium" : _ref$size,
79
+ _ref$tabIndex = _ref.tabIndex,
80
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
81
+
82
+ var _useState = (0, _react.useState)(""),
83
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
84
+ innerValue = _useState2[0],
85
+ setInnerValue = _useState2[1];
86
+
87
+ var _useState3 = (0, _react.useState)(false),
88
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
89
+ isOpen = _useState4[0],
90
+ setIsOpen = _useState4[1];
91
+
92
+ var _useState5 = (0, _react.useState)(null),
93
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
94
+ anchorEl = _useState6[0],
95
+ setAnchorEl = _useState6[1];
96
+
97
+ var colorsTheme = (0, _useTheme["default"])();
98
+
99
+ var handleCalendarOnKeyDown = function handleCalendarOnKeyDown(event) {
100
+ switch (event.keyCode) {
101
+ case 27:
102
+ // Esc
103
+ event.preventDefault();
104
+ setIsOpen(false);
105
+ break;
106
+ }
107
+ };
108
+
109
+ var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
110
+ var newValue = (0, _moment["default"])(newDate).format(format.toUpperCase());
111
+ value !== null && value !== void 0 ? value : setInnerValue(newValue);
112
+ onChange === null || onChange === void 0 ? void 0 : onChange({
113
+ value: newValue,
114
+ error: null,
115
+ date: newDate && newDate.toJSON() ? newDate : null
116
+ });
117
+ };
118
+
119
+ var handleIOnChange = function handleIOnChange(_ref2) {
120
+ var newValue = _ref2.value,
121
+ inputError = _ref2.error;
122
+ value !== null && value !== void 0 ? value : setInnerValue(newValue);
123
+ var momentDate = (0, _moment["default"])(newValue, format.toUpperCase(), true);
124
+ var invalidDateMessage = newValue !== "" && !momentDate.isValid() ? "Invalid date." : null;
125
+ onChange === null || onChange === void 0 ? void 0 : onChange({
126
+ value: newValue,
127
+ error: inputError || invalidDateMessage,
128
+ date: momentDate.isValid() ? momentDate._d : null
129
+ });
130
+ };
131
+
132
+ var handleIOnBlur = function handleIOnBlur(_ref3) {
133
+ var value = _ref3.value,
134
+ inputError = _ref3.error;
135
+ var momentDate = (0, _moment["default"])(value, format.toUpperCase(), true);
136
+ var invalidDateMessage = value !== "" && !momentDate.isValid() ? "Invalid date." : null;
137
+ onBlur === null || onBlur === void 0 ? void 0 : onBlur({
138
+ value: value,
139
+ error: inputError || invalidDateMessage,
140
+ date: momentDate.isValid() ? momentDate._d : null
141
+ });
142
+ };
143
+
144
+ var getValueForPicker = function getValueForPicker() {
145
+ return (0, _moment["default"])(value !== null && value !== void 0 ? value : innerValue, format.toUpperCase(), true).format();
146
+ };
147
+
148
+ var openCalendar = function openCalendar(event) {
149
+ if (event) {
150
+ setIsOpen(!isOpen);
151
+ setAnchorEl(event.currentTarget);
152
+ }
153
+ };
154
+
155
+ var closeCalendar = function closeCalendar() {
156
+ setIsOpen(false);
157
+ };
158
+
159
+ var calendarAction = {
160
+ onClick: openCalendar,
161
+ icon: _react["default"].createElement("svg", {
162
+ xmlns: "http://www.w3.org/2000/svg",
163
+ height: "24",
164
+ viewBox: "0 0 24 24",
165
+ width: "24",
166
+ fill: "currentColor"
167
+ }, _react["default"].createElement("path", {
168
+ d: "M0 0h24v24H0z",
169
+ fill: "none"
170
+ }), _react["default"].createElement("path", {
171
+ d: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"
172
+ }))
173
+ };
174
+ var dateTheme = (0, _core.createMuiTheme)({
175
+ overrides: {
176
+ MuiTypography: {
177
+ root: {
178
+ fontFamily: "".concat(colorsTheme.dateInput.pickerFontFamily, " !important")
179
+ }
180
+ },
181
+ MuiPickersYearSelection: {
182
+ container: {
183
+ color: colorsTheme.dateInput.pickerYearFontColor,
184
+ "&::-webkit-scrollbar": {
185
+ width: "3px"
186
+ },
187
+ "&::-webkit-scrollbar-track": {
188
+ backgroundColor: "#D9D9D9",
189
+ borderRadius: "3px"
190
+ },
191
+ "&::-webkit-scrollbar-thumb": {
192
+ backgroundColor: "#666666",
193
+ borderRadius: "3px"
194
+ }
195
+ }
196
+ },
197
+ MuiPickersToolbar: {
198
+ toolbar: {
199
+ backgroundColor: colorsTheme.dateInput.pickerBackgroundColor,
200
+ color: colorsTheme.dateInput.pickerDayFontColor
201
+ }
202
+ },
203
+ MuiIconButton: {
204
+ root: {
205
+ height: "36px",
206
+ width: "36px",
207
+ padding: "0px"
208
+ }
209
+ },
210
+ MuiTouchRipple: {
211
+ child: {
212
+ opacity: "0"
213
+ }
214
+ },
215
+ MuiButtonBase: {
216
+ root: {
217
+ "&:focus": {
218
+ outline: colorsTheme.dateInput.pickerFocusColor + " solid 2px"
219
+ }
220
+ }
221
+ },
222
+ MuiPickersBasePicker: {
223
+ pickerView: {
224
+ minWidth: "unset",
225
+ maxWidth: "unset",
226
+ minHeight: "unset",
227
+ padding: "0px 10px",
228
+ height: colorsTheme.dateInput.pickerHeight,
229
+ width: colorsTheme.dateInput.pickerWidth,
230
+ backgroundColor: colorsTheme.dateInput.pickerBackgroundColor,
231
+ fontFamily: colorsTheme.dateInput.pickerFontFamily
232
+ }
233
+ },
234
+ MuiPickersToolbarText: {
235
+ toolbarTxt: {
236
+ color: colorsTheme.dateInput.pickerActualDateFontColor,
237
+ fontFamily: colorsTheme.dateInput.pickerFontFamily,
238
+ fontSize: "2rem"
239
+ },
240
+ toolbarBtnSelected: {
241
+ color: colorsTheme.dateInput.pickerActualDateFontColor
242
+ }
243
+ },
244
+ MuiPickersCalendarHeader: {
245
+ transitionContainer: {
246
+ color: colorsTheme.dateInput.pickerMonthFontColor
247
+ },
248
+ dayLabel: {
249
+ color: colorsTheme.dateInput.pickerWeekFontColor,
250
+ fontFamily: colorsTheme.dateInput.pickerFontFamily
251
+ },
252
+ switchHeader: {
253
+ backgroundColor: "#ffffff",
254
+ color: colorsTheme.dateInput.pickerDayFontColor
255
+ },
256
+ iconButton: {
257
+ backgroundColor: colorsTheme.dateInput.pickerMonthArrowsBackgroundColor,
258
+ "&:hover": {
259
+ backgroundColor: colorsTheme.dateInput.pickerMonthArrowsBackgroundColor
260
+ }
261
+ }
262
+ },
263
+ MuiPickersCalendar: {
264
+ week: {
265
+ marginBottom: "2px"
266
+ }
267
+ },
268
+ MuiPickersDay: {
269
+ current: {
270
+ color: colorsTheme.dateInput.pickerDayFontColor
271
+ },
272
+ day: {
273
+ fontFamily: colorsTheme.dateInput.pickerFontFamily,
274
+ color: colorsTheme.dateInput.pickerDayFontColor,
275
+ "&:hover": {
276
+ backgroundColor: colorsTheme.dateInput.pickerHoverDateBackgroundColor,
277
+ color: colorsTheme.dateInput.pickerHoverDateFontColor
278
+ }
279
+ },
280
+ daySelected: {
281
+ backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
282
+ color: colorsTheme.dateInput.pickerSelectedDateColor,
283
+ "&:hover": {
284
+ backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
285
+ color: colorsTheme.dateInput.pickerSelectedDateColor,
286
+ opacity: "1"
287
+ }
288
+ }
289
+ },
290
+ MuiPickersYear: {
291
+ yearSelected: {
292
+ color: colorsTheme.dateInput.pickerSelectedDateColor,
293
+ backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
294
+ margin: "0px 100px",
295
+ borderRadius: "20px"
296
+ },
297
+ root: {
298
+ "&:focus": {
299
+ color: colorsTheme.dateInput.pickerHoverDateFontColor,
300
+ backgroundColor: colorsTheme.dateInput.pickerHoverDateBackgroundColor
301
+ }
302
+ }
303
+ },
304
+ MuiPickersModal: {
305
+ dialogAction: {
306
+ color: "pink"
307
+ }
308
+ }
309
+ }
310
+ });
311
+ return _react["default"].createElement(_styledComponents.ThemeProvider, {
312
+ theme: colorsTheme
313
+ }, _react["default"].createElement(_core.MuiThemeProvider, {
314
+ theme: dateTheme
315
+ }, _react["default"].createElement(_pickers.MuiPickersUtilsProvider, {
316
+ utils: _dateFns["default"]
317
+ }, _react["default"].createElement(StyledDPicker, null, _react["default"].createElement(_TextInput["default"], {
318
+ label: label,
319
+ name: name,
320
+ value: value !== null && value !== void 0 ? value : innerValue,
321
+ helperText: helperText,
322
+ placeholder: placeholder ? format.toUpperCase() : null,
323
+ action: calendarAction,
324
+ clearable: clearable,
325
+ disabled: disabled,
326
+ optional: optional,
327
+ onChange: handleIOnChange,
328
+ onBlur: handleIOnBlur,
329
+ error: error,
330
+ autocomplete: autocomplete,
331
+ margin: margin,
332
+ size: size,
333
+ tabIndex: tabIndex,
334
+ ref: ref
335
+ }), _react["default"].createElement(_Popover["default"], {
336
+ onKeyDown: handleCalendarOnKeyDown,
337
+ open: isOpen,
338
+ anchorEl: anchorEl,
339
+ anchorOrigin: {
340
+ vertical: "bottom",
341
+ horizontal: "left"
342
+ },
343
+ transformOrigin: {
344
+ vertical: "top",
345
+ horizontal: "center"
346
+ },
347
+ PaperProps: {
348
+ style: {
349
+ marginTop: "10px"
350
+ }
351
+ }
352
+ }, _react["default"].createElement(_ClickAwayListener["default"], {
353
+ onClickAway: closeCalendar
354
+ }, _react["default"].createElement(_core.Paper, {
355
+ role: "dialog",
356
+ "aria-modal": "true"
357
+ }, _react["default"].createElement(_pickers.DatePicker, {
358
+ variant: "static",
359
+ value: getValueForPicker(),
360
+ onChange: function onChange(date) {
361
+ return handleCalendarOnClick(date);
362
+ },
363
+ format: format,
364
+ disabled: disabled
365
+ }))))))));
366
+ });
367
+
368
+ var sizes = {
369
+ medium: "360px",
370
+ large: "480px",
371
+ fillParent: "100%"
372
+ };
373
+
374
+ var StyledDPicker = _styledComponents["default"].div(_templateObject());
375
+
376
+ DxcDateInput.propTypes = {
377
+ label: _propTypes["default"].string,
378
+ name: _propTypes["default"].string,
379
+ value: _propTypes["default"].string,
380
+ format: _propTypes["default"].string,
381
+ helperText: _propTypes["default"].string,
382
+ placeholder: _propTypes["default"].bool,
383
+ clearable: _propTypes["default"].bool,
384
+ disabled: _propTypes["default"].bool,
385
+ optional: _propTypes["default"].bool,
386
+ onChange: _propTypes["default"].func,
387
+ onBlur: _propTypes["default"].func,
388
+ error: _propTypes["default"].string,
389
+ autocomplete: _propTypes["default"].string,
390
+ size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
391
+ margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
392
+ top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
393
+ bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
394
+ left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
395
+ right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
396
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
397
+ tabIndex: _propTypes["default"].number
398
+ };
399
+ var _default = DxcDateInput;
400
+ exports["default"] = _default;