@dxc-technology/halstack-react 0.0.0-a210ee9 → 0.0.0-a4bef7b

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 (277) 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/{dist/textarea/Textarea.js → V3Textarea/V3Textarea.js} +39 -39
  6. package/V3Textarea/index.d.ts +27 -0
  7. package/{dist/accordion → accordion}/Accordion.js +89 -156
  8. package/accordion/index.d.ts +28 -0
  9. package/{dist/accordion-group → accordion-group}/AccordionGroup.js +13 -17
  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 +9 -21
  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 +10 -0
  19. package/button/types.d.ts +22 -0
  20. package/button/types.js +5 -0
  21. package/{dist/card → card}/Card.js +29 -76
  22. package/card/index.d.ts +22 -0
  23. package/{dist/checkbox → checkbox}/Checkbox.js +44 -60
  24. package/checkbox/index.d.ts +24 -0
  25. package/{dist/chip → chip}/Chip.js +48 -104
  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 +1567 -0
  41. package/{dist/date → date}/Date.js +33 -51
  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 +28 -80
  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/{dist/footer → footer}/Footer.js +69 -177
  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/{dist/heading → heading}/Heading.js +30 -76
  59. package/heading/index.d.ts +17 -0
  60. package/input-text/Icons.js +22 -0
  61. package/{dist/input-text → input-text}/InputText.js +120 -178
  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 -24
  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 +14 -28
  81. package/radio/index.d.ts +23 -0
  82. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +35 -136
  83. package/resultsetTable/index.d.ts +19 -0
  84. package/select/Select.js +864 -0
  85. package/select/index.d.ts +131 -0
  86. package/{dist/sidenav → sidenav}/Sidenav.js +20 -58
  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/{dist/switch → switch}/Switch.js +14 -28
  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 +29 -117
  97. package/tabs/index.d.ts +19 -0
  98. package/{dist/tag → tag}/Tag.js +50 -122
  99. package/tag/index.d.ts +24 -0
  100. package/text-input/TextInput.js +818 -0
  101. package/text-input/index.d.ts +135 -0
  102. package/textarea/Textarea.js +315 -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 -15
  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 +12 -26
  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.stories.js +0 -207
  129. package/dist/accordion/readme.md +0 -96
  130. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  131. package/dist/accordion-group/readme.md +0 -70
  132. package/dist/alert/Alert.js +0 -388
  133. package/dist/alert/Alert.stories.js +0 -158
  134. package/dist/alert/close.svg +0 -4
  135. package/dist/alert/error.svg +0 -4
  136. package/dist/alert/info.svg +0 -4
  137. package/dist/alert/readme.md +0 -43
  138. package/dist/alert/success.svg +0 -4
  139. package/dist/alert/warning.svg +0 -4
  140. package/dist/badge/Badge.js +0 -61
  141. package/dist/button/Button.js +0 -228
  142. package/dist/button/Button.stories.js +0 -224
  143. package/dist/button/readme.md +0 -93
  144. package/dist/checkbox/Checkbox.stories.js +0 -144
  145. package/dist/checkbox/readme.md +0 -116
  146. package/dist/common/variables.js +0 -1165
  147. package/dist/date/Date.stories.js +0 -205
  148. package/dist/date/calendar.svg +0 -1
  149. package/dist/date/calendar_dark.svg +0 -1
  150. package/dist/date/readme.md +0 -73
  151. package/dist/dialog/Dialog.stories.js +0 -217
  152. package/dist/dialog/readme.md +0 -32
  153. package/dist/dropdown/Dropdown.js +0 -498
  154. package/dist/dropdown/Dropdown.stories.js +0 -249
  155. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  156. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  157. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  158. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  159. package/dist/dropdown/readme.md +0 -69
  160. package/dist/footer/Footer.stories.js +0 -94
  161. package/dist/footer/dxc_logo_wht.png +0 -0
  162. package/dist/footer/readme.md +0 -41
  163. package/dist/header/Header.js +0 -431
  164. package/dist/header/Header.stories.js +0 -176
  165. package/dist/header/close_icon.svg +0 -1
  166. package/dist/header/dxc_logo_black.png +0 -0
  167. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  168. package/dist/header/dxc_logo_white.png +0 -0
  169. package/dist/header/hamb_menu_black.svg +0 -1
  170. package/dist/header/hamb_menu_white.svg +0 -1
  171. package/dist/header/readme.md +0 -33
  172. package/dist/input-text/InputText.stories.js +0 -209
  173. package/dist/input-text/error.svg +0 -1
  174. package/dist/input-text/readme.md +0 -91
  175. package/dist/layout/facebook.svg +0 -45
  176. package/dist/layout/linkedin.svg +0 -50
  177. package/dist/layout/twitter.svg +0 -53
  178. package/dist/link/Link.js +0 -212
  179. package/dist/link/readme.md +0 -51
  180. package/dist/paginator/Paginator.js +0 -283
  181. package/dist/paginator/images/next.svg +0 -3
  182. package/dist/paginator/images/nextPage.svg +0 -3
  183. package/dist/paginator/images/previous.svg +0 -3
  184. package/dist/paginator/images/previousPage.svg +0 -3
  185. package/dist/paginator/readme.md +0 -50
  186. package/dist/progress-bar/ProgressBar.js +0 -206
  187. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  188. package/dist/progress-bar/readme.md +0 -63
  189. package/dist/radio/Radio.stories.js +0 -166
  190. package/dist/radio/readme.md +0 -70
  191. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  192. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  193. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  194. package/dist/select/Select.js +0 -525
  195. package/dist/select/Select.stories.js +0 -235
  196. package/dist/select/readme.md +0 -72
  197. package/dist/slider/Slider.js +0 -315
  198. package/dist/slider/Slider.stories.js +0 -241
  199. package/dist/slider/readme.md +0 -64
  200. package/dist/spinner/Spinner.js +0 -214
  201. package/dist/spinner/Spinner.stories.js +0 -183
  202. package/dist/spinner/readme.md +0 -65
  203. package/dist/switch/Switch.stories.js +0 -134
  204. package/dist/switch/readme.md +0 -133
  205. package/dist/table/Table.js +0 -122
  206. package/dist/tabs/Tabs.stories.js +0 -130
  207. package/dist/tabs/readme.md +0 -78
  208. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  209. package/dist/tabs-for-sections/readme.md +0 -78
  210. package/dist/toggle/Toggle.stories.js +0 -297
  211. package/dist/toggle/readme.md +0 -80
  212. package/dist/toggle-group/ToggleGroup.js +0 -241
  213. package/dist/toggle-group/readme.md +0 -82
  214. package/dist/upload/Upload.stories.js +0 -72
  215. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  216. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  217. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  218. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -325
  219. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  220. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  221. package/dist/upload/file-upload/FileToUpload.js +0 -184
  222. package/dist/upload/file-upload/audio-icon.svg +0 -4
  223. package/dist/upload/file-upload/close.svg +0 -4
  224. package/dist/upload/file-upload/file-icon.svg +0 -4
  225. package/dist/upload/file-upload/video-icon.svg +0 -4
  226. package/dist/upload/readme.md +0 -37
  227. package/dist/upload/transaction/Transaction.js +0 -171
  228. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  229. package/dist/upload/transaction/audio-icon.svg +0 -4
  230. package/dist/upload/transaction/error-icon.svg +0 -4
  231. package/dist/upload/transaction/file-icon-err.svg +0 -4
  232. package/dist/upload/transaction/file-icon.svg +0 -4
  233. package/dist/upload/transaction/image-icon-err.svg +0 -4
  234. package/dist/upload/transaction/image-icon.svg +0 -4
  235. package/dist/upload/transaction/success-icon.svg +0 -4
  236. package/dist/upload/transaction/video-icon-err.svg +0 -4
  237. package/dist/upload/transaction/video-icon.svg +0 -4
  238. package/dist/upload/transactions/Transactions.js +0 -138
  239. package/dist/wizard/Wizard.js +0 -383
  240. package/dist/wizard/invalid_icon.svg +0 -6
  241. package/dist/wizard/valid_icon.svg +0 -6
  242. package/dist/wizard/validation-wrong.svg +0 -6
  243. package/test/Accordion.test.js +0 -33
  244. package/test/AccordionGroup.test.js +0 -125
  245. package/test/Alert.test.js +0 -53
  246. package/test/Box.test.js +0 -10
  247. package/test/Button.test.js +0 -18
  248. package/test/Card.test.js +0 -30
  249. package/test/Checkbox.test.js +0 -45
  250. package/test/Chip.test.js +0 -25
  251. package/test/Date.test.js +0 -393
  252. package/test/Dialog.test.js +0 -23
  253. package/test/Dropdown.test.js +0 -130
  254. package/test/Footer.test.js +0 -99
  255. package/test/Header.test.js +0 -39
  256. package/test/Heading.test.js +0 -35
  257. package/test/InputText.test.js +0 -240
  258. package/test/Link.test.js +0 -42
  259. package/test/Paginator.test.js +0 -177
  260. package/test/ProgressBar.test.js +0 -35
  261. package/test/Radio.test.js +0 -37
  262. package/test/ResultsetTable.test.js +0 -330
  263. package/test/Select.test.js +0 -192
  264. package/test/Sidenav.test.js +0 -45
  265. package/test/Slider.test.js +0 -82
  266. package/test/Spinner.test.js +0 -27
  267. package/test/Switch.test.js +0 -45
  268. package/test/Table.test.js +0 -36
  269. package/test/Tabs.test.js +0 -109
  270. package/test/TabsForSections.test.js +0 -34
  271. package/test/Tag.test.js +0 -32
  272. package/test/TextArea.test.js +0 -52
  273. package/test/ToggleGroup.test.js +0 -81
  274. package/test/Upload.test.js +0 -60
  275. package/test/Wizard.test.js +0 -130
  276. package/test/mocks/pngMock.js +0 -1
  277. package/test/mocks/svgMock.js +0 -1
