@dxc-technology/halstack-react 0.0.0-b05ef02 → 0.0.0-b243e75

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 (286) hide show
  1. package/BackgroundColorContext.js +50 -0
  2. package/ThemeContext.js +246 -0
  3. package/V3Select/V3Select.js +455 -0
  4. package/V3Select/index.d.ts +27 -0
  5. package/V3Textarea/V3Textarea.js +260 -0
  6. package/V3Textarea/index.d.ts +27 -0
  7. package/accordion/Accordion.js +289 -0
  8. package/accordion/index.d.ts +28 -0
  9. package/{dist/accordion-group → accordion-group}/AccordionGroup.js +45 -15
  10. package/accordion-group/index.d.ts +16 -0
  11. package/alert/Alert.js +309 -0
  12. package/alert/index.d.ts +51 -0
  13. package/badge/Badge.js +59 -0
  14. package/{dist/box → box}/Box.js +34 -29
  15. package/box/index.d.ts +25 -0
  16. package/button/Button.d.ts +4 -0
  17. package/button/Button.js +182 -0
  18. package/button/Button.stories.tsx +306 -0
  19. package/button/types.d.ts +57 -0
  20. package/button/types.js +5 -0
  21. package/{dist/card → card}/Card.js +30 -77
  22. package/card/index.d.ts +22 -0
  23. package/checkbox/Checkbox.js +275 -0
  24. package/checkbox/index.d.ts +24 -0
  25. package/{dist/chip → chip}/Chip.js +74 -76
  26. package/chip/index.d.ts +22 -0
  27. package/{dist/common → common}/OpenSans.css +0 -0
  28. package/{dist/common → common}/RequiredComponent.js +3 -11
  29. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  30. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  31. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  32. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  33. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  34. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  35. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  36. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  37. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  38. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  39. package/{dist/common → common}/utils.js +0 -0
  40. package/common/variables.js +1569 -0
  41. package/{dist/date → date}/Date.js +71 -55
  42. package/date/index.d.ts +27 -0
  43. package/date-input/DateInput.js +396 -0
  44. package/date-input/index.d.ts +95 -0
  45. package/{dist/dialog → dialog}/Dialog.js +50 -69
  46. package/dialog/index.d.ts +18 -0
  47. package/dropdown/Dropdown.js +450 -0
  48. package/dropdown/index.d.ts +26 -0
  49. package/file-input/FileInput.js +532 -0
  50. package/file-input/FileItem.js +193 -0
  51. package/file-input/index.d.ts +81 -0
  52. package/footer/Footer.js +297 -0
  53. package/footer/Icons.js +77 -0
  54. package/footer/index.d.ts +25 -0
  55. package/header/Header.js +326 -0
  56. package/header/Icons.js +59 -0
  57. package/header/index.d.ts +25 -0
  58. package/heading/Heading.js +176 -0
  59. package/heading/index.d.ts +17 -0
  60. package/input-text/Icons.js +22 -0
  61. package/input-text/InputText.js +611 -0
  62. package/input-text/index.d.ts +36 -0
  63. package/{dist/layout → layout}/ApplicationLayout.js +35 -131
  64. package/layout/Icons.js +55 -0
  65. package/link/Link.js +183 -0
  66. package/link/index.d.ts +23 -0
  67. package/main.d.ts +44 -0
  68. package/{dist/main.js → main.js} +121 -69
  69. package/number-input/NumberInput.js +128 -0
  70. package/number-input/NumberInputContext.js +16 -0
  71. package/number-input/index.d.ts +113 -0
  72. package/package.json +31 -22
  73. package/paginator/Icons.js +66 -0
  74. package/paginator/Paginator.js +221 -0
  75. package/paginator/index.d.ts +20 -0
  76. package/password-input/PasswordInput.js +199 -0
  77. package/password-input/index.d.ts +94 -0
  78. package/progress-bar/ProgressBar.js +188 -0
  79. package/progress-bar/index.d.ts +18 -0
  80. package/{dist/radio → radio}/Radio.js +37 -32
  81. package/radio/index.d.ts +23 -0
  82. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +77 -135
  83. package/resultsetTable/index.d.ts +19 -0
  84. package/select/Select.js +865 -0
  85. package/select/index.d.ts +131 -0
  86. package/sidenav/Sidenav.js +145 -0
  87. package/sidenav/index.d.ts +13 -0
  88. package/slider/Slider.js +340 -0
  89. package/slider/index.d.ts +29 -0
  90. package/spinner/Spinner.js +267 -0
  91. package/spinner/index.d.ts +17 -0
  92. package/switch/Switch.js +208 -0
  93. package/switch/index.d.ts +24 -0
  94. package/table/Table.js +118 -0
  95. package/table/index.d.ts +13 -0
  96. package/{dist/tabs → tabs}/Tabs.js +61 -127
  97. package/tabs/index.d.ts +19 -0
  98. package/tag/Tag.js +208 -0
  99. package/tag/index.d.ts +24 -0
  100. package/text-input/TextInput.js +825 -0
  101. package/text-input/index.d.ts +135 -0
  102. package/textarea/Textarea.js +317 -0
  103. package/textarea/index.d.ts +117 -0
  104. package/{dist/toggle → toggle}/Toggle.js +15 -49
  105. package/toggle/index.d.ts +21 -0
  106. package/toggle-group/ToggleGroup.js +243 -0
  107. package/toggle-group/index.d.ts +21 -0
  108. package/{dist/upload → upload}/Upload.js +11 -19
  109. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  110. package/upload/buttons-upload/Icons.js +40 -0
  111. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  112. package/upload/dragAndDropArea/Icons.js +39 -0
  113. package/upload/file-upload/FileToUpload.js +115 -0
  114. package/upload/file-upload/Icons.js +66 -0
  115. package/{dist/upload → upload}/files-upload/FilesToUpload.js +14 -28
  116. package/upload/index.d.ts +15 -0
  117. package/upload/transaction/Icons.js +160 -0
  118. package/upload/transaction/Transaction.js +104 -0
  119. package/upload/transactions/Transactions.js +94 -0
  120. package/{dist/useTheme.js → useTheme.js} +0 -0
  121. package/wizard/Icons.js +65 -0
  122. package/wizard/Wizard.js +271 -0
  123. package/wizard/index.d.ts +18 -0
  124. package/README.md +0 -66
  125. package/babel.config.js +0 -8
  126. package/dist/BackgroundColorContext.js +0 -46
  127. package/dist/ThemeContext.js +0 -216
  128. package/dist/accordion/Accordion.js +0 -284
  129. package/dist/accordion/Accordion.stories.js +0 -207
  130. package/dist/accordion/readme.md +0 -96
  131. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  132. package/dist/accordion-group/readme.md +0 -70
  133. package/dist/alert/Alert.js +0 -318
  134. package/dist/alert/Alert.stories.js +0 -158
  135. package/dist/alert/close.svg +0 -4
  136. package/dist/alert/error.svg +0 -4
  137. package/dist/alert/info.svg +0 -4
  138. package/dist/alert/readme.md +0 -43
  139. package/dist/alert/success.svg +0 -4
  140. package/dist/alert/warning.svg +0 -4
  141. package/dist/badge/Badge.js +0 -40
  142. package/dist/button/Button.js +0 -219
  143. package/dist/button/Button.stories.js +0 -224
  144. package/dist/button/readme.md +0 -93
  145. package/dist/checkbox/Checkbox.js +0 -233
  146. package/dist/checkbox/Checkbox.stories.js +0 -144
  147. package/dist/checkbox/readme.md +0 -116
  148. package/dist/common/variables.js +0 -523
  149. package/dist/date/Date.stories.js +0 -205
  150. package/dist/date/calendar.svg +0 -1
  151. package/dist/date/calendar_dark.svg +0 -1
  152. package/dist/date/readme.md +0 -73
  153. package/dist/dialog/Dialog.stories.js +0 -217
  154. package/dist/dialog/readme.md +0 -32
  155. package/dist/dropdown/Dropdown.js +0 -456
  156. package/dist/dropdown/Dropdown.stories.js +0 -249
  157. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  158. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  159. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  160. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  161. package/dist/dropdown/readme.md +0 -69
  162. package/dist/footer/Footer.js +0 -379
  163. package/dist/footer/Footer.stories.js +0 -94
  164. package/dist/footer/dxc_logo_wht.png +0 -0
  165. package/dist/footer/readme.md +0 -41
  166. package/dist/header/Header.js +0 -385
  167. package/dist/header/Header.stories.js +0 -176
  168. package/dist/header/close_icon.svg +0 -1
  169. package/dist/header/dxc_logo_black.png +0 -0
  170. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  171. package/dist/header/dxc_logo_white.png +0 -0
  172. package/dist/header/hamb_menu_black.svg +0 -1
  173. package/dist/header/hamb_menu_white.svg +0 -1
  174. package/dist/header/readme.md +0 -33
  175. package/dist/heading/Heading.js +0 -163
  176. package/dist/input-text/InputText.js +0 -609
  177. package/dist/input-text/InputText.stories.js +0 -209
  178. package/dist/input-text/error.svg +0 -1
  179. package/dist/input-text/readme.md +0 -91
  180. package/dist/layout/facebook.svg +0 -45
  181. package/dist/layout/linkedin.svg +0 -50
  182. package/dist/layout/twitter.svg +0 -53
  183. package/dist/link/Link.js +0 -200
  184. package/dist/link/readme.md +0 -51
  185. package/dist/paginator/Paginator.js +0 -261
  186. package/dist/paginator/images/next.svg +0 -3
  187. package/dist/paginator/images/nextPage.svg +0 -3
  188. package/dist/paginator/images/previous.svg +0 -3
  189. package/dist/paginator/images/previousPage.svg +0 -3
  190. package/dist/paginator/readme.md +0 -50
  191. package/dist/progress-bar/ProgressBar.js +0 -192
  192. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  193. package/dist/progress-bar/readme.md +0 -63
  194. package/dist/radio/Radio.stories.js +0 -166
  195. package/dist/radio/readme.md +0 -70
  196. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  197. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  198. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  199. package/dist/select/Select.js +0 -490
  200. package/dist/select/Select.stories.js +0 -235
  201. package/dist/select/readme.md +0 -72
  202. package/dist/sidenav/Sidenav.js +0 -155
  203. package/dist/slider/Slider.js +0 -267
  204. package/dist/slider/Slider.stories.js +0 -241
  205. package/dist/slider/readme.md +0 -64
  206. package/dist/spinner/Spinner.js +0 -198
  207. package/dist/spinner/Spinner.stories.js +0 -183
  208. package/dist/spinner/readme.md +0 -65
  209. package/dist/switch/Switch.js +0 -194
  210. package/dist/switch/Switch.stories.js +0 -134
  211. package/dist/switch/readme.md +0 -133
  212. package/dist/table/Table.js +0 -98
  213. package/dist/tabs/Tabs.stories.js +0 -130
  214. package/dist/tabs/readme.md +0 -78
  215. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  216. package/dist/tabs-for-sections/readme.md +0 -78
  217. package/dist/tag/Tag.js +0 -268
  218. package/dist/textarea/Textarea.js +0 -238
  219. package/dist/toggle/Toggle.stories.js +0 -297
  220. package/dist/toggle/readme.md +0 -80
  221. package/dist/toggle-group/ToggleGroup.js +0 -223
  222. package/dist/toggle-group/readme.md +0 -82
  223. package/dist/upload/Upload.stories.js +0 -72
  224. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -123
  225. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  226. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  227. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -293
  228. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  229. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  230. package/dist/upload/file-upload/FileToUpload.js +0 -162
  231. package/dist/upload/file-upload/audio-icon.svg +0 -4
  232. package/dist/upload/file-upload/close.svg +0 -4
  233. package/dist/upload/file-upload/file-icon.svg +0 -4
  234. package/dist/upload/file-upload/video-icon.svg +0 -4
  235. package/dist/upload/readme.md +0 -37
  236. package/dist/upload/transaction/Transaction.js +0 -152
  237. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  238. package/dist/upload/transaction/audio-icon.svg +0 -4
  239. package/dist/upload/transaction/error-icon.svg +0 -4
  240. package/dist/upload/transaction/file-icon-err.svg +0 -4
  241. package/dist/upload/transaction/file-icon.svg +0 -4
  242. package/dist/upload/transaction/image-icon-err.svg +0 -4
  243. package/dist/upload/transaction/image-icon.svg +0 -4
  244. package/dist/upload/transaction/success-icon.svg +0 -4
  245. package/dist/upload/transaction/video-icon-err.svg +0 -4
  246. package/dist/upload/transaction/video-icon.svg +0 -4
  247. package/dist/upload/transactions/Transactions.js +0 -122
  248. package/dist/wizard/Wizard.js +0 -355
  249. package/dist/wizard/invalid_icon.svg +0 -6
  250. package/dist/wizard/valid_icon.svg +0 -6
  251. package/dist/wizard/validation-wrong.svg +0 -6
  252. package/test/Accordion.test.js +0 -33
  253. package/test/AccordionGroup.test.js +0 -125
  254. package/test/Alert.test.js +0 -53
  255. package/test/Box.test.js +0 -10
  256. package/test/Button.test.js +0 -18
  257. package/test/Card.test.js +0 -30
  258. package/test/Checkbox.test.js +0 -45
  259. package/test/Chip.test.js +0 -25
  260. package/test/Date.test.js +0 -393
  261. package/test/Dialog.test.js +0 -23
  262. package/test/Dropdown.test.js +0 -130
  263. package/test/Footer.test.js +0 -99
  264. package/test/Header.test.js +0 -39
  265. package/test/Heading.test.js +0 -35
  266. package/test/InputText.test.js +0 -240
  267. package/test/Link.test.js +0 -42
  268. package/test/Paginator.test.js +0 -177
  269. package/test/ProgressBar.test.js +0 -35
  270. package/test/Radio.test.js +0 -37
  271. package/test/ResultsetTable.test.js +0 -330
  272. package/test/Select.test.js +0 -192
  273. package/test/Sidenav.test.js +0 -45
  274. package/test/Slider.test.js +0 -82
  275. package/test/Spinner.test.js +0 -27
  276. package/test/Switch.test.js +0 -45
  277. package/test/Table.test.js +0 -36
  278. package/test/Tabs.test.js +0 -109
  279. package/test/TabsForSections.test.js +0 -34
  280. package/test/Tag.test.js +0 -32
  281. package/test/TextArea.test.js +0 -52
  282. package/test/ToggleGroup.test.js +0 -81
  283. package/test/Upload.test.js +0 -60
  284. package/test/Wizard.test.js +0 -130
  285. package/test/mocks/pngMock.js +0 -1
  286. package/test/mocks/svgMock.js +0 -1
