@occmundial/occ-atomic 2.0.0-beta.1 → 2.0.0-beta.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (289) hide show
  1. package/.prettierrc +6 -0
  2. package/.whitesource +12 -0
  3. package/CHANGELOG.md +1354 -584
  4. package/CONTRIBUTING.md +24 -0
  5. package/README.md +21 -21
  6. package/build/Autocomplete/Autocomplete.js +217 -117
  7. package/build/Autocomplete/Autocomplete.test.js +90 -74
  8. package/build/Autocomplete/__snapshots__/Autocomplete.test.js.snap +20 -0
  9. package/build/Autocomplete/index.js +6 -1
  10. package/build/Autocomplete/styles.js +2 -5
  11. package/build/Avatar/Avatar.js +66 -28
  12. package/build/Avatar/Avatar.test.js +36 -13
  13. package/build/Avatar/AvatarContent/AvatarContent.js +11 -14
  14. package/build/Avatar/AvatarContent/AvatarContent.test.js +55 -50
  15. package/build/Avatar/AvatarContent/__snapshots__/AvatarContent.test.js.snap +41 -0
  16. package/build/Avatar/AvatarContent/index.js +6 -1
  17. package/build/Avatar/AvatarContent/styles.js +12 -11
  18. package/build/Avatar/__snapshots__/Avatar.test.js.snap +17 -0
  19. package/build/Avatar/index.js +22 -1
  20. package/build/Avatar/styles.js +2 -6
  21. package/build/Banner/Banner.js +76 -0
  22. package/build/Banner/Banner.test.js +40 -0
  23. package/build/Banner/__snapshots__/Banner.test.js.snap +33 -0
  24. package/build/Banner/index.js +18 -0
  25. package/build/Banner/styles.js +41 -0
  26. package/build/Button/Button.js +134 -61
  27. package/build/Button/Button.test.js +69 -20
  28. package/build/Button/Loading.js +82 -0
  29. package/build/Button/__snapshots__/Button.test.js.snap +322 -0
  30. package/build/Button/index.js +22 -1
  31. package/build/Button/styles.js +187 -178
  32. package/build/ButtonAlign/ButtonAlign.js +20 -16
  33. package/build/ButtonAlign/ButtonAlign.test.js +3 -3
  34. package/build/ButtonAlign/__snapshots__/ButtonAlign.test.js.snap +19 -0
  35. package/build/Card/Card.js +4 -5
  36. package/build/Card/Card.test.js +40 -35
  37. package/build/Card/__snapshots__/Card.test.js.snap +46 -0
  38. package/build/Card/index.js +22 -1
  39. package/build/Card/styles.js +2 -4
  40. package/build/Check/Check.js +18 -14
  41. package/build/Check/Check.test.js +7 -7
  42. package/build/Check/__snapshots__/Check.test.js.snap +92 -0
  43. package/build/Check/styles.js +2 -2
  44. package/build/Checkbox/Checkbox.js +106 -60
  45. package/build/Checkbox/Checkbox.test.js +58 -42
  46. package/build/Checkbox/__snapshots__/Checkbox.test.js.snap +92 -0
  47. package/build/Checkbox/index.js +4 -2
  48. package/build/Checkbox/styles.js +2 -5
  49. package/build/Column/Column.js +1 -1
  50. package/build/Column/Column.test.js +3 -3
  51. package/build/Column/__snapshots__/Column.test.js.snap +647 -0
  52. package/build/Container/Container.js +1 -1
  53. package/build/Container/Container.test.js +4 -4
  54. package/build/Container/__snapshots__/Container.test.js.snap +43 -0
  55. package/build/Droplist/Droplist.js +474 -227
  56. package/build/Droplist/Droplist.test.js +111 -87
  57. package/build/Droplist/__snapshots__/Droplist.test.js.snap +65 -0
  58. package/build/Droplist/functions.js +9 -2
  59. package/build/Droplist/index.js +22 -1
  60. package/build/Droplist/styles.js +41 -15
  61. package/build/Flexbox/Flexbox.js +64 -29
  62. package/build/Flexbox/Flexbox.test.js +32 -14
  63. package/build/Flexbox/__snapshots__/Flexbox.test.js.snap +106 -0
  64. package/build/Flexbox/index.js +22 -1
  65. package/build/Flexbox/styles.js +2 -6
  66. package/build/Footer/Footer.js +42 -30
  67. package/build/Footer/Footer.test.js +2 -2
  68. package/build/Footer/List/List.js +32 -25
  69. package/build/Footer/__snapshots__/Footer.test.js.snap +90 -0
  70. package/build/Footer/styles.js +5 -0
  71. package/build/Grid/Col/Col.js +15 -22
  72. package/build/Grid/Col/Col.test.js +33 -13
  73. package/build/Grid/Col/__snapshots__/Col.test.js.snap +963 -0
  74. package/build/Grid/Col/index.js +22 -1
  75. package/build/Grid/Col/styles.js +97 -116
  76. package/build/Grid/Grid.js +18 -12
  77. package/build/Grid/Row/Row.js +1 -1
  78. package/build/Grid/Row/Row.test.js +2 -2
  79. package/build/Grid/Row/__snapshots__/Row.test.js.snap +22 -0
  80. package/build/Grid/Row/index.js +4 -2
  81. package/build/Grid/index.js +4 -2
  82. package/build/Header/Header.js +35 -31
  83. package/build/Header/Header.test.js +8 -8
  84. package/build/Header/Menu/Menu.js +23 -19
  85. package/build/Header/Menu/Menu.test.js +7 -7
  86. package/build/Header/Menu/__snapshots__/Menu.test.js.snap +113 -0
  87. package/build/Header/Nav/Nav.js +19 -15
  88. package/build/Header/Nav/Nav.test.js +5 -5
  89. package/build/Header/Nav/__snapshots__/Nav.test.js.snap +101 -0
  90. package/build/Header/__snapshots__/Header.test.js.snap +79 -0
  91. package/build/Hidden/Hidden.js +17 -13
  92. package/build/Hidden/Hidden.test.js +6 -6
  93. package/build/Hidden/__snapshots__/Hidden.test.js.snap +3 -0
  94. package/build/Hidden/index.js +4 -2
  95. package/build/Icon/Icon.js +90 -15
  96. package/build/Icon/Icon.test.js +49 -56
  97. package/build/Icon/__snapshots__/Icon.test.js.snap +32 -0
  98. package/build/Icon/index.js +22 -1
  99. package/build/Icon/styles.js +16 -9
  100. package/build/Input/Input.js +29 -25
  101. package/build/Input/Input.test.js +21 -21
  102. package/build/Input/__snapshots__/Input.test.js.snap +194 -0
  103. package/build/Input/index.js +17 -13
  104. package/build/Label/Label.js +17 -13
  105. package/build/Label/Label.test.js +6 -6
  106. package/build/Label/__snapshots__/Label.test.js.snap +82 -0
  107. package/build/LayerApp/LayerApp.js +22 -18
  108. package/build/LayerApp/LayerApp.test.js +4 -4
  109. package/build/LayerApp/__snapshots__/LayerApp.test.js.snap +37 -0
  110. package/build/Modal/Modal.js +55 -37
  111. package/build/Modal/Modal.test.js +15 -12
  112. package/build/Modal/__snapshots__/Modal.test.js.snap +208 -0
  113. package/build/Modal/index.js +19 -13
  114. package/build/Modal/styles.js +43 -31
  115. package/build/NavAside/NavAside.js +24 -19
  116. package/build/NavAside/NavAside.test.js +15 -13
  117. package/build/NavAside/__snapshots__/NavAside.test.js.snap +116 -0
  118. package/build/NavAside/index.js +16 -12
  119. package/build/NavIcon/NavIcon.js +41 -20
  120. package/build/NavIcon/styles.js +6 -16
  121. package/build/NavItem/NavItem.js +29 -16
  122. package/build/NavTab/NavTab.js +38 -29
  123. package/build/NavTop/NavTop.js +20 -16
  124. package/build/OrderBy/OrderBy.js +23 -19
  125. package/build/OrderBy/OrderBy.test.js +6 -6
  126. package/build/OrderBy/__snapshots__/OrderBy.test.js.snap +54 -0
  127. package/build/Pager/Break/Break.js +1 -1
  128. package/build/Pager/Break/Break.test.js +4 -4
  129. package/build/Pager/Break/__snapshots__/Break.test.js.snap +13 -0
  130. package/build/Pager/Page/Page.js +1 -1
  131. package/build/Pager/Page/Page.test.js +5 -5
  132. package/build/Pager/Page/__snapshots__/Page.test.js.snap +27 -0
  133. package/build/Pager/Pager.js +21 -17
  134. package/build/Pager/Pager.test.js +12 -12
  135. package/build/Pager/__snapshots__/Pager.test.js.snap +50 -0
  136. package/build/Pager/styles.js +1 -1
  137. package/build/Pill/Choice/Choice.js +23 -18
  138. package/build/Pill/Choice/styles.js +8 -3
  139. package/build/Pill/Group/Group.js +7 -4
  140. package/build/Pill/Group/styles.js +7 -4
  141. package/build/Pill/Pill.js +36 -23
  142. package/build/Pill/Pill.test.js +12 -12
  143. package/build/Pill/Stack/Stack.js +10 -7
  144. package/build/Pill/Stack/styles.js +4 -1
  145. package/build/Pill/__snapshots__/Pill.test.js.snap +62 -0
  146. package/build/Pill/styles.js +6 -2
  147. package/build/Placeholder/Placeholder.js +2 -2
  148. package/build/Placeholder/Placeholder.test.js +3 -3
  149. package/build/Placeholder/__snapshots__/Placeholder.test.js.snap +130 -0
  150. package/build/Placeholder/styles.js +23 -16
  151. package/build/Provider/Provider.js +89 -0
  152. package/build/Provider/index.js +13 -0
  153. package/build/Provider/useAtomic.js +17 -0
  154. package/build/{hooks → Provider}/usePrevious.js +1 -1
  155. package/build/Radio/Radio.js +29 -15
  156. package/build/Radio/Radio.test.js +6 -6
  157. package/build/Radio/__snapshots__/Radio.test.js.snap +83 -0
  158. package/build/RangeCounter/RangeCounter.js +17 -13
  159. package/build/RangeCounter/RangeCounter.test.js +3 -3
  160. package/build/RangeCounter/__snapshots__/RangeCounter.test.js.snap +20 -0
  161. package/build/RangeCounter/styles.js +1 -1
  162. package/build/Row/Row.js +1 -1
  163. package/build/Row/Row.test.js +2 -2
  164. package/build/Row/__snapshots__/Row.test.js.snap +22 -0
  165. package/build/SightLogo/SightLogo.js +2 -2
  166. package/build/SightLogo/SightLogo.test.js +2 -2
  167. package/build/SightLogo/__snapshots__/SightLogo.test.js.snap +24 -0
  168. package/build/SlideDown/SlideDown.js +41 -27
  169. package/build/SlideDown/SlideDown.test.js +22 -16
  170. package/build/SlideDown/__snapshots__/SlideDown.test.js.snap +42 -0
  171. package/build/SlideToggle/SlideToggle.js +31 -17
  172. package/build/SlideToggle/SlideToggle.test.js +7 -7
  173. package/build/SlideToggle/__snapshots__/SlideToggle.test.js.snap +62 -0
  174. package/build/SubHeader/SubHeader.js +20 -16
  175. package/build/SubHeader/SubHeader.test.js +7 -7
  176. package/build/SubHeader/__snapshots__/SubHeader.test.js.snap +50 -0
  177. package/build/SwitchGroup/SwitchGroup.js +17 -13
  178. package/build/SwitchGroup/SwitchGroup.test.js +6 -6
  179. package/build/SwitchGroup/__snapshots__/SwitchGroup.test.js.snap +52 -0
  180. package/build/SwitchGroup/styles.js +1 -1
  181. package/build/Tag/Tag.js +27 -10
  182. package/build/Tag/Tag.test.js +8 -8
  183. package/build/Tag/__snapshots__/Tag.test.js.snap +137 -0
  184. package/build/Tag/styles.js +72 -27
  185. package/build/Text/Text.js +454 -122
  186. package/build/Text/Text.test.js +13 -13
  187. package/build/Text/__snapshots__/Text.test.js.snap +216 -0
  188. package/build/Text/styles.js +171 -78
  189. package/build/TextField/TextField.js +455 -302
  190. package/build/TextField/TextField.test.js +138 -146
  191. package/build/TextField/__snapshots__/TextField.test.js.snap +258 -0
  192. package/build/TextField/index.js +6 -1
  193. package/build/TextField/styles.js +99 -33
  194. package/build/Tip/Tip.js +91 -27
  195. package/build/Tip/Tip.test.js +8 -8
  196. package/build/Tip/__snapshots__/Tip.test.js.snap +49 -0
  197. package/build/Tip/styles.js +32 -12
  198. package/build/Title/Title.js +16 -12
  199. package/build/Title/Title.test.js +3 -3
  200. package/build/Title/__snapshots__/Title.test.js.snap +31 -0
  201. package/build/Toaster/Toast/Toast.js +11 -11
  202. package/build/Toaster/Toaster.js +27 -23
  203. package/build/Toaster/Toaster.test.js +6 -6
  204. package/build/Toaster/__snapshots__/Toaster.test.js.snap +5 -0
  205. package/build/Tooltip/Tooltip.js +210 -0
  206. package/build/Tooltip/Tooltip.test.js +35 -0
  207. package/build/Tooltip/__snapshots__/Tooltip.test.js.snap +33 -0
  208. package/build/Tooltip/hooks.js +132 -0
  209. package/build/Tooltip/index.js +18 -0
  210. package/build/Tooltip/styles.js +44 -0
  211. package/build/TourTip/TourTip.js +15 -11
  212. package/build/TourTip/TourTip.test.js +2 -2
  213. package/build/TourTip/__snapshots__/TourTip.test.js.snap +74 -0
  214. package/build/Visible/Visible.js +16 -12
  215. package/build/Visible/Visible.test.js +4 -4
  216. package/build/Visible/__snapshots__/Visible.test.js.snap +3 -0
  217. package/build/WindowSize/WindowSize.js +17 -11
  218. package/build/WindowSize/WindowSize.test.js +4 -4
  219. package/build/WindowSize/__snapshots__/WindowSize.test.js.snap +3 -0
  220. package/build/index.js +82 -8
  221. package/build/plugin/babel.js +61 -0
  222. package/build/subatomic/colors.js +8 -3
  223. package/build/subatomic/fonts.js +1 -1
  224. package/build/subatomic/icons/attachment.js +23 -0
  225. package/build/subatomic/icons/attachmentSolid.js +23 -0
  226. package/build/subatomic/icons/avatarSmile.js +23 -0
  227. package/build/subatomic/icons/book.js +23 -0
  228. package/build/subatomic/icons/cash.js +23 -0
  229. package/build/subatomic/icons/copy.js +23 -0
  230. package/build/subatomic/icons/copySolid.js +23 -0
  231. package/build/subatomic/icons/crossSolid.js +23 -0
  232. package/build/subatomic/icons/dislike.js +1 -1
  233. package/build/subatomic/icons/dislikeSolid.js +23 -0
  234. package/build/subatomic/icons/energy.js +23 -0
  235. package/build/subatomic/icons/energySolid.js +23 -0
  236. package/build/subatomic/icons/eye.js +1 -1
  237. package/build/subatomic/icons/eyeClosed.js +1 -1
  238. package/build/subatomic/icons/eyeClosedSolid.js +23 -0
  239. package/build/subatomic/icons/eyeSolid.js +23 -0
  240. package/build/subatomic/icons/hourGlass.js +23 -0
  241. package/build/subatomic/icons/like.js +1 -1
  242. package/build/subatomic/icons/likeSolid.js +23 -0
  243. package/build/subatomic/icons/location.js +23 -0
  244. package/build/subatomic/icons/locationSolid.js +23 -0
  245. package/build/subatomic/icons/matchJob.js +23 -0
  246. package/build/subatomic/icons/messages.js +1 -1
  247. package/build/subatomic/icons/messagesSolid.js +1 -1
  248. package/build/subatomic/icons/moreOptionsHorizontal.js +23 -0
  249. package/build/subatomic/icons/noMessages.js +23 -0
  250. package/build/subatomic/icons/noMessagesSolid.js +23 -0
  251. package/build/subatomic/icons/occDart.js +25 -8
  252. package/build/subatomic/icons/occHorizontal.js +25 -8
  253. package/build/subatomic/icons/occLogo.js +65 -0
  254. package/build/subatomic/icons/occVertical.js +25 -8
  255. package/build/subatomic/icons/profile.js +23 -0
  256. package/build/subatomic/icons/profileSolid.js +23 -0
  257. package/build/subatomic/icons/profileView.js +23 -0
  258. package/build/subatomic/icons/refresh.js +23 -0
  259. package/build/subatomic/icons/refreshSolid.js +23 -0
  260. package/build/subatomic/icons/sendMessage.js +23 -0
  261. package/build/subatomic/icons/sendMessageSolid.js +23 -0
  262. package/build/subatomic/icons/starsSolid.js +23 -0
  263. package/build/subatomic/icons/suitcase.js +23 -0
  264. package/build/subatomic/icons/suitcaseSolid.js +23 -0
  265. package/build/subatomic/icons/tag.js +1 -1
  266. package/build/subatomic/icons/tagSolid.js +23 -0
  267. package/build/subatomic/icons/trash.js +1 -1
  268. package/build/subatomic/icons/trashSolid.js +1 -1
  269. package/build/subatomic/icons/warning.js +23 -0
  270. package/build/subatomic/icons/warningSolid.js +23 -0
  271. package/build/subatomic/icons/webSite.js +23 -0
  272. package/build/subatomic/icons/webSiteSolid.js +23 -0
  273. package/build/subatomic/icons.js +230 -112
  274. package/build/subatomic/mappedIcons.js +171 -0
  275. package/build/tokens/borderRadius.json +8 -0
  276. package/build/tokens/colors.json +567 -0
  277. package/build/tokens/fonts.json +231 -0
  278. package/build/tokens/index.js +47 -0
  279. package/build/tokens/shadows.json +13 -0
  280. package/build/tokens/spacing.json +16 -0
  281. package/commitlint.config.js +6 -0
  282. package/package.json +124 -113
  283. package/playroom/FrameComponent.js +31 -0
  284. package/playroom/styles.js +14 -0
  285. package/playroom.config.js +7 -7
  286. package/build/Grid/Grid.test.js +0 -22
  287. package/build/Grid/Row/Rowdsd.js +0 -39
  288. package/build/hooks/useEventListener.js +0 -23
  289. package/yarn-error.log +0 -10737