@@ -1,498 +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-top:", ";\n margin-bottom", ";\n margin-left: ", ";\n margin-right: ", ";\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 font-style:", ";\n font-weight:", ";\n width: 100%;\n height: auto;\n min-height: 46px;\n display: inline-flex;\n justify-content: space-between;\n align-items: center;\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n\n min-width: ", ";\n\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n &:focus {\n outline: none;\n }\n\n background-color: ", ";\n color: ", ";\n\n\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 padding-top:", ";\n padding-bottom:", ";\n padding-left:", ";\n padding-right:", ";\n height: auto;\n }\n\n .MuiPaper-root {\n min-width: ", ";\n\n background-color: ", ";\n\n color: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n \n\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\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-style:", ";\n font-weight: ", ";\n color:", ";\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 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.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
325
- }, function (props) {
326
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
327
- }, function (props) {
328
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
329
- }, function (props) {
330
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
331
- }, function (props) {
332
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
333
- }, function (props) {
334
- return props.theme.focusColor;
335
- });
336
-
337
- var DxcMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2(), function (props) {
338
- return calculateWidth(props.margin, props.size);
339
- }, function (props) {
340
- return props.theme.optionsPaddingTop;
341
- }, function (props) {
342
- return props.theme.optionsPaddingBottom;
343
- }, function (props) {
344
- return props.theme.optionsPaddingLeft;
345
- }, function (props) {
346
- return props.theme.optionsPaddingRight;
347
- }, function (props) {
348
- return "".concat(props.width, "px");
349
- }, function (props) {
350
- return props.theme.optionsListBackgroundColor;
351
- }, function (props) {
352
- return props.theme.optionsListFontColor;
353
- }, function (props) {
354
- return props.theme.borderThickness;
355
- }, function (props) {
356
- return props.theme.borderStyle;
357
- }, function (props) {
358
- return props.theme.borderColor;
359
- }, function (props) {
360
- return props.theme.borderRadius;
361
- }, function (props) {
362
- return props.theme.borderRadius;
363
- }, function (props) {
364
- return props.optionsIconPosition === "after" && "row-reverse" || "row";
365
- }, function (props) {
366
- return props.optionsIconPosition === "after" && "flex-end" || "";
367
- }, function (props) {
368
- return props.theme.optionsFontSize;
369
- }, function (props) {
370
- return props.theme.optionsFontStyle;
371
- }, function (props) {
372
- return props.theme.optionsFontWeight;
373
- }, function (props) {
374
- return props.theme.optionsFontColor;
375
- }, function (props) {
376
- return props.theme.optionsListHoverBackgroundColor;
377
- }, function (props) {
378
- return props.theme.dropdownFontColor;
379
- }, function (props) {
380
- return props.theme.scrollBarTrackColor;
381
- }, function (props) {
382
- return props.theme.scrollBarThumbColor;
383
- });
384
-
385
- var DropdownTrigger = _styledComponents["default"].button(_templateObject3(), function (props) {
386
- return props.theme.fontFamily;
387
- }, function (props) {
388
- return props.theme.buttonFontSize;
389
- }, function (props) {
390
- return props.theme.buttonFontStyle;
391
- }, function (props) {
392
- return props.theme.buttonFontWeight;
393
- }, function (props) {
394
- return props.theme.borderRadius;
395
- }, function (props) {
396
- return props.theme.borderThickness;
397
- }, function (props) {
398
- return props.theme.borderStyle;
399
- }, function (props) {
400
- return props.theme.borderColor;
401
- }, function (props) {
402
- return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
403
- }, function (props) {
404
- return props.theme.labelPaddingTop;
405
- }, function (props) {
406
- return props.theme.labelPaddingBottom;
407
- }, function (props) {
408
- return props.theme.labelPaddingLeft;
409
- }, function (props) {
410
- return props.theme.labelPaddingRight;
411
- }, function (props) {
412
- return props.opened === true ? props.theme.buttonHoverBackgroundColor : props.theme.buttonBackgroundColor;
413
- }, function (props) {
414
- return props.theme.buttonFontColor;
415
- }, function (props) {
416
- return props.opened === true ? "0px" : props.theme.borderRadius;
417
- }, function (props) {
418
- return props.opened === true ? "0px" : props.theme.borderRadius;
419
- }, function (props) {
420
- return props.theme.buttonHoverBackgroundColor;
421
- });
422
-
423
- var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4());
424
-
425
- var DropdownTriggerContainer = _styledComponents["default"].span(_templateObject5(), function (props) {
426
- return props.iconPosition === "after" && "row-reverse" || "row";
427
- }, function (props) {
428
- return props.caretHidden ? "100%" : "calc(100% - 44px)";
429
- });
430
-
431
- var ListIcon = _styledComponents["default"].img(_templateObject6(), function (props) {
432
- if (props.iconPosition === "before" && props.label !== "") {
433
- return "10px";
434
- } else {
435
- return "0px";
436
- }
437
- }, function (props) {
438
- if (props.iconPosition === "after" && props.label !== "") {
439
- return "10px";
440
- } else {
441
- return "0px";
442
- }
443
- });
444
-
445
- var ListIconContainer = _styledComponents["default"].div(_templateObject7(), function (props) {
446
- if (props.iconPosition === "before" && props.label !== "") {
447
- return "10px";
448
- } else {
449
- return "0px";
450
- }
451
- }, function (props) {
452
- if (props.iconPosition === "after" && props.label !== "") {
453
- return "10px";
454
- } else {
455
- return "0px";
456
- }
457
- });
458
-
459
- var CaretIcon = _styledComponents["default"].div(_templateObject8(), function (props) {
460
- return props.caretHidden === true ? "none" : "inline-flex";
461
- }, function (props) {
462
- return props.theme.caretIconMarginTop;
463
- }, function (props) {
464
- return props.theme.caretIconMarginBottom;
465
- }, function (props) {
466
- return props.theme.caretIconMarginLeft;
467
- }, function (props) {
468
- return props.theme.caretIconMarginRight;
469
- }, function (props) {
470
- return props.theme.fontColor;
471
- });
472
-
473
- DxcDropdown.propTypes = {
474
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
475
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
476
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
477
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
478
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
479
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
480
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
481
- optionsIconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
482
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
483
- iconSrc: _propTypes["default"].string,
484
- iconPosition: _propTypes["default"].oneOf(["after", "before", ""]),
485
- label: _propTypes["default"].string,
486
- caretHidden: _propTypes["default"].bool,
487
- expandOnHover: _propTypes["default"].bool,
488
- onSelectOption: _propTypes["default"].func,
489
- options: _propTypes["default"].arrayOf(_propTypes["default"].shape({
490
- value: _propTypes["default"].any.isRequired,
491
- label: _propTypes["default"].any.isRequired,
492
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
493
- iconSrc: _propTypes["default"].string
494
- })),
495
- tabIndex: _propTypes["default"].number
496
- };
497
- var _default = DxcDropdown;
498
- exports["default"] = _default;