linear-react-components-ui 1.0.2 → 1.0.3-beta.1

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 (331) hide show
  1. package/lib/@types/Align.d.ts +1 -1
  2. package/lib/@types/ButtonTypes.d.ts +1 -1
  3. package/lib/@types/ColorStyles.d.ts +1 -1
  4. package/lib/@types/DataCombo.d.ts +1 -1
  5. package/lib/@types/Icon.d.ts +1 -1
  6. package/lib/@types/LabelStyles.d.ts +1 -1
  7. package/lib/@types/Period.d.ts +1 -1
  8. package/lib/@types/PermissionAttr.d.ts +2 -2
  9. package/lib/@types/PointerEvents.d.ts +1 -1
  10. package/lib/@types/Position.d.ts +1 -1
  11. package/lib/@types/PositionAlert.d.ts +1 -1
  12. package/lib/@types/Size.d.ts +1 -1
  13. package/lib/@types/SizePixels.d.ts +1 -1
  14. package/lib/alerts/AlertContainer.js +21 -5
  15. package/lib/alerts/AlertProvider.js +45 -15
  16. package/lib/alerts/BaseAlert.js +20 -4
  17. package/lib/alerts/Message.js +32 -21
  18. package/lib/alerts/alert.spec.js +133 -0
  19. package/lib/alerts/helpers.js +2 -0
  20. package/lib/alerts/index.d.ts +1 -4
  21. package/lib/alerts/index.js +4 -0
  22. package/lib/alerts/types.d.ts +4 -4
  23. package/lib/alerts/withAlert.js +12 -1
  24. package/lib/avatar/avatar.spec.js +190 -0
  25. package/lib/avatar/index.js +35 -20
  26. package/lib/badge/badge.spec.js +127 -0
  27. package/lib/badge/index.js +14 -9
  28. package/lib/buttons/ActivateButton.js +6 -0
  29. package/lib/buttons/AddButton.js +7 -0
  30. package/lib/buttons/Button.js +15 -2
  31. package/lib/buttons/ButtonGroups.js +4 -0
  32. package/lib/buttons/CancelButton.js +11 -1
  33. package/lib/buttons/DangerButton.js +11 -1
  34. package/lib/buttons/DefaultButton.js +81 -45
  35. package/lib/buttons/DestroyButton.js +12 -1
  36. package/lib/buttons/EditButton.js +6 -0
  37. package/lib/buttons/InactivateButton.js +6 -0
  38. package/lib/buttons/InfoButton.js +11 -1
  39. package/lib/buttons/PrimaryButton.js +11 -1
  40. package/lib/buttons/RestoreButton.js +6 -0
  41. package/lib/buttons/SaveButton.js +11 -1
  42. package/lib/buttons/SpinnerLoading.js +230 -0
  43. package/lib/buttons/SuccessButton.js +11 -1
  44. package/lib/buttons/WarningButton.js +11 -1
  45. package/lib/buttons/button_container/index.js +11 -5
  46. package/lib/buttons/buttons.spec.js +504 -0
  47. package/lib/buttons/index.d.ts +1 -4
  48. package/lib/buttons/index.js +18 -0
  49. package/lib/buttons/split_button/index.js +17 -11
  50. package/lib/calendar/DangerCalendar.js +11 -1
  51. package/lib/calendar/InfoCalendar.js +11 -1
  52. package/lib/calendar/PrimaryCalendar.js +11 -1
  53. package/lib/calendar/SuccessCalendar.js +11 -1
  54. package/lib/calendar/WarningCalendar.js +11 -1
  55. package/lib/calendar/base/Day.js +13 -2
  56. package/lib/calendar/base/Month.js +18 -1
  57. package/lib/calendar/base/Week.js +18 -2
  58. package/lib/calendar/base/helpers.js +24 -8
  59. package/lib/calendar/base/index.js +37 -13
  60. package/lib/calendar/calendar.spec.js +171 -0
  61. package/lib/calendar/index.d.ts +1 -4
  62. package/lib/calendar/index.js +8 -0
  63. package/lib/checkbox/Label.js +7 -1
  64. package/lib/checkbox/checkbox.spec.js +215 -0
  65. package/lib/checkbox/index.js +53 -28
  66. package/lib/checkbox/types.d.ts +2 -2
  67. package/lib/dialog/Alert.js +8 -0
  68. package/lib/dialog/Custom.js +17 -5
  69. package/lib/dialog/Error.js +8 -0
  70. package/lib/dialog/Information.js +8 -0
  71. package/lib/dialog/Question.js +15 -4
  72. package/lib/dialog/Warning.js +8 -0
  73. package/lib/dialog/base/Content.js +6 -1
  74. package/lib/dialog/base/Footer.js +4 -0
  75. package/lib/dialog/base/Header.js +13 -5
  76. package/lib/dialog/base/index.js +28 -7
  77. package/lib/dialog/base/style.js +2 -0
  78. package/lib/dialog/dialog.spec.js +488 -0
  79. package/lib/dialog/form/index.js +29 -9
  80. package/lib/dialog/index.d.ts +1 -4
  81. package/lib/dialog/index.js +9 -0
  82. package/lib/drawer/Content.d.ts +0 -1
  83. package/lib/drawer/Content.js +13 -2
  84. package/lib/drawer/Drawer.d.ts +0 -1
  85. package/lib/drawer/Drawer.js +55 -22
  86. package/lib/drawer/Drawer.spec.js +258 -0
  87. package/lib/drawer/Header.d.ts +0 -1
  88. package/lib/drawer/Header.js +27 -10
  89. package/lib/drawer/helpers.d.ts +0 -1
  90. package/lib/drawer/helpers.js +4 -0
  91. package/lib/drawer/index.d.ts +0 -1
  92. package/lib/drawer/index.js +8 -0
  93. package/lib/drawer/types.d.ts +1 -2
  94. package/lib/dropdown/Popup.js +32 -19
  95. package/lib/dropdown/dropdown.spec.js +169 -0
  96. package/lib/dropdown/helper.js +4 -0
  97. package/lib/dropdown/withDropdown.js +47 -18
  98. package/lib/fieldset/fieldset.spec.js +329 -0
  99. package/lib/fieldset/index.js +46 -21
  100. package/lib/form/Field.js +42 -16
  101. package/lib/form/FieldArray.js +32 -15
  102. package/lib/form/FieldNumber.js +20 -6
  103. package/lib/form/FieldPeriod.js +21 -9
  104. package/lib/form/form.spec.js +293 -0
  105. package/lib/form/helpers.js +30 -5
  106. package/lib/form/index.js +91 -36
  107. package/lib/form/types.d.ts +6 -6
  108. package/lib/form/withFieldHOC.js +34 -15
  109. package/lib/form/withFormSecurity.js +28 -5
  110. package/lib/gridlayout/GridCol.js +11 -5
  111. package/lib/gridlayout/GridRow.js +9 -3
  112. package/lib/gridlayout/gridLayout.spec.js +169 -0
  113. package/lib/gridlayout/index.d.ts +1 -4
  114. package/lib/gridlayout/index.js +4 -0
  115. package/lib/icons/icons.spec.js +86 -0
  116. package/lib/icons/index.js +26 -16
  117. package/lib/icons/types.d.ts +1 -1
  118. package/lib/index.d.ts +1 -1
  119. package/lib/index.js +10 -0
  120. package/lib/inputs/base/InputTextBase.js +75 -50
  121. package/lib/inputs/base/base.spec.js +690 -0
  122. package/lib/inputs/base/helpers.d.ts +1 -1
  123. package/lib/inputs/base/helpers.js +40 -7
  124. package/lib/inputs/base/index.js +1 -0
  125. package/lib/inputs/base/types.d.ts +1 -0
  126. package/lib/inputs/color/color_input.spec.js +174 -0
  127. package/lib/inputs/color/index.js +38 -11
  128. package/lib/inputs/date/Dialog.js +7 -2
  129. package/lib/inputs/date/Dropdown.js +8 -1
  130. package/lib/inputs/date/date.spec.js +354 -0
  131. package/lib/inputs/date/helpers.js +11 -2
  132. package/lib/inputs/date/index.js +101 -48
  133. package/lib/inputs/file/DefaultFile.js +42 -13
  134. package/lib/inputs/file/DragDropFile.js +90 -37
  135. package/lib/inputs/file/File.js +25 -4
  136. package/lib/inputs/file/FileButtonSettings.js +11 -5
  137. package/lib/inputs/file/helpers.js +5 -0
  138. package/lib/inputs/file/index.d.ts +1 -4
  139. package/lib/inputs/file/index.js +6 -0
  140. package/lib/inputs/file/types.d.ts +1 -1
  141. package/lib/inputs/inputHOC.d.ts +1 -2
  142. package/lib/inputs/inputHOC.js +34 -10
  143. package/lib/inputs/mask/BaseMask.js +17 -1
  144. package/lib/inputs/mask/Cnpj.js +37 -12
  145. package/lib/inputs/mask/Cpf.js +33 -10
  146. package/lib/inputs/mask/Phone.js +6 -0
  147. package/lib/inputs/mask/ZipCode.js +6 -0
  148. package/lib/inputs/mask/helpers.d.ts +1 -2
  149. package/lib/inputs/mask/helpers.js +20 -8
  150. package/lib/inputs/mask/imaskHOC.d.ts +1 -2
  151. package/lib/inputs/mask/imaskHOC.js +83 -52
  152. package/lib/inputs/mask/index.d.ts +1 -4
  153. package/lib/inputs/mask/index.js +7 -0
  154. package/lib/inputs/mask/input_mask.spec.js +607 -0
  155. package/lib/inputs/multiSelect/ActionButtons.js +13 -4
  156. package/lib/inputs/multiSelect/Dropdown.js +45 -22
  157. package/lib/inputs/multiSelect/helper.js +4 -2
  158. package/lib/inputs/multiSelect/index.js +104 -40
  159. package/lib/inputs/number/BaseNumber.d.ts +1 -2
  160. package/lib/inputs/number/BaseNumber.js +16 -3
  161. package/lib/inputs/number/Currency.d.ts +1 -2
  162. package/lib/inputs/number/Currency.js +7 -1
  163. package/lib/inputs/number/Decimal.d.ts +1 -2
  164. package/lib/inputs/number/Decimal.js +5 -0
  165. package/lib/inputs/number/format_number.js +7 -0
  166. package/lib/inputs/number/index.d.ts +1 -2
  167. package/lib/inputs/number/index.js +13 -3
  168. package/lib/inputs/number/numberfield.spec.js +215 -0
  169. package/lib/inputs/number/types.d.ts +1 -2
  170. package/lib/inputs/period/Dialog.js +7 -2
  171. package/lib/inputs/period/Dropdown.js +7 -0
  172. package/lib/inputs/period/PeriodList.js +7 -1
  173. package/lib/inputs/period/helper.js +12 -2
  174. package/lib/inputs/period/index.js +114 -43
  175. package/lib/inputs/period/types.d.ts +1 -1
  176. package/lib/inputs/search/index.d.ts +1 -2
  177. package/lib/inputs/search/index.js +68 -27
  178. package/lib/inputs/search/search_input.spec.js +209 -0
  179. package/lib/inputs/select/ActionButtons.d.ts +1 -2
  180. package/lib/inputs/select/ActionButtons.js +12 -4
  181. package/lib/inputs/select/Dropdown.d.ts +1 -2
  182. package/lib/inputs/select/Dropdown.js +48 -28
  183. package/lib/inputs/select/helper.d.ts +1 -2
  184. package/lib/inputs/select/helper.js +25 -9
  185. package/lib/inputs/select/index.d.ts +1 -1
  186. package/lib/inputs/select/index.js +18 -3
  187. package/lib/inputs/select/multiple/Selecteds.d.ts +1 -1
  188. package/lib/inputs/select/multiple/Selecteds.js +7 -3
  189. package/lib/inputs/select/multiple/index.d.ts +1 -1
  190. package/lib/inputs/select/multiple/index.js +96 -37
  191. package/lib/inputs/select/select.spec.js +395 -0
  192. package/lib/inputs/select/simple/index.d.ts +1 -1
  193. package/lib/inputs/select/simple/index.js +118 -54
  194. package/lib/inputs/select/types.d.ts +7 -2
  195. package/lib/inputs/text/index.js +5 -1
  196. package/lib/inputs/text/textfield.spec.js +215 -0
  197. package/lib/inputs/text/types.d.ts +1 -1
  198. package/lib/inputs/textarea/index.js +10 -4
  199. package/lib/inputs/textarea/textarea.spec.js +59 -0
  200. package/lib/inputs/types.d.ts +3 -9
  201. package/lib/internals/withTooltip.js +70 -25
  202. package/lib/labelMessages/index.js +45 -25
  203. package/lib/labelMessages/labelMessages.spec.js +176 -0
  204. package/lib/labels/DangerLabel.js +11 -1
  205. package/lib/labels/DefaultLabel.js +41 -19
  206. package/lib/labels/InfoLabel.js +11 -1
  207. package/lib/labels/PrimaryLabel.js +11 -1
  208. package/lib/labels/SuccessLabel.js +11 -1
  209. package/lib/labels/WarningLabel.js +11 -1
  210. package/lib/labels/index.d.ts +1 -4
  211. package/lib/labels/index.js +10 -0
  212. package/lib/labels/label.spec.js +162 -0
  213. package/lib/labels/label_container/index.js +7 -3
  214. package/lib/list/Header.js +7 -3
  215. package/lib/list/Item.js +68 -33
  216. package/lib/list/Separator.js +4 -0
  217. package/lib/list/helpers.js +4 -0
  218. package/lib/list/index.js +60 -25
  219. package/lib/list/list.spec.js +769 -0
  220. package/lib/list/types.d.ts +1 -1
  221. package/lib/menus/float/MenuItem.js +26 -9
  222. package/lib/menus/float/SubMenuContainer.js +17 -5
  223. package/lib/menus/float/float-menu.spec.js +221 -0
  224. package/lib/menus/float/helpers.js +4 -0
  225. package/lib/menus/float/index.js +21 -8
  226. package/lib/menus/index.d.ts +1 -4
  227. package/lib/menus/index.js +3 -0
  228. package/lib/menus/sidenav/ExpandMenu.js +7 -2
  229. package/lib/menus/sidenav/MenuLink.js +12 -3
  230. package/lib/menus/sidenav/NavMenuGroup.js +12 -3
  231. package/lib/menus/sidenav/NavMenuItem.js +56 -27
  232. package/lib/menus/sidenav/NavSubMenuItem.js +27 -8
  233. package/lib/menus/sidenav/helpers.js +9 -0
  234. package/lib/menus/sidenav/index.js +75 -26
  235. package/lib/menus/sidenav/popup_menu_search/EmptyList.js +7 -2
  236. package/lib/menus/sidenav/popup_menu_search/index.js +45 -15
  237. package/lib/menus/sidenav/sidenav.spec.js +379 -0
  238. package/lib/menus/sidenav/types.d.ts +1 -1
  239. package/lib/noPermission/index.js +6 -0
  240. package/lib/panel/Content.d.ts +1 -1
  241. package/lib/panel/Content.js +22 -7
  242. package/lib/panel/DangerPanel.d.ts +1 -1
  243. package/lib/panel/DangerPanel.js +7 -0
  244. package/lib/panel/Default.d.ts +1 -1
  245. package/lib/panel/Default.js +44 -20
  246. package/lib/panel/Header.d.ts +1 -1
  247. package/lib/panel/Header.js +27 -12
  248. package/lib/panel/InfoPanel.d.ts +1 -1
  249. package/lib/panel/InfoPanel.js +7 -0
  250. package/lib/panel/PrimaryPanel.d.ts +1 -1
  251. package/lib/panel/PrimaryPanel.js +7 -0
  252. package/lib/panel/SuccessPanel.d.ts +1 -1
  253. package/lib/panel/SuccessPanel.js +7 -0
  254. package/lib/panel/ToolBar.d.ts +1 -1
  255. package/lib/panel/ToolBar.js +5 -0
  256. package/lib/panel/WarningPanel.d.ts +1 -1
  257. package/lib/panel/WarningPanel.js +7 -0
  258. package/lib/panel/helpers.d.ts +1 -1
  259. package/lib/panel/helpers.js +10 -2
  260. package/lib/panel/index.d.ts +2 -5
  261. package/lib/panel/index.js +11 -0
  262. package/lib/panel/panel.spec.js +216 -0
  263. package/lib/panel/types.d.ts +1 -1
  264. package/lib/permissionValidations.js +15 -3
  265. package/lib/popover/PopoverText.js +4 -0
  266. package/lib/popover/PopoverTitle.js +4 -0
  267. package/lib/popover/index.js +29 -16
  268. package/lib/popover/popover.spec.js +146 -0
  269. package/lib/popover/types.d.ts +2 -1
  270. package/lib/progress/Bar.js +33 -20
  271. package/lib/progress/index.js +14 -5
  272. package/lib/progress/progress.spec.js +94 -0
  273. package/lib/radio/index.js +46 -23
  274. package/lib/radio/radio.spec.js +189 -0
  275. package/lib/skeleton/SkeletonContainer.js +9 -3
  276. package/lib/skeleton/index.js +22 -10
  277. package/lib/spinner/SpinnerLoading.js +7 -3
  278. package/lib/spinner/index.js +40 -18
  279. package/lib/spinner/spinner.spec.js +152 -0
  280. package/lib/split/Split.js +83 -32
  281. package/lib/split/SplitSide.js +18 -6
  282. package/lib/split/helpers.d.ts +1 -1
  283. package/lib/split/helpers.js +4 -0
  284. package/lib/split/index.d.ts +1 -4
  285. package/lib/split/index.js +5 -0
  286. package/lib/split/split.spec.js +163 -0
  287. package/lib/table/Body.js +29 -15
  288. package/lib/table/Header.js +28 -5
  289. package/lib/table/HeaderColumn.js +21 -10
  290. package/lib/table/Row.js +28 -18
  291. package/lib/table/RowColumn.js +29 -12
  292. package/lib/table/helpers.js +7 -0
  293. package/lib/table/index.js +62 -32
  294. package/lib/table/table.spec.js +352 -0
  295. package/lib/table/types.d.ts +1 -1
  296. package/lib/tabs/DropdownItems.js +21 -12
  297. package/lib/tabs/Menu.js +15 -5
  298. package/lib/tabs/MenuItems.js +33 -23
  299. package/lib/tabs/Panel.js +39 -14
  300. package/lib/tabs/index.js +113 -46
  301. package/lib/tabs/tabHelpers.js +16 -3
  302. package/lib/tabs/tabs.spec.js +321 -0
  303. package/lib/toolbar/ButtonBar.js +29 -13
  304. package/lib/toolbar/LabelBar.js +28 -11
  305. package/lib/toolbar/Separator.js +4 -0
  306. package/lib/toolbar/ToolBarGroup.js +6 -2
  307. package/lib/toolbar/helpers.js +2 -0
  308. package/lib/toolbar/index.js +23 -7
  309. package/lib/toolbar/toolbar.spec.js +394 -0
  310. package/lib/tooltip/index.js +25 -10
  311. package/lib/tooltip/tooltip.spec.js +215 -0
  312. package/lib/tooltip/types.d.ts +1 -1
  313. package/lib/treetable/Body.js +27 -9
  314. package/lib/treetable/Header.js +11 -1
  315. package/lib/treetable/Row.js +113 -58
  316. package/lib/treetable/helpers.js +10 -0
  317. package/lib/treetable/index.js +11 -0
  318. package/lib/treeview/Header.js +6 -2
  319. package/lib/treeview/Node.js +111 -47
  320. package/lib/treeview/constants.js +4 -0
  321. package/lib/treeview/index.js +134 -54
  322. package/lib/treeview/treeview.spec.js +279 -0
  323. package/lib/treeview/types.d.ts +2 -2
  324. package/lib/treeview_old/Header.js +6 -1
  325. package/lib/treeview_old/Node.js +32 -5
  326. package/lib/treeview_old/index.js +9 -1
  327. package/lib/{types-90c43ae1.d.ts → types-3c6f1c20.d.ts} +1 -1
  328. package/lib/uitour/index.js +73 -33
  329. package/lib/uitour/types.d.ts +1 -1
  330. package/lib/uitour/uitour.spec.js +176 -0
  331. package/package.json +1 -1