@@ -1,284 +1,526 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = void 0;
7
9
 
8
- var _react = _interopRequireWildcard(require("react"));
10
+ var _react = _interopRequireDefault(require("react"));
9
11
 
10
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
13
 
14
+ var _classAutobind = _interopRequireDefault(require("class-autobind"));
15
+
12
16
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
13
17
 
14
18
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
15
19
 
16
- var _classnames2 = _interopRequireDefault(require("classnames"));
17
-
18
20
  var _Text = _interopRequireDefault(require("../Text"));
19
21
 
20
- var _usePrevious = _interopRequireDefault(require("../hooks/usePrevious"));
22
+ var _Icon = _interopRequireDefault(require("../Icon"));
21
23
 
22
- var _styles = _interopRequireDefault(require("./styles"));
24
+ var _colors = _interopRequireDefault(require("../subatomic/colors"));
23
25
 
24
26
  var _functions = require("./functions");
25
27
 
28
+ var _iconSizes = _interopRequireDefault(require("../subatomic/iconSizes"));
29
+
26
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
27
31
 
28
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
32
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
33
+
34
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
35
+
36
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
37
+
38
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
39
+
40
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
41
+
42
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
29
43
 
30
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
44
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
31
45
 
32
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
46
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
33
47
 
34
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
48
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
35
49
 