@@ -1,456 +0,0 @@
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 _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
-
18
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
-
20
- var _react = _interopRequireWildcard(require("react"));
21
-
22
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
-
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _Popper = _interopRequireDefault(require("@material-ui/core/Popper"));
27
-
28
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
29
-
30
- var _core = require("@material-ui/core");
31
-
32
- var _Grow = _interopRequireDefault(require("@material-ui/core/Grow"));
33
-
34
- var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
35
-
36
- var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
37
-
38
- var _variables = require("../common/variables.js");
39
-
40
- var _utils = require("../common/utils.js");
41
-
42
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
43
-
44
- function _templateObject8() {
45
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: ", ";\n margin-left: 10px;\n margin-right: 10px;\n & > svg {\n fill: ", ";\n }\n"]);
46
-
47
- _templateObject8 = function _templateObject8() {
48
- return data;
49
- };
50
-
51
- return data;
52
- }
53
-
54
- function _templateObject7() {
55
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 20px;\n height: 20px;\n overflow: hidden;\n margin-right: ", ";\n margin-left: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
56
-
57
- _templateObject7 = function _templateObject7() {
58
- return data;
59
- };
60
-
61
- return data;
62
- }
63
-
64
- function _templateObject6() {
65
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 20px;\n max-width: 20px;\n width: 20px;\n height: 20px;\n margin-right: ", ";\n margin-left: ", ";\n"]);
66
-
67
- _templateObject6 = function _templateObject6() {
68
- return data;
69
- };
70
-
71
- return data;
72
- }
73
-
74
- function _templateObject5() {
75
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n flex-direction: ", ";\n margin-left: 0px;\n margin-right: 0px;\n width: ", ";\n white-space: nowrap;\n"]);
76
-
77
- _templateObject5 = function _templateObject5() {
78
- return data;
79
- };
80
-
81
- return data;
82
- }
83
-
84
- function _templateObject4() {
85
- var data = (0, _taggedTemplateLiteral2["default"])(["\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n"]);
86
-
87
- _templateObject4 = function _templateObject4() {
88
- return data;
89
- };
90
-
91
- return data;
92
- }
93
-
94
- function _templateObject3() {
95
- var data = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n width: 100%;\n height: auto;\n min-height: 46px;\n display: inline-flex;\n justify-content: space-between;\n align-items: center;\n min-width: ", ";\n\n padding: ", ";\n &:focus {\n outline: none;\n }\n\n background-color: ", ";\n color: ", ";\n\n border: none;\n border-radius: 2px;\n border-bottom-right-radius: ", ";\n border-bottom-left-radius: ", ";\n &:hover {\n background-color: ", ";\n }\n"]);
96
-
97
- _templateObject3 = function _templateObject3() {
98
- return data;
99
- };
100
-
101
- return data;
102
- }
103
-
104
- function _templateObject2() {
105
- var data = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 1;\n\n .MuiMenuItem-gutters {\n width: ", ";\n }\n .MuiMenuItem-root {\n min-height: 46px;\n height: auto;\n }\n\n .MuiPaper-root {\n min-width: ", ";\n\n background-color: ", ";\n\n color: ", ";\n\n border-bottom-left-radius: 2px;\n border-bottom-right-radius: 2px;\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n max-height: 230px;\n overflow: auto;\n .MuiList-padding {\n padding-top: 0px;\n padding-bottom: 0px;\n }\n .MuiListItem-button {\n display: flex;\n flex-direction: ", ";\n justify-content: ", ";\n font-size: ", ";\n font-family: ", ";\n cursor: pointer;\n }\n .MuiListItem-button:hover {\n background-color: ", ";\n color: ", ";\n }\n\n ::-webkit-scrollbar {\n width: 3px;\n }\n\n ::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 3px;\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 3px;\n }\n }\n"]);
106
-
107
- _templateObject2 = function _templateObject2() {
108
- return data;
109
- };
110
-
111
- return data;
112
- }
113
-
114
- function _templateObject() {
115
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n font-size: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n display: inline-block;\n\n &:focus {\n outline: ", " auto 1px;\n }\n"]);
116
-
117
- _templateObject = function _templateObject() {
118
- return data;
119
- };
120
-
121
- return data;
122
- }
123
-
124
- var DxcDropdown = function DxcDropdown(_ref) {
125
- var _ref$options = _ref.options,
126
- options = _ref$options === void 0 ? [] : _ref$options,
127
- _ref$optionsIconPosit = _ref.optionsIconPosition,
128
- optionsIconPosition = _ref$optionsIconPosit === void 0 ? "before" : _ref$optionsIconPosit,
129
- icon = _ref.icon,
130
- _ref$iconSrc = _ref.iconSrc,
131
- iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
132
- _ref$iconPosition = _ref.iconPosition,
133
- iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
134
- _ref$label = _ref.label,
135
- label = _ref$label === void 0 ? "" : _ref$label,
136
- _ref$caretHidden = _ref.caretHidden,
137
- caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
138
- onSelectOption = _ref.onSelectOption,
139
- margin = _ref.margin,
140
- _ref$size = _ref.size,
141
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
142
- _ref$expandOnHover = _ref.expandOnHover,
143
- expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
144
- _ref$tabIndex = _ref.tabIndex,
145
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
146
-
147
- var _useState = (0, _react.useState)(),
148
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
149
- width = _useState2[0],
150
- setWidth = _useState2[1];
151
-
152
- var colorsTheme = (0, _useTheme["default"])();
153
- var ref = (0, _react.useRef)(null);
154
-
155
- var handleResize = function handleResize() {
156
- if (ref.current) setWidth(ref.current.offsetWidth);
157
- };
158
-
159
- (0, _react.useEffect)(function () {
160
- if (ref.current) ref.current.addEventListener("resize", handleResize);
161
- handleResize();
162
- return function () {
163
- if (ref.current) ref.current.removeEventListener("resize", handleResize);
164
- };
165
- }, []);
166
-
167
- var _useState3 = (0, _react.useState)(null),
168
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
169
- anchorEl = _useState4[0],
170
- setAnchorEl = _useState4[1];
171
-
172
- function handleClickListItem(event) {
173
- setAnchorEl(event.currentTarget);
174
- }
175
-
176
- function handleMenuItemClick(option) {
177
- setAnchorEl(null);
178
-
179
- if (typeof onSelectOption === "function") {
180
- onSelectOption(option.value);
181
- }
182
- }
183
-
184
- function handleClose() {
185
- setAnchorEl(null);
186
- }
187
-
188
- var handleCloseOver = expandOnHover ? handleClose : undefined;
189
-
190
- var UpArrowIcon = function UpArrowIcon() {
191
- return _react["default"].createElement("svg", {
192
- xmlns: "http://www.w3.org/2000/svg",
193
- width: "24",
194
- height: "24",
195
- viewBox: "0 0 24 24"
196
- }, _react["default"].createElement("path", {
197
- d: "M7 14l5-5 5 5z"
198
- }), _react["default"].createElement("path", {
199
- d: "M0 0h24v24H0z",
200
- fill: "none"
201
- }));
202
- };
203
-
204
- var DownArrowIcon = function DownArrowIcon() {
205
- return _react["default"].createElement("svg", {
206
- xmlns: "http://www.w3.org/2000/svg",
207
- width: "24",
208
- height: "24",
209
- viewBox: "0 0 24 24"
210
- }, _react["default"].createElement("path", {
211
- d: "M7 10l5 5 5-5z"
212
- }), _react["default"].createElement("path", {
213
- d: "M0 0h24v24H0z",
214
- fill: "none"
215
- }));
216
- };
217
-
218
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
219
- theme: colorsTheme.dropdown
220
- }, _react["default"].createElement(DxCDropdownContainer, {
221
- margin: margin,
222
- size: size
223
- }, _react["default"].createElement("div", {
224
- onMouseOver: expandOnHover ? handleClickListItem : undefined,
225
- onMouseOut: handleCloseOver,
226
- onFocus: handleCloseOver,
227
- onBlur: handleCloseOver
228
- }, _react["default"].createElement(DropdownTrigger, {
229
- opened: anchorEl === null ? false : true,
230
- onClick: handleClickListItem,
231
- label: label,
232
- caretHidden: caretHidden,
233
- margin: margin,
234
- size: size,
235
- ref: ref,
236
- tabIndex: tabIndex
237
- }, _react["default"].createElement(DropdownTriggerContainer, {
238
- iconPosition: iconPosition,
239
- caretHidden: caretHidden
240
- }, icon ? _react["default"].createElement(ListIconContainer, {
241
- label: label,
242
- iconPosition: iconPosition
243
- }, (0, _typeof2["default"])(icon) === "object" ? icon : _react["default"].createElement(icon)) : iconSrc && _react["default"].createElement(ListIcon, {
244
- label: label,
245
- src: iconSrc,
246
- iconPosition: iconPosition
247
- }), _react["default"].createElement(DropdownTriggerLabel, {
248
- iconPosition: iconPosition,
249
- label: label
250
- }, label)), _react["default"].createElement(CaretIcon, null, caretHidden !== true && (anchorEl === null ? _react["default"].createElement(DownArrowIcon, {
251
- caretHidden: caretHidden,
252
- margin: margin
253
- }) : _react["default"].createElement(UpArrowIcon, {
254
- caretHidden: caretHidden,
255
- margin: margin
256
- })))), _react["default"].createElement(DxcMenu, {
257
- anchorEl: anchorEl,
258
- open: Boolean(anchorEl),
259
- onClose: handleClose,
260
- getContentAnchorEl: null,
261
- anchorOrigin: {
262
- vertical: "bottom",
263
- horizontal: "left"
264
- },
265
- transformOrigin: {
266
- vertical: "top",
267
- horizontal: "left"
268
- },
269
- optionsIconPosition: optionsIconPosition,
270
- size: size,
271
- width: width,
272
- role: undefined,
273
- transition: true,
274
- disablePortal: true,
275
- placement: "bottom-start"
276
- }, function (_ref2) {
277
- var TransitionProps = _ref2.TransitionProps;
278
- return _react["default"].createElement(_Grow["default"], TransitionProps, _react["default"].createElement(_Paper["default"], null, _react["default"].createElement(_core.ClickAwayListener, {
279
- onClickAway: handleClose
280
- }, _react["default"].createElement(_MenuList["default"], {
281
- autoFocusItem: Boolean(anchorEl),
282
- id: "menu-list-grow"
283
- }, options.map(function (option) {
284
- return _react["default"].createElement(_MenuItem["default"], {
285
- key: option.value,
286
- value: option.value,
287
- disableRipple: true,
288
- onClick: function onClick(event) {
289
- return handleMenuItemClick(option);
290
- }
291
- }, option.icon ? _react["default"].createElement(ListIconContainer, {
292
- label: option.label,
293
- iconPosition: optionsIconPosition
294
- }, (0, _typeof2["default"])(option.icon) === "object" ? option.icon : _react["default"].createElement(option.icon)) : option.iconSrc && _react["default"].createElement(ListIcon, {
295
- label: option.label,
296
- src: option.iconSrc,
297
- iconPosition: optionsIconPosition
298
- }), _react["default"].createElement("span", {
299
- className: "optionLabel"
300
- }, option.label));
301
- })))));
302
- }))));
303
- };
304
-
305
- var sizes = {
306
- small: "60px",
307
- medium: "240px",
308
- large: "480px",
309
- fillParent: "100%",
310
- fitContent: "unset"
311
- };
312
-
313
- var calculateWidth = function calculateWidth(margin, size) {
314
- if (size === "fillParent") {
315
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
316
- }
317
-
318
- return sizes[size];
319
- };
320
-
321
- var DxCDropdownContainer = _styledComponents["default"].div(_templateObject(), function (props) {
322
- return calculateWidth(props.margin, props.size);
323
- }, function (props) {
324
- return props.theme.fontSizeBase;
325
- }, function (props) {
326
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
327
- }, function (props) {
328
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
329
- }, function (props) {
330
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
331
- }, function (props) {
332
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
333
- }, function (props) {
334
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
335
- }, function (props) {
336
- return props.theme.focusColor;
337
- });
338
-
339
- var DxcMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2(), function (props) {
340
- return calculateWidth(props.margin, props.size);
341
- }, function (props) {
342
- return "".concat(props.width, "px");
343
- }, function (props) {
344
- return props.theme.dropdownBackgroundColor;
345
- }, function (props) {
346
- return props.theme.dropdownFontColor;
347
- }, function (props) {
348
- return props.optionsIconPosition === "after" && "row-reverse" || "row";
349
- }, function (props) {
350
- return props.optionsIconPosition === "after" && "flex-end" || "";
351
- }, function (props) {
352
- return props.theme.fontSize;
353
- }, function (props) {
354
- return props.theme.fontFamily;
355
- }, function (props) {
356
- return props.theme.hoverBackgroundOption;
357
- }, function (props) {
358
- return props.theme.dropdownFontColor;
359
- }, function (props) {
360
- return props.theme.scrollBarTrackColor;
361
- }, function (props) {
362
- return props.theme.scrollBarThumbColor;
363
- });
364
-
365
- var DropdownTrigger = _styledComponents["default"].button(_templateObject3(), function (props) {
366
- return props.theme.fontFamily;
367
- }, function (props) {
368
- return props.theme.fontSize;
369
- }, function (props) {
370
- return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
371
- }, function (props) {
372
- if (props.caretHidden === true && props.label === "") {
373
- return "10px 15px";
374
- } else {
375
- return "10px 15px 10px 20px";
376
- }
377
- }, function (props) {
378
- return props.opened === true ? props.theme.hoverBackgroundColor : props.theme.backgroundColor;
379
- }, function (props) {
380
- return props.theme.fontColor;
381
- }, function (props) {
382
- return props.opened === true ? "0px" : "2px";
383
- }, function (props) {
384
- return props.opened === true ? "0px" : "2px";
385
- }, function (props) {
386
- return props.theme.hoverBackgroundColor;
387
- });
388
-
389
- var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4());
390
-
391
- var DropdownTriggerContainer = _styledComponents["default"].span(_templateObject5(), function (props) {
392
- return props.iconPosition === "after" && "row-reverse" || "row";
393
- }, function (props) {
394
- return props.caretHidden ? "100%" : "calc(100% - 44px)";
395
- });
396
-
397
- var ListIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
398
- if (props.iconPosition === "before" && props.label !== "") {
399
- return "10px";
400
- } else {
401
- return "0px";
402
- }
403
- }, function (props) {
404
- if (props.iconPosition === "after" && props.label !== "") {
405
- return "10px";
406
- } else {
407
- return "0px";
408
- }
409
- });
410
-
411
- var ListIconContainer = _styledComponents["default"].div(_templateObject7(), function (props) {
412
- if (props.iconPosition === "before" && props.label !== "") {
413
- return "10px";
414
- } else {
415
- return "0px";
416
- }
417
- }, function (props) {
418
- if (props.iconPosition === "after" && props.label !== "") {
419
- return "10px";
420
- } else {
421
- return "0px";
422
- }
423
- });
424
-
425
- var CaretIcon = _styledComponents["default"].div(_templateObject8(), function (props) {
426
- return props.caretHidden === true ? "none" : "inline-flex";
427
- }, function (props) {
428
- return props.theme.fontColor;
429
- });
430
-
431
- DxcDropdown.propTypes = {
432
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
433
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
434
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
435
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
436
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
437
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
438
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
439
- optionsIconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
440
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
441
- iconSrc: _propTypes["default"].string,
442
- iconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
443
- label: _propTypes["default"].string,
444
- caretHidden: _propTypes["default"].bool,
445
- expandOnHover: _propTypes["default"].bool,
446
- onSelectOption: _propTypes["default"].func,
447
- options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
448
- value: _propTypes["default"].any.isRequired,
449
- label: _propTypes["default"].any.isRequired,
450
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
451
- iconSrc: _propTypes["default"].string
452
- })),
453
- tabIndex: _propTypes["default"].number
454
- };
455
- var _default = DxcDropdown;
456
- exports["default"] = _default;