@@ -1,16 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _react = _interopRequireWildcard(require("react"));
11
+
9
12
  var _icons = _interopRequireDefault(require("../icons"));
13
+
10
14
  var _helpers = _interopRequireDefault(require("./helpers"));
15
+
11
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
12
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
13
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
14
22
  var getCloseButton = function getCloseButton(handlerClose) {
15
23
  return /*#__PURE__*/_react.default.createElement("span", {
16
24
  "data-testid": "header-closebutton",
@@ -21,6 +29,7 @@ var getCloseButton = function getCloseButton(handlerClose) {
21
29
  tabIndex: 0
22
30
  }, "X");
23
31
  };
32
+
24
33
  var getIcon = function getIcon(titleIcon, icon) {
25
34
  if (titleIcon || icon) {
26
35
  return /*#__PURE__*/_react.default.createElement("span", {
@@ -32,36 +41,43 @@ var getIcon = function getIcon(titleIcon, icon) {
32
41
  size: 24
33
42
  }));
34
43
  }
44
+
35
45
  return /*#__PURE__*/_react.default.createElement("noscript", null);
36
46
  };
47
+
37
48
  var Header = function Header(_ref) {
38
49
  var _ref$showCloseButton = _ref.showCloseButton,
39
- showCloseButton = _ref$showCloseButton === void 0 ? true : _ref$showCloseButton,
40
- title = _ref.title,
41
- subTitle = _ref.subTitle,
42
- icon = _ref.icon,
43
- titleIcon = _ref.titleIcon,
44
- customClass = _ref.customClass,
45
- titleContent = _ref.titleContent,
46
- subTitleContent = _ref.subTitleContent,
47
- titleRightContent = _ref.titleRightContent;
50
+ showCloseButton = _ref$showCloseButton === void 0 ? true : _ref$showCloseButton,
51
+ title = _ref.title,
52
+ subTitle = _ref.subTitle,
53
+ icon = _ref.icon,
54
+ titleIcon = _ref.titleIcon,
55
+ customClass = _ref.customClass,
56
+ titleContent = _ref.titleContent,
57
+ subTitleContent = _ref.subTitleContent,
58
+ titleRightContent = _ref.titleRightContent;
59
+
48
60
  var _useContext = (0, _react.useContext)(_helpers.default),
49
- handlerClose = _useContext.handlerClose;
61
+ handlerClose = _useContext.handlerClose;
62
+
50
63
  var renderTitle = function renderTitle() {
51
64
  if (titleContent) return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, titleContent);
52
65
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, icon ? getIcon(titleIcon, icon) : getIcon(titleIcon, null), /*#__PURE__*/_react.default.createElement("h2", {
53
66
  className: "drawer-title"
54
67
  }, title), titleRightContent);
55
68
  };