36
- function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
50
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
51
 
38
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
52
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
39
53
 
40
54
  var arrowDown = 40;
41
55
  var arrowUp = 38;
42
56
  var enter = 13;
43
- /**
44
- * The Droplist component displays a list and filters it with the prop 'term'.
45
- * The value of 'term' es highlighted in every item that matches.
46
- * The array of objects needed to display the items needs a text and an id, and can contain a text that floats on the right. If you're going to group your items by category, you first need to set an array of groups, and each group must contain an array with the items.
47
- */
48
-
49
- var Droplist = function Droplist(_ref) {
50
- var items = _ref.items,
51
- filter = _ref.filter,
52
- term = _ref.term,
53
- isOnFocus = _ref.isOnFocus,
54
- groups = _ref.groups,
55
- groupNameKey = _ref.groupNameKey,
56
- groupIdKey = _ref.groupIdKey,
57
- groupItemsKey = _ref.groupItemsKey,
58
- itemIdKey = _ref.itemIdKey,
59
- itemTextKey = _ref.itemTextKey,
60
- itemTextRightKey = _ref.itemTextRightKey,
61
- onClick = _ref.onClick,
62
- onEnter = _ref.onEnter,
63
- onMouseDown = _ref.onMouseDown,
64
- onMouseUp = _ref.onMouseUp,
65
- className = _ref.className,
66
- id = _ref.id,
67
- style = _ref.style;
68
- var classes = (0, _styles["default"])();
69
-
70
- var _useState = (0, _react.useState)(-1),
71
- _useState2 = _slicedToArray(_useState, 2),
72
- currentItem = _useState2[0],
73
- setCurrentItem = _useState2[1];
74
-
75
- var _useState3 = (0, _react.useState)(-1),
76
- _useState4 = _slicedToArray(_useState3, 2),
77
- currentGroup = _useState4[0],
78
- setCurrentGroup = _useState4[1];
79
-
80
- var _useState5 = (0, _react.useState)(items),
81
- _useState6 = _slicedToArray(_useState5, 2),
82
- _items = _useState6[0],
83
- setItems = _useState6[1];
84
-
85
- var prevTerm = (0, _usePrevious["default"])(term);
86
- var prevItems = (0, _usePrevious["default"])(items);
87
- (0, _react.useEffect)(function () {
88
- global.addEventListener('keydown', onKeyDown);
89
- return function () {
90
- return global.removeEventListener('keydown', onKeyDown);
57
+ var inkLighter = _colors["default"].inkLighter,
58
+ ink = _colors["default"].ink;
59
+ var iconSmall = _iconSizes["default"].small;
60
+ /**
61
+ * The Droplist component displays a list and filters it with the prop 'term'.
62
+ * The value of 'term' es highlighted in every item that matches.
63
+ * The array of objects needed to display the items needs a text and an id, and can contain a text that floats on the right. If you're going to group your items by category, you first need to set an array of groups, and each group must contain an array with the items.
64
+ */
65
+
66
+ var Droplist = /*#__PURE__*/function (_React$Component) {
67
+ _inherits(Droplist, _React$Component);
68
+
69
+ var _super = _createSuper(Droplist);
70
+
71
+ function Droplist(props) {
72
+ var _this;
73
+
74
+ _classCallCheck(this, Droplist);
75
+
76
+ _this = _super.call(this, props);
77
+ (0, _classAutobind["default"])(_assertThisInitialized(_this));
78
+ _this.state = {
79
+ currentItem: -1,
80
+ currentGroup: -1,
81
+ items: props.items
91
82
  };
92
- });
93
- (0, _react.useEffect)(function () {
94
- if (filter) filterItems(items, term);
95
- }, [filterItems, filter, items, term]);
96
- (0, _react.useEffect)(function () {
97
- if (term !== prevTerm || !(0, _isEqual["default"])(items, prevItems)) {
98
- setCurrentItem(-1);
99
- if (filter) filterItems(items, term);else setItems(items);
83
+ return _this;
84
+ }
85
+
86
+ _createClass(Droplist, [{
87
+ key: "componentDidMount",
88
+ value: function componentDidMount() {
89
+ var _this$props = this.props,
90
+ items = _this$props.items,
91
+ filter = _this$props.filter,
92
+ term = _this$props.term;
93
+ window.addEventListener('keydown', this.onKeyDown);
94
+ if (filter) this.filterItems(items, term);
100
95
  }
101
- }, [term, filter, items, prevTerm, prevItems, filterItems]);
102
-
103
- var onKeyDown = function onKeyDown(e) {
104
- if (isOnFocus) {
105
- if (e.which === arrowUp || e.which === arrowDown) {
106
- e.preventDefault();
96
+ }, {
97
+ key: "componentWillReceiveProps",
98
+ value: function componentWillReceiveProps(props) {
99
+ if (props.term !== this.props.term || !(0, _isEqual["default"])(props.items, this.props.items)) {
100
+ this.setState({
101
+ currentItem: -1
102
+ });
103
+ if (props.filter) this.filterItems(props.items, props.term);else this.setState({
104
+ items: props.items
105
+ });
106
+ }
107
+ }
108
+ }, {
109
+ key: "componentWillUnmount",
110
+ value: function componentWillUnmount() {
111
+ window.removeEventListener('keydown', this.onKeyDown);
112
+ }
113
+ }, {
114
+ key: "onKeyDown",
115
+ value: function onKeyDown(e) {
116
+ var items = this.state.items;
117
+ var _this$props2 = this.props,
118
+ isOnFocus = _this$props2.isOnFocus,
119
+ groups = _this$props2.groups;
120
+
121
+ if (isOnFocus) {
122
+ if (e.which === arrowUp || e.which === arrowDown) {
123
+ e.preventDefault();
124
+
125
+ if (groups) {
126
+ if (e.which === arrowDown) {
127
+ this.moveGroupDown();
128
+ } else {
129
+ this.moveGroupUp();
130
+ }
131
+ } else {
132
+ if (e.which === arrowDown) {
133
+ this.moveDown(items);
134
+ } else {
135
+ this.moveUp(items);
136
+ }
137
+ }
138
+ }
107
139
 
140
+ if (e.which === enter) {
141
+ this.onEnter();
142
+ }
143
+ }
144
+ }
145
+ }, {
146
+ key: "onEnter",
147
+ value: function onEnter() {
148
+ var _this$state = this.state,
149
+ currentItem = _this$state.currentItem,
150
+ currentGroup = _this$state.currentGroup,
151
+ items = _this$state.items;
152
+ var _this$props3 = this.props,
153
+ onEnter = _this$props3.onEnter,
154
+ groups = _this$props3.groups,
155
+ groupItemsKey = _this$props3.groupItemsKey;
156
+
157
+ if (currentItem > -1) {
108
158
  if (groups) {
109
- if (e.which === arrowDown) moveGroupDown();else moveGroupUp();
159
+ var selectedGroup = items.find(function (group, i) {
160
+ return i === currentGroup;
161
+ });
162
+ var selectedItem = selectedGroup[groupItemsKey].find(function (item, i) {
163
+ return i === currentItem;
164
+ });
165
+ this.setState({
166
+ currentGroup: -1,
167
+ currentItem: -1
168
+ });
169
+ if (onEnter && !selectedItem.disabled) onEnter(selectedItem);
110
170
  } else {
111
- if (e.which === arrowDown) moveDown(_items);else moveUp(_items);
171
+ var _selectedItem = items.find(function (item, i) {
172
+ return i === currentItem;
173
+ });
174
+
175
+ this.setState({
176
+ currentItem: -1
177
+ });
178
+ if (onEnter && !_selectedItem.disabled) onEnter(_selectedItem);
112
179
  }
113
180
  }
181
+ }
182
+ }, {
183
+ key: "moveGroupDown",
184
+ value: function moveGroupDown() {
185
+ var _this$state2 = this.state,
186
+ currentItem = _this$state2.currentItem,
187
+ currentGroup = _this$state2.currentGroup,
188
+ items = _this$state2.items;
189
+ var groupItemsKey = this.props.groupItemsKey;
190
+
191
+ if (currentGroup === -1) {
192
+ this.moveToNextGroup();
193
+ } else {
194
+ var groupItems = items[currentGroup][groupItemsKey];
114
195
 
115
- if (e.which === enter) _onEnter();
196
+ if (currentItem === groupItems.length - 1) {
197
+ this.moveToNextGroup();
198
+ } else {
199
+ this.moveDown(groupItems);
200
+ }
201
+ }
116
202
  }
117
- };
203
+ }, {
204
+ key: "moveGroupUp",
205
+ value: function moveGroupUp() {
206
+ var _this$state3 = this.state,
207
+ currentItem = _this$state3.currentItem,
208
+ currentGroup = _this$state3.currentGroup,
209
+ items = _this$state3.items;
210
+ var groupItemsKey = this.props.groupItemsKey;
211
+
212
+ if (currentGroup === -1) {
213
+ this.moveToPreviousGroup();
214
+ } else {
215
+ var groupItems = items[currentGroup][groupItemsKey];
118
216
 
119
- var _onEnter = (0, _react.useCallback)(function () {
120
- if (currentItem > -1) {
121
- if (groups) {
122
- var selectedGroup = _items.find(function (group, i) {
123
- return i === currentGroup;
217
+ if (currentItem === 0) {
218
+ this.moveToPreviousGroup();
219
+ } else {
220
+ this.moveUp(groupItems);
221
+ }
222
+ }
223
+ }
224
+ }, {
225
+ key: "moveToNextGroup",
226
+ value: function moveToNextGroup() {
227
+ var _this2 = this;
228
+
229
+ var _this$state4 = this.state,
230
+ currentGroup = _this$state4.currentGroup,
231
+ items = _this$state4.items;
232
+ var groupItemsKey = this.props.groupItemsKey;
233
+
234
+ if (currentGroup === items.length - 1) {
235
+ this.setState({
236
+ currentGroup: -1,
237
+ currentItem: -1
124
238
  });
125
-
126
- var selectedItem = selectedGroup[groupItemsKey].find(function (item, i) {
127
- return i === currentItem;
239
+ } else {
240
+ this.setState({
241
+ currentGroup: currentGroup + 1
242
+ }, function () {
243
+ var currentGroup = _this2.state.currentGroup;
244
+
245
+ if (items[currentGroup][groupItemsKey] && items[currentGroup][groupItemsKey].length) {
246
+ _this2.setState({
247
+ currentItem: 0
248
+ });
249
+ } else {
250
+ _this2.moveToNextGroup();
251
+ }
252
+ });
253
+ }
254
+ }
255
+ }, {
256
+ key: "moveToPreviousGroup",
257
+ value: function moveToPreviousGroup() {
258
+ var _this3 = this;
259
+
260
+ var _this$state5 = this.state,
261
+ currentGroup = _this$state5.currentGroup,
262
+ items = _this$state5.items;
263
+ var groupItemsKey = this.props.groupItemsKey;
264
+
265
+ if (currentGroup === -1) {
266
+ this.setState({
267
+ currentGroup: items.length - 1
268
+ }, function () {
269
+ var currentGroup = _this3.state.currentGroup;
270
+
271
+ if (items[currentGroup][groupItemsKey] && items[currentGroup][groupItemsKey].length) {
272
+ _this3.setState({
273
+ currentItem: items[currentGroup][groupItemsKey].length - 1
274
+ });
275
+ } else {
276
+ _this3.moveToPreviousGroup();
277
+ }
278
+ });
279
+ } else if (currentGroup === 0) {
280
+ this.setState({
281
+ currentGroup: -1,
282
+ currentItem: -1
128
283
  });
129
- resetPosition();
130
- if (onEnter) onEnter(selectedItem);
131
284
  } else {
132
- var _selectedItem = _items.find(function (item, i) {
133
- return i === currentItem;
285
+ this.setState({
286
+ currentGroup: currentGroup - 1
287
+ }, function () {
288
+ var currentGroup = _this3.state.currentGroup;
289
+
290
+ if (items[currentGroup][groupItemsKey] && items[currentGroup][groupItemsKey].length) {
291
+ _this3.setState({
292
+ currentItem: items[currentGroup][groupItemsKey].length - 1
293
+ });
294
+ } else {
295
+ _this3.moveToPreviousGroup();
296
+ }
134
297
  });
135
-
136
- setCurrentItem(-1);
137
- if (onEnter) onEnter(_selectedItem);
138
298
  }
139
299
  }
140
- }, [_items, currentGroup, currentItem, groupItemsKey, groups, onEnter, resetPosition]);
141
-
142
- var resetPosition = (0, _react.useCallback)(function () {
143
- setCurrentGroup(-1);
144
- setCurrentItem(-1);
145
- }, []);
146
- var moveGroupDown = (0, _react.useCallback)(function () {
147
- if (currentGroup === -1) moveToNextGroup();else {
148
- var groupItems = _items[currentGroup][groupItemsKey];
149
- if (currentItem === groupItems.length - 1) moveToNextGroup();else moveDown(groupItems);
300
+ }, {
301
+ key: "moveDown",
302
+ value: function moveDown(items) {
303
+ var currentItem = this.state.currentItem;
304
+
305
+ if (currentItem === items.length - 1) {
306
+ this.setState({
307
+ currentItem: -1
308
+ });
309
+ } else {
310
+ this.setState({
311
+ currentItem: currentItem + 1
312
+ });
313
+ }
150
314
  }
151
- }, [_items, currentGroup, currentItem, groupItemsKey, moveDown, moveToNextGroup]);
152
-
153
- var moveGroupUp = function moveGroupUp() {
154
- if (currentGroup === -1) moveToPreviousGroup();else {
155
- var groupItems = _items[currentGroup][groupItemsKey];
156
- if (currentItem === 0) moveToPreviousGroup();else moveUp(groupItems);
315
+ }, {
316
+ key: "moveUp",
317
+ value: function moveUp() {
318
+ var _this$state6 = this.state,
319
+ currentItem = _this$state6.currentItem,
320
+ items = _this$state6.items;
321
+
322
+ if (currentItem === -1) {
323
+ this.setState({
324
+ currentItem: items.length - 1
325
+ });
326
+ } else {
327
+ this.setState({
328
+ currentItem: currentItem - 1
329
+ });
330
+ }
157
331
  }
158
- };
159
-
160
- var moveToNextGroup = (0, _react.useCallback)(function () {
161
- if (currentGroup === _items.length - 1) {
162
- resetPosition();
163
- } else {
164
- var newGroup = currentGroup + 1;
165
- setCurrentGroup(newGroup);
166
- if (_items[newGroup][groupItemsKey] && _items[newGroup][groupItemsKey].length) setCurrentItem(0);else moveToNextGroup();
332
+ }, {
333
+ key: "onClick",
334
+ value: function onClick(item, e) {
335
+ var onClick = this.props.onClick;
336
+ e.stopPropagation();
337
+ this.setState({
338
+ currentGroup: -1,
339
+ currentItem: -1
340
+ });
341
+ if (onClick) onClick(item);
167
342
  }
168
- }, [_items, currentGroup, groupItemsKey, resetPosition]);
169
- var moveToPreviousGroup = (0, _react.useCallback)(function () {
170
- if (currentGroup === -1) {
171
- var newGroup = _items.length - 1;
172
- setCurrentGroup(newGroup);
173
- var subItems = _items[newGroup][groupItemsKey] || [];
174
- if (subItems.length) setCurrentItem(subItems.length - 1);else moveToPreviousGroup();
175
- } else if (currentGroup === 0) {
176
- resetPosition();
177
- } else {
178
- var _newGroup = currentGroup - 1;
179
-
180
- setCurrentGroup(_newGroup);
181
-
182
- var _subItems = _items[_newGroup][groupItemsKey] || [];
183
-
184
- if (_subItems.length) setCurrentItem(_subItems.length - 1);else moveToPreviousGroup();
343
+ }, {
344
+ key: "onMouseDown",
345
+ value: function onMouseDown(item, e) {
346
+ var onMouseDown = this.props.onMouseDown;
347
+ e.stopPropagation();
348
+ this.setState({
349
+ currentGroup: -1,
350
+ currentItem: -1
351
+ });
352
+ if (onMouseDown) onMouseDown(item);
185
353
  }
186
- }, [_items, currentGroup, groupItemsKey, resetPosition]);
187
- var moveDown = (0, _react.useCallback)(function (items) {
188
- if (currentItem === items.length - 1) setCurrentItem(-1);else setCurrentItem(currentItem + 1);
189
- }, [currentItem]);
190
- var moveUp = (0, _react.useCallback)(function (items) {
191
- if (currentItem === -1) setCurrentItem(items.length - 1);else setCurrentItem(currentItem - 1);
192
- }, [currentItem]);
193
-
194
- var _onClick = (0, _react.useCallback)(function (item, e) {
195
- e.stopPropagation();
196
- resetPosition();
197
- if (onClick) onClick(item);
198
- }, [onClick, resetPosition]);
199
-
200
- var _onMouseDown = (0, _react.useCallback)(function (item, e) {
201
- e.stopPropagation();
202
- resetPosition();
203
- if (onMouseDown) onMouseDown(item);
204
- }, [onMouseDown, resetPosition]);
205
-
206
- var _onMouseUp = (0, _react.useCallback)(function (item, e) {
207
- e.stopPropagation();
208
- resetPosition();
209
- if (onMouseUp) onMouseUp(item);
210
- }, [onMouseUp, resetPosition]);
211
-
212
- var filterItems = (0, _react.useCallback)(function (items, term) {
213
- if (groups) {
214
- var newItems = (0, _cloneDeep["default"])(items);
215
- newItems = items.map(function (group) {
216
- group[groupItemsKey] = group[groupItemsKey].filter(function (item) {
354
+ }, {
355
+ key: "onMouseUp",
356
+ value: function onMouseUp(item, e) {
357
+ var onMouseUp = this.props.onMouseUp;
358
+ e.stopPropagation();
359
+ this.setState({
360
+ currentGroup: -1,
361
+ currentItem: -1
362
+ });
363
+ if (onMouseUp) onMouseUp(item);
364
+ }
365
+ }, {
366
+ key: "filterItems",
367
+ value: function filterItems(items, term) {
368
+ var _this$props4 = this.props,
369
+ itemTextKey = _this$props4.itemTextKey,
370
+ groupItemsKey = _this$props4.groupItemsKey,
371
+ groups = _this$props4.groups;
372
+
373
+ if (groups) {
374
+ var newItems = (0, _cloneDeep["default"])(items);
375
+ newItems = items.map(function (group) {
376
+ group[groupItemsKey] = group[groupItemsKey].filter(function (item) {
377
+ return (0, _functions.compareText)(item[itemTextKey], term) >= 0;
378
+ });
379
+ return group;
380
+ });
381
+ newItems = newItems.filter(function (group) {
382
+ return group[groupItemsKey].length > 0;
383
+ });
384
+ this.setState({
385
+ items: newItems
386
+ });
387
+ } else {
388
+ var _newItems = items.filter(function (item) {
217
389
  return (0, _functions.compareText)(item[itemTextKey], term) >= 0;
218
390
  });
219
- return group;
220
- });
221
- newItems = newItems.filter(function (group) {
222
- return group[groupItemsKey].length > 0;
223
- });
224
- setItems(newItems);
225
- } else {
226
- var _newItems = items.filter(function (item) {
227
- return (0, _functions.compareText)(item[itemTextKey], term) >= 0;
228
- });
229
391
 
230
- setItems(_newItems);
392
+ this.setState({
393
+ items: _newItems
394
+ });
395
+ }
231
396
  }
232
- }, [groupItemsKey, groups, itemTextKey]);
233
- var renderList = (0, _react.useCallback)(function (items, selectedGroup) {
234
- var itemsDOM = items.map(function (item, i) {
235
- var index = (0, _functions.compareText)(item[itemTextKey], term);
236
- var itemClassName = (0, _classnames2["default"])(classes.item, _defineProperty({}, classes.onFocus, selectedGroup && currentItem === i));
237
- var content;
238
-
239
- if (index >= 0) {
240
- var text = (0, _functions.separateText)(item[itemTextKey], index, term);
241
- content = _react["default"].createElement(_Text["default"], null, text[0].length ? text[0] : '', _react["default"].createElement(_Text["default"], {
242
- tag: "b",
243
- strong: true
244
- }, text[1].length ? text[1] : ''), text[2].length ? text[2] : '');
245
- } else content = _react["default"].createElement(_Text["default"], null, item[itemTextKey]);
246
-
247
- return _react["default"].createElement("div", {
248
- key: item[itemIdKey],
249
- onClick: function onClick(e) {
250
- return _onClick(item, e);
251
- },
252
- onMouseDown: function onMouseDown(e) {
253
- return _onMouseDown(item, e);
254
- },
255
- onMouseUp: function onMouseUp(e) {
256
- return _onMouseUp(item, e);
257
- },
258
- className: itemClassName
259
- }, content, item[itemTextRightKey] && _react["default"].createElement("span", {
260
- className: classes.right
261
- }, _react["default"].createElement(_Text["default"], {
262
- tag: "span",
263
- low: true
264
- }, item[itemTextRightKey])));
265
- });
266
- return itemsDOM;
267
- }, [_onClick, _onMouseDown, _onMouseUp, classes.item, classes.onFocus, classes.right, currentItem, itemIdKey, itemTextKey, itemTextRightKey, term]);
268
- return _react["default"].createElement("div", {
269
- className: (0, _classnames2["default"])(classes.block, className),
270
- id: id,
271
- style: style
272
- }, groups ? _items.map(function (group, i) {
273
- return _react["default"].createElement("div", {
274
- key: group[groupIdKey]
275
- }, _react["default"].createElement(_Text["default"], {
276
- small: true,
277
- mid: true,
278
- className: classes.group
279
- }, group[groupNameKey].toUpperCase()), renderList(group[groupItemsKey], currentGroup === i));
280
- }) : renderList(_items, true));
281
- };
397
+ }, {
398
+ key: "renderList",
399
+ value: function renderList(items, selectedGroup) {
400
+ var _this4 = this;
401
+
402
+ var currentItem = this.state.currentItem;
403
+ var _this$props5 = this.props,
404
+ classes = _this$props5.classes,
405
+ itemIdKey = _this$props5.itemIdKey,
406
+ itemTextKey = _this$props5.itemTextKey,
407
+ itemTextRightKey = _this$props5.itemTextRightKey,
408
+ term = _this$props5.term,
409
+ testId = _this$props5.testId;
410
+ var itemsDOM = items.map(function (item, i) {
411
+ var index = (0, _functions.compareText)(item[itemTextKey], term);
412
+
413
+ if (index >= 0) {
414
+ var text = (0, _functions.separateText)(item[itemTextKey], index, term);
415
+ return /*#__PURE__*/_react["default"].createElement("div", _extends({
416
+ key: item[itemIdKey],
417
+ onClick: !item.disabled ? function (e) {
418
+ return _this4.onClick(item, e);
419
+ } : null,
420
+ onMouseDown: function onMouseDown(e) {
421
+ return _this4.onMouseDown(item, e);
422
+ },
423
+ onMouseUp: function onMouseUp(e) {
424
+ return _this4.onMouseUp(item, e);
425
+ },
426
+ className: "".concat(classes.item).concat(selectedGroup && currentItem === i ? " ".concat(classes.onFocus) : '').concat(!item.disabled ? " ".concat(classes.itemPointer) : '')
427
+ }, testId && {
428
+ 'data-testid': "".concat(testId, "__droplist-item-").concat(i)
429
+ }), /*#__PURE__*/_react["default"].createElement("div", null, item.iconName && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
430
+ iconName: item.iconName,
431
+ width: iconSmall,
432
+ height: iconSmall,
433
+ display: "inline-block",
434
+ className: classes.icon,
435
+ colors: [item.disabled ? inkLighter : ink]
436
+ }), /*#__PURE__*/_react["default"].createElement(_Text["default"], {
437
+ className: item.iconName ? classes.iconText : '',
438
+ low: item.disabled
439
+ }, text[0].length ? text[0] : '', /*#__PURE__*/_react["default"].createElement(_Text["default"], {
440
+ tag: "b",
441
+ strong: true,
442
+ low: item.disabled
443
+ }, text[1].length ? text[1] : ''), text[2].length ? text[2] : '', item.extraText && /*#__PURE__*/_react["default"].createElement(_Text["default"], {
444
+ tag: "span",
445
+ strong: true,
446
+ low: item.disabled,
447
+ className: "".concat(classes.extraText).concat(!item.disabled ? " ".concat(classes.extraTextColor) : '')
448
+ }, item.extraText))), item[itemTextRightKey] && /*#__PURE__*/_react["default"].createElement("span", {
449
+ className: classes.right
450
+ }, /*#__PURE__*/_react["default"].createElement(_Text["default"], {
451
+ tag: "span",
452
+ low: true
453
+ }, item[itemTextRightKey])));
454
+ } else {
455
+ return /*#__PURE__*/_react["default"].createElement("div", _extends({
456
+ key: item[itemIdKey],
457
+ onClick: function onClick(e) {
458
+ return _this4.onClick(item, e);
459
+ },
460
+ onMouseDown: function onMouseDown(e) {
461
+ return _this4.onMouseDown(item, e);
462
+ },
463
+ onMouseUp: function onMouseUp(e) {
464
+ return _this4.onMouseUp(item, e);
465
+ },
466
+ className: "".concat(classes.item).concat(selectedGroup && currentItem === i ? " ".concat(classes.onFocus) : '')
467
+ }, testId && {
468
+ 'data-testid': "".concat(testId, "__droplist-item-").concat(i)
469
+ }), /*#__PURE__*/_react["default"].createElement("div", null, item.iconName && /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
470
+ iconName: item.iconName,
471
+ width: 14,
472
+ height: 14,
473
+ display: "inline-block",
474
+ colors: [inkLighter]
475
+ }), /*#__PURE__*/_react["default"].createElement(_Text["default"], null, item[itemTextKey], item.extraText && /*#__PURE__*/_react["default"].createElement(_Text["default"], {
476
+ tag: "span",
477
+ strong: true,
478
+ className: classes.extraText
479
+ }, item.extraText))), item[itemTextRightKey] && /*#__PURE__*/_react["default"].createElement("span", {
480
+ className: classes.right
481
+ }, /*#__PURE__*/_react["default"].createElement(_Text["default"], {
482
+ tag: "span",
483
+ low: true
484
+ }, item[itemTextRightKey])));
485
+ }
486
+ });
487
+ return itemsDOM;
488
+ }
489
+ }, {
490
+ key: "render",
491
+ value: function render() {
492
+ var _this5 = this;
493
+
494
+ var _this$state7 = this.state,
495
+ items = _this$state7.items,
496
+ currentGroup = _this$state7.currentGroup;
497
+ var _this$props6 = this.props,
498
+ classes = _this$props6.classes,
499
+ className = _this$props6.className,
500
+ style = _this$props6.style,
501
+ id = _this$props6.id,
502
+ groups = _this$props6.groups,
503
+ groupNameKey = _this$props6.groupNameKey,
504
+ groupIdKey = _this$props6.groupIdKey,
505
+ groupItemsKey = _this$props6.groupItemsKey;
506
+ return /*#__PURE__*/_react["default"].createElement("div", {
507
+ className: "".concat(classes.block).concat(className ? " ".concat(className) : ''),
508
+ id: id,
509
+ style: style
510
+ }, groups ? items.map(function (group, index) {
511
+ return /*#__PURE__*/_react["default"].createElement("div", {
512
+ key: group[groupIdKey]
513
+ }, /*#__PURE__*/_react["default"].createElement(_Text["default"], {
514
+ small: true,
515
+ mid: true,
516
+ className: classes.group
517
+ }, group[groupNameKey].toUpperCase()), _this5.renderList(group[groupItemsKey], currentGroup === index));
518
+ }) : this.renderList(items, true));
519
+ }
520
+ }]);
521
+
522
+ return Droplist;
523
+ }(_react["default"].Component);
282
524
 
283
525
  Droplist.defaultProps = {
284
526
  groups: false,
@@ -292,6 +534,8 @@ Droplist.defaultProps = {
292
534
  filter: true
293
535
  };
294
536
  Droplist.propTypes = {
537
+ classes: _propTypes["default"].object.isRequired,
538
+
295
539
  /** Array of objects with all the items to display. */
296
540
  items: _propTypes["default"].array,
297
541
 
@@ -338,7 +582,10 @@ Droplist.propTypes = {
338
582
  isOnFocus: _propTypes["default"].bool,
339
583
  id: _propTypes["default"].string,
340
584
  className: _propTypes["default"].string,
341
- style: _propTypes["default"].object
585
+ style: _propTypes["default"].object,
586
+
587
+ /** The testId property adds the data attribute data-testid to the main element and should be used for testing only. */
588
+ testId: _propTypes["default"].string
342
589
  };
343
590
  var _default = Droplist;
344
591
  exports["default"] = _default;