69
+
56
70
  var renderSubtitle = function renderSubtitle() {
57
71
  if (subTitleContent) return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, subTitleContent);
58
72
  return subTitle && /*#__PURE__*/_react.default.createElement("h3", {
59
73
  className: "drawer-subtitle"
60
74
  }, subTitle);
61
75
  };
76
+
62
77
  var checkHandlerClose = function checkHandlerClose() {
63
78
  return handlerClose ? handlerClose() : undefined;
64
79
  };
80
+
65
81
  return /*#__PURE__*/_react.default.createElement("div", {
66
82
  className: "drawerheader ".concat(customClass),
67
83
  "data-testid": "drawerheader"
@@ -75,5 +91,6 @@ var Header = function Header(_ref) {
75
91
  checkHandlerClose();
76
92
  })));
77
93
  };
94
+
78
95
  var _default = Header;
79
96
  exports.default = _default;
@@ -1,7 +1,6 @@
1
1
  import React__default from 'react';
2
2
  import { IDrawerContext } from './types.js';
3
3
  import '../@types/PermissionAttr.js';
4
- import '../@types/Position.js';
5
4
 
6
5
  declare const DrawerContext: React__default.Context<IDrawerContext>;
7
6
 
@@ -4,8 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _react = _interopRequireDefault(require("react"));
9
+
8
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
9
12
  var DrawerContext = /*#__PURE__*/_react.default.createContext({});
13
+
10
14
  var _default = DrawerContext;
11
15
  exports.default = _default;
@@ -3,7 +3,6 @@ export { default as DrawerHeader } from './Header.js';
3
3
  export { default as DrawerContent } from './Content.js';
4
4
  import 'react';
5
5
  import '../@types/PermissionAttr.js';
6
- import '../@types/Position.js';
7
6
 
8
7
  declare const _default: (props: IDrawerProps) => JSX.Element;
9
8
 
@@ -16,11 +16,19 @@ Object.defineProperty(exports, "DrawerHeader", {
16
16
  }
17
17
  });
18
18
  exports.default = void 0;
19
+
19
20
  var _Drawer = _interopRequireDefault(require("./Drawer"));
21
+
20
22
  var _Header = _interopRequireDefault(require("./Header"));
23
+
21
24
  var _Content = _interopRequireDefault(require("./Content"));
25
+
22
26
  require("../assets/styles/drawers.scss");
27
+
23
28
  var _withFormSecurity = _interopRequireDefault(require("../form/withFormSecurity"));
29
+
24
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
25
32
  var _default = (0, _withFormSecurity.default)(_Drawer.default);
33
+
26
34
  exports.default = _default;
@@ -1,6 +1,5 @@
1
1
  import React__default, { ReactNode, ReactElement } from 'react';
2
2
  import { PermissionAttr } from '../@types/PermissionAttr.js';
3
- import { Position } from '../@types/Position.js';
4
3
 
5
4
  interface IDrawerProps extends React__default.HTMLAttributes<HTMLDivElement> {
6
5
  overlay?: boolean;
@@ -8,7 +7,7 @@ interface IDrawerProps extends React__default.HTMLAttributes<HTMLDivElement> {
8
7
  customClass?: string;
9
8
  customClassForContent?: string;
10
9
  customClassForDrawer?: string;
11
- position?: Exclude<Position, 'center'>;
10
+ position?: string;
12
11
  handlerClose?: () => void;
13
12
  closeOnEsc?: boolean;
14
13
  targetId?: string;
@@ -4,44 +4,56 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _react = require("react");
9
+
8
10
  var _reactDom = _interopRequireDefault(require("react-dom"));
11
+
9
12
  var _excluded = ["customClassForDropdown", "align", "isFloatMenu", "topPosition", "leftPosition", "rightPosition", "minWidth"];
13
+
10
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
11
16
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
17
+
12
18
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
19
+
13
20
  var getCalendarDropdownStyle = function getCalendarDropdownStyle(_ref) {
14
21
  var topPosition = _ref.topPosition,
15
- leftPosition = _ref.leftPosition,
16
- rightPosition = _ref.rightPosition,
17
- align = _ref.align,
18
- isFloatMenu = _ref.isFloatMenu,
19
- minWidth = _ref.minWidth;
22
+ leftPosition = _ref.leftPosition,
23
+ rightPosition = _ref.rightPosition,
24
+ align = _ref.align,
25
+ isFloatMenu = _ref.isFloatMenu,
26
+ minWidth = _ref.minWidth;
20
27
  var style = "top: ".concat(topPosition + (isFloatMenu ? 6 : 2), "px; min-width: ").concat(minWidth, "px;");
28
+
21
29
  if (align === 'left') {
22
30
  style += "left: ".concat(leftPosition, "px;");
23
31
  } else if (align === 'right') {
24
32
  style += "right: ".concat(rightPosition, "px;");
25
33
  }
34
+
26
35
  return style;
27
36
  };
37
+
28
38
  var body = document.getElementsByTagName('body')[0];
39
+
29
40
  var DropdownPopup = function DropdownPopup(_ref2) {
30
41
  var _ref2$customClassForD = _ref2.customClassForDropdown,
31
- customClassForDropdown = _ref2$customClassForD === void 0 ? '' : _ref2$customClassForD,
32
- _ref2$align = _ref2.align,
33
- align = _ref2$align === void 0 ? 'left' : _ref2$align,
34
- _ref2$isFloatMenu = _ref2.isFloatMenu,
35
- isFloatMenu = _ref2$isFloatMenu === void 0 ? false : _ref2$isFloatMenu,
36
- _ref2$topPosition = _ref2.topPosition,
37
- topPosition = _ref2$topPosition === void 0 ? 0 : _ref2$topPosition,
38
- _ref2$leftPosition = _ref2.leftPosition,
39
- leftPosition = _ref2$leftPosition === void 0 ? 0 : _ref2$leftPosition,
40
- _ref2$rightPosition = _ref2.rightPosition,
41
- rightPosition = _ref2$rightPosition === void 0 ? 0 : _ref2$rightPosition,
42
- _ref2$minWidth = _ref2.minWidth,
43
- minWidth = _ref2$minWidth === void 0 ? 0 : _ref2$minWidth,
44
- props = _objectWithoutProperties(_ref2, _excluded);
42
+ customClassForDropdown = _ref2$customClassForD === void 0 ? '' : _ref2$customClassForD,
43
+ _ref2$align = _ref2.align,
44
+ align = _ref2$align === void 0 ? 'left' : _ref2$align,
45
+ _ref2$isFloatMenu = _ref2.isFloatMenu,
46
+ isFloatMenu = _ref2$isFloatMenu === void 0 ? false : _ref2$isFloatMenu,
47
+ _ref2$topPosition = _ref2.topPosition,
48
+ topPosition = _ref2$topPosition === void 0 ? 0 : _ref2$topPosition,
49
+ _ref2$leftPosition = _ref2.leftPosition,
50
+ leftPosition = _ref2$leftPosition === void 0 ? 0 : _ref2$leftPosition,
51
+ _ref2$rightPosition = _ref2.rightPosition,
52
+ rightPosition = _ref2$rightPosition === void 0 ? 0 : _ref2$rightPosition,
53
+ _ref2$minWidth = _ref2.minWidth,
54
+ minWidth = _ref2$minWidth === void 0 ? 0 : _ref2$minWidth,
55
+ props = _objectWithoutProperties(_ref2, _excluded);
56
+
45
57
  var popup = (0, _react.useRef)(document.createElement('div'));
46
58
  popup.current.className = "dropdown-component ".concat(customClassForDropdown);
47
59
  popup.current.dataset.testid = 'dropdown-component';
@@ -61,5 +73,6 @@ var DropdownPopup = function DropdownPopup(_ref2) {
61
73
  }, []);
62
74
  return /*#__PURE__*/_reactDom.default.createPortal(props.children, popup.current);
63
75
  };
76
+
64
77
  var _default = DropdownPopup;
65
78
  exports.default = _default;
@@ -0,0 +1,169 @@
1
+ "use strict";
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
+
5
+ var _react = require("@testing-library/react");
6
+
7
+ var _react2 = _interopRequireWildcard(require("react"));
8
+
9
+ require("babel-polyfill");
10
+
11
+ var _withDropdown = _interopRequireDefault(require("./withDropdown"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+
19
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
20
+
21
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
22
+
23
+ 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); }
24
+
25
+ var WhappedComponent = function WhappedComponent(props) {
26
+ var btnRef = (0, _react2.useRef)(null);
27
+ return /*#__PURE__*/_react2.default.createElement(_react2.Fragment, null, /*#__PURE__*/_react2.default.createElement("button", {
28
+ ref: btnRef,
29
+ onClick: function onClick() {
30
+ return props.showDropdown();
31
+ }
32
+ }, "OPEN"), props.getDropdownPopup(btnRef.current));
33
+ };
34
+
35
+ var DropdownTest = (0, _withDropdown.default)(WhappedComponent);
36
+
37
+ var renderDropdownTestMock = function renderDropdownTestMock(props) {
38
+ return /*#__PURE__*/_react2.default.createElement(DropdownTest, _extends({
39
+ dropdown: true
40
+ }, props), /*#__PURE__*/_react2.default.createElement("div", null, "DROP_DOWN_CONTENT"));
41
+ };
42
+
43
+ describe('withDropdown', function () {
44
+ describe('Default', function () {
45
+ it('should render dropdown', function () {
46
+ var _render = (0, _react.render)(renderDropdownTestMock()),
47
+ container = _render.container,
48
+ getByTestId = _render.getByTestId,
49
+ getByText = _render.getByText;
50
+
51
+ _react.fireEvent.click(container.firstChild);
52
+
53
+ expect(getByTestId('dropdown-component')).toBeInTheDocument();
54
+ expect(getByText('DROP_DOWN_CONTENT')).toBeInTheDocument();
55
+ });
56
+ it('should apply customClass in dropdown', function () {
57
+ var _render2 = (0, _react.render)(renderDropdownTestMock({
58
+ customClassForDropdown: 'customClass'
59
+ })),
60
+ container = _render2.container,
61
+ getByTestId = _render2.getByTestId;
62
+
63
+ _react.fireEvent.click(container.firstChild);
64
+
65
+ expect(getByTestId('dropdown-component')).toBeInTheDocument();
66
+ expect(getByTestId('dropdown-component')).toHaveClass('customClass');
67
+ });
68
+ it('should control dropdown open with dropdownOpened prop', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
69
+ var _render3, rerender, getByTestId;
70
+
71
+ return regeneratorRuntime.wrap(function _callee$(_context) {
72
+ while (1) {
73
+ switch (_context.prev = _context.next) {
74
+ case 0:
75
+ _render3 = (0, _react.render)(renderDropdownTestMock()), rerender = _render3.rerender, getByTestId = _render3.getByTestId;
76
+ rerender(renderDropdownTestMock({
77
+ dropdownOpened: true
78
+ }));
79
+ _context.next = 4;
80
+ return (0, _react.waitFor)(function () {
81
+ return expect(getByTestId('dropdown-component')).toBeInTheDocument();
82
+ }, {
83
+ timeout: 3000
84
+ });
85
+
86
+ case 4:
87
+ case "end":
88
+ return _context.stop();
89
+ }
90
+ }
91
+ }, _callee);
92
+ })));
93
+ it('should closeDropdownOnClickOutside', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
94
+ var _render4, getByText, queryByTestId;
95
+
96
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
97
+ while (1) {
98
+ switch (_context2.prev = _context2.next) {
99
+ case 0:
100
+ _render4 = // eslint-disable-next-line max-len
101
+ (0, _react.render)( /*#__PURE__*/_react2.default.createElement("div", null, /*#__PURE__*/_react2.default.createElement("a", null, "OUTSIDE_CLICK"), renderDropdownTestMock())), getByText = _render4.getByText, queryByTestId = _render4.queryByTestId;
102
+
103
+ _react.fireEvent.click(getByText('OPEN'));
104
+
105
+ _context2.next = 4;
106
+ return (0, _react.waitFor)(function () {
107
+ return expect(queryByTestId('dropdown-component')).toBeInTheDocument();
108
+ }, {
109
+ timeout: 3000
110
+ });
111
+
112
+ case 4:
113
+ _react.fireEvent.click(getByText('OUTSIDE_CLICK'));
114
+
115
+ _context2.next = 7;
116
+ return (0, _react.waitFor)(function () {
117
+ return expect(queryByTestId('dropdown-component')).not.toBeInTheDocument();
118
+ }, {
119
+ timeout: 3000
120
+ });
121
+
122
+ case 7:
123
+ case "end":
124
+ return _context2.stop();
125
+ }
126
+ }
127
+ }, _callee2);
128
+ })));
129
+ it('should not closeDropdownOnClickOutside', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
130
+ var _render5, getByText, queryByTestId;
131
+
132
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
133
+ while (1) {
134
+ switch (_context3.prev = _context3.next) {
135
+ case 0:
136
+ // eslint-disable-next-line function-paren-newline
137
+ _render5 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement("div", null, /*#__PURE__*/_react2.default.createElement("a", null, "OUTSIDE_CLICK"), renderDropdownTestMock({
138
+ closeDropdownOnClickOutside: false
139
+ })) // eslint-disable-next-line function-paren-newline
140
+ ), getByText = _render5.getByText, queryByTestId = _render5.queryByTestId;
141
+
142
+ _react.fireEvent.click(getByText('OPEN'));
143
+
144
+ _context3.next = 4;
145
+ return (0, _react.waitFor)(function () {
146
+ return expect(queryByTestId('dropdown-component')).toBeInTheDocument();
147
+ }, {
148
+ timeout: 3000
149
+ });
150
+
151
+ case 4:
152
+ _react.fireEvent.click(getByText('OUTSIDE_CLICK'));
153
+
154
+ _context3.next = 7;
155
+ return (0, _react.waitFor)(function () {
156
+ return expect(queryByTestId('dropdown-component')).toBeInTheDocument();
157
+ }, {
158
+ timeout: 3000
159
+ });
160
+
161
+ case 7:
162
+ case "end":
163
+ return _context3.stop();
164
+ }
165
+ }
166
+ }, _callee3);
167
+ })));
168
+ });
169
+ });
@@ -4,10 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getDropdownItemCssClass = exports.contentClass = void 0;
7
+
7
8
  var contentClass = function contentClass(showClearButton) {
8
9
  return "content ".concat(showClearButton ? '' : 'noclear');
9
10
  };
11
+
10
12
  exports.contentClass = contentClass;
13
+
11
14
  var getDropdownItemCssClass = function getDropdownItemCssClass(selected, disabled, striped) {
12
15
  var className = 'item';
13
16
  className += selected && !disabled ? ' -selected ' : '';
@@ -15,4 +18,5 @@ var getDropdownItemCssClass = function getDropdownItemCssClass(selected, disable
15
18
  className += !selected && !disabled && striped ? ' -striped ' : '';
16
19
  return className;
17
20
  };
21
+
18
22
  exports.getDropdownItemCssClass = getDropdownItemCssClass;
@@ -1,66 +1,91 @@
1
1
  "use strict";
2
2
 
3
3
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = exports.WithDropdownContext = void 0;
9
+
8
10
  var _react = _interopRequireWildcard(require("react"));
11
+
9
12
  var _Popup = _interopRequireDefault(require("./Popup"));
13
+
10
14
  require("../assets/styles/dropdown.scss");
15
+
11
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
12
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
13
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
14
22
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
23
+
15
24
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
25
+
16
26
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
27
+
17
28
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
19
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
29
+
30
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
31
+
32
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
33
+
20
34
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
35
+
21
36
  var WithDropdownContext = /*#__PURE__*/(0, _react.createContext)({});
22
37
  exports.WithDropdownContext = WithDropdownContext;
38
+
23
39
  var getDisplayName = function getDisplayName(Component) {
24
40
  return Component.displayName || Component.name || 'Component';
25
41
  };
42
+
26
43
  var withDropdown = function withDropdown(WrappedComponent) {
27
44
  var EnhancedComponent = function EnhancedComponent(props) {
28
45
  var dropdownOpened = props.dropdownOpened,
29
- showDropdown = props.showDropdown,
30
- dropdown = props.dropdown,
31
- _props$closeDropdownO = props.closeDropdownOnClickOutside,
32
- closeDropdownOnClickOutside = _props$closeDropdownO === void 0 ? true : _props$closeDropdownO,
33
- customClassForDropdown = props.customClassForDropdown,
34
- children = props.children,
35
- _props$dropdownAlign = props.dropdownAlign,
36
- dropdownAlign = _props$dropdownAlign === void 0 ? 'left' : _props$dropdownAlign,
37
- isFloatMenu = props.isFloatMenu,
38
- isDropdownOpened = props.isDropdownOpened;
46
+ showDropdown = props.showDropdown,
47
+ dropdown = props.dropdown,
48
+ _props$closeDropdownO = props.closeDropdownOnClickOutside,
49
+ closeDropdownOnClickOutside = _props$closeDropdownO === void 0 ? true : _props$closeDropdownO,
50
+ customClassForDropdown = props.customClassForDropdown,
51
+ children = props.children,
52
+ _props$dropdownAlign = props.dropdownAlign,
53
+ dropdownAlign = _props$dropdownAlign === void 0 ? 'left' : _props$dropdownAlign,
54
+ isFloatMenu = props.isFloatMenu,
55
+ isDropdownOpened = props.isDropdownOpened;
56
+
39
57
  var _useState = (0, _react.useState)(dropdownOpened),
40
- _useState2 = _slicedToArray(_useState, 2),
41
- opened = _useState2[0],
42
- setOpened = _useState2[1];
58
+ _useState2 = _slicedToArray(_useState, 2),
59
+ opened = _useState2[0],
60
+ setOpened = _useState2[1];
61
+
43
62
  var _useState3 = (0, _react.useState)(dropdownOpened),
44
- _useState4 = _slicedToArray(_useState3, 2),
45
- prevOpened = _useState4[0],
46
- setPrevOpened = _useState4[1];
63
+ _useState4 = _slicedToArray(_useState3, 2),
64
+ prevOpened = _useState4[0],
65
+ setPrevOpened = _useState4[1];
66
+
47
67
  var popupRef = (0, _react.useRef)(null);
48
68
  var wrappedComponentRef = (0, _react.useRef)(null);
69
+
49
70
  if (dropdownOpened !== prevOpened) {
50
71
  setOpened(dropdownOpened);
51
72
  setPrevOpened(dropdownOpened);
52
73
  }
74
+
53
75
  var onClickOutside = function onClickOutside(_ref) {
54
76
  var target = _ref.target;
77
+
55
78
  if (popupRef !== null && popupRef !== void 0 && popupRef.current && target !== (popupRef === null || popupRef === void 0 ? void 0 : popupRef.current) && !(popupRef !== null && popupRef !== void 0 && popupRef.current.contains(target)) && wrappedComponentRef.current !== target) {
56
79
  setOpened(false);
57
80
  }
58
81
  };
82
+
59
83
  var onDropdownClick = function onDropdownClick() {
60
84
  setOpened(function (prevState) {
61
85
  return !prevState;
62
86
  });
63
87
  };
88
+
64
89
  var getDropdown = function getDropdown(targetRef) {
65
90
  if (!targetRef || !opened) return null;
66
91
  wrappedComponentRef.current = targetRef;
@@ -79,10 +104,12 @@ var withDropdown = function withDropdown(WrappedComponent) {
79
104
  }
80
105
  }, children));
81
106
  };
107
+
82
108
  (0, _react.useEffect)(function () {
83
109
  if (dropdown && closeDropdownOnClickOutside) {
84
110
  document.addEventListener('click', onClickOutside);
85
111
  }
112
+
86
113
  return function () {
87
114
  if (dropdown && closeDropdownOnClickOutside) {
88
115
  document.removeEventListener('click', onClickOutside);
@@ -106,8 +133,10 @@ var withDropdown = function withDropdown(WrappedComponent) {
106
133
  value: contextValues
107
134
  }, /*#__PURE__*/_react.default.createElement(WrappedComponent, _extends({}, props, newProps)));
108
135
  };
136
+
109
137
  EnhancedComponent.displayName = "withDropdown(".concat(getDisplayName(WrappedComponent), ")");
110
138
  return EnhancedComponent;
111
139
  };
140
+
112
141
  var _default = withDropdown;
113
142
  exports.default = _